Close context menu on entering combat mode (#11624)

This commit is contained in:
metalgearsloth
2022-10-04 12:12:13 +11:00
committed by GitHub
parent d1440c1eb2
commit 5c48d9257f
4 changed files with 14 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using Content.Client.HUD;
using Content.Client.Verbs;
using Content.Shared.CombatMode;
using Content.Shared.Targeting;
using Robust.Client.GameObjects;
@@ -50,6 +51,8 @@ namespace Content.Client.CombatMode
return;
}
var verbs = IoCManager.Resolve<IEntitySystemManager>().GetEntitySystem<VerbSystem>();
verbs.CloseAllMenus();
_gameHud.TargetingZone = ActiveZone;
}
}

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Content.Client.CombatMode;
using Content.Client.ContextMenu.UI;
using Content.Shared.Input;
using Content.Shared.Verbs;
@@ -28,14 +29,16 @@ namespace Content.Client.Verbs.UI
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
private readonly CombatModeSystem _combatMode;
private readonly VerbSystem _verbSystem;
public EntityUid CurrentTarget;
public SortedSet<Verb> CurrentVerbs = new();
public VerbMenuPresenter(VerbSystem verbSystem)
public VerbMenuPresenter(CombatModeSystem combatMode, VerbSystem verbSystem)
{
IoCManager.InjectDependencies(this);
_combatMode = combatMode;
_verbSystem = verbSystem;
}
@@ -46,7 +49,8 @@ namespace Content.Client.Verbs.UI
/// <param name="force">Used to force showing all verbs (mostly for admins).</param>
public void OpenVerbMenu(EntityUid target, bool force = false)
{
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} user)
if (_playerManager.LocalPlayer?.ControlledEntity is not {Valid: true} user ||
_combatMode.IsInCombatMode(user))
return;
Close();

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Client.CombatMode;
using Content.Client.ContextMenu.UI;
using Content.Client.Examine;
using Content.Client.Gameplay;
@@ -28,6 +29,7 @@ namespace Content.Client.Verbs
[UsedImplicitly]
public sealed class VerbSystem : SharedVerbSystem
{
[Dependency] private readonly CombatModeSystem _combatMode = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly ExamineSystem _examineSystem = default!;
[Dependency] private readonly TagSystem _tagSystem = default!;
@@ -60,7 +62,7 @@ namespace Content.Client.Verbs
SubscribeNetworkEvent<VerbsResponseEvent>(HandleVerbResponse);
EntityMenu = new(this);
VerbMenu = new(this);
VerbMenu = new(_combatMode, this);
}
public void Reset(RoundRestartCleanupEvent ev)

View File

@@ -1,6 +1,7 @@
using Content.Shared.Actions;
using Content.Shared.Actions.ActionTypes;
using Content.Shared.Targeting;
using Content.Shared.Verbs;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
@@ -51,6 +52,7 @@ namespace Content.Shared.CombatMode
_isInCombatMode = value;
if (CombatToggleAction != null)
EntitySystem.Get<SharedActionsSystem>().SetToggled(CombatToggleAction, _isInCombatMode);
Dirty();
}
}