private void ShuffleList(List <P1Stats> ts) { for (int i = 0; i < ts.Count; i++) { P1Stats temp = ts[i]; int randomIndex = Random.Range(i, ts.Count); ts[i] = ts[randomIndex]; ts[randomIndex] = temp; } }
private void Awake() { _musicManager = FindObjectOfType <MusicManager>(); choice = 4; // the choice is set back to the default value try { customSceneManager = GameObject.Find("SceneManager").GetComponent <CustomSceneManager>(); } catch { } if (choiceType == "Character") { #region InitializeCharacterSelection ShuffleList(characterpool.characterStats); for (int i = 0; i < characterChoices.Length; i++) { P1Stats characterStats = characterpool.characterStats[i]; characterSprites[i].sprite = characterStats.characterSprite; characterNames[i].text = characterStats.myName; characterChoices[i] = characterStats; } #endregion InitializeCharacterSelection } if (choiceType == "Item") { #region InitializeItemSelection int poolLenght = AllPossiblePlayerItems.Length; poolLenght -= runtimeChoices.runTimeLoopCount; playerItemPool = new PlayerItems[poolLenght]; AvailableItems = new List <PlayerItems>(); foreach (PlayerItems item in AllPossiblePlayerItems) { AvailableItems.Add(item); // add the item to the available items to choose from if (item == runtimeChoices.baselineItem) { AvailableItems.Remove(item); Debug.Log("Removing this item: " + item.itemName); } for (int i = 0; i < AllPossiblePlayerItems.Length; i++) { try { if (item == runtimeChoices.playerItems[i]) { AvailableItems.Remove(item); Debug.Log("Removing this item: " + item.itemName); } } catch { } } } for (int i = 0; i < AvailableItems.Count; i++) { playerItemPool[i] = AvailableItems[i]; } if (runtimeChoices.runTimeLoopCount != 4) { int random = Random.Range(0, playerItemPool.Length); int random2 = random; if (playerItemPool.Length <= 1) { random2 = Random.Range(0, playerItemPool.Length); } while (random2 == random) { Debug.Log("random2 was the same as random, rerolling"); random2 = Random.Range(0, playerItemPool.Length); } playerItemChoices[0] = playerItemPool[random]; playerItemChoices[1] = playerItemPool[random2]; choiceNameText[0].text = playerItemChoices[0].name; choiceNameText[1].text = playerItemChoices[1].name; itemImageTargets[0].sprite = playerItemChoices[0].itemSprite; itemImageTargets[1].sprite = playerItemChoices[1].itemSprite; } else { itemImageTargets[0].gameObject.SetActive(false); itemImageTargets[1].gameObject.SetActive(false); theOnlyButton.SetActive(true); theOnlyButton.GetComponent <Image>().sprite = theGrandPrize; theOnlyButton.GetComponentInChildren <TextMeshProUGUI>().text = "Sweet Victory"; } #endregion InitializeItemSelection } if (choiceType == "Minion") // naming inconsistency between Minion and Enemy { #region InitializeMinionSelection ShuffleList(enemyPool); for (int i = 0; i < enemyModifierChoices.Length; i++) { Enemy enemy = enemyPool[i]; enemySprites[i].sprite = enemy.sprite; enemyNames[i].text = enemy.name; enemyChoices[i] = enemy; } #endregion InitializeMinionSelection } if (choiceType == "Modifier") { #region InitializeModifierSelection ShuffleList(modifierPool); for (int i = 0; i < enemyModifierChoices.Length; i++) { EnemyModifier modifier = modifierPool[i]; modifierSprites[i].sprite = modifier.sprite; modifierNames[i].text = modifier.name; enemyModifierChoices[i] = modifier; } #endregion InitializeModifierSelection } if (choiceType == "Theme") { #region InitializeThemeSelection ShuffleList(environmentThemePool.environmentPool); for (int i = 0; i < environmentThemeChoices.Length; i++) { Environments environmentsTheme = environmentThemePool.environmentPool[i]; themeSprites[i].sprite = environmentsTheme.environments[0].environmentSprite; themeNames[i].text = environmentsTheme.environments[0].environmentName; environmentThemeChoices[i] = environmentsTheme.environments[0]; } #endregion InitializeThemeSelection } }
public void InitializePlayerStats(P1Stats baselineStats) { runtimePlayerStats.baseAttackDamage = baselineStats.baseAttackDamage; runtimePlayerStats.maxHitPoints = baselineStats.maxHitPoints; runtimePlayerStats.moveSpeed = baselineStats.moveSpeed; runtimePlayerStats.attackRate = baselineStats.attackRate; rangedCooldownMaxTime = runtimePlayerStats.attackRate; runtimePlayerStats.jumpForce = baselineStats.jumpForce; runtimePlayerStats.rangedAttacks = baselineStats.rangedAttacks; runtimePlayerStats.meleeAttacks = baselineStats.meleeAttacks; if (runtimeChoices.chosenHero.characterSprite != null) { playerSprite = runtimeChoices.chosenHero.characterSprite; } else { playerSprite = defaultSprite; } GetComponent <SpriteRenderer>().sprite = playerSprite; BoxCollider2D boxColl2D = GetComponent <BoxCollider2D>(); boxColl2D.offset = runtimeChoices.chosenHero.colliderOffset; boxColl2D.size = runtimeChoices.chosenHero.colliderSize; currentHitPoints = baselineStats.startingHitPoints; playerHPEvent.Raise(currentHitPoints); //healthBar.VisualiseHealthChange(baselineStats.startingHitPoints); runtimeChoices.baselineItem = baselineStats.startItem; //Weapontypes addons: switch (baselineStats.startItem.weaponType) { case PlayerItems.WeaponType.None: //Do nothing break; case PlayerItems.WeaponType.ExplodingShots: hasExplodingShots = true; shotgunImage.sprite = baselineStats.startItem.itemSprite; shotgunImage.gameObject.SetActive(true); break; case PlayerItems.WeaponType.Gatlinggun: hasGatlingGun = true; runtimePlayerStats.attackRate = runtimePlayerStats.attackRate * gatlingSpeedMultiplier; rangedCooldownMaxTime = runtimePlayerStats.attackRate; shotgunImage.sprite = baselineStats.startItem.itemSprite; shotgunImage.gameObject.SetActive(true); break; case PlayerItems.WeaponType.Shotgun: hasShotgun = true; shotgunImage.sprite = baselineStats.startItem.itemSprite; shotgunImage.gameObject.SetActive(true); break; } }