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;
    }
Exemple #3
0
    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();
    }
 void Start()
 {
     city        = GetComponent <City>();
     City_Damage = GetComponent <City_Damage>();
     StartCoroutine(Situation());
 }