diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs index 45e9c9355a..905b313812 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/ElementDataManProvider.cs @@ -42,6 +42,9 @@ namespace BrewMonster else { BMLogger.Log("ElementDataManProvider: Successfully loaded element data"); + // Build suite equip tab now that data is loaded + // 数据加载完成后构建套装装备表 + BrewMonster.Network.EC_Game.BuildSuiteEquipTab(); } } catch (Exception ex) diff --git a/Assets/PerfectWorld/Scripts/GameData/EC_RoleType.cs b/Assets/PerfectWorld/Scripts/GameData/EC_RoleType.cs index 6c68d43354..665c65cbe3 100644 --- a/Assets/PerfectWorld/Scripts/GameData/EC_RoleType.cs +++ b/Assets/PerfectWorld/Scripts/GameData/EC_RoleType.cs @@ -204,3 +204,21 @@ public struct ROLEEXTPROP_DEF armor = 0; } }; + +// Profession +public enum PROFESSION +{ + PROF_WARRIOR = 0, // 0:���� + PROF_MAGE, // 1:��ʦ + PROF_MONK, // 2:��ʦ + PROF_HAG, // 3:���� + PROF_ORC, // 4:���� + PROF_GHOST, // 5:�̿� + PROF_ARCHOR, // 6:��â + PROF_ANGEL, // 7:���� + PROF_JIANLING, // 8:���� + PROF_MEILING, // 9:���� + PROF_YEYING, // 10:ҹӰ + PROF_YUEXIAN, // 11:���� + NUM_PROFESSION, +}; \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs index ba788aaf41..aa4482b4b9 100644 --- a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs +++ b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs @@ -30,6 +30,8 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Name + public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name); + public int num_params; // Number of parameters public int param1; // Parameter 1 public int param2; // Parameter 2 @@ -559,6 +561,8 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Suite name, max 15 characters + public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name); + public int max_equips; // Maximum equipment in suite [StructLayout(LayoutKind.Sequential, Pack = 1)] diff --git a/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs b/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs index cb2a0a2a2e..c700460d61 100644 --- a/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs +++ b/Assets/PerfectWorld/Scripts/MainFiles/EC_Game.cs @@ -25,6 +25,8 @@ namespace BrewMonster.Network private static BrewMonster.CECStringTab m_ItemDesc; // Item desciption string table private static BrewMonster.CECStringTab m_ItemExtDesc; // Item extend description string table private static BrewMonster.CECStringTab m_ItemExtProp; // Item extend prop string table + private static BrewMonster.CECStringTab ItemColTab; // Item color string table + private static Dictionary m_SuiteEquipTab; // Item suite string table private static BrewMonster.CECStringTab m_SkillDesc = new CECStringTab(); // Skill description string table private static BrewMonster.CECStringTab m_BuffDesc; // Buff description string table @@ -76,7 +78,15 @@ namespace BrewMonster.Network { return m_ItemExtProp; } - + public static BrewMonster.CECStringTab GetItemColTab() + { + return ItemColTab; + } + public static Dictionary GetSuiteEquipTab() + { + Debug.Log("[EC_Game] GetSuiteEquipTab: " + m_SuiteEquipTab.Count); + return m_SuiteEquipTab; + } public static bool TryGetItemMsg(int templateId, out int messageId, out int displayMode) { messageId = 0; @@ -140,6 +150,8 @@ namespace BrewMonster.Network m_SkillDesc = new BrewMonster.CECStringTab(); m_BuffDesc = new BrewMonster.CECStringTab(); m_ItemExtProp = new BrewMonster.CECStringTab(); + ItemColTab = new BrewMonster.CECStringTab(); + m_SuiteEquipTab = new Dictionary(); try { // Addressables-only loading (no StreamingAssets/configs file IO). @@ -174,10 +186,17 @@ namespace BrewMonster.Network { Debug.LogWarning("[EC_Game] Failed to load item_ext_prop.txt"); } + var itemColTa = Addressables.LoadAssetAsync("Assets/Addressable/item_col.txt").WaitForCompletion(); + if (!ItemColTab.InitFromTextAsset(itemColTa, true)) + { + Debug.LogWarning("[EC_Game] Failed to load item_col.txt"); + } + // Note: There's no buff_desc.txt file in the configs folder // You may need to create this file or use a different source for buff descriptions // (If you add it to Addressables later, load it here.) - + // BuildSuiteEquipTab() is now called from ElementDataManProvider after data is loaded + // BuildSuiteEquipTab() 现在在 ElementDataManProvider 数据加载完成后调用 // Load item message map (template -> message id) LoadItemMsgMap(); @@ -433,6 +452,86 @@ namespace BrewMonster.Network map = list[0].strMap; return true; } + + /// + /// Build suite equip tab mapping. Must be called after m_pElementDataMan is initialized and data is loaded. + /// 构建套装装备表映射。必须在 m_pElementDataMan 初始化且数据加载完成后调用。 + /// + public static void BuildSuiteEquipTab() + { + if (m_pElementDataMan == null) + { + return; + } + + // Ensure m_SuiteEquipTab is initialized + // 确保 m_SuiteEquipTab 已初始化 + if (m_SuiteEquipTab == null) + { + m_SuiteEquipTab = new Dictionary(); + } + + DATA_TYPE DataType = DATA_TYPE.DT_INVALID; + elementdataman _edm = ElementDataManProvider.GetElementDataMan(); + for (int i = 0; i < _edm.essence_id_data_type_map.Count; i++) + { + uint tid = _edm.get_data_id(ID_SPACE.ID_SPACE_ESSENCE, i, ref DataType); + object pData = _edm.get_data_ptr(tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + switch (DataType) + { + case DATA_TYPE.DT_SUITE_ESSENCE: + SUITE_ESSENCE pSuiteEss = (SUITE_ESSENCE)pData; + pSuiteEss.max_equips = 0; + for (int j=0; j<12; j++) + { + if( pSuiteEss.equipments[j].id != 0 ) + { + pSuiteEss.max_equips ++; + int index = (int)pSuiteEss.equipments[j].id; + m_SuiteEquipTab[index] = (int)tid; + } + } + break; + case DATA_TYPE.DT_POKER_SUITE_ESSENCE: + POKER_SUITE_ESSENCE pPokerSuiteEss = (POKER_SUITE_ESSENCE)pData; + for (int j=0; j<6; j++) + { + if( pPokerSuiteEss.list[j] != 0 ) + { + int index = (int)pPokerSuiteEss.list[j]; + m_SuiteEquipTab[index] = (int)tid; + } + } + break; + + case DATA_TYPE.DT_FASHION_SUITE_ESSENCE: + FASHION_SUITE_ESSENCE pFashionSuiteEss = (FASHION_SUITE_ESSENCE)pData; + for (int j=0; j<6; j++) + { + if( pFashionSuiteEss.list[j] != 0 ) + { + int index = (int)pFashionSuiteEss.list[j]; + m_SuiteEquipTab[index] = (int)tid; + } + } + break; + } + } + } + public static int GetItemNameColorIdx(int tid, int iDefIndex = 0) + { + int iIndex = iDefIndex; + string color = ItemColTab.GetWideString(tid); + if (!string.IsNullOrEmpty(color)) + iIndex = color.GetHashCode(); + if (iIndex < 0 || iIndex >= 10) + { + iIndex = 0; + } + return iIndex; + } + + #endregion } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs b/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs index 71a171410d..46d718d016 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_Inventory.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Unity.VisualScripting; using UnityEngine; namespace BrewMonster.Scripts.Managers @@ -24,13 +25,13 @@ namespace BrewMonster.Scripts.Managers IVTRTYPE_TRASHBOX2 = 4, // Trash box - material box IVTRTYPE_TRASHBOX3 = 5, // Trash box - fashion box IVTRTYPE_ACCOUNT_BOX = 6, // User account box - IVTRTYPE_GENERALCARD_BOX = 7; // ư + IVTRTYPE_GENERALCARD_BOX = 7; // ���ư��� }; - // ע IVTRTYPE_CLIENT_GENERALCARD_PACK öֵܺ Inventory type ֵظ + // ע�� IVTRTYPE_CLIENT_GENERALCARD_PACK ö��ֵ���ܺ������ Inventory type ֵ�ظ����� public static class IVTRTYPE_PACK_CLIENT_GENERALCAR { - public const int IVTRTYPE_CLIENT_GENERALCARD_PACK = 1024; // ͻ˱ذ ڿͼҪѻÿͨ췢͡Ϊͳһ촰ڵƷӱذ + public const int IVTRTYPE_CLIENT_GENERALCARD_PACK = 1024; // �ͻ��˱��ذ����� ���ڿ���ͼ��Ҫ����ѻ�ÿ���ͨ�����췢�͡�Ϊ��ͳһ�������촰�ڵ���Ʒ�����ӱ��ذ����� }; public EC_Inventory() @@ -168,14 +169,7 @@ namespace BrewMonster.Scripts.Managers { return false; } - - var newItem = new EC_IvtrItem(tid, iExpireDate) - { - Slot = firstEmpty, - State = 0, - Crc = 0, - Content = null - }; + var newItem = EC_IvtrItem.CreateItem(tid, iExpireDate, iAmount); newItem.SetCount(iAmount); m_aItems[firstEmpty] = newItem; @@ -203,15 +197,7 @@ namespace BrewMonster.Scripts.Managers if (pDst == null) { - var clone = new EC_IvtrItem(pSrc.GetTemplateID(), pSrc.GetExpireDate()) - { - Slot = iDest, - Package = pSrc.Package, - State = pSrc.State, - Crc = pSrc.Crc, - Content = pSrc.Content != null ? (byte[])pSrc.Content.Clone() : null - }; - clone.SetCount(iAmount); + var clone = EC_IvtrItem.CreateItem(pSrc.GetTemplateID(), pSrc.GetExpireDate(), iAmount); m_aItems[iDest] = clone; } else diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs index 2ec6e46f6e..8b0b0af771 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs @@ -85,7 +85,7 @@ namespace BrewMonster.Scripts.Managers private byte currentSelectedPackage; private int currentSelectedSlot; private EC_IvtrItem currentSelectedItem; - private EC_IvtrEquip currentSelectedEquipment; + private EC_IvtrItem currentSelectedEquipment; private const byte PKG_INVENTORY = 0; private const byte PKG_EQUIPMENT = 1; @@ -281,18 +281,12 @@ namespace BrewMonster.Scripts.Managers /// /// Create EC_IvtrEquip object from InventoryItemData /// - private EC_IvtrEquip CreateEquipmentFromItemData(EC_IvtrItem itemData) + private EC_IvtrItem CreateEquipmentFromItemData(EC_IvtrItem itemData) { if (itemData == null) return null; - var equipment = new EC_IvtrEquip(itemData.m_tid, itemData.m_expire_date); - - // Set basic properties (use default values since InventoryItemData doesn't have these) - equipment.Price = 0; - equipment.Count = itemData.m_iCount; - equipment.PriceScale = 1.0f; - equipment.ScaleType = 0; + var equipment = EC_IvtrItem.CreateItem(itemData.m_tid, itemData.m_expire_date, itemData.m_iCount); // Parse item info if available (use Content field) if (itemData.Content != null && itemData.Content.Length > 0) @@ -856,11 +850,11 @@ namespace BrewMonster.Scripts.Managers string fullDesc = null; if (showEquipmentDetails && currentSelectedEquipment != null) { - fullDesc = currentSelectedEquipment.GetDesc(); + fullDesc = currentSelectedEquipment.GetDesc(EC_IvtrItem.DescType.DESC_NORMAL, EC_Game.GetGameRun().GetHostPlayer().GetEquipment()); } else { - fullDesc = item.GetDesc(); + fullDesc = item.GetDesc(EC_IvtrItem.DescType.DESC_NORMAL, EC_Game.GetGameRun().GetHostPlayer().GetEquipment()); } if (!string.IsNullOrEmpty(fullDesc)) @@ -880,55 +874,7 @@ namespace BrewMonster.Scripts.Managers // C++ code doesn't check IsInitialized() - it just calls GetWideString() directly // 完全按照C++代码获取扩展描述:g_pGame->GetItemExtDesc(m_tid) // C++代码不检查IsInitialized() - 它直接调用GetWideString() - string szExtDesc = null; - try - { - var itemExtDescTab = EC_Game.GetItemExtDesc(); - if (itemExtDescTab != null) - { - // First try to get mapped message ID (like TryGetItemExtDesc does) - // 首先尝试获取映射的消息ID(如TryGetItemExtDesc所做) - if (EC_Game.TryGetItemMsg(item.m_tid, out int messageId, out int displayMode)) - { - szExtDesc = itemExtDescTab.GetWideString(messageId); - } - - // Fallback: direct lookup using tid (exactly like C++: m_ItemExtDesc.GetWideString(tid)) - // 回退:直接使用tid查找(完全像C++:m_ItemExtDesc.GetWideString(tid)) - if (string.IsNullOrEmpty(szExtDesc)) - { - szExtDesc = itemExtDescTab.GetWideString(item.m_tid); - } - } - } - catch (System.Exception ex) - { - // Only log once to avoid spam - // 仅记录一次以避免垃圾日志 - if (!m_HasLoggedExtDescError) - { - Debug.LogWarning($"[InventoryUI] Error getting extended description: {ex.Message}"); - m_HasLoggedExtDescError = true; - } - } - - // Display extended description if found (exactly like C++ checks: if (!szExtDesc || !szExtDesc[0])) - // 如果找到扩展描述则显示(完全像C++检查:if (!szExtDesc || !szExtDesc[0])) - string displayText = !string.IsNullOrEmpty(szExtDesc) - ? szExtDesc.Replace("\\r", "\n") - : ""; - - // Debug logging to diagnose issues - // 调试日志以诊断问题 - if (string.IsNullOrEmpty(displayText)) - { - Debug.Log($"[InventoryUI] Extended description is empty for tid={item.m_tid}. szExtDesc was null/empty."); - } - else - { - Debug.Log($"[InventoryUI] Found extended description for tid={item.m_tid}, length={displayText.Length}"); - } - + // Setup equip and drop buttons SetupEquipButton(package, item); SetupDropButton(package, item); @@ -937,17 +883,7 @@ namespace BrewMonster.Scripts.Managers // 先显示面板 ShowDetailPanel(true); - // Set text directly - if this causes rebuild issues, we'll use coroutine - // 直接设置文本 - 如果这导致重建问题,我们将使用协程 - if (extendedDescText != null) - { - extendedDescText.Set(displayText); - Debug.Log($"[InventoryUI] Set extended description text, extendedDescText is {(extendedDescText == null ? "null" : "not null")}"); - } - else - { - Debug.LogWarning("[InventoryUI] extendedDescText is null! Check Inspector assignment."); - } + } private void SetupEquipButton(byte package, EC_IvtrItem item) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs.meta deleted file mode 100644 index 3b702f712f..0000000000 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c94b2c779cdb94d398d4aa10eb44cac6 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs.meta deleted file mode 100644 index 71ac740d78..0000000000 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 50210c0839c503b42843db0237a9c3a8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs.meta deleted file mode 100644 index 8045c9c72f..0000000000 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 423a6efd71f143f08096d684ca414bba -timeCreated: 1757752654 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.meta new file mode 100644 index 0000000000..83b999b8d5 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5535276db3184cac9313d3cc28bca47 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs similarity index 99% rename from Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs rename to Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs index 1a87d95aae..7342e66121 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrArmor.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs @@ -77,7 +77,7 @@ namespace PerfectWorld.Scripts.Managers public EC_IvtrArmor(int tid, int expire_date) : base(tid, expire_date) { - m_iCID = ICID_WEAPON; + m_iCID = (int)InventoryClassId.ICID_ARMOR; elementdataman pDB = ElementDataManProvider.GetElementDataMan(); DATA_TYPE DataType = DATA_TYPE.DT_INVALID; m_pDBEssence = (ARMOR_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); @@ -86,7 +86,7 @@ namespace PerfectWorld.Scripts.Managers m_iPileLimit = m_pDBEssence.pile_num_max; m_iPrice = m_pDBEssence.price; m_iShopPrice = m_pDBEssence.shop_price; - m_i64EquipMask = EC_IvtrEquip.ICID_WEAPON; + m_i64EquipMask = m_pDBSubType.equip_mask; m_iProcType = (int)m_pDBEssence.proc_type; FixProps = m_pDBEssence.fixed_props; @@ -499,6 +499,7 @@ namespace PerfectWorld.Scripts.Managers AddSharpenerDesc(); AddEngravedDesc(); AddMakerDesc(); + m_strDesc += "\\r"; AddSuiteDesc(); AddExtDescText(); return m_strDesc; diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs.meta new file mode 100644 index 0000000000..eb86dd22d2 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 30e9ab67f87a542d59ff94440cb4e78c \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs new file mode 100644 index 0000000000..d6265d5373 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs @@ -0,0 +1,16 @@ + +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrArmorrune : EC_IvtrItem + { + public EC_IvtrArmorrune(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrArmorrune(EC_IvtrArmorrune other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs.meta new file mode 100644 index 0000000000..7c6f4748db --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArmorrune.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a1e7bdbebb3744fd78b3c9906d93f2ab \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs new file mode 100644 index 0000000000..b539ae2fd2 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs @@ -0,0 +1,14 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrArrow : EC_IvtrEquip + { + public EC_IvtrArrow(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrArrow(EC_IvtrArrow other) : base(other) + { + } + } +} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs.meta new file mode 100644 index 0000000000..c85739af4b --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrArrow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d252cb1fcb2e946688fd6836548fd0d4 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs new file mode 100644 index 0000000000..72f8f163fa --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrAutoHp : EC_IvtrItem + { + public EC_IvtrAutoHp(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrAutoHp(EC_IvtrAutoHp other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs.meta new file mode 100644 index 0000000000..2f58dd1e84 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoHp.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 67deebf01a6fc4678a8eb801cae72d0e \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs new file mode 100644 index 0000000000..5bb5775c17 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrAutoMp : EC_IvtrItem + { + public EC_IvtrAutoMp(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrAutoMp(EC_IvtrAutoMp other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs.meta new file mode 100644 index 0000000000..af7c51314b --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrAutoMp.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5e4aa169619834c7fa8e2421d81b9f36 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs new file mode 100644 index 0000000000..3a1e3607c3 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrBible : EC_IvtrItem + { + public EC_IvtrBible(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrBible(EC_IvtrBible other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs.meta new file mode 100644 index 0000000000..332fe117d7 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrBible.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f352a8dce1daf4a078e5f1df0222d854 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs new file mode 100644 index 0000000000..17af84f155 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrCertificate : EC_IvtrItem + { + public EC_IvtrCertificate(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrCertificate(EC_IvtrCertificate other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs.meta new file mode 100644 index 0000000000..443976210f --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCertificate.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 150298d1bd0fb446a8cc9231d5145cad \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs new file mode 100644 index 0000000000..0508913946 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrCongregate : EC_IvtrItem + { + public EC_IvtrCongregate(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrCongregate(EC_IvtrCongregate other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs.meta new file mode 100644 index 0000000000..9251a506a3 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrCongregate.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bf279660c3b2b4027bc9d97e691c1870 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs new file mode 100644 index 0000000000..405849bb17 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrDamagerune : EC_IvtrItem + { + public EC_IvtrDamagerune(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrDamagerune(EC_IvtrDamagerune other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs.meta new file mode 100644 index 0000000000..15e7015b3d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDamagerune.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d2481f9333ffc4852bb83fb78511f6da \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs new file mode 100644 index 0000000000..bd2bc8d3e5 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs @@ -0,0 +1,79 @@ +/////////////////////////////////////////////////////////////////////////// +// +// Define and Macro +// +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////// +// +// Reference to External variables and functions +// +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////// +// +// Local Types and Variables and Global variables +// +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////// +// +// Local functions +// +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////// +// +// Implement CECIvtrDecoration +// +/////////////////////////////////////////////////////////////////////////// +using BrewMonster; +using ModelRenderer.Scripts.GameData; +using System.Collections.Generic; +using BrewMonster.Network; +using BrewMonster.Scripts.Managers; +using BrewMonster.Scripts; +namespace PerfectWorld.Scripts.Managers +{ + + public class EC_IvtrDecoration : EC_IvtrEquip + { + protected IVTR_ESSENCE_DECORATION m_Essence; + protected DECORATION_MAJOR_TYPE m_pDBMajorType; + protected DECORATION_SUB_TYPE m_pDBSubType; + protected DECORATION_ESSENCE m_pDBEssence; + + public EC_IvtrDecoration(int tid, int expire_date) : base(tid, expire_date) + { + m_iCID = (int)InventoryClassId.ICID_DECORATION; + elementdataman pDB = ElementDataManProvider.GetElementDataMan(); + DATA_TYPE DataType = DATA_TYPE.DT_INVALID; + m_pDBEssence = (DECORATION_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + m_pDBMajorType = (DECORATION_MAJOR_TYPE)pDB.get_data_ptr(m_pDBEssence.id_major_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + m_pDBSubType = (DECORATION_SUB_TYPE)pDB.get_data_ptr(m_pDBEssence.id_sub_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + m_iPileLimit = m_pDBEssence.pile_num_max; + m_iPrice = m_pDBEssence.price; + m_iShopPrice = m_pDBEssence.shop_price; + m_i64EquipMask = m_pDBSubType.equip_mask; + m_iProcType = (int)m_pDBEssence.proc_type; + + FixProps = m_pDBEssence.fixed_props; + RepairFee = m_pDBEssence.repairfee; + ReputationReq = m_pDBEssence.require_reputation; + } + + public EC_IvtrDecoration(EC_IvtrDecoration other) : base(other) + { + m_pDBEssence = other.m_pDBEssence; + m_pDBMajorType = other.m_pDBMajorType; + m_pDBSubType = other.m_pDBSubType; + m_Essence = other.m_Essence; + } + + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs.meta new file mode 100644 index 0000000000..3dc57a1d75 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDecoration.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 238a4e2d1554d44b0a9f3f283a9badd7 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs new file mode 100644 index 0000000000..6e05875dd8 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrDestroyingEssence : EC_IvtrItem + { + public EC_IvtrDestroyingEssence(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrDestroyingEssence(EC_IvtrDestroyingEssence other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs.meta new file mode 100644 index 0000000000..c0c4fb2b54 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDestroyingEssence.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 584e97711b3bb4f97a18866bd56ce985 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs new file mode 100644 index 0000000000..52778da300 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrDoubleExp : EC_IvtrItem + { + public EC_IvtrDoubleExp(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrDoubleExp(EC_IvtrDoubleExp other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs.meta new file mode 100644 index 0000000000..75b93a1eb0 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDoubleExp.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 684f0b389343e420dbf9d02a184554b8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs new file mode 100644 index 0000000000..11d8162ba5 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrDyeTicket : EC_IvtrItem + { + public EC_IvtrDyeTicket(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrDyeTicket(EC_IvtrDyeTicket other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs.meta new file mode 100644 index 0000000000..c4abf8e13f --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDyeTicket.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2b30a0678c3bb488e8579f6b1cff0847 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs new file mode 100644 index 0000000000..4e18b6edc4 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrDynSkillEquip : EC_IvtrEquip + { + public EC_IvtrDynSkillEquip(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrDynSkillEquip(EC_IvtrDynSkillEquip other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs.meta new file mode 100644 index 0000000000..651665273d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrDynSkillEquip.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a1a5aae82e25b4ce5aeb499cb804f9fa \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs new file mode 100644 index 0000000000..f667324b31 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrElement : EC_IvtrItem + { + public EC_IvtrElement(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrElement(EC_IvtrElement other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs.meta new file mode 100644 index 0000000000..6afa910abc --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrElement.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 28e3dc4074f0246449da8b794ca2a018 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs similarity index 95% rename from Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs rename to Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs index 98862b8712..c2e77eb454 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrEquip.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs @@ -15,6 +15,8 @@ using System.Reflection; using BrewMonster.Scripts.Managers; using BrewMonster.Scripts; using UnityEngine.AddressableAssets; +using CSNetwork.Protocols; +using Unity.VisualScripting; namespace PerfectWorld.Scripts.Managers { @@ -26,12 +28,75 @@ namespace PerfectWorld.Scripts.Managers { #region Constants and Enums - // Item Class IDs - public const int ICID_EQUIP = 1; - public const int ICID_WEAPON = 2; + public enum EQUIP_CLASS_ID + { + ICID_ITEM = -100, + ICID_EQUIP = -101, + ICID_ARMOR = 0, + ICID_ARMORRUNE, + ICID_ARROW, + ICID_DECORATION, + ICID_DMGRUNE, + ICID_ELEMENT, + ICID_FASHION, + ICID_FLYSWORD, + ICID_MATERIAL, + ICID_MEDICINE, + ICID_REVSCROLL, + ICID_SKILLTOME, + ICID_TOSSMAT, + ICID_TOWNSCROLL, + ICID_UNIONSCROLL, + ICID_WEAPON, + ICID_TASKITEM, + ICID_STONE, + ICID_WING, + ICID_TASKDICE, + ICID_TASKNMMATTER, + ICID_ERRORITEM, + ICID_FACETICKET, + ICID_FACEPILL, + ICID_GM_GENERATOR, + ICID_RECIPE, + ICID_PETEGG, + ICID_PETFOOD, + ICID_PETFACETICKET, + ICID_FIREWORK, + ICID_TANKCALLIN, + ICID_SKILLMATTER, + ICID_REFINETICKET, + ICID_DESTROYINGESSENCE, + ICID_BIBLE, + ICID_SPEAKER, + ICID_AUTOHP, + ICID_AUTOMP, + ICID_DOUBLEEXP, + ICID_TRANSMITSCROLL, + ICID_DYETICKET, + ICID_GOBLIN, + ICID_GOBLIN_EQUIP, + ICID_GOBLIN_EXPPILL, + ICID_CERTIFICATE, + ICID_TARGETITEM, + ICID_LOOKINFOITEM, + ICID_INCSKILLABILITY, + ICID_WEDDINGBOOKCARD, + ICID_WEDDINGINVITECARD, + ICID_SHARPENER, + ICID_FACTIONMATERIAL, + ICID_CONGREGATE, + ICID_FORCETOKEN, + ICID_DYNSKILLEQUIP, + ICID_MONEYCONVERTIBLE, + ICID_MONSTERSPIRIT, + ICID_GENERALCARD, + ICID_GENERALCARD_DICE, + ICID_SHOPTOKEN, + ICID_UNIVERSAL_TOKEN, + } // Item Made From Types - public enum ITEM_MAKE_TAG + public enum ITEM_MAKE_TAG { IMT_NULL, IMT_CREATE, // GM ���� @@ -109,6 +174,9 @@ namespace PerfectWorld.Scripts.Managers // Basic Item Properties public int TemplateId { get; set; } public int ExpireDate { get; set; } + /// + /// class id + /// public int CID { get; set; } public int Price { get; set; } public int Count { get; set; } @@ -506,7 +574,7 @@ namespace PerfectWorld.Scripts.Managers { TemplateId = tid; ExpireDate = expireDate; - CID = ICID_EQUIP; + CID = (int)InventoryClassId.ICID_EQUIP; Price = 0; Count = 1; PriceScale = 1.0f; @@ -583,7 +651,6 @@ namespace PerfectWorld.Scripts.Managers // [6 x short requirements][2 x int endurance][short essenceSize][maker info][essence bytes][short numHole][WORD stoneMask][numHole x int holes][int numProp][props] if (TryParseEquipInfoNative(infoData, dataLen)) { - BMLogger.Log("CECIvtrEquip::SetItemInfo, native order success"); ParseProperties(); return true; } @@ -591,7 +658,6 @@ namespace PerfectWorld.Scripts.Managers // Fallback to legacy/custom order if server payload differs if (TryParseEquipInfoLegacy(infoData, dataLen)) { - BMLogger.Log("CECIvtrEquip::SetItemInfo, legacy order success"); ParseProperties(); return true; } @@ -1233,7 +1299,6 @@ namespace PerfectWorld.Scripts.Managers } } - Debug.Log($"[EC_IvtrEquip] Loaded {s_propIdToType.Count} property mappings from Addressables"); } else { @@ -1304,7 +1369,7 @@ namespace PerfectWorld.Scripts.Managers /// /// Decide equipment name color /// - public int DecideNameCol() + protected override int DecideNameCol() { int index = GetColorStrID(TemplateId); if (index >= 0) @@ -1329,10 +1394,16 @@ namespace PerfectWorld.Scripts.Managers /// /// Get color string ID for template /// - private int GetColorStrID(int templateId) + public override int GetColorStrID(int templateId) { // This would normally query the game's color system - return -1; + int iIndex = EC_Game.GetItemNameColorIdx(templateId); + if (iIndex <= 0) + return -1; + else if (iIndex < 7) + return (int)DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE + iIndex - 1; + else + return (int)DescriptipionMsg.ITEMDESC_COL2_START + iIndex - 7 + 1; } #endregion @@ -1409,7 +1480,7 @@ namespace PerfectWorld.Scripts.Managers // 5) Add-on properties (non-embedded, non-suite, non-engraved) if (!string.IsNullOrEmpty(strAddon)) m_strDesc += strAddon; - + AddPriceDesc(white, false); // 6) Tessera / stones (socketed gems) BuildTesseraDesc(); @@ -1425,10 +1496,10 @@ namespace PerfectWorld.Scripts.Managers // 10) Maker & destroying info if any AddMakerDesc(); // Destroying description is added by caller when needed; keep it optional here. - + m_strDesc += "\\r"; + AddExtDescText(); + Debug.Log("m_strDesc add ext desc text: " + m_strDesc); // 11) Price (sell price scaled) - AddPriceDesc(white, false); - return m_strDesc; } @@ -2177,6 +2248,11 @@ namespace PerfectWorld.Scripts.Managers public int GetSuiteID() { // This would normally query the game's suite equip table + Dictionary suiteEquipTab = EC_Game.GetSuiteEquipTab(); + if (suiteEquipTab.TryGetValue(GetTemplateID(), out int suiteId)) + { + return suiteId; + } return 0; } @@ -4134,6 +4210,19 @@ namespace PerfectWorld.Scripts.Managers } } + struct SUITEITEM + { + public bool bEnabled; + public int tid; + public char[] szName; + public string Name => new string(szName); + public SUITEITEM(bool bEnabled, int tid) + { + this.bEnabled = bEnabled; + this.tid = tid; + this.szName = new char[32]; + } + } /// /// Add suite description /// @@ -4152,63 +4241,128 @@ namespace PerfectWorld.Scripts.Managers // ASSERT in C++ return; } - - // In C#, we'd need to cast to SUITE_ESSENCE struct - // For now, use placeholder values - string suiteName = "Suite"; // TODO: Get from SUITE_ESSENCE.name - int maxEquips = 12; // TODO: Get from SUITE_ESSENCE.max_equips - - // Get host player (would normally come from EC_Game.GetGameRun().GetHostPlayer()) - // Check if this equipment is in host's equipment pack - bool showDetail = false; // TODO: Check if m_pDescIvtr == pHostPlayer->GetEquipment() + SUITE_ESSENCE pSuiteEss = (SUITE_ESSENCE)pData; + CECHostPlayer hostPlayer = EC_Game.GetGameRun().GetHostPlayer(); // Colors - int nameCol = DecideNameCol(); + int iNameCol = DecideNameCol(); int lblue = (int)DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE; + int green = (int)DescriptipionMsg.ITEMDESC_COL_GREEN; + int gray = (int)DescriptipionMsg.ITEMDESC_COL_GRAY; + int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE; int yellow = (int)DescriptipionMsg.ITEMDESC_COL_YELLOW; // Save current description string strCurDesc = m_strDesc; - - if (!showDetail) + bool bShowDetail = true; + if (hostPlayer.GetEquipment() != m_pDescIvtr) + bShowDetail = false; + else { - // Isn't equipment inventory, only add total suite number info. + for(int i = 0; i < m_pDescIvtr.GetSize(); i++) + { + EC_IvtrItem pItem = m_pDescIvtr.GetItem(i); + if (pItem == null) + { + bShowDetail = false; + continue; + } + if (pItem.m_tid == this.m_tid) + { + bShowDetail = true; + break; + } + } + } + + if (!bShowDetail) + { m_strDesc = "\\r\\r"; - AddDescText(nameCol, false, "{0} ({1})", suiteName, maxEquips); + AddDescText(iNameCol, true, "{0} {1}/{2}", pSuiteEss.Name, 0, pSuiteEss.max_equips); m_strDesc = strCurDesc + m_strDesc; return; } - - // Maximum number of suite items + // Maximum number of suite items const int MAX_NUM = 12; + SUITEITEM[] aSuiteItems = new SUITEITEM[MAX_NUM]; - // Get equipped suite item list - int[] aEquipped = new int[MAX_NUM]; - int itemCnt = 0; // TODO: Get from pHostPlayer->GetEquippedSuiteItem(idSuite, aEquipped) - if (itemCnt == 0) - return; - - m_strDesc = "\\r\\r"; - - // Build suite addon properties at first - if (itemCnt > 1) + + int maxEquips = (pSuiteEss.max_equips > MAX_NUM) ? MAX_NUM : (int)pSuiteEss.max_equips; + for(int i = 0; i < maxEquips; i++) { - // Change color - AddDescText(lblue, false, ""); - - // In C++, this loops through suite addons and displays them - // For now, skip detailed addon display + aSuiteItems[i].bEnabled = false; + aSuiteItems[i].tid = (int)pSuiteEss.equipments[i].id; + aSuiteItems[i].szName = new char[32]; + aSuiteItems[i].szName[0] = '\0'; + EC_IvtrItem pEquipItem = CreateItem((int)pSuiteEss.equipments[i].id, 0,1); + if (pEquipItem != null) + { + aSuiteItems[i].szName = pEquipItem.GetName().ToCharArray(); + //delete pEquipItem; + } + else + { + aSuiteItems[i].tid = 0; + } + } + int iItemCnt; + int[] aEquipped = new int[MAX_NUM]; + iItemCnt = hostPlayer.GetEquippedSuiteItem(idSuite,ref aEquipped); + if(iItemCnt == 0) return; + + m_strDesc += "\\r\\r"; + // Build suite addon properties at first + for (int i = 0; i < MAX_NUM; i++) + { + for(int j = 0; j < iItemCnt; j++) + { + if (aSuiteItems[i].tid == aEquipped[j]) + { + aSuiteItems[i].bEnabled = true; + break; + } + } } - // Add suite name - AddDescText(yellow, true, "{0} ({1} / {2})", suiteName, itemCnt, maxEquips); - - // List suite item names would go here - // In C++, this creates SUITEITEM array and lists enabled/disabled items - // green, gray, white colors would be used here for enabled/disabled items - // For now, simplified version + if(iItemCnt > 1) + { + // Change color + AddDescText(lblue, false, ""); + + for (int i=1; i < iItemCnt; i++) + { + int idProp = (int)pSuiteEss.addons[i-1].id; + if (idProp == 0) + continue; + + pData = dataMan.get_data_ptr((uint)idProp, ID_SPACE.ID_SPACE_ADDON, ref dataType); + if (dataType != DATA_TYPE.DT_EQUIPMENT_ADDON) + { + continue; + } + + EQUIPMENT_ADDON pAddOn = (EQUIPMENT_ADDON)pData; + + AddDescText(-1, false, "(%d) ", i+1); + AddDescText(-1, true, "%s", pAddOn.Name); + } + } + // Add suite name + AddDescText(yellow/*iNameCol*/, true, "{0} ({1} / {2})", pSuiteEss.Name, iItemCnt, pSuiteEss.max_equips); + for (int i=0; i < pSuiteEss.max_equips; i++) + { + SUITEITEM suiteItem = aSuiteItems[i]; + if (suiteItem.tid == 0) + continue; + + int col = suiteItem.bEnabled ? green : gray; + bool bRet = (i == pSuiteEss.max_equips-1) ? false : true; + + // Add item name + AddDescText(col, bRet, " %s", suiteItem.Name); + } } - + /// /// Add destroying description /// @@ -4493,27 +4647,22 @@ namespace PerfectWorld.Scripts.Managers if (string.IsNullOrEmpty(Maker)) return; - BMLogger.Log("[THN]EC_IvtrEquip: AddMakerDesc: Maker: " + Maker); - m_strDesc += "\\r"; + m_strDesc += "\\r"; // For signed marks (IMT_SIGN), Maker already contains color codes and formatted text. if (MadeFrom == (byte)ITEM_MAKE_TAG.IMT_SIGN) { - BMLogger.Log("[THN]EC_IvtrEquip: AddMakerDesc IF: Maker: " + Maker); m_strDesc += Maker; } else { - BMLogger.Log("[THN]EC_IvtrEquip: AddMakerDesc ELSE: Maker: " + Maker); // Normal "made by" line using item-desc string if available string fmt = GetItemDescString(DescriptipionMsg.ITEMDESC_MADEFROM); if (string.IsNullOrEmpty(fmt)) { fmt = "Made by {0}"; } - BMLogger.Log("[THN]EC_IvtrEquip: AddMakerDesc ELSE: fmt: " + fmt); AddDescText((int)DescriptipionMsg.ITEMDESC_COL_GREEN, false, fmt, Maker); - BMLogger.Log("[THN]EC_IvtrEquip: AddMakerDesc ELSE: m_strDesc: " + m_strDesc); - } + } } /// diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs.meta new file mode 100644 index 0000000000..81db6a40d0 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f740d7d39c73f41a7a352c569c5442db \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs new file mode 100644 index 0000000000..815c598198 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFacePill : EC_IvtrItem + { + public EC_IvtrFacePill(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFacePill(EC_IvtrFacePill other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs.meta new file mode 100644 index 0000000000..8009dce62b --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFacePill.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a8785f321cb1c42e784355f0e452a2f8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs new file mode 100644 index 0000000000..9c1fd6ccaa --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFaceTicket : EC_IvtrItem + { + public EC_IvtrFaceTicket(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFaceTicket(EC_IvtrFaceTicket other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs.meta new file mode 100644 index 0000000000..dc9acdba94 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFaceTicket.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 97a6a36bce3c046a88e5c12e8ac79b03 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs new file mode 100644 index 0000000000..3429a0b219 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFactionMaterial : EC_IvtrItem + { + public EC_IvtrFactionMaterial(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFactionMaterial(EC_IvtrFactionMaterial other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs.meta new file mode 100644 index 0000000000..20cddc454f --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFactionMaterial.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e3a3f865615ba4eaca9942d99698c332 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs new file mode 100644 index 0000000000..a6c1751657 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFashion : EC_IvtrItem + { + public EC_IvtrFashion(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFashion(EC_IvtrFashion other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs.meta new file mode 100644 index 0000000000..d9d6ea16e4 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFashion.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8cbdfe37e56eb46be91ac835220dfb25 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs new file mode 100644 index 0000000000..71d75113d0 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFirework : EC_IvtrItem + { + public EC_IvtrFirework(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFirework(EC_IvtrFirework other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs.meta new file mode 100644 index 0000000000..c2130f4714 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFirework.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9a4c28d0768f341b2aef5ec207875a31 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs new file mode 100644 index 0000000000..210d40eda0 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrFlysword : EC_IvtrItem + { + public EC_IvtrFlysword(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrFlysword(EC_IvtrFlysword other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs.meta new file mode 100644 index 0000000000..eb9291c8e5 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 76745e0d1f528425eac71363b77c8cdd \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs new file mode 100644 index 0000000000..26dc9fed3e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrForceToken : EC_IvtrItem + { + public EC_IvtrForceToken(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrForceToken(EC_IvtrForceToken other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs.meta new file mode 100644 index 0000000000..7c1d676914 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrForceToken.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: de39c4a9aa1e1434c96ce485ea144291 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs new file mode 100644 index 0000000000..de46434948 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGeneralCard : EC_IvtrItem + { + public EC_IvtrGeneralCard(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGeneralCard(EC_IvtrGeneralCard other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs.meta new file mode 100644 index 0000000000..2344d68880 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCard.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bfe40c592c38542d2a590310173f5c8c \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs new file mode 100644 index 0000000000..df28fd9d9a --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGeneralCardDice : EC_IvtrItem + { + public EC_IvtrGeneralCardDice(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGeneralCardDice(EC_IvtrGeneralCardDice other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs.meta new file mode 100644 index 0000000000..3d919e4baf --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGeneralCardDice.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ab3e2b5b4e09949a69cfc003d0103804 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs new file mode 100644 index 0000000000..75f77cf24c --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGmGenerator : EC_IvtrItem + { + public EC_IvtrGmGenerator(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGmGenerator(EC_IvtrGmGenerator other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs.meta new file mode 100644 index 0000000000..cd7c06a818 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGmGenerator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 92617801fcd734adfa84fb4d4ca84f0c \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs new file mode 100644 index 0000000000..44878eb090 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGoblin : EC_IvtrItem + { + public EC_IvtrGoblin(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGoblin(EC_IvtrGoblin other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs.meta new file mode 100644 index 0000000000..4903722714 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblin.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c8726058514b64b129c6b619e7e1d3fa \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs new file mode 100644 index 0000000000..26374a3219 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGoblinEquip : EC_IvtrEquip + { + public EC_IvtrGoblinEquip(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGoblinEquip(EC_IvtrGoblinEquip other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs.meta new file mode 100644 index 0000000000..b92fb38bb4 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinEquip.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 89be2e126b8d44151bdd559226b0f306 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs new file mode 100644 index 0000000000..b6c49d6aaa --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrGoblinExpPill : EC_IvtrItem + { + public EC_IvtrGoblinExpPill(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrGoblinExpPill(EC_IvtrGoblinExpPill other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs.meta new file mode 100644 index 0000000000..becac7c872 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrGoblinExpPill.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4b383fd16faa444fa8dc9a5c4e4aac86 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs new file mode 100644 index 0000000000..93c8043715 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrIncSkillAbility : EC_IvtrItem + { + public EC_IvtrIncSkillAbility(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrIncSkillAbility(EC_IvtrIncSkillAbility other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs.meta new file mode 100644 index 0000000000..044cd3f346 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrIncSkillAbility.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4050b6d604fee48c399953ca2707f650 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs similarity index 83% rename from Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs rename to Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs index 92590d7e46..8f3142b426 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs @@ -167,17 +167,14 @@ namespace BrewMonster.Scripts.Managers } } - Debug.Log($"[Inventory] Loaded multi-sprite atlas with {atlasSprites.Length} sprites"); } else { - Debug.LogWarning("[Inventory] Failed to load multi-sprite atlas: iconlist_ivtrm_multisprite"); _multiSpriteAtlas = new Sprite[0]; // Prevent repeated loading attempts } } catch (Exception ex) { - Debug.LogError($"[Inventory] Error loading multi-sprite atlas: {ex.Message}"); _multiSpriteAtlas = new Sprite[0]; // Prevent repeated loading attempts } } @@ -332,7 +329,6 @@ namespace BrewMonster.Scripts.Managers try { var val = getNameMethod.Invoke(data, null) as string; - Debug.Log($"[Inventory] GetName method result: '{val}' (length: {val?.Length ?? 0})"); if (!string.IsNullOrEmpty(val) && !string.IsNullOrWhiteSpace(val)) return val; } catch (Exception ex) @@ -459,15 +455,12 @@ namespace BrewMonster.Scripts.Managers ci += extraLen; } - var item = new EC_IvtrItem(tid, expireDate) - { - Package = byPackage, - Slot = slotIndex, - State = state, - Crc = crc, - Content = extra - }; - item.SetCount(amount); + var item = EC_IvtrItem.CreateItem(tid, expireDate, amount); + item.Package = byPackage; + item.Slot = slotIndex; + item.State = state; + item.Crc = crc; + item.Content = extra; items.Add(item); } @@ -814,16 +807,191 @@ namespace BrewMonster.Scripts.Managers var pItem = new EC_IvtrItem(tid, expire_date); DATA_TYPE DataType = DATA_TYPE.DT_INVALID; object data = ElementDataManProvider.GetElementDataMan().get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + Debug.Log("DataType: " + DataType); switch(DataType) { case DATA_TYPE.DT_WEAPON_ESSENCE: pItem = new EC_IvtrWeapon(tid, expire_date); break; + case DATA_TYPE.DT_PROJECTILE_ESSENCE: + pItem = new EC_IvtrArrow(tid, expire_date); + break; case DATA_TYPE.DT_ARMOR_ESSENCE: pItem = new EC_IvtrArmor(tid, expire_date); break; + case DATA_TYPE.DT_DECORATION_ESSENCE: + pItem = new EC_IvtrDecoration(tid, expire_date); + break; + case DATA_TYPE.DT_FASHION_ESSENCE: + pItem = new EC_IvtrFashion(tid, expire_date); + break; + case DATA_TYPE.DT_MEDICINE_ESSENCE: + pItem = new EC_IvtrMedicine(tid, expire_date); + break; + case DATA_TYPE.DT_MATERIAL_ESSENCE: + pItem = new EC_IvtrMaterial(tid, expire_date); + break; + case DATA_TYPE.DT_DAMAGERUNE_ESSENCE: + pItem = new EC_IvtrDamagerune(tid, expire_date); + break; + case DATA_TYPE.DT_ARMORRUNE_ESSENCE: + pItem = new EC_IvtrArmorrune(tid, expire_date); + break; + case DATA_TYPE.DT_SKILLTOME_ESSENCE: + pItem = new EC_IvtrSkilltome(tid, expire_date); + break; + case DATA_TYPE.DT_FLYSWORD_ESSENCE: + pItem = new EC_IvtrFlysword(tid, expire_date); + break; + case DATA_TYPE.DT_TOWNSCROLL_ESSENCE: + pItem = new EC_IvtrTownscroll(tid, expire_date); + break; + case DATA_TYPE.DT_UNIONSCROLL_ESSENCE: + pItem = new EC_IvtrUnionscroll(tid, expire_date); + break; + case DATA_TYPE.DT_REVIVESCROLL_ESSENCE: + pItem = new EC_IvtrRevScroll(tid, expire_date); + break; + case DATA_TYPE.DT_ELEMENT_ESSENCE: + pItem = new EC_IvtrElement(tid, expire_date); + break; + case DATA_TYPE.DT_TOSSMATTER_ESSENCE: + pItem = new EC_IvtrTossMat(tid, expire_date); + break; + case DATA_TYPE.DT_TASKMATTER_ESSENCE: + pItem = new EC_IvtrTaskmatter(tid, expire_date); + break; + case DATA_TYPE.DT_STONE_ESSENCE: + pItem = new EC_IvtrStone(tid, expire_date); + break; + case DATA_TYPE.DT_WINGMANWING_ESSENCE: + pItem = new EC_IvtrWing(tid, expire_date); + break; + case DATA_TYPE.DT_TASKDICE_ESSENCE: + pItem = new EC_IvtrTaskDice(tid, expire_date); + break; + case DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE: + pItem = new EC_IvtrTaskNmMatter(tid, expire_date); + break; + case DATA_TYPE.DT_FACETICKET_ESSENCE: + pItem = new EC_IvtrFaceTicket(tid, expire_date); + break; + case DATA_TYPE.DT_FACEPILL_ESSENCE: + pItem = new EC_IvtrFacePill(tid, expire_date); + break; + case DATA_TYPE.DT_GM_GENERATOR_ESSENCE: + pItem = new EC_IvtrGmGenerator(tid, expire_date); + break; + case DATA_TYPE.DT_RECIPE_ESSENCE: + pItem = new EC_IvtrRecipe(tid, expire_date); + break; + case DATA_TYPE.DT_PET_EGG_ESSENCE: + pItem = new EC_IvtrPetEgg(tid, expire_date); + break; + case DATA_TYPE.DT_PET_FOOD_ESSENCE: + pItem = new EC_IvtrPetFood(tid, expire_date); + break; + case DATA_TYPE.DT_PET_FACETICKET_ESSENCE: + pItem = new EC_IvtrPetFaceTicket(tid, expire_date); + break; + case DATA_TYPE.DT_FIREWORKS_ESSENCE: + pItem = new EC_IvtrFirework(tid, expire_date); + break; + case DATA_TYPE.DT_WAR_TANKCALLIN_ESSENCE: + pItem = new EC_IvtrWarTankCallin(tid, expire_date); + break; + case DATA_TYPE.DT_SKILLMATTER_ESSENCE: + pItem = new EC_IvtrSkillMat(tid, expire_date); + break; + case DATA_TYPE.DT_INC_SKILL_ABILITY_ESSENCE: + pItem = new EC_IvtrIncSkillAbility(tid, expire_date); + break; + case DATA_TYPE.DT_REFINE_TICKET_ESSENCE: + pItem = new EC_IvtrRefineTicket(tid, expire_date); + break; + case DATA_TYPE.DT_DESTROYING_ESSENCE: + pItem = new EC_IvtrDestroyingEssence(tid, expire_date); + break; + case DATA_TYPE.DT_BIBLE_ESSENCE: + pItem = new EC_IvtrBible(tid, expire_date); + break; + case DATA_TYPE.DT_SPEAKER_ESSENCE: + pItem = new EC_IvtrSpeaker(tid, expire_date); + break; + case DATA_TYPE.DT_AUTOHP_ESSENCE: + pItem = new EC_IvtrAutoHp(tid, expire_date); + break; + case DATA_TYPE.DT_AUTOMP_ESSENCE: + pItem = new EC_IvtrAutoMp(tid, expire_date); + break; + case DATA_TYPE.DT_DOUBLE_EXP_ESSENCE: + pItem = new EC_IvtrDoubleExp(tid, expire_date); + break; + case DATA_TYPE.DT_DYE_TICKET_ESSENCE: + pItem = new EC_IvtrDyeTicket(tid, expire_date); + break; + case DATA_TYPE.DT_TRANSMITSCROLL_ESSENCE: + pItem = new EC_IvtrTransmitScroll(tid, expire_date); + break; + case DATA_TYPE.DT_GOBLIN_ESSENCE: + pItem = new EC_IvtrGoblin(tid, expire_date); + break; + case DATA_TYPE.DT_GOBLIN_EQUIP_ESSENCE: + pItem = new EC_IvtrGoblinEquip(tid, expire_date); + break; + case DATA_TYPE.DT_GOBLIN_EXPPILL_ESSENCE: + pItem = new EC_IvtrGoblinExpPill(tid, expire_date); + break; + case DATA_TYPE.DT_SELL_CERTIFICATE_ESSENCE: + pItem = new EC_IvtrCertificate(tid, expire_date); + break; + case DATA_TYPE.DT_TARGET_ITEM_ESSENCE: + pItem = new EC_IvtrTargetItem(tid, expire_date); + break; + case DATA_TYPE.DT_LOOK_INFO_ESSENCE: + pItem = new EC_IvtrLookInfoItem(tid, expire_date); + break; + case DATA_TYPE.DT_WEDDING_BOOKCARD_ESSENCE: + pItem = new EC_IvtrWeddingBookCard(tid, expire_date); + break; + case DATA_TYPE.DT_WEDDING_INVITECARD_ESSENCE: + pItem = new EC_IvtrWeddingInviteCard(tid, expire_date); + break; + case DATA_TYPE.DT_SHARPENER_ESSENCE: + pItem = new EC_IvtrSharpener(tid, expire_date); + break; + case DATA_TYPE.DT_FACTION_MATERIAL_ESSENCE: + pItem = new EC_IvtrFactionMaterial(tid, expire_date); + break; + case DATA_TYPE.DT_CONGREGATE_ESSENCE: + pItem = new EC_IvtrCongregate(tid, expire_date); + break; + case DATA_TYPE.DT_FORCE_TOKEN_ESSENCE: + pItem = new EC_IvtrForceToken(tid, expire_date); + break; + case DATA_TYPE.DT_DYNSKILLEQUIP_ESSENCE: + pItem = new EC_IvtrDynSkillEquip(tid, expire_date); + break; + case DATA_TYPE.DT_MONEY_CONVERTIBLE_ESSENCE: + pItem = new EC_IvtrMoneyConvertible(tid, expire_date); + break; + case DATA_TYPE.DT_MONSTER_SPIRIT_ESSENCE: + pItem = new EC_IvtrMonsterSpirit(tid, expire_date); + break; + case DATA_TYPE.DT_POKER_ESSENCE: + pItem = new EC_IvtrGeneralCard(tid, expire_date); + break; + case DATA_TYPE.DT_POKER_DICE_ESSENCE: + pItem = new EC_IvtrGeneralCardDice(tid, expire_date); + break; + case DATA_TYPE.DT_SHOP_TOKEN_ESSENCE: + pItem = new EC_IvtrShopToken(tid, expire_date); + break; + case DATA_TYPE.DT_UNIVERSAL_TOKEN_ESSENCE: + pItem = new EC_IvtrUniversalToken(tid, expire_date); + break; default: - BMLogger.Log("[THN]EC_IvtrItem: CreateItem: Default Item: tid: " + tid + ", expire_date: " + expire_date + ", pItem: " + pItem.GetName()); + pItem = new EC_IvtrUnknown(tid, expire_date); break; } pItem.SetCount(iCount); @@ -965,7 +1133,7 @@ namespace BrewMonster.Scripts.Managers /// Clone item (shallow copy, same as C++ default). public virtual EC_IvtrItem Clone() { - return new EC_IvtrItem(this); + return CreateItem(m_tid, m_expire_date, m_iCount, m_iCID); } /// Get item cool time in milliseconds (0 by default). @@ -1298,10 +1466,23 @@ namespace BrewMonster.Scripts.Managers // Add special properties description / 添加特殊属性描述 var pDescTab = EC_Game.GetItemDesc(); // Note: ITEMDESC_COL2_BRIGHTBLUE constant - adjust based on actual string table / 注意:ITEMDESC_COL2_BRIGHTBLUE常量 - 根据实际字符串表调整 - int green = 1000; // ITEMDESC_COL2_BRIGHTBLUE placeholder - adjust this value - + int green = (int)DescriptipionMsg.ITEMDESC_COL2_BRIGHTBLUE; // ITEMDESC_COL2_BRIGHTBLUE placeholder - adjust this value + if(typeof(EC_IvtrArmor) == this.GetType()) + { + Debug.Log("This is an armor"); + } + + Debug.Log("armor m_iCID: " + m_iCID); + Debug.Log("armor m_iProcType: " + m_iProcType); if (m_iCID != (int)InventoryClassId.ICID_GOBLIN) // goblin does not need to display these special properties / 地精不需要显示这些特殊属性 { + Debug.Log("m_iCID != (int)InventoryClassId.ICID_GOBLIN"); + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_NO_USER_TRASH: " + (m_iProcType & (int)ProcType.PROC_NO_USER_TRASH)); + Debug.Log("!((m_iProcType & (int)ProcType.PROC_BINDING) != 0): " + !((m_iProcType & (int)ProcType.PROC_BINDING) != 0)); + Debug.Log("((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0): " + ((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0)); + Debug.Log("((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0): " + ((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0)); + Debug.Log("((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0): " + ((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0)); // Exact C++ logic: (PROC_NO_USER_TRASH) || (!PROC_BINDING && (PROC_DROPWHENDIE || ...)) // 精确的C++逻辑:(PROC_NO_USER_TRASH) || (!PROC_BINDING && (PROC_DROPWHENDIE || ...)) if ((m_iProcType & (int)ProcType.PROC_NO_USER_TRASH) != 0 @@ -1325,121 +1506,140 @@ namespace BrewMonster.Scripts.Managers m_strDesc += szCol; } } - - // Note: These message IDs are placeholders - adjust based on actual string table / 注意:这些消息ID是占位符 - 根据实际字符串表调整 + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_DROPWHENDIE: " + (m_iProcType & (int)ProcType.PROC_DROPWHENDIE)); if ((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_DEAD_PROTECT placeholder - adjust this value - string desc = pDescTab.GetWideString(2000); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DEAD_PROTECT); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_DROPPABLE: " + (m_iProcType & (int)ProcType.PROC_DROPPABLE)); if ((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_NO_DROP placeholder - adjust this value - string desc = pDescTab.GetWideString(2001); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_DROP); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_SELLABLE: " + (m_iProcType & (int)ProcType.PROC_SELLABLE)); if ((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_NO_TRADE placeholder - adjust this value - string desc = pDescTab.GetWideString(2002); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_TRADE); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_TRADEABLE: " + (m_iProcType & (int)ProcType.PROC_TRADEABLE)); if ((m_iProcType & (int)ProcType.PROC_TRADEABLE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_NO_PLAYER_TRADE placeholder - adjust this value - string desc = pDescTab.GetWideString(2003); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_PLAYER_TRADE); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_DISAPEAR: " + (m_iProcType & (int)ProcType.PROC_DISAPEAR)); if ((m_iProcType & (int)ProcType.PROC_DISAPEAR) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_LEAVE_SCENE_DISAPEAR placeholder - adjust this value - string desc = pDescTab.GetWideString(2004); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEAVE_SCENE_DISAPEAR); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_USE: " + (m_iProcType & (int)ProcType.PROC_USE)); if ((m_iProcType & (int)ProcType.PROC_USE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_USE_AFTER_PICK_UP placeholder - adjust this value - string desc = pDescTab.GetWideString(2005); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_USE_AFTER_PICK_UP); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_DEADDROP: " + (m_iProcType & (int)ProcType.PROC_DEADDROP)); if ((m_iProcType & (int)ProcType.PROC_DEADDROP) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_DROP_WHEN_DEAD placeholder - adjust this value - string desc = pDescTab.GetWideString(2006); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DROP_WHEN_DEAD); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_OFFLINE: " + (m_iProcType & (int)ProcType.PROC_OFFLINE)); if ((m_iProcType & (int)ProcType.PROC_OFFLINE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_DROP_WHEN_OFFLINE placeholder - adjust this value - string desc = pDescTab.GetWideString(2007); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DROP_WHEN_OFFLINE); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_UNREPAIRABLE: " + (m_iProcType & (int)ProcType.PROC_UNREPAIRABLE)); if ((m_iProcType & (int)ProcType.PROC_UNREPAIRABLE) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_UNREPAIRABLE placeholder - adjust this value - string desc = pDescTab.GetWideString(2008); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_UNREPAIRABLE); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } + Debug.Log("m_iProcType: " + m_iProcType); + Debug.Log("m_iProcType & (int)ProcType.PROC_NO_USER_TRASH: " + (m_iProcType & (int)ProcType.PROC_NO_USER_TRASH)); if ((m_iProcType & (int)ProcType.PROC_NO_USER_TRASH) != 0) { m_strDesc += "\\r"; if (pDescTab != null && pDescTab.IsInitialized()) { - // ITEMDESC_NO_USER_TRASH placeholder - adjust this value - string desc = pDescTab.GetWideString(2009); // Placeholder ID + string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_USER_TRASH); if (!string.IsNullOrEmpty(desc)) m_strDesc += desc; } + Debug.Log("m_strDesc: " + m_strDesc); } } else { + Debug.Log("m_iCID == (int)InventoryClassId.ICID_GOBLIN"); TrimLastReturn(); } } @@ -1516,7 +1716,7 @@ namespace BrewMonster.Scripts.Managers str = iPrice.ToString(); } - protected int GetColorStrID(int tid) + public virtual int GetColorStrID(int templateId) { // Placeholder: color index lookup; return -1 (white) by default. return -1; diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs.meta new file mode 100644 index 0000000000..a258db67cc --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 566fc2d24eefe48e7bd10ed67d15563f \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs new file mode 100644 index 0000000000..4ea2355ccf --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrLookInfoItem : EC_IvtrItem + { + public EC_IvtrLookInfoItem(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrLookInfoItem(EC_IvtrLookInfoItem other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs.meta new file mode 100644 index 0000000000..adeb476543 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrLookInfoItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 384fce986646f438698912f0c15b9ba8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs new file mode 100644 index 0000000000..9880098373 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrMaterial : EC_IvtrItem + { + public EC_IvtrMaterial(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrMaterial(EC_IvtrMaterial other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs.meta new file mode 100644 index 0000000000..bc18aa001d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMaterial.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e681cc9149ec5499fa6584a02a3916e1 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs new file mode 100644 index 0000000000..43bcfd2d13 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrMedicine : EC_IvtrItem + { + public EC_IvtrMedicine(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrMedicine(EC_IvtrMedicine other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs.meta new file mode 100644 index 0000000000..961e1f6544 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMedicine.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ed110c7e41c6f437791bdf92da68019c \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs new file mode 100644 index 0000000000..0706daf572 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrMoneyConvertible : EC_IvtrItem + { + public EC_IvtrMoneyConvertible(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrMoneyConvertible(EC_IvtrMoneyConvertible other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs.meta new file mode 100644 index 0000000000..b05aa11779 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMoneyConvertible.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6b6e854a6db4c4d87aaaeba867d72bae \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs new file mode 100644 index 0000000000..e214eee652 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrMonsterSpirit : EC_IvtrItem + { + public EC_IvtrMonsterSpirit(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrMonsterSpirit(EC_IvtrMonsterSpirit other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs.meta new file mode 100644 index 0000000000..e4c2cb4dd4 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrMonsterSpirit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b3ec2fe733bae45c982969aed8b8eae0 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs new file mode 100644 index 0000000000..df0cbbd059 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrPetEgg : EC_IvtrItem + { + public EC_IvtrPetEgg(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrPetEgg(EC_IvtrPetEgg other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs.meta new file mode 100644 index 0000000000..e65af61f2c --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 31d39c5195d7e45fa91082d7db9b3204 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs new file mode 100644 index 0000000000..61f0e12023 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrPetFaceTicket : EC_IvtrItem + { + public EC_IvtrPetFaceTicket(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrPetFaceTicket(EC_IvtrPetFaceTicket other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs.meta new file mode 100644 index 0000000000..230d4c038c --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFaceTicket.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7c61b694d841e4db5ac2811b04531e7f \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs new file mode 100644 index 0000000000..8a52b6b14e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrPetFood : EC_IvtrItem + { + public EC_IvtrPetFood(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrPetFood(EC_IvtrPetFood other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs.meta new file mode 100644 index 0000000000..fe60acf730 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetFood.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5d8c5f936052f4ed0b63e061797eefbb \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs new file mode 100644 index 0000000000..f03d3efb62 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrRecipe : EC_IvtrItem + { + public EC_IvtrRecipe(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrRecipe(EC_IvtrRecipe other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs.meta new file mode 100644 index 0000000000..7554ac322d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRecipe.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8aa46bf1a8e2045fcb18711081dcfe56 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs new file mode 100644 index 0000000000..054a81b253 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrRefineTicket : EC_IvtrItem + { + public EC_IvtrRefineTicket(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrRefineTicket(EC_IvtrRefineTicket other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs.meta new file mode 100644 index 0000000000..416637606a --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRefineTicket.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4b2d8c8d5a4104436b97dfb062ddea9e \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs new file mode 100644 index 0000000000..d3a8b51c1e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrRevScroll : EC_IvtrItem + { + public EC_IvtrRevScroll(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrRevScroll(EC_IvtrRevScroll other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs.meta new file mode 100644 index 0000000000..4bafc16c29 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrRevScroll.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 372c6fa94e6ba473a89724868d182446 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs new file mode 100644 index 0000000000..3cb60d730e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrSharpener : EC_IvtrItem + { + public EC_IvtrSharpener(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrSharpener(EC_IvtrSharpener other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs.meta new file mode 100644 index 0000000000..9630e67b8b --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSharpener.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3745d3b71429d4e70bd85ff957d53edd \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs new file mode 100644 index 0000000000..df78933a96 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrShopToken : EC_IvtrItem + { + public EC_IvtrShopToken(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrShopToken(EC_IvtrShopToken other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs.meta new file mode 100644 index 0000000000..73579be3f6 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrShopToken.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cbc68d3b08ef143159eed39309cbb601 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs new file mode 100644 index 0000000000..70163c6aec --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrSkillMat : EC_IvtrItem + { + public EC_IvtrSkillMat(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrSkillMat(EC_IvtrSkillMat other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs.meta new file mode 100644 index 0000000000..d709477560 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkillMat.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8345b2a53fffb4e638d9712b6e9e49fa \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs new file mode 100644 index 0000000000..4198416cce --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrSkilltome : EC_IvtrItem + { + public EC_IvtrSkilltome(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrSkilltome(EC_IvtrSkilltome other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs.meta new file mode 100644 index 0000000000..247c268e85 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSkilltome.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0c332a9a7de2647368ec4fbfd1864bfe \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs new file mode 100644 index 0000000000..ecfb1b0ed9 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrSpeaker : EC_IvtrItem + { + public EC_IvtrSpeaker(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrSpeaker(EC_IvtrSpeaker other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs.meta new file mode 100644 index 0000000000..83cd26436e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrSpeaker.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f9c5f08a7605b4065bf7ec878319726b \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs new file mode 100644 index 0000000000..f8347605b2 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrStone : EC_IvtrItem + { + public EC_IvtrStone(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrStone(EC_IvtrStone other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs.meta new file mode 100644 index 0000000000..bbd09076b1 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrStone.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f63e461e231d0493a91f04c79939de2d \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs new file mode 100644 index 0000000000..a050b3d567 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTargetItem : EC_IvtrItem + { + public EC_IvtrTargetItem(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTargetItem(EC_IvtrTargetItem other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs.meta new file mode 100644 index 0000000000..883a60b911 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTargetItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5d398d1de827b4c00a343b156823daab \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs new file mode 100644 index 0000000000..8640b0f0f8 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTaskDice : EC_IvtrItem + { + public EC_IvtrTaskDice(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTaskDice(EC_IvtrTaskDice other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs.meta new file mode 100644 index 0000000000..3f9092596f --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fbb2d62b01d4147cfa0ab3a7b7dac6aa \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs new file mode 100644 index 0000000000..beacce0272 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTaskNmMatter : EC_IvtrItem + { + public EC_IvtrTaskNmMatter(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTaskNmMatter(EC_IvtrTaskNmMatter other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs.meta new file mode 100644 index 0000000000..72e0db075c --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskNmMatter.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 60f885de6744b42d6845b850338569e0 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs new file mode 100644 index 0000000000..4a47bd6643 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTaskmatter : EC_IvtrItem + { + public EC_IvtrTaskmatter(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTaskmatter(EC_IvtrTaskmatter other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs.meta new file mode 100644 index 0000000000..a1f695d266 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskmatter.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ee5181c9a0786409fb452d21d947eab7 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs new file mode 100644 index 0000000000..3d2f7480c3 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTossMat : EC_IvtrItem + { + public EC_IvtrTossMat(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTossMat(EC_IvtrTossMat other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs.meta new file mode 100644 index 0000000000..5465cc5143 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTossMat.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d0862d72a75a24b049b47750d294ceb9 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs new file mode 100644 index 0000000000..8067c0d98e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTownscroll : EC_IvtrItem + { + public EC_IvtrTownscroll(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTownscroll(EC_IvtrTownscroll other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs.meta new file mode 100644 index 0000000000..fb8bf7f071 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTownscroll.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c230794db6d284141bc37798ecdc3a19 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs new file mode 100644 index 0000000000..1d06d9a69f --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrTransmitScroll : EC_IvtrItem + { + public EC_IvtrTransmitScroll(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrTransmitScroll(EC_IvtrTransmitScroll other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs.meta new file mode 100644 index 0000000000..f1acff0994 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTransmitScroll.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bf880e0f7632c4c5aa8f6121e4bc6ce8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs similarity index 89% rename from Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs rename to Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs index d95633329b..9b8c404d10 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs @@ -93,17 +93,28 @@ namespace BrewMonster.Scripts.Managers // int iWeaponReqLow; // int iWeaponReqHigh; }; - public struct IVTR_ESSENCE_DECORATION { - // TODO : implement data later - // int damage; - // int magic_damage; - // int defense; - // int armor; - // int resistance[NUM_MAGICCLASS]; + int damage; + int magic_damage; + int defense; + int armor; + int[] resistance; + public IVTR_ESSENCE_DECORATION(byte[] data) + { + Debug.Log("IVTR_ESSENCE_DECORATION: data.Length: " + data.Length); + CECDataReader dr = new (data, data.Length); + damage = dr.ReadInt(); + magic_damage = dr.ReadInt(); + defense = dr.ReadInt(); + armor = dr.ReadInt(); + resistance = new int[InventoryConst.NUM_MAGICCLASS]; + for(int i = 0; i < InventoryConst.NUM_MAGICCLASS; i++) + { + resistance[i] = dr.ReadInt(); + } + } }; - public struct IVTR_ESSENCE_ARMOR { // TODO : implement data later @@ -127,7 +138,6 @@ namespace BrewMonster.Scripts.Managers } } }; - public struct IVTR_ESSENCE_FASHION { // TODO : implement data later @@ -135,7 +145,6 @@ namespace BrewMonster.Scripts.Managers // unsigned short color; // unsigned short gender; }; - public struct IVTR_ESSENCE_FLYSWORD { // TODO : implement data later @@ -149,7 +158,6 @@ namespace BrewMonster.Scripts.Managers // float speed_increase; // float speed_increase2; }; - public struct IVTR_ESSENCE_WING { // TODO : implement data later @@ -158,21 +166,18 @@ namespace BrewMonster.Scripts.Managers // size_t mp_per_second; // float speed_increase; }; - public struct IVTR_ESSENCE_AUTOHP { // TODO : implement data later // int hp_left; // float trigger; }; - public struct IVTR_ESSENCE_AUTOMP { // TODO : implement data later // int mp_left; // float trigger; }; - public struct IVTR_ESSENCE_PETEGG { // TODO : implement data later @@ -191,13 +196,11 @@ namespace BrewMonster.Scripts.Managers // unsigned short skill_count; // wchar_t name[8]; }; - public struct IVTR_ESSENCE_DESTROYING { // TODO : implement data later // int tid; }; - public struct IVTR_ESSENCE_GOBLIN { struct _GOBLIN_DATA @@ -222,7 +225,6 @@ namespace BrewMonster.Scripts.Managers // int equip_cnt; // int skill_cnt; }; - public struct IVTR_ESSENCE_WEDDING_BOOKCARD { // TODO : implement data later @@ -230,7 +232,6 @@ namespace BrewMonster.Scripts.Managers // int month; // int day; }; - public struct IVTR_ESSENCE_WEDDING_INVITECARD { // TODO : implement data later @@ -241,7 +242,6 @@ namespace BrewMonster.Scripts.Managers // int scene; // int invitee; }; - public struct IVTR_ESSENCE_FORCE_TOKEN { // TODO : implement data later @@ -249,7 +249,6 @@ namespace BrewMonster.Scripts.Managers // int repu_total; // int repu_inc_ratio; }; - public struct IVTR_ESSENCE_MONSTERSPIRIT { // TODO : implement data later @@ -257,7 +256,6 @@ namespace BrewMonster.Scripts.Managers // int type; // int power; }; - public struct IVTR_ESSENCE_GENERALCARD { // TODO : implement data later @@ -271,10 +269,51 @@ namespace BrewMonster.Scripts.Managers // int rebirth_times; }; #pragma pack() + #endregion public static class EC_IvtrType { - + #region Equipment Mask 64 Bit Constants + public const long EQUIP_MASK64_WEAPON = 0x0000000000000001; + public const long EQUIP_MASK64_HEAD = 0x0000000000000002; + public const long EQUIP_MASK64_NECK = 0x0000000000000004; + public const long EQUIP_MASK64_SHOULDER = 0x0000000000000008; + public const long EQUIP_MASK64_BODY = 0x0000000000000010; + public const long EQUIP_MASK64_WAIST = 0x0000000000000020; + public const long EQUIP_MASK64_LEG = 0x0000000000000040; + public const long EQUIP_MASK64_FOOT = 0x0000000000000080; + public const long EQUIP_MASK64_WRIST = 0x0000000000000100; + public const long EQUIP_MASK64_FINGER1 = 0x0000000000000200; + public const long EQUIP_MASK64_FINGER2 = 0x0000000000000400; + public const long EQUIP_MASK64_PROJECTILE = 0x0000000000000800; + public const long EQUIP_MASK64_FLYSWORD = 0x0000000000001000; + public const long EQUIP_MASK64_FASHION_BODY = 0x0000000000002000; + public const long EQUIP_MASK64_FASHION_LEG = 0x0000000000004000; + public const long EQUIP_MASK64_FASHION_FOOT = 0x0000000000008000; + public const long EQUIP_MASK64_FASHION_WRIST = 0x0000000000010000; + public const long EQUIP_MASK64_RUNE = 0x0000000000020000; + public const long EQUIP_MASK64_BIBLE = 0x0000000000040000; + public const long EQUIP_MASK64_SPEAKER = 0x0000000000080000; + public const long EQUIP_MASK64_AUTOHP = 0x0000000000100000; + public const long EQUIP_MASK64_AUTOMP = 0x0000000000200000; + public const long EQUIP_MASK64_POCKET = 0x0000000000400000; + public const long EQUIP_MASK64_GOBLIN = 0x0000000000800000; + public const long EQUIP_MASK64_CERTIFICATE = 0x0000000001000000; + public const long EQUIP_MASK64_FASHION_HEAD = 0x0000000002000000; + public const long EQUIP_MASK64_FORCE_TICKET = 0x0000000004000000; + public const long EQUIP_MASK64_DYNSKILLEQUIP1 = 0x0000000008000000; + public const long EQUIP_MASK64_DYNSKILLEQUIP2 = 0x0000000010000000; + public const long EQUIP_MASK64_FASHION_WEAPON = 0x0000000020000000; + public const long EQUIP_MASK64_USED1 = 0x0000000040000000; + public const long EQUIP_MASK64_USED2 = 0x0000000080000000; + public const long EQUIP_MASK64_GENERALCARD1 = 0x0000000100000000; + public const long EQUIP_MASK64_GENERALCARD2 = 0x0000000200000000; + public const long EQUIP_MASK64_GENERALCARD3 = 0x0000000400000000; + public const long EQUIP_MASK64_GENERALCARD4 = 0x0000000800000000; + public const long EQUIP_MASK64_GENERALCARD5 = 0x0000001000000000; + public const long EQUIP_MASK64_GENERALCARD6 = 0x0000002000000000; + public const long EQUIP_MASK64_ALL = 0x0000003f3fffffff; + #endregion public static byte GetEquipLocationForItem(int templateId) { try diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs.meta new file mode 100644 index 0000000000..f3b1b3f25d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0d6b0a75085cc42469ae53d5f9a73deb \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs new file mode 100644 index 0000000000..bfbd189bc8 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrUnionscroll : EC_IvtrItem + { + public EC_IvtrUnionscroll(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrUnionscroll(EC_IvtrUnionscroll other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs.meta new file mode 100644 index 0000000000..db55422520 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnionscroll.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 32a4322d6b8154a7a916851714b261bc \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs new file mode 100644 index 0000000000..b92d7dc6d9 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrUniversalToken : EC_IvtrItem + { + public EC_IvtrUniversalToken(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrUniversalToken(EC_IvtrUniversalToken other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs.meta new file mode 100644 index 0000000000..09897c9502 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUniversalToken.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 339e47e7d10564c33ba1c024da3560e8 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs new file mode 100644 index 0000000000..9a11faf95d --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrUnknown : EC_IvtrItem + { + public EC_IvtrUnknown(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrUnknown(EC_IvtrUnknown other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs.meta new file mode 100644 index 0000000000..39c294cdae --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrUnknown.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: aa277165d27084e1f88617516f495697 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs new file mode 100644 index 0000000000..b64255cb43 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrWarTankCallin : EC_IvtrItem + { + public EC_IvtrWarTankCallin(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrWarTankCallin(EC_IvtrWarTankCallin other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs.meta new file mode 100644 index 0000000000..22a4b23913 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWarTankCallin.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b61a51beb0c3e4e7f936069474a9549d \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs similarity index 99% rename from Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs rename to Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs index 6613a03129..e790fb4139 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs @@ -77,7 +77,7 @@ namespace PerfectWorld.Scripts.Managers public EC_IvtrWeapon(int tid, int expire_date) : base(tid, expire_date) { - m_iCID = ICID_WEAPON; + m_iCID = (int)InventoryClassId.ICID_WEAPON; elementdataman pDB = ElementDataManProvider.GetElementDataMan(); DATA_TYPE DataType = DATA_TYPE.DT_INVALID; m_pDBEssence = (WEAPON_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); @@ -86,7 +86,7 @@ namespace PerfectWorld.Scripts.Managers m_iPileLimit = m_pDBEssence.pile_num_max; m_iPrice = m_pDBEssence.price; m_iShopPrice = m_pDBEssence.shop_price; - m_i64EquipMask = EC_IvtrEquip.ICID_WEAPON; + m_i64EquipMask = (long)EC_IvtrType.EQUIP_MASK64_WEAPON; m_iProcType = (int)m_pDBEssence.proc_type; FixProps = m_pDBEssence.fixed_props; diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs.meta new file mode 100644 index 0000000000..60ddf96e84 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeapon.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1cf2e151fb8e443f7a7bbae40715b41b \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs new file mode 100644 index 0000000000..3830a3dc63 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrWeddingBookCard : EC_IvtrEquip + { + public EC_IvtrWeddingBookCard(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrWeddingBookCard(EC_IvtrWeddingBookCard other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs.meta new file mode 100644 index 0000000000..f28abbbcfa --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingBookCard.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 666c3ae30ba534a02992c0427e5a0e6a \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs new file mode 100644 index 0000000000..df35857e6e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrWeddingInviteCard : EC_IvtrEquip + { + public EC_IvtrWeddingInviteCard(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrWeddingInviteCard(EC_IvtrWeddingInviteCard other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs.meta new file mode 100644 index 0000000000..5c4612c4ec --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWeddingInviteCard.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 58cbf5818304d4f98a1e7361ced6f2c7 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs new file mode 100644 index 0000000000..a5569ff068 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs @@ -0,0 +1,15 @@ +using BrewMonster.Scripts.Managers; +namespace PerfectWorld.Scripts.Managers +{ + public class EC_IvtrWing : EC_IvtrEquip + { + public EC_IvtrWing(int tid, int expire_date) : base(tid, expire_date) + { + } + + public EC_IvtrWing(EC_IvtrWing other) : base(other) + { + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs.meta new file mode 100644 index 0000000000..36cc95f281 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrWing.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7f778acb7758b46a4bb1585e72478993 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs.meta deleted file mode 100644 index 23d9a53190..0000000000 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrType.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5e2d99e48520e824c9a27badd6c75625 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs.meta b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs.meta deleted file mode 100644 index 0d5674d09d..0000000000 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrWeapon.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 6a4959477dd834d3089fcc85d831669a \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs index a62b2635d1..4f88cf0e01 100644 --- a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs +++ b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs @@ -94,7 +94,7 @@ namespace BrewMonster public MOVECONST m_MoveConst; // Const used when moving control public Move_Mode m_MoveMode; - public MOVECONST[] aMoveConsts = new MOVECONST[PROFESSION.NUM_PROFESSION * GENDER.NUM_GENDER] + public MOVECONST[] aMoveConsts = new MOVECONST[(int)PROFESSION.NUM_PROFESSION * GENDER.NUM_GENDER] { // ÎäÏÀ // fStepHei fMinAirHei fMinWaterHei fShoreDepth fWaterSurf @@ -135,7 +135,7 @@ namespace BrewMonster new MOVECONST(0.8f, 1.6f, 0.3f, 1.5f, 0.55f), }; - public A3DVECTOR3[] aExts = new A3DVECTOR3[PROFESSION.NUM_PROFESSION * GENDER.NUM_GENDER] + public A3DVECTOR3[] aExts = new A3DVECTOR3[(int)PROFESSION.NUM_PROFESSION * GENDER.NUM_GENDER] { new A3DVECTOR3(0.4f, 0.9f, 0.4f), // ÎäÏÀ new A3DVECTOR3(0.3f, 0.85f, 0.3f), @@ -1207,10 +1207,10 @@ namespace BrewMonster // 空中动作 / Air action string szActionMiddleName = null; if ((m_wingType == enumWingType.WINGTYPE_WING && IsFlying()) || - (m_iProfession == PROFESSION.PROF_ANGEL) || - (m_iProfession == PROFESSION.PROF_ARCHOR) || - (m_iProfession == PROFESSION.PROF_MONK) || - (m_iProfession == PROFESSION.PROF_GHOST)) + (m_iProfession == (int)PROFESSION.PROF_ANGEL) || + (m_iProfession == (int)PROFESSION.PROF_ARCHOR) || + (m_iProfession == (int)PROFESSION.PROF_MONK) || + (m_iProfession == (int)PROFESSION.PROF_GHOST)) { szActionMiddleName = "_空中翅膀"; // Air with wings / 空中翅膀 } diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs index c260895a10..b1e1eaed1d 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs @@ -1,14 +1,15 @@ using UnityEngine; using UnityEngine.UI; using TMPro; +using System; namespace BrewMonster.Scripts.UI { public class AwardItem : MonoBehaviour { [SerializeField] private Image img; [SerializeField] private Button btn; - [SerializeField] private GameObject objHint; - [SerializeField] private TMP_Text txtHint; + [SerializeField] private string txtHint; + [SerializeField] private bool isOn; private bool _bShowHint = false; private Vector2Int _position; @@ -21,7 +22,7 @@ namespace BrewMonster.Scripts.UI this.gameObject.name = "Item_" + row + "_" + column; } - + public void SetImage(Sprite sprite) { img.sprite = sprite; @@ -40,13 +41,7 @@ namespace BrewMonster.Scripts.UI public void SetHint(string text) { - // TODO : Implement hint functionality - btn.onClick.RemoveAllListeners(); - txtHint.text = text; - btn.onClick.AddListener(() => { - HintBehaviour(); - }); - + txtHint = text; } public void ClearCover() @@ -61,8 +56,18 @@ namespace BrewMonster.Scripts.UI private void HintBehaviour() { - _bShowHint = !_bShowHint; - objHint.SetActive(_bShowHint); + } + + public void SetOnClick(Action action) + { + btn.onClick.RemoveAllListeners(); + btn.onClick.AddListener(() => { + action?.Invoke(txtHint, !isOn, this); + }); + } + public void HideHint() + { + isOn = false; } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs index 7421e320c7..a463850533 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs @@ -7,7 +7,7 @@ using PerfectWorld.Scripts.Managers; using PerfectWorld.Scripts.Task; using UnityEngine; using UnityEngine.UI; - +using BrewMonster.Scripts.UI; namespace BrewMonster.Scripts.UI { public class CDlgAward : AUIDialog @@ -22,6 +22,11 @@ namespace BrewMonster.Scripts.UI [SerializeField] private Transform _itemsParent; [SerializeField] private Toggle[] _radioButtons; + [Header("ItemDetail")] + [SerializeField] GameObject itemInfoPanel; + [SerializeField] Vector2 itemInfoPanelOffset = new Vector2(20f, 0f); + + [SerializeField] private TextOutlet descriptionOutlet; [Header("DEBUG")] [SerializeField] private AwardItem[] _awardItems; @@ -39,7 +44,10 @@ namespace BrewMonster.Scripts.UI { SpawnItems(); InitRadioBtns(); - + // this is copy paste from InventoryUI.cs. so it have equip and drop button. + // temporary disable them + itemInfoPanel.SetActive(false); + itemInfoPanel.transform.GetChild(0).gameObject.SetActive(false); m_pBtn_Confirm.onClick.AddListener(OnCommand_confirm); } @@ -141,6 +149,7 @@ namespace BrewMonster.Scripts.UI pItem.GetDetailDataFromLocal(); string strDesc = pItem.GetDesc(); pImage.SetHint(strDesc); // TODO + pImage.SetOnClick(OnAwardItemClicked); //Debug.Log("[THN]CDlgAward: pItem.GetDesc():" + pItem.GetDesc()); // af_GetFileTitle(pItem.GetIconFile(), strFile); // TODO strFile.ToLower(); @@ -152,7 +161,7 @@ namespace BrewMonster.Scripts.UI var sprite = EC_IvtrItemUtils.Instance.ResolveItemIconSprite(pItem.m_tid); pImage.SetImage(sprite); - EC_IvtrEquip pEquip = new EC_IvtrEquip(pItem.m_tid, pItem.m_expire_date); + EC_IvtrEquip pEquip = (EC_IvtrEquip)EC_IvtrItem.CreateItem(pItem.m_tid, pItem.m_expire_date, pItem.m_iCount); pImage.SetColor( (pItem.IsEquipment() && pEquip.IsDestroying()) ? new Color32(128, 128, 128, 255) @@ -373,6 +382,114 @@ namespace BrewMonster.Scripts.UI } } - + void OnAwardItemClicked(string hint, bool isOn, AwardItem awardItem) + { + if(isOn) + { + descriptionOutlet.Set(hint); + PositionDetailPanelNearButton(awardItem); + } + else + { + descriptionOutlet.Set(""); + } + itemInfoPanel.SetActive(isOn); + RefreshLayout(itemInfoPanel); + } + private void PositionDetailPanelNearButton(AwardItem awardItem) + { + if (itemInfoPanel == null || awardItem == null) + { + return; + } + var panelRect = itemInfoPanel.transform as RectTransform; + if (panelRect == null) + { + return; + } + + var buttonRect = awardItem.transform as RectTransform; + if (buttonRect == null) + { + return; + } + + var canvas = panelRect.GetComponentInParent(); + if (canvas == null) + { + return; + } + var parentRect = panelRect.parent as RectTransform; + if (parentRect == null) + { + return; + } + + Camera eventCamera = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera; + Vector3 worldCenter = buttonRect.TransformPoint(buttonRect.rect.center); + Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(eventCamera, worldCenter); + Vector2 localPoint; + if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPoint, eventCamera, out localPoint)) + { + return; + } + + float btnHalfW = buttonRect.rect.width * 0.5f; + float panelW = panelRect.rect.width; + float panelH = panelRect.rect.height; + float pivotX = panelRect.pivot.x; + float pivotY = panelRect.pivot.y; + + // Compute right-placement candidate (panel's left edge at button's right edge + offset) + // 计算右侧放置候选位置(面板左边缘在按钮右边缘 + 偏移量) + float leftEdgeRightPlacement = localPoint.x + btnHalfW + itemInfoPanelOffset.x; + float candidateXRight = leftEdgeRightPlacement + pivotX * panelW; + + // Compute left-placement candidate (panel's right edge at button's left edge - offset) + // 计算左侧放置候选位置(面板右边缘在按钮左边缘 - 偏移量) + float rightEdgeLeftPlacement = localPoint.x - btnHalfW - itemInfoPanelOffset.x; + float candidateXLeft = rightEdgeLeftPlacement - (1f - pivotX) * panelW; + + // Vertical clamping honoring pivot + // 垂直方向根据pivot进行限制 + float minY = parentRect.rect.yMin + pivotY * panelH; + float maxY = parentRect.rect.yMax - (1f - pivotY) * panelH; + float candidateY = Mathf.Clamp(localPoint.y + itemInfoPanelOffset.y, minY, maxY); + + // Choose side based on available space + // 根据可用空间选择放置侧 + float rightEdgeOfRight = candidateXRight + (1f - pivotX) * panelW; + float canvasRight = parentRect.rect.xMax; + float canvasLeft = parentRect.rect.xMin; + float leftEdgeOfLeft = candidateXLeft - pivotX * panelW; + + Vector2 finalPos; + if (rightEdgeOfRight <= canvasRight) + { + finalPos = new Vector2(candidateXRight, candidateY); + } + else if (leftEdgeOfLeft >= canvasLeft) + { + finalPos = new Vector2(candidateXLeft, candidateY); + } + else + { + // Fallback: clamp within canvas horizontally + // 回退:在画布内水平方向限制 + float minX = canvasLeft + pivotX * panelW; + float maxX = canvasRight - (1f - pivotX) * panelW; + finalPos = new Vector2(Mathf.Clamp(candidateXRight, minX, maxX), candidateY); + } + + panelRect.anchoredPosition = finalPos; + } + public void RefreshLayout(GameObject gameObject) + { + var parent = gameObject.GetComponent(); + + // Force Unity to rebuild layout immediately + parent.ForceUpdateRectTransforms(); + LayoutRebuilder.ForceRebuildLayoutImmediate(parent); + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/NPCShopDetailPanel.cs b/Assets/PerfectWorld/Scripts/UI/NPCShopDetailPanel.cs index 1f0c0e00b6..80e2d2c712 100644 --- a/Assets/PerfectWorld/Scripts/UI/NPCShopDetailPanel.cs +++ b/Assets/PerfectWorld/Scripts/UI/NPCShopDetailPanel.cs @@ -122,7 +122,7 @@ public class NPCShopDetailPanel : MonoBehaviour try { // Create EC_IvtrEquip for equipment items - this will work for weapons and armor - EC_IvtrEquip equipment = new EC_IvtrEquip(itemId, 0); + EC_IvtrEquip equipment = (EC_IvtrEquip)EC_IvtrItem.CreateItem(itemId, 0, 1); // For NPC shop items, we typically have static data only // Try to get description using GetNormalDesc() which works with base stats diff --git a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs new file mode 100644 index 0000000000..e68e976e1a --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs @@ -0,0 +1,51 @@ +using UnityEngine; +using UnityEngine.UI; +using TMPro; + +namespace BrewMonster.Scripts.UI +{ + /// + /// Helper class to set text on both legacy Text and TextMeshPro components + /// Supports automatic formatting for Perfect World text codes + /// + [System.Serializable] + public class TextOutlet + { + [SerializeField] public Text legacy; + [SerializeField] public TMPro.TextMeshProUGUI tmp; + + public void Set(string value) + { + if (legacy != null) + { + legacy.text = EC_Utility.FormatForLegacyText(value ?? string.Empty); + } + if (tmp != null) + { + tmp.text = EC_Utility.FormatForTextMeshPro(value ?? string.Empty); + } + } + + /// + /// Set text with explicit formatting preference + /// + /// Raw text with formatting codes + /// Whether to prefer TextMeshPro formatting + public void SetFormatted(string value, bool preferTextMeshPro = true) + { + string formattedText = preferTextMeshPro ? + EC_Utility.FormatForTextMeshPro(value ?? string.Empty) : + EC_Utility.FormatForLegacyText(value ?? string.Empty); + + if (legacy != null) + { + legacy.text = formattedText; + } + if (tmp != null) + { + tmp.text = formattedText; + } + } + } +} + diff --git a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs.meta b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs.meta new file mode 100644 index 0000000000..d3cc327c5a --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a5c1c1cd1df1d4d7980499bf1ab6b179 \ No newline at end of file diff --git a/Assets/PerfectWorld/UI/Award/DlgAward.prefab b/Assets/PerfectWorld/UI/Award/DlgAward.prefab index 276577ea9c..8d001d660f 100644 --- a/Assets/PerfectWorld/UI/Award/DlgAward.prefab +++ b/Assets/PerfectWorld/UI/Award/DlgAward.prefab @@ -1,81 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &165174036537021008 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3386269673238764405} - - component: {fileID: 5695467372271221829} - - component: {fileID: 8051377020245334668} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &3386269673238764405 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 165174036537021008} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1815682412766530288} - m_Father: {fileID: 2175163742848198118} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 366.661, y: -167.5} - m_SizeDelta: {x: 531, y: 335} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5695467372271221829 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 165174036537021008} - m_CullTransparentMesh: 1 ---- !u!114 &8051377020245334668 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 165174036537021008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!1 &227158560462075115 GameObject: m_ObjectHideFlags: 0 @@ -477,6 +401,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2109723218317570040} + - {fileID: 7191187217159756027} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -507,6 +432,11 @@ MonoBehaviour: - {fileID: 2166136893266299956} - {fileID: 1707764266222510119} - {fileID: 2876579923345408843} + itemInfoPanel: {fileID: 2914562378533747067} + itemInfoPanelOffset: {x: 20, y: 0} + descriptionOutlet: + legacy: {fileID: 0} + tmp: {fileID: 6034451007464405912} _awardItems: [] --- !u!1 &1403327757381850957 GameObject: @@ -1298,7 +1228,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 504415793170309261} - - {fileID: 3386269673238764405} m_Father: {fileID: 1558872982091896349} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1320,8 +1249,8 @@ MonoBehaviour: m_EditorClassIdentifier: img: {fileID: 5798109676702798723} btn: {fileID: 5829300517807457460} - objHint: {fileID: 165174036537021008} - txtHint: {fileID: 7658705790532366309} + txtHint: + isOn: 0 --- !u!222 &1897581106405175503 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1561,7 +1490,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3} m_Name: m_EditorClassIdentifier: - m_AllowSwitchOff: 0 + m_AllowSwitchOff: 1 --- !u!1 &5325640235670539457 GameObject: m_ObjectHideFlags: 0 @@ -1637,142 +1566,6 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5403631556117558338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1815682412766530288} - - component: {fileID: 8320041494551075808} - - component: {fileID: 7658705790532366309} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1815682412766530288 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5403631556117558338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3386269673238764405} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8320041494551075808 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5403631556117558338} - m_CullTransparentMesh: 1 ---- !u!114 &7658705790532366309 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5403631556117558338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: New Text - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &5498099694921818792 GameObject: m_ObjectHideFlags: 0 @@ -1883,7 +1676,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.53490067, y: 0.7298012} + m_AnchoredPosition: {x: -0.53490067, y: 0.72979736} m_SizeDelta: {x: -17.4895, y: -18.3651} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &673608011296253043 @@ -2518,3 +2311,173 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1001 &8554979174101426034 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2539478906271782923} + m_Modifications: + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.x + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6830833846243993097, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Name + value: item_info + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -805.53 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -402.765 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} +--- !u!1 &2914562378533747067 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6830833846243993097, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8554979174101426034} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6034451007464405912 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2668322321768899818, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8554979174101426034} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7191187217159756027 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8554979174101426034} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/InventoryUI.prefab b/Assets/Prefabs/UI/InventoryUI.prefab index 0b51075d40..404dc30da6 100644 --- a/Assets/Prefabs/UI/InventoryUI.prefab +++ b/Assets/Prefabs/UI/InventoryUI.prefab @@ -1939,159 +1939,6 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: "Hi\u1EC7n th\u1EDDi trang" ---- !u!1 &1207957170674377830 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9106031791145292554} - - component: {fileID: 2043307214318211948} - - component: {fileID: 7082730707602873357} - - component: {fileID: 8326856998280289065} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9106031791145292554 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1207957170674377830} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7848525089621781280} - - {fileID: 3957042332961304019} - m_Father: {fileID: 7205431771786927886} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 21, y: -0} - m_SizeDelta: {x: 472.5032, y: 0} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &2043307214318211948 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1207957170674377830} - m_CullTransparentMesh: 1 ---- !u!114 &7082730707602873357 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1207957170674377830} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &8326856998280289065 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1207957170674377830} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!1 &1219674813356180176 GameObject: m_ObjectHideFlags: 0 @@ -2212,142 +2059,6 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &1284290816170441003 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2466161328052096029} - - component: {fileID: 6463394684454733508} - - component: {fileID: 8953421006885282374} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2466161328052096029 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1284290816170441003} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7848525089621781280} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6463394684454733508 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1284290816170441003} - m_CullTransparentMesh: 1 ---- !u!114 &8953421006885282374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1284290816170441003} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Button - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &1320368067972250102 GameObject: m_ObjectHideFlags: 0 @@ -4621,126 +4332,6 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &2900449705256812174 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7205431771786927886} - - component: {fileID: 1259541797508744632} - - component: {fileID: 8763926584614968537} - - component: {fileID: 8314108997904070483} - - component: {fileID: 4689346867422405707} - m_Layer: 5 - m_Name: item_info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7205431771786927886 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2900449705256812174} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 9106031791145292554} - - {fileID: 1001152567372181051} - - {fileID: 1333165094145940333} - m_Father: {fileID: 5834405183358786743} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 220.02612, y: -32.73999} - m_SizeDelta: {x: -1130.2886, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1259541797508744632 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2900449705256812174} - m_CullTransparentMesh: 1 ---- !u!114 &8763926584614968537 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2900449705256812174} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 31724268aed254d4c9a0523e647a6c71, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8314108997904070483 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2900449705256812174} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 21 - m_Right: 0 - m_Top: 0 - m_Bottom: 19 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &4689346867422405707 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2900449705256812174} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!1 &2963057859083006808 GameObject: m_ObjectHideFlags: 0 @@ -6044,127 +5635,6 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &4174520387280876496 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3957042332961304019} - - component: {fileID: 1690548971436127832} - - component: {fileID: 4809639478948037102} - - component: {fileID: 540159372834342487} - m_Layer: 5 - m_Name: Button (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3957042332961304019 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4174520387280876496} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3487944613431951936} - m_Father: {fileID: 9106031791145292554} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 97.333984, y: -91.01306} - m_SizeDelta: {x: 163.8041, y: 49.0205} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1690548971436127832 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4174520387280876496} - m_CullTransparentMesh: 1 ---- !u!114 &4809639478948037102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4174520387280876496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 8f24853d9cfea43389e8fb3101ffaae1, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &540159372834342487 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4174520387280876496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 4809639478948037102} - m_OnClick: - m_PersistentCalls: - m_Calls: [] --- !u!1 &4209688006439645405 GameObject: m_ObjectHideFlags: 0 @@ -7515,293 +6985,6 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &5371522206622176611 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1333165094145940333} - - component: {fileID: 7370426642012978972} - - component: {fileID: 37862130938576806} - - component: {fileID: 9183113038478938762} - m_Layer: 5 - m_Name: Text (TMP) (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1333165094145940333 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5371522206622176611} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7205431771786927886} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 21, y: -57.98} - m_SizeDelta: {x: 465.7476, y: 0} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &7370426642012978972 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5371522206622176611} - m_CullTransparentMesh: 1 ---- !u!114 &37862130938576806 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5371522206622176611} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &9183113038478938762 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5371522206622176611} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!1 &5460797107099608431 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3487944613431951936} - - component: {fileID: 5886028089553917019} - - component: {fileID: 3091366033067876697} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3487944613431951936 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5460797107099608431} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3957042332961304019} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5886028089553917019 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5460797107099608431} - m_CullTransparentMesh: 1 ---- !u!114 &3091366033067876697 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5460797107099608431} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Button - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &5468137454250289500 GameObject: m_ObjectHideFlags: 0 @@ -9806,127 +8989,6 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &6337357843872489054 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7848525089621781280} - - component: {fileID: 1737545770821452063} - - component: {fileID: 175496166755478291} - - component: {fileID: 472698755110594484} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7848525089621781280 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6337357843872489054} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2466161328052096029} - m_Father: {fileID: 9106031791145292554} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 97.333984, y: -28.5943} - m_SizeDelta: {x: 163.8041, y: 49.0205} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1737545770821452063 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6337357843872489054} - m_CullTransparentMesh: 1 ---- !u!114 &175496166755478291 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6337357843872489054} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 0e7885e3cd0cb72479e3e3361eed95ed, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &472698755110594484 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6337357843872489054} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 175496166755478291} - m_OnClick: - m_PersistentCalls: - m_Calls: [] --- !u!1 &6377806151830969588 GameObject: m_ObjectHideFlags: 0 @@ -12385,159 +11447,6 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &8589115324229298066 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1001152567372181051} - - component: {fileID: 5347950336050242333} - - component: {fileID: 6020258894941961325} - - component: {fileID: 2788066678812114912} - m_Layer: 5 - m_Name: Text (TMP) (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1001152567372181051 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8589115324229298066} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7205431771786927886} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 21, y: -28.989998} - m_SizeDelta: {x: 465.7476, y: 0} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &5347950336050242333 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8589115324229298066} - m_CullTransparentMesh: 1 ---- !u!114 &6020258894941961325 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8589115324229298066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 'abcdegtiklm - -' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &2788066678812114912 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8589115324229298066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!1 &8604051873848548863 GameObject: m_ObjectHideFlags: 0 @@ -13154,3 +12063,206 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1001 &8542071282636773511 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5834405183358786743} + m_Modifications: + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 636299721907915661, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.x + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6830833846243993097, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_Name + value: item_info + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7209086543831860202, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -805.53 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 8894405194986632892, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + propertyPath: m_AnchoredPosition.y + value: -402.765 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} +--- !u!114 &37862130938576806 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8506468441935914785, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &472698755110594484 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8071811253980610355, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &540159372834342487 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8211329327917358800, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &2900449705256812174 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6830833846243993097, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6020258894941961325 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2668322321768899818, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7205431771786927886 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1546246053547542409, guid: c56ed80641ff74ce49f91401e3eb8367, type: 3} + m_PrefabInstance: {fileID: 8542071282636773511} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/item_info.prefab b/Assets/Prefabs/UI/item_info.prefab new file mode 100644 index 0000000000..95db462baf --- /dev/null +++ b/Assets/Prefabs/UI/item_info.prefab @@ -0,0 +1,1102 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &124168344263491349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8894405194986632892} + - component: {fileID: 4376431126769957786} + - component: {fileID: 2668322321768899818} + - component: {fileID: 5781139014276065127} + m_Layer: 5 + m_Name: Text (TMP) (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8894405194986632892 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 124168344263491349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1546246053547542409} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -402.765} + m_SizeDelta: {x: 400, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4376431126769957786 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 124168344263491349} + m_CullTransparentMesh: 1 +--- !u!114 &2668322321768899818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 124168344263491349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "[InventoryUI] Set TMP text: ^FFFFFF \u2606\u2606T\u1EED Vi Ph\xE1p Kh\u1ED1\n^FFFFFF + \nC\u1EA5p 4\n^FFFFFFTh\u1EE7 v\u1EADt l\xFD^FFFFFF +32\n^FFFFFFKh\xE1ng Kim^FFFFFF + +355\n^FFFFFFKh\xE1ng M\u1ED9c^FFFFFF +355\n^FFFFFFKh\xE1ng Th\u1EE7y^FFFFFF + +355\n^FFFFFFKh\xE1ng H\u1ECFa^FFFFFF +355\n^FFFFFFKh\xE1ng Th\u1ED5^FFFFFF +355\n^FFFFFF\u0110\u1ED9 + b\u1EC1n 60/60\n^FFFFFFY\xEAu c\u1EA7u c\u1EA5p \u0111\u1ED9 1\n^FFFFFFH\u1EA1n + ch\u1EBF ^FFFFFFPS ^FFFFFFVS ^FFFFFFTiT ^FFFFFFVL ^FFFFFFM\u1ECB Linh ^FFFFFFNguy\u1EC7t + Ti\xEAn\n^5998FFLinh L\u1EF1c +1\nTh\u1EE7 v\u1EADt l\xFD +8\n\n\n^5998FF(2) + Ph\xF2ng ng\u1EF1 v\u1EA5t l\xFD +50\n(3) Kh\xE1ng ph\xE9p+50\n(4) \u0110i\u1EC3m + Ch\xE2n kh\xED +50\n^FFFF00T\u1EED Vi (4 / 5)\n^00FF00 \u2606\u2606T\u1EED Vi + Ph\xE1p B\xE0o\n^00FF00 \u2606\u2606T\u1EED Vi Ph\xE1p Kh\u1ED1\n^00FF00 \u2606\u2606T\u1EED + Vi Ph\xE1p Kh\u1ED1\n^00FF00 \u2606\u2606T\u1EED Vi Khinh O\u1EA3n\n^808080 + \u2606\u2606T\u1EED Vi Y\xEAu B\u1ED9i^FFFFFFPrice: 0\n" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 20, z: 0, w: 20} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5781139014276065127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 124168344263491349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &2412057975732520665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1900527214026617767} + - component: {fileID: 7968706394531223960} + - component: {fileID: 8423125791709492116} + - component: {fileID: 8071811253980610355} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1900527214026617767 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412057975732520665} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6102967088919909530} + m_Father: {fileID: 636299721907915661} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 547.334, y: -28.5943} + m_SizeDelta: {x: 163.80408, y: 49.0205} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7968706394531223960 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412057975732520665} + m_CullTransparentMesh: 1 +--- !u!114 &8423125791709492116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412057975732520665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 0e7885e3cd0cb72479e3e3361eed95ed, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8071811253980610355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412057975732520665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8423125791709492116} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &4323722196996787684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7209086543831860202} + - component: {fileID: 1207680936664328091} + - component: {fileID: 8506468441935914785} + - component: {fileID: 719291941139433997} + m_Layer: 5 + m_Name: Text (TMP) (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7209086543831860202 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4323722196996787684} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1546246053547542409} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -805.53} + m_SizeDelta: {x: 450, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &1207680936664328091 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4323722196996787684} + m_CullTransparentMesh: 1 +--- !u!114 &8506468441935914785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4323722196996787684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &719291941139433997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4323722196996787684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &4414423305432759784 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5110498948200012487} + - component: {fileID: 2820616548424895708} + - component: {fileID: 6660038341776996830} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5110498948200012487 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414423305432759784} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4639188770757162324} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2820616548424895708 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414423305432759784} + m_CullTransparentMesh: 1 +--- !u!114 &6660038341776996830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414423305432759784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5721094068644211543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4639188770757162324} + - component: {fileID: 7060942486687674079} + - component: {fileID: 3761857046623148393} + - component: {fileID: 8211329327917358800} + m_Layer: 5 + m_Name: Button (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4639188770757162324 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5721094068644211543} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5110498948200012487} + m_Father: {fileID: 636299721907915661} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 547.334, y: -91.01306} + m_SizeDelta: {x: 163.80408, y: 49.0205} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7060942486687674079 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5721094068644211543} + m_CullTransparentMesh: 1 +--- !u!114 &3761857046623148393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5721094068644211543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8f24853d9cfea43389e8fb3101ffaae1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8211329327917358800 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5721094068644211543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3761857046623148393} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &6830833846243993097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1546246053547542409} + - component: {fileID: 7489840247554268479} + - component: {fileID: 1086546571030594654} + - component: {fileID: 426204275254898644} + - component: {fileID: 4006058193329126604} + m_Layer: 5 + m_Name: item_info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1546246053547542409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6830833846243993097} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 636299721907915661} + - {fileID: 8894405194986632892} + - {fileID: 7209086543831860202} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 220.02612, y: -32.73999} + m_SizeDelta: {x: 450, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7489840247554268479 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6830833846243993097} + m_CullTransparentMesh: 1 +--- !u!114 &1086546571030594654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6830833846243993097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 31724268aed254d4c9a0523e647a6c71, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &426204275254898644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6830833846243993097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 0 + m_Top: 0 + m_Bottom: 20 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4006058193329126604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6830833846243993097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7370156420958780641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636299721907915661} + - component: {fileID: 7696864549744364523} + - component: {fileID: 1495584989084566666} + - component: {fileID: 361828112618062766} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &636299721907915661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7370156420958780641} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1900527214026617767} + - {fileID: 4639188770757162324} + m_Father: {fileID: 1546246053547542409} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -0} + m_SizeDelta: {x: 450, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &7696864549744364523 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7370156420958780641} + m_CullTransparentMesh: 1 +--- !u!114 &1495584989084566666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7370156420958780641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &361828112618062766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7370156420958780641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7447052880563134892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6102967088919909530} + - component: {fileID: 3402785809763655235} + - component: {fileID: 777847736648841921} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6102967088919909530 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7447052880563134892} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1900527214026617767} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3402785809763655235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7447052880563134892} + m_CullTransparentMesh: 1 +--- !u!114 &777847736648841921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7447052880563134892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/UI/item_info.prefab.meta b/Assets/Prefabs/UI/item_info.prefab.meta new file mode 100644 index 0000000000..a4eb83c254 --- /dev/null +++ b/Assets/Prefabs/UI/item_info.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c56ed80641ff74ce49f91401e3eb8367 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 019d3d397a..dc0bb6eee5 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -18,6 +18,7 @@ using PerfectWorld.Scripts.Managers; using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using System.Runtime.InteropServices; using System.Text; using UnityEngine; @@ -162,13 +163,16 @@ namespace BrewMonster // ===== Inventory packs (instance-based) ===== // 0 = normal pack, 1 = equip pack, 2 = task pack (see InventoryConst.IVTRTYPE_*) - private readonly EC_Inventory m_packInventory = new EC_Inventory(); - private readonly EC_Inventory m_equipInventory = new EC_Inventory(); - private readonly EC_Inventory m_taskInventory = new EC_Inventory(); + private readonly EC_Inventory m_pPack = new EC_Inventory(); + /// + /// m_pEquipPack is changed to m_equipInventory + /// + private readonly EC_Inventory m_pEquipPack = new EC_Inventory(); + private readonly EC_Inventory m_pTaskPack = new EC_Inventory(); - public EC_Inventory PackInventory => m_packInventory; - public EC_Inventory EquipInventory => m_equipInventory; - public EC_Inventory TaskInventory => m_taskInventory; + public EC_Inventory IvtrPack => m_pPack; + public EC_Inventory IvtrEquipPack => m_pEquipPack; + public EC_Inventory IvtrTaskPack => m_pTaskPack; public Transform PointCam { get => pointCam; } @@ -187,10 +191,18 @@ namespace BrewMonster { return m_pAutoTeam; } - + public EC_Inventory GetPack() + { + return m_pPack; + } public EC_Inventory GetTaskPack() { - return m_taskInventory; + return m_pTaskPack; + } + + public EC_Inventory GetEquipment() + { + return m_pEquipPack; } // Get work manager // 获取工作管理器 @@ -244,11 +256,11 @@ namespace BrewMonster switch (byPackage) { case InventoryConst.IVTRTYPE_PACK: - return m_packInventory; + return m_pPack; case InventoryConst.IVTRTYPE_EQUIPPACK: - return m_equipInventory; + return m_pEquipPack; case InventoryConst.IVTRTYPE_TASKPACK: - return m_taskInventory; + return m_pTaskPack; default: return null; } @@ -1884,18 +1896,7 @@ namespace BrewMonster uint slot_amount = BitConverter.ToUInt32(data, 12); byte where = data[16]; // Package index byte index = data[17]; // Slot index in that package - // Create new inventory item data - var newItem = new EC_IvtrItem - { - Package = where, - Slot = index, - m_tid = type, - m_expire_date = expire_date, - State = 0, - m_iCount = (int)amount, - Crc = 0, - Content = null - }; + var newItem = EC_IvtrItem.CreateItem(type, expire_date, (int)amount); // Add item to inventory var ivt = GetInventory(where); @@ -1939,17 +1940,7 @@ namespace BrewMonster } // Create new inventory item data - var newItem = new EC_IvtrItem - { - Package = byPackage, - Slot = bySlot, - m_tid = tid, - m_expire_date = expire_date, - State = 0, - m_iCount = (int)iAmount, - Crc = 0, - Content = null - }; + var newItem = EC_IvtrItem.CreateItem(tid, expire_date, (int)iAmount); // Add item to inventory var ivt = GetInventory(byPackage); @@ -1986,17 +1977,7 @@ namespace BrewMonster // Create new inventory item data - var taskNewItem = new EC_IvtrItem - { - Package = (byte)iPack, - Slot = iCmdLastSlot, - m_tid = idItem, - m_expire_date = iExpireDate, - State = 0, - m_iCount = (int)iAmount, - Crc = 0, - Content = null - }; + var taskNewItem = EC_IvtrItem.CreateItem(idItem, iExpireDate, (int)iAmount); // Add item to inventory var task_ivt = GetInventory((byte)iPack); @@ -2029,17 +2010,7 @@ namespace BrewMonster byte produceSlot = produceCmd.index; // Create new inventory item data - var produceNewItem = new EC_IvtrItem - { - Package = producePack, - Slot = produceSlot, - m_tid = produceItemId, - m_expire_date = produceExpireDate, - State = 0, - m_iCount = (int)produceAmount, - Crc = 0, - Content = null - }; + var produceNewItem = EC_IvtrItem.CreateItem(produceItemId, produceExpireDate, (int)produceAmount); // Add item to inventory var produce_ivt = GetInventory(producePack); @@ -3749,11 +3720,6 @@ namespace BrewMonster } } - public EC_Inventory GetPack() - { - return m_packInventory; - } - private void LogInventoryPacket(string tag, byte[] buffer, int hostId) { if (buffer == null) @@ -4103,7 +4069,7 @@ namespace BrewMonster { // Use host player's equipment inventory (per-instance CECInventory) var host = CECGameRun.Instance?.GetHostPlayer(); - var equipInv = host?.EquipInventory; + var equipInv = host?.IvtrEquipPack; pItem = equipInv?.GetItem(i, false); if (pItem != null) aNewEquips[i] = pItem.m_tid; @@ -4270,7 +4236,7 @@ namespace BrewMonster Info.mp = m_BasicProps.iCurMP; Info.ap = m_BasicProps.iCurAP; Info.form = m_iShape; // Different from PW, no need to mask - Info.freepackage = m_packInventory.GetEmptySlotNum(); + Info.freepackage = m_pPack.GetEmptySlotNum(); Info.move_env = GetMoveEnv(); Info.is_combat = IsFighting(); Info.hp = m_BasicProps.iCurHP; @@ -4285,7 +4251,7 @@ namespace BrewMonster Info.weapon = 0; Info.arrow = 0; - EC_IvtrItem pWeaponItem = m_equipInventory.GetItem(EQUIPIVTR_WEAPON); + EC_IvtrItem pWeaponItem = m_pEquipPack.GetItem(EQUIPIVTR_WEAPON); if (pWeaponItem != null && pWeaponItem is EC_IvtrEquip pWeaponEquip) { // Check if weapon has endurance @@ -4298,7 +4264,7 @@ namespace BrewMonster } // Get remaining arrow number - EC_IvtrItem pArrowItem = m_equipInventory.GetItem(EQUIPIVTR_PROJECTILE); + EC_IvtrItem pArrowItem = m_pEquipPack.GetItem(EQUIPIVTR_PROJECTILE); if (pArrowItem != null) { // TODO: Implement CanUseProjectile method to check requirements @@ -6058,7 +6024,7 @@ namespace BrewMonster } else { - if (PackInventory.CanAddItem(idItem, iAmount, false) >= 0) + if (IvtrPack.CanAddItem(idItem, iAmount, false) >= 0) bCanPick = true; } @@ -6086,14 +6052,14 @@ namespace BrewMonster if (idTool != 0) { - int iIndex = PackInventory.FindItem(idTool); + int iIndex = IvtrPack.FindItem(idTool); if (iIndex >= 0) { piPack = EC_Inventory.Inventory_type.IVTRTYPE_PACK; piIndex = iIndex; pidTool = idTool; } - else if ((iIndex = TaskInventory.FindItem(idTool)) >= 0) + else if ((iIndex = IvtrTaskPack.FindItem(idTool)) >= 0) { piPack = EC_Inventory.Inventory_type.IVTRTYPE_TASKPACK; piIndex = iIndex; @@ -6480,7 +6446,7 @@ namespace BrewMonster if (!CanDo(ActionCanDo.CANDO_FLY)) return false; - EC_IvtrItem pItem = EquipInventory.GetItem(InventoryConst.EQUIPIVTR_FLYSWORD); + EC_IvtrItem pItem = IvtrEquipPack.GetItem(InventoryConst.EQUIPIVTR_FLYSWORD); if (pItem == null) return false; @@ -6556,5 +6522,100 @@ namespace BrewMonster m_bRushFly = pCmd.is_active != 0 ? true : false; } } + public int GetEquippedSuiteItem(int idSuite, ref int[] aItems) + { + int i, iItemCnt = 0; + for(i = 0; i < m_pEquipPack.GetSize(); i++) + { + var pItem = m_pEquipPack.GetItem(i); + if(pItem == null || (pItem is not EC_IvtrWeapon && pItem is not EC_IvtrArmor)) + { + continue; + } + EC_IvtrEquip pEquip = (EC_IvtrEquip)pItem; + if (pEquip == null) + { + continue; + } + if(pEquip.GetSuiteID() != idSuite) + { + continue; + } + int iReason = 0; + if(!CanUseEquipment(pEquip, ref iReason)) + { + continue; + } + if(pEquip.CID == (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_GENERALCARD) + { + //TODO: Add general card Suite + } + if(aItems.Length > 0) + { + aItems[iItemCnt] = pEquip.GetTemplateID(); + } + iItemCnt++; + } + return iItemCnt; + } + bool CanUseEquipment(EC_IvtrEquip pEquip, ref int piReason) + { + int iReason = 0; + if(pEquip == null) + { + iReason = 1; + goto End; + } + if(GetMaxLevelSofar() < pEquip.LevelReq|| + m_ExtProps.bs.strength < pEquip.StrengthReq|| + m_ExtProps.bs.agility < pEquip.AgilityReq|| + m_ExtProps.bs.vitality < pEquip.VitalityReq|| + m_ExtProps.bs.energy < pEquip.EnergyReq/*|| + Reputation < pEquip.ReputationReq*/)//todo Add reputation check + { + iReason = 2; + goto End; + } + switch(pEquip.CID)//class id + { + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_ARROW: + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_WING: + if (m_iProfession != (int)PROFESSION.PROF_ARCHOR && m_iProfession != (int)PROFESSION.PROF_ANGEL) + iReason = 3; + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_FLYSWORD: + //TODO: Add flysword check + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_FASHION: + //TODO: Add fashion check + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_ARMOR: + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_DECORATION: + if ((pEquip.ProfReq & (1 << m_iProfession)) == 0) + iReason = 3; + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_WEAPON: + if ((pEquip.ProfReq & (1 << m_iProfession)) == 0) + iReason = 3; + else + { + //TODO: check range weapon arrow + } + break; + case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_GENERALCARD: + // TODO: Add general card check + break; + default: + break; + } + + End: + if(piReason > 0) + { + piReason = iReason; + } + return iReason == 0? true : false; + } } } diff --git a/Assets/Scripts/CECPlayer_Inventory.cs b/Assets/Scripts/CECPlayer_Inventory.cs index a4164cd778..2e4b17a1c6 100644 --- a/Assets/Scripts/CECPlayer_Inventory.cs +++ b/Assets/Scripts/CECPlayer_Inventory.cs @@ -147,7 +147,7 @@ namespace BrewMonster { // Use host player's equipment inventory (per-instance CECInventory) var host = CECGameRun.Instance?.GetHostPlayer(); - var equipInv = host?.EquipInventory; + var equipInv = host?.IvtrEquipPack; pItem = equipInv?.GetItem(i, false); if (pItem != null) aNewEquips[i] = pItem.m_tid;