using Snxxz.UI;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
using TableConfig;
|
|
namespace EnhancedUI.EnhancedScroller
|
{
|
public class RunePackCell : ScrollerUI
|
{
|
[SerializeField] List<Image> m_RuneIcons;
|
[SerializeField] List<Text> m_RuneNameLvTxts;
|
[SerializeField] List<Text> m_RuneAttrTxts;
|
[SerializeField] List<Button> m_RuneBtns;
|
[SerializeField] List<Text> m_EquipedImgs;
|
[SerializeField] List<Image> m_Redpoints;
|
RuneModel m_Model;
|
RuneModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RuneModel>());
|
}
|
}
|
|
RuneComposeModel m_ComposeModel;
|
RuneComposeModel runeComposeModel
|
{
|
get
|
{
|
return m_ComposeModel ?? (m_ComposeModel = ModelCenter.Instance.GetModel<RuneComposeModel>());
|
}
|
}
|
|
public override void Refresh(CellView cell)
|
{
|
if (model.runePackList == null)
|
{
|
return;
|
}
|
for (int i = 0; i < 3; i++)
|
{
|
int index = cell.index * 3 + i;
|
Transform child = cell.transform.GetChild(i);
|
if (index >= model.runePackList.Count)
|
{
|
child.gameObject.SetActive(false);
|
continue;
|
}
|
else
|
{
|
child.gameObject.SetActive(true);
|
}
|
|
RuneData data = model.runePackList[index];
|
m_RuneBtns[i].onClick.RemoveAllListeners();
|
m_RuneBtns[i].onClick.AddListener(() =>
|
{
|
OnClickRunePackItem(data);
|
});
|
|
ItemConfig item = Config.Instance.Get<ItemConfig>(data.id);
|
m_RuneNameLvTxts[i].text =StringUtility.Contact(item.ItemName," lv.",data.lv);
|
m_RuneNameLvTxts[i].color = UIHelper.GetUIColor(item.ItemColor, true);
|
m_RuneIcons[i].SetSprite(item.IconKey);
|
m_RuneAttrTxts[i].text = StringUtility.Contact(model.GetRuneAttrStr(data.id, data.lv));
|
bool _same = model.IsSameInHoleRune(data.id, model.sltRuneHole);
|
m_EquipedImgs[i].gameObject.SetActive(_same);
|
m_Redpoints[i].gameObject.SetActive(model.IsBetterRune(data, model.sltRuneHole) && !_same);
|
}
|
}
|
|
private void OnClickRunePackItem(RuneData _rune)
|
{
|
if (model.sltRuneHole == -1)
|
{
|
MessageWin.Inst.ShowFixedTip(Language.Get("L1061"));
|
return;
|
}
|
if (model.IsSameInHoleRune(_rune.id, model.sltRuneHole))
|
{
|
MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
|
return;
|
}
|
var sltHoleRune = model.GetHoleRune(model.sltRuneHole);
|
if (runeComposeModel.m_RuneBothPropertys.Contains(_rune.id)
|
&& model.GetDoublePropLimitCount() <= model.GetCurrentDoublePropCount()
|
&& (sltHoleRune == null || !runeComposeModel.m_RuneBothPropertys.Contains(sltHoleRune.id)))
|
{
|
var _count = model.GetDoublePropLimitCount();
|
SysNotifyMgr.Instance.ShowTip("RuneGridUnEnough", _count);
|
return;
|
}
|
C073D_tagCPackItemExchange runeInlayPack = new C073D_tagCPackItemExchange();
|
runeInlayPack.SrcBackpack = (byte)_rune.packtype;
|
runeInlayPack.SrcIndex = (ushort)_rune.index;
|
runeInlayPack.DesBackPack = (int)PackType.rptInterimPack;
|
runeInlayPack.DestIndex = (ushort)model.sltRuneHole;
|
GameNetSystem.Instance.SendInfo(runeInlayPack);
|
WindowCenter.Instance.CloseImmediately<RunePackWin>();
|
}
|
}
|
}
|
|