//--------------------------------------------------------
|
// [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<AlchemyModel>(); } }
|
|
#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.gameObject.SetActive(!canUpgrade);
|
m_ContainerItem.gameObject.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<PackModel>().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();
|
}
|
|
}
|
|
}
|
|
|
|
|