Merge branch 'master' into offmed-staging
This commit is contained in:
@@ -51,7 +51,7 @@ public sealed partial class StatusEffectsSystem : EntitySystem
|
||||
if (effect.EndEffectTime is null)
|
||||
continue;
|
||||
|
||||
if (!(_timing.CurTime >= effect.EndEffectTime))
|
||||
if (_timing.CurTime < effect.EndEffectTime)
|
||||
continue;
|
||||
|
||||
if (effect.AppliedTo is null)
|
||||
@@ -81,14 +81,14 @@ public sealed partial class StatusEffectsSystem : EntitySystem
|
||||
if (args.Container.ID != StatusEffectContainerComponent.ContainerId)
|
||||
return;
|
||||
|
||||
if (!TryComp<StatusEffectComponent>(args.Entity, out var statusComp))
|
||||
if (!_effectQuery.TryComp(args.Entity, out var statusComp))
|
||||
return;
|
||||
|
||||
// Make sure AppliedTo is set correctly so events can rely on it
|
||||
if (statusComp.AppliedTo != ent)
|
||||
{
|
||||
statusComp.AppliedTo = ent;
|
||||
Dirty(args.Entity, statusComp);
|
||||
DirtyField(args.Entity, statusComp, nameof(StatusEffectComponent.AppliedTo));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public sealed partial class StatusEffectsSystem : EntitySystem
|
||||
if (args.Container.ID != StatusEffectContainerComponent.ContainerId)
|
||||
return;
|
||||
|
||||
if (!TryComp<StatusEffectComponent>(args.Entity, out var statusComp))
|
||||
if (!_effectQuery.TryComp(args.Entity, out var statusComp))
|
||||
return;
|
||||
|
||||
var ev = new StatusEffectRemovedEvent(ent);
|
||||
@@ -135,20 +135,17 @@ public sealed partial class StatusEffectsSystem : EntitySystem
|
||||
/// <returns>Returns true if the effect is applied.</returns>
|
||||
private bool TryApplyStatusEffect(Entity<StatusEffectComponent> statusEffectEnt)
|
||||
{
|
||||
if (!statusEffectEnt.Comp.Applied &&
|
||||
statusEffectEnt.Comp.AppliedTo != null &&
|
||||
_timing.CurTime >= statusEffectEnt.Comp.StartEffectTime)
|
||||
{
|
||||
var ev = new StatusEffectAppliedEvent(statusEffectEnt.Comp.AppliedTo.Value);
|
||||
RaiseLocalEvent(statusEffectEnt, ref ev);
|
||||
if (statusEffectEnt.Comp.Applied ||
|
||||
statusEffectEnt.Comp.AppliedTo == null ||
|
||||
_timing.CurTime < statusEffectEnt.Comp.StartEffectTime)
|
||||
return false;
|
||||
|
||||
statusEffectEnt.Comp.Applied = true;
|
||||
var ev = new StatusEffectAppliedEvent(statusEffectEnt.Comp.AppliedTo.Value);
|
||||
RaiseLocalEvent(statusEffectEnt, ref ev);
|
||||
|
||||
DirtyField(statusEffectEnt, statusEffectEnt.Comp, nameof(StatusEffectComponent.StartEffectTime));
|
||||
return true;
|
||||
}
|
||||
statusEffectEnt.Comp.Applied = true;
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool CanAddStatusEffect(EntityUid uid, EntProtoId effectProto)
|
||||
@@ -215,7 +212,7 @@ public sealed partial class StatusEffectsSystem : EntitySystem
|
||||
var startTime = delay == null ? TimeSpan.Zero : _timing.CurTime + delay.Value;
|
||||
SetStatusEffectStartTime(effect.Value, startTime);
|
||||
|
||||
TryApplyStatusEffect((effect.Value, effectComp));
|
||||
TryApplyStatusEffect((statusEffect.Value, effectComp));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user