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_PropertyCondition; [SerializeField] Button m_Func; [SerializeField] Text m_FuncLabel; AlchemyModel model { get { return ModelCenter.Instance.GetModel(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel(); } } 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_PropertyCondition.gameObject.SetActive(config.LearnNeedLuck > 0); if (config.LearnNeedLuck > 0) { var satisfy = PlayerDatas.Instance.extersion.luckValue >= config.LearnNeedLuck; var propertyConfig = PlayerPropertyConfig.Get((int)PropertyType.Luck); m_PropertyCondition.text = Language.Get("AlchemyCondition_2", propertyConfig.Name, config.LearnNeedLuck); m_PropertyCondition.color = UIHelper.GetUIColor(satisfy ? TextColType.Green : TextColType.Red, true); } } void DisplayFuncState() { var error = 0; var satisfyLearn = TryLearn(out error); m_Func.SetColorful(m_FuncLabel, satisfyLearn); } private void Learn() { var error = 0; if (TryLearn(out error)) { var pak = new CA576_tagCMPlayerRefine(); pak.AlchemyID = (uint)model.selectAlchemy; pak.DoType = 0; GameNetSystem.Instance.SendInfo(pak); } else { DisplayErrorTip(error); } } bool TryLearn(out int error) { error = 0; var config = AlchemyConfig.Get(model.selectAlchemy); if (model.stoveLevel < config.LearnNeedAlchemLV) { error = 2; return false; } if (PlayerDatas.Instance.extersion.luckValue < config.LearnNeedLuck) { error = 3; return false; } var count = packModel.GetItemCountByID(PackType.Item, config.LearnNeedItemID); if (count <= 0) { error = 1; return false; } return true; } 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() { } } }