From ed4edf999d2acd8c32bf555cdab2b031c1f1ffd3 Mon Sep 17 00:00:00 2001 From: Ino Date: Mon, 4 Aug 2025 03:24:16 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=A5=EB=B9=84=20=EB=A7=88=EB=B2=95?= =?UTF-8?q?=EB=B6=80=EC=97=AC=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=93=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/Resources/.CloudScript.js | 18 +++++++-------- .../EquipItemEnchantOptionCard.prefab | 3 +++ .../UI/Eqiupment/EquipItemEnchantOption.cs | 9 ++++++-- .../Eqiupment/EquipItemEnchantOptionCard.cs | 23 +++++++++++++++++++ .../UI/Eqiupment/EquipmentEnchantCard.cs | 5 +++- .../Script/UI/Eqiupment/EquipmentItemPopup.cs | 2 +- 6 files changed, 46 insertions(+), 14 deletions(-) diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index fd8af3694..e84e7a228 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -1583,11 +1583,11 @@ handlers.Save_EquipItem_Enchant = function(args) return Get_Return(1); var table = Get_MissionTable(); - //if (Use_Item(table, urod, args.EnchantID, 1)) + if (Use_Item(table, urod, args.EnchantID, 1)) { var grade = Get_RandomEnchantRateGrade(s_enchant[1]); var olv = Get_OptionLv(grade); - var optionid = Get_EnchantOptionID(slot); + var optionid = Get_EnchantOptionID(args.EnchantID, slot); slot.Enchant[args.Slot].ID = optionid; slot.Enchant[args.Slot].Lv = olv; @@ -11886,20 +11886,18 @@ function Get_EnchantListTable() } ] } -function Get_EnchantOptionID(slot) { - var enchantTable = Get_EnchantListTable(); +function Get_EnchantOptionID(enchantid, slot) { + var enchantData = Get_EnchantListTable().find(f=>f.n_EnchantID == enchantid); // slot.Enchant에서 이미 사용된 ID 수집 var usedStats = slot.Enchant.map(e => e.ID); // 모든 옵션 ID 수집 (중복 포함) var allIds = []; - for (var i = 0; i < enchantTable.length; ++i) { - allIds.push(enchantTable[i].n_OptionConfigID1); - allIds.push(enchantTable[i].n_OptionConfigID2); - allIds.push(enchantTable[i].n_OptionConfigID3); - allIds.push(enchantTable[i].n_OptionConfigID4); - } + allIds.push(enchantData.n_OptionConfigID1); + allIds.push(enchantData.n_OptionConfigID2); + allIds.push(enchantData.n_OptionConfigID3); + allIds.push(enchantData.n_OptionConfigID4); // 중복 제거 var uniqueIds = [...new Set(allIds)]; diff --git a/Assets/ResWork/UIPrefabs/Equipment/EquipItemEnchantOptionCard.prefab b/Assets/ResWork/UIPrefabs/Equipment/EquipItemEnchantOptionCard.prefab index f706c259e..b688f85f9 100644 --- a/Assets/ResWork/UIPrefabs/Equipment/EquipItemEnchantOptionCard.prefab +++ b/Assets/ResWork/UIPrefabs/Equipment/EquipItemEnchantOptionCard.prefab @@ -532,6 +532,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 91d4965b697c50443aa0a3ee17803553, type: 3} m_Name: m_EditorClassIdentifier: + images: + - {fileID: 2595564974761034920} + - {fileID: 1199757943775746256} texts: - {fileID: 1565741600275440652} - {fileID: 7205455428029474132} diff --git a/Assets/Script/UI/Eqiupment/EquipItemEnchantOption.cs b/Assets/Script/UI/Eqiupment/EquipItemEnchantOption.cs index 227cc9356..4a7606102 100644 --- a/Assets/Script/UI/Eqiupment/EquipItemEnchantOption.cs +++ b/Assets/Script/UI/Eqiupment/EquipItemEnchantOption.cs @@ -16,12 +16,17 @@ public class EquipItemEnchantOption : uScrollViewMgr list_EnchantCardData[i].EnchantData = slotdata.Enchant[i]; } - Set_UI(); + Set_ScrollView(list_EnchantCardData); + } + + public void DeSelectAll() + { + list_CardBase.ForEach(f => f.Do_SomeThing()); } public override void Set_UI() { - Set_ScrollView(list_EnchantCardData); + list_CardBase.ForEach(f=>f.Set_UI()); } } diff --git a/Assets/Script/UI/Eqiupment/EquipItemEnchantOptionCard.cs b/Assets/Script/UI/Eqiupment/EquipItemEnchantOptionCard.cs index e0097e5cb..698ef4577 100644 --- a/Assets/Script/UI/Eqiupment/EquipItemEnchantOptionCard.cs +++ b/Assets/Script/UI/Eqiupment/EquipItemEnchantOptionCard.cs @@ -1,8 +1,10 @@ using TMPro; using UnityEngine; +using UnityEngine.UI; public class EquipItemEnchantOptionCard : CardBase { + public Image[] images; // 0 bg, 1 grade public TextMeshProUGUI[] texts; // 0 등급, 1 옵션, 2 오픈 조건 public GameObject[] gos_lock; // 0 언락, 1 락 @@ -12,7 +14,12 @@ public class EquipItemEnchantOptionCard : CardBase { base.Set(_base); m_EnchantCardData = _base as EnchantCardData; + Set_UI(); + Do_SomeThing(); + } + public override void Set_UI() + { if (IsOpen()) { DSUtil.InActivateGameObjects(gos_lock, 0); @@ -22,19 +29,35 @@ public class EquipItemEnchantOptionCard : CardBase texts[0].text = egcData.n_EnchantGrade.ToString(); var upgradeData = table_optionconfig.Ins.Get_Data(m_EnchantCardData.EnchantData.ID); texts[1].text = MyText.Get_StatNameValueText(upgradeData.e_OptionType, m_EnchantCardData.EnchantData.Get_Value()); + images[1].enabled = true; + images[1].color = egcData.GradeColor; } else { // 오픈되었으나 비어있음 texts[0].text = "0"; texts[1].text = table_localtext.Ins.Get_Text(203); + images[1].enabled = false; } } else DSUtil.InActivateGameObjects(gos_lock, 1); } + public override void Set_Selected(bool active) + { + images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(active ? "slot 2" : "slot 1_weapon"); + } + + public override void Do_SomeThing() + { + Set_Selected(false); + } + public void OnClick_Enchant() { + PopupMgr.Ins.m_EquipmentItemPopup.m_EquipItemEnchantOption.DeSelectAll(); + Set_Selected(true); + PopupMgr.Ins.m_EquipmentItemPopup.Set_Position(false); // 팝업을 왼쪽으로 보낸다. NewGameUI.Ins.m_EquipmentUI.m_Tab.OnClick_Tab_byScript(0); // 인챈트 리스트 표시 EquipmentEnchantCard.Select_EnchantCardData = m_EnchantCardData; diff --git a/Assets/Script/UI/Eqiupment/EquipmentEnchantCard.cs b/Assets/Script/UI/Eqiupment/EquipmentEnchantCard.cs index 254ba31b4..58b48dd16 100644 --- a/Assets/Script/UI/Eqiupment/EquipmentEnchantCard.cs +++ b/Assets/Script/UI/Eqiupment/EquipmentEnchantCard.cs @@ -62,12 +62,13 @@ public class EquipmentEnchantCard : CardBase public void OnClick_EnchantEquipItem() { var sdata = ServerInfo.Ins.m_ServerData; - if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0) + if (sdata.Get_EnchantLv(m_Data.n_EnchantID) > 0 && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1)) { // 마법 부여 하자 ServerInfo.Ins.Save_EquipItem_Enchant(PopupMgr.Ins.m_EquipmentItemPopup.Get_ItemID(), m_Data.n_EnchantID, Select_EnchantCardData.Index, result => { + sdata.Use_Item(m_Data.n_EnchantID, 1); var parts = PopupMgr.Ins.m_EquipmentItemPopup.Get_Parts(); // 주석은 클라 처리 -> 서버 처리로 변경됨 //var grade = DSUtil.Get_RandomIndex(m_EnchantRateTableData.list_rate) + 1; @@ -79,6 +80,8 @@ public class EquipmentEnchantCard : CardBase sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ACC); sdata.Add_MissionCount(ePurpose.EQUIP_ITEM_ENCHANT_ALL); + + Set_UI(); }); } } diff --git a/Assets/Script/UI/Eqiupment/EquipmentItemPopup.cs b/Assets/Script/UI/Eqiupment/EquipmentItemPopup.cs index 8f8ac3fde..90257081e 100644 --- a/Assets/Script/UI/Eqiupment/EquipmentItemPopup.cs +++ b/Assets/Script/UI/Eqiupment/EquipmentItemPopup.cs @@ -52,7 +52,7 @@ public class EquipmentItemPopup : EquipmentPopupItemInfoBase //texts[2].text = $"{curmainText}+{nextmainText}"; texts[3].text = DSUtil.Format(418, m_SD_Slot.Lv); texts[5].text = $"{curmainText}"; - texts[7].text = $"{MyText.Get_StatValueText(m_ESUTD.e_OptionType, curmain + nextmain - curmain)}%"; + texts[7].text = $"{MyText.Get_StatValueText(m_ESUTD.e_OptionType, curmain + nextmain - curmain)}"; texts[6].text = NumberFormatter.FormatNumber(Get_Price()); m_EquipItemEnchantOption.Set(m_SD_Slot);