using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace Snxxz.UI
|
{
|
public class TrialExchangeBehaviour : MonoBehaviour
|
{
|
[SerializeField] RectTransform m_ContainerSpecial;
|
[SerializeField] RectTransform m_ContainerNormal;
|
[SerializeField] Image m_Bottom;
|
[SerializeField] ItemCell m_Item;
|
[SerializeField] Text m_Description;
|
[SerializeField] Text m_SpecialDescription;
|
[SerializeField] Text m_ChestDescription;
|
[SerializeField] ItemBehaviour m_Token;
|
[SerializeField] LongPressButton m_Exchange;
|
[SerializeField] Image m_Redpoint;
|
[SerializeField] Image m_Up;
|
[SerializeField] Image m_Down;
|
TrialDungeonModel model { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
int trialExchangeId = 0;
|
private void Awake()
|
{
|
m_Exchange.onClick.AddListener(Exchange);
|
m_Exchange.onPress.AddListener(LongPress);
|
}
|
|
private void Exchange()
|
{
|
if (trialExchangeId != 0)
|
{
|
int error = 0;
|
var config = TrialExchangeConfig.Get(trialExchangeId);
|
if (config != null)
|
{
|
var itemConfig = ItemConfig.Get(model.GetExchangeItemByJob(config));
|
ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount);
|
ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData, false);
|
ModelCenter.Instance.GetModel<ItemTipsModel>().curAttrData.SetTipsFuncBtn(ItemOperateType.exchange,
|
(ItemOperateType btnType, string value) =>
|
{
|
if (btnType == ItemOperateType.exchange)
|
{
|
if (!model.TrialSendExchange(trialExchangeId, out error))
|
{
|
if (error == 1)
|
{
|
ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(config.tokenId);
|
}
|
}
|
}
|
});
|
ModelCenter.Instance.GetModel<ItemTipsModel>().ShowTip();
|
}
|
}
|
}
|
|
private void LongPress()
|
{
|
if (trialExchangeId != 0)
|
{
|
var config = TrialExchangeConfig.Get(trialExchangeId);
|
if (config != null)
|
{
|
var itemConfig = ItemConfig.Get(model.GetExchangeItemByJob(config));
|
if (itemConfig.EquipPlace == 0)
|
{
|
return;
|
}
|
ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount, -1, true);
|
ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
|
}
|
}
|
}
|
|
public void Display(int id, bool equipBetter = true, bool first = false)
|
{
|
m_Bottom.SetSprite(first ? "XT_VIP_63" : "XT_VIP_63");
|
m_ContainerSpecial.gameObject.SetActive(first);
|
m_ContainerNormal.gameObject.SetActive(!first);
|
trialExchangeId = id;
|
var config = TrialExchangeConfig.Get(id);
|
if (config == null)
|
{
|
trialExchangeId = 0;
|
return;
|
}
|
m_Item.button.RemoveAllListeners();
|
m_Item.gameObject.SetActive(true);
|
ItemCellModel cellModel = new ItemCellModel(model.GetExchangeItemByJob(config), true, (ulong)config.exchangeItemCount);
|
m_Item.Init(cellModel);
|
m_Item.button.AddListener(() =>
|
{
|
ItemAttrData itemAttrData = new ItemAttrData(model.GetExchangeItemByJob(config), true, (ulong)config.exchangeItemCount, -1, true);
|
ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
|
});
|
m_Description.text = config.description;
|
if (m_SpecialDescription != null)
|
{
|
m_SpecialDescription.text = config.description;
|
}
|
if (m_ChestDescription != null)
|
{
|
m_ChestDescription.text = config.chestDesc;
|
}
|
m_Token.SetItem(config.tokenId, config.tokenCount);
|
var count = model.GetTrialTokenCount(config.tokenId);
|
m_Token.count.text = StringUtility.Contact(count >= config.tokenCount ? "<color=#109d06>" : string.Empty, count,
|
count >= config.tokenCount ? "</color>" : string.Empty, "/", config.tokenCount);
|
var equipCompare = model.EquipCompare(model.GetExchangeItemByJob(config));
|
m_Up.gameObject.SetActive(equipCompare == 1);
|
m_Down.gameObject.SetActive(equipCompare == -1);
|
|
var exchangeItemConfig = ItemConfig.Get(model.GetExchangeItemByJob(config));
|
m_Redpoint.gameObject.SetActive(count >= config.tokenCount && (equipBetter || exchangeItemConfig.EquipPlace == 0)
|
&& PlayerDatas.Instance.baseData.LV < model.trialExchangeRemindLevel);
|
}
|
}
|
}
|