feat: deliver emergent Jajce commitments
This commit is contained in:
@@ -41,10 +41,15 @@ SimulationClock
|
||||
-> ActionTargetResolver resolves a stable target ID
|
||||
-> VillageEconomy performs inventory/storage transactions
|
||||
-> AnimalCareSystem advances animal needs, routines, and feeding
|
||||
-> SimulationEventLog records completed facts
|
||||
-> SimulationEventLog records and indexes completed facts
|
||||
-> WorldEventStore exposes typed participants, locations, and causal queries
|
||||
-> EventKnowledgeSystem records, ranks, transfers, and retains bounded knowledge
|
||||
-> RelationshipSystem applies evidence-gated social consequences
|
||||
-> VillageOpportunitySystem projects one known unresolved need
|
||||
-> RelationshipSystem applies seven-dimensional evidence-backed consequences
|
||||
-> SituationSystem projects real unresolved conditions from facts and events
|
||||
-> QuestJournalSystem records only player discovery/tracking preference
|
||||
-> SocialCommitmentSystem resolves promises from ordinary outcome events
|
||||
-> ConversationService plans deterministic semantic turns from current context
|
||||
-> VillageOpportunitySystem preserves the legacy bounded compatibility slice
|
||||
-> ConflictSystem advances indexed combatants and authoritative combat outcomes
|
||||
-> WorldViewManager presents travel, NPC state, and world-state cues
|
||||
-> ActiveWorldAdapter supplies loaded-world positions/capacity
|
||||
@@ -81,14 +86,29 @@ would otherwise obscure that lifecycle:
|
||||
saves. It emits combat and war narrative facts
|
||||
and spawn/death signals that presentation binds to `HostileCombatant` visuals;
|
||||
- `simulation/events/SimulationEventLog.gd` owns ordered event identity,
|
||||
history queries, and rate calculations;
|
||||
- `simulation/knowledge/EventKnowledgeSystem.gd` owns per-NPC references to
|
||||
O(1) ID lookup, participant/type indexes, history queries, and rate
|
||||
calculations. `WorldEventStore` supplies the richer typed entity/location
|
||||
boundary without making presentation assets part of headless facts;
|
||||
- `simulation/knowledge/EventKnowledgeSystem.gd` owns player/NPC references to
|
||||
known objective events, immutable acquisition provenance, proximity witnesses
|
||||
at record time, one-hop direct fact transfer, and deterministic recent-fact
|
||||
retention/importance ranking. It can place the active opportunity trigger
|
||||
first without weakening its direct-source or one-hop checks;
|
||||
at record time, one-hop direct fact transfer, salience/confidence/pinning,
|
||||
and deterministic recent-fact retention/importance ranking;
|
||||
- `simulation/relationships/RelationshipSystem.gd` owns directed relationship
|
||||
queries, event-driven trust changes, and deterministic social tie-breaking;
|
||||
queries across familiarity, trust, affection, respect, fear, obligation, and
|
||||
hostility, exact event-backed changes, and deterministic social tie-breaking;
|
||||
- `simulation/situations/` owns typed predicates, bounded/deduplicated world
|
||||
situations, live progress projection, the player journal, and social
|
||||
commitments. None of these systems creates quest-only stock, enemies, or
|
||||
actions;
|
||||
- `simulation/dialogue/` owns semantic intent definitions, deterministic
|
||||
conversation planning, safe template substitution, and the narrow Dialogue
|
||||
Manager presentation adapter. Only semantic acts/topics enter persistence;
|
||||
- `simulation/commands/` owns copy-only commands/offers/results and reusable
|
||||
typed action effects. Concrete command services must revalidate authority at
|
||||
execution time for both player and NPC callers;
|
||||
- `simulation/regional/` owns deterministic scheduled jobs, keyed random
|
||||
decisions, and analytical elapsed-tick helpers. Presentation frame budgets
|
||||
may defer due work but cannot reorder it;
|
||||
- `simulation/population/SimulationPopulationView.gd` owns a transient derived
|
||||
all/living/starving stable-ID index. The manager rebuilds it once at the tick
|
||||
boundary and refreshes it after each interleaved NPC update; relationship and
|
||||
@@ -153,6 +173,7 @@ hard to read.
|
||||
| --- | --- |
|
||||
| `simulation/` | Headless-capable orchestration and core models |
|
||||
| `simulation/actions/` | Action decisions, execution, and target queries |
|
||||
| `simulation/commands/` | Shared player/NPC command, offer, result, and effect contracts |
|
||||
| `simulation/animals/` | Animal lifecycle, target claims, and feeding transactions |
|
||||
| `simulation/economy/` | Authoritative inventory and storage transactions |
|
||||
| `simulation/events/` | Immutable event history and derived event queries |
|
||||
@@ -160,11 +181,15 @@ hard to read.
|
||||
| `simulation/relationships/` | Directed social consequences and relationship queries |
|
||||
| `simulation/population/` | Transient per-tick population query indexes |
|
||||
| `simulation/opportunities/` | Knowledge-gated unresolved-condition projections |
|
||||
| `simulation/situations/` | World situation, journal, and commitment lifecycles |
|
||||
| `simulation/dialogue/` | Semantic conversation planning and presenter boundary |
|
||||
| `simulation/regional/` | Regional records, due-job scheduling, keyed randomness, analytical updates |
|
||||
| `simulation/state/` | Versioned, serializable mutable records |
|
||||
| `simulation/definitions/` | Stable IDs and immutable gameplay definitions |
|
||||
| `simulation/persistence/` | Validated local save-file storage |
|
||||
| `simulation/benchmark/` | Reproducible simulation and loaded-world query workloads |
|
||||
| `world/` | Loaded-world interaction geometry and presentation adapters |
|
||||
| `world/targets/` | Context-scoped target capabilities and transient presentation handles |
|
||||
| `world/animals/` | Animal presentation binding, routine sites, and navigation reporting |
|
||||
| `world/animals/goat/` | Self-contained goat scene, visual script, habitat, and lookdev scene |
|
||||
| `world/resource_nodes/` | Finite resource presentation and disposable loaded-anchor index |
|
||||
@@ -217,6 +242,15 @@ guidance without turning established-path cleanup into unrelated churn.
|
||||
- New mutable features define serialization and deterministic continuation at
|
||||
the same time as their first gameplay use. Cross-record causes use stable
|
||||
event IDs rather than object references or prose.
|
||||
- A situation or journal entry is a projection of ordinary facts. Accepting it
|
||||
creates a social commitment only; fulfillment, supersession, failure, and
|
||||
consequences always cite exact ordinary outcome events.
|
||||
- Dialogue authority is the selected semantic intent/action at an expected
|
||||
revision. Dialogue Manager renders one already-planned turn and never
|
||||
evaluates gameplay conditions or mutates simulation state.
|
||||
- Loaded navigation and visuals never decide whether distant work or travel
|
||||
completes. Regional completion belongs to serialized due jobs; presentation
|
||||
may interpolate and report local feasibility only.
|
||||
- Benchmark fixtures use ordinary simulation records and must round-trip
|
||||
through the current state schema. They may control workload setup, but must
|
||||
not add benchmark-only fields or branches to production saves and ticks.
|
||||
|
||||
Reference in New Issue
Block a user