Scanner decays from the zone clock, not tick order; revert the consumable reorder
bdc8f1d0ran Execute before the always-updated pass in ConsumableItemEffect.Update; that moved StatModifier timing for every consumable (TheOverdriveLocksAndBoosts failed). The scan's decay is now derived from the zone clock since the last held tick (Scanner.Progress, one site), so it is the same on the tick it breaks for an equipment host and a consumable host, and Scanner is no longer an IAlwaysUpdatedBehavior. The pilot-path test attaches a task-less Agent: a patrolling Minion needs zone orbits.bdc8f1d0does not pass its own suite; this commit is the intended state. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
bdc8f1d048
commit
b26fbbaa95
4 changed files with 34 additions and 29 deletions
|
|
@ -1955,19 +1955,17 @@ public class ConsumableItemEffect : IStatContext
|
|||
.ToArray();
|
||||
}
|
||||
|
||||
// Execute, then the always-updated pass, as EquippedItem.Update orders them: an always-updated behaviour that reads
|
||||
// what Execute marked this tick (Scanner's held mark) sees the same tick on either host.
|
||||
public void Update(float delta)
|
||||
{
|
||||
foreach (var behavior in Behaviors)
|
||||
if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta);
|
||||
|
||||
foreach (var behavior in Behaviors)
|
||||
{
|
||||
if (!behavior.Execute(delta))
|
||||
break;
|
||||
}
|
||||
|
||||
foreach (var behavior in Behaviors)
|
||||
if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta);
|
||||
|
||||
RemainingDuration -= delta;
|
||||
// Progress moves every tick; a stat with a ConsumableProgress term must recompute against it, the same
|
||||
// way EquippedItem signals Heat and Durability from UpdatePerformance below.
|
||||
|
|
|
|||
Loading…
Reference in a new issue