123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using Common.Utility.CombatEvent;
- using Core.Utility;
- using Fort23.Core;
- using GameLogic.Bag;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.CombatType;
- using GameLogic.Hero;
- using UnityEngine;
- using Utility;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "MainUIPanel")]
- public partial class MainUIPanel : UIPanel
- {
- private CombatHeroEntity bossHeroEntity;
- private void Init()
- {
- InitRes();
- InitBattleHeroWidget();
- }
- protected override void AddEvent()
- {
- CombatEventManager.Instance.AddEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);
- EventManager.Instance.AddEventListener(CustomEventType.HeroPowerUp, OnHeroPowerUp);
- EventManager.Instance.AddEventListener(CustomEventType.ItemUpdate, OnItemUpdate);
- EventManager.Instance.AddEventListener(CustomEventType.ShowBossHp, ShowBossHp);
- CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
- EventManager.Instance.AddEventListener(CustomEventType.ShowBattleExp, ShowBattleExp);
- EventManager.Instance.AddEventListener(CustomEventType.StartBossBattle, StartBossBattle);
- }
- private void StartBossBattle(IEventData iEventData)
- {
- UIManager.Instance.LoadAndOpenPanel<StartBossPanel>(null, UILayer.Top);
- }
- private void ShowBattleExp(IEventData iEventData)
- {
- bossHp.SetActive(false);
- Slider_Exp_Process.SetActive(true);
- bossHeroEntity = null;
- }
- private void HeroHpUpdateEventData(IEventData iEventData)
- {
- HeroHpUpdateEventData heroHpUpdateEventData = iEventData as HeroHpUpdateEventData;
- if (heroHpUpdateEventData.combatHeroEntity == bossHeroEntity)
- {
- UpdateBossHp();
- }
- }
- protected override void DelEvent()
- {
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);
- EventManager.Instance.RemoveEventListener(CustomEventType.HeroPowerUp, OnHeroPowerUp);
- EventManager.Instance.RemoveEventListener(CustomEventType.ItemUpdate, OnItemUpdate);
- EventManager.Instance.RemoveEventListener(CustomEventType.ShowBossHp, ShowBossHp);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
- EventManager.Instance.RemoveEventListener(CustomEventType.ShowBattleExp, ShowBattleExp);
- }
- public override void AddButtonEvent()
- {
- }
-
-
- private void OnItemUpdate(IEventData e)
- {
- ItemUpdateData data = e as ItemUpdateData;
- if (data.ItemInfo.ID == GlobalParam.Item_Coin_ID)
- {
- txtCoin.text = BagController.Instance.GetItemInfo(GlobalParam.Item_Coin_ID).count.Value.ToStringEx();
- }
- else if (data.ItemInfo.ID == GlobalParam.Item_Diamond_ID)
- {
- txtDiamond.text = BagController.Instance.GetItemInfo(GlobalParam.Item_Diamond_ID).count.Value.ToStringEx();
- }
- else if (data.ItemInfo.ID == GlobalParam.Item_HeroExp_ID)
- {
- txtHeroExp.text = BagController.Instance.GetItemInfo(GlobalParam.Item_HeroExp_ID).count.Value.ToStringEx();
- }
-
- }
- private void ShowBossHp(IEventData eventData)
- {
- ShowBossHpEventData showBossHpEventData = eventData as ShowBossHpEventData;
- bossHeroEntity = showBossHpEventData.boss;
- bossHp.SetActive(true);
- Slider_Exp_Process.SetActive(false);
- bossName.text = bossHeroEntity.CurrCombatHeroInfo.heroName;
- UpdateBossHp();
- }
- protected void UpdateBossHp()
- {
- Slider_Hp_Boss.value = bossHeroEntity.CurrCombatHeroInfo.hp.Value * 1.0f /
- bossHeroEntity.MaxCombatHeroInfo.hp.Value;
- bossHpText.text = bossHeroEntity.CurrCombatHeroInfo.hp.Value + "/" +
- bossHeroEntity.MaxCombatHeroInfo.hp.Value;
- }
- private void CombatExpAlter(IEventData eventData)
- {
- ExpAlter();
- }
- private void ExpAlter()
- {
- if (CombatController.currActiveCombat == null || CombatController.currActiveCombat.CombatTypeBasic == null)
- {
- return;
- }
- LevelBattleCombatType levelBattleCombatType =
- CombatController.currActiveCombat.CombatTypeBasic as LevelBattleCombatType;
- float bl = (levelBattleCombatType.exp * 1.0f) / levelBattleCombatType.CurrMaxExp;
- exp.value = bl;
- TextExp.text = levelBattleCombatType.exp + "/" + levelBattleCombatType.CurrMaxExp;
- }
- private void OnHeroPowerUp(IEventData eventData)
- {
- HeroPowerUpEventData data = eventData as HeroPowerUpEventData;
- HeroInfo heroInfo = (HeroInfo)PlayerManager.Instance.heroController.GetHeroInfo(data.heroModelID);
- foreach (WidgetHero widgetHero in widgetHeroes)
- {
- if (widgetHero.heroInfo.modelID == heroInfo.modelID)
- {
- widgetHero.UpdateWidgetUI(heroInfo);
- break;
- }
- }
- }
- private List<WidgetHero> widgetHeroes = new List<WidgetHero>();
- public void RestWidgetHeroPos(WidgetHero wh)
- {
- Vector3 v;
- Vector3 origin;
- foreach (WidgetHero w in widgetHeroes)
- {
- if (wh != null && w.Equals(wh))
- {
- continue;
- }
-
- v = w.transform.parent.localPosition;
- if (v.y > 0)
- {
- origin = new Vector3(v.x, 0, v.z);
- w.transform.parent.localPosition = origin;
- w.SetMoreBtnActive(false);
- }
-
- }
- }
- private async void InitBattleHeroWidget()
- {
- widgetHeroes.Clear();
- int i = 0;
- foreach (KeyValuePair<int,HeroInfo> keyValuePair in PlayerManager.Instance.heroController.heroDicInLead)
- {
- RectTransform rectTransform = hero_battle[i] as RectTransform;
- WidgetHero itemHero = await UIManager.Instance.CreateGComponent<WidgetHero>(null,
- poolName: "WidgetHero", root: rectTransform);
- itemHero.InitHero(keyValuePair.Value);
- widgetHeroes.Add(itemHero);
- i++;
- }
- }
- private void InitRes()
- {
- txtDiamond.text = BagController.Instance.GetItemInfo(GlobalParam.Item_Diamond_ID).count.Value.ToStringEx();
- txtCoin.text = BagController.Instance.GetItemInfo(GlobalParam.Item_Coin_ID).count.Value.ToStringEx();
- txtHeroExp.text = BagController.Instance.GetItemInfo(GlobalParam.Item_HeroExp_ID).count.Value.ToStringEx();
- }
- }
- }
|