using Content.Shared._CP14.StatusEffect; using Content.Shared.StatusEffectNew; using Content.Shared.StatusEffectNew.Components; using Robust.Shared.Timing; namespace Content.Server._CP14.StatusEffect; public sealed partial class CP14EntityEffectsStatusEffectSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly EntityManager _entityManager = default!; public override void Update(float frameTime) { base.Update(frameTime); var query = EntityQueryEnumerator(); while (query.MoveNext(out var ent, out var entityEffect, out var statusEffect)) { if (entityEffect.NextUpdateTime > _timing.CurTime) continue; if (statusEffect.AppliedTo is not EntityUid targetUid) continue; entityEffect.NextUpdateTime = _timing.CurTime + entityEffect.Frequency; foreach (var effect in entityEffect.Effects) { //Apply Effect on target effect.Effect(new(targetUid, _entityManager)); } } } public override void Initialize() { base.Initialize(); } }