Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / roomUI / RoomUIPanel.cs
@lijincheng lijincheng on 6 Jul 2023 1 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 ReloadBar _reloadBar;
  12. private InteractiveTipBar _interactiveTipBar;
  13. private WeaponBar _weaponBar;
  14. private ActivePropBar _activePropBar;
  15. private LifeBar _lifeBar;
  16. private EventFactory _factory;
  17.  
  18. public override void OnCreateUi()
  19. {
  20. _reloadBar = new ReloadBar(L_ReloadBar);
  21. _interactiveTipBar = new InteractiveTipBar(L_InteractiveTipBar);
  22. _weaponBar = new WeaponBar(L_Control.L_WeaponBar);
  23. _activePropBar = new ActivePropBar(L_Control.L_ActivePropBar);
  24. _lifeBar = new LifeBar(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.ItemConfig.Name}\n{prop.ItemConfig.Remark}";
  62. BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
  63. }
  64. }