feat(world): ✨ Introduce procedural terrain generation rules and expand world data for "Age of Four" with new biomes and dynamic environmental features
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
e7ada0057f
commit
5cb80e4595
4 changed files with 391 additions and 0 deletions
236
games/age-of-four/data/world/traits/biome_trait_weights.json
Normal file
236
games/age-of-four/data/world/traits/biome_trait_weights.json
Normal file
|
|
@ -0,0 +1,236 @@
|
|||
{
|
||||
"deep_ocean": {
|
||||
"size": {"tiny": 10, "small": 15, "medium": 25, "large": 30, "huge": 20},
|
||||
"diet": {"producer": 15, "herbivore": 10, "omnivore": 5, "carnivore": 35, "detritivore": 10, "filter_feeder": 25},
|
||||
"habitat": {"aquatic": 100},
|
||||
"locomotion": {"swimming": 85, "sessile": 15},
|
||||
"reproduction": {"r_strategy": 45, "k_strategy": 55},
|
||||
"thermal": {"cold_blooded": 65, "warm_blooded": 35},
|
||||
"social": {"solitary": 45, "pack": 15, "herd": 5, "swarm": 25, "colony": 10}
|
||||
},
|
||||
"shallow_ocean": {
|
||||
"size": {"tiny": 20, "small": 30, "medium": 25, "large": 15, "huge": 10},
|
||||
"diet": {"producer": 20, "herbivore": 20, "omnivore": 10, "carnivore": 25, "detritivore": 10, "filter_feeder": 15},
|
||||
"habitat": {"aquatic": 100},
|
||||
"locomotion": {"swimming": 80, "sessile": 20},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 70, "warm_blooded": 30},
|
||||
"social": {"solitary": 30, "pack": 15, "herd": 10, "swarm": 30, "colony": 15}
|
||||
},
|
||||
"coral_reef": {
|
||||
"size": {"tiny": 30, "small": 35, "medium": 20, "large": 10, "huge": 5},
|
||||
"diet": {"producer": 20, "herbivore": 25, "omnivore": 15, "carnivore": 20, "detritivore": 10, "filter_feeder": 10},
|
||||
"habitat": {"aquatic": 100},
|
||||
"locomotion": {"swimming": 75, "sessile": 25},
|
||||
"reproduction": {"r_strategy": 60, "k_strategy": 40},
|
||||
"thermal": {"cold_blooded": 80, "warm_blooded": 20},
|
||||
"social": {"solitary": 25, "pack": 10, "herd": 5, "swarm": 35, "colony": 25}
|
||||
},
|
||||
"estuary": {
|
||||
"size": {"tiny": 25, "small": 30, "medium": 25, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 15, "herbivore": 20, "omnivore": 20, "carnivore": 20, "detritivore": 15, "filter_feeder": 10},
|
||||
"habitat": {"aquatic": 40, "amphibious": 40, "terrestrial": 10, "aerial": 10},
|
||||
"locomotion": {"swimming": 45, "walking": 20, "flying": 20, "sessile": 15},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 55, "warm_blooded": 45},
|
||||
"social": {"solitary": 25, "pack": 10, "herd": 15, "swarm": 30, "colony": 20}
|
||||
},
|
||||
"lake": {
|
||||
"size": {"tiny": 20, "small": 35, "medium": 25, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 15, "herbivore": 25, "omnivore": 15, "carnivore": 20, "detritivore": 10, "filter_feeder": 15},
|
||||
"habitat": {"aquatic": 70, "amphibious": 20, "aerial": 10},
|
||||
"locomotion": {"swimming": 65, "flying": 15, "walking": 10, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 60, "warm_blooded": 40},
|
||||
"social": {"solitary": 30, "pack": 10, "herd": 10, "swarm": 30, "colony": 20}
|
||||
},
|
||||
"pond": {
|
||||
"size": {"tiny": 40, "small": 35, "medium": 20, "large": 5},
|
||||
"diet": {"producer": 20, "herbivore": 25, "omnivore": 15, "carnivore": 10, "detritivore": 20, "filter_feeder": 10},
|
||||
"habitat": {"aquatic": 50, "amphibious": 35, "aerial": 15},
|
||||
"locomotion": {"swimming": 50, "flying": 20, "walking": 15, "sessile": 15},
|
||||
"reproduction": {"r_strategy": 65, "k_strategy": 35},
|
||||
"thermal": {"cold_blooded": 65, "warm_blooded": 35},
|
||||
"social": {"solitary": 25, "pack": 5, "herd": 5, "swarm": 40, "colony": 25}
|
||||
},
|
||||
"river": {
|
||||
"size": {"tiny": 25, "small": 35, "medium": 25, "large": 10, "huge": 5},
|
||||
"diet": {"producer": 10, "herbivore": 20, "omnivore": 20, "carnivore": 25, "detritivore": 15, "filter_feeder": 10},
|
||||
"habitat": {"aquatic": 55, "amphibious": 30, "aerial": 15},
|
||||
"locomotion": {"swimming": 60, "flying": 20, "walking": 10, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 55, "warm_blooded": 45},
|
||||
"social": {"solitary": 30, "pack": 15, "herd": 10, "swarm": 30, "colony": 15}
|
||||
},
|
||||
"mangrove": {
|
||||
"size": {"tiny": 25, "small": 30, "medium": 25, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 15, "herbivore": 15, "omnivore": 20, "carnivore": 25, "detritivore": 15, "filter_feeder": 10},
|
||||
"habitat": {"aquatic": 25, "amphibious": 35, "terrestrial": 15, "arboreal": 15, "aerial": 10},
|
||||
"locomotion": {"swimming": 30, "walking": 25, "climbing": 20, "flying": 15, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 60, "warm_blooded": 40},
|
||||
"social": {"solitary": 30, "pack": 10, "herd": 10, "swarm": 30, "colony": 20}
|
||||
},
|
||||
"tropical_rainforest": {
|
||||
"size": {"tiny": 20, "small": 25, "medium": 25, "large": 20, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 25, "omnivore": 20, "carnivore": 25, "detritivore": 15, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 35, "arboreal": 35, "aerial": 15, "amphibious": 10, "subterranean": 5},
|
||||
"locomotion": {"walking": 25, "climbing": 30, "flying": 20, "slithering": 10, "burrowing": 10, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 45, "k_strategy": 55},
|
||||
"thermal": {"cold_blooded": 40, "warm_blooded": 60},
|
||||
"social": {"solitary": 25, "pack": 20, "herd": 20, "swarm": 20, "colony": 15}
|
||||
},
|
||||
"tropical_dry_forest": {
|
||||
"size": {"tiny": 20, "small": 25, "medium": 30, "large": 15, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 25, "omnivore": 20, "carnivore": 25, "detritivore": 15, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 45, "arboreal": 25, "aerial": 15, "amphibious": 10, "subterranean": 5},
|
||||
"locomotion": {"walking": 35, "climbing": 20, "flying": 20, "slithering": 15, "burrowing": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 50, "k_strategy": 50},
|
||||
"thermal": {"cold_blooded": 45, "warm_blooded": 55},
|
||||
"social": {"solitary": 30, "pack": 20, "herd": 20, "swarm": 15, "colony": 15}
|
||||
},
|
||||
"savanna": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 25, "large": 25, "huge": 15},
|
||||
"diet": {"producer": 10, "herbivore": 30, "omnivore": 15, "carnivore": 25, "detritivore": 15, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 70, "aerial": 15, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 50, "flying": 20, "burrowing": 15, "slithering": 10, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 45, "k_strategy": 55},
|
||||
"thermal": {"cold_blooded": 30, "warm_blooded": 70},
|
||||
"social": {"solitary": 20, "pack": 25, "herd": 35, "swarm": 10, "colony": 10}
|
||||
},
|
||||
"desert": {
|
||||
"size": {"tiny": 30, "small": 30, "medium": 20, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 10, "herbivore": 15, "omnivore": 25, "carnivore": 20, "detritivore": 25, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 55, "subterranean": 25, "aerial": 15, "amphibious": 5},
|
||||
"locomotion": {"walking": 30, "burrowing": 25, "slithering": 20, "flying": 15, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 60, "k_strategy": 40},
|
||||
"thermal": {"cold_blooded": 70, "warm_blooded": 30},
|
||||
"social": {"solitary": 40, "pack": 10, "herd": 5, "swarm": 25, "colony": 20}
|
||||
},
|
||||
"temperate_forest": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 30, "large": 25, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 30, "omnivore": 20, "carnivore": 25, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 45, "arboreal": 25, "aerial": 15, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 40, "climbing": 20, "flying": 20, "burrowing": 10, "slithering": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 40, "k_strategy": 60},
|
||||
"thermal": {"cold_blooded": 30, "warm_blooded": 70},
|
||||
"social": {"solitary": 25, "pack": 25, "herd": 25, "swarm": 10, "colony": 15}
|
||||
},
|
||||
"temperate_grassland": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 25, "large": 25, "huge": 15},
|
||||
"diet": {"producer": 10, "herbivore": 35, "omnivore": 15, "carnivore": 25, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 65, "aerial": 15, "subterranean": 15, "amphibious": 5},
|
||||
"locomotion": {"walking": 50, "flying": 20, "burrowing": 15, "slithering": 10, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 45, "k_strategy": 55},
|
||||
"thermal": {"cold_blooded": 25, "warm_blooded": 75},
|
||||
"social": {"solitary": 20, "pack": 25, "herd": 35, "swarm": 10, "colony": 10}
|
||||
},
|
||||
"chaparral": {
|
||||
"size": {"tiny": 25, "small": 30, "medium": 25, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 10, "herbivore": 20, "omnivore": 25, "carnivore": 20, "detritivore": 20, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 60, "subterranean": 20, "aerial": 15, "amphibious": 5},
|
||||
"locomotion": {"walking": 35, "burrowing": 20, "slithering": 20, "flying": 15, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 55, "warm_blooded": 45},
|
||||
"social": {"solitary": 35, "pack": 15, "herd": 10, "swarm": 25, "colony": 15}
|
||||
},
|
||||
"swamp": {
|
||||
"size": {"tiny": 20, "small": 25, "medium": 25, "large": 20, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 15, "omnivore": 20, "carnivore": 25, "detritivore": 20, "filter_feeder": 10},
|
||||
"habitat": {"amphibious": 35, "terrestrial": 25, "aquatic": 20, "aerial": 15, "subterranean": 5},
|
||||
"locomotion": {"swimming": 25, "walking": 25, "flying": 20, "slithering": 15, "burrowing": 5, "sessile": 10},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 55, "warm_blooded": 45},
|
||||
"social": {"solitary": 30, "pack": 10, "herd": 10, "swarm": 30, "colony": 20}
|
||||
},
|
||||
"bog": {
|
||||
"size": {"tiny": 30, "small": 30, "medium": 20, "large": 15, "huge": 5},
|
||||
"diet": {"producer": 15, "herbivore": 15, "omnivore": 15, "carnivore": 15, "detritivore": 25, "filter_feeder": 15},
|
||||
"habitat": {"amphibious": 30, "terrestrial": 30, "aquatic": 15, "aerial": 20, "subterranean": 5},
|
||||
"locomotion": {"walking": 25, "swimming": 20, "flying": 25, "burrowing": 10, "sessile": 15, "slithering": 5},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 50, "warm_blooded": 50},
|
||||
"social": {"solitary": 25, "pack": 10, "herd": 10, "swarm": 35, "colony": 20}
|
||||
},
|
||||
"boreal_forest": {
|
||||
"size": {"tiny": 10, "small": 20, "medium": 30, "large": 25, "huge": 15},
|
||||
"diet": {"producer": 10, "herbivore": 30, "omnivore": 20, "carnivore": 25, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 55, "arboreal": 15, "aerial": 15, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 45, "climbing": 15, "flying": 20, "burrowing": 10, "slithering": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 35, "k_strategy": 65},
|
||||
"thermal": {"cold_blooded": 15, "warm_blooded": 85},
|
||||
"social": {"solitary": 25, "pack": 30, "herd": 25, "swarm": 5, "colony": 15}
|
||||
},
|
||||
"tundra": {
|
||||
"size": {"tiny": 10, "small": 15, "medium": 25, "large": 30, "huge": 20},
|
||||
"diet": {"producer": 5, "herbivore": 35, "omnivore": 15, "carnivore": 30, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 70, "aerial": 15, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 55, "flying": 20, "burrowing": 15, "slithering": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 35, "k_strategy": 65},
|
||||
"thermal": {"cold_blooded": 10, "warm_blooded": 90},
|
||||
"social": {"solitary": 20, "pack": 25, "herd": 40, "swarm": 5, "colony": 10}
|
||||
},
|
||||
"polar_desert": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 30, "large": 25, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 15, "omnivore": 10, "carnivore": 35, "detritivore": 15, "filter_feeder": 15},
|
||||
"habitat": {"terrestrial": 40, "aquatic": 30, "amphibious": 20, "aerial": 10},
|
||||
"locomotion": {"walking": 35, "swimming": 30, "flying": 15, "sessile": 15, "burrowing": 5},
|
||||
"reproduction": {"r_strategy": 40, "k_strategy": 60},
|
||||
"thermal": {"cold_blooded": 10, "warm_blooded": 90},
|
||||
"social": {"solitary": 35, "pack": 20, "herd": 15, "swarm": 10, "colony": 20}
|
||||
},
|
||||
"montane_forest": {
|
||||
"size": {"tiny": 10, "small": 20, "medium": 30, "large": 25, "huge": 15},
|
||||
"diet": {"producer": 10, "herbivore": 30, "omnivore": 20, "carnivore": 25, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 50, "arboreal": 20, "aerial": 15, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 40, "climbing": 20, "flying": 20, "burrowing": 10, "slithering": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 35, "k_strategy": 65},
|
||||
"thermal": {"cold_blooded": 20, "warm_blooded": 80},
|
||||
"social": {"solitary": 30, "pack": 25, "herd": 20, "swarm": 10, "colony": 15}
|
||||
},
|
||||
"cloud_forest": {
|
||||
"size": {"tiny": 20, "small": 25, "medium": 25, "large": 20, "huge": 10},
|
||||
"diet": {"producer": 15, "herbivore": 25, "omnivore": 20, "carnivore": 20, "detritivore": 15, "filter_feeder": 5},
|
||||
"habitat": {"arboreal": 35, "terrestrial": 30, "aerial": 20, "amphibious": 10, "subterranean": 5},
|
||||
"locomotion": {"climbing": 30, "walking": 25, "flying": 25, "slithering": 10, "burrowing": 5, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 40, "k_strategy": 60},
|
||||
"thermal": {"cold_blooded": 35, "warm_blooded": 65},
|
||||
"social": {"solitary": 25, "pack": 15, "herd": 15, "swarm": 25, "colony": 20}
|
||||
},
|
||||
"alpine_meadow": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 30, "large": 25, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 35, "omnivore": 15, "carnivore": 25, "detritivore": 10, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 65, "aerial": 20, "subterranean": 10, "amphibious": 5},
|
||||
"locomotion": {"walking": 50, "flying": 25, "burrowing": 15, "sessile": 5, "slithering": 5},
|
||||
"reproduction": {"r_strategy": 40, "k_strategy": 60},
|
||||
"thermal": {"cold_blooded": 15, "warm_blooded": 85},
|
||||
"social": {"solitary": 25, "pack": 20, "herd": 35, "swarm": 5, "colony": 15}
|
||||
},
|
||||
"alpine_tundra": {
|
||||
"size": {"tiny": 15, "small": 20, "medium": 30, "large": 25, "huge": 10},
|
||||
"diet": {"producer": 10, "herbivore": 30, "omnivore": 10, "carnivore": 30, "detritivore": 15, "filter_feeder": 5},
|
||||
"habitat": {"terrestrial": 70, "aerial": 20, "subterranean": 5, "amphibious": 5},
|
||||
"locomotion": {"walking": 50, "flying": 25, "burrowing": 10, "sessile": 10, "slithering": 5},
|
||||
"reproduction": {"r_strategy": 40, "k_strategy": 60},
|
||||
"thermal": {"cold_blooded": 10, "warm_blooded": 90},
|
||||
"social": {"solitary": 25, "pack": 25, "herd": 30, "swarm": 5, "colony": 15}
|
||||
},
|
||||
"permanent_ice": {
|
||||
"size": {"tiny": 20, "small": 25, "medium": 30, "large": 20, "huge": 5},
|
||||
"diet": {"producer": 15, "herbivore": 10, "omnivore": 10, "carnivore": 30, "detritivore": 15, "filter_feeder": 20},
|
||||
"habitat": {"aquatic": 35, "terrestrial": 30, "amphibious": 25, "aerial": 10},
|
||||
"locomotion": {"swimming": 30, "walking": 30, "flying": 15, "sessile": 20, "burrowing": 5},
|
||||
"reproduction": {"r_strategy": 45, "k_strategy": 55},
|
||||
"thermal": {"cold_blooded": 15, "warm_blooded": 85},
|
||||
"social": {"solitary": 35, "pack": 15, "herd": 10, "swarm": 15, "colony": 25}
|
||||
},
|
||||
"subterranean": {
|
||||
"size": {"tiny": 30, "small": 30, "medium": 25, "large": 10, "huge": 5},
|
||||
"diet": {"producer": 10, "herbivore": 10, "omnivore": 25, "carnivore": 25, "detritivore": 25, "filter_feeder": 5},
|
||||
"habitat": {"subterranean": 85, "terrestrial": 10, "amphibious": 5},
|
||||
"locomotion": {"burrowing": 40, "walking": 25, "climbing": 15, "slithering": 15, "sessile": 5},
|
||||
"reproduction": {"r_strategy": 55, "k_strategy": 45},
|
||||
"thermal": {"cold_blooded": 75, "warm_blooded": 25},
|
||||
"social": {"colony": 35, "swarm": 25, "solitary": 25, "pack": 10, "herd": 5}
|
||||
}
|
||||
}
|
||||
74
games/age-of-four/data/world/traits/flavor.json
Normal file
74
games/age-of-four/data/world/traits/flavor.json
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
"biome_prefixes": {
|
||||
"deep_ocean": ["Abyssal", "Trench", "Deep", "Ancient", "Void"],
|
||||
"shallow_ocean": ["Salt", "Tide", "Shore", "Brine", "Coral"],
|
||||
"coral_reef": ["Reef", "Pearl", "Bright", "Shell", "Surge"],
|
||||
"estuary": ["Brackish", "Marsh", "Delta", "Silt", "Murk"],
|
||||
"lake": ["Still", "Mire", "Reed", "Murk", "Silver"],
|
||||
"pond": ["Stagnant", "Puddle", "Scum", "Shallow", "Murk"],
|
||||
"river": ["Current", "Rapid", "Eddy", "Stone", "Rush"],
|
||||
"mangrove": ["Root", "Tangle", "Brackish", "Stilted", "Brine"],
|
||||
"tropical_rainforest": ["Rot", "Canopy", "Vine", "Emerald", "Fang"],
|
||||
"tropical_dry_forest": ["Thorn", "Dry", "Rust", "Ochre", "Husk"],
|
||||
"savanna": ["Sun", "Dust", "Plains", "Ember", "Dry"],
|
||||
"desert": ["Sand", "Dune", "Sun", "Ember", "Bleach"],
|
||||
"temperate_forest": ["Iron", "Moss", "Bark", "Grey", "Amber"],
|
||||
"temperate_grassland": ["Pale", "Wind", "Dust", "Gold", "Steppe"],
|
||||
"chaparral": ["Brush", "Dry", "Thorn", "Smoke", "Amber"],
|
||||
"swamp": ["Bog", "Rot", "Murk", "Bile", "Fen"],
|
||||
"bog": ["Peat", "Mist", "Sour", "Dank", "Haze"],
|
||||
"boreal_forest": ["Frost", "Pine", "Snow", "Ash", "Cold"],
|
||||
"tundra": ["Frost", "Winter", "Howling", "White", "Bitter"],
|
||||
"polar_desert": ["Ice", "Pale", "Frozen", "Null", "Void"],
|
||||
"montane_forest": ["Stone", "Ridge", "Cloud", "Iron", "Crag"],
|
||||
"cloud_forest": ["Mist", "Veil", "Drip", "Shroud", "Dew"],
|
||||
"alpine_meadow": ["Peak", "Wind", "Rime", "Crest", "Cold"],
|
||||
"alpine_tundra": ["Shard", "Frost", "Bare", "Gale", "Scree"],
|
||||
"permanent_ice": ["Glacier", "Null", "White", "Eternal", "Rime"],
|
||||
"subterranean": ["Pale", "Crystal", "Cave", "Blind", "Hollow"],
|
||||
"volcanic": ["Obsidian", "Cinder", "Ash", "Molten", "Slag"]
|
||||
},
|
||||
"biome_motifs": {
|
||||
"deep_ocean": ["bioluminescent markings", "dark scales", "pressure scars", "void-black hide"],
|
||||
"shallow_ocean": ["salt-crusted scales", "coral growths", "tide markings", "pearl sheen"],
|
||||
"coral_reef": ["iridescent scales", "anemone frills", "bright warning colors", "shell fragments"],
|
||||
"estuary": ["mud-streaked hide", "brackish slime coat", "reed camouflage", "silted gills"],
|
||||
"lake": ["reed-pattern camouflage", "silver scales", "murky green tones", "algae patches"],
|
||||
"pond": ["algae-coated skin", "stagnant water film", "dull coloration", "silt deposits"],
|
||||
"river": ["streamlined body", "smooth pebble markings", "current-adapted fins", "stone-grey tones"],
|
||||
"mangrove": ["root-bark texture", "salt-stained hide", "tangled growths", "brackish sheen"],
|
||||
"tropical_rainforest": ["rot-stained markings", "vine-wrapped limbs", "iridescent plumage", "fungal patches"],
|
||||
"tropical_dry_forest": ["cracked bark hide", "ochre dust coating", "thorn protrusions", "dry leaf camouflage"],
|
||||
"savanna": ["dust-caked hide", "sun-bleached mane", "ember-gold eyes", "heat-cracked plates"],
|
||||
"desert": ["sand-worn carapace", "heat shimmer patterns", "bleached bone protrusions", "ember eyes"],
|
||||
"temperate_forest": ["moss patches", "bark texture", "amber eyes", "iron-grey tones"],
|
||||
"temperate_grassland": ["wind-swept fur", "pale hide", "golden tones", "dust markings"],
|
||||
"chaparral": ["smoke-stained fur", "thorn scratches", "dry brush camouflage", "amber resin patches"],
|
||||
"swamp": ["rot-stained hide", "fungal growths", "bile-green tones", "murk camouflage"],
|
||||
"bog": ["peat-dark hide", "mist-damp fur", "sour-water stains", "lichen patches"],
|
||||
"boreal_forest": ["frost-tipped fur", "pine-needle mane", "ash-grey hide", "snow markings"],
|
||||
"tundra": ["thick white pelt", "frost crystals", "wind-scarred hide", "pale eyes"],
|
||||
"polar_desert": ["ice-crusted hide", "translucent frost plates", "snow-blind pale eyes", "void-white fur"],
|
||||
"montane_forest": ["stone-grey hide", "ridge-scarred flanks", "cloud-damp fur", "iron-hard hooves"],
|
||||
"cloud_forest": ["mist-beaded fur", "dripping moss mantle", "veil-like frills", "dew-bright eyes"],
|
||||
"alpine_meadow": ["wind-torn mane", "rime-crusted horns", "crest markings", "cold-hardened hide"],
|
||||
"alpine_tundra": ["frost-sharded scales", "gale-worn hide", "bare rock camouflage", "scree-colored plates"],
|
||||
"permanent_ice": ["glacier-blue veins", "frost armor plates", "snow-crystal growths", "rime-locked joints"],
|
||||
"subterranean": ["translucent skin", "crystalline growths", "eyeless face", "pheromone sacs", "pale fungal patches", "cave-pearl nodules"],
|
||||
"volcanic": ["obsidian plates", "ember-glow cracks", "smoke wisps", "ash-coated hide"]
|
||||
},
|
||||
"subterranean_visual_modes": {
|
||||
"blind": {
|
||||
"motifs": ["smooth eyeless skull", "vibration-sensing barbels", "flattened sensory pits", "pale sunken sockets"],
|
||||
"name_prefixes": ["Blind", "Eyeless", "Pale", "Hollow"]
|
||||
},
|
||||
"echolocation": {
|
||||
"motifs": ["oversized membranous ears", "wide nasal cavity", "flattened sonar face", "sound-focusing horn ridges"],
|
||||
"name_prefixes": ["Shrieking", "Echo", "Wailing", "Sonic"]
|
||||
},
|
||||
"bioluminescent": {
|
||||
"motifs": ["glowing nodules along spine", "phosphorescent stripe patterns", "luminous eye organs", "pulsing light sacs"],
|
||||
"name_prefixes": ["Glowing", "Lantern", "Luminous", "Spark"]
|
||||
}
|
||||
}
|
||||
}
|
||||
20
games/age-of-four/data/world/traits/trait_constraints.json
Normal file
20
games/age-of-four/data/world/traits/trait_constraints.json
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"invalid_pairs": [
|
||||
{"a": "aquatic", "b": "burrowing", "reason": "Cannot burrow underwater"},
|
||||
{"a": "sessile", "b": "carnivore", "reason": "Sessile organisms cannot hunt"},
|
||||
{"a": "aerial", "b": "huge", "reason": "Too heavy for sustained flight"},
|
||||
{"a": "subterranean", "b": "aerial", "reason": "Cannot fly underground"},
|
||||
{"a": "filter_feeder", "b": "terrestrial", "reason": "Filter feeding requires water medium"},
|
||||
{"a": "sessile", "b": "walking", "reason": "Sessile cannot walk"},
|
||||
{"a": "sessile", "b": "flying", "reason": "Sessile cannot fly"},
|
||||
{"a": "sessile", "b": "swimming", "reason": "Sessile cannot swim"},
|
||||
{"a": "arboreal", "b": "aquatic", "reason": "Cannot live in trees and water simultaneously"},
|
||||
{"a": "swarm", "b": "huge", "reason": "Huge organisms cannot swarm, breaks carrying capacity"}
|
||||
],
|
||||
"special_rules": [
|
||||
{
|
||||
"condition": "locomotion == sessile AND social NOT IN [colony, solitary]",
|
||||
"reason": "Sessile organisms form colonies or live alone, not packs/herds"
|
||||
}
|
||||
]
|
||||
}
|
||||
61
games/age-of-four/data/world/traits/trait_definitions.json
Normal file
61
games/age-of-four/data/world/traits/trait_definitions.json
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"categories": {
|
||||
"size": {
|
||||
"values": ["tiny", "small", "medium", "large", "huge"],
|
||||
"description": "Body mass tier. Affects carrying capacity, predation hierarchy, quality tier."
|
||||
},
|
||||
"diet": {
|
||||
"values": ["producer", "herbivore", "omnivore", "carnivore", "detritivore", "filter_feeder"],
|
||||
"description": "Trophic level. Determines food web position and grazing pressure."
|
||||
},
|
||||
"habitat": {
|
||||
"values": ["aquatic", "terrestrial", "amphibious", "aerial", "subterranean", "arboreal"],
|
||||
"description": "Primary living environment. Constrains tile eligibility and migration paths."
|
||||
},
|
||||
"locomotion": {
|
||||
"values": ["sessile", "walking", "swimming", "flying", "burrowing", "climbing", "slithering"],
|
||||
"description": "Movement mode. Affects migration range and terrain interaction."
|
||||
},
|
||||
"reproduction": {
|
||||
"values": ["r_strategy", "k_strategy"],
|
||||
"description": "Reproductive strategy. r = many offspring, fast growth. k = few offspring, slow growth."
|
||||
},
|
||||
"thermal": {
|
||||
"values": ["cold_blooded", "warm_blooded"],
|
||||
"description": "Thermoregulation. Affects climate tolerance and activity patterns."
|
||||
},
|
||||
"social": {
|
||||
"values": ["solitary", "pack", "herd", "swarm", "colony"],
|
||||
"description": "Group behavior. Affects hunting efficiency, grazing pressure, migration."
|
||||
}
|
||||
},
|
||||
"sub_traits": {
|
||||
"visual_mode": {
|
||||
"description": "Sensory adaptation for subterranean species. Flavor-only, does not affect mechanics.",
|
||||
"applies_to": {"habitat": ["subterranean"]},
|
||||
"values": {
|
||||
"blind": {
|
||||
"weight": 40,
|
||||
"motifs": ["eyeless", "smooth skull plates", "vibration-sensing barbels", "pale sunken sockets"]
|
||||
},
|
||||
"echolocation": {
|
||||
"weight": 35,
|
||||
"motifs": ["oversized ears", "wide nasal cavity", "ultrasonic clicks", "flattened face"]
|
||||
},
|
||||
"bioluminescent": {
|
||||
"weight": 25,
|
||||
"motifs": ["glowing nodules", "phosphorescent stripes", "luminous eyes", "pulsing light organs"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality_tier_formula": {
|
||||
"description": "species_quality = clamp(SIZE_QUALITY[size] + modifiers, 1, 5)",
|
||||
"size_base": {"tiny": 1, "small": 2, "medium": 3, "large": 4, "huge": 5},
|
||||
"modifiers": {
|
||||
"r_strategy": -1,
|
||||
"detritivore": -1,
|
||||
"carnivore": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue