NPCPerceptionSystem.RecentlyInjected.cs 718 B

123456789101112131415161718192021222324
  1. using Content.Shared.NPC.Components;
  2. namespace Content.Server.NPC.Systems;
  3. public sealed partial class NPCPerceptionSystem
  4. {
  5. /// <summary>
  6. /// Tracks targets recently injected by medibots.
  7. /// </summary>
  8. /// <param name="frameTime"></param>
  9. private void UpdateRecentlyInjected(float frameTime)
  10. {
  11. var query = EntityQueryEnumerator<NPCRecentlyInjectedComponent>();
  12. while (query.MoveNext(out var uid, out var entity))
  13. {
  14. entity.Accumulator += frameTime;
  15. if (entity.Accumulator < entity.RemoveTime.TotalSeconds)
  16. continue;
  17. entity.Accumulator = 0;
  18. RemComp<NPCRecentlyInjectedComponent>(uid);
  19. }
  20. }
  21. }