//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 08, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; 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] 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() { WindowCenter.Instance.jumpWindowCloseEvent += CloseJumpWindow; } 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); _prePageBtn.onClick.AddListener(OnClickLeftBtn); _nextPageBtn.onClick.AddListener(OnClickRightBtn); _closeBtn.onClick.AddListener(OnClickCloseBtn); } protected override void OnPreOpen() { ComposeModel.ResetModel(); if(WindowJumpMgr.Instance.IsJumpState) { 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; } } } } 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) { WindowCenter.Instance.Open(); } } private void CloseJumpWindow(Window win) { if(win as ComposeWin) { if (WindowJumpMgr.Instance.jumpPhase <= 1) { ComposeModel.SetCurComposeModel(null); } } } #endregion private void OnClickRightBtn() { _funcBtnGroup.TriggerNext(); } private void OnClickLeftBtn() { _funcBtnGroup.TriggerLast(); } private void ClickDogzEquipCompose() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _dogzEquipFunc.order; } private void OnClickItemCompose() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _itemUITitleType.order; } private void OnClickEquipCompose() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _equipUITitleType.order; } private void OnClickGodEquipCompose() { functionOrder = _godequipUITitleType.order; } private void OnClickTicketCompose() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _ticketUITitleType.order; } private void OnClickWingsCompose() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _wingsUITitleType.order; } private void CloseSubWindows() { WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); } public void OnClickCloseBtn() { CloseSubWindows(); CloseImmediately(); } } }