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

162 lines
6.2 KiB
C#
Raw Permalink Normal View History

2024-12-15 01:39:39 +00:00
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class GuideQuestUI : MonoBehaviour
{
public Image[] sprite; // 0 보상
2024-12-29 00:15:03 +00:00
public TextMeshProUGUI[] labels; // 0 보상 개수, 1 할 일, 2 최대 퀘스트 개수, 3 퀘스트 카운트
public GameObject[] gos; // 0 보상 받을 수 있음
2024-12-15 01:39:39 +00:00
public Animation m_Anim; // GuideQuestLeft GuideQuestRight
MissionListTableData Tdata;
2024-12-15 01:39:39 +00:00
List<GameObject> List_CurArrow = new List<GameObject>();
bool bOn = true, showtoast = false;
2024-12-15 01:39:39 +00:00
private void Awake()
{
m_Anim.Play("GuideQuestRight");
}
public ePurpose Get_Purpose() { return !DSUtil.CheckNull(Tdata) ? Tdata.e_MissionConditionType : ePurpose.None; }
2024-12-15 01:39:39 +00:00
public void Add_Arrow(GameObject _arrow) { List_CurArrow.Add(_arrow); }
public void Set()
{
var sdata = ServerInfo.Ins.m_ServerData;
var step = sdata.GuideQuest.Step;
// 쿠폰 입력이 있을 경우
2024-12-15 01:39:39 +00:00
#if UNITY_ANDROID
//labels[2].text = "38";
//if (step == 38) Set_Complete();
2024-12-15 01:39:39 +00:00
#else
//labels[2].text = "37";
//if (step == 37) Set_Complete();
2024-12-15 01:39:39 +00:00
#endif
//else
2024-12-15 01:39:39 +00:00
{
Tdata = table_missionlist.Ins.Get_GuideData_orNull(step);
if (Get_Purpose() == ePurpose.None)
gameObject.SetActive(false);
else
{
2025-03-23 23:44:09 +00:00
//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}";
2025-03-23 23:53:01 +00:00
Set_Count();
2024-12-15 01:39:39 +00:00
// // 선행됐는 지 체크
// 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;
// }
}
2024-12-15 01:39:39 +00:00
}
2025-03-23 23:53:01 +00:00
}
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);
2024-12-15 01:39:39 +00:00
}
2025-03-23 23:53:01 +00:00
public void Add_GuideQuest(ePurpose _purpose, int _v)
2024-12-15 01:39:39 +00:00
{
2025-03-23 23:53:01 +00:00
if (!DSUtil.CheckNull(Tdata) && Tdata.e_MissionConditionType == _purpose)
2024-12-15 01:39:39 +00:00
{
2025-03-23 23:53:01 +00:00
var sdata = ServerInfo.Ins.m_ServerData;
sdata.GuideQuest.Count += _v;
2025-03-23 23:53:01 +00:00
Set_Count();
if (!showtoast && gos[0].activeSelf)
{
showtoast = true;
ToastUI.Ins.Set(161);
}
2024-12-15 01:39:39 +00:00
List_CurArrow.ForEach(f => f.SetActive(false));
List_CurArrow.Clear();
2025-03-23 23:53:01 +00:00
//GuideQuestArrow.Ins.AllArrowOff();
2024-12-15 01:39:39 +00:00
}
}
2024-12-29 00:15:03 +00:00
public void OnClick_ImmGo()
{
}
2024-12-15 01:39:39 +00:00
public void OnClick_Reward()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.GuideQuest.Count >= Tdata.l_MissionConditionCount)
2024-12-15 01:39:39 +00:00
{
2025-08-08 03:41:37 +00:00
ServerInfo.Ins.Save_GuideQuest(result =>
{
showtoast = false;
sdata.GuideQuest.Count = 0;
sdata.GuideQuest.Step = result.Step;
ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = Tdata.n_RewardValue, amount = Tdata.n_RewardCount });
Set();
});
2024-12-15 01:39:39 +00:00
}
}
public void OnClick_OnOff()
{
bOn = !bOn;
if (bOn) m_Anim.Play("GuideQuestRight");
else m_Anim.Play("GuideQuestLeft");
}
}