1
0

RevenantOverloadedLightsSystem.cs 934 B

123456789101112131415161718192021222324252627282930
  1. using Content.Server.Beam;
  2. using Content.Shared.Revenant.Components;
  3. using Content.Shared.Revenant.EntitySystems;
  4. namespace Content.Server.Revenant.EntitySystems;
  5. /// <summary>
  6. /// This handles...
  7. /// </summary>
  8. public sealed class RevenantOverloadedLightsSystem : SharedRevenantOverloadedLightsSystem
  9. {
  10. [Dependency] private readonly BeamSystem _beam = default!;
  11. protected override void OnZap(Entity<RevenantOverloadedLightsComponent> lights)
  12. {
  13. var component = lights.Comp;
  14. if (component.Target == null)
  15. return;
  16. var lxform = Transform(lights);
  17. var txform = Transform(component.Target.Value);
  18. if (!lxform.Coordinates.TryDistance(EntityManager, txform.Coordinates, out var distance))
  19. return;
  20. if (distance > component.ZapRange)
  21. return;
  22. _beam.TryCreateBeam(lights, component.Target.Value, component.ZapBeamEntityId);
  23. }
  24. }