feat: encounters 4 tiers + fix actions roles

This commit is contained in:
Corback
2026-06-15 23:17:51 +00:00
parent 873106d5cb
commit 0a46655e36
5 changed files with 1039 additions and 2 deletions
+243
View File
@@ -0,0 +1,243 @@
{
"_comment": "Tables d'encounters par zone. chance_per_tick = probabilité par tick. tier_weights = distribution des tiers d'encounter (lambda/group/actif/boss). Somme des weights doit = 1.0",
"zone_profiles": {
"nola_cbd": {
"chance_per_tick": 0.12,
"tier_weights": {"lambda": 0.45, "group": 0.38, "actif": 0.15, "boss": 0.02},
"flavor": "Gratte-ciels inondés, ruines industrielles, territoire Super Mutants"
},
"pearl_river": {
"chance_per_tick": 0.09,
"tier_weights": {"lambda": 0.55, "group": 0.20, "actif": 0.22, "boss": 0.03},
"flavor": "Bayou dense, territoire Écumeurs, créatures des marais"
},
"la_paroisse": {
"chance_per_tick": 0.10,
"tier_weights": {"lambda": 0.50, "group": 0.20, "actif": 0.25, "boss": 0.05},
"flavor": "Zone radioactive, territoire Grand Krewe, goules partout"
},
"donaldsonville": {
"chance_per_tick": 0.06,
"tier_weights": {"lambda": 0.60, "group": 0.28, "actif": 0.10, "boss": 0.02},
"flavor": "Ville intermédiaire, sans faction, passage obligé"
},
"oak_plantation": {
"chance_per_tick": 0.05,
"tier_weights": {"lambda": 0.50, "group": 0.20, "actif": 0.28, "boss": 0.02},
"flavor": "Plantation gardée, esclaves en fuite, patrouilles Dynaste"
},
"baton_rouge": {
"chance_per_tick": 0.04,
"tier_weights": {"lambda": 0.55, "group": 0.25, "actif": 0.18, "boss": 0.02},
"flavor": "Ville sous tension, présence Syndicat du Capitole"
},
"nola_fleuve": {
"chance_per_tick": 0.05,
"tier_weights": {"lambda": 0.45, "group": 0.30, "actif": 0.22, "boss": 0.03},
"flavor": "Port fluvial, passage de bateaux, CdA patrouille"
},
"independance": {
"chance_per_tick": 0.02,
"tier_weights": {"lambda": 0.80, "group": 0.15, "actif": 0.04, "boss": 0.01},
"flavor": "Zone protégée par l'Union, relativement sûre"
},
"laplace": {
"chance_per_tick": 0.03,
"tier_weights": {"lambda": 0.65, "group": 0.25, "actif": 0.09, "boss": 0.01},
"flavor": "Carrefour commercial, passage constant, relativement neutre"
},
"nola_vieux_carre": {
"chance_per_tick": 0.025,
"tier_weights": {"lambda": 0.70, "group": 0.20, "actif": 0.09, "boss": 0.01},
"flavor": "Zone tenue par la Régie, murée, patrouilles régulières"
}
},
"entity_pools": {
"lambda": [
{
"key": "alligator_mutant",
"name": "Alligator mutant",
"description": "Reptile des bayous, irradié et agrandi, territorial et agressif",
"zones": ["pearl_river", "donaldsonville", "la_paroisse", "nola_cbd"],
"stats": {"hp": 14, "strength": 9, "agility": 5, "endurance": 8, "perception": 4, "luck": 3},
"weapon": {"name": "Mâchoires", "damage_dice": 3, "damage_bonus": 1, "damage_type": "physical", "range": "short"},
"armor_rating": 2,
"caps_loot": [0, 0],
"item_loot": ["cuir_brut", "viande_mutante"],
"xp": 3
},
{
"key": "goule_sauvage",
"name": "Goule sauvage",
"description": "Ancienne personne irradiée, perdue la raison, attaque tout ce qui bouge",
"zones": ["la_paroisse", "nola_cbd", "donaldsonville", "pearl_river"],
"stats": {"hp": 8, "strength": 6, "agility": 7, "endurance": 6, "perception": 3, "luck": 2},
"weapon": {"name": "Griffes", "damage_dice": 2, "damage_bonus": 0, "damage_type": "physical", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 5],
"item_loot": ["lambeau_vetement", "cram"],
"xp": 1,
"immune_radiation": true
},
{
"key": "meute_rats",
"name": "Meute de rats géants",
"description": "Rats des bayous, deux fois plus grands que la normale, attaquent en groupe",
"zones": ["nola_cbd", "donaldsonville", "baton_rouge", "pearl_river"],
"stats": {"hp": 5, "strength": 3, "agility": 8, "endurance": 4, "perception": 5, "luck": 4},
"weapon": {"name": "Morsures multiples", "damage_dice": 1, "damage_bonus": 1, "damage_type": "physical", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 0],
"item_loot": ["rat_grille", "fourrure_rat"],
"xp": 1
},
{
"key": "essaim_guepes",
"name": "Essaim de guêpes mutantes",
"description": "Insectes irradiés, venin paralysant, nid dans les ruines",
"zones": ["pearl_river", "la_paroisse", "nola_cbd"],
"stats": {"hp": 6, "strength": 2, "agility": 9, "endurance": 3, "perception": 7, "luck": 5},
"weapon": {"name": "Piqûres venimeuses", "damage_dice": 1, "damage_bonus": 0, "damage_type": "poison", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 0],
"item_loot": ["venin_guepe", "cire_mutante"],
"xp": 2,
"status_effect": {"type": "poison", "damage_per_tick": 1, "duration_ticks": 3}
},
{
"key": "survivant_fou",
"name": "Survivant dérangé",
"description": "Humain ayant perdu la raison, attaque sans raison apparente",
"zones": ["donaldsonville", "nola_cbd", "baton_rouge", "pearl_river"],
"stats": {"hp": 7, "strength": 5, "agility": 6, "endurance": 5, "perception": 4, "luck": 3},
"weapon": {"name": "Couteau rouillé", "damage_dice": 1, "damage_bonus": 0, "damage_type": "physical", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 30],
"item_loot": ["eau_sale", "cram", "lambeau_vetement"],
"xp": 1
},
{
"key": "chien_sauvage",
"name": "Chien des bayous",
"description": "Meute de chiens errants, maigres et agressifs, se défendent en groupe",
"zones": ["donaldsonville", "baton_rouge", "nola_vieux_carre", "laplace"],
"stats": {"hp": 6, "strength": 5, "agility": 8, "endurance": 5, "perception": 6, "luck": 3},
"weapon": {"name": "Morsure", "damage_dice": 2, "damage_bonus": 0, "damage_type": "physical", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 0],
"item_loot": ["viande_chien", "fourrure_chien"],
"xp": 1
}
],
"group": [
{
"key": "bande_raiders",
"name": "Bande de Raiders",
"description": "Petit groupe de pillards organisés, cherchent à voler ou kidnapper",
"zones": ["nola_cbd", "donaldsonville", "pearl_river", "baton_rouge"],
"count_range": [2, 4],
"member_archetype": "pillard_errant",
"leader_archetype": "raider_boss",
"stats_base": {"hp": 10, "strength": 6, "agility": 6, "endurance": 6, "perception": 5, "luck": 4},
"weapon": {"name": "Batte cloutée", "damage_dice": 2, "damage_bonus": 1, "damage_type": "physical", "range": "short"},
"armor_rating": 1,
"caps_loot": [20, 150],
"item_loot": ["cram", "eau_sale", "batte_cloutee", "couteau_combat"],
"xp": 4,
"can_negotiate": true,
"negotiate_cost_caps": [30, 100]
},
{
"key": "meute_super_mutants",
"name": "Meute de Super Mutants",
"description": "Groupe de Super Mutants sauvages, cherchent à dominer le territoire",
"zones": ["nola_cbd"],
"count_range": [2, 3],
"member_archetype": null,
"leader_archetype": null,
"stats_base": {"hp": 18, "strength": 11, "agility": 4, "endurance": 10, "perception": 4, "luck": 3},
"weapon": {"name": "Massue renforcée", "damage_dice": 3, "damage_bonus": 2, "damage_type": "physical", "range": "short"},
"armor_rating": 2,
"caps_loot": [0, 50],
"item_loot": ["ferraille", "cram", "eau_sale"],
"xp": 6,
"can_negotiate": false,
"immune_radiation": true,
"immune_poison": true
},
{
"key": "pillards_organises",
"name": "Pillards organisés",
"description": "Groupe de pillards avec tactique basique, armés de fusils",
"zones": ["donaldsonville", "pearl_river", "baton_rouge", "nola_fleuve"],
"count_range": [2, 4],
"member_archetype": "pillard_errant",
"leader_archetype": "raider_boss",
"stats_base": {"hp": 11, "strength": 6, "agility": 6, "endurance": 6, "perception": 6, "luck": 4},
"weapon": {"name": "Fusil calibre .22", "damage_dice": 2, "damage_bonus": 0, "damage_type": "physical", "range": "medium"},
"armor_rating": 1,
"caps_loot": [30, 200],
"item_loot": ["fusil_calibre22", "cram", "jet", "eau_sale"],
"xp": 5,
"can_negotiate": true,
"negotiate_cost_caps": [50, 150]
},
{
"key": "goules_en_meute",
"name": "Meute de goules sauvages",
"description": "Un groupe compact de goules perdues, attaquent ensemble",
"zones": ["la_paroisse", "nola_cbd", "donaldsonville"],
"count_range": [3, 6],
"member_archetype": null,
"leader_archetype": null,
"stats_base": {"hp": 7, "strength": 5, "agility": 7, "endurance": 6, "perception": 3, "luck": 2},
"weapon": {"name": "Griffes", "damage_dice": 2, "damage_bonus": 0, "damage_type": "physical", "range": "short"},
"armor_rating": 0,
"caps_loot": [0, 10],
"item_loot": ["lambeau_vetement"],
"xp": 3,
"can_negotiate": false,
"immune_radiation": true
}
]
},
"orientation_reactions": {
"_comment": "Réaction par défaut selon le rôle du PNJ face à chaque tier d'encounter",
"garde": {"lambda": "combat", "group": "combat", "actif": "combat", "boss": "fuite_ou_combat"},
"eclaireur": {"lambda": "evitement", "group": "fuite", "actif": "fuite", "boss": "fuite"},
"marchand": {"lambda": "fuite", "group": "negociation","actif": "negociation","boss": "fuite"},
"docteur": {"lambda": "fuite", "group": "fuite", "actif": "negociation","boss": "fuite"},
"technicien": {"lambda": "fuite", "group": "fuite", "actif": "fuite", "boss": "fuite"},
"pillard": {"lambda": "combat", "group": "negociation","actif": "combat", "boss": "fuite"},
"raider_boss": {"lambda": "combat", "group": "combat", "actif": "combat", "boss": "combat"},
"lieutenant": {"lambda": "combat", "group": "combat", "actif": "combat", "boss": "fuite_ou_combat"},
"chasseur_primes": {"lambda": "combat", "group": "combat", "actif": "negociation","boss": "fuite"},
"passeur": {"lambda": "evitement", "group": "evitement", "actif": "fuite", "boss": "fuite"},
"scavenger": {"lambda": "fuite", "group": "fuite", "actif": "fuite", "boss": "fuite"},
"survivant_generique":{"lambda":"fuite", "group": "fuite", "actif": "negociation","boss": "fuite"}
},
"outcomes": {
"combat": {
"win": {"loot": true, "xp": true, "stress_delta": +2, "description": "Victoire au combat"},
"loss": {"loot": false, "xp": false, "stress_delta": +5, "hp_loss_pct": 0.25, "description": "Défaite"},
"draw": {"loot": false, "xp": true, "stress_delta": +3, "hp_loss_pct": 0.15, "description": "Combat indécis"}
},
"fuite": {
"success": {"loot": false, "xp": false, "stress_delta": +1, "description": "Fuite réussie"},
"failed": {"loot": false, "xp": false, "stress_delta": +3, "hp_loss_pct": 0.10, "description": "Fuite ratée, touché"}
},
"evitement": {
"success": {"loot": false, "xp": true, "stress_delta": 0, "description": "Discrétion réussie"},
"failed": {"loot": false, "xp": false, "stress_delta": +2, "description": "Repéré, doit fuir"}
},
"negociation": {
"success": {"loot": false, "xp": true, "stress_delta": +1, "caps_cost": true, "description": "Négociation réussie"},
"failed": {"loot": false, "xp": false, "stress_delta": +4, "hp_loss_pct": 0.15, "description": "Négociation échouée, attaqué"}
}
}
}