Files
Delta-v/Content.Shared/_ES/Sparks/ESSparksSystem.Events.cs
T
Mish 8a2b4daccb Igniters spark when triggered (#1084)
* Igniters spark when triggered

* newlines my beloved
2026-05-30 09:16:20 -04:00

56 lines
1.7 KiB
C#

using Content.Shared._ES.Sparks.Components;
using Content.Shared.Damage.Systems;
using Content.Shared.Item.ItemToggle.Components;
using Content.Shared.Projectiles;
using Content.Shared.Trigger;
using Robust.Shared.Spawners;
namespace Content.Shared._ES.Sparks;
public sealed partial class ESSparksSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ESSparkOnHitComponent, DamageChangedEvent>(OnDamaged);
SubscribeLocalEvent<ESSparkOnItemToggleComponent, ItemToggledEvent>(OnItemToggled);
SubscribeLocalEvent<ESSparkOnProjectileHitComponent, ProjectileHitEvent>(OnProjectileHit);
SubscribeLocalEvent<ESSparkOnDespawnComponent, TimedDespawnEvent>(OnDespawn);
SubscribeLocalEvent<ESSparkOnTriggerComponent, TriggerEvent>(OnTrigger);
}
private void OnDamaged(Entity<ESSparkOnHitComponent> ent, ref DamageChangedEvent args)
{
if (args.DamageDelta is null)
return;
if (args.DamageDelta.GetTotal() < ent.Comp.Threshold)
return;
DoSparks(ent, user: args.Origin);
}
private void OnItemToggled(Entity<ESSparkOnItemToggleComponent> ent, ref ItemToggledEvent args)
{
if (args.Activated != ent.Comp.ActivatedSpark)
return;
DoSparks(ent, user: args.User);
}
private void OnProjectileHit(Entity<ESSparkOnProjectileHitComponent> ent, ref ProjectileHitEvent args)
{
DoSparks(ent, args.Shooter);
}
private void OnDespawn(Entity<ESSparkOnDespawnComponent> ent, ref TimedDespawnEvent args)
{
DoSparks(ent);
}
private void OnTrigger(Entity<ESSparkOnTriggerComponent> ent, ref TriggerEvent args)
{
DoSparks(ent);
}
}