-
- using Godot;
- using UI.BottomTips;
-
- namespace UI.RoomUI;
-
- /// <summary>
- /// 地牢房间中的ui
- /// </summary>
- public partial class RoomUIPanel : RoomUI
- {
- private ReloadBar _reloadBar;
- private InteractiveTipBar _interactiveTipBar;
- private WeaponBar _weaponBar;
- private ActivePropBar _activePropBar;
- private LifeBar _lifeBar;
-
- private EventFactory _factory;
-
- public override void OnCreateUi()
- {
- _reloadBar = new ReloadBar(L_ReloadBar);
- _interactiveTipBar = new InteractiveTipBar(L_InteractiveTipBar);
- _weaponBar = new WeaponBar(L_Control.L_WeaponBar);
- _activePropBar = new ActivePropBar(L_Control.L_ActivePropBar);
- _lifeBar = new LifeBar(L_Control.L_LifeBar);
- }
-
- public override void OnShowUi()
- {
- _reloadBar.OnShow();
- _interactiveTipBar.OnShow();
- _weaponBar.OnShow();
- _activePropBar.OnShow();
- _lifeBar.OnShow();
-
- _factory = EventManager.CreateEventFactory();
- _factory.AddEventListener(EventEnum.OnPlayerPickUpProp, OnPlayerPickUpProp);
- }
-
- public override void OnHideUi()
- {
- _reloadBar.OnHide();
- _interactiveTipBar.OnHide();
- _weaponBar.OnHide();
- _activePropBar.OnHide();
- _lifeBar.OnHide();
-
- _factory.RemoveAllEventListener();
- _factory = null;
- }
-
- public override void Process(float delta)
- {
- _weaponBar.Process(delta);
- _activePropBar.Process(delta);
- _lifeBar.Process(delta);
-
- QueueRedraw();
- }
-
- //玩家拾起道具, 弹出提示
- private void OnPlayerPickUpProp(object propObj)
- {
- var prop = (Prop)propObj;
- var message = $"{prop.ActivityBase.Name}\n{prop.ActivityBase.Intro}";
- BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
- }
-
- public override void _Draw()
- {
- foreach (var role in World.Current.Enemy_InstanceList)
- {
- if (!role.IsDestroyed)
- {
- var position = GameApplication.Instance.ViewToGlobalPosition(role.Position);
- DrawString(ResourceManager.DefaultFont16Px, position, role.StateController.CurrState.ToString());
- }
- }
- }
- }