HotPotatoSystem.cs 980 B

1234567891011121314151617181920212223242526272829
  1. using Content.Shared.HotPotato;
  2. using Robust.Shared.Random;
  3. using Robust.Shared.Timing;
  4. namespace Content.Client.HotPotato;
  5. public sealed class HotPotatoSystem : SharedHotPotatoSystem
  6. {
  7. [Dependency] private readonly IGameTiming _timing = default!;
  8. [Dependency] private readonly IRobustRandom _random = default!;
  9. [Dependency] private readonly SharedTransformSystem _transform = default!;
  10. public override void Update(float frameTime)
  11. {
  12. base.Update(frameTime);
  13. if (!_timing.IsFirstTimePredicted)
  14. return;
  15. var query = AllEntityQuery<ActiveHotPotatoComponent>();
  16. while (query.MoveNext(out var uid, out var comp))
  17. {
  18. if (_timing.CurTime < comp.TargetTime)
  19. continue;
  20. comp.TargetTime = _timing.CurTime + TimeSpan.FromSeconds(comp.EffectCooldown);
  21. Spawn("HotPotatoEffect", _transform.GetMapCoordinates(uid).Offset(_random.NextVector2(0.25f)));
  22. }
  23. }
  24. }