EmpSystem.cs 763 B

123456789101112131415161718192021222324
  1. using Content.Shared.Emp;
  2. using Robust.Shared.Random;
  3. namespace Content.Client.Emp;
  4. public sealed class EmpSystem : SharedEmpSystem
  5. {
  6. [Dependency] private readonly IRobustRandom _random = default!;
  7. public override void Update(float frameTime)
  8. {
  9. base.Update(frameTime);
  10. var query = EntityQueryEnumerator<EmpDisabledComponent, TransformComponent>();
  11. while (query.MoveNext(out var uid, out var comp, out var transform))
  12. {
  13. if (Timing.CurTime > comp.TargetTime)
  14. {
  15. comp.TargetTime = Timing.CurTime + _random.NextFloat(0.8f, 1.2f) * TimeSpan.FromSeconds(comp.EffectCooldown);
  16. Spawn(EmpDisabledEffectPrototype, transform.Coordinates);
  17. }
  18. }
  19. }
  20. }