Make DoAfters use DamageChangedMessage instead of an event (#3115)
This commit is contained in:
@@ -31,5 +31,21 @@ namespace Content.Shared.GameObjects.Components.Damage
|
||||
/// List containing data on each <see cref="DamageType"/> that was changed.
|
||||
/// </summary>
|
||||
public IReadOnlyList<DamageChangeData> Data { get; }
|
||||
|
||||
public bool TookDamage
|
||||
{
|
||||
get
|
||||
{
|
||||
foreach (var datum in Data)
|
||||
{
|
||||
if (datum.Delta > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,8 +39,6 @@ namespace Content.Shared.GameObjects.Components.Damage
|
||||
private readonly HashSet<DamageClass> _supportedClasses = new();
|
||||
private DamageFlag _flags;
|
||||
|
||||
public event Action<DamageChangedEventArgs>? HealthChangedEvent;
|
||||
|
||||
// TODO DAMAGE Use as default values, specify overrides in a separate property through yaml for better (de)serialization
|
||||
[ViewVariables] public string DamageContainerId { get; set; } = default!;
|
||||
|
||||
@@ -460,7 +458,6 @@ namespace Content.Shared.GameObjects.Components.Damage
|
||||
protected virtual void OnHealthChanged(DamageChangedEventArgs e)
|
||||
{
|
||||
Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, e);
|
||||
HealthChangedEvent?.Invoke(e);
|
||||
|
||||
var message = new DamageChangedMessage(this, e.Data);
|
||||
SendMessage(message);
|
||||
|
||||
@@ -9,14 +9,6 @@ namespace Content.Shared.GameObjects.Components.Damage
|
||||
{
|
||||
public interface IDamageableComponent : IComponent, IExAct
|
||||
{
|
||||
/// <summary>
|
||||
/// Called when the entity's <see cref="IDamageableComponent"/> values change.
|
||||
/// Of note is that a "deal 0 damage" call will still trigger this event
|
||||
/// (including both damage negated by resistance or simply inputting 0 as
|
||||
/// the amount of damage to deal).
|
||||
/// </summary>
|
||||
event Action<DamageChangedEventArgs> HealthChangedEvent;
|
||||
|
||||
/// <summary>
|
||||
/// Sum of all damages taken.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user