Make melee damage not go through MeleeHitEvent.cs (#16881)

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
Nemanja
2023-05-28 03:03:25 -04:00
committed by GitHub
parent 0053ddb8f8
commit dd044f4a91
9 changed files with 73 additions and 48 deletions

View File

@@ -2,6 +2,7 @@ using Content.Server.Power.Components;
using Content.Server.Power.Events;
using Content.Server.Stunnable.Components;
using Content.Shared.Audio;
using Content.Shared.Damage;
using Content.Shared.Damage.Events;
using Content.Shared.Examine;
using Content.Shared.Interaction.Events;
@@ -27,15 +28,16 @@ namespace Content.Server.Stunnable.Systems
SubscribeLocalEvent<StunbatonComponent, UseInHandEvent>(OnUseInHand);
SubscribeLocalEvent<StunbatonComponent, ExaminedEvent>(OnExamined);
SubscribeLocalEvent<StunbatonComponent, StaminaDamageOnHitAttemptEvent>(OnStaminaHitAttempt);
SubscribeLocalEvent<StunbatonComponent, MeleeHitEvent>(OnMeleeHit);
SubscribeLocalEvent<StunbatonComponent, GetMeleeDamageEvent>(OnGetMeleeDamage);
}
private void OnMeleeHit(EntityUid uid, StunbatonComponent component, MeleeHitEvent args)
private void OnGetMeleeDamage(EntityUid uid, StunbatonComponent component, ref GetMeleeDamageEvent args)
{
if (!component.Activated) return;
if (!component.Activated)
return;
// Don't apply damage if it's activated; just do stamina damage.
args.BonusDamage -= args.BaseDamage;
args.Damage = new DamageSpecifier();
}
private void OnStaminaHitAttempt(EntityUid uid, StunbatonComponent component, ref StaminaDamageOnHitAttemptEvent args)