//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 06, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; 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; #endregion PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } PackModelInterface _modelInterface; PackModelInterface modelInterface { get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel()); } } protected override void BindController() { _oneKeySellBtn.onClick.AddListener(OnClickOneKeySell); _sortBtn.onClick.AddListener(() => { OnClickSortBtn(); }); } protected override void AddListeners() { } protected override void OnPreOpen() { UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); playerPack.RefreshAttrActiveAct += ControlEffect; playerPack.ItemCntAddAct += PutOnEquip; playerPack.ItemCntReduceAct += PutOffEquip; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerLv; PlayerDatas.Instance.RefreshPlayerInfoEvent += OnFrenshBagInfo; WindowCenter.Instance.windowBeforeCloseEvent += BeforeWindowClose; 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 = Config.Instance.Get(AchievementGoto.guideAchievementId); if(successConfig != null && successConfig.Type == 95) { playerPack.SetJumpToOneKeySell(_oneKeySellBtn.transform); } if(playerPack.IsActiveStarAttr()) { ControlEffect(1,true); } } protected override void OnPreClose() { playerPack.ItemCntAddAct -= PutOnEquip; playerPack.ItemCntReduceAct -= PutOffEquip; PlayerDatas.Instance.RefreshPlayerInfoEvent -= OnFrenshBagInfo; WindowCenter.Instance.windowBeforeCloseEvent -= BeforeWindowClose; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerLv; UI3DModelExhibition.Instance.StopShow(); } protected override void OnAfterClose() { } 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.rptEquip) return; UpdateRoleEquip(index); } public void PutOffEquip(PackType type, int place,int id) { if (type != PackType.rptEquip) return; UpdateRoleEquip(place); } private void UpdatePlayerLv(PlayerDataRefresh type) { if (type != PlayerDataRefresh.LV) return; for (int i = 1; i < 13; i++) { UpdateRoleEquip(i); } } private void OnClickEquipIntensify(GameObject go) { WindowCenter.Instance.Open(); } private void OnClickStarBtn(GameObject go) { WindowCenter.Instance.Open(); } public void OnClickSortBtn() { modelInterface.SendPackResetQuest(PackType.rptItem); 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 = modelInterface.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.allSliver); } else { _moneyCount.text = "0"; _bindDiamondCount.text = "0"; _flowDiamondCount.text = "0"; } } private void OnClickOneKeySell() { if (!modelInterface.isPackResetOk) return; if (modelInterface.GetSellItemList().Count > 0) { WindowCenter.Instance.Open(); } else { MessageWin.Inst.ShowFixedTip(Language.Get("KnapS129")); } } } }