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(OnDamaged); SubscribeLocalEvent(OnItemToggled); SubscribeLocalEvent(OnProjectileHit); SubscribeLocalEvent(OnDespawn); SubscribeLocalEvent(OnTrigger); } private void OnDamaged(Entity 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 ent, ref ItemToggledEvent args) { if (args.Activated != ent.Comp.ActivatedSpark) return; DoSparks(ent, user: args.User); } private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args) { DoSparks(ent, args.Shooter); } private void OnDespawn(Entity ent, ref TimedDespawnEvent args) { DoSparks(ent); } private void OnTrigger(Entity ent, ref TriggerEvent args) { DoSparks(ent); } }