using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ChestDetailBehaviour : MonoBehaviour { [SerializeField] Text m_ItemName; [SerializeField] ItemCell m_Item; [SerializeField] Text m_ItemType; [SerializeField] Text m_Condition0; [SerializeField] Text m_ConditionValue0; [SerializeField] Text m_Condition1; [SerializeField] Image m_ConditionValue1; [SerializeField] RichText m_Description; [SerializeField] ScrollRect m_Scroller; [SerializeField] Text m_UseTimes; [SerializeField] AdaptiveLayout m_Adaptive; [SerializeField] Button m_Close; ItemTipsModel m_ItemTipsModel; ItemTipsModel itemTipsModel { get { return m_ItemTipsModel ?? (m_ItemTipsModel = ModelCenter.Instance.GetModel()); } } BoxGetItemModel boxModel; BoxGetItemModel BoxModel { get { return boxModel ?? (boxModel = ModelCenter.Instance.GetModel()); } } Color32 conditionColor = new Color32(255, 244, 205, 255); Color32 conditionRedColor = new Color32(255, 1, 1, 255); private void Awake() { m_Close.onClick.AddListener(Close); } private void OnEnable() { m_Adaptive.adaptiveUpdateEvent += AdaptiveUpdateEvent; AdaptiveUpdateEvent(); } private void OnDisable() { m_Adaptive.adaptiveUpdateEvent -= AdaptiveUpdateEvent; } private void AdaptiveUpdateEvent() { m_Adaptive.rectTransform.localPosition = Vector3.zero.SetY(m_Adaptive.Size / 2); } public void Display() { var config = Config.Instance.Get(itemTipsModel.curAttrData.itemId); var itemConfig = Config.Instance.Get(itemTipsModel.curAttrData.itemId); m_ItemType.text = itemConfig.ItemTypeName; m_ItemName.text = itemConfig.ItemName; m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor); ItemCellModel cellModel = new ItemCellModel(itemTipsModel.curAttrData.itemId, true, itemTipsModel.curAttrData.count, itemTipsModel.curAttrData.isBind); m_Item.Init(cellModel); m_Condition0.gameObject.SetActive(false); m_ConditionValue0.gameObject.SetActive(false); m_Condition1.gameObject.SetActive(false); m_ConditionValue1.gameObject.SetActive(false); if (config != null && config.OpenMoney > 0) { m_Condition0.gameObject.SetActive(true); ulong haveMoney = UIHelper.GetMoneyCnt(1); if (haveMoney >= (ulong)config.OpenMoney) { m_Condition0.text = Language.Get("OpenBoxCostMoney", UIHelper.GetTextColorByItemColor(TextColType.Green, config.OpenMoney.ToString())); } else { m_Condition0.text = Language.Get("OpenBoxCostMoney", UIHelper.GetTextColorByItemColor(TextColType.Red, config.OpenMoney.ToString())); } } else { DisplayUseLimit(itemConfig); } m_Description.text = itemTipsModel.curAttrData.GetAllInfoDes(); int useCnt = BoxModel.GetUseCntByID(itemTipsModel.curAttrData.itemId); m_UseTimes.gameObject.SetActive(itemConfig.MaxSkillCnt > 0); if (itemConfig.MaxSkillCnt > 0) { m_UseTimes.text = Language.Get("BoxUseCntTip", StringUtility.Contact(useCnt, "/", itemTipsModel.curAttrData.itemConfig.MaxSkillCnt)); } } void DisplayUseLimit(ItemConfig itemConfig) { int[] uselimits = itemConfig.UseCondiType; if (uselimits == null) { return; } for (int i = 0; i < uselimits.Length; i++) { switch (uselimits[i]) { case 0: if (itemConfig.UseLV > 1) { m_Condition0.gameObject.SetActive(true); m_ConditionValue0.gameObject.SetActive(true); } m_Condition0.text = Language.Get("KnapS110"); m_ConditionValue0.text = itemConfig.UseLV.ToString(); if (PlayerDatas.Instance.baseData.LV >= itemConfig.UseLV) { m_Condition0.color = conditionColor; m_ConditionValue0.color = conditionColor; } else { m_Condition0.color = conditionRedColor; m_ConditionValue0.color = conditionRedColor; } break; case 1: m_Condition1.gameObject.SetActive(true); m_ConditionValue1.gameObject.SetActive(true); m_Condition1.text = Language.Get("RealmLimit1"); RealmConfig realmConfig = Config.Instance.Get(itemConfig.RealmLimit); if (itemConfig.RealmLimit <= 0) { m_ConditionValue1.SetSprite("NoRealm"); } else { if (realmConfig != null) { m_ConditionValue1.SetSprite(realmConfig.Img); } } if (PlayerDatas.Instance.baseData.realmLevel >= itemConfig.RealmLimit) { m_Condition1.color = conditionColor; } else { m_Condition1.color = conditionRedColor; } break; } } } private void Close() { KnapSackEventMgr.Instance.HideItemPopWin(); } } }