using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class TrialExchangeBehaviour : MonoBehaviour { [SerializeField] Image m_Bottom; [SerializeField] ItemCell m_Item; [SerializeField] Text m_Description; [SerializeField] ItemBehaviour m_Token; [SerializeField] Button m_Exchange; [SerializeField] Image m_Redpoint; [SerializeField] Image m_Up; [SerializeField] Image m_Down; TrialDungeonModel model { get { return ModelCenter.Instance.GetModel(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel(); } } int trialExchangeId = 0; private void Awake() { m_Exchange.AddListener(Exchange); } private void Exchange() { if (trialExchangeId != 0) { int error = 0; if (!model.TrialSendExchange(trialExchangeId, out error)) { if (error == 1) { var config = ConfigManager.Instance.GetTemplate(trialExchangeId); if (config != null) { ModelCenter.Instance.GetModel().SetChinItemModel(config.tokenId); } } } } } public void Display(int id, bool equipBetter = true, bool first = false) { m_Bottom.SetSprite(first ? "SpecialExchangeBottom" : "Title_PopupWindow"); trialExchangeId = id; var config = ConfigManager.Instance.GetTemplate(id); if (config == null) { trialExchangeId = 0; return; } m_Item.cellBtn.RemoveAllListeners(); m_Item.gameObject.SetActive(true); ItemCellModel cellModel = new ItemCellModel(model.GetExchangeItemByJob(config), true, (ulong)config.exchangeItemCount, config.exchangeItemIsBind); m_Item.Init(cellModel); m_Item.cellBtn.AddListener(() => { ItemAttrData itemAttrData = new ItemAttrData(model.GetExchangeItemByJob(config), true, (ulong)config.exchangeItemCount, -1, config.exchangeItemIsBind, true); ModelCenter.Instance.GetModel().SetItemTipsModel(itemAttrData); }); m_Description.text = config.description; m_Token.SetItem(config.tokenId, config.tokenCount); var count = model.GetTrialTokenCount(config.tokenId); m_Token.count.color = UIHelper.GetUIColor(count >= config.tokenCount ? TextColType.Green : TextColType.NavyBrown, true); var equipCompare = model.EquipCompare(model.GetExchangeItemByJob(config)); m_Up.gameObject.SetActive(equipCompare == 1); m_Down.gameObject.SetActive(equipCompare == -1); var exchangeItemConfig = ConfigManager.Instance.GetTemplate(model.GetExchangeItemByJob(config)); m_Redpoint.gameObject.SetActive(count >= config.tokenCount && (equipBetter || exchangeItemConfig.EquipPlace == 0)); } } }