the side whose turn it is
the global time of day, before any time area overrides it
Moves to the next side, opening a new round and stepping the schedule on a wrap.
The percentage bonus alignment gets at a cell, through that cell's own time of day.
The time of day at a cell: the first containing time area's entry, else the global one.
StaticfromResumes from toJSON, with the same sides/schedule/areas the game was created with.
Which side is taking its turn, which round it is, and what time of day applies - the outer scenario loop.
advance()moves to the next side; wrapping past the last side opens a new round and steps the schedule on one entry, cycling.timeOfDayAt(x, y)andlawfulBonusAt(...)read the schedule for a cell, so a time area can give one region a different bonus without a second turn counter.Example