//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 06, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using Snxxz.UI; namespace Snxxz.UI { public class RoleEquipWin : Window { #region 成员变量 [SerializeField] List equipPlaces = new List(); [SerializeField] RawImage RoleShowBG; [SerializeField] private Button _starCountBtn; [SerializeField] private Button _equipIntensifyBtn; [SerializeField] private Button _oneKeySellBtn; [SerializeField] private Button _sortBtn; //整理 [SerializeField] private Image _sortImage; [SerializeField] private Text _moneyCount; [SerializeField] private Text _bindDiamondCount; [SerializeField] private Text _flowDiamondCount; [SerializeField] private Text _timeDown; [SerializeField] UIEffect STREffect; [SerializeField] UIEffect StarsEffect; [SerializeField] Button m_JadeDynasty; #endregion PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } private bool isUpdatePlayerLv; protected override void BindController() { _oneKeySellBtn.onClick.AddListener(OnClickOneKeySell); _sortBtn.onClick.AddListener(() => { OnClickSortBtn(); }); m_JadeDynasty.SetListener(() => { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.JadeDynastyEquip292); }); } protected override void AddListeners() { } protected override void OnPreOpen() { isUpdatePlayerLv = false; UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); playerPack.RefreshAttrActiveAct += ControlEffect; playerPack.itemCntAddEvent += PutOnEquip; playerPack.itemCntReduceEvent += PutOffEquip; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerLv; WindowCenter.Instance.windowBeforeCloseEvent += BeforeWindowClose; GlobalTimeEvent.Instance.secondEvent += UpdateSecond; TimeDownMgr.CoolTimeData data; if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort, out data)) { data.func = RefreshTime; _sortImage.SetSprite("BlackBtn"); _timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(data.duration - data.time)); _sortBtn.enabled = false; } else { _sortImage.SetSprite("SecondBtn1"); _timeDown.text = Language.Get("BagWin_Sortbtn_Text_1"); _sortBtn.enabled = true; } UIEventTrigger.Get(_starCountBtn.gameObject).OnDown = OnClickStarBtn; UIEventTrigger.Get(_equipIntensifyBtn.gameObject).OnDown = OnClickEquipIntensify; OnFrenshBagInfo(); } private void BeforeWindowClose(Window window) { if (typeof(PetMatInfoWin).Name != window.name && typeof(ItemInfoWin).Name != window.name) return; UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); } protected override void OnAfterOpen() { SuccessConfig successConfig = SuccessConfig.Get(AchievementGoto.guideAchievementId); if (successConfig != null && successConfig.Type == 95) { playerPack.SetJumpToOneKeySell(_oneKeySellBtn.transform); } if (playerPack.IsActiveStarAttr()) { ControlEffect(1, true); } } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= UpdateSecond; playerPack.itemCntAddEvent -= PutOnEquip; playerPack.itemCntReduceEvent -= PutOffEquip; WindowCenter.Instance.windowBeforeCloseEvent -= BeforeWindowClose; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerLv; UI3DModelExhibition.Instance.StopShow(); } protected override void OnAfterClose() { } private void UpdateSecond() { if (isUpdatePlayerLv) { for (int i = 1; i < 13; i++) { UpdateRoleEquip(i); } isUpdatePlayerLv = false; } } private void ControlEffect(int type, bool isActive) { if (type == 0) { if (isActive) { STREffect.Play(); } else { STREffect.Stop(); } } if (type == 1) { if (isActive) { StarsEffect.Play(); } else { StarsEffect.Stop(); } } } public void UpdateRoleEquip(int equipPlace) { for (int i = 0; i < equipPlaces.Count; i++) { var placeCell = equipPlaces[i]; if ((int)placeCell.equipType == equipPlace) { placeCell.Display(equipPlace); break; } } UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); } public void PutOnEquip(PackType type, int index, int Id) { //临时条件判断 if (type != PackType.Equip) return; UpdateRoleEquip(index); } public void PutOffEquip(PackType type, int place, int id) { if (type != PackType.Equip) return; UpdateRoleEquip(place); } private void UpdatePlayerLv(PlayerDataRefresh type) { switch (type) { case PlayerDataRefresh.LV: isUpdatePlayerLv = true; break; case PlayerDataRefresh.Gold: case PlayerDataRefresh.GoldPaper: case PlayerDataRefresh.Silver: case PlayerDataRefresh.ExAttr6: OnFrenshBagInfo(); break; } } private void OnClickEquipIntensify(GameObject go) { WindowCenter.Instance.Open(); } private void OnClickStarBtn(GameObject go) { WindowCenter.Instance.Open(); } public void OnClickSortBtn() { ItemLogicUtility.Instance.SendPackResetQuest(PackType.Item); TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BagSort, 5.0f, RefreshTime); _timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", 5); _sortImage.SetSprite("BlackBtn"); _sortBtn.enabled = false; } private void RefreshTime(float time) { if (time <= 0) { _sortImage.SetSprite("SecondBtn1"); _timeDown.text = Language.Get("BagWin_Sortbtn_Text_1"); _sortBtn.enabled = true; } else { _timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", time); _sortBtn.enabled = false; } } public void OnFrenshBagInfo() { if (PlayerDatas.Instance.baseData != null) { _moneyCount.text = PlayerDatas.Instance.baseData.Gold.ToString(); _bindDiamondCount.text = PlayerDatas.Instance.baseData.GoldPaper.ToString(); _flowDiamondCount.text = ItemLogicUtility.Instance.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.allSliver); } else { _moneyCount.text = "0"; _bindDiamondCount.text = "0"; _flowDiamondCount.text = "0"; } } private void OnClickOneKeySell() { if (!ItemLogicUtility.Instance.isPackResetOk) return; if (ItemLogicUtility.Instance.GetSellItemList().Count > 0) { WindowCenter.Instance.Open(); } else { ServerTipDetails.DisplayNormalTip(Language.Get("KnapS129")); } } } }