IEnumerator Blackout() { Collider2D[] aroundCities = Physics2D.OverlapCircleAll(infectedCity.transform.position, 200f, layerMask); foreach (Collider2D aroundCity in aroundCities) { City_Damage city_Damage = aroundCity.GetComponentInParent <City_Damage>(); city_Damage.Disaster_Class = 3; city_Damage.Disaster = "정전"; city_Damage.Start_Disaster(damage); yield return(new WaitForSeconds(0.1f)); } }
IEnumerator Typhoon() { Random.InitState((int)(Time.time * 100f)); int randX = Random.Range(20, 100); int randY = Random.Range(20, 100); Collider2D[] near_Cities = Physics2D.OverlapAreaAll(transform.position, transform.position + new Vector3(randX, randY, 0), layerMask); while (near_Cities.Length > 0) { for (int i = 0; i < near_Cities.Length; i++) { City_Damage city = near_Cities[i].GetComponentInParent <City_Damage>(); city.Disaster = "태풍"; city.Disaster_Class = 3; city.Start_Disaster(damage); yield return(new WaitForSeconds(0.1f)); } transform.Translate(randX, randY, 0); near_Cities = Physics2D.OverlapAreaAll(transform.position, transform.position + new Vector3(randX, randY, 0), layerMask); } transform.position = originPos; }
IEnumerator War_Path1(Transform path, int posX, int posY, int index) { Collider2D[] aroundCities = Physics2D.OverlapCircleAll(path.position, radius, layerMask); while (aroundCities.Length > 0) { foreach (Collider2D aroundCity in aroundCities) { City_Damage city_Damage = aroundCity.GetComponentInParent <City_Damage>(); city_Damage.Disaster_Class = 5; city_Damage.Disaster = "전쟁"; city_Damage.Start_Disaster(damage); yield return(new WaitForSeconds(0.1f)); } yield return(new WaitForSeconds(0.1f)); path.Translate(posX, posY, 0); //radius += 100; aroundCities = Physics2D.OverlapCircleAll(path.position, radius, layerMask); } isEnd[index] = true; CheckEnd(); }