using Content.Server.ParticleAccelerator.Components; using Content.Server.Singularity.Components; using Content.Shared.Singularity.Components; using Robust.Shared.Physics.Dynamics; namespace Content.Server.Singularity.EntitySystems; public sealed class SingularityGeneratorSystem : EntitySystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent(HandleParticleCollide); } private void HandleParticleCollide(EntityUid uid, ParticleProjectileComponent component, StartCollideEvent args) { if (EntityManager.TryGetComponent(args.OtherFixture.Body.Owner, out var singularityGeneratorComponent)) { singularityGeneratorComponent.Power += component.State switch { ParticleAcceleratorPowerState.Standby => 0, ParticleAcceleratorPowerState.Level0 => 1, ParticleAcceleratorPowerState.Level1 => 2, ParticleAcceleratorPowerState.Level2 => 4, ParticleAcceleratorPowerState.Level3 => 8, _ => 0 }; EntityManager.QueueDeleteEntity(uid); } } }