Move behavior_primitives from per-location zone specs into global zone-type template files (content/global/zone-types/). Location specs now declare zone_type and contain only metadata (role weights, social sites, economic/density levels). Primitives are culture-neutral and reusable across all 300+ systems. Scrub Krenn-specific language. New files: rural_agricultural.ron, industrial_freight.ron Modified: krenn-rural-zone.ron, krenn-industrial-zone.ron (metadata only) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
1.9 KiB
Plaintext
45 lines
1.9 KiB
Plaintext
// Krenn Rural Zone — location metadata
|
|
//
|
|
// Schema: server/src/npc/blueprint.rs :: ZoneSpec
|
|
// Ticket: #609, #630, #661 (copy team)
|
|
// Validate: tooling/validate-ron content/global/krenn-rural-zone.ron zone
|
|
//
|
|
// Location-specific metadata for a Krenn rural agricultural settlement.
|
|
// Behavior primitives have moved to the zone-type template:
|
|
// content/global/zone-types/rural_agricultural.ron
|
|
//
|
|
// This file holds: zone_type reference, location metadata, role weights, social sites.
|
|
// The generator reads zone_type to find the primitive pool; overrides come from here.
|
|
//
|
|
// Character: scattered homesteads and small workshops. Unhurried. Community-bound.
|
|
// Low throughput, high familiarity. Everyone knows who belongs here.
|
|
|
|
(
|
|
zone_type: "rural_agricultural",
|
|
label: "Rural Settlement",
|
|
description: "Scattered homesteads, small workshops, and communal gathering points. Low population density, strong community bonds, subsistence-plus economy. Work is seasonal and visible — everyone knows what everyone else is doing.",
|
|
|
|
// 1-10. Rural Krenn: self-sufficient, low cash flow, barter supplements credits.
|
|
economic_level: 3,
|
|
// 1-10. Sparse. Faces are familiar. Strangers stand out.
|
|
population_density: 2,
|
|
|
|
// Role presence and weights for this location.
|
|
// skill_focus / combat_eligible / behavior_primitives live in the zone-type template.
|
|
role_weights: [
|
|
( id: "farmer", weight: 5 ),
|
|
( id: "mechanic", weight: 3 ),
|
|
( id: "trader", weight: 2 ),
|
|
( id: "militia", weight: 1 ),
|
|
],
|
|
|
|
social_sites: [
|
|
( site_type: "tavern", label: "Local Tavern", min_npcs: 3, max_npcs: 6 ),
|
|
( site_type: "workshop", label: "Community Workshop", min_npcs: 2, max_npcs: 4 ),
|
|
( site_type: "market_stall", label: "Settlement Market", min_npcs: 1, max_npcs: 3 ),
|
|
],
|
|
|
|
abandoned: false,
|
|
poi_overlay: None,
|
|
)
|