少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-25 cdb0198fb8e85811ec1e06b15f36df9cbe0fdb9a
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
using Snxxz.UI;
using System.Collections;
using System.Collections.Generic;
 
using UnityEngine;
using UnityEngine.UI;
using System;
 
namespace EnhancedUI.EnhancedScroller
{
    public class MarketDealItemCell : CellView
    {
        [SerializeField] Image m_ItemBG;
        [SerializeField] Image m_ItemIcon;
        [SerializeField] Image m_UpImg;
        [SerializeField] Text m_ItemCount;
        [SerializeField] Text m_ItemName;
        [SerializeField] Text m_ItemGrade;
        [SerializeField] Text m_ItemUintPrice;
        [SerializeField] Text m_ItemTotalPrice;
        [SerializeField] Button m_ItemBtn;
        [SerializeField] List<GameObject> m_Stars;
 
        MarketModel m_Model;
        MarketModel model
        {
            get
            {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<MarketModel>());
            }
        }
 
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel
        {
            get
            {
                return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
            }
        }
 
        PackModel _playerPack;
        PackModel playerPack
        {
            get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
        }
 
        private int m_Index = 0;
 
        public void Display(int _index)
        {
            m_Index = _index;
            var _data = model.marketDealItems[_index];
            var _itemCfg = ItemConfig.Get((int)_data.ItemTypeID);
            m_ItemGrade.gameObject.SetActive(_itemCfg.Type >= 101 && _itemCfg.Type < 110);
            m_ItemGrade.text = StringUtility.Contact(Language.Get("EquipWin_EquipPointText_1"), _data.EquipGS);
            var _uintPrice = (int)_data.PriceCount / _data.Count;
            m_ItemUintPrice.text = _uintPrice < 1 ? "<1" : _uintPrice.ToString();
            m_ItemTotalPrice.text = _data.PriceCount.ToString();
            m_ItemCount.gameObject.SetActive(_data.Count > 1);
            m_ItemCount.text = _data.Count.ToString();
            m_ItemIcon.SetSprite(_itemCfg.IconKey);
            int fightUp = ItemLogicUtility.Instance.IsFightUp((int)_data.ItemTypeID, (int)_data.EquipGS);
            m_UpImg.gameObject.SetActive(fightUp == 1 || fightUp == -1);
            if (fightUp == 1)
            {
                m_UpImg.SetSprite("EquipUpIcon");
            }
            else if (fightUp == -1)
            {
                m_UpImg.SetSprite("EquipDownIcon");
            }
            var _itemColor = _itemCfg.ItemColor;
            if (_itemCfg.Type == 111)
            {
                _itemColor = UIHelper.GetItemColor(_itemCfg.ID, _data.UserData);
            }
            m_ItemBG.SetItemBackGround(_itemColor);
            bool _bright = (m_ItemName is RichText) ? (m_ItemName as RichText).colorType == RichText.ColorType.Bright : true;
            m_ItemName.color = UIHelper.GetUIColor(_itemColor, _bright);
            m_ItemName.text = StringUtility.Contact(_itemCfg.ItemName, _data.NeadPwd == 1 ? Language.Get("DealItemNeedPwd") : string.Empty);
            for (int i = 0; i < m_Stars.Count; i++)
            {
                m_Stars[i].SetActive(i < _itemCfg.StarLevel);
            }
            m_ItemBtn.onClick.RemoveAllListeners();
            m_ItemBtn.onClick.AddListener(() =>
            {
                OnItemClick(_data);
            });
        }
 
        private void OnItemClick(MarketItemData data)
        {
            ItemAttrData attrData = new ItemAttrData((int)data.ItemTypeID, false, data.Count, -1, 0, true, PackType.Deleted, "", data.UserData);
            if (data.PlayerID != PlayerDatas.Instance.PlayerId)
            {
                attrData.SetTipsFuncBtn(ItemOperateType.buy, ItemWinModelBtnClick);
            }
            itemTipsModel.SetItemTipsModel(attrData);
        }
 
        private void ItemWinModelBtnClick(ItemOperateType type, string arg2)
        {
            switch (type)
            {
                case ItemOperateType.buy:
                    PwdKeyboardWin.OnPwdWinClose -= OnPwdWinClose;
                    var _data = model.marketDealItems[m_Index];
                    if (UIHelper.GetMoneyCnt(_data.PriceType) < _data.PriceCount)
                    {
                        SysNotifyMgr.Instance.ShowTip("NoEnoughMoney1");
                        return;
                    }
                    int gridCnt = playerPack.GetEmptyGridCount(PackType.Item);
                    if (gridCnt < 1)
                    {
                        SysNotifyMgr.Instance.ShowTip("BourseBagfull");
                        return;
                    }
                    if (_data.NeadPwd == 1)
                    {
                        PwdKeyboardWin.OnPwdWinClose += OnPwdWinClose;
                        PwdKeyboard.Instance.pwd = string.Empty;
                        WindowCenter.Instance.Open<PwdKeyboardWin>();
                    }
                    else
                    {
                        model.SendBuyMarketItem(_data.ItemGUID, string.Empty);
                    }
                    break;
            }
        }
 
        private void OnPwdWinClose(bool okClose)
        {
            PwdKeyboardWin.OnPwdWinClose -= OnPwdWinClose;
            if (m_Index >= model.marketDealItems.Count)
            {
                return;
            }
            var _data = model.marketDealItems[m_Index];
            if (okClose)
            {
                model.SendBuyMarketItem(_data.ItemGUID, PwdKeyboard.Instance.pwd);
            }
        }
    }
}