//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, April 19, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AlchemyDrugLimitWin : Window { [SerializeField] Transform m_ContainerRealm; [SerializeField] Transform m_ContainerItem; [SerializeField] Text m_Now; [SerializeField] Text m_Next; [SerializeField] ItemBehaviour m_Item; [SerializeField] Button m_Use; [SerializeField] Button m_Goto; [SerializeField] Button m_Close; public static int drugId = 0; AlchemyModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Use.AddListener(OnUse); m_Goto.AddListener(Goto); m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { Dispaly(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion void Dispaly() { AlchemyDrugUseLimit drugUseLimit; if (model.TryGetAlchemyUseLimit(drugId, out drugUseLimit)) { m_ContainerRealm.gameObject.SetActive(drugUseLimit.addItem.id == 0); m_ContainerItem.gameObject.SetActive(drugUseLimit.addItem.id != 0); if (drugUseLimit.addItem.id != 0) { DisplayItem(); } else { DisplayRealm(); } } } void DisplayItem() { AlchemyDrugUseLimit drugUseLimit; if (model.TryGetAlchemyUseLimit(drugId, out drugUseLimit)) { var itemConfig = ItemConfig.Get(drugUseLimit.addItem.id); var drugConfig = ItemConfig.Get(drugId); m_Now.text = Language.Get("AlchemyAddLimit_1", drugUseLimit.GetUseLimit(), drugConfig.ItemName, itemConfig.ItemName); m_Next.text = Language.Get("AlchemyAddLimit_2", drugUseLimit.addItem.count, itemConfig.ItemName, drugUseLimit.addLimitPerTimes); m_Item.SetItem(drugUseLimit.addItem.id, drugUseLimit.addItem.count); } } void DisplayRealm() { AlchemyDrugUseLimit drugUseLimit; if (model.TryGetAlchemyUseLimit(drugId, out drugUseLimit)) { var drugConfig = ItemConfig.Get(drugId); m_Now.text = Language.Get("AlchemyAddLimit_3", drugUseLimit.GetUseLimit(), drugConfig.ItemName); var realmLevel = drugUseLimit.GetNextUpgradeRealm(); var realmConfig = RealmConfig.Get(realmLevel); var upgrade = drugUseLimit.GetRealmLimit(realmLevel) - drugUseLimit.GetRealmLimit(PlayerDatas.Instance.baseData.realmLevel); m_Next.text = Language.Get("AlchemyAddLimit_4", realmConfig.Img, upgrade); } } private void Goto() { CloseImmediately(); WindowJumpMgr.Instance.ClearJumpData(); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RealmFunc1); } private void OnUse() { AlchemyDrugUseLimit drugUseLimit; if (model.TryGetAlchemyUseLimit(drugId, out drugUseLimit)) { var count = ModelCenter.Instance.GetModel().GetItemCountByID(PackType.Item, drugUseLimit.addItem.id); if (count < drugUseLimit.addItem.count) { ItemTipUtility.Show(drugUseLimit.addItem.id); return; } } var pak = new CA317_tagCMAddFruitUseLimit(); pak.ItemID = (uint)drugId; GameNetSystem.Instance.SendInfo(pak); CloseImmediately(); } } }