Commit Graph

93 Commits

Author SHA1 Message Date
admin 6cdeea6e46 feat: generate animal-care quests and render them in the journal 2026-08-08 20:27:59 +02:00
admin 089fef9968 feat: surface player standing and quest journal in the village HUD 2026-08-08 17:48:13 +02:00
admin 4d2a230c5b feat: surface open opportunity need on villager field note 2026-08-08 16:18:39 +02:00
Rijad Zuzo 35194912cc chore: tune Jajce presentation settings 2026-08-04 12:43:30 +02:00
Rijad Zuzo 2082773d31 feat: add nearby villager field notes 2026-08-03 12:47:54 +02:00
Rijad Zuzo ead75fca68 feat: add physical animal care delivery 2026-07-31 00:19:41 +02:00
Rijad Zuzo 7d410d8193 feat: add exact player context actions 2026-07-30 23:27:46 +02:00
Rijad Zuzo d950c3da68 feat: add paired goat care 2026-07-30 23:03:15 +02:00
Rijad Zuzo e3aa3440a2 feat: add deterministic goat routine 2026-07-26 23:52:56 +02:00
Rijad Zuzo f79c2bb630 feat: introduce identity-backed goat 2026-07-26 22:26:00 +02:00
Rijad Zuzo 1f09ebe6b6 feat: author discoverable forest edge 2026-07-18 19:09:04 +02:00
Rijad Zuzo 2719b0398b feat: derive resource visuals from state 2026-07-17 18:39:14 +02:00
Rijad Zuzo 04c5371b6b feat: author resource-aware riverbank grove 2026-07-17 13:57:57 +02:00
Rijad Zuzo 145b90eb97 feat: carve Jajce river into terrain 2026-07-17 01:05:09 +02:00
Rijad Zuzo 5356c34fd7 feat: index loaded resource discovery 2026-07-17 00:34:30 +02:00
Rijad Zuzo 2c88ed6ea8 feat: scale village queries and enrich Jajce center 2026-07-16 23:51:08 +02:00
Rijad Zuzo 4f88d15e12 feat: surface player routes for village needs 2026-07-16 12:36:50 +02:00
Rijad Zuzo d6e6a63048 feat: share village needs with helpers 2026-07-16 12:13:54 +02:00
Rijad Zuzo 0332c57a89 feat: let opportunity helpers act autonomously 2026-07-16 10:58:48 +02:00
Rijad Zuzo eaa15c076c feat: derive capable opportunity helpers 2026-07-16 10:41:05 +02:00
Rijad Zuzo 79dd503343 feat: add missing wood opportunities 2026-07-16 01:50:19 +02:00
Rijad Zuzo f82d9683de feat: package pantry crisis demo 2026-07-16 00:37:59 +02:00
Rijad Zuzo c23f6887c8 feat: make pantry crises visible in the world 2026-07-14 23:54:22 +02:00
Rijad Zuzo c722e32a88 feat: add knowledge-gated pantry opportunities 2026-07-13 00:46:56 +02:00
Rijad Zuzo 9fcf6a0a58 feat: add person history and trust reactions 2026-07-12 11:42:10 +02:00
Rijad Zuzo 99b8146f75 feat: add bounded npc memory retention 2026-07-12 01:10:10 +02:00
Rijad Zuzo 9a479ba182 feat: add provenance-aware npc communication 2026-07-11 19:58:47 +02:00
Rijad Zuzo 81409650df feat: add witnessed knowledge and wind ambience 2026-07-11 11:27:40 +02:00
Rijad Zuzo ce8f71082b refactor: clarify simulation ownership 2026-07-10 11:02:11 +02:00
Rijad Zuzo 0f7b12080e feat: define action completion costs 2026-07-10 10:36:08 +02:00
Rijad Zuzo 39989002ca feat: add stylized villager presentation 2026-07-09 23:47:46 +02:00
admin d6520c426a feat: resource consumption rate display in village panel
Village panel now shows daily consumption rates alongside stockpiles (e.g. Food: 15 (-2/d), Wood: 7 (-1/d)). Rates are computed over a rolling 200-tick (~1 day) window by summing item_consumed economic events. The rate display only appears when non-zero, keeping the panel clean until actual consumption occurs. Closes the feedback loop: events show individual transfers, rates show aggregate trends.
2026-07-09 01:18:33 +02:00
admin 6981c7e9bc feat: simulation speed control with bracket keys
Press [ to slow down, ] to speed up through 6 levels: 0.25x, 0.5x, 1x, 2x, 4x, 10x. Clock delta is multiplied by the current speed, so time_of_day advances proportionally and the visual day-night cycle stays synced. Current speed shown in the village panel header. 10x makes a full day cycle watchable in ~24 seconds. Speed changes are non-destructive to simulation determinism.
2026-07-09 00:25:57 +02:00
admin 595d67724f feat: runtime familiarity from shared work and utility exposure
NPCs who target the same resource or site concurrently gain mutual familiarity +0.1 per encounter, capped at 1.0. Action selection now receives the full NPC array and adds a +0.3 utility bonus for actions that familiar NPCs are currently performing - NPCs gravitate toward their housemates' professions. Inspector shows the highest-familiarity NPC with a percentage score under the resource lines.
2026-07-09 00:09:50 +02:00
admin 8094975094 feat: resource depletion events and village event feed
Record resource_depleted narrative events when NPC or player extraction exhausts a ResourceNode. Add get_recent_events() for cross-NPC event queries. Village panel now shows the last 3 village-wide events as a readable feed below the resource counters, making shortages and depletion visible without opening the inspector.
2026-07-08 21:22:43 +02:00
admin 8a1913c5ae feat: structured narrative event feed with per-NPC inspector timeline
Add narrative event types (task_started, npc_slept, npc_died, resource_depleted) alongside economic transfers. EconomicEventRecord gains create_narrative factory and human-readable description method. SimulationManager records task-start and sleep/death events, exposes get_npc_events() for per-NPC history queries. Inspector now shows a Recent timeline of the last 5 events for the selected NPC, plus displays carried wood count. Relax EconomicEventRecord validation to accept non-economic events. Update roadmap with completed milestones.
2026-07-08 19:02:11 +02:00
admin c61d286005 feat: wood inventory, carrying, and woodpile storage
Wood now follows the same gather-carry-deposit pattern as food. NPCs put harvested wood into inventory, walk to the VillageWoodpile StorageNode, and deposit it. Village wood syncs from storage. Player harvesting also routes wood to the woodpile. ActiveWorldAdapter exposes woodpile routing for DEPOSIT_WOOD action targeting. WorldViewManager recognizes wood inventory changes. Tests verify woodpile node existence, storage ID, navigation reachability, and adapter routing.
2026-07-08 18:55:51 +02:00
admin 5ea83b06ed feat: directional wind breeze and painted-terrain Ghibli styling
- Wind strokes now flow in a single prevailing direction (left-to-right breeze)
  with gentle flatness, narrow spread, and subtle tangential sway
