Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / roomUI / RoomUIPanel.cs
@小李xl 小李xl on 4 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 void InitData()
  51. {
  52. _lifeBar.RefreshLife();
  53. }
  54.  
  55. public override void Process(float delta)
  56. {
  57. _weaponBar.Process(delta);
  58. _lifeBar.Process(delta);
  59. }
  60.  
  61. //玩家拾起道具, 弹出提示
  62. private void OnPlayerPickUpProp(object propObj)
  63. {
  64. var prop = (Prop)propObj;
  65. var message = $"{prop.ItemConfig.Name}\n{prop.ItemConfig.Remark}";
  66. BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
  67. }
  68. }