//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 08, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ComposeWin : Window { #region 成员变量 [SerializeField] private Button _closeBtn; [SerializeField] private Button _prePageBtn; [SerializeField] private Button _nextPageBtn; [SerializeField] private FunctionButton _wingsUITitleType; [SerializeField] private FunctionButton _ticketUITitleType; [SerializeField] private FunctionButton _godequipUITitleType; [SerializeField] private FunctionButton _equipUITitleType; [SerializeField] private FunctionButton _itemUITitleType; [SerializeField] private FunctionButton _dogzEquipFunc; [SerializeField] FunctionButton m_GatherSoulCompose; [SerializeField] private FunctionButtonGroup _funcBtnGroup; #endregion ComposeWinModel _composeModel; ComposeWinModel ComposeModel { get { return _composeModel ?? (_composeModel = ModelCenter.Instance.GetModel()); } } SelectEquipModel selectModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { _wingsUITitleType.onClick.AddListener(OnClickWingsCompose); _ticketUITitleType.onClick.AddListener(OnClickTicketCompose); _godequipUITitleType.onClick.AddListener(OnClickGodEquipCompose); _equipUITitleType.onClick.AddListener(OnClickEquipCompose); _itemUITitleType.onClick.AddListener(OnClickItemCompose); _dogzEquipFunc.AddListener(ClickDogzEquipCompose); m_GatherSoulCompose.AddListener(GatherSoulCompose); _prePageBtn.onClick.AddListener(OnClickLeftBtn); _nextPageBtn.onClick.AddListener(OnClickRightBtn); _closeBtn.onClick.AddListener(OnClickCloseBtn); } protected override void OnPreOpen() { ComposeModel.ResetModel(); if (WindowJumpMgr.Instance.IsJumpState && ComposeModel.secondType == 0) { if (ComposeModel.CurComposeModel != null) { ComposeModel.SetJumpToModel((ComposeFuncType)ComposeModel.CurComposeModel.firstType, ComposeModel.CurComposeModel.secondType, ComposeModel.CurComposeModel.thirdType); switch ((ComposeFuncType)ComposeModel.CurComposeModel.firstType) { case ComposeFuncType.Wings: functionOrder = _wingsUITitleType.order; break; case ComposeFuncType.Ticket: functionOrder = _ticketUITitleType.order; break; case ComposeFuncType.Fairy: functionOrder = _godequipUITitleType.order; break; case ComposeFuncType.Equip: functionOrder = _equipUITitleType.order; break; case ComposeFuncType.Item: functionOrder = _itemUITitleType.order; break; case ComposeFuncType.MountDogz: functionOrder = _dogzEquipFunc.order; break; } } } else { ComposeModel.SetCurComposeModel(null); } } protected override void OnActived() { base.OnActived(); if (functionOrder == 0 && !WindowJumpMgr.Instance.IsJumpState) { if (ComposeModel.composeToolRed.state == RedPointState.Simple) { _itemUITitleType.state = TitleBtnState.Click; functionOrder = _itemUITitleType.order; } else { if (_wingsUITitleType.state == TitleBtnState.Normal || _wingsUITitleType.state == TitleBtnState.Click) { _wingsUITitleType.state = TitleBtnState.Click; functionOrder = _wingsUITitleType.order; } else if (_ticketUITitleType.state == TitleBtnState.Normal || _ticketUITitleType.state == TitleBtnState.Click) { _ticketUITitleType.state = TitleBtnState.Click; functionOrder = _ticketUITitleType.order; } else if (_godequipUITitleType.state == TitleBtnState.Normal || _godequipUITitleType.state == TitleBtnState.Click) { _godequipUITitleType.state = TitleBtnState.Click; functionOrder = _godequipUITitleType.order; } else if (_equipUITitleType.state == TitleBtnState.Normal || _equipUITitleType.state == TitleBtnState.Click) { _equipUITitleType.state = TitleBtnState.Click; functionOrder = _equipUITitleType.order; } else if (_itemUITitleType.state == TitleBtnState.Normal || _itemUITitleType.state == TitleBtnState.Click) { _itemUITitleType.state = TitleBtnState.Click; functionOrder = _itemUITitleType.order; } } } _funcBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { ComposeModel.ResetJumpToModel(); selectModel.ClearSelectModel(); } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { ComposeModel.SetCurComposeModel(null); WindowCenter.Instance.Open(); } } #endregion private void OnClickRightBtn() { _funcBtnGroup.TriggerNext(); } private void OnClickLeftBtn() { _funcBtnGroup.TriggerLast(); } private void ClickDogzEquipCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = _dogzEquipFunc.order; } private void OnClickItemCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = _itemUITitleType.order; } private void OnClickEquipCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = _equipUITitleType.order; } private void OnClickGodEquipCompose() { functionOrder = _godequipUITitleType.order; } private void OnClickTicketCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = _ticketUITitleType.order; } private void OnClickWingsCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = _wingsUITitleType.order; } private void GatherSoulCompose() { CloseSubWindows(); WindowCenter.Instance.Open(); functionOrder = m_GatherSoulCompose.order; } private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("ComposeWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } public void OnClickCloseBtn() { if (ComposeModel.CurComposeModel != null) { ComposeModel.SetCurComposeModel(null); } CloseSubWindows(); CloseImmediately(); } } }