using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class GuideQuestUI : MonoBehaviour { public Image[] sprite; // 0 보상 public TextMeshProUGUI[] labels; // 0 보상 개수, 1 할 일, 2 최대 퀘스트 개수, 3 퀘스트 카운트 public GameObject[] gos; // 0 보상 받을 수 있음 public Animation m_Anim; // GuideQuestLeft GuideQuestRight MissionListTableData Tdata; List List_CurArrow = new List(); bool bOn = true, showtoast = false; private void Awake() { m_Anim.Play("GuideQuestRight"); } public ePurpose Get_Purpose() { return !DSUtil.CheckNull(Tdata) ? Tdata.e_MissionConditionType : ePurpose.None; } public void Add_Arrow(GameObject _arrow) { List_CurArrow.Add(_arrow); } public void Set() { var sdata = ServerInfo.Ins.m_ServerData; var step = sdata.GuideQuest.Step; // 쿠폰 입력이 있을 경우 #if UNITY_ANDROID //labels[2].text = "38"; //if (step == 38) Set_Complete(); #else //labels[2].text = "37"; //if (step == 37) Set_Complete(); #endif //else { Tdata = table_missionlist.Ins.Get_GuideData_orNull(step); if (Get_Purpose() == ePurpose.None) gameObject.SetActive(false); else { //GuideQuestArrow.Ins.Set(Tdata.ID, sdata.Get_Common(eCommon.GuideClear) == 0); sprite[0].sprite = UIAtlasMgr.Ins.Get_Sprite(Tdata.n_RewardValue); labels[0].text = DSUtil.GetThousandCommaText(Tdata.n_RewardCount); labels[1].text = Tdata.Get_Desc(); labels[2].text = $"Main - {Tdata.n_MissionIndex}"; Set_Count(); // // 선행됐는 지 체크 // switch (Tdata.e_Purpose) // { // case ePurpose.JoystickChest: // break; // case ePurpose.AutoTarget: // case ePurpose.AutoMagic: // if (sdata.Get_Common(eCommon.Auto) == 1) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.Clear1_2: // //if (sdata.Get_Common(eCommon.MaxMapID) > 1 || sdata.Get_Common(eCommon.MaxStage) > 2 || MobInfo.Ins.Get_CurStage() > 2) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.Clear1_5: // //if (sdata.Get_Common(eCommon.MaxMapID) > 1 || sdata.Get_Common(eCommon.MaxStage) > 5 || MobInfo.Ins.Get_CurStage() > 5) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.Clear1_10: // //if (sdata.Get_Common(eCommon.MaxMapID) > 1 || sdata.Get_Common(eCommon.MaxStage) > 10 || MobInfo.Ins.Get_CurStage() > 10) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.EqiupWeapon: // if (sdata.Get_EqiupmentEquip(eItem.Weapon) != 1) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.EqiupFairy: // if (sdata.Get_EqiupmentEquip(eItem.Fairy) > 0) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.EquipPet: // break; // case ePurpose.EquipMagic: // for (int i = 1; i < 6; i++) // { // if (sdata.Get_EquipSkillID(i) > 0) // { // Add_GuideQuest(Tdata.e_Purpose); // break; // } // } // break; // case ePurpose.UsePotion: // if (sdata.Is_UsePotion()) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.NickChange: // if (sdata.Get_Common(eCommon.NickChange) > 0) // Add_GuideQuest(Tdata.e_Purpose); // break; // case ePurpose.ChapterChange: // //if (sdata.Get_Common(eCommon.Chapter) > 1) // Add_GuideQuest(Tdata.e_Purpose); // break; // } } } } void Set_Count() { var sdata = ServerInfo.Ins.m_ServerData; labels[3].text = $"{sdata.GuideQuest.Count}/{Tdata.l_MissionConditionCount}"; gos[0].SetActive(sdata.GuideQuest.Count >= Tdata.l_MissionConditionCount); } public void Add_GuideQuest(ePurpose _purpose, int _v) { if (!DSUtil.CheckNull(Tdata) && Tdata.e_MissionConditionType == _purpose) { var sdata = ServerInfo.Ins.m_ServerData; sdata.GuideQuest.Count += _v; Set_Count(); if (!showtoast && gos[0].activeSelf) { showtoast = true; ToastUI.Ins.Set(161); } List_CurArrow.ForEach(f => f.SetActive(false)); List_CurArrow.Clear(); //GuideQuestArrow.Ins.AllArrowOff(); } } public void OnClick_ImmGo() { } public void OnClick_Reward() { var sdata = ServerInfo.Ins.m_ServerData; if (sdata.GuideQuest.Count >= Tdata.l_MissionConditionCount) { showtoast = false; sdata.GuideQuest.Count = 0; ++sdata.GuideQuest.Step; //GetItemUI.Ins.Set(sdata.Add_Item(new ItemData(Tdata.e_Reward, Tdata.n_RewardID, Tdata.n_RewardAmount, DSUtil.Format("guide {0}", Tdata.ID), eUICardType.GetItem))); //GetItemUI.Ins.Show_Items(); Set(); } } public void OnClick_OnOff() { bOn = !bOn; if (bOn) m_Anim.Play("GuideQuestRight"); else m_Anim.Play("GuideQuestLeft"); } }