Compare commits

..

1 Commits

Author SHA1 Message Date
2cbee42180 Empoignade V2 2025-10-22 23:42:55 +02:00
6 changed files with 15 additions and 47 deletions

View File

@@ -14,9 +14,8 @@
- empoignade - empoignade
- l'empoignade est possible avec une initiative d'empoignade, ou en cours d'empoignade - l'empoignade est possible avec une initiative d'empoignade, ou en cours d'empoignade
- seule la dague, le pugilat et la dague sont possibles en cours d'empoignade - seule la dague, le pugilat et la dague sont possibles en cours d'empoignade
- jet de Dextérité/Dague pour utiliser la dague en cours d'empoignade (p136) - jet de Dextérité/Dague pour utiliser la dague en cours d'empoignade
- attaquer avec une arme un empoigneur donne un +4 si pas d'empoignade (p134) - attaquer avec une arme un empoigneur donne un +4 si pas d'empoignade
- la différence de taille donne un bonus/malus en cours d'empoignade (p135)
- les dommages de l'empoignade ajoutent/enlèvent un point d'empoignade - les dommages de l'empoignade ajoutent/enlèvent un point d'empoignade
- le statut d'empoignade est affiché sur les tokens - le statut d'empoignade est affiché sur les tokens
- les défenses contre une empoignade sont corrigées - les défenses contre une empoignade sont corrigées

View File

@@ -648,7 +648,8 @@ select,
.system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="coeur"] select[name="coeur"] { .system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="coeur"] select[name="coeur"] {
max-width: 4rem; max-width: 4rem;
} }
.system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section img { .system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions roll-section[name="empoignade"] img {
/* image de d100 */
max-width: 1rem; max-width: 1rem;
max-height: 1rem; max-height: 1rem;
gap: 0; gap: 0;
@@ -660,6 +661,10 @@ select,
/* image de d100 */ /* image de d100 */
max-width: 2.5rem; max-width: 2.5rem;
max-height: 2.5rem; max-height: 2.5rem;
gap: 0;
margin: 0;
padding: 0;
filter: invert(0.8);
} }
.system-foundryvtt-reve-de-dragon .roll-dialog roll-buttons { .system-foundryvtt-reve-de-dragon .roll-dialog roll-buttons {
display: flex; display: flex;

View File

@@ -224,7 +224,8 @@
max-width: 4rem; max-width: 4rem;
} }
roll-conditions roll-section img { roll-conditions roll-section[name="empoignade"] img {
/* image de d100 */
max-width: 1rem; max-width: 1rem;
max-height: 1rem; max-height: 1rem;
gap: 0; gap: 0;
@@ -236,6 +237,10 @@
/* image de d100 */ /* image de d100 */
max-width: 2.5rem; max-width: 2.5rem;
max-height: 2.5rem; max-height: 2.5rem;
gap: 0;
margin: 0;
padding: 0;
filter: invert(0.8);
} }
roll-buttons { roll-buttons {

View File

@@ -45,7 +45,6 @@ import { RollPartCuisine } from "./roll-part-cuisine.mjs";
import { OptionsAvancees, ROLL_DIALOG_V2_TEST } from "../settings/options-avancees.js"; import { OptionsAvancees, ROLL_DIALOG_V2_TEST } from "../settings/options-avancees.js";
import { ActorImpacts } from "../technical/actor-impacts.mjs"; import { ActorImpacts } from "../technical/actor-impacts.mjs";
import { RollPartEmpoignade } from "./roll-part-empoignade.mjs"; import { RollPartEmpoignade } from "./roll-part-empoignade.mjs";
import { RollPartEmpoignadeTaille } from "./roll-part-empoignade-taille.mjs";
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api
@@ -87,7 +86,6 @@ const ROLL_PARTS = [
new RollPartConditions(), new RollPartConditions(),
new RollPartEthylisme(), new RollPartEthylisme(),
new RollPartMalusArmure(), new RollPartMalusArmure(),
new RollPartEmpoignadeTaille(),
new RollPartEmpoignade(), new RollPartEmpoignade(),
new RollPartEncTotal(), new RollPartEncTotal(),
new RollPartSurEnc(), new RollPartSurEnc(),

View File

@@ -1,40 +0,0 @@
import { RDD_CONFIG } from "../constants.js"
import { ATTAQUE_TYPE_MELEE } from "../item/arme.js"
import { RdDEmpoignade } from "../rdd-empoignade.js"
import { COMBAT_ROLL_TYPES } from "./roll-constants.mjs"
import { PART_ATTAQUE } from "./roll-part-attaque.mjs"
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
const EMPOIGNADE_TAILLE = "empoignade-taille"
export class RollPartEmpoignadeTaille extends RollPartCheckbox {
get code() { return EMPOIGNADE_TAILLE }
isValid(rollData) {
return RdDEmpoignade.isCombatantEmpoignade(rollData.ids.actorId, rollData.ids.actorTokenId)
}
visible(rollData) {
return COMBAT_ROLL_TYPES.includes(rollData.type.current) &&
RdDEmpoignade.isEmpoignadeEnCours(rollData.active.actor) &&
this.getTailleDiff(rollData) != 0
}
getTailleDiff(rollData) {
const taille = rollData.active.actor.getTaille()
const tailleOpponent = rollData.opponent.actor.getTaille()
const diff = taille - tailleOpponent
const diffTailleAbs = Math.max(0, Math.abs(diff) - 1)
const signDiff = Math.sign(diff)
return signDiff * diffTailleAbs
}
getCheckboxIcon(rollData) { return `<img src="${RDD_CONFIG.icons.empoignade}">` }
getCheckboxLabel(rollData) {
return `Taille ${rollData.active.actor.getTaille()} vs ${rollData.opponent.actor.getTaille()} `
}
getCheckboxValue(rollData) {
return this.getTailleDiff(rollData)
}
}

View File

@@ -24,6 +24,7 @@ export class RollPartEmpoignade extends RollPartCheckbox {
!RdDEmpoignade.isEmpoignadeEnCours(rollData.active.actor) !RdDEmpoignade.isEmpoignadeEnCours(rollData.active.actor)
} }
getCheckboxIcon(rollData) { return `<img src="${RDD_CONFIG.icons.empoignade}">` } getCheckboxIcon(rollData) { return `<img src="${RDD_CONFIG.icons.empoignade}">` }
getCheckboxLabel(rollData) { return "vs. empoigneur" } getCheckboxLabel(rollData) { return "vs. empoigneur" }
getCheckboxValue(rollData) { return 4 } getCheckboxValue(rollData) { return 4 }