Projectile and damage events now include the origin (#19322)
This commit is contained in:
@@ -43,12 +43,12 @@ public sealed class ProjectileSystem : SharedProjectileSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var ev = new ProjectileHitEvent(target);
|
||||
var ev = new ProjectileHitEvent(component.Damage, target, component.Shooter);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
|
||||
var otherName = ToPrettyString(target);
|
||||
var direction = args.OurBody.LinearVelocity.Normalized();
|
||||
var modifiedDamage = _damageableSystem.TryChangeDamage(target, component.Damage, component.IgnoreResistances, origin: component.Shooter);
|
||||
var modifiedDamage = _damageableSystem.TryChangeDamage(target, ev.Damage, component.IgnoreResistances, origin: component.Shooter);
|
||||
var deleted = Deleted(target);
|
||||
|
||||
if (modifiedDamage is not null && EntityManager.EntityExists(component.Shooter))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Projectiles;
|
||||
@@ -152,13 +153,13 @@ public sealed class ImpactEffectEvent : EntityEventArgs
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raised when entity is just about to be hit with projectile but can reflect it
|
||||
/// Raised when an entity is just about to be hit with a projectile but can reflect it
|
||||
/// </summary>
|
||||
[ByRefEvent]
|
||||
public record struct ProjectileReflectAttemptEvent(EntityUid ProjUid, ProjectileComponent Component, bool Cancelled);
|
||||
|
||||
/// <summary>
|
||||
/// Raised when projectile hits other entity
|
||||
/// Raised when a projectile hits an entity
|
||||
/// </summary>
|
||||
[ByRefEvent]
|
||||
public readonly record struct ProjectileHitEvent(EntityUid Target);
|
||||
public record struct ProjectileHitEvent(DamageSpecifier Damage, EntityUid Target, EntityUid? Shooter = null);
|
||||
|
||||
Reference in New Issue
Block a user