From 8f9c6ebd2b300c2f93e2b3dcb821a1b86b37c6d3 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 01 七月 2025 14:35:25 +0800 Subject: [PATCH] 53 子 【主界面】核心主体 / 【三国主界面】核心主体-客户端 - 主线关卡 --- Main/System/KnapSack/New/CommonItemBaisc.cs | 662 +++++++++++++++++++++++++++--------------------------- 1 files changed, 328 insertions(+), 334 deletions(-) diff --git a/Main/System/KnapSack/New/CommonItemBaisc.cs b/Main/System/KnapSack/New/CommonItemBaisc.cs index 67dafd7..3179118 100644 --- a/Main/System/KnapSack/New/CommonItemBaisc.cs +++ b/Main/System/KnapSack/New/CommonItemBaisc.cs @@ -3,368 +3,362 @@ using UnityEngine; using UnityEngine.UI; - public enum ItemCellformat - { - Format_84x84, - Format_80x80, - Format_70x70, - Format_64x64, - None, +public enum ItemCellformat +{ + Format_100x100, + Format_84x84, + Format_80x80, + Format_70x70, + Format_64x64, + None, +} + +public class CommonItemBaisc : MonoBehaviour +{ + [SerializeField] ItemCellformat m_Format; + public ItemCellformat format { get { return m_Format; } set { m_Format = value; } } + + Image m_BgIcon; + private Image bgIcon { + get { + if (m_BgIcon == null) + { + LoadPrefab(); + m_BgIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_BackGround"); + } + return m_BgIcon; + } } - public class CommonItemBaisc : MonoBehaviour - { - [SerializeField] ItemCellformat m_Format; - public ItemCellformat format { get { return m_Format; } set { m_Format = value; } } - - Image m_BgIcon; - public Image bgIcon { - get { - if (m_BgIcon == null) - { - LoadPrefab(); - m_BgIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_BackGround"); - } - return m_BgIcon; + Image m_ItemIcon; + private Image itemIcon { + get { + if (m_ItemIcon == null) + { + LoadPrefab(); + m_ItemIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_Icon"); } + return m_ItemIcon; } + } - Image m_ItemIcon; - public Image itemIcon { - get { - if (m_ItemIcon == null) - { - LoadPrefab(); - m_ItemIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_Icon"); - } - return m_ItemIcon; + + Image m_StateIcon; + public Image stateIcon { + get { + if (m_StateIcon == null) + { + LoadPrefab(); + m_StateIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_State"); } + return m_StateIcon; } + } - - Image m_StateIcon; - public Image stateIcon { - get { - if (m_StateIcon == null) - { - LoadPrefab(); - m_StateIcon = this.transform.GetComponent<Image>("Container_ItemCell/Img_State"); - } - return m_StateIcon; + Text m_CountText; + public Text countText { + get { + if (m_CountText == null) + { + LoadPrefab(); + m_CountText = this.transform.GetComponent<Text>("Container_ItemCell/Txt_Count"); } + return m_CountText; } + } - Text m_CountText; - public Text countText { - get { - if (m_CountText == null) - { - LoadPrefab(); - m_CountText = this.transform.GetComponent<Text>("Container_ItemCell/Txt_Count"); - } - return m_CountText; + Button m_Button; + public Button button { + get { + if (m_Button == null) + { + LoadPrefab(); + m_Button = this.GetComponent<Button>("Container_ItemCell"); } + return m_Button; } + } - Button m_Button; - public Button button { - get { - if (m_Button == null) - { - LoadPrefab(); - m_Button = this.GetComponent<Button>("Container_ItemCell"); - } - return m_Button; - } - } + // EquipSuitEffect m_SuitEffect; + // EquipSuitEffect suitEffect { + // get { + // if (m_SuitEffect == null) + // { + // LoadPrefab(); + // //clone 浼氶�犳垚浜屾鍒涘缓 + // m_SuitEffect = transform.GetComponentInChildren<EquipSuitEffect>(); + // if (m_SuitEffect == null) + // m_SuitEffect = EquipSuitEffect.Create(transform as RectTransform); + // } + // return m_SuitEffect; + // } + // } - EquipSuitEffect m_SuitEffect; - EquipSuitEffect suitEffect { - get { - if (m_SuitEffect == null) - { - LoadPrefab(); - //clone 浼氶�犳垚浜屾鍒涘缓 - m_SuitEffect = transform.GetComponentInChildren<EquipSuitEffect>(); - if (m_SuitEffect == null) - m_SuitEffect = EquipSuitEffect.Create(transform as RectTransform); - } - return m_SuitEffect; - } - } - - //鐗╁搧鍩虹鐗规晥锛堢墿鍝佽〃锛� - ItemBaseEffect m_ItemBaseEffect; - ItemBaseEffect itemBaseEffect { - get { + //鐗╁搧鍩虹鐗规晥锛堢墿鍝佽〃锛� + ItemBaseEffect m_ItemBaseEffect; + ItemBaseEffect itemBaseEffect { + get { + if (m_ItemBaseEffect == null) + { + LoadPrefab(); + //clone 浼氶�犳垚浜屾鍒涘缓 + m_ItemBaseEffect = transform.GetComponentInChildren<ItemBaseEffect>(); if (m_ItemBaseEffect == null) - { - LoadPrefab(); - //clone 浼氶�犳垚浜屾鍒涘缓 - m_ItemBaseEffect = transform.GetComponentInChildren<ItemBaseEffect>(); - if (m_ItemBaseEffect == null) - m_ItemBaseEffect = ItemBaseEffect.Create(transform as RectTransform); - } - return m_ItemBaseEffect; + m_ItemBaseEffect = ItemBaseEffect.Create(transform as RectTransform); } + return m_ItemBaseEffect; } - - public bool suitEffectDirty { get; set; } - - GameObject cellContainer; - protected void LoadPrefab() - { - //clone 浼氶�犳垚浜屾鍒涘缓 - var tmp = transform.Find("Container_ItemCell"); - if (tmp != null) - { - cellContainer = tmp.gameObject; - return; - } - if (cellContainer == null) - { - switch (format) - { - case ItemCellformat.Format_64x64: - cellContainer = UIUtility.CreateWidget("ItemCell_64", "Container_ItemCell"); - break; - case ItemCellformat.Format_70x70: - cellContainer = UIUtility.CreateWidget("ItemCell_70", "Container_ItemCell"); - break; - case ItemCellformat.Format_80x80: - cellContainer = UIUtility.CreateWidget("ItemCell_80", "Container_ItemCell"); - break; - case ItemCellformat.Format_84x84: - cellContainer = UIUtility.CreateWidget("ItemCell_84", "Container_ItemCell"); - break; - } - - if (cellContainer != null) - { - cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); - cellContainer.transform.SetAsFirstSibling(); - } - } - } - - public int itemId { get; private set; } - PackManager packModel { get { return PackManager.Instance; } } - // EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } - - /// <summary> - /// 鍒濆鍖栨暟鎹� bool鍊肩敤鏉ュ垽鏂槸鍚﹂渶瑕佸睍绀鸿瘎鍒嗛珮浣庢垨鑰呰亴涓氶檺鍒� - /// </summary> - /// <param name="model"></param> - /// <param name="isCompare"></param> - public virtual void Init(ItemModel model, bool isCompare = false) - { - itemId = model.itemId; - InitUI(model.guid, model.itemId, (ulong)model.count, model.score, model.isAuction, model.packType, isCompare, model.useDataDict); - } - - /// <summary> - /// 鍒濆鍖栨暟鎹紙棰勮锛� - /// </summary> - /// <param name="model"></param> - public virtual void Init(ItemCellModel model) - { - itemId = model.itemId; - InitUI(model.guid, model.itemId, model.count, model.score, false, model.packType, model.isCompare, model.useDataDic); - } - - private void InitUI(string guid, int itemId, ulong count, int score, bool isAuction, PackType type, bool isCompare, Dictionary<int, List<int>> useDataDic) - { - var config = ItemConfig.Get(itemId); - if (config == null) return; - - itemIcon.SetActive(true); - bgIcon.SetActive(true); - itemIcon.SetSprite(config.IconKey); - ItemConfig itemConfig = ItemConfig.Get(itemId); - // bgIcon.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemId, useDataDic), itemConfig.QualityEchoType); - // if (packModel.textCountShow.ContainsKey(itemId)) - // { - // countText.SetActive(true); - // countText.text = count > 1 ? packModel.textCountShow[itemId] + "x" + count : packModel.textCountShow[itemId]; - // } - // else if (packModel.gameCashShow.Contains(itemId)) - // { - // //浠i噾鍒� - // countText.SetActive(true); - // countText.text = count > 1000000 ? UIHelper.ReplaceLargeNum(count / 100.0f) : (count / 100.0f).ToString("0.##"); - // } - // else if (Array.IndexOf(packModel.textCountShow2, itemId) != -1) - // { - // countText.SetActive(true); - // countText.text = UIHelper.ReplaceLargeNum(count * (ulong)config.EffectValueA1); - // } - // else - // { - countText.SetActive(count > 1); - if (count > 1) - { - countText.text = UIHelper.ReplaceLargeNum((double)count); - } - // } - - suitEffect.Display(itemId, suitEffectDirty); - suitEffectDirty = false; - itemBaseEffect.Display(itemId); - - // var compareReslut = isCompare ? Compare(type, itemId, score, guid) : 0; - // switch (compareReslut) - // { - // case -1: - // stateIcon.SetActive(true); - // stateIcon.SetSprite("EquipDownIcon"); - // break; - // case 0: - // stateIcon.SetActive(false); - // break; - // case 1: - // stateIcon.SetActive(true); - // stateIcon.SetSprite("EquipUpIcon"); - // break; - // case 99: - // stateIcon.SetActive(true); - // stateIcon.SetSprite("EquipForbidIcon"); - // break; - // } - } - - /// <summary> - /// 0 鐩哥瓑 99 绂佹姣旇緝 1 楂樿瘎鍒� -1 浣庤瘎鍒� - /// </summary> - /// <param name="itemId"></param> - /// <param name="score"></param> - /// <param name="isCompare"></param> - /// <param name="compareSocre"></param> - /// <returns></returns> - // int Compare(PackType type, int itemId, int score, string guid) - // { - // if (type == PackType.Equip || type == PackType.DogzEquip) - // { - // return 0; - // } - - // if (!ItemLogicUtility.Instance.IsJobCompatibleItem(itemId)) - // { - // return 99; - // } - - // var config = ItemConfig.Get(itemId); - // if (config == null || config.EquipPlace == 0) - // { - // return 0; - // } - - // var item = packModel.GetItemByGuid(guid); - // //if (item != null && item.isAuction) - // //{ - // // return 0; - // //} - - // if (item != null && ItemLogicUtility.Instance.IsOverdue(guid)) - // { - // return 99; - // } - - // if (ItemLogicUtility.Instance.IsDogzEquip(itemId)) - // { - // var compareSocre = GetDogzEquipScore(config.EquipPlace); - // return score.CompareTo(compareSocre); - // } - // else if (ItemLogicUtility.Instance.IsSpiritWeapon(itemId)) - // { - // return score.CompareTo(GetSpiritWeaponScore(config.EquipPlace)); - // } - // else if (ItemLogicUtility.Instance.IsRealmEquip(itemId)) - // { - // return equipModel.CompareToCurrent(guid); - // } - // else - // { - // return 0; - // } - // } - - // int GetDogzEquipScore(int equipPlace) - // { - // var dogzModel = ModelCenter.Instance.GetModel<DogzModel>(); - // ItemModel putOnModel = null; - // dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, equipPlace, out putOnModel); - // return putOnModel == null ? 0 : putOnModel.score; - // } - - // int GetSpiritWeaponScore(int equipPlace) - // { - // var spiritWeaponModel = ModelCenter.Instance.GetModel<SpiritWeaponModel>(); - // var guid = spiritWeaponModel.GetSpiritWeapon((RoleEquipType)equipPlace); - // var item = packModel.GetItemByGuid(guid); - // return item != null ? item.score : 0; - // } - } - public class ItemCellModel + // public bool suitEffectDirty { get; set; } + + GameObject cellContainer; + protected void LoadPrefab() { - public string guid { get; private set; } - public int itemId { get; private set; } - public ulong count { get; private set; } - public int score { get; private set; } - public bool isCompare { get; private set; } - public ItemConfig itemConfig { get { return ItemConfig.Get(itemId); } } - public PackType packType { get; private set; } - public Dictionary<int, List<int>> useDataDic { get; private set; } - - - public ItemCellModel(int itemId, bool isPreview = false, ulong count = 0, string guid = "", PackType type = PackType.Deleted, bool isCompare = false, Dictionary<int, List<int>> useDataDic = null) + if (cellContainer != null) + return; + //clone 浼氶�犳垚浜屾鍒涘缓 + var tmp = transform.Find("Container_ItemCell"); + if (tmp != null) { - this.itemId = AdjustItemId(itemId); - this.guid = guid; - this.count = count; - this.isCompare = isCompare; - this.useDataDic = useDataDic; - this.packType = type; - - //this.score = ItemLogicUtility.Instance.GetEquipScore(itemId, useDataDic, isPreview); + cellContainer = tmp.gameObject; + return; } - - public ItemCellModel(int itemId) + if (cellContainer == null) { - this.itemId = AdjustItemId(itemId); - this.guid = ""; - this.count = 0; - this.isCompare = false; - this.useDataDic = null; - this.packType = PackType.Deleted; - this.score = 0; - } - - public ItemCellModel(int itemId, bool isPreview, ulong count) - { - this.itemId = AdjustItemId(itemId); - this.guid = ""; - this.count = count; - this.isCompare = false; - this.useDataDic = null; - this.packType = PackType.Deleted; - - //this.score = ItemLogicUtility.Instance.GetEquipScore(itemId, null, isPreview); - } - - int AdjustItemId(int itemId) - { - var config = ItemConfig.Get(itemId); - if (config != null && config.Effect1 == 220) + switch (format) { - return config.EffectValueA1; + case ItemCellformat.Format_64x64: + cellContainer = UIUtility.CreateWidget("ItemCell_64", "Container_ItemCell"); + break; + case ItemCellformat.Format_70x70: + cellContainer = UIUtility.CreateWidget("ItemCell_70", "Container_ItemCell"); + break; + case ItemCellformat.Format_80x80: + cellContainer = UIUtility.CreateWidget("ItemCell_80", "Container_ItemCell"); + break; + case ItemCellformat.Format_84x84: + cellContainer = UIUtility.CreateWidget("ItemCell_84", "Container_ItemCell"); + break; + case ItemCellformat.Format_100x100: + cellContainer = UIUtility.CreateWidget("ItemCell_100", "Container_ItemCell"); + break; } - else + + if (cellContainer != null) { - return itemId; + cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); + cellContainer.transform.SetAsFirstSibling(); } } - } + public int itemId { get; private set; } + PackManager packModel { get { return PackManager.Instance; } } + // EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } + + /// <summary> + /// 鍒濆鍖栨暟鎹� bool鍊肩敤鏉ュ垽鏂槸鍚﹂渶瑕佸睍绀鸿瘎鍒嗛珮浣庢垨鑰呰亴涓氶檺鍒� + /// </summary> + /// <param name="model"></param> + /// <param name="isCompare"></param> + public virtual void Init(ItemModel model, bool isCompare = false) + { + itemId = model.itemId; + InitUI(model.guid, model.itemId, (ulong)model.count, model.score, model.isAuction, model.packType, isCompare, model.useDataDict); + } + + /// <summary> + /// 鍒濆鍖栨暟鎹紙棰勮锛� + /// </summary> + /// <param name="model"></param> + public virtual void Init(ItemCellModel model) + { + itemId = model.itemId; + InitUI(model.guid, model.itemId, model.count, model.score, false, model.packType, model.isCompare, model.useDataDic); + } + + private void InitUI(string guid, int itemId, ulong count, int score, bool isAuction, PackType type, bool isCompare, Dictionary<int, List<int>> useDataDic) + { + var config = ItemConfig.Get(itemId); + if (config == null) return; + + itemIcon.SetActive(true); + bgIcon.SetActive(true); + itemIcon.SetSprite(config.IconKey); + ItemConfig itemConfig = ItemConfig.Get(itemId); + bgIcon.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemId, useDataDic), itemConfig.QualityEchoType); + if (packModel.textCountShow.ContainsKey(itemId)) + { + countText.SetActive(true); + countText.text = count > 1 ? packModel.textCountShow[itemId] + "x" + count : packModel.textCountShow[itemId]; + } + else if (packModel.gameCashShow.Contains(itemId)) + { + //浠i噾鍒� + countText.SetActive(true); + countText.text = count > 1000000 ? UIHelper.ReplaceLargeNum(count / 100.0f) : (count / 100.0f).ToString("0.##"); + } + else if (Array.IndexOf(packModel.textCountShow2, itemId) != -1) + { + countText.SetActive(true); + countText.text = UIHelper.ReplaceLargeNum(count * (ulong)config.EffectValueA1); + } + else + { + countText.SetActive(count > 1); + if (count > 1) + { + countText.text = UIHelper.ReplaceLargeNum((double)count); + } + } + + // suitEffect.Display(itemId, suitEffectDirty); + // suitEffectDirty = false; + itemBaseEffect.Display(itemId); + + var compareReslut = isCompare ? Compare(type, itemId, score, guid) : 0; + switch (compareReslut) + { + case -1: + stateIcon.SetActive(true); + stateIcon.SetSprite("EquipDownIcon"); + break; + case 0: + stateIcon.SetActive(false); + break; + case 1: + stateIcon.SetActive(true); + stateIcon.SetSprite("EquipUpIcon"); + break; + case 99: + stateIcon.SetActive(true); + stateIcon.SetSprite("EquipForbidIcon"); + break; + } + } + + // / <summary> + // / 0 鐩哥瓑 99 绂佹姣旇緝 1 楂樿瘎鍒� -1 浣庤瘎鍒� + // / </summary> + // / <param name="itemId"></param> + // / <param name="score"></param> + // / <param name="isCompare"></param> + // / <param name="compareSocre"></param> + // / <returns></returns> + int Compare(PackType type, int itemId, int score, string guid) + { + if (type == PackType.Equip || type == PackType.DogzEquip) + { + return 0; + } + + //姝ゅ鍙兘鏄灏嗗崱 + // if (!ItemLogicUtility.Instance.IsJobCompatibleItem(itemId)) + // { + // return 99; + // } + + var config = ItemConfig.Get(itemId); + if (config == null || config.EquipPlace == 0) + { + return 0; + } + + var item = packModel.GetItemByGuid(guid); + + if (item != null && ItemLogicUtility.Instance.IsOverdue(guid)) + { + return 99; + } + + if (ItemLogicUtility.Instance.IsRealmEquip(itemId)) + { + return EquipModel.Instance.CompareToCurrent(guid); + } + else + { + return 0; + } + } + + // int GetDogzEquipScore(int equipPlace) + // { + // var dogzModel = ModelCenter.Instance.GetModel<DogzModel>(); + // ItemModel putOnModel = null; + // dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, equipPlace, out putOnModel); + // return putOnModel == null ? 0 : putOnModel.score; + // } + + // int GetSpiritWeaponScore(int equipPlace) + // { + // var spiritWeaponModel = ModelCenter.Instance.GetModel<SpiritWeaponModel>(); + // var guid = spiritWeaponModel.GetSpiritWeapon((RoleEquipType)equipPlace); + // var item = packModel.GetItemByGuid(guid); + // return item != null ? item.score : 0; + // } + +} + +public class ItemCellModel +{ + public string guid { get; private set; } + public int itemId { get; private set; } + public ulong count { get; private set; } + public int score { get; private set; } + public bool isCompare { get; private set; } + public ItemConfig itemConfig { get { return ItemConfig.Get(itemId); } } + public PackType packType { get; private set; } + public Dictionary<int, List<int>> useDataDic { get; private set; } + + + public ItemCellModel(int itemId, bool isPreview = false, ulong count = 0, string guid = "", PackType type = PackType.Deleted, bool isCompare = false, Dictionary<int, List<int>> useDataDic = null) + { + this.itemId = AdjustItemId(itemId); + this.guid = guid; + this.count = count; + this.isCompare = isCompare; + this.useDataDic = useDataDic; + this.packType = type; + + //this.score = ItemLogicUtility.Instance.GetEquipScore(itemId, useDataDic, isPreview); + } + + public ItemCellModel(int itemId) + { + this.itemId = AdjustItemId(itemId); + this.guid = ""; + this.count = 0; + this.isCompare = false; + this.useDataDic = null; + this.packType = PackType.Deleted; + this.score = 0; + } + + public ItemCellModel(int itemId, bool isPreview, ulong count) + { + this.itemId = AdjustItemId(itemId); + this.guid = ""; + this.count = count; + this.isCompare = false; + this.useDataDic = null; + this.packType = PackType.Deleted; + + //this.score = ItemLogicUtility.Instance.GetEquipScore(itemId, null, isPreview); + } + + int AdjustItemId(int itemId) + { + var config = ItemConfig.Get(itemId); + if (config != null && config.Effect1 == 220) + { + return config.EffectValueA1; + } + else + { + return itemId; + } + } + +} + -- Gitblit v1.8.0