Projectile and damage events now include the origin (#19322)

This commit is contained in:
PixelTK
2023-08-27 17:28:59 +01:00
committed by GitHub
parent 0ec8daa474
commit 9fef38ab60
3 changed files with 12 additions and 9 deletions

View File

@@ -134,7 +134,7 @@ namespace Content.Shared.Damage
return damage;
}
var before = new BeforeDamageChangedEvent(damage);
var before = new BeforeDamageChangedEvent(damage, origin);
RaiseLocalEvent(uid.Value, ref before);
if (before.Cancelled)
@@ -149,7 +149,7 @@ namespace Content.Shared.Damage
damage = DamageSpecifier.ApplyModifierSet(damage, modifierSet);
}
var ev = new DamageModifyEvent(damage);
var ev = new DamageModifyEvent(damage, origin);
RaiseLocalEvent(uid.Value, ev);
damage = ev.Damage;
@@ -271,7 +271,7 @@ namespace Content.Shared.Damage
/// Raised before damage is done, so stuff can cancel it if necessary.
/// </summary>
[ByRefEvent]
public record struct BeforeDamageChangedEvent(DamageSpecifier Delta, bool Cancelled=false);
public record struct BeforeDamageChangedEvent(DamageSpecifier Delta, EntityUid? Origin = null, bool Cancelled = false);
/// <summary>
/// Raised on an entity when damage is about to be dealt,
@@ -287,11 +287,13 @@ namespace Content.Shared.Damage
public readonly DamageSpecifier OriginalDamage;
public DamageSpecifier Damage;
public EntityUid? Origin;
public DamageModifyEvent(DamageSpecifier damage)
public DamageModifyEvent(DamageSpecifier damage, EntityUid? origin = null)
{
OriginalDamage = damage;
Damage = damage;
Origin = origin;
}
}