Example #1
0
        public sealed override void Play()
        {
            Transform grid = PlayerController.GetInstance().grids[0];
            for (int i = 0; i < grid.childCount; i++)
            {
                if (grid.GetChild(i).GetComponent<CardProperty>().effect == Global.Effect.clear_sky ||
                    grid.GetChild(i).GetComponent<CardProperty>().effect == Global.Effect.frost ||
                    grid.GetChild(i).GetComponent<CardProperty>().effect == Global.Effect.fog ||
                    grid.GetChild(i).GetComponent<CardProperty>().effect == Global.Effect.rain)
                    cardList.Add(grid.GetChild(i));
            }

            int index = -1;
            index = HasWeather(Global.Effect.frost);
            if (index != -1 &&
                PowerController.GetInstance().enemy[0] + 10 < PowerController.GetInstance().player[0] &&
                !WeatherController.GetInstance().weather[0])
            {
                WeatherController.GetInstance().Frost();
                (cardList[index] as Transform).SetTarget(WeatherController.GetInstance().grid);
                base.Play();
                return;
            }//霜冻

            index = HasWeather(Global.Effect.fog);
            if (index != -1 &&
                PowerController.GetInstance().enemy[1] + 10 < PowerController.GetInstance().player[1] &&
                !WeatherController.GetInstance().weather[1])
            {
                WeatherController.GetInstance().Fog();
                (cardList[index] as Transform).SetTarget(WeatherController.GetInstance().grid);
                base.Play();
                return;
            }//雾天

            index = HasWeather(Global.Effect.rain);
            if (index != -1 &&
                  PowerController.GetInstance().enemy[2] + 10 < PowerController.GetInstance().player[2] &&
              !WeatherController.GetInstance().weather[2])
            {
                WeatherController.GetInstance().Rain();
                (cardList[index] as Transform).SetTarget(WeatherController.GetInstance().grid);
                base.Play();
                return;
            }//地形雨

            int playerPower = 0;
            int enemyPower = 0;
            for (int i = 2; i < 5; i++)
            {
                for (int ii = 0; ii < PlayerController.GetInstance().grids[i].childCount; ii++)
                    playerPower += PlayerController.GetInstance().grids[i].GetChild(ii).GetComponent<CardProperty>().power;
                for (int ii = 0; ii < EnemyController.GetInstance().grids[i].childCount; ii++)
                    enemyPower += EnemyController.GetInstance().grids[i].GetChild(ii).GetComponent<CardProperty>().power;
            }
            index = HasWeather(Global.Effect.clear_sky);
            if (index != -1 &&
                enemyPower > playerPower && (
                WeatherController.GetInstance().weather[0] ||
                WeatherController.GetInstance().weather[1] ||
                WeatherController.GetInstance().weather[2]))
            {
                WeatherController.GetInstance().ClearSky();
                (cardList[index] as Transform).SetTarget(EnemyController.GetInstance().grids[5]);
                base.Play();
                return;
            }//晴天
        }