feat(combat): implement overrun, dirty trick, steal, reposition and drag maneuvers
This commit is contained in:
@@ -377,14 +377,20 @@ Règles modélisées :
|
||||
`denies_dex_to_ac` (à plat ventre, paralysé…) fait perdre le bonus de Dextérité à
|
||||
la CA (CA flat-footed). À plat ventre : −4 CA et −4 aux attaques à distance.
|
||||
Agrippé : −4 Dextérité, −2 attaque/CA/Réflexes, sans déplacement ni AoO.
|
||||
- Manœuvres de combat : trip, disarm, bull_rush, sunder, grapple et escape sont
|
||||
modélisées, chacune comme une tentative unique (1d20 + CMB contre CMD) :
|
||||
- Manœuvres de combat : trip, disarm, bull_rush, sunder, grapple, escape,
|
||||
overrun, dirty trick, steal, reposition et drag sont modélisées, chacune
|
||||
comme une tentative unique (1d20 + CMB contre CMD) :
|
||||
trip → `prone` ; disarm → `disarmed` (−4 attaque) ; bull_rush → pousse la cible ;
|
||||
grapple → `grappled`/`pinned` ; escape → **une** sauvegarde (bonus statique de la
|
||||
compétence `escape_artist` ou CMB, + un d20) contre CMD — une seule tentative,
|
||||
sans boucle multi-tour. Un sunder endommage l'**arme**, pas les PV : `str_mod + 2`
|
||||
de dégâts à l'arme, qui se brise à 10 d'usure cumulée (`_WEAPON_DURABILITY`) →
|
||||
`disarmed` ; une arme brisée est exclue de `usable_attacks()`. `default_policy` ne
|
||||
`disarmed` ; une arme brisée est exclue de `usable_attacks()`. overrun →
|
||||
`prone` 1 round + passage au travers si la case au-delà est libre ; dirty trick →
|
||||
`dazzled` 1 round ; steal → l'arme de mêlée de la cible est volée (exclue de
|
||||
`usable_attacks()`) ; reposition → déplacement de 5 ft de la cible vers le
|
||||
premier voisin libre ; drag → traction de 5 ft de la cible, l'attaquant
|
||||
occupant sa case d'origine. `default_policy` ne
|
||||
choisit pas ces manœuvres (utilisables via `Action(kind="maneuver")` ou une
|
||||
politique personnalisée).
|
||||
- Combat Reflexes : 1 AoO par combattant par round par défaut ; avec le don Combat
|
||||
@@ -420,9 +426,11 @@ dans la résolution) :
|
||||
appliquées au déplacement, à la portée ou à la ligne d'effet).
|
||||
- Tailles Large+ (2×2), allonge > 5 ft (la mêlée reste limitée à une case) et
|
||||
actions immédiates hors-tour (consommeraient le prochain swift).
|
||||
- Parmi les manœuvres, seules trip / disarm / bull_rush / sunder / grapple / escape
|
||||
sont câblées ; les autres (overrun, dirty trick, steal, reposition, drag) ne le
|
||||
sont pas. Une arme brisée ne peut pas être réparée en cours de combat.
|
||||
- Manœuvres : dirty trick applique toujours `dazzled` (le choix
|
||||
aveuglé/assourdi/entravé/malade n'est pas modélisé) ; reposition et drag
|
||||
utilisent une direction déterministe (premier voisin libre / au-delà de la
|
||||
cible) ; un objet volé n'est pas récupérable en cours de combat. Une arme
|
||||
brisée ne peut pas être réparée en cours de combat.
|
||||
- La distribution des dégâts par type sur un sort n'envoie que des dégâts simples
|
||||
(sans plage « half on save » pour les effets ciblés).
|
||||
|
||||
@@ -522,8 +530,8 @@ uv run basedpyright src # mode strict
|
||||
résolus, `abilities.py` + chargeur) et capacités de classe (channel energy,
|
||||
hex, deeds, inspire courage / spell combat) sont en place et documentés dans
|
||||
« Règles implémentées ». Restent hors du socle (voir « Non modélisé ») : les
|
||||
hauteurs/élévations, tailles Large+, allonges > 5 ft, actions immédiates
|
||||
hors-tour, et le reste des manœuvres.
|
||||
hauteurs/élévations, tailles Large+, allonges > 5 ft et actions immédiates
|
||||
hors-tour.
|
||||
- **Phase 2** — couche tactique LLM : stratégies en langage naturel traduites
|
||||
en politiques, balayage de matrices de positionnement. (Non implémentée.)
|
||||
- **Phase 3** — rapporteur LLM local : agrégation des statistiques et
|
||||
|
||||
Reference in New Issue
Block a user