Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / roomUI / RoomUIPanel.cs
@小李xl 小李xl on 4 Mar 2024 2 KB 武器轮盘开发中
  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. private bool _showMap = false;
  19.  
  20. public override void OnCreateUi()
  21. {
  22. _reloadBar = new ReloadBarHandler(L_ReloadBar);
  23. _interactiveTipBar = new InteractiveTipBarHandler(L_InteractiveTipBar);
  24. _weaponBar = new WeaponBarHandler(L_Control.L_WeaponBar);
  25. _activePropBar = new ActivePropBarHandler(L_Control.L_ActivePropBar);
  26. _lifeBar = new LifeBarHandler(L_Control.L_LifeBar);
  27. }
  28.  
  29. public override void OnShowUi()
  30. {
  31. _reloadBar.OnShow();
  32. _interactiveTipBar.OnShow();
  33. _weaponBar.OnShow();
  34. _activePropBar.OnShow();
  35. _lifeBar.OnShow();
  36.  
  37. _factory = EventManager.CreateEventFactory();
  38. _factory.AddEventListener(EventEnum.OnPlayerPickUpProp, OnPlayerPickUpProp);
  39.  
  40. //大厅中不显示小地图
  41. if (World.Current is Hall)
  42. {
  43. S_RoomMap.Instance.HideUi();
  44. }
  45. else
  46. {
  47. S_RoomMap.Instance.ShowUi();
  48. }
  49. }
  50.  
  51. public override void OnHideUi()
  52. {
  53. _reloadBar.OnHide();
  54. _interactiveTipBar.OnHide();
  55. _weaponBar.OnHide();
  56. _activePropBar.OnHide();
  57. _lifeBar.OnHide();
  58. _factory.RemoveAllEventListener();
  59. _factory = null;
  60. }
  61.  
  62. public override void Process(float delta)
  63. {
  64. _weaponBar.Process(delta);
  65. _activePropBar.Process(delta);
  66. _lifeBar.Process(delta);
  67. }
  68.  
  69. //玩家拾起道具, 弹出提示
  70. private void OnPlayerPickUpProp(object propObj)
  71. {
  72. var prop = (Prop)propObj;
  73. var message = $"{prop.ActivityBase.Name}\n{prop.ActivityBase.Intro}";
  74. BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
  75. }
  76. }