Fix Being Drunk! (#41002)

* Drunk moment

* push

* fix test fails + a smidge of cleanup

* two smidges of cleanup

* Unpredicted so don't need the workaround

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
Princess Cheeseballs
2025-10-21 13:12:36 -07:00
committed by GitHub
parent 04a2c2e968
commit 4aac3dbc9d
9 changed files with 47 additions and 47 deletions

View File

@@ -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);
@@ -127,20 +127,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)
@@ -207,7 +204,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;
}