using Content.Server.Explosion.EntitySystems; using Content.Server.Lightning; using Content.Server.Lightning.Components; namespace Content.Server.Tesla.EntitySystems; /// /// The component allows lightning to strike this target. And determining the behavior of the target when struck by lightning. /// public sealed class LightningTargetSystem : EntitySystem { [Dependency] private readonly ExplosionSystem _explosionSystem = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnHitByLightning); } private void OnHitByLightning(Entity uid, ref HitByLightningEvent args) { if (!uid.Comp.LightningExplode) return; _explosionSystem.QueueExplosion( Transform(uid).MapPosition, uid.Comp.ExplosionPrototype, uid.Comp.TotalIntensity, uid.Comp.Dropoff, uid.Comp.MaxTileIntensity, canCreateVacuum: false); } }