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()); } } 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); } } }