feat(rules): add firearm misfire and the quick clear deed
Ultimate Combat Firearm Rules: a firearm attack rolling a natural 1 gains the broken condition (weapon_broken, logged MISFIRE). Quick Clear now actually clears the first misfired held firearm for 1 grit (reported no-op without grit), and occupies the standard budget slot via _effective_slot; the swift-consumed filter is slot-based so the standard deed survives. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -430,7 +430,11 @@ Règles modélisées :
|
||||
contient une action `move` ET que le combattant a un BAB ≥ +1,
|
||||
`retrieve_weapon` occupe le compartiment **libre** (drapeau `free_draw`
|
||||
résolu par `_effective_slot`) et n'entame pas le budget mouvement ;
|
||||
`repair_weapon` reste mouvement (la règle RAW ne couvre que le dégainement) ; **swift** = `swift`, `deed`,
|
||||
`repair_weapon` reste mouvement (la règle RAW ne couvre que le dégainement) ;
|
||||
exception S5a (Ultimate Combat, deed « Quick Clear ») : `deed` avec
|
||||
`deed_name="quick_clear"` occupe le compartiment **standard** (résolu par
|
||||
`_effective_slot`, le kind `deed` restant swift pour up_close_and_deadly) ;
|
||||
**swift** = `swift`, `deed`,
|
||||
`inspire_courage` ; **round complet** = `full_attack`, `charge`, `withdraw`,
|
||||
`full_round`, `spell_combat` (sort + attaque à outrance dans le même round),
|
||||
`run` (round complet en RAW — il consacre le standard ET le mouvement, tout
|
||||
@@ -1385,12 +1389,26 @@ Règles modélisées :
|
||||
(tammara, action bonus +1d6 à ≤ 30 ft — consommé sur la première attaque
|
||||
résolue : si elle est à distance ET à ≤ 30 ft, +1d6 s'ajoute aux dégâts ;
|
||||
sinon le bonus est perdu ; le drapeau est réinitialisé dans tous les cas),
|
||||
deed `quick_clear` (limite documentée, conformance L10 : le moteur classe
|
||||
le kind `deed` en **swift**, alors que la SRD fait de Quick Clear une
|
||||
**action standard** — ou **move** avec All Firearms — ; de plus, sans
|
||||
modèle de misfire/condition « broken » pour les armes à feu, le deed ne
|
||||
fait que dépenser 1 grit et journaliser « firearm cleared » : no-op
|
||||
fonctionnel),
|
||||
deed `quick_clear` (S5a — conformance implémentée, Ultimate Combat « Deeds —
|
||||
Quick Clear » : « As a standard action, you can spend 1 point from your grit
|
||||
pool to remove the broken condition from a single firearm you are holding,
|
||||
as long as that condition was gained by a firearm misfire ») — le deed
|
||||
dépense 1 grit et répare la **première** arme à feu brisée par un raté
|
||||
(ordre des attaques, déterministe) ; sans grit, l'action est un no-op
|
||||
journalisé ; sans arme à feu brisée, aucun grit n'est dépensé. Le deed
|
||||
occupe le compartiment **standard** du budget (exception par action résolue
|
||||
par `_effective_slot`, comme cackle pour les hex ; le kind `deed` reste
|
||||
swift pour up_close_and_deadly, et le filtre swift-consommé-par-immédiate
|
||||
ne jette plus le quick_clear). Simplifications documentées : la variante
|
||||
RAW « as part of a move action to clear all firearms » n'est pas modélisée
|
||||
(un seul firearm par deed), et Quick Clear ne répare que le broken issu
|
||||
d'un misfire — le broken d'un sunder se répare via `repair_weapon`.
|
||||
Le misfire lui-même (Ultimate Combat « Firearm Rules — Misfires » : « When
|
||||
a firearm misfires, it gains the broken condition ») : une attaque d'arme à
|
||||
feu (`firearm: true`) sur un **1 naturel** casse l'arme (`weapon_broken`,
|
||||
journalisé « MISFIRE (broken) ») — valeur de misfire minimale 1 ; la
|
||||
progression de la valeur de misfire et l'explosion des early firearms
|
||||
re-cassées ne sont pas modélisées (une arme brisée ne peut plus tirer ici)),
|
||||
`inspire_courage` + `spell_combat` (misty — Spell Combat : action de round
|
||||
complet, incante un sort standard et porte toutes ses attaques de mêlée à
|
||||
**−2** (CRB Magus, conformance — la pénalité s'applique à chaque jet
|
||||
|
||||
Reference in New Issue
Block a user