Corrections après tests de combat
Some checks failed
Release Creation / build (release) Failing after 1m34s

This commit is contained in:
2026-04-14 18:59:09 +02:00
parent 63c0153860
commit b3cf0b0aa1
29 changed files with 121 additions and 124 deletions

View File

@@ -320,6 +320,8 @@ export class CelestopolRoll extends Roll {
: null
const resolvedWeaponName = (isRangedDefense && selectedCombatTarget?.weaponName) ? selectedCombatTarget.weaponName : weaponName
const resolvedWeaponDegats = (isRangedDefense && selectedCombatTarget?.weaponDegats) ? selectedCombatTarget.weaponDegats : weaponDegats
// Dégâts de l'arme adverse en cas d'échec (arme équipée du PNJ ciblé en mêlée, arme distance en esquive)
const incomingWeaponDegats = selectedCombatTarget?.weaponDegats ?? resolvedWeaponDegats
const targetActorId = selectedCombatTarget?.id || ""
const targetActorUuid = selectedCombatTarget?.uuid || ""
const targetActorName = selectedCombatTarget?.name || ""
@@ -373,6 +375,7 @@ export class CelestopolRoll extends Roll {
weaponType,
weaponName: resolvedWeaponName,
weaponDegats: resolvedWeaponDegats,
incomingWeaponDegats,
targetActorId,
targetActorUuid,
targetActorName,
@@ -407,9 +410,9 @@ export class CelestopolRoll extends Roll {
}
}
// Mêlée échouée OU défense à distance échouée → le protagoniste subit les dégâts de l'arme PNJ
if (isCombat && (weaponType === "melee" || isRangedDefense) && actor && roll.options.resultType === "failure") {
const incomingWounds = this.getIncomingWounds(resolvedWeaponDegats)
// Mêlée échouée OU défense à distance échouée → le protagoniste (PJ uniquement) subit les dégâts de l'arme PNJ
if (isCombat && (weaponType === "melee" || isRangedDefense) && actor?.type === "character" && roll.options.resultType === "failure") {
const incomingWounds = this.getIncomingWounds(roll.options.incomingWeaponDegats ?? resolvedWeaponDegats)
const protection = this.getActorArmorProtection(actor)
const appliedWounds = incomingWounds === null
? 1
@@ -555,6 +558,13 @@ export class CelestopolRoll extends Roll {
? Math.max(0, incomingWounds - selectedTargetProtection)
: null
// Type de l'acteur qui lance le jet (character | npc)
const rollingActor = await this.constructor.resolveActor({
actorUuid: this.options.actorUuid ?? null,
actorId: this.options.actorId ?? null,
})
const actorType = rollingActor?.type ?? this.options.actorType ?? null
// Libellé de difficulté : en combat "Corps PNJ : N", en opposition "vs ?", sinon "Seuil : 11"
const difficultyLabel = this.options.isCombat
? `${game.i18n.localize("CELESTOPOL.Combat.corpsPnj")} : ${threshold}`
@@ -600,6 +610,8 @@ export class CelestopolRoll extends Roll {
woundLabel,
isResistance: this.options.isResistance ?? false,
isCombat: this.options.isCombat ?? false,
actorType,
isNpcAttack: actorType === "npc",
weaponName: this.options.weaponName ?? null,
weaponDegats,
weaponType: this.options.weaponType ?? null,