private void ShuffleList(EnemyModifier[] ts) { for (int i = 0; i < ts.Length; i++) { EnemyModifier temp = ts[i]; int randomIndex = Random.Range(i, ts.Length); ts[i] = ts[randomIndex]; ts[randomIndex] = temp; } }
public void Add(EnemyModifier enemyModifier) { if (_nextModifier != null) { _nextModifier.Add(enemyModifier); } else { _nextModifier = enemyModifier; } }
public bool HasModifier(EnemyModifier mod) { foreach (EnemyModifier em in modifiers) { if (em == mod) { return(true); } } return(false); }
IEnumerator SpawnEnemyAfterDelay(float delay) { yield return(new WaitForSeconds(delay)); int runTimeLoopCount = runtimeChoices.runTimeLoopCount; Enemy enemy = runtimeChoices.enemies[runTimeLoopCount - 1]; Enemy.EnemyType enemyType = enemy.enemyType; Vector3 deltaVector = new Vector3(Random.Range(0, 60), 0, 0); GameObject go; EnemyBehaviour enemyBehaviour; switch (enemyType) { case Enemy.EnemyType.None: go = Instantiate(enemyPrefab, enemySpawnPos - deltaVector, Quaternion.identity); enemyBehaviour = go.GetComponent <EnemyBehaviour>(); break; case Enemy.EnemyType.Agile: go = Instantiate(agileEnemyPrefab, enemySpawnPos - deltaVector, Quaternion.identity); enemyBehaviour = go.GetComponent <AgileEnemy>(); break; case Enemy.EnemyType.Orb: go = Instantiate(orbEnemyPrefab, enemySpawnPos - deltaVector, Quaternion.identity); enemyBehaviour = go.GetComponent <OrbEnemy>(); break; case Enemy.EnemyType.Splitter: //TODO: Make splitter: go = Instantiate(splitterEnemyPrefab, enemySpawnPos - deltaVector, Quaternion.identity); enemyBehaviour = go.GetComponent <SplitterEnemy>(); break; default: //Default is only here to ensure that enemyBehaviour is always assigned for future use in this method call. go = Instantiate(enemyPrefab, enemySpawnPos - deltaVector, Quaternion.identity); enemyBehaviour = go.GetComponent <EnemyBehaviour>(); break; } EnemyModifier[] modifiers = new EnemyModifier[] { runtimeChoices.enemyModifiers[runTimeLoopCount - 1] }; enemyBehaviour.InitalizeEnemy(enemy, modifiers); //take account for boss-amount of modifiers monsterSpawnedEvent.Raise(); }
public void Revive(EnemyBehaviour enemyToApplyTo) { FindObjectOfType <AudioList>().resurrection.Play(); Enemy agent = enemyToApplyTo.agent; Enemy.EnemyType enemyType = agent.enemyType; Spawner spawner = FindObjectOfType <Spawner>(); GameObject go; switch (enemyType) { case Enemy.EnemyType.Agile: go = Instantiate(spawner.agileEnemyPrefab, enemyToApplyTo.transform.position, Quaternion.identity); break; case Enemy.EnemyType.Orb: go = Instantiate(spawner.orbEnemyPrefab, enemyToApplyTo.transform.position, Quaternion.identity); break; case Enemy.EnemyType.Splitter: go = Instantiate(spawner.splitterEnemyPrefab, enemyToApplyTo.transform.position, Quaternion.identity); break; default: go = Instantiate(spawner.enemyPrefab, enemyToApplyTo.transform.position, Quaternion.identity); break; } EnemyBehaviour newEnemy = go.GetComponent <EnemyBehaviour>(); newEnemy.name = name; newEnemy.spriteRenderer.sprite = agent.sprite; newEnemy.nameUI.SetText(enemyToApplyTo.name); newEnemy.nameUI = enemyToApplyTo.nameUI; newEnemy.currentHealth = agent.health; newEnemy.maxHealth = newEnemy.currentHealth; newEnemy.healthBar.UpdateHPValues(newEnemy.currentHealth, newEnemy.maxHealth); EnemyModifier[] enemyModifiers = new EnemyModifier[0]; newEnemy.InitalizeEnemy(agent, enemyModifiers); }
private void ApplyModifier(EnemyModifier _modifier) { switch (_modifier.modifierType) { case EnemyModifier.ModifierType.ShoulderCannon: _modifier.ApplyShoulderCannonVisuals(this); hasCannon = true; break; case EnemyModifier.ModifierType.Blessed: _modifier.ApplyHolyVisuals(this); isBlessed = true; break; case EnemyModifier.ModifierType.Angry: _modifier.ApplyAngrySprite(this); isAngry = true; break; } }
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 AddEnemyModifier(EnemyModifier em) { enemymodifiers.Add(em); }
void Start() { clipManager = GetComponent <EnemyClipManager>(); modifier = GetComponent <EnemyModifier>(); }
private void Start() { modifier = GetComponent <EnemyModifier>(); done = false; }