Sources externes d'avantage/désavantage sur resolve_weapon_attack (1.17.0) #1

Merged
Reliodas merged 1 commit from feature/weapon-attack-disadvantage into develop 2026-06-20 01:37:39 +00:00
Owner

Permet à un jeu consommateur d'appliquer des règles spatiales qu'il gère lui-même (portée longue, couverture) via la résolution de jet du moteur, sans réimplémenter l'assemblage de l'attaque d'arme (mod de carac, maîtrise, enhancement, styles de combat, riders). Motivé par le combat-en-monde du jeu consommateur (portée longue = désavantage).

Changements

  • AttackRules.resolve_weapon_attack gagne des paramètres optionnels advantage/disadvantage (défaut false), à l'image de Combat.resolve_attack. Ils se combinent aux sources internes (Reckless, Grappler, HEAVY) et s'annulent mutuellement (avantage + désavantage → jet normal).
  • Facade RulesEngine et wrapper DndRules propagés. Rétro-compatible : les appels à trois arguments restent valides.
  • plugin.cfg 1.16.0 → 1.17.0, CHANGELOG.md, titre README.md.

Tests

test_equipment_data.gd : avantage externe seul, désavantage externe seul, et annulation mutuelle (vérifie had_advantage/had_disadvantage). Suite complète à valider par la CI du moteur.

Permet à un jeu consommateur d'appliquer des règles **spatiales qu'il gère lui-même** (portée longue, couverture) via la résolution de jet du moteur, **sans réimplémenter** l'assemblage de l'attaque d'arme (mod de carac, maîtrise, enhancement, styles de combat, riders). Motivé par le combat-en-monde du jeu consommateur (portée longue = désavantage). ## Changements - `AttackRules.resolve_weapon_attack` gagne des paramètres optionnels `advantage`/`disadvantage` (défaut `false`), à l'image de `Combat.resolve_attack`. Ils se combinent aux sources internes (Reckless, Grappler, HEAVY) et **s'annulent** mutuellement (avantage + désavantage → jet normal). - Facade `RulesEngine` et wrapper `DndRules` propagés. **Rétro-compatible** : les appels à trois arguments restent valides. - `plugin.cfg` 1.16.0 → **1.17.0**, `CHANGELOG.md`, titre `README.md`. ## Tests `test_equipment_data.gd` : avantage externe seul, désavantage externe seul, et annulation mutuelle (vérifie `had_advantage`/`had_disadvantage`). Suite complète à valider par la CI du moteur.
feat: external advantage/disadvantage on resolve_weapon_attack
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
1c328240df
Allows a consumer game to apply spatial rules it manages itself — long range,
cover — through the engine's own roll resolution, without reimplementing the
weapon-attack assembly (ability mod, proficiency, enhancement, fighting styles,
riders).

- AttackRules.resolve_weapon_attack gains optional `advantage`/`disadvantage`
  (default false), mirroring Combat.resolve_attack. They combine with the
  rule-driven sources (Reckless, Grappler, HEAVY) and cancel out to a normal
  roll. RulesEngine facade + DndRules wrapper forwarded; backward compatible.
- Test: external advantage / disadvantage / mutual cancellation.
- plugin.cfg 1.16.0 -> 1.17.0, CHANGELOG + README title.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reliodas merged commit 0bfba53a8d into develop 2026-06-20 01:37:39 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/dnd55e#1
No description provided.