private void ReceiveSnowball(TargetReceiver receiver, GameObject snowballObj) { stateMachine.ChangeState("Boss3_Stop"); //StopAllCoroutines(); for (int i = 0; i < snowballs.Count;) { Snowball snowball = snowballs[i]; snowballs.Remove(snowball); Destroy(snowball.gameObject); } StartCoroutine(FallDown()); }
private void ReceiveTarget(TargetReceiver receiver, GameObject meteor) { if (currProjectile == null) { return; } print("Received " + meteor.name); if (ReceiveCount == 0) { currProjectile.OnHit -= HitTarget; currProjectile.OnMiss -= MissTarget; currProjectile = null; GameObject shield = Shields[0]; Shields.RemoveAt(0); Destroy(shield.gameObject); Destroy(meteor.gameObject); if (Shields.Count == 0) { Aura.SetActive(false); stateMachine.ChangeState("Boss4_MeteorShower"); } else { StartCoroutine(SpawnProjectileDelay()); } } else { ReceiveCount--; Vector3 dir = Vector3.up; dir *= ProjectileImpulse; //currProjectile.SpeedOverTime -= .01f; currProjectile.Hit(this.gameObject, dir); } }