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