- Added floating white specks (WindSpecks) as sunlight pollen/dust motes
- Two of each emitter (valley + ridge) for layered atmosphere
- Terrain: disabled auto_base_texture for flatter painted look, enabled
  overlay texture, bolder macro-variation (yellow-green 0.78/0.90/0.42
  and emerald 0.55/0.75/0.38), sharper material blends
2026-07-08 18:49:23 +02:00
admin ae0b3dbf89 chore: add wind stroke shader uid sidecar 2026-07-08 18:47:47 +02:00
admin 7aa5c1c979 feat: starvation balance rework and Ghibli wind-stroke visuals
- Reduce hunger rate to 0.125/tick (~25/day) for ~6-7 day death timeline
- Slow energy drain: idle 0.125, travel 0.5, work 0.5, complete 0.0625/tick
- Use exact binary fractions for all rates to preserve float precision in save/load
- Starving/critically-hungry NPCs always override sleep to seek food first
- Extend starvation death threshold from 20 to 600 ticks (~3 days of starvation)
- Add calligraphy-style wind stroke particles (WindStrokes scene + shader)
- Two wind stroke emitters in valley and ridge for Ghibli atmosphere
- Rework terrain macro-variation colors for vibrant warm-green palette
- Enhance environment: stronger glow/bloom, higher saturation, warmer sky/fog/ambient
2026-07-08 18:44:03 +02:00
admin cab732a977 feat: sync visual day-night cycle with simulation clock
DayNightCycle now reads time_of_day from SimulationManager group node, falling back to self-tracked elapsed for lookdev scenes. Simulation starts at 06:00 morning (tick 50) by default. TimeDial reads directly from SimulationManager and displays HH:MM format with a 24-hour dial arc. Removed initial_cycle override from JajceLookdev.
2026-07-08 18:04:04 +02:00
admin 6fdb9ba50f feat: expand resource discovery to 18 finite ResourceNodes
Add 6 new resources: farm_crop_01 (farming), berry_bush_river_02 (river bank), berry_patch_mill_01 (mill foraging), tree_forest_grove_01/02 (deep forest), wood_pile_mill_01 (mill stockpile). Extend tests to 18 resources, >=9 food, >=9 wood, >=6 berry, farming context assertion.
2026-07-08 17:21:05 +02:00
admin 4054e2c0dd feat: strengthen water and foreground silhouettes
- Upgrade river shader with multi-layer UV flow, fresnel edges, foam highlights, and specular sparkle
- Upgrade waterfall shader with dual-band scrolling, distinct foam contrast, and rim transparency
- Widen river (8m) and waterfall (8m) for greater visual presence
- Increase waterfall mist particles to 72 with wider spread and longer lifetime
- Add fortress crenellations (10), three turrets, and prominent ridge banner for readable skyline silhouette
- Remove duplicate banner nodes from JajceWorld instance (now owned by FortressBlockout scene)
- Update BUILD_IN_PUBLIC_PLAN and LEARNING_ROADMAP to reflect completion
2026-07-08 17:17:34 +02:00
admin c6e2d64162 feat: clarify jajce work-site silhouettes 2026-07-08 16:59:20 +02:00
admin 5251644b78 feat: stage simulation garden first read 2026-07-08 16:47:25 +02:00
admin cd0309e224 feat: add cinematic npc task glyphs 2026-07-08 16:31:34 +02:00
admin 0fa8d80119 docs: capture jajce lookdev baseline 2026-07-08 16:01:08 +02:00
admin 324084f233 feat: bake jajce terrain navigation 2026-07-08 15:53:39 +02:00
admin d2eca15ecd fix: camera tracks player elevation; snap all world objects to terrain
Camera: desired_focus_position.y now directly tracks the player's global Y. The existing smooth lerp on focus_position handles interpolation, so the camera follows the player up hills and down slopes without losing vertical sight. Previously only horizontally-deadzoned XZ was tracked.

jajce_world.gd: expanded terrain-snapping coverage to include all nodes under WorldObjects (ResourceNodes, StorageSites, ActivitySites) and the FortressBlockout's children. Added a type guard so non-Node3D children are safely skipped. This prevents houses, activity props, storage crates, and resource nodes from floating above or sinking below the sculpted terrain surface.
2026-07-07 17:07:57 +02:00
admin 41b515f474 fix: ground physics on real Terrain3D surface
Enable Terrain3D collision_mode=1 so the sculpted landscape provides real physical ground for player and NPCs. Disable GreyboxGround collision (layer/mask = 0) -- it is no longer the active physical floor.

NpcVisual no longer flattens nav waypoint Y to its current elevation. It now follows 3D path points and uses gravity (30 m/s^2) like the player, settling to terrain surface via is_on_floor() + Terrain3D collision. The flat NavigationMesh_greybox still provides correct lateral guidance; physics handles vertical grounding on slopes.

This fixes the player-walking-through-slopes bug and makes NPC movement follow actual terrain elevation for the village area (gentle slopes, ~2.4m noise amplitude). All 10 scenarios pass.
2026-07-07 16:56:15 +02:00