using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
public class XBShopCell : MonoBehaviour
|
{
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text nameText;
|
[SerializeField] Image moneyIcon;
|
[SerializeField] Text moneyCntText;
|
[SerializeField] Button buyBtn;
|
[SerializeField] Button shopCellBtn;
|
StoreModel _storeModel;
|
StoreModel m_storeModel
|
{
|
get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel<StoreModel>()); }
|
}
|
|
public void SetModel(StoreConfig storeConfig)
|
{
|
ItemConfig itemConfig = ItemConfig.Get(m_storeModel.GetReplaceId(storeConfig.ID,storeConfig.ItemID));
|
if (itemConfig == null) return;
|
|
ItemCellModel cellModel = new ItemCellModel(itemConfig.ID, false, 0);
|
itemCell.Init(cellModel);
|
itemCell.button.SetListener(() =>
|
{
|
//ItemTipUtility.Show(itemConfig.ID);
|
m_storeModel.OnClickShopCell(storeConfig);
|
});
|
int canBuyCnt = 0;
|
int addBuyCnt = 0;
|
bool isLimitBuy = BuyItemController.Instance.CheckIsLimitBuyCnt(storeConfig, out canBuyCnt, out addBuyCnt);
|
if (canBuyCnt > 0)
|
{
|
itemCell.countText.SetActive(true);
|
BuyShopItemLimit shopItemLimit = m_storeModel.GetBuyShopLimit((uint)storeConfig.ID);
|
int remainNum = canBuyCnt;
|
if (shopItemLimit != null)
|
{
|
remainNum = canBuyCnt - shopItemLimit.BuyCnt;
|
}
|
|
if (remainNum > 0)
|
{
|
itemCell.countText.text = StringUtility.Contact(remainNum.ToString(),
|
"/" + canBuyCnt.ToString());
|
}
|
else
|
{
|
itemCell.countText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()),
|
"/" + canBuyCnt.ToString());
|
}
|
}
|
else
|
{
|
itemCell.countText.SetActive(false);
|
}
|
nameText.text = itemConfig.ItemName;
|
nameText.color = UIHelper.GetUIColor(itemConfig.ItemColor,true);
|
moneyIcon.SetIconWithMoneyType(storeConfig.MoneyType);
|
ulong shopCost = (ulong)(storeConfig.MoneyNumber);
|
moneyCntText.text = UIHelper.ReplaceLargeNum(shopCost);
|
shopCellBtn.RemoveAllListeners();
|
shopCellBtn.AddListener(()=>
|
{
|
ItemTipUtility.Show(itemConfig.ID);
|
m_storeModel.OnClickShopCell(storeConfig);
|
});
|
buyBtn.RemoveAllListeners();
|
buyBtn.AddListener(()=> { ClickBuyBtn(storeConfig);});
|
}
|
|
private void ClickBuyBtn(StoreConfig storeConfig)
|
{
|
m_storeModel.OnClickShopCell(storeConfig);
|
}
|
}
|
}
|