From: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Date: Wed, 17 Apr 2024 10:10:03 +0000 (-0700) Subject: Fixed gloved weapons being able to attack when not equipped. (#26762) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=afcdc8b8668a0504fd0392eaa1b6dcd36b4f1108;p=space-station-14.git Fixed gloved weapons being able to attack when not equipped. (#26762) * Initial commit. No evil hidden files this time :) * Added newline because I forgot :( * We <3 tags :) * Fixed! Works now * Update Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs index 85d2e4675f..fa5e0b3a90 100644 --- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs +++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs @@ -140,6 +140,14 @@ public sealed partial class MeleeWeaponComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField("soundNoDamage"), AutoNetworkedField] public SoundSpecifier NoDamageSound { get; set; } = new SoundCollectionSpecifier("WeakHit"); + + /// + /// If true, the weapon must be equipped for it to be used. + /// E.g boxing gloves must be equipped to your gloves, + /// not just held in your hand to be used. + /// + [DataField, AutoNetworkedField] + public bool MustBeEquippedToUse = false; } /// diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index e59b4a13fe..6fa11f87d2 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -277,7 +277,10 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) && hands.ActiveHandEntity is { } held) { - if (EntityManager.TryGetComponent(held, out melee)) + // Make sure the entity is a weapon AND it doesn't need + // to be equipped to be used (E.g boxing gloves). + if (EntityManager.TryGetComponent(held, out melee) && + !melee.MustBeEquippedToUse) { weaponUid = held; return true; diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index bf08db78f7..96bdd61f94 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -20,6 +20,7 @@ soundHit: collection: BoxingHit animation: WeaponArcFist + mustBeEquippedToUse: true - type: Fiber fiberMaterial: fibers-leather fiberColor: fibers-red @@ -90,6 +91,7 @@ types: Blunt: 8 bluntStaminaDamageFactor: 0.0 # so blunt doesn't deal stamina damage at all + mustBeEquippedToUse: true - type: entity parent: ClothingHandsBase @@ -362,6 +364,7 @@ soundHit: collection: Punch animation: WeaponArcFist + mustBeEquippedToUse: true - type: Fiber fiberMaterial: fibers-leather fiberColor: fibers-blue