docs: codify entity systems pattern and record combat extensions

This commit is contained in:
Rijad Zuzo
2026-08-12 00:19:48 +02:00
parent 661d53f31a
commit cd29da95e0
6 changed files with 69 additions and 15 deletions
+10 -3
View File
@@ -26,9 +26,9 @@ simulation. The current world schema is v14 and captures:
- opportunity records with stable type/status, interested NPC, trigger event,
target storage/resource/amount, exact later resolution event identity, or a
deterministic invalidation reason and close tick;
- a player record holding the player-citizen's hunger, energy, and carried
inventory. The player's world position remains presentation-owned and is
intentionally not serialized;
- a player record holding the player-citizen's hunger, energy, health,
downed state, and carried inventory. The player's world position remains
presentation-owned and is intentionally not serialized;
- combatant records (health, weapon, faction, position, hostility) for NPC
defenders and standalone raiders/wolves;
- faction records (food, warriors, aggression, morale, stance, war plan) for
@@ -248,6 +248,13 @@ to a binary-exact grid and faction food to a binary-exact step so that
arbitrary world floats round-trip through JSON without breaking deterministic
continuation checksums.
`PlayerStateRecord` v2 adds `health`, `max_health`, `downed`, and
`downed_ticks` so wolves and raiders can wound and down the player, with a
brief forced recovery that restores a fighting baseline. Nested v1 player
records migrate to full health and standing. The player combatant used by the
conflict system is derived state and is never serialized; hostile attacks
reduce the authoritative player health through the ordered event stream.
Current-schema parsing requires unique animal IDs that do not collide with
resource or storage IDs. An animal reservation must belong to an existing NPC
whose active feed task targets that exact animal. Every `animal_fed` event