public void UpdateUnlockPanel(Monster monster)
    {
        if (characterReader == null)
        {
            return;
        }
        if (monster.GetLevel() < index)
        {
            SetIsLocked(true);
        }
        else
        {
            SetIsLocked(false);
            if (index == 1 || index == monster.equippedSkill)
            {
                equipped.gameObject.SetActive(true);
            }
            else
            {
                equipped.gameObject.SetActive(monster.equippedSkill == index?true:false);
            }

            skill            = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), index);
            skillname.text   = skill.name;
            skillicon.sprite = skill.sprite;
        }
    }
    public void OnPointerEnter(int s)
    {
        switch (s)
        {
        case 1:
            skill = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), 1);
            skilldescription.gameObject.SetActive(true);
            break;

        case 2:
            skill = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), monster.GetEquippedSkill());
            if (monster.GetLevel() >= 3)
            {
                skilldescription.gameObject.SetActive(true);
            }
            break;

        case 3:
            skill = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), monster.GetEquippedSkill() == 3?5:3);
            skilldescription.text = skill.name + "\n" + skill.description;
            if (monster.GetLevel() >= 5)
            {
                skilldescription.gameObject.SetActive(true);
            }
            return;

        default:
            return;
        }
        skilldescription.text = skill.description;
        OnPointerEnterAttack(s);
    }
    public void UpdateGeneral()
    {
        if (characterReader == null)
        {
            characterReader = FindObjectOfType <GameManager>().GetComponent <GameManager>().characterReader;
        }

        currentMonster = menu.currentMonster;
        nameText.text  = currentMonster.Name;
        lifeText.text  = currentMonster.currentHP + "/" + currentMonster.GetMaxHP();

        if ((sprite = Resources.Load("Image/character/" + currentMonster.Name, typeof(Sprite)) as Sprite) != null)
        {
            characterImg.sprite = sprite;
        }
        else
        {
            int lv = currentMonster.GetLevel();
            while ((sprite = Resources.Load("Image/character/" + currentMonster.Name + lv, typeof(Sprite)) as Sprite) == null && lv > 1)
            {
                lv--;
            }
            if ((sprite = Resources.Load("Image/character/" + currentMonster.Name + lv, typeof(Sprite)) as Sprite) != null)
            {
                characterImg.sprite = sprite;
            }
        }

        skill = characterReader.GetMonsterSkillUI(currentMonster.monsterType.ToString(), 1);
        if (skill != null)
        {
            skillIcon1.sprite = skill.sprite;
        }

        skill = characterReader.GetMonsterSkillUI(currentMonster.monsterType.ToString(), currentMonster.GetEquippedSkill());
        if (skill != null)
        {
            if (currentMonster.GetLevel() >= 3)
            {
                skillIcon2.sprite = skill.sprite;
            }
            else
            {
                skillIcon2.sprite = Resources.Load("UI/skill/NoSkill", typeof(Sprite)) as Sprite;
            }
        }
        if (currentMonster.monsterType == MonsterType.boss)
        {
            dismissBtn.gameObject.SetActive(false);
        }
        else
        {
            dismissBtn.gameObject.SetActive(true);
        }
    }
    public void UpdateAttackPanel()
    {
        if (monster == null)
        {
            return;
        }

        if (monster.actionType == ActionType.AttackEnds || monster.actionType == ActionType.Nonactionable)
        {
            SetAttackPanelDisabled();
            return;
        }

        skill = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), 1);
        if (skill != null)
        {
            skill1.text = skill.name;
            buttonskill1.interactable = true;
            icon1.sprite = skill.sprite;
        }

        skill = characterReader.GetMonsterSkillUI(monster.monsterType.ToString(), monster.GetEquippedSkill());
        if (skill != null)
        {
            if (monster.GetLevel() >= 3)
            {
                skill2.text = skill.name;
                buttonskill2.interactable = true;
                icon2.sprite = skill.sprite;
            }
            else
            {
                skill2.text = "Locked";
                buttonskill2.interactable = false;
                icon2.sprite = Resources.Load("UI/skill/NoSkill", typeof(Sprite)) as Sprite;
            }
        }

        if (monster.GetLevel() < 5)
        {
            buttonswitch.interactable = false;
            textswitch.text           = "Locked";
        }
        else
        {
            buttonswitch.interactable = true;
            textswitch.text           = "Switch";
        }
        skill1.gameObject.SetActive(false);
        skill2.gameObject.SetActive(false);
        textswitch.gameObject.SetActive(false);
    }