Show director summons as info toasts and presence queue labels.

Corridor waiters need a summon-phase byte on presence (v11); EventDef DirectorSummoned is info-only so clocks keep running.
This commit is contained in:
Leonid Pershin
2026-08-21 13:07:47 +03:00
parent d3c2327e23
commit 9e429d0cd7
29 changed files with 453 additions and 28 deletions
+14
View File
@@ -426,6 +426,20 @@ public sealed class School : IDisposable
return copy;
}
/// <summary>Queue a fact for the worker's notice board. Simulation never builds UI itself.</summary>
internal void RaiseWorldEvent(in WorldEvent fact) => _worldEvents.Add(fact);
/// <summary>
/// Presence wire tag for auto director summons. Values match <c>DirectorSummons.Presence*</c>
/// and <see cref="Protocol.PresenceSummonPhase"/>.
/// </summary>
public byte DirectorSummonPresencePhase(string personId) =>
DirectorSummonSystem.ResolvePresencePhase(this, personId);
/// <summary>ActionDef id for the person card when summoned but the live activity is idle.</summary>
public string? DirectorSummonPresenceActionId(string personId) =>
DirectorSummonSystem.PresenceActionId(DirectorSummonPresencePhase(personId));
private void RecordWorldEvents(DateTime before, DateTime after)
{
_worldEvents.AddRange(EventSystem.Detect(this, before, after));