Summary

24-hour in-game clock governing upkeep, raid risk, and city map visuals. Replaces the standalone upkeep timer. Raids can dispatch anytime, but daytime raids are riskier.

Time Ratio

1 real second = 1 game minute
1 real minute = 1 game hour
24 real minutes = 1 full game day

Day / Night

PeriodGame HoursReal Duration
Night20:00–06:0010 real min
Day06:00–20:0014 real min

Night is the natural raiding window. Day is for base operations, training, and prep.

Systems That Read the Clock

SystemHow It Uses the Clock
UpkeepFires once per game-day at a fixed hour (e.g., 06:00 dawn). Replaces the old flat 180s recurring timer. Each tick consumes 1 food per raccoon from Pantry. See Economy.
Raid encounter chanceDaytime raids suffer 2× encounter base chance. Night raids use base chance unmodified. See Raid Encounters.
City map visualsLighting and sky shift with clock. Cosmetic only — no gameplay effect beyond the encounter modifier.

Raid Timing Rule

Raids can dispatch anytime. No hard gate. Daytime raids double encounter risk, creating a soft incentive to raid at night without blocking desperate or strategic daytime runs.

Implementation Notes

  • Clock state is a single float GameClockTime (0.0–1440.0 game-minutes, wrapping) on the save file.
  • Clock ticks in real time — no pause, no fast-forward in MVP.
  • IsDaytime() helper: returns true if GameClockTime is between 360 (06:00) and 1200 (20:00).
  • Upkeep binds to clock via callback when GameClockTime crosses the upkeep hour.

Open Questions

  • Should the clock pause when the game is paused / player is in a menu?
  • Should there be a visible clock HUD element, or just ambient lighting cues?
  • Exact upkeep hour: 06:00 (dawn) feels natural but is it the right pacing?