protected virtual void OnDeadHero(Hero hero) { DeadHero?.Invoke(this, new DeadHeroEventArgs() { DeadHero = hero }); }
// Update is called once per frame void Update() { for (int i = 0; i < enemyPrefabs.Length; i++) { int r = Random.Range(i, enemyPrefabs.Length); if (CurrentEnemy == null) { RandX = Random.Range(0f, 5.4f); WhereToSpawn = new Vector2(RandX, transform.position.y); CurrentEnemy = Instantiate(enemyPrefabs[r], WhereToSpawn, Quaternion.identity); EnemyScript enemyOneS = CurrentEnemy.GetComponent <EnemyScript>(); enemyOneS.Levelup(GameControl.StageNumber); // we make enemyOne object // receive the enemyscript from the enemyoneobject // running death from the enemyonescript on the enemyoneobject } } EnemyScript enemyOneScript = CurrentEnemy.GetComponent <EnemyScript>(); //enemyOneScript.DamageTaken(10); if (enemyOneScript.CurrentHealth < 1) { enemyOneScript.Death(); GameControl.StageNumber++; foreach (HeroesScrpt Hero in AliveHeroesList) { Hero.CurrentHealth = Hero.MaxHealth; } //if (StageNumber %10 == 0) { } } HeroeS = GameObject.FindGameObjectWithTag("Player"); Summon summonnedlist = HeroeS.GetComponent <Summon>(); AliveHeroesList = new List <HeroesScrpt>(); foreach (GameObject Hero in summonnedlist.SummonedHeroes) { HeroesScrpt HeroScript = Hero.GetComponent <HeroesScrpt>(); if (HeroScript.Alive) { AliveHeroesList.Add(HeroScript); } } //Hero Attack foreach (HeroesScrpt Hero in AliveHeroesList) { if (frames % (60 / Hero.Speed) == 0) { FloatingDamageControl.CreateFloatingText(Hero.Damage.ToString(), transform); enemyOneScript.DamageTaken(Hero.Damage); } } // Runs 1 per 60 frames if (frames % 60 == 0) { if (summonnedlist.SummonedHeroes.Count > 0) { int randomnumber = Random.Range(0, AliveHeroesList.Count); HeroesScrpt CurrentHeroScript = AliveHeroesList[randomnumber]; CurrentHeroScript.DamageTaken(enemyOneScript.Damage); CurrentHeroScript.HeroDeath(); bool allheroesdead = true; foreach (GameObject Hero in summonnedlist.SummonedHeroes) { HeroesScrpt SelectedHero = Hero.GetComponent <HeroesScrpt>(); if (SelectedHero.Alive == true) { allheroesdead = false; } else { Hero.SetActive(false); } } if (allheroesdead == true) { GameControl.StageNumber--; if (GameControl.StageNumber == 0) { } foreach (GameObject DeadHero in summonnedlist.SummonedHeroes) { HeroesScrpt SelectedHero = DeadHero.GetComponent <HeroesScrpt>(); SelectedHero.CurrentHealth = SelectedHero.MaxHealth; SelectedHero.Alive = true; DeadHero.SetActive(true); } } } } frames++; //(gameObject.GetComponent<Summon>().SummonedHeroes) }