Renable compendiums
This commit is contained in:
@@ -551,6 +551,15 @@ Hooks.on("createChatMessage", async (message) => {
|
||||
const reroll = await LethalFantasyUtils.rerollConfiguredRoll(defenseRerollContext)
|
||||
if (!reroll) continue
|
||||
defenseRoll = reroll.options?.rollTotal || reroll.total || oldDefenseRoll
|
||||
let d30result = reroll.options?.D30result
|
||||
let d30message = reroll.options?.D30message
|
||||
if (!d30result && !d30message) {
|
||||
console.warn("Mulligan defense reroll: no D30 data in options", { hasOptions: !!reroll.options, optionKeys: reroll.options ? Object.keys(reroll.options) : [] })
|
||||
}
|
||||
if (d30result && !d30message) {
|
||||
d30message = documents.D30Roll.getResult(d30result, defenseRerollContext.rollType, message.rolls[0]?.options?.rollTarget?.weapon, { isRanged: isRangedAttack })
|
||||
console.warn("Mulligan defense reroll: D30 message computed as fallback", { d30result, d30message, rollType: defenseRerollContext.rollType })
|
||||
}
|
||||
try {
|
||||
await createReactionMessage(defender, {
|
||||
type: "mulligan",
|
||||
@@ -559,16 +568,16 @@ Hooks.on("createChatMessage", async (message) => {
|
||||
oldRoll: oldDefenseRoll,
|
||||
newRoll: defenseRoll,
|
||||
diceResults: reroll.options?.diceResults || [],
|
||||
D30result: reroll.options?.D30result,
|
||||
D30message: reroll.options?.D30message
|
||||
D30result: d30result,
|
||||
D30message: d30message
|
||||
})
|
||||
} catch(e) {
|
||||
console.error("Mulligan message creation failed (non-fatal):", e)
|
||||
}
|
||||
// Apply new D30 result on the restart — the new D30 always takes effect,
|
||||
// and if it's another mulligan the reroll button reappears.
|
||||
if (reroll.options?.D30message) {
|
||||
defenseD30message = reroll.options.D30message
|
||||
if (d30message) {
|
||||
defenseD30message = d30message
|
||||
defenseD30Processed = false
|
||||
}
|
||||
canRerollDefense = LethalFantasyUtils.hasD30Reroll(defenseD30message)
|
||||
@@ -757,6 +766,15 @@ Hooks.on("createChatMessage", async (message) => {
|
||||
const reroll = await LethalFantasyUtils.rerollConfiguredRoll(attackRerollContext)
|
||||
if (!reroll) continue
|
||||
attackRollFinal = reroll.options?.rollTotal || reroll.total || oldAttackRoll
|
||||
let d30result = reroll.options?.D30result
|
||||
let d30message = reroll.options?.D30message
|
||||
if (!d30result && !d30message) {
|
||||
console.warn("Mulligan attack reroll: no D30 data in options", { hasOptions: !!reroll.options, optionKeys: reroll.options ? Object.keys(reroll.options) : [] })
|
||||
}
|
||||
if (d30result && !d30message) {
|
||||
d30message = documents.D30Roll.getResult(d30result, attackRerollContext.rollType, attackRerollContext.rollTarget?.weapon, { isRanged: isRangedAttack })
|
||||
console.warn("Mulligan attack reroll: D30 message computed as fallback", { d30result, d30message, rollType: attackRerollContext.rollType })
|
||||
}
|
||||
try {
|
||||
await createReactionMessage(attacker, {
|
||||
type: "mulligan",
|
||||
@@ -765,16 +783,16 @@ Hooks.on("createChatMessage", async (message) => {
|
||||
oldRoll: oldAttackRoll,
|
||||
newRoll: attackRollFinal,
|
||||
diceResults: reroll.options?.diceResults || [],
|
||||
D30result: reroll.options?.D30result,
|
||||
D30message: reroll.options?.D30message
|
||||
D30result: d30result,
|
||||
D30message: d30message
|
||||
})
|
||||
} catch(e) {
|
||||
console.error("Mulligan message creation failed (non-fatal):", e)
|
||||
}
|
||||
// Apply new D30 result on the restart — the new D30 always takes effect,
|
||||
// and if it's another mulligan the reroll button reappears.
|
||||
if (reroll.options?.D30message) {
|
||||
attackD30message = reroll.options.D30message
|
||||
if (d30message) {
|
||||
attackD30message = d30message
|
||||
attackD30Processed = false
|
||||
d30AttackPrecomputedStale = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user