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