// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-10-09 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using TMPro; using UnityEngine; using UnityEngine.UI; namespace G.UI { /// /// /// public class PropWidget : KUIWidget { #region Auto Generate #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] TextMeshProUGUI _tmpName; [KUIFlag] TextMeshProUGUI _tmpCount; [KUIFlag] Image _imgIcon; [KUIFlag] KUIImage _imgQuality; [KUIFlag] KUIImage _imgLevel; [KUIFlag] TextMeshProUGUI _tmpLevel; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null #endregion #region Field private ItemProp _showPropItem; private int _showPropCount; #endregion #region Method /// /// /// /// private void ShowName(string name) { if (_tmpName) _tmpName.text = name; } /// /// /// /// private void ShowCount(int count) { if (_tmpCount) _tmpCount.text = "x" + count.ToString(); } /// /// /// /// private void ShowQuality(int quality) { if (_imgQuality) _imgQuality.ShowSprite(quality); } /// /// /// /// /// void ShowGradeInfo(int grade, int quality) { if (_imgLevel) { _imgLevel.gameObject.SetActive(true); _imgLevel.ShowSprite(quality - 1); _tmpLevel.gameObject.SetActive(true); _tmpLevel.text = grade.ToString(); } } /// /// /// void HideGradeInfo() { if (_imgLevel) { _imgLevel.gameObject.SetActive(false); _tmpLevel.gameObject.SetActive(false); } } public void SetQualityCount(string name, int quality, int count) { ShowName(name); ShowQuality(quality); ShowCount(count); _imgIcon.overrideSprite = null; } public void SetCount(int id, int count) { var prop = ItemProxy.Instance.GetStaticItem(id); if (prop != null) { IconProxy.Instance.SetSprite(_imgIcon, prop.icon); ShowQuality(prop.quality); } _tmpCount.text = count.ToString(); } public void SetItem(int id) { SetItem(ItemProxy.Instance.GetStaticItem(id)); } public void SetItem(ItemProp prop, int count = 1) { if (prop != null) { IconProxy.Instance.SetSprite(_imgIcon, prop.icon); ShowName(prop.name); ShowCount(count); ShowQuality(prop.quality); } } public void SetItem(int id, int count) { var prop = ItemProxy.Instance.GetStaticItem(id); if (prop != null) { IconProxy.Instance.SetSprite(_imgIcon, prop.icon); ShowName(prop.name); ShowQuality(prop.quality); if (prop.isGem) { var gem = ItemProxy.Instance.GetStaticItem(id); if (gem != null) { ShowGradeInfo(gem.grade, prop.quality); } } else { HideGradeInfo(); } } _tmpCount.text = $"x{count}"; _showPropItem = prop; _showPropCount = count; } public void SetItem(Item.ItemInfo info) { SetItem(info.id, info.count); } public void SetProp(EntityItem prop) { SetItem(prop.propItem, prop.count); } public override void Refresh() { if (data is EntityItem prop) { _showPropItem = prop.propItem; _showPropCount = prop.count; SetProp(prop); if (prop is EntityItemGem gem) { ShowGradeInfo(gem.level, prop.quality); } else { HideGradeInfo(); } } else if (this.data is ItemProp propItem) { _showPropItem = propItem; _showPropCount = 1; } } private void OnFrameClick() { if (_showPropItem != null && _showPropItem.id != Item.Id.kCoin) { KUIWindow.OpenWindow(_showPropItem); } } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); var button = GetComponent