//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, April 19, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.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)) { AlchemyDrugUseLimit.OverLimitItem item; var canUpgrade = drugUseLimit.CanUpgradeByItem(out item); m_ContainerRealm.SetActive(!canUpgrade); m_ContainerItem.SetActive(canUpgrade); if (canUpgrade) { DisplayItem(item); } else { DisplayRealm(); } } } void DisplayItem(AlchemyDrugUseLimit.OverLimitItem item) { AlchemyDrugUseLimit drugUseLimit; if (model.TryGetAlchemyUseLimit(drugId, out drugUseLimit)) { var itemConfig = ItemConfig.Get(item.itemId); 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", item.count, itemConfig.ItemName, item.times); m_Item.SetItem(item.itemId, item.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)) { AlchemyDrugUseLimit.OverLimitItem item; drugUseLimit.CanUpgradeByItem(out item); var count = ModelCenter.Instance.GetModel().GetItemCountByID(PackType.Item, item.itemId); if (count < item.count) { ItemTipUtility.Show(item.itemId); return; } } var pak = new CA317_tagCMAddFruitUseLimit(); pak.ItemID = (uint)drugId; GameNetSystem.Instance.SendInfo(pak); CloseImmediately(); } } }