From 7cbd2fd8ce090f0a6b82a6105d73e0a4ae4ec2a7 Mon Sep 17 00:00:00 2001 From: zumorica Date: Thu, 21 May 2020 19:40:08 +0200 Subject: [PATCH] OnHitEntities now returns a bool and takes a read only list --- .../Components/Weapon/Melee/MeleeWeaponComponent.cs | 5 +++-- .../Components/Weapon/Melee/StunbatonComponent.cs | 8 +++++--- Resources/Prototypes/Entities/Items/Weapons/security.yml | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs index 5e399f2aa7..c2f24bb97f 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs @@ -75,8 +75,9 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee serializer.DataField(ref _cooldownTime, "cooldownTime", 1f); } - public virtual void OnHitEntities(IEnumerable entities) + public virtual bool OnHitEntities(IReadOnlyList entities) { + return false; } void IAttack.Attack(AttackEventArgs eventArgs) @@ -105,7 +106,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee } } - OnHitEntities(hitEntities); + if(OnHitEntities(hitEntities)) return; var audioSystem = _entitySystemManager.GetEntitySystem(); var emitter = hitEntities.Count == 0 ? eventArgs.User : hitEntities[0]; diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs index 9fccf2c3ad..21000d1e39 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs @@ -45,10 +45,10 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee serializer.DataField(ref _slowdownTime, "slowdownTime", 5f); } - public override void OnHitEntities(IEnumerable entities) + public override bool OnHitEntities(IReadOnlyList entities) { - if (!Activated) - return; + if (!Activated || entities.Count == 0) + return false; _entitySystemManager.GetEntitySystem() .Play("/Audio/weapons/egloves.ogg", Owner.Transform.GridPosition, AudioHelpers.WithVariation(0.25f)); @@ -62,6 +62,8 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee else stunnable.Slowdown(_slowdownTime); } + + return false; } public bool UseEntity(UseEntityEventArgs eventArgs) diff --git a/Resources/Prototypes/Entities/Items/Weapons/security.yml b/Resources/Prototypes/Entities/Items/Weapons/security.yml index 4183ba8f4e..646b5b605a 100644 --- a/Resources/Prototypes/Entities/Items/Weapons/security.yml +++ b/Resources/Prototypes/Entities/Items/Weapons/security.yml @@ -12,6 +12,7 @@ state: stunbaton_off - type: Stunbaton + damage: 0.25 range: 0.75 arcwidth: 0 arc: default