107 lines
4.1 KiB
C#
107 lines
4.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
public class PCUI : BotMenuBase
|
|
{
|
|
public PCUIMenu[] m_PCMenu; // 0 정보
|
|
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, },
|
|
};
|
|
|
|
Dictionary<eItem, int> dic_EnterID = new Dictionary<eItem, int>
|
|
{ { eItem.PCCostume, 0 }, { eItem.Worker, 0 }, { eItem.PC, 0 }, { eItem.Preset , 0 } };
|
|
|
|
public override void Set()
|
|
{
|
|
base.Set();
|
|
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);
|
|
|
|
OnClick_Tab();
|
|
}
|
|
|
|
public void Set_EnterID(eItem item, int id) { dic_EnterID[item] = id; }
|
|
public int Get_EnterID(eItem item) { return dic_EnterID[item]; }
|
|
|
|
public void OnClick_Tab()
|
|
{
|
|
for (int i = 0; i < m_PCMenu.Length; i++)
|
|
m_PCMenu[i].Off();
|
|
m_PCMenu[m_Tab.Get_Index()].Set();
|
|
Check_ServerSave(false);
|
|
}
|
|
|
|
CS_AwakenData emptyawaken = new CS_AwakenData();
|
|
public override void Check_ServerSave(bool exitui)
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
|
|
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();
|
|
bool changelimitslot = PCLimitUI.isIns && PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.IsChangeLimitSlot();
|
|
|
|
if (changeCostume || changeworker || changejob || changepreset || pcawakend || changelimitslot)
|
|
{
|
|
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,
|
|
PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Get(),
|
|
result =>
|
|
{
|
|
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();
|
|
|
|
if (result.limitslotoption != null)
|
|
{
|
|
|
|
}
|
|
if (result.limitpreset != null)
|
|
{
|
|
}
|
|
|
|
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();
|
|
}, 0.02f);
|
|
}
|
|
else
|
|
{
|
|
if (exitui) base.OnClick_Back();
|
|
}
|
|
});
|
|
}
|
|
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);
|
|
}
|
|
} |