//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, April 17, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AlchemyBasicDrugWin : Window { [SerializeField] AlchemyScrollBehaviour m_AlchemyScroll; [SerializeField] AlchemyDrugBriefBehaviour m_AlchemyDrug; [SerializeField] AlchemyStudyBehaviour m_AlchemyStudy; [SerializeField] AlchemyBriefBehaviour m_AlchemyBrief; [SerializeField] AlchemyStoveBehaviour m_AlchemyStove; AlchemyModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { SetDefaultSelect(); m_AlchemyScroll.Display((int)AlchemyType.Normal); DisplayAlchmey(); m_AlchemyDrug.Display(); m_AlchemyStove.Display(); model.selectAlchemyRefresh += SelectAlchemyRefresh; model.selectQualityRefresh += SelectQualityRefresh; } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_AlchemyScroll.Dispose(); m_AlchemyDrug.Dispose(); m_AlchemyStudy.Dispose(); m_AlchemyBrief.Dispose(); m_AlchemyStove.Dispose(); model.selectAlchemyRefresh -= SelectAlchemyRefresh; model.selectQualityRefresh -= SelectQualityRefresh; } protected override void OnAfterClose() { } #endregion void SetDefaultSelect() { var qualities = AlchemyConfig.GetAlchemyQualities((int)AlchemyType.Normal); model.selectQuality = qualities.First(); var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Normal, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectQualityRefresh() { var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Normal, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectAlchemyRefresh() { DisplayAlchmey(); } void DisplayAlchmey() { var grasp = model.IsGraspRecipe(model.selectAlchemy); m_AlchemyStudy.gameObject.SetActive(!grasp); m_AlchemyBrief.gameObject.SetActive(grasp); if (grasp) { m_AlchemyStudy.Display(); m_AlchemyBrief.Dispose(); } else { m_AlchemyBrief.Display(); m_AlchemyStudy.Dispose(); } } } }