MainUIPanel.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using Common.Utility.CombatEvent;
  4. using Fort23.Core;
  5. using GameLogic.Combat.CombatTool;
  6. using GameLogic.Combat.CombatType;
  7. using GameLogic.Hero;
  8. using UnityEngine;
  9. namespace Fort23.Mono
  10. {
  11. [UIBinding(prefab = "MainUIPanel")]
  12. public partial class MainUIPanel : UIPanel
  13. {
  14. private void Init()
  15. {
  16. InitBattleHero();
  17. }
  18. protected override void AddEvent()
  19. {
  20. CombatEventManager.Instance.AddEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);
  21. EventManager.Instance.AddEventListener(CustomEventType.HeroUpgrade, OnHeroUpgrade);
  22. }
  23. protected override void DelEvent()
  24. {
  25. CombatEventManager.Instance.RemoveEventListener(CombatEventType.CombatExpAlter, CombatExpAlter);
  26. EventManager.Instance.RemoveEventListener(CustomEventType.HeroUpgrade, OnHeroUpgrade);
  27. }
  28. public override void AddButtonEvent()
  29. {
  30. }
  31. private void CombatExpAlter(IEventData eventData)
  32. {
  33. ExpAlter();
  34. }
  35. private void ExpAlter()
  36. {
  37. if (CombatController.currActiveCombat == null || CombatController.currActiveCombat.CombatTypeBasic == null)
  38. {
  39. return;
  40. }
  41. LevelBattleCombatType levelBattleCombatType =
  42. CombatController.currActiveCombat.CombatTypeBasic as LevelBattleCombatType;
  43. float bl = (levelBattleCombatType.exp * 1.0f) / levelBattleCombatType.CurrMaxExp;
  44. exp.value = bl;
  45. TextExp.text = levelBattleCombatType.exp + "/" + levelBattleCombatType.CurrMaxExp;
  46. }
  47. private void OnHeroUpgrade(IEventData eventData)
  48. {
  49. HeroLvUpgradeEventData data = eventData as HeroLvUpgradeEventData;
  50. HeroInfo heroInfo = (HeroInfo)PlayerManager.Instance.GetHeroInfo(data.heroModelID);
  51. foreach (WidgetHero widgetHero in widgetHeroes)
  52. {
  53. if (widgetHero.heroInfo.modelID == heroInfo.modelID)
  54. {
  55. widgetHero.UpdateHero(heroInfo);
  56. break;
  57. }
  58. }
  59. }
  60. private List<WidgetHero> widgetHeroes = new List<WidgetHero>();
  61. private async void InitBattleHero()
  62. {
  63. widgetHeroes.Clear();
  64. for (int i = 0; i < PlayerManager.Instance.heroListInLead.Count; i++)
  65. {
  66. RectTransform rectTransform = hero_battle[i] as RectTransform;
  67. WidgetHero itemHero = await UIManager.Instance.CreateGComponent<WidgetHero>(null,
  68. poolName: "WidgetHero", root: rectTransform);
  69. itemHero.InitHero(PlayerManager.Instance.heroListInLead[i]);
  70. widgetHeroes.Add(itemHero);
  71. }
  72. }
  73. }
  74. }