Beispiel #1
0
    void Quest()
    {
        eQuestType eType = (eQuestType)tile[currentTileIdx].eTile;

        //bool flag = dli_CurrenQuest.ContainsKey(eType);

        eStage eStage = (eStage)tile[currentTileIdx].stageData.nID;

        if (eStage == eStage.Fire1 || eStage == eStage.Forest1 || eStage == eStage.Ice1)
        {
            dli_CurrenQuest.Add(eType, eStage);
        }
        else if (Player.Ins.questFlagList[tile[currentTileIdx].stageData.nID - 1] == true)
        {
            dli_CurrenQuest.Add(eType, eStage);
        }
    }
Beispiel #2
0
    //퀘스트창에서 완료버튼 누를시
    public void ClickSuccess(int btnIdx)
    {
        //btnIdx = 퀘스트 정보마다 한개씩 버튼을 가지고 있고 그 버튼에 대한 인덱스

        if (successBtn[btnIdx].GetComponent <Image>().color == Color.green)
        {
            //Debug.LogError("이미 완료한 퀘스트 입니다");
            StartCoroutine(PopupText(Define.sQUESTPOPUP_TEXT1));
            return;
        }

        eQuestType eType = (eQuestType)nType;

        //완료 버튼 누른게 어느 스테인지 확인
        int    idx    = 0;
        eStage eStage = eStage.None;

        //d_QuestList에는 내가 현재 클릭한 속성에 대한 퀘스트정보를 가지고있음
        foreach (var val in d_QuestList)
        {
            if (idx > btnIdx)
            {
                break;
            }

            eStage = (eStage)val.Key;
            ++idx;
        }
        //현재 퀘스트가 진행중인건지 확인, Player.Ins.questOpenList 인덱스 0부터 시작 eStage는 1부터 시작
        bool bOpen = Player.Ins.questOpenList[(int)eStage - 1];

        if (!bOpen)
        {
            //Debug.LogError("현재 진행중인 퀘스트가 아닙니다");

            StartCoroutine(PopupText(Define.sQUESTPOPUP_TEXT3));
            return;
        }

        //현재 퀘스트 완료중에 해당 속성이 있는지 확인
        bool bType = GameMng.Ins.dli_CurrenQuest.ContainsKey(eType);

        if (!bType)
        {
            //Debug.LogError("해당 속성 퀘스트를 완료하세요");

            StartCoroutine(PopupText(Define.sQUESTPOPUP_TEXT2));
            return;
        }

        //Debug.LogError("퀘스트 완료");

        //questFlagList 인덱스 0부터 시작 eStage는 1부터 시작 = 현재 진행중인 스테이지
        Player.Ins.questFlagList[(int)eStage - 1] = true;
        //다음 퀘스트 오픈
        Player.Ins.questOpenList[(int)eStage] = true;

        successBtn[btnIdx].GetComponent <Image>().color = Color.green;

        //퀘스트 완료후니까 현재 담고있는 퀘스트 삭제
        GameMng.Ins.dli_CurrenQuest.Remove(eType);

        //퀘스트 보상창
        questRewardBG.color = questRewardBGColor;
        questRewardBG.gameObject.SetActive(true);

        int gemNum = questReward.ReturnGem((int)eStage);

        gem = gemNum;

        if (gemNum == -1)
        {
            Debug.LogError((int)eStage);
        }

        questRewardGemText.text = string.Format("{0}", gemNum);
        questRewardBG.gameObject.SetActive(true);
    }