Project_WL/Assets/Script/UI/PC/PCUI.cs

97 lines
3.7 KiB
C#
Raw Normal View History

2025-02-14 01:57:06 +00:00
using System.Collections.Generic;
2025-07-30 00:23:52 +00:00
using System.Linq;
2025-02-14 01:57:06 +00:00
2024-12-15 01:39:39 +00:00
public class PCUI : BotMenuBase
{
public PCUIMenu[] m_PCMenu; // 0 정보
2025-02-14 01:57:06 +00:00
public TabUIBase m_Tab;
List<TabUIData> list_TabData = new List<TabUIData>
{
new TabUIData{ n_btnName = 227, },new TabUIData{ n_btnName = 228, },new TabUIData{ n_btnName = 229, },
new TabUIData{ n_btnName = 217, },new TabUIData{ n_btnName = 231, },
};
2024-12-15 01:39:39 +00:00
2025-07-30 00:23:52 +00:00
Dictionary<eItem, int> dic_EnterID = new Dictionary<eItem, int>
{ { eItem.PCCostume, 0 }, { eItem.Worker, 0 }, { eItem.PC, 0 }, { eItem.Preset , 0 } };
2024-12-15 01:39:39 +00:00
public override void Set()
{
base.Set();
2025-02-14 01:57:06 +00:00
for (int i = 0; i < list_TabData.Count; i++)
{
list_TabData[i].onClick = OnClick_Tab;
list_TabData[i].btnImg_on = $"menu icon {i + 1}";
list_TabData[i].btnImg_off = $"menu icon {i + 1}";
}
m_Tab.Set(list_TabData);
2025-02-14 23:41:33 +00:00
2025-02-14 01:57:06 +00:00
OnClick_Tab();
2024-12-15 01:39:39 +00:00
}
2025-07-30 00:23:52 +00:00
public void Set_EnterID(eItem item, int id) { dic_EnterID[item] = id; }
public int Get_EnterID(eItem item) { return dic_EnterID[item]; }
2025-02-14 01:57:06 +00:00
public void OnClick_Tab()
2024-12-15 01:39:39 +00:00
{
for (int i = 0; i < m_PCMenu.Length; i++)
m_PCMenu[i].Off();
2025-02-14 01:57:06 +00:00
m_PCMenu[m_Tab.Get_Index()].Set();
Check_ServerSave(false);
2024-12-15 01:39:39 +00:00
}
2024-12-31 06:30:12 +00:00
2025-07-30 00:23:52 +00:00
CS_AwakenData emptyawaken = new CS_AwakenData();
public override void Check_ServerSave(bool exitui)
2024-12-31 06:30:12 +00:00
{
var sdata = ServerInfo.Ins.m_ServerData;
2025-07-29 07:28:55 +00:00
2025-07-30 00:23:52 +00:00
bool changeCostume = Get_EnterID(eItem.PCCostume) > 0 && Get_EnterID(eItem.PCCostume) != sdata.Get_EqiupmentEquip(eItem.PCCostume);
bool changeworker = Get_EnterID(eItem.Worker) > 0 && Get_EnterID(eItem.Worker) != sdata.Get_EqiupmentEquip(eItem.Worker);
bool changejob = Get_EnterID(eItem.PC) > 0 && Get_EnterID(eItem.PC) != sdata.Get_EqiupmentEquip(eItem.PC);
bool changepreset = Get_EnterID(eItem.Preset) > 0 && Get_EnterID(eItem.Preset) != sdata.Equip.LimitPreset;
bool pcawakend = PCAwakenUI.isIns && PCAwakenUI.Ins.IsSendAwakenData();
if (changeCostume || changeworker || changejob || changepreset || pcawakend)
2025-07-29 07:28:55 +00:00
{
2025-07-30 00:23:52 +00:00
ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume),
sdata.Get_EqiupmentEquip(eItem.Worker),
sdata.Get_EqiupmentEquip(eItem.PC),
sdata.Equip.LimitPreset,
PCAwakenUI.isIns ? PCAwakenUI.Ins.Get_CS_AwakenData() : emptyawaken,
result =>
2025-07-29 07:28:55 +00:00
{
for (int i = 0; i < result.awakekMats.Count; i++)
sdata.Set_Item(result.awakekMats[i].itemid, result.awakekMats[i].amount);
foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get();
2025-07-30 00:23:52 +00:00
if (changeCostume || changeworker)
{
ActorInfo.Ins.Destroy_All();
CoroutineMgr.Ins.Set_Coroutine(() =>
{
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
InGameInfo.Ins.StartCam();
if (exitui) base.OnClick_Back();
2025-07-30 00:23:52 +00:00
}, 0.02f);
}
else
{
if (exitui) base.OnClick_Back();
}
2025-07-29 07:28:55 +00:00
});
}
2025-07-30 00:23:52 +00:00
else
{
if (exitui) base.OnClick_Back();
}
foreach (var key in dic_EnterID.Keys.ToList())
dic_EnterID[key] = 0;
if (PCAwakenUI.isIns) PCAwakenUI.Ins.Get_CS_AwakenData().Init();
}
public override void OnClick_Back()
{
Check_ServerSave(true);
2024-12-31 06:30:12 +00:00
}
2024-12-15 01:39:39 +00:00
}