using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace Snxxz.UI
|
{
|
public class SelectBoxItemCell : MonoBehaviour
|
{
|
|
[SerializeField] GameObject chooseImage;
|
[SerializeField] Text nameText;
|
[SerializeField] Text haveCntText;
|
[SerializeField] public Button chooseCellBtn;
|
[SerializeField] CommonItemBaisc itemBaisc;
|
|
PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
BoxGetItemModel boxModel;
|
BoxGetItemModel BoxModel
|
{
|
get { return boxModel ?? (boxModel = ModelCenter.Instance.GetModel<BoxGetItemModel>()); }
|
}
|
|
|
public int ItemId = 0;
|
private void Awake()
|
{
|
ChooseItemWin.RefreshChooseCellAct += RefreshChooseImage;
|
|
}
|
|
public void InitModel(int id)
|
{
|
ItemConfig itemConfig = ItemConfig.Get(id);
|
this.ItemId = id;
|
nameText.text = itemConfig.ItemName;
|
ItemCellModel cellModel = new ItemCellModel(id, true, (ulong)BoxModel.selectDict[id],0,"",PackType.Deleted,true);
|
itemBaisc.Init(cellModel);
|
if (itemConfig.Effect1 == 220)
|
{
|
id = itemConfig.EffectValueA1;
|
}
|
var packType = GeneralDefine.GetPackTypeByItemType(itemConfig.Type);
|
int haveCnt = 0;
|
switch(packType)
|
{
|
case PackType.RunePack:
|
haveCnt = ModelCenter.Instance.GetModel<RuneModel>().GetRuneCountById(id);
|
break;
|
case PackType.GatherSoul:
|
haveCnt = ModelCenter.Instance.GetModel<VirtualPackModel>().GetItemCountById(packType,id);
|
break;
|
default:
|
haveCnt = playerPack.GetItemCountByID(packType, id);
|
break;
|
}
|
haveCntText.text = haveCnt.ToString();
|
SetIsChoose(false);
|
}
|
|
private void RefreshChooseImage(int id)
|
{
|
if (id == ItemId)
|
{
|
SetIsChoose(true);
|
}
|
else
|
{
|
SetIsChoose(false);
|
}
|
}
|
|
private void SetIsChoose(bool isChoose)
|
{
|
if (isChoose)
|
{
|
chooseImage.SetActive(true);
|
}
|
else
|
{
|
chooseImage.SetActive(false);
|
}
|
}
|
|
private void OnDestroy()
|
{
|
ChooseItemWin.RefreshChooseCellAct -= RefreshChooseImage;
|
|
}
|
}
|
}
|