From 112c4a4e7de2b5df2919cbc6bb5cc5fc8796c533 Mon Sep 17 00:00:00 2001 From: Ino Date: Wed, 30 Jul 2025 09:23:52 +0900 Subject: [PATCH] Save_PC_MenuBack --- .../Editor/Resources/.CloudScript.js | 202 ++-------------- Assets/Script/Server/ServerClass.cs | 8 - Assets/Script/Server/ServerInfo.cs | 222 +----------------- Assets/Script/UI/Common/UIItemCard.cs | 5 - Assets/Script/UI/GameUI.cs | 2 +- Assets/Script/UI/PC/Info/PCCostumeListUI.cs | 8 +- Assets/Script/UI/PC/Info/PCInfoUI_Center.cs | 18 +- Assets/Script/UI/PC/Info/PCWorkerListUI.cs | 12 +- Assets/Script/UI/PC/Job/PCJobCard.cs | 11 +- Assets/Script/UI/PC/Job/PCJobUI.cs | 3 + Assets/Script/UI/PC/Limit/PCLimitUI.cs | 3 + Assets/Script/UI/PC/Limit/PCLimitUI_Right.cs | 6 +- Assets/Script/UI/PC/PCUI.cs | 52 +++- Assets/Script/Util/MyEnum.cs | 2 +- 14 files changed, 85 insertions(+), 469 deletions(-) diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index 0d29db1aa..bdfe2985a 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -793,6 +793,7 @@ handlers.Save_PC_MenuBack = function(args) var urod = Get_JsonUserData(readonlydata); var table = Get_MissionTable(); + // 각성 var awakenData = args.AwakenData; var awakenupgradeid = Get_GlobalValue_nValue("AWAKEN_GOODS_UPGRADE"); var awakenUpgradeTable = Get_AwakenUpgradeTable(); @@ -852,6 +853,21 @@ handlers.Save_PC_MenuBack = function(args) for (var id in useawakenMatIds) rtn_awakenMatIds.push({ itemid : parseInt(id), amount : Get_ItemAmount(urod, id) }); + // 코스튬 + if (IsObtainItem(urod, args.CostumeID)) + urod.Equip.Equip["PCCostume"] = args.CostumeID; + + // 일꾼 + if (IsObtainItem(urod, args.WorkerID)) + urod.Equip.Equip["Worker"] = args.WorkerID; + + // 직업 + if (IsObtainItem(urod, args.JobID)) + urod.Equip.Equip["PC"] = args.JobID; + + // 초월 프리셋 + urod.Equip.LimitPreset = args.Preset; + Set_JsonUserData(urod); return Get_Return(0, { awakekMats : rtn_awakenMatIds, @@ -1099,106 +1115,6 @@ handlers.Save_PC_BuyJob = function(args) return Get_Return(2); // 재화 부족 } } -handlers.Save_PC_EquipJob = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - - if (!urod.PC.Obtain.includes(args.JobID)) - return Get_Return(1); // 없는 직업 - - urod.Equip.Equip["PC"] = args.JobID; - - Set_JsonUserData(urod); - return Get_Return(0); -} - -handlers.Save_PC_AwakenLvUp = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - - var global = Get_GlobalValueTable(); - var matdata = global.find(f => f.s_ID == "AWAKEN_GOODS_UPGRADE"); - if (!matdata) return Get_Return(1); // 설정 누락 - var materialId = matdata.n_Value; - - var awakenupgradetable = Get_AwakenUpgradeTable(); - var audata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv); - - // 각성 경험치가 n_MaxUpgradeLevel 보다 작으면 가능 - if (urod.Awaken[args.AwakenStat].Exp < audata.n_MaxUpgradeLevel) - { - var price = Get_K_Value(audata.n_AwakenStep, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue); - //log.info("강화 가격 : " + price) - if (Use_Item(Get_MissionTable(), urod, materialId, price)) - { - ++urod.Awaken[args.AwakenStat].Exp; - - Set_JsonUserData(urod); - return Get_Return(0); - } - else - return Get_Return(2); - } - else - return Get_Return(3); -} -handlers.Save_PC_Awaken = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - - var awakenupgradetable = Get_AwakenUpgradeTable(); - var audata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv); - - // 각성 경험치가 n_MaxUpgradeLevel 보다 같으면 가능 - if (urod.Awaken[args.AwakenStat].Exp >= audata.n_MaxUpgradeLevel) - { - // 다음 각성 단계가 있어야 각성 가능 - var nextaudata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv + 1); - if (nextaudata) - { - var matkey = ""; - switch (args.AwakenStat) - { - case "STR": matkey = "AWAKEN_GOODS_STR"; break; - case "DEX": matkey = "AWAKEN_GOODS_DEX"; break; - case "INT": matkey = "AWAKEN_GOODS_INT"; break; - case "LUK": matkey = "AWAKEN_GOODS_LUK"; break; - } - var global = Get_GlobalValueTable(); - var matdata = global.find(f => f.s_ID == matkey); - if (!matdata) return Get_Return(1); // 설정 누락 - var materialId = matdata.n_Value; - - //log.info("필요한 재화 " + materialId + ", 필요한 갯수 " + audata.n_AwakenGoodsCost); - if (Use_Item(Get_MissionTable(), urod, materialId, audata.n_AwakenGoodsCost)) - { - ++urod.Awaken[args.AwakenStat].Lv; - urod.Awaken[args.AwakenStat].Exp = 0; - - Set_JsonUserData(urod); - return Get_Return(0); - } - else - return Get_Return(2); - } - else - return Get_Return(4); - } - else - return Get_Return(3); -} handlers.Save_PC_LimitLvUp = function(args) { @@ -1338,18 +1254,6 @@ handlers.Save_PC_LimitSlotLock = function(args) else return Get_Return(1); } -handlers.Save_PC_LimitPreset = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - urod.Equip.LimitPreset = args.Preset; - - Set_JsonUserData(urod); - return Get_Return(0); -} handlers.Save_Equipment_Craft = function(args) { @@ -1470,48 +1374,6 @@ handlers.Save_Equipment_Smelting = function(args) } return Get_Return(1); } -handlers.Save_Equipment_Smelting = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - if (!urod.Equipment[args.ItemID]) return Get_Return(3); - var lv = urod.Equipment[args.ItemID][1]; - - // 영웅 초월 레벨에 따른 레벨 제한 확인 - var llv = urod.PC.LLv > 9 ? 9 : urod.PC.LLv; - var limitData = Get_BreakingLimitTable().find(f=>f.n_LimitLv == llv); - if (lv >= limitData.n_Equip_Upgrade_Limit) return Get_Return(2); - - // 다음 강화 가능한 지 확인 - var smeltingTable = Get_EquipSmeltingTable(); - var nextSmeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv + 1); - if (!nextSmeltingData) return Get_Return(2); - - // 재료 확인 - var table = Get_MissionTable(); - var smeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv); - if (Use_Item(table, urod, args.ItemID, smeltingData.n_UpgradePrice)) - { - // 확률 적용 - if (IsRateTrue1000000(smeltingData.n_NextStepRate)) - { - ++urod.Equipment[args.ItemID][1]; // 제련 레벨 - - Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ACC", 0, 1); - Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ALL", 0, 1); - Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_LIMIT", 0, 1); - - Set_JsonUserData(urod); - return Get_Return(0); - } - ++urod.Equipment[args.ItemID][2]; // 제련 시도 횟수 - return Get_Return(4); - } - return Get_Return(1); -} handlers.Save_Equipment_Decomposition = function(args) { var readonlydata = Get_UserReadOnlyData(); @@ -2284,22 +2146,6 @@ handlers.Save_GachaBonus = function(args) return Get_Return(1); } -handlers.Save_Costume_Equip = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - if (IsObtainItem(urod, args.CostumeID)) - { - urod.Equip.Equip["PCCostume"] = args.CostumeID; - - Set_JsonUserData(urod); - return Get_Return(0); - } - return Get_Return(1); -} handlers.Save_Costume_Buy = function(args) { var readonlydata = Get_UserReadOnlyData(); @@ -2321,22 +2167,6 @@ handlers.Save_Costume_Buy = function(args) return Get_Return(1); } -handlers.Save_Worker_Equip = function(args) -{ - var readonlydata = Get_UserReadOnlyData(); - var error = Get_Error(readonlydata, args.Token); - if (error < 0) return Get_Return(error); - - var urod = Get_JsonUserData(readonlydata); - if (IsObtainItem(urod, args.WorkerID)) - { - urod.Equip.Equip["Worker"] = args.WorkerID; - - Set_JsonUserData(urod); - return Get_Return(0); - } - return Get_Return(1); -} handlers.Save_Worker_Buy = function(args) { var readonlydata = Get_UserReadOnlyData(); diff --git a/Assets/Script/Server/ServerClass.cs b/Assets/Script/Server/ServerClass.cs index 827a8060b..e5559b269 100644 --- a/Assets/Script/Server/ServerClass.cs +++ b/Assets/Script/Server/ServerClass.cs @@ -1837,13 +1837,6 @@ public partial class ServerData break; - case eItem.Fairy: - //var equipment = Equipment[_itemdata.ItemType.ToString()].Find(f => f[0] == _itemdata.Get_ID()); - //if (equipment != null) Check_EquipmentGet(equipment, _itemdata.Amount); - //if (MessageInfo.Ins != null && _itemdata.Grade >= eItemGrade.Legend) - // MessageInfo.Ins.Add_NotiToChatServer(DSUtil.Format("{0} {1}{2}[-] 획득", ServerInfo.Ins.UserName, MyValue.Get_GradeColor(_itemdata.Grade), _itemdata.Name)); - //if (GameUI.Ins != null) GameUI.Ins.Add_newItem(_itemdata.ItemType, _itemdata.Get_ID()); - break; case eItem.Skill: // ID, 갯수, 레벨, 특성1, 특성2 //var magicamount = (int)_itemdata.Amount; //var magic = Skill.Find(f => f[0] == _itemdata.Get_ID()); @@ -2344,7 +2337,6 @@ public class SD_Equip [eItem.Necklace] = 0, [eItem.Ring] = 0, [eItem.Pet] = table_GlobalValue.Ins.Get_Int("n_FirstEquipPet"), - [eItem.Fairy] = 0, [eItem.Farmer] = 0, [eItem.Worker] = 70001, }; diff --git a/Assets/Script/Server/ServerInfo.cs b/Assets/Script/Server/ServerInfo.cs index 1b64e965e..85a704cce 100644 --- a/Assets/Script/Server/ServerInfo.cs +++ b/Assets/Script/Server/ServerInfo.cs @@ -859,7 +859,7 @@ public class ServerInfo : MyCoroutine Set_Coroutine(() => { Save_StageResult(_act); }, 2f); }); } - public void Save_PC_MenuBack(CS_AwakenData awakenData, Action _act) + public void Save_PC_MenuBack(int costumeid, int workerid, int jobid, int preset, CS_AwakenData awakenData, Action _act) { NetWait.Ins.Set(true); PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest @@ -869,6 +869,10 @@ public class ServerInfo : MyCoroutine FunctionParameter = new { Token = m_LoginInfo.EntityToken.EntityToken, + CostumeID = costumeid, + WorkerID = workerid, + JobID = jobid, + Preset = preset, AwakenData = awakenData } }, @@ -889,11 +893,11 @@ public class ServerInfo : MyCoroutine } } else - Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f); + Set_Coroutine(() => { Save_PC_MenuBack(costumeid, workerid, jobid, preset, awakenData, _act); }, 2f); }, fail => { - Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f); + Set_Coroutine(() => { Save_PC_MenuBack(costumeid, workerid, jobid, preset, awakenData, _act); }, 2f); }); } @@ -1086,114 +1090,7 @@ public class ServerInfo : MyCoroutine Set_Coroutine(() => { Save_PC_BuyJob(jobid, _act); }, 2f); }); } - public void Save_PC_EquipJob(int jobid, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - JobID = jobid, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var error = MyErrorCheck(result.FunctionResult.ToString()); - switch (error) - { - case 0: _act?.Invoke(); break; - case 1: ToastUI.Ins.Set(999900009); break; - } - } - else - Set_Coroutine(() => { Save_PC_EquipJob(jobid, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_PC_EquipJob(jobid, _act); }, 2f); - }); - } - public void Save_PC_AwakenLvUp(eStat stat, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - AwakenStat = stat, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var error = MyErrorCheck(result.FunctionResult.ToString()); - // (0 성공, 1 실패(재화 id 없음), 2 실패 (재화 부족), 3 실패 (더 이상 강화 불가)) - switch (error) - { - case 0: _act?.Invoke(); break; - case 1: ToastUI.Ins.Set(999900005); break; - case 2: ToastUI.Ins.Set(388); break; - case 3: ToastUI.Ins.Set(236); break; - } - } - else - Set_Coroutine(() => { Save_PC_AwakenLvUp(stat, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_PC_AwakenLvUp(stat, _act); }, 2f); - }); - } - public void Save_PC_Awaken(eStat stat, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - AwakenStat = stat, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var error = MyErrorCheck(result.FunctionResult.ToString()); - // (0 성공, 1 실패(재화 id 없음), 2 실패 (재화 부족), 3, 실패 (각성 레벨 부족), 4 실패 (더 이상 각성 불가)) - switch (error) - { - case 0: _act?.Invoke(); break; - case 1: ToastUI.Ins.Set(999900005); break; - case 2: ToastUI.Ins.Set(388); break; - case 3: ToastUI.Ins.Set(263); break; - case 4: ToastUI.Ins.Set(999900010); break; - } - } - else - Set_Coroutine(() => { Save_PC_Awaken(stat, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_PC_Awaken(stat, _act); }, 2f); - }); - } - public void Save_PC_LimitLvUp(Action _act) { NetWait.Ins.Set(true); @@ -1308,41 +1205,6 @@ public class ServerInfo : MyCoroutine Set_Coroutine(() => { Save_PC_LimitSlotLock(preset, slot, _act); }, 2f); }); } - public void Save_PC_LimitPreset(int preset, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - Preset = preset, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var str_result = result.FunctionResult.ToString(); - var error = MyErrorCheck(str_result); - // (0 성공, 나머지는 잘못된 요청) - switch (error) - { - case 0: _act?.Invoke(); break; - default: ToastUI.Ins.Set(999900002); break; - } - } - else - Set_Coroutine(() => { Save_PC_LimitPreset(preset, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_PC_LimitPreset(preset, _act); }, 2f); - }); - } public void Save_Equipment_Craft(int itemid, Action _act) { @@ -2132,41 +1994,6 @@ public class ServerInfo : MyCoroutine }); } - public void Save_Costume_Equip(int id, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - CostumeID = id, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var str_result = result.FunctionResult.ToString(); - var error = MyErrorCheck(str_result); - // (0 성공, 1 실패 (없는 코스튬)) - switch (error) - { - case 0: _act?.Invoke(); break; - case 1: ToastUI.Ins.Set(999900032); break; - } - } - else - Set_Coroutine(() => { Save_Costume_Equip(id, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_Costume_Equip(id, _act); }, 2f); - }); - } public void Save_Costume_Buy(int id, Action _act) { NetWait.Ins.Set(true); @@ -2204,41 +2031,6 @@ public class ServerInfo : MyCoroutine }); } - public void Save_Worker_Equip(int id, Action _act) - { - NetWait.Ins.Set(true); - PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest - { - FunctionName = MethodBase.GetCurrentMethod().Name, - GeneratePlayStreamEvent = true, - FunctionParameter = new - { - Token = m_LoginInfo.EntityToken.EntityToken, - WorkerID = id, - } - }, - result => - { - if (result.Error == null) - { - NetWait.Ins.Set(false); - var str_result = result.FunctionResult.ToString(); - var error = MyErrorCheck(str_result); - // (0 성공, 1 실패 (없는 일꾼)) - switch (error) - { - case 0: _act?.Invoke(); break; - case 1: ToastUI.Ins.Set(999900034); break; - } - } - else - Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f); - }, - fail => - { - Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f); - }); - } public void Save_Worker_Buy(int id, Action _act) { NetWait.Ins.Set(true); diff --git a/Assets/Script/UI/Common/UIItemCard.cs b/Assets/Script/UI/Common/UIItemCard.cs index 34b343e2b..e497addd9 100644 --- a/Assets/Script/UI/Common/UIItemCard.cs +++ b/Assets/Script/UI/Common/UIItemCard.cs @@ -48,7 +48,6 @@ public class ItemData case eItem.Ring: case eItem.Necklace: case eItem.Extra: - case eItem.Fairy: Lv = sdata.Get_SmeltingLv(id); Lv.RandomizeCryptoKey(); TLv = sdata.Get_EquipmentTLv(ItemType, id); @@ -70,9 +69,6 @@ public class ItemData case eItem.Weapon: //equipmenttabledata = table_weapon.Ins.Get_Data(ID); break; - case eItem.Fairy: - //equipmenttabledata = table_fairy.Ins.Get_Data(ID); - break; case eItem.Pet: break; case eItem.Skill: @@ -135,7 +131,6 @@ public class UIItemCard : CardCoolTimeBase case eItem.Ring: case eItem.Necklace: case eItem.Extra: - case eItem.Fairy: case eItem.WeaponCostume: case eItem.Skill: case eItem.Pet: diff --git a/Assets/Script/UI/GameUI.cs b/Assets/Script/UI/GameUI.cs index a26cb095c..5fe99345b 100644 --- a/Assets/Script/UI/GameUI.cs +++ b/Assets/Script/UI/GameUI.cs @@ -38,7 +38,7 @@ public class Lobby_Bundle { var sdata = ServerInfo.Ins.m_ServerData; gos_noti[0].SetActive(false); - gos_noti[1].SetActive(GameUI.Ins.ExistNewItem(eItem.Weapon) || GameUI.Ins.ExistNewItem(eItem.Ring) || GameUI.Ins.ExistNewItem(eItem.Necklace) || GameUI.Ins.ExistNewItem(eItem.Extra) || GameUI.Ins.ExistNewItem(eItem.Fairy)); + gos_noti[1].SetActive(GameUI.Ins.ExistNewItem(eItem.Weapon) || GameUI.Ins.ExistNewItem(eItem.Ring) || GameUI.Ins.ExistNewItem(eItem.Necklace) || GameUI.Ins.ExistNewItem(eItem.Extra)); gos_noti[2].SetActive(GameUI.Ins.ExistNewItem(eItem.Pet)); gos_noti[3].SetActive(sdata.ExistCanCompleteBook()); gos_noti[7].SetActive(false); diff --git a/Assets/Script/UI/PC/Info/PCCostumeListUI.cs b/Assets/Script/UI/PC/Info/PCCostumeListUI.cs index 6ad7352f1..bd5843009 100644 --- a/Assets/Script/UI/PC/Info/PCCostumeListUI.cs +++ b/Assets/Script/UI/PC/Info/PCCostumeListUI.cs @@ -61,12 +61,8 @@ public class PCCostumeListUI : uScrollViewMgr if (sdata.IsObtainItem(costumeid) && !sdata.IsEquip(eItem.PCCostume, costumeid)) { - ServerInfo.Ins.Save_Costume_Equip(costumeid, () => - { - sdata.Equip.Set_Equip(eItem.PCCostume, costumeid); - - PCInfoUI.Ins.Set_UI(); - }); + sdata.Equip.Set_Equip(eItem.PCCostume, costumeid); + PCInfoUI.Ins.Set_UI(); } } } \ No newline at end of file diff --git a/Assets/Script/UI/PC/Info/PCInfoUI_Center.cs b/Assets/Script/UI/PC/Info/PCInfoUI_Center.cs index 0c5d82b2d..a2d714da7 100644 --- a/Assets/Script/UI/PC/Info/PCInfoUI_Center.cs +++ b/Assets/Script/UI/PC/Info/PCInfoUI_Center.cs @@ -7,9 +7,6 @@ public class PCInfoUI_Center : UI3DModel public TextMeshProUGUI[] texts; // 0 코스튬 이름, 1 코스튬 대사 public GameObject[] gos; // 0 코스튬 착용 버튼 - public int CostumeIdWhenEnter; - public bool firstInit = false; - CardBase SelectCard; public void Set(CardBase choiceCard) @@ -21,18 +18,17 @@ public class PCInfoUI_Center : UI3DModel SelectCard = choiceCard; SelectCard.Set_Selected(true); + var costumeid = SelectCard.Get_IntData(); PCInfoUI.Ins.m_PCInfoUI_List.m_PCCostumeListUI.Select_Costume(choiceCard); - if (!firstInit) + if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PCCostume) == 0) { - firstInit = true; m_MyPet.Set(table_petlist.Ins.Get_Data_orNull(sdata.Get_EqiupmentEquip(eItem.Pet))); m_MyPet.Set_CardType(eUICardType.NoTouch); - CostumeIdWhenEnter = choiceCard.Get_IntData(); + NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PCCostume, costumeid); } - var costumeid = SelectCard.Get_IntData(); var costumeData = table_costumelist.Ins.Get_Data_orNull(costumeid); texts[0].text = costumeData.Get_Name(); texts[1].text = costumeData.Get_Desc(); @@ -52,13 +48,5 @@ public class PCInfoUI_Center : UI3DModel return true; } - public void OnClick_EquipCostume() - { - if (!CanEquip()) return; - var sdata = ServerInfo.Ins.m_ServerData; - sdata.Equip.Set_Equip(eItem.PCCostume, SelectCard.Get_IntData()); - PCInfoUI.Ins.Set_UI(); - } - public CardBase Get_SelectCard() { return SelectCard; } } \ No newline at end of file diff --git a/Assets/Script/UI/PC/Info/PCWorkerListUI.cs b/Assets/Script/UI/PC/Info/PCWorkerListUI.cs index 7c09cdc68..bca8a30aa 100644 --- a/Assets/Script/UI/PC/Info/PCWorkerListUI.cs +++ b/Assets/Script/UI/PC/Info/PCWorkerListUI.cs @@ -32,9 +32,11 @@ public class PCWorkerListUI : UI3DModel SelectCard.Set_Selected(true); int workerid = SelectCard.Get_IntData(); + if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PCCostume) == 0) + NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PCCostume, workerid); var sdata = ServerInfo.Ins.m_ServerData; - if (sdata.IsEquip(eItem.PCCostume, workerid)) + if (sdata.IsEquip(eItem.Worker, workerid)) DSUtil.InActivateGameObjects(gos); else if (sdata.IsObtainItem(workerid)) DSUtil.InActivateGameObjects(gos, 0); @@ -79,12 +81,8 @@ public class PCWorkerListUI : UI3DModel if (sdata.IsObtainItem(id) && !sdata.IsEquip(eItem.Worker, id)) { - ServerInfo.Ins.Save_Worker_Equip(id, () => - { - sdata.Equip.Set_Equip(eItem.Worker, id); - - PCInfoUI.Ins.Set_UI(); - }); + sdata.Equip.Set_Equip(eItem.Worker, id); + PCInfoUI.Ins.Set_UI(); } } } \ No newline at end of file diff --git a/Assets/Script/UI/PC/Job/PCJobCard.cs b/Assets/Script/UI/PC/Job/PCJobCard.cs index 96757f1ba..7cf48b4d3 100644 --- a/Assets/Script/UI/PC/Job/PCJobCard.cs +++ b/Assets/Script/UI/PC/Job/PCJobCard.cs @@ -81,13 +81,10 @@ public class PCJobCard : CardBase { // 착용 여부 if (sdata.Get_EqiupmentEquip(eItem.PC) != m_Data.n_ClassID) { // 착용하기 - ServerInfo.Ins.Save_PC_EquipJob(m_Data.n_ClassID, () => - { - sdata.Equip.Set_Equip(eItem.PC, m_Data.n_ClassID); - Set_UI(); - PCJobUI.Ins.Set(); - MyValue.Get_ActorStatInfoorNull(eRole.PC); - }); + sdata.Equip.Set_Equip(eItem.PC, m_Data.n_ClassID); + Set_UI(); + PCJobUI.Ins.Set(); + MyValue.Get_ActorStatInfoorNull(eRole.PC); } } else diff --git a/Assets/Script/UI/PC/Job/PCJobUI.cs b/Assets/Script/UI/PC/Job/PCJobUI.cs index 31671255b..b33a2965b 100644 --- a/Assets/Script/UI/PC/Job/PCJobUI.cs +++ b/Assets/Script/UI/PC/Job/PCJobUI.cs @@ -49,5 +49,8 @@ public class PCJobUI : PCUIMenu m_PCJobUI_Class.Set(classid); m_PCJobUI_Skill.Set(classid); m_PCJobUI_Top.Set(); + + if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PC) == 0) + NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PC, classid); } } \ No newline at end of file diff --git a/Assets/Script/UI/PC/Limit/PCLimitUI.cs b/Assets/Script/UI/PC/Limit/PCLimitUI.cs index fc83d3d51..85f90f7b7 100644 --- a/Assets/Script/UI/PC/Limit/PCLimitUI.cs +++ b/Assets/Script/UI/PC/Limit/PCLimitUI.cs @@ -15,5 +15,8 @@ public class PCLimitUI : PCUIMenu NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("n_BreakingLimitSlotMaterialID"), 0); m_PCLimit_Center.Set(); m_PCLimitUI_Right.Set(); + + if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.Preset) == 0) + NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.Preset, ServerInfo.Ins.m_ServerData.Equip.LimitPreset); } } \ No newline at end of file diff --git a/Assets/Script/UI/PC/Limit/PCLimitUI_Right.cs b/Assets/Script/UI/PC/Limit/PCLimitUI_Right.cs index 8762109ad..e86d8d6dd 100644 --- a/Assets/Script/UI/PC/Limit/PCLimitUI_Right.cs +++ b/Assets/Script/UI/PC/Limit/PCLimitUI_Right.cs @@ -23,7 +23,7 @@ public class PCLimitUI_Right : uScrollViewMgr m_Tab.Set_Index(ServerInfo.Ins.m_ServerData.Equip.LimitPreset - 1); for (int i = 0; i < list_TabData.Count; i++) { - list_TabData[i].onClick = OnClick_Preset_byTouch; + list_TabData[i].onClick = OnClick_Preset; } m_Tab.Set(list_TabData); OnClick_Preset(); @@ -93,10 +93,6 @@ public class PCLimitUI_Right : uScrollViewMgr sdata.Equip.LimitPreset.RandomizeCryptoKey(); Set_UI(); } - public void OnClick_Preset_byTouch() - { - ServerInfo.Ins.Save_PC_LimitPreset(m_Tab.Get_Index() + 1, OnClick_Preset); - } public void OnClick_ProtectGrade(int grade) { diff --git a/Assets/Script/UI/PC/PCUI.cs b/Assets/Script/UI/PC/PCUI.cs index 5ccb28fd1..4e60430e4 100644 --- a/Assets/Script/UI/PC/PCUI.cs +++ b/Assets/Script/UI/PC/PCUI.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; public class PCUI : BotMenuBase { @@ -11,6 +12,9 @@ public class PCUI : BotMenuBase new TabUIData{ n_btnName = 217, },new TabUIData{ n_btnName = 231, }, }; + Dictionary dic_EnterID = new Dictionary + { { eItem.PCCostume, 0 }, { eItem.Worker, 0 }, { eItem.PC, 0 }, { eItem.Preset , 0 } }; + public override void Set() { base.Set(); @@ -22,10 +26,15 @@ public class PCUI : BotMenuBase } m_Tab.Set(list_TabData); - if (PCInfoUI.Ins) PCInfoUI.Ins.m_PCInfoUI_Center.firstInit = false; + foreach (var key in dic_EnterID.Keys.ToList()) + dic_EnterID[key] = 0; + 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++) @@ -33,28 +42,45 @@ public class PCUI : BotMenuBase m_PCMenu[m_Tab.Get_Index()].Set(); } + CS_AwakenData emptyawaken = new CS_AwakenData(); public override void OnClick_Back() { - base.OnClick_Back(); var sdata = ServerInfo.Ins.m_ServerData; - if (PCInfoUI.Ins.m_PCInfoUI_Center.CostumeIdWhenEnter != sdata.Get_EqiupmentEquip(eItem.PCCostume)) - { - ActorInfo.Ins.Destroy_All(); - CoroutineMgr.Ins.Set_Coroutine(() => - { - PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData); - }, 0.02f); - } - //if (PCAwakenUI.isIns && PCAwakenUI.Ins.IsSendAwakenData()) - if (PCAwakenUI.isIns) + 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) { - ServerInfo.Ins.Save_PC_MenuBack(PCAwakenUI.Ins.Get_CS_AwakenData(), result => + 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 => { 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 (changeCostume || changeworker) + { + ActorInfo.Ins.Destroy_All(); + CoroutineMgr.Ins.Set_Coroutine(() => + { + PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData); + InGameInfo.Ins.StartCam(); + base.OnClick_Back(); + }, 0.02f); + } + else + base.OnClick_Back(); }); } + else + base.OnClick_Back(); } } \ No newline at end of file diff --git a/Assets/Script/Util/MyEnum.cs b/Assets/Script/Util/MyEnum.cs index c991632e4..f81fe7f87 100644 --- a/Assets/Script/Util/MyEnum.cs +++ b/Assets/Script/Util/MyEnum.cs @@ -256,7 +256,7 @@ public enum eItem // Money Gold, Gem, WeaponStone, RingStone, NeckStone, BootsStone, FairyStone, SelectSkillShuffle, ChapterQuestShuffle, mClover, MemoryField, MemoryForest, MemoryDungeon, MemoryWitchGrade, MemoryPetBattle, PC, PCCostume, Weapon, Armor, Helmet, Extra, Necklace, Ring, - Fairy, WeaponCostume, Pet, Worker, Farmer, Book, Page, Food, Seed, + Preset, WeaponCostume, Pet, Worker, Farmer, Book, Page, Food, Seed, Title, Inven, Pass, Potion, Relic, Essence, // 상점 Shop,