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<VirtualPackModel>(); } }
|
|
public void Display(int line, List<int> 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<RuneModel>(); } }
|
VirtualPackModel virtualPackModel { get { return ModelCenter.Instance.GetModel<VirtualPackModel>(); } }
|
|
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);
|
}
|
}
|
}
|
}
|
|