using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class AlchemyStudyBehaviour : MonoBehaviour
|
{
|
[SerializeField] ItemBehaviour m_Item;
|
[SerializeField] Text m_StoveCondition;
|
[SerializeField] Text m_ReikiPointCondition;
|
[SerializeField] Button m_Func;
|
[SerializeField] Text m_FuncLabel;
|
|
AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
ReikiRootModel reikiRootModel { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
|
|
private void Awake()
|
{
|
m_Func.SetListener(Learn);
|
}
|
|
public void Display()
|
{
|
DisplayItem();
|
DisplayStoveCondition();
|
DisplayPropertyCondition();
|
DisplayFuncState();
|
}
|
|
void DisplayItem()
|
{
|
var config = AlchemyConfig.Get(model.selectAlchemy);
|
m_Item.SetItem(config.LearnNeedItemID, 1);
|
}
|
|
void DisplayStoveCondition()
|
{
|
var config = AlchemyConfig.Get(model.selectAlchemy);
|
m_StoveCondition.gameObject.SetActive(config.LearnNeedAlchemLV > 0);
|
if (config.LearnNeedAlchemLV > 0)
|
{
|
var satisfy = model.stoveLevel >= config.LearnNeedAlchemLV;
|
m_StoveCondition.text = Language.Get("AlchemyCondition_1", config.LearnNeedAlchemLV);
|
m_StoveCondition.color = UIHelper.GetUIColor(satisfy ? TextColType.Green : TextColType.Red, true);
|
}
|
}
|
|
void DisplayPropertyCondition()
|
{
|
var config = AlchemyConfig.Get(model.selectAlchemy);
|
m_ReikiPointCondition.gameObject.SetActive(config.LearnNeedLuck > 0);
|
if (config.LearnNeedLuck > 0)
|
{
|
var satisfy = reikiRootModel.GetReikiRootTotalPointWithFree() >= config.LearnNeedLuck;
|
m_ReikiPointCondition.text = Language.Get("AlchemyCondition_2", config.LearnNeedLuck);
|
m_ReikiPointCondition.color = UIHelper.GetUIColor(satisfy ? TextColType.Green : TextColType.Red, true);
|
}
|
}
|
|
void DisplayFuncState()
|
{
|
var error = 0;
|
var satisfyLearn = model.TryLearn(model.selectAlchemy, out error);
|
m_Func.SetColorful(m_FuncLabel, satisfyLearn);
|
}
|
|
private void Learn()
|
{
|
var error = 0;
|
if (model.TryLearn(model.selectAlchemy, out error))
|
{
|
var pak = new CA576_tagCMPlayerRefine();
|
pak.AlchemyID = (uint)model.selectAlchemy;
|
pak.DoType = 0;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
else
|
{
|
DisplayErrorTip(error);
|
}
|
}
|
|
void DisplayErrorTip(int error)
|
{
|
switch (error)
|
{
|
case 1:
|
var config = AlchemyConfig.Get(model.selectAlchemy);
|
ItemTipUtility.Show(config.LearnNeedItemID);
|
//SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_1");
|
break;
|
case 2:
|
SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_2");
|
break;
|
case 3:
|
SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_3");
|
break;
|
}
|
}
|
|
public void Dispose()
|
{
|
}
|
}
|
}
|