using Content.Server.Explosion.EntitySystems; using Content.Shared.EntityEffects; using Content.Shared.EntityEffects.Effects.Transform; namespace Content.Server.EntityEffects.Effects.Transform; /// /// Creates an explosion at this entity's position. /// Intensity is modified by scale. /// /// public sealed partial class ExplosionEntityEffectSystem : EntityEffectSystem { [Dependency] private readonly ExplosionSystem _explosion = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { var intensity = MathF.Min(args.Effect.IntensityPerUnit * args.Scale, args.Effect.MaxTotalIntensity); _explosion.QueueExplosion( entity, args.Effect.ExplosionType, intensity, args.Effect.IntensitySlope, args.Effect.MaxIntensity, args.Effect.TileBreakScale); } }