(Run After Every Scene or Interaction)
Apply time cost immediately after resolving an event.
Short Rest → +1 shard
Long Rest → +8 shards
Other Events → Add shards or moments according to the Event-Based Pseudo-Time Table
Moments may be accumulated or converted into shards if needed.
If:
Shard > ShardsPerDay
Then:
Shard = Shard - ShardsPerDay
Day += 1
After updating Shard:
Recalculate DayPhase automatically using the Shard → DayPhase mapping.
If:
Day > DaysPerMonth
Then:
Day = 1
Month += 1
Weekday progression:
Advance Weekday whenever Day increments.
If:
Weekday index > length(DaysOfWeek)
Then:
Weekday = first day of DaysOfWeek
If:
Month index > length(MonthsOfYear)
Then:
Month = first month of MonthsOfYear
Year += 1
After all overflow checks:
Update the message header to reflect the new authoritative time state.
Header must display:
Shard
DayPhase
Ordinal Day of Month
Weekday
Month
Year
Current State:
25th of Yulemar, Year 1025, Shard 12
Event: Short Rest (+1 shard)
Resolution:
Shard → 13 → overflow → Shard = 1
Day → 26 → overflow → Day = 1
Month → overflow → Month = Aelvryn
Year → increment → Year = 1026
DayPhase → recalculated from Shard
Resulting Header:
[Shard 1 – Morning | 1st of Aelvryn | Weekday: Solara | Year: 1026]