using vnxbqy.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; namespace vnxbqy.UI { public class RunePackCell : CellView { [SerializeField] RunePackItem[] m_RunePackItems; VirtualPackModel virtualPackModel { get { return ModelCenter.Instance.GetModel(); } } public void Display(int line, List itemIndexs) { for (int i = 0; i < m_RunePackItems.Length; i++) { int index = line * m_RunePackItems.Length + i; m_RunePackItems[i].SetActive(index < itemIndexs.Count); if (index < itemIndexs.Count) { m_RunePackItems[i].Display(itemIndexs[index]); } } } [Serializable] public class RunePackItem { [SerializeField] Transform m_Container; [SerializeField] Image m_Icon; [SerializeField] Text m_RuneName; [SerializeField] Text m_Property; [SerializeField] Button m_Select; [SerializeField] Transform m_SamePropertySign; [SerializeField] Transform m_RedpointSign; RuneModel model { get { return ModelCenter.Instance.GetModel(); } } VirtualPackModel virtualPackModel { get { return ModelCenter.Instance.GetModel(); } } public void SetActive(bool acitve) { m_Container.SetActive(acitve); } public void Display(int index) { RuneItem item; if (virtualPackModel.TryGetItem(PackType.RunePack, index, out item)) { var config = ItemConfig.Get(item.id); m_RuneName.text = StringUtility.Contact(config.ItemName, " lv.", item.level); m_RuneName.color = UIHelper.GetUIColor(config.ItemColor, true); m_Icon.SetSprite(config.IconKey); m_Property.text = StringUtility.Contact(model.GetRunePropertyDescription(item.id, item.level)); bool _same = model.GetMaxSamePropertyHoleCount(item.id, RunePackWin.selectHole) >= model.samePropertyHoleLimit; m_SamePropertySign.SetActive(_same); m_RedpointSign.SetActive(!_same && model.IsBetterRuneWithHole(item.id, RunePackWin.selectHole)); m_Select.SetListener(() => { OnSelectItem(item); }); } } private void OnSelectItem(RuneItem item) { model.SelectRunePackItem(item, RunePackWin.selectHole); } } } }