using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class GuideQuestUI : MonoBehaviour { public Image[] sprite; // 0 타겟, 1 타겟 서브, 2 보상 public TextMeshProUGUI[] labels; // 0 보상 개수, 1 할 일, 2 최대 퀘스트 개수, 3 퀘스트 카운트 public GameObject[] gos; // 0 보상 받을 수 있음, 1 화면 드래그 public GuideQuestComplete m_GuideQuestComplete; public Animation m_Anim; // GuideQuestLeft GuideQuestRight GuideQuestTableData Tdata; List List_CurArrow = new List(); bool bOn = true; private void Awake() { m_Anim.Play("GuideQuestRight"); } public ePurpose Get_Purpose() { return Tdata != null ? Tdata.e_Purpose : ePurpose.Complete; } public void Add_Arrow(GameObject _arrow) { List_CurArrow.Add(_arrow); } public void Set() { m_GuideQuestComplete.Check(); var sdata = ServerInfo.Ins.m_ServerData; var step = sdata.Get_Common(eCommon.GuideStep); #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_guidequest.Ins.Get_Data(step); if (Tdata.e_Purpose == ePurpose.Complete) gameObject.SetActive(false); else { //GuideQuestArrow.Ins.Set(Tdata.ID, sdata.Get_Common(eCommon.GuideClear) == 0); sprite[0].sprite = UIAtlasMgr.Ins.Get_Sprite(Tdata.Target); sprite[1].sprite = UIAtlasMgr.Ins.Get_Sprite(Tdata.TargetSub); sprite[2].sprite = UIAtlasMgr.Ins.Get_Sprite(DSUtil.Get_ItemSpriteInfo(Tdata.e_Reward, Tdata.n_RewardID).Icon); labels[0].text = DSUtil.GetThousandCommaText(Tdata.n_RewardAmount); labels[1].text = Tdata.Desc; labels[3].text = (Tdata.ID + 1).ToString(); gos[0].SetActive(sdata.Get_Common(eCommon.GuideClear) > 0); gos[1].SetActive(Tdata.ID == 3); // 선행됐는 지 체크 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_Complete() { gameObject.SetActive(false); Tdata = null; var sdata = ServerInfo.Ins.m_ServerData; sdata.Set_Common(eCommon.GuideClear, 0); sdata.Set_Common(eCommon.GuideStep, 39); ServerInfo.Ins.GuideQuestComplete(() => { m_GuideQuestComplete.Set(); GameUI.Ins.LobbyUI.Set_MailNoti(true); }); } public void Add_GuideQuest(ePurpose _purpose) { if (Tdata != null && Tdata.e_Purpose == _purpose) { ServerInfo.Ins.m_ServerData.Add_Common(eCommon.GuideClear); gos[0].SetActive(true); ToastUI.Ins.Set(161); List_CurArrow.ForEach(f => f.SetActive(false)); List_CurArrow.Clear(); GuideQuestArrow.Ins.AllArrowOff(); if (_purpose == ePurpose.FreePackage) ShopEventCheck.Ins.gameObject.SetActive(true); } } public void OnClick_ImmGo() { } public void OnClick_Reward() { var sdata = ServerInfo.Ins.m_ServerData; if (sdata.Get_Common(eCommon.GuideClear) > 0) { sdata.Set_Common(eCommon.GuideClear, 0); sdata.Add_Common(eCommon.GuideStep); 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"); } }