Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / roomUI / RoomUIPanel.cs
@小李xl 小李xl on 29 Nov 2023 1 KB 小地图制作中
  1.  
  2. using Godot;
  3. using UI.BottomTips;
  4.  
  5. namespace UI.RoomUI;
  6.  
  7. /// <summary>
  8. /// 地牢房间中的ui
  9. /// </summary>
  10. public partial class RoomUIPanel : RoomUI
  11. {
  12. private ReloadBarHandler _reloadBar;
  13. private InteractiveTipBarHandler _interactiveTipBar;
  14. private WeaponBarHandler _weaponBar;
  15. private ActivePropBarHandler _activePropBar;
  16. private LifeBarHandler _lifeBar;
  17. private EventFactory _factory;
  18.  
  19. public override void OnCreateUi()
  20. {
  21. _reloadBar = new ReloadBarHandler(L_ReloadBar);
  22. _interactiveTipBar = new InteractiveTipBarHandler(L_InteractiveTipBar);
  23. _weaponBar = new WeaponBarHandler(L_Control.L_WeaponBar);
  24. _activePropBar = new ActivePropBarHandler(L_Control.L_ActivePropBar);
  25. _lifeBar = new LifeBarHandler(L_Control.L_LifeBar);
  26. }
  27.  
  28. public override void OnShowUi()
  29. {
  30. _reloadBar.OnShow();
  31. _interactiveTipBar.OnShow();
  32. _weaponBar.OnShow();
  33. _activePropBar.OnShow();
  34. _lifeBar.OnShow();
  35.  
  36. _factory = EventManager.CreateEventFactory();
  37. _factory.AddEventListener(EventEnum.OnPlayerPickUpProp, OnPlayerPickUpProp);
  38. }
  39.  
  40. public override void OnHideUi()
  41. {
  42. _reloadBar.OnHide();
  43. _interactiveTipBar.OnHide();
  44. _weaponBar.OnHide();
  45. _activePropBar.OnHide();
  46. _lifeBar.OnHide();
  47. _factory.RemoveAllEventListener();
  48. _factory = null;
  49. }
  50.  
  51. public override void Process(float delta)
  52. {
  53. _weaponBar.Process(delta);
  54. _activePropBar.Process(delta);
  55. _lifeBar.Process(delta);
  56. }
  57.  
  58. //玩家拾起道具, 弹出提示
  59. private void OnPlayerPickUpProp(object propObj)
  60. {
  61. var prop = (Prop)propObj;
  62. var message = $"{prop.ActivityBase.Name}\n{prop.ActivityBase.Intro}";
  63. BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
  64. }
  65. }