using System.Collections.Generic; using Common.Utility.CombatEvent; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; using UnityEngine; namespace Fort23.Mono { [UIBinding(prefab = "ProfessionEquipmentPanel" )] public partial class ProfessionEquipmentPanel : UIPanel { private void Init() { } protected override void AddEvent() { EventManager.Instance.AddEventListener(CustomEventType.HeroEquip, OnHeroEquip); EventManager.Instance.AddEventListener(CustomEventType.Combat_EquipFall, OnHeroEquip); } private void OnHeroEquip(IEventData e) { // ProfessionEquipmentPanel professionEquipmentPanel = UIManager.Instance.GetComponent(); //现在是全更新的,后面可以优化成只更新对应职业的装备栏,现在无法这样做的原因是,池子回收了全部装备 HeroEquipEventData data = e as HeroEquipEventData; UIManager.Instance.DormancyAllGComponent("eq"); UpdateAllEq(); } protected override void DelEvent() { EventManager.Instance.RemoveEventListener(CustomEventType.HeroEquip, OnHeroEquip); EventManager.Instance.RemoveEventListener(CustomEventType.Combat_EquipFall, OnHeroEquip); } public override void AddButtonEvent() { btnBack.onClick.AddListener(OnclickBack); btnInZs.onClick.AddListener(OnclickZS); btnFs.onClick.AddListener(OnclickFS); btnMs.onClick.AddListener(OnclickMS); btnYx.onClick.AddListener(OnclickYX); btnRecycle.onClick.AddListener(OnclickRecycle); } // private async void OnclickRecycle() { EqRecyclePanel eqRecyclePanel = await UIManager.Instance.LoadAndOpenPanel(null); eqRecyclePanel.InitEqRecyclePanel(); } private async void OnclickZS() { HeroUITools.OpenSpecificProfessionEquipmentPanel(1); } private async void OnclickFS() { HeroUITools.OpenSpecificProfessionEquipmentPanel(2); } private async void OnclickMS() { HeroUITools.OpenSpecificProfessionEquipmentPanel(3); } private async void OnclickYX() { HeroUITools.OpenSpecificProfessionEquipmentPanel(4); } private void OnclickBack() { UIManager.Instance.HideUIUIPanel(this); UIManager.Instance.DormancyAllGComponent("eq"); } public async void InitPanel() { UpdateAllEq(); } public void UpdateAllEq() { PlayerManager.Instance.eqController.UpdateAllBestEqs(); UpdateZyEqs(1); UpdateZyEqs(2); UpdateZyEqs(3); UpdateZyEqs(4); } public void UpdateZyEqs(int zy) { bool show = false; switch (zy) { case 1: HeroUITools.UpdateZyEqIcon(1, zsEqs, action:OnclickZS); break; case 2: HeroUITools.UpdateZyEqIcon(2, fsEqs, action:OnclickFS); break; case 3: HeroUITools.UpdateZyEqIcon(3, msEqs, action:OnclickMS); break; case 4: HeroUITools.UpdateZyEqIcon(4, yxEqs, action:OnclickYX); break; } show = HeroUITools.IsShowRedPointProEq(zy); (allAlterObj[zy - 1] as GameObject)?.SetActive(show); } } }