using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class Event_Quest : Event_Base
{
    [TextArea(2, 3)]
    [SerializeField]
    private string contentLog;

    public QuestInfo questInfo;
    public UnityEvent successEvent;
    public int questNum;//분기점
    public bool isSuccess;

    public override void eventEnableToggle(bool isEnable)
    {
        if (isEnable)
        {
            questReset();
        }
    }
    public void questReset()
    {
        isSuccess = false;
    }
    public void questSuccess()
    {//현제 구간 완료 - 클릭했을때 들어옴
        isSuccess = true;
        clickEventer.isEnable = false;
        successEvent?.Invoke();
    }
    public void questEnd()
    {//퀘스트가 완전히끝났을때 호출됨
        //오직 애니메이션 이벤트에서만 호출됨
        questInfo.isSuccess = true;
        QuestManager.Instance.uiUpdate();
        this.gameObject.SetActive(false);
    }
    public override void eventCheck()
    {
        if (isSuccess)
        {
            clickEventer.isEnable = false;
            return;
        }
        if (questInfo != null)
        {
            //퀘스트마다 다른 체크포인트가 필요함
            switch (questInfo.questKind)
            {
                case QuestKind.None:
                    break;
                case QuestKind.ManWoman:
                    //여장남자
                    //쉐프복으로 칵테일 1번 주면 화장실감 - 파우더를 놓고옴
                    switch (questNum)
                    {
                        case 0:
                            if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Cocktail))
                            {
                                //InventoryManager.Instance.selectSlotUse();
                                //물마시기 호출 - 화장실로 이동
                                questSuccess();
                            }
                            break;
                        case 1:
                            //화장실 앞에서 잠시 서있을때 클릭해야함
                            //퀘스트 성공
                            questSuccess();
                            break;
                    }

                    break;
                case QuestKind.ClownMakeup:
                    //분장하는 광대
                    //파우더를 갖고 분장실 준비중인 광대 클릭 - 콧수염 안경을 가져갈 수 있음
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Powder))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Hairpiece:
                    //가발
                    //창문을 열면 벗겨지는 가발
                    questSuccess();
                    break;
                case QuestKind.Terrace:
                    //불륜
                    //경비 아래 쪽지를 주워서 해당하는 여자에게 주면 수풀로 이동하고 하트꽃이 핌-경비 복장을 뱉음
                    switch (questNum)
                    {
                        case 0:
                            //쪽지를 들고 여자에게 클릭
                            if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Memo))
                            {
                                questSuccess();
                            }
                            break;
                        case 1:
                            questSuccess();
                            break;
                    }
                    break;
                case QuestKind.Slap:
                    //뺨
                    //팔짱낀 남자가 지나갈때 맞춰서 여자 치마를 들추면 뺨맞음
                    questSuccess();
                    break;
                case QuestKind.Jackpot:
                    //화장실 잭팟
                    //세명에게 독이든 샐러드를 주면 화장실에 들어가서 안나옴
                    switch (questNum)
                    {
                        case 0:
                            if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.PoisonFood))
                            {
                                questSuccess();
                            }
                            break;
                        case 1: //성공 카운트가 3번이면 클릭 온
                            questSuccess();
                            break;
                    }
                    break;
                case QuestKind.Puppycut:
                    //펑크한 강아지 고속도로
                    //분장실에서 바리캉을 찾고 더워 보이는 강아지에게 클릭
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Clipper))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.GlassSlipper:
                    //유리구두의 주인은
                    //쿠파에게 드레스를 뺏고 창고에 신데렐라에게 주면 발견
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Drass))
                    {
                        questSuccess();
                    }

                    break;
                case QuestKind.StinkSlippe:
                    //신데렐라 오래된 구두 - 냄새에 불독
                    //신데렐라가 유리구두를 신을때 벗습니다. 냄새가 고약합니다. - 클릭하면 획득함
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.GlassSlipper))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Babary:
                    //바바리맨
                    //불륜남이 분장신 앞을 기웃 거립니다. 클릭하면 옷이 벌어집니다.
                    questSuccess();
                    break;
                case QuestKind.Mbti_I:
                    //극 I 성향
                    //파티를 즐기지 않고 구성진곳에 숨어있습니다.
                    questSuccess();
                    break;
                case QuestKind.Oldbody:
                    //노안아이
                    //장난감을 구해서 아이에게 사용하면 장난감을 가지고 놉니다. - 사탕을 줍니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Toy))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Mamamia:
                    //마마미아
                    //사탕을 주면 플레이어를 따라 다닙니다. 입구쪽에 엄마에게 데려가 주면 됩니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Candy))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Prizon:
                    //탈옥수
                    //그냥 클릭하면 알 수 있습니다.
                    questSuccess();
                    break;
                case QuestKind.Poison:
                    //독이든 샐러드
                    //셰프 복장으로 주방에 들어가서 은수저로 음식을 클릭하면 알 수 있습니다. - 독 샐러드를 얻습니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.SilverSpoon))
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Clover:
                    //화단에서 클러버를 클릭
                    questSuccess();
                    break;
                case QuestKind.Koopa:
                    //콧수염 안경을 입고 쿠파에게 가면 무서워서 도망치고 드레스를 얻을 수 있습니다.

                    //if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.SilverSpoon))
                    if (InventoryManager.Instance.nowClothes == ItemKind.C_Glasses)
                    {
                        questSuccess();
                    }
                    break;
                case QuestKind.Princess:
                    //칵테일을 1번 주고 레버를 고쳐서 당기면 춤을 춥니다. - 투구를 남깁니다.
                    switch (questNum)
                    {
                        case 0:
                            if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Cocktail))
                            {
                                questSuccess();
                            }
                            break;
                        case 1:
                            //if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.MopStick))
                            //{//스틱 들고 레버 수리
                            questSuccess();
                            //}
                            break;
                    }
                    break;
                case QuestKind.RamenDev:
                    //라면을 얻어서 주면 라면을 먹고 - 행주를 줍니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Ranmen))
                    {//스틱 들고 레버 수리
                        questSuccess();
                    }
                    break;
                case QuestKind.HellCode:
                    //지하 감옥 열쇠를 얻어서 문을 열면 -  라면을 줍니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Dumbbell))
                    {//스틱 들고 레버 수리
                        questSuccess();
                    }
                    break;
                case QuestKind.HealthGirl:
                    //덤밸을 가방에서 제거하면 입장하고 화장실에서 대걸래를 - 스틱, 머리로 분리합니다.
                    questSuccess();

                    break;
                case QuestKind.LifeStatue:
                    //행주로 얼굴을 닦고 앞에 서있으면 붉어지면서 찾습니다.
                    switch (questNum)
                    {
                        case 0:
                            if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.Dishcloth))
                            {
                                questSuccess();
                            }
                            break;
                            //case 1:
                            //    questSuccess();
                            //    break;
                    }
                    break;
                case QuestKind.General:
                    //투구를 조합해서 건내주면 감옥 열쇠를 줍니다.
                    if (ItemInfo.CheckItemKind(InventoryManager.Instance.selectItemInfo, ItemKind.GeneralHead))
                    {
                        questSuccess();
                    }
                    break;
                default:
                    break;
            }
        }
    }
}
