diff --git a/Content.Shared/White/Wield/ToggleableWieldedComponent.cs b/Content.Shared/White/Wield/ToggleableWieldedComponent.cs new file mode 100644 index 0000000000..90214b8f4d --- /dev/null +++ b/Content.Shared/White/Wield/ToggleableWieldedComponent.cs @@ -0,0 +1,6 @@ +namespace Content.Shared.White.Wield; + +[RegisterComponent] +public sealed partial class ToggleableWieldedComponent : Component +{ +} diff --git a/Content.Shared/White/Wield/ToggleableWieldedSystem.cs b/Content.Shared/White/Wield/ToggleableWieldedSystem.cs new file mode 100644 index 0000000000..7b17331e50 --- /dev/null +++ b/Content.Shared/White/Wield/ToggleableWieldedSystem.cs @@ -0,0 +1,20 @@ +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Wieldable.Components; + +namespace Content.Shared.White.Wield; + +public sealed class ToggleableWieldedSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(AttemptActivate); + } + + private void AttemptActivate(Entity ent, ref ItemToggleActivateAttemptEvent args) + { + if (TryComp(ent, out WieldableComponent? wieldable) && !wieldable.Wielded) + args.Cancelled = true; + } +} diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index 9e072170c4..bd3701fc1a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -267,6 +267,7 @@ enabled: false reflects: - Energy + - type: ToggleableWielded - type: Construction deconstructionTarget: null graph: EnergyDoubleSwordGraph