public void AttackHero() { float accuracy = Random.Range(1, 101); if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { if (accuracy > Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } } else if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { if (accuracy > Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } } else if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { if (accuracy > Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } } attackTimer = 0.0f; animator.SetFloat("Cooldown Timer", 0); }
public virtual void Exit() { Destroy(gameObject); WaveManager.ListOfMobs.Remove(gameObject); WaveManager.AddKillCount(); WaveManager.AddGoldEarned(goldValue); Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().IncreaseExp(exp); Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().IncreaseExp(exp); Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().IncreaseExp(exp); }
// Update is called once per frame protected override void Update() { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); temp.x -= Time.deltaTime * 5.0f; gameObject.transform.position = temp; if (temp.x <= (Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x) && !hit_Hero1) { if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { float accuracy = Random.Range(1, 101); if (accuracy > Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } hit_Hero1 = true; } } else if (temp.x <= (Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x) && !hit_Hero2) { if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { float accuracy = Random.Range(1, 101); if (accuracy > Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } hit_Hero2 = true; } } else if (temp.x <= (Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x) && !hit_Hero3) { if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { float accuracy = Random.Range(1, 101); if (accuracy > Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); } hit_Hero3 = true; } if (temp.x <= Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x - 5) { Exit(); } } }
// Update is called once per frame protected override void Update() { if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero1.transform.position.x) * (gameObject.transform.position.x - Hero1.transform.position.x))); } else if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero2.transform.position.x) * (gameObject.transform.position.x - Hero2.transform.position.x))); } else if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero3.transform.position.x) * (gameObject.transform.position.x - Hero3.transform.position.x))); } // State Transitions if (distFromHero < 7.5) { state = States.Run; animator.SetTrigger("Run"); } else { state = States.Idle; animator.SetTrigger("Idle"); } if (Hp <= 0) { state = States.Death; } // States switch (state) { case States.Idle: foreach (GameObject hero in HeroList) { if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); temp.x -= Time.deltaTime * 0.8f; gameObject.transform.position = temp; } } break; case States.Run: foreach (GameObject hero in HeroList) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { temp.x -= Time.deltaTime; gameObject.transform.position = temp; } else { attackTimer += Time.deltaTime; if (attackTimer > attackTimer_Max) { float accuracy = Random.Range(1, 101); if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead() && gameObject.GetComponent <BoxCollider2D>().IsTouching(Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { if (accuracy > Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); Vector3 position = new Vector3(Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x, Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.y, Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.z); GameObject explode = Instantiate(explosion, new Vector3(position.x + 1, position.y, position.z), explosion.transform.rotation) as GameObject; explode.SetActive(true); } } else if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead() && gameObject.GetComponent <BoxCollider2D>().IsTouching(Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { if (accuracy > Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); Vector3 position = new Vector3(Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x, Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.y, Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.z); GameObject explode = Instantiate(explosion, new Vector3(position.x + 1, position.y, position.z), explosion.transform.rotation) as GameObject; explode.SetActive(true); } } else if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead() && gameObject.GetComponent <BoxCollider2D>().IsTouching(Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { if (accuracy > Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_Evasion()) { Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().getHit(Attack); Vector3 position = new Vector3(Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.x, Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.y, Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().transform.position.z); GameObject explode = Instantiate(explosion, new Vector3(position.x + 1, position.y, position.z), explosion.transform.rotation) as GameObject; explode.SetActive(true); } } attackTimer = 0; } } } break; case States.Death: Destroy(gameObject.GetComponent <BoxCollider2D>()); animator.enabled = false; if (gameObject.transform.position.y < -(Screen.height / 20)) { Exit(); } break; default: break; } }
// Update is called once per frame protected override void Update() { if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero1.transform.position.x) * (gameObject.transform.position.x - Hero1.transform.position.x))); } else if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero2.transform.position.x) * (gameObject.transform.position.x - Hero2.transform.position.x))); } else if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero3.transform.position.x) * (gameObject.transform.position.x - Hero3.transform.position.x))); } // State Transition if (distFromHero < 7.5 && state != States.Attack && !animator.GetBool("Targets In Range")) { state = States.Walk; if (!TargetsDetected) { animator.SetTrigger("Target Detected"); TargetsDetected = true; } } else if (distFromHero > 7.5 && state != States.Attack) { state = States.Idle; TargetsDetected = false; } else if (distFromHero > 5 && state == States.Attack) { state = States.Walk; animator.SetBool("Targets In Range", false); } if (Hp <= 0) { state = States.Death; animator.SetTrigger("No HP"); } // States switch (state) { case States.Idle: foreach (GameObject hero in HeroList) { if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); temp.x -= Time.deltaTime * 0.8f; gameObject.transform.position = temp; } } break; case States.Walk: foreach (GameObject hero in HeroList) { if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); temp.x -= Time.deltaTime; gameObject.transform.position = temp; } else { state = States.Attack; animator.SetBool("Targets In Range", true); animator.SetBool("No Targets", false); } } break; case States.Attack: if (attackTimer < attackTimer_Max) { attackTimer += Time.deltaTime; } animator.SetFloat("Cooldown Timer", attackTimer); break; default: break; } }
// Update is called once per frame protected virtual void Update() { if (Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead() && Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead() && Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { WaveManager.GameOver(); } }
// Update is called once per frame protected override void Update() { if (!Hero1.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero1.transform.position.x) * (gameObject.transform.position.x - Hero1.transform.position.x))); } else if (!Hero2.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero2.transform.position.x) * (gameObject.transform.position.x - Hero2.transform.position.x))); } else if (!Hero3.GetComponent <HeroHolder>().Get_GameObject().GetComponent <Hero>().Get_IsDead()) { distFromHero = Mathf.Sqrt(((float)(gameObject.transform.position.x - Hero3.transform.position.x) * (gameObject.transform.position.x - Hero3.transform.position.x))); } // State Transitions if (distFromHero < 7.5) { state = States.Run; animator.SetTrigger("Run"); } else { state = States.Idle; animator.SetTrigger("Idle"); } if (Hp <= 0) { state = States.Death; } // States switch (state) { case States.Idle: foreach (GameObject hero in HeroList) { if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); temp.x -= Time.deltaTime * 0.8f; gameObject.transform.position = temp; } } break; case States.Run: foreach (GameObject hero in HeroList) { Vector3 temp = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); if (!gameObject.GetComponent <BoxCollider2D>().IsTouching(hero.GetComponent <HeroHolder>().Get_GameObject().GetComponent <BoxCollider2D>())) { temp.x -= Time.deltaTime; gameObject.transform.position = temp; } } break; case States.Death: Destroy(gameObject.GetComponent <BoxCollider2D> ()); animator.enabled = false; if (gameObject.transform.position.y < -(Screen.height / 20)) { gameObject.SetActive(false); TutorialManager.counter++; } break; default: break; } }