//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, January 23, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DogzWin : Window { [SerializeField] Button m_CloseBtn; [SerializeField] Button m_LeftBtn; [SerializeField] Button m_RightBtn; [SerializeField] FunctionButton functionButtonDogz; [SerializeField] FunctionButton functionButtonStrengthen; [SerializeField] FunctionButtonGroup funcBtnGroup; GodBeastModel beastModel { get { return ModelCenter.Instance.GetModel(); } } DogzModel dogzModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { m_CloseBtn.onClick.AddListener(OnClose); functionButtonDogz.onClick.AddListener(OnDogz); functionButtonStrengthen.onClick.AddListener(OnDogzStrengthen); m_LeftBtn.onClick.AddListener(() => { funcBtnGroup.TriggerLast(); }); m_RightBtn.onClick.AddListener(() => { funcBtnGroup.TriggerNext(); }); } protected override void OnPreOpen() { dogzModel.OpenFuncEvent += OnOpenFuncEvent; if(!WindowJumpMgr.Instance.IsJumpState) { dogzModel.SetDefaultSelectDogz(); } else { if(dogzModel.presentSelectDogz == 0) { dogzModel.SetDefaultSelectDogz(); } } } protected override void OnActived() { base.OnActived(); if(!WindowJumpMgr.Instance.IsJumpState && functionOrder == 0) { if(dogzModel.dogzFuncRedpoint.state != RedPointState.None) { functionOrder = functionButtonDogz.order; } else if(beastModel.redPointStre1.state != RedPointState.None) { functionOrder = functionButtonStrengthen.order; } } funcBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { dogzModel.OpenFuncEvent -= OnOpenFuncEvent; } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open(); } } private void OnOpenFuncEvent(int order,int equipIndex) { ModelCenter.Instance.GetModel().ItemPlace = equipIndex; funcBtnGroup.TriggerByOrder(order); if(WindowCenter.Instance.IsOpen()) { WindowCenter.Instance.Close(); } } private void OnDogzStrengthen() { CloseChild(); functionOrder = functionButtonStrengthen.order; WindowCenter.Instance.Open(); } private void OnDogz() { CloseChild(); functionOrder = functionButtonDogz.order; WindowCenter.Instance.Open(); } void OnClose() { CloseChild(); CloseImmediately(); } void CloseChild() { var children = WindowConfig.Get().FindChildWindows("DogzWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } } }