IEnumerator EndTurn(int dalay = 1)
        {
            yield return(new WaitForSeconds(dalay));

            _monFocus  = 0;
            _heroFocus = 0;
            if (_roundBattle == _RoundBattle.ENEMY)
            {
                _roundBattle = _RoundBattle.PLAYER;
                _effectFocus.SetActive(true);
                LoadEvent();
                _selectATKCon.UpdateAttackSlot();
                EndTurnSetting();
                yield return(new WaitForSeconds(1));

                ShowTurnBattleNotify();
                _core._actionPointPanel.transform.Find("EndTurnButton").gameObject.SetActive(true);
                _core.OpenActionPanel(_core._attackPanel);
                _isEscape   = false;
                Crystal     = _turnAround;
                _crystalMon = _turnAround;
                if (_core._cutscene != null)
                {
                    if (_turnAround == 2)
                    {
                        _core._cutscene.GetComponent <Cutscene>().TutorialPlay(_core._mainMenuBG.transform.Find("ItemButton"), true,
                                                                               "ดูเหมือนฮีโร่จะได้รับบาดเจ็บ ไหนลองใช้ยาฟื้นฟูเลือดดูซิ..");
                    }
                    if (_turnAround == 3)
                    {
                        _core._cutscene.GetComponent <Cutscene>().TutorialPlay(_core._miniGameMenu.transform.Find("TutorialButton"), true,
                                                                               "และในรอบต่อๆไปเจ้าจะได้คริสตัลเพิ่มขึ้น ข้าหวังว่าตอนนี้เจ้าคงพอจะเข้าใจระบบการต่อสู้ขึ้นมาบ้างแล้วซินะ หากอยากรู้อะไรเพิ่มเติมก็ลองเปิดคู่มือนักผจญภัยดูนะ");
                    }
                }
            }
            else
            {
                _roundBattle = _RoundBattle.ENEMY;
                _effectFocus.SetActive(false);
                yield return(new WaitForSeconds(1));

                ShowTurnBattleNotify();
                //Debug.Log("runAI 1");
                StartCoroutine(RunMonsterAI());
            }
        }
        void OnEnable()
        {
            Camera.main.orthographicSize = 1f;
            _monster = new List <Monster>();
            foreach (Monster mon in _mapCon.monsterList)
            {
                mon._icon = _monCom.LoadMonIcon(mon);
                _monster.Add(mon);
            }
            for (int i = _mapCon.monsterList.Length; i < 5; i++)
            {
                _monCom._monAvatarList[i].gameObject.SetActive(false);
            }
            _hero = new List <Hero>();
            for (int i = 0; i < _mapCon._teamList.Count; i++)
            {
                if (_mapCon._teamList[i].id == -1)
                {
                    _heroCom._heroAvatarList[i].gameObject.SetActive(false);
                }
                else
                {
                    Hero newHero = new Hero(i);
                    newHero.hero  = _mapCon._teamList[i];
                    newHero._icon = _heroCom.LoadHeroIcon(newHero.hero);
                    _hero.Add(newHero);
                }
            }
            _heroFocus = 0;
            _monFocus  = 0;

            _monData = new Monster[_monster.Count];
            for (int i = 0; i < _monster.Count; i++)
            {
                _monster[i].LoadSprite();
                _monData[i] = _monster[i];
            }
            _heroData = new Hero[_hero.Count];
            for (int i = 0; i < _hero.Count; i++)
            {
                _hero[i].LoadSprite();
                _heroData[i] = _hero[i];
            }

            UpdateMonsterHP();
            _bgSprite = _core._bgList[Random.Range(0, _core._bgList.Length)];
            transform.Find("BG").GetComponent <SpriteRenderer>().sprite      = _bgSprite;
            transform.Find("BGLeft").GetComponent <SpriteRenderer>().sprite  = _bgSprite;
            transform.Find("BGRight").GetComponent <SpriteRenderer>().sprite = _bgSprite;
            _battleState = _BattleState.Start;
            _core._heroPanel.SetActive(true);
            _isEscape    = false;
            _roundBattle = _RoundBattle.PLAYER;
            _monsterList = _core._currentMonsterBattle;
            _teamList    = _core._teamSetup[_core._currentTeamIsSelect - 1];
            _turnAround  = 0;
            _eventAround = 0;
            _selectATKCon._blockCount = 0;
            Crystal     = 1;
            _crystalMon = 1;
            SetPanel(true);
            _selectATKCon.UpdateAttackSlot();
            _damage_of_each_hero = new int[_monData.Length, _heroData.Length];
            LoadEvent();
            CreateFocusEffect(GetMonFocus()._avatar.transform);
            ShowTurnBattleNotify();
            if (_core._cutscene != null)
            {
                _core._cutscene.GetComponent <Cutscene>().TutorialPlay(_core._attackPanel.transform.Find("ActionMask").Find("GridView").GetChild(0), true,
                                                                       "ในโหมดต่อสู้นี้ถ้าเจ้ากำจัดมอนสเตอร์หมดก็จะชนะ_แต่ถ้าทีมเจ้าแพ้จะโดนดาเมจตามจำนวนมอนสเตอร์ที่เหลืออยู่บนสนาม_หากหลอดเลือดที่มุมล่างจอเหลือศูนย์เจ้าคงรู้นะว่าจะเกิดอะไรขึ้น!");
            }
        }