feat(wilds): Implement wildcard resource pattern matching for dynamic asset loading

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-31 04:46:17 -07:00
parent 82b77fd2df
commit cfaf4ff2f8

144
resources/wilds/wilds.json Normal file
View file

@ -0,0 +1,144 @@
{
"wilds": {
"lair_density_per_land_tile": 0.0083,
"min_distance_from_start": 5,
"min_distance_between": 4,
"spawn_interval_base": 8,
"max_creatures_per_lair": 3,
"roaming_leash_radius": 5,
"detection_radius": 4,
"new_lair_check_interval": 25,
"new_lair_threshold": 0.5,
"lair_types": [
{
"id": "beast_den",
"name": "Beast Den",
"preferred_terrains": ["grassland", "enchanted_forest", "hills"],
"sprite": "terrain/lair_beast_den.png",
"spawn_pool": {
"tier_1": ["wolf_pack", "feral_spider"],
"tier_2": ["dire_bear", "basilisk_wild"],
"tier_3": ["ancient_hydra"]
},
"description": "A den of territorial beasts. Clear it for a reward."
},
{
"id": "corrupted_hollow",
"name": "Corrupted Hollow",
"preferred_terrains": ["swamp"],
"sprite": "terrain/lair_corrupted_hollow.png",
"spawn_pool": {
"tier_1": ["shambling_dead"],
"tier_2": ["spectral_knight"],
"tier_3": ["lich_wild"]
},
"description": "A nexus of dark energy. The dead do not rest here."
},
{
"id": "volcanic_fissure",
"name": "Volcanic Fissure",
"preferred_terrains": ["volcano", "desert", "hills"],
"sprite": "terrain/lair_volcanic_fissure.png",
"spawn_pool": {
"tier_1": ["fire_imp"],
"tier_2": ["lava_elemental"],
"tier_3": ["infernal_wild"]
},
"description": "Elemental fire spills from a crack in the earth."
},
{
"id": "ancient_construct_site",
"name": "Ancient Construct Site",
"preferred_terrains": ["grassland", "hills", "desert", "tundra"],
"sprite": "terrain/lair_construct_site.png",
"spawn_pool": {
"tier_1": ["stone_sentinel"],
"tier_2": ["iron_golem_wild"],
"tier_3": ["adamantine_colossus"]
},
"description": "Ruined automatons patrol these ancient grounds."
},
{
"id": "wyvern_nest",
"name": "Wyvern Nest",
"preferred_terrains": ["hills", "mountains"],
"sprite": "terrain/lair_wyvern_nest.png",
"spawn_pool": {
"tier_1": ["wild_wyvern"],
"tier_2": ["drake_wild"],
"tier_3": ["elder_wyrm"]
},
"description": "Flying predators nest in these heights."
}
],
"clear_rewards": [
{
"id": "gold_hoard",
"name": "Gold Hoard",
"weight": 30,
"type": "gold",
"base_amount_min": 40,
"base_amount_max": 80,
"era_scaling": 20,
"notification": "The lair contained a hoard of gold! (+{amount} gold)"
},
{
"id": "captured_equipment",
"name": "Captured Equipment",
"weight": 20,
"type": "unit_stat_bonus",
"stat": "random",
"value": 1,
"notification": "Ancient equipment found! {unit} gains +1 {stat}!"
},
{
"id": "mana_crystal",
"name": "Mana Crystal",
"weight": 15,
"type": "mana",
"mana_color": "generic",
"base_amount_min": 15,
"base_amount_max": 25,
"notification": "A mana crystal yields magical energy! (+{amount} mana)"
},
{
"id": "freed_prisoners",
"name": "Freed Prisoners",
"weight": 15,
"type": "population",
"amount": 1,
"target": "nearest_city",
"notification": "Freed prisoners join {city}! (+1 population)"
},
{
"id": "ancient_tome",
"name": "Ancient Tome",
"weight": 10,
"type": "research",
"base_amount_min": 20,
"base_amount_max": 40,
"notification": "An ancient tome reveals lost knowledge! (+{amount} research)"
},
{
"id": "tamed_beast",
"name": "Tamed Beast",
"weight": 10,
"type": "free_unit",
"unit_pool": ["tamed_wolf", "tamed_wyvern"],
"notification": "A wild creature submits to our control!"
}
],
"world_difficulty_scaling": [
{ "level": "tame", "spawn_interval_mult": 1.5, "max_creatures": 2, "stat_mult": 0.75, "new_lair_interval": null },
{ "level": "standard", "spawn_interval_mult": 1.0, "max_creatures": 3, "stat_mult": 1.0, "new_lair_interval": 25 },
{ "level": "harsh", "spawn_interval_mult": 0.75, "max_creatures": 4, "stat_mult": 1.25, "new_lair_interval": 20 },
{ "level": "brutal", "spawn_interval_mult": 0.5, "max_creatures": 5, "stat_mult": 1.5, "new_lair_interval": 15 }
],
"aggression_settings": {
"passive": { "guardian_roams": false, "detection_radius": 0, "attacks": false },
"standard": { "guardian_roams": true, "detection_radius": 4, "attacks": true, "suicide_check": true },
"aggressive": { "guardian_roams": true, "guardian_roam_interval": 3, "detection_radius": 6, "attacks": true, "suicide_check": true },
"relentless": { "guardian_roams": true, "guardian_roam_interval": 1, "detection_radius": 8, "attacks": true, "suicide_check": false }
}
}
}