using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; 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(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel(); } } 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 = Config.Instance.Get(trialExchangeId); if (config != null) { var itemConfig = Config.Instance.Get(model.GetExchangeItemByJob(config)); ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount, -1, config.exchangeItemIsBind); ModelCenter.Instance.GetModel().SetItemTipsModel(itemAttrData, false); ModelCenter.Instance.GetModel().curAttrData.SetTipsFuncBtn(ItemWinBtnType.exchange, (ItemWinBtnType btnType, string value) => { if (btnType == ItemWinBtnType.exchange) { if (!model.TrialSendExchange(trialExchangeId, out error)) { if (error == 1) { ModelCenter.Instance.GetModel().SetChinItemModel(config.tokenId); } } } }); ModelCenter.Instance.GetModel().ShowUICtrl(); } } } private void LongPress() { if (trialExchangeId != 0) { var config = Config.Instance.Get(trialExchangeId); if (config != null) { var itemConfig = Config.Instance.Get(model.GetExchangeItemByJob(config)); if (itemConfig.EquipPlace == 0) { return; } ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount, -1, config.exchangeItemIsBind, true); ModelCenter.Instance.GetModel().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 = Config.Instance.Get(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; 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 ? "" : string.Empty, count, count >= config.tokenCount ? "" : 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 = Config.Instance.Get(model.GetExchangeItemByJob(config)); m_Redpoint.gameObject.SetActive(count >= config.tokenCount && (equipBetter || exchangeItemConfig.EquipPlace == 0)); } } }