//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 06, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace Snxxz.UI { public enum KnapsackFuncTitle { bag, Ornament,//配饰 store, depot, //仓库 devour, //吞噬 } public class KnapSackWin : Window { #region 成员变量 [SerializeField] private Button _closeBtn; [SerializeField] private Button _leftBtn; [SerializeField] private Button _rightBtn; [SerializeField] private FunctionButton _bagTitle; //背包 [SerializeField] private FunctionButton _ornamentTitle; //配饰 [SerializeField] private FunctionButton _storeTitle; //随身商店 [SerializeField] private FunctionButton _depotTitle; //仓库 [SerializeField] private FunctionButton _devourTitle; //仓库 [SerializeField] private FunctionButtonGroup _funcBtnGroup; #endregion PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } public static KnapsackFuncTitle titleType = KnapsackFuncTitle.bag; #region Built-in protected override void BindController() { } protected override void AddListeners() { _bagTitle.onClick.AddListener(() => { OnClickBagTitle(); }); _ornamentTitle.onClick.AddListener(() => { OnClickOrnamentTitle(); }); _storeTitle.onClick.AddListener(() => { OnClickStoreTitle(); }); _depotTitle.onClick.AddListener(() => { OnClickDepotTitle(); }); _devourTitle.onClick.AddListener(() => { OnClickDevourTitle(); }); _leftBtn.onClick.AddListener(OnClickLeftBtn); _rightBtn.onClick.AddListener(OnClickRightBtn); _closeBtn.onClick.AddListener(OnHidePanel); } protected override void OnPreOpen() { } protected override void OnActived() { base.OnActived(); this.transform.SetAsLastSibling(); _ornamentTitle.state = TitleBtnState.Locked; _funcBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { CloseSubWindows(); titleType = KnapsackFuncTitle.bag; playerPack.SetLookIndex(null); playerPack.isPlayBetterEquipEffect = false; LocalSave.DeleteKey(PlayerPackModel.RecordKnapsackTitle); } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open(); } } #endregion private void OnClickDepotTitle() { CloseSubWindows(); titleType = KnapsackFuncTitle.depot; if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(true); } playerPack.SetLookIndex(null); playerPack.isPlayBetterEquipEffect = false; functionOrder = _depotTitle.order; } private void OnClickStoreTitle() { CloseSubWindows(); titleType = KnapsackFuncTitle.store; if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } playerPack.SetLookIndex(null); playerPack.isPlayBetterEquipEffect = false; functionOrder = _storeTitle.order; } private void OnClickOrnamentTitle() { playerPack.SetLookIndex(null); playerPack.isPlayBetterEquipEffect = false; functionOrder = _ornamentTitle.order; } private void OnClickBagTitle() { CloseSubWindows(); titleType = KnapsackFuncTitle.bag; if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(true); } if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _bagTitle.order; } private void OnClickDevourTitle() { CloseSubWindows(); titleType = KnapsackFuncTitle.devour; if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation(); } else { WindowCenter.Instance.Open(); } functionOrder = _devourTitle.order; } private void OnClickRightBtn() { _funcBtnGroup.TriggerNext(); } private void OnClickLeftBtn() { _funcBtnGroup.TriggerLast(); } private void CloseSubWindows() { WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.CloseImmediately(); } private void OnHidePanel() { CloseImmediately(); } } }