Esempio n. 1
0
 IEnumerator text_effect(Daily_quest_form day_quest)
 {
     text_done = 0;
     for (int i = 0; i < day_quest.text.Length; i++)
     {
         box_text.text = day_quest.text.Substring(0, i + 1);
         yield return(new WaitForSeconds(0.05f));
     }
     hilight_text.text = day_quest.summary;
     text_done         = 1;
 }
Esempio n. 2
0
    //화면 어두워지면서 퀘스트 주는 거
    public void show_quest_box(Daily_quest_form day_quest)
    {
        quest_bg.SetActive(true);
        quest_giver[day_quest.person].SetActive(true);
        quest_box.gameObject.SetActive(true);
        hilight_text.gameObject.SetActive(true);
        hilight_text.text = "";
        quest_box_touch.SetActive(true);

        text_coroutine = text_effect(day_quest);
        StartCoroutine(text_coroutine);

        triangle_coroutine = triangle_effect();
        StartCoroutine(triangle_coroutine);
    }
Esempio n. 3
0
    //퀘스트 목록에서 클릭했을 시
    public void quest_popup_open()
    {
        button_click.PlayOneShot(button_click.clip);

        //클릭한 오브젝트 찾아서 idx 찾기
        string content_name = EventSystem.current.currentSelectedGameObject.transform.parent.gameObject.name;
        int    idx          = Int32.Parse(content_name);

        Daily_quest_form data = quest_Data.daily_quest_list[idx];

        for (int i = 0; i < 3; i++)
        {
            persons[i].SetActive(false);
        }
        persons[data.person].SetActive(true);
        text.text = data.text; todo_text.text = data.todo; reward_text.text = data.reward;

        //state변경 및 content update
        if (quest_Data.daily_quest_list[idx].state == 0)
        {
            quest_Data.daily_quest_list[idx].state = 1;
        }
        quest_contents_update();

        //reward button 활성화
        reward_active.gameObject.SetActive(false);
        reward_inactive.gameObject.SetActive(false);
        if (quest_Data.daily_quest_list[idx].state == 2)
        {
            reward_active.gameObject.SetActive(true);
        }
        else
        {
            reward_inactive.gameObject.SetActive(true);
        }

        popup.name = idx.ToString();
        popup.SetActive(true);
    }
Esempio n. 4
0
    //퀘스트 목록 업데이트
    public void quest_contents_update()
    {
        //초기화
        popup.SetActive(false);
        content.SetActive(false);
        new_exist.gameObject.SetActive(false);
        done_exist.gameObject.SetActive(false);

        //기존 자식 오브젝트들 삭제하고 다시 생성
        for (int i = 0; i < content_parent.transform.childCount; i++)
        {
            Destroy(content_parent.transform.GetChild(i).gameObject);
        }
        content_parent.transform.DetachChildren();

        // 튜토리얼 퀘스트
        for (int i = 0; i < quest_Data.tutorial_quest_list.Count; i++)
        {
            Tutorial_quest_form data = quest_Data.tutorial_quest_list[i];

            if (data.state != -1)   //퀘스트 목록에 추가할 퀘스트라면
            {
                for (int j = 0; j < 3; j++)
                {
                    quest_states[j].gameObject.SetActive(false);
                }
                finish_inactive.gameObject.SetActive(false);
                finish_active.gameObject.SetActive(false);
                touch.gameObject.SetActive(false);
                //퀘스트 state
                quest_states[data.state].gameObject.SetActive(true);
                touch_x.gameObject.SetActive(true);

                type_text.text = data.type; summary_text.text = data.summary;

                GameObject temp_content = Instantiate(content, new Vector3(0, 0, -376), Quaternion.identity);
                temp_content.transform.SetParent(content_parent.transform);
                temp_content.SetActive(true);
            }
        }

        //일일 퀘스트
        for (int i = 0; i < quest_Data.daily_quest_list.Count; i++)
        {
            Daily_quest_form data = quest_Data.daily_quest_list[i];

            if (data.state != -1)
            {
                if (data.state == 0)
                {
                    new_exist.gameObject.SetActive(true);
                }
                if (data.state == 2)
                {
                    done_exist.gameObject.SetActive(true);
                }

                for (int j = 0; j < 3; j++)
                {
                    quest_states[j].gameObject.SetActive(false);
                }
                finish_inactive.gameObject.SetActive(false);
                finish_active.gameObject.SetActive(false);
                touch_x.gameObject.SetActive(false);
                touch.gameObject.SetActive(true);
                quest_states[data.state].gameObject.SetActive(true);
                if (data.state == 2)
                {
                    finish_active.gameObject.SetActive(true);
                }
                else
                {
                    finish_inactive.gameObject.SetActive(true);
                }

                type_text.text = data.type; summary_text.text = data.summary;

                //content와 popup복제해서 부모 설정하기
                GameObject temp_content = Instantiate(content, new Vector3(0, 0, -376), Quaternion.identity);
                temp_content.transform.SetParent(content_parent.transform);
                temp_content.name = i.ToString();      //이름을 인덱스로 설정
                temp_content.SetActive(true);
            }
        }

        if (new_exist.activeSelf == true || done_exist.activeSelf == true)
        {
            StartCoroutine("quest_icon_effect");
        }

        //json타입 변환 후 저장
        if (quest_Data.daily_quest_list.Count != 0 && quest_Data.tutorial_quest_list.Count != 0)
        {
            string tutorial_quest_save = JsonUtility.ToJson(new Tutorial_Serialization(quest_Data.tutorial_quest_list));
            string daily_quest_save    = JsonUtility.ToJson(new Daily_Serialization(quest_Data.daily_quest_list));
            PlayerPrefs.SetString("tutorial_quest", tutorial_quest_save);
            PlayerPrefs.SetString("daily_quest", daily_quest_save);
        }
    }