Project_WL/Assets/Script/UI/Common/GuideQuestUI.cs

175 lines
6.7 KiB
C#

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<GameObject> List_CurArrow = new List<GameObject>();
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.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_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.Get_Common(eCommon.GuideCount)}/{Tdata.l_MissionConditionCount}";
gos[0].SetActive(sdata.Get_Common(eCommon.GuideCount) >= Tdata.l_MissionConditionCount);
}
void Set_Complete()
{
gameObject.SetActive(false);
Tdata = null;
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Set_Common(eCommon.GuideCount, 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, int _v)
{
if (!DSUtil.CheckNull(Tdata) && Tdata.e_MissionConditionType == _purpose)
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Add_Common(eCommon.GuideCount, _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.Get_Common(eCommon.GuideCount) >= Tdata.l_MissionConditionCount)
{
showtoast = false;
sdata.Set_Common(eCommon.GuideCount, 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");
}
}