少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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);
        }
    }
}