Compare commits

..

3 Commits

Author SHA1 Message Date
uberwald e45edd60c4 FIx spell order and dual rollll for spell damages
Release Creation / build (release) Successful in 1m6s
2026-05-25 12:29:39 +02:00
uberwald d389a85a9f Fix ranged attacks again
Release Creation / build (release) Successful in 43s
2026-05-24 09:42:07 +02:00
uberwald c217490a5b Fix ranged attacks again
Release Creation / build (release) Has been cancelled
2026-05-24 09:41:06 +02:00
33 changed files with 173 additions and 185 deletions
+4 -4
View File
@@ -529,16 +529,16 @@ i.lethalfantasy {
}
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp {
margin-right: 4px;
min-width: 10rem;
max-width: 10rem;
min-width: 11rem;
max-width: 11rem;
}
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp .name {
min-width: 6rem;
max-width: 6rem;
}
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp .input {
min-width: 2.5rem;
max-width: 2.5rem;
min-width: 3.5rem;
max-width: 3.5rem;
}
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .granted {
min-width: 8rem;
+3 -14
View File
@@ -375,12 +375,12 @@ Hooks.on("renderChatMessageHTML", (message, html, data) => {
{
action: "cancel",
label: game.i18n.localize("LETHALFANTASY.Combat.proceedNo"),
callback: () => null
callback: () => "cancel"
}
],
rejectClose: false
})
if (manualDR === null) return
if (manualDR === null || manualDR === "cancel") return
const rollOpts = {
type: "spell-damage",
rollType: "spell-damage",
@@ -394,18 +394,7 @@ Hooks.on("renderChatMessageHTML", (message, html, data) => {
actorName: actor.name,
actorImage: actor.img
}
const roll = new documents.LethalFantasyRoll(damageFormula, {}, rollOpts)
await roll.evaluate()
const diceResults = []
for (const term of roll.dice) {
for (const r of term.results) {
diceResults.push({ dice: `1D${term.faces}`, value: r.result })
}
}
roll.options.diceResults = diceResults
roll.options.rollTotal = roll.total
if (game?.dice3d) await game.dice3d.showForRoll(roll, game.user, true)
await roll.toMessage()
await documents.LethalFantasyRoll.rollSpellDamageToMessage(damageFormula, rollOpts)
return
}
+3 -14
View File
@@ -268,12 +268,12 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
{
action: "cancel",
label: game.i18n.localize("LETHALFANTASY.Combat.proceedNo"),
callback: () => null
callback: () => "cancel"
}
],
rejectClose: false
})
if (manualDR === null) return
if (manualDR === null || manualDR === "cancel") return
const rollOpts = {
type: "spell-damage",
@@ -286,18 +286,7 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
actorName: this.actor.name,
actorImage: this.actor.img
}
const roll = new LethalFantasyRoll(formula, {}, rollOpts)
await roll.evaluate()
const diceResults = []
for (const term of roll.dice) {
for (const r of term.results) {
diceResults.push({ dice: `1D${term.faces}`, value: r.result })
}
}
roll.options.diceResults = diceResults
roll.options.rollTotal = roll.total
if (game?.dice3d) await game.dice3d.showForRoll(roll, game.user, true)
await roll.toMessage()
await LethalFantasyRoll.rollSpellDamageToMessage(formula, rollOpts)
}
static #onCreateEquipment(event, target) {
+46 -2
View File
@@ -338,6 +338,10 @@ export default class LethalFantasyRoll extends Roll {
let modifier = "+0"
let targetName
// True for any ranged attack: PC weapon (ranged type) or monster attack (ranged mode)
const isRangedAttack = (options.rollType === "weapon-attack" && options.rollTarget?.weapon?.system?.weaponType === "ranged")
|| (options.rollType === "monster-attack" && options.rollTarget?.attackMode === "ranged")
let dialogContext = {
rollType: options.rollType,
rollTarget: options.rollTarget,
@@ -362,7 +366,8 @@ export default class LethalFantasyRoll extends Roll {
modifier,
saveSpell: false,
favor: "none",
targetName
targetName,
isRangedAttack
}
let rollContext
if (options.rollContext) {
@@ -903,7 +908,7 @@ export default class LethalFantasyRoll extends Roll {
if (rollContext === "rollLethargyDice") {
if (currentAction.spellStatus === "castingTime") {
let time = currentAction.type === "spell" ? currentAction.system.castingTime : currentAction.system.prayerTime
if (currentAction.castingTime < time) {
if (currentAction.castingTime <= time) {
let message = `Casting time : ${currentAction.name}, count : ${currentAction.castingTime}/${time}`
ChatMessage.create({ content: message, speaker: ChatMessage.getSpeaker({ actor: combatant.actor }) })
currentAction.castingTime += 1
@@ -1524,4 +1529,43 @@ export default class LethalFantasyRoll extends Roll {
)
}
/**
* Evaluate a spell/miracle damage formula with per-die explosion, then post to chat.
* Explosion dice are shown manually via showForRoll; the main roll is shown automatically
* by toMessage() (which triggers Dice So Nice via its createChatMessage hook).
* Append "NE" to the formula to disable explosion.
*
* @param {string} formula Dice formula, e.g. "1d8", "2d6", "1d8NE"
* @param {Object} rollOpts Options for LethalFantasyRoll (rollType, actorId, defenderId, etc.)
* @returns {Promise<ChatMessage>}
*/
static async rollSpellDamageToMessage(formula, rollOpts) {
const roll = new LethalFantasyRoll(formula, {}, rollOpts)
await roll.evaluate()
const shouldExplode = !/NE$/i.test(formula)
const diceResults = []
let diceSum = 0
for (const term of roll.dice) {
const singleDice = `1D${term.faces}`
for (const r of term.results) {
let diceResult = r.result
diceResults.push({ dice: singleDice.toUpperCase(), value: diceResult })
diceSum += diceResult
if (shouldExplode && term.faces > 0) {
while (diceResult === term.faces) {
const xr = await new Roll(singleDice).evaluate()
if (game?.dice3d) await game.dice3d.showForRoll(xr, game.user, true)
// Optional chaining guards against unexpected roll structure
diceResult = xr.dice?.[0]?.results?.[0]?.result ?? (term.faces - 1)
diceResults.push({ dice: `${singleDice.toUpperCase()}-1`, value: diceResult - 1 })
diceSum += (diceResult - 1)
}
}
}
}
roll.options.diceResults = diceResults
roll.options.rollTotal = diceSum
return roll.toMessage()
}
}
-17
View File
@@ -283,23 +283,6 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
*/
async roll(rollType, rollTarget, defenderId, defenderTokenId, extraShieldDr = 0) {
const hasTarget = false
// Ranged weapon attacks from PCs use the ranged attack dialog (range, movement, aim modifiers)
if (rollType === "weapon-attack" && rollTarget?.isRangedAttack === true) {
let roll = await LethalFantasyRoll.promptRangedAttack({
rollType: "weapon-attack",
actorId: this.parent.id,
actorName: this.parent.name,
actorImage: this.parent.img,
rollTarget,
defenderId,
defenderTokenId,
})
if (!roll) return null
await roll.toMessage({}, { messageMode: roll.options.rollMode })
return
}
let roll = await LethalFantasyRoll.prompt({
rollType,
rollTarget,
+1 -16
View File
@@ -167,22 +167,7 @@ export default class LethalFantasyMonster extends foundry.abstract.TypeDataModel
async roll(rollType, rollTarget, defenderId = undefined, defenderTokenId = undefined, extraShieldDr = 0) {
const hasTarget = false
// Ranged monster attacks use a specialized dialog with range/movement/size/aim modifiers
if (rollType === "monster-attack" && rollTarget?.attackMode === "ranged") {
let roll = await LethalFantasyRoll.promptRangedAttack({
actorId: this.parent.id,
actorName: this.parent.name,
actorImage: this.parent.img,
rollTarget,
defenderId,
defenderTokenId,
})
if (!roll) return null
await roll.toMessage({}, { messageMode: roll.options.rollMode })
return
}
// Ranged monster defense uses the same ranged defense dialog as PC characters
// Ranged monster defense uses the ranged defense dialog (movement, range, size modifiers)
if (rollType === "monster-defense" && rollTarget?.isRangedDefense === true) {
let roll = await LethalFantasyRoll.promptRangedDefense({
actorId: this.parent.id,
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000615
MANIFEST-000623
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/23-18:45:10.214922 7fa233fff6c0 Recovering log #613
2026/05/23-18:45:10.223944 7fa233fff6c0 Delete type=3 #611
2026/05/23-18:45:10.223997 7fa233fff6c0 Delete type=0 #613
2026/05/23-19:09:56.190877 7fa2327fc6c0 Level-0 table #618: started
2026/05/23-19:09:56.190922 7fa2327fc6c0 Level-0 table #618: 0 bytes OK
2026/05/23-19:09:56.224359 7fa2327fc6c0 Delete type=0 #616
2026/05/23-19:09:56.339160 7fa2327fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339194 7fa2327fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/25-11:43:40.059603 7f88315ff6c0 Recovering log #621
2026/05/25-11:43:40.071136 7f88315ff6c0 Delete type=3 #619
2026/05/25-11:43:40.071202 7f88315ff6c0 Delete type=0 #621
2026/05/25-12:29:17.727995 7f87e2ffd6c0 Level-0 table #626: started
2026/05/25-12:29:17.728028 7f87e2ffd6c0 Level-0 table #626: 0 bytes OK
2026/05/25-12:29:17.733783 7f87e2ffd6c0 Delete type=0 #624
2026/05/25-12:29:17.740143 7f87e2ffd6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/25-12:29:17.740167 7f87e2ffd6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.153266 7f179e7ed6c0 Recovering log #609
2026/05/20-23:09:33.205459 7f179e7ed6c0 Delete type=3 #607
2026/05/20-23:09:33.205507 7f179e7ed6c0 Delete type=0 #609
2026/05/20-23:16:53.517842 7f179d7eb6c0 Level-0 table #614: started
2026/05/20-23:16:53.517893 7f179d7eb6c0 Level-0 table #614: 0 bytes OK
2026/05/20-23:16:53.523991 7f179d7eb6c0 Delete type=0 #612
2026/05/20-23:16:53.536989 7f179d7eb6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537026 7f179d7eb6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/24-09:22:43.041326 7fdfa95ff6c0 Recovering log #617
2026/05/24-09:22:43.083988 7fdfa95ff6c0 Delete type=3 #615
2026/05/24-09:22:43.084045 7fdfa95ff6c0 Delete type=0 #617
2026/05/24-09:42:00.304351 7fdf5affd6c0 Level-0 table #622: started
2026/05/24-09:42:00.304423 7fdf5affd6c0 Level-0 table #622: 0 bytes OK
2026/05/24-09:42:00.311333 7fdf5affd6c0 Delete type=0 #620
2026/05/24-09:42:00.334170 7fdf5affd6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/24-09:42:00.334370 7fdf5affd6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000612
MANIFEST-000620
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/23-18:45:10.228083 7fa232ffd6c0 Recovering log #610
2026/05/23-18:45:10.236935 7fa232ffd6c0 Delete type=3 #608
2026/05/23-18:45:10.236958 7fa232ffd6c0 Delete type=0 #610
2026/05/23-19:09:56.261648 7fa2327fc6c0 Level-0 table #615: started
2026/05/23-19:09:56.261672 7fa2327fc6c0 Level-0 table #615: 0 bytes OK
2026/05/23-19:09:56.304021 7fa2327fc6c0 Delete type=0 #613
2026/05/23-19:09:56.339181 7fa2327fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339208 7fa2327fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/25-11:43:40.077580 7f87e37fe6c0 Recovering log #618
2026/05/25-11:43:40.087750 7f87e37fe6c0 Delete type=3 #616
2026/05/25-11:43:40.087800 7f87e37fe6c0 Delete type=0 #618
2026/05/25-12:29:17.758832 7f87e2ffd6c0 Level-0 table #623: started
2026/05/25-12:29:17.758858 7f87e2ffd6c0 Level-0 table #623: 0 bytes OK
2026/05/25-12:29:17.764622 7f87e2ffd6c0 Delete type=0 #621
2026/05/25-12:29:17.777473 7f87e2ffd6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/25-12:29:17.784124 7f87e2ffd6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.234730 7f179e7ed6c0 Recovering log #606
2026/05/20-23:09:33.288868 7f179e7ed6c0 Delete type=3 #604
2026/05/20-23:09:33.288920 7f179e7ed6c0 Delete type=0 #606
2026/05/20-23:16:53.524172 7f179d7eb6c0 Level-0 table #611: started
2026/05/20-23:16:53.524219 7f179d7eb6c0 Level-0 table #611: 0 bytes OK
2026/05/20-23:16:53.530312 7f179d7eb6c0 Delete type=0 #609
2026/05/20-23:16:53.537003 7f179d7eb6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537059 7f179d7eb6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/24-09:22:43.091828 7fdfa8dfe6c0 Recovering log #614
2026/05/24-09:22:43.131041 7fdfa8dfe6c0 Delete type=3 #612
2026/05/24-09:22:43.131104 7fdfa8dfe6c0 Delete type=0 #614
2026/05/24-09:42:00.326388 7fdf5affd6c0 Level-0 table #619: started
2026/05/24-09:42:00.326417 7fdf5affd6c0 Level-0 table #619: 0 bytes OK
2026/05/24-09:42:00.334051 7fdf5affd6c0 Delete type=0 #617
2026/05/24-09:42:00.334205 7fdf5affd6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/24-09:42:00.334364 7fdf5affd6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000617
MANIFEST-000625
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/23-18:45:10.200781 7fa2337fe6c0 Recovering log #615
2026/05/23-18:45:10.211345 7fa2337fe6c0 Delete type=3 #613
2026/05/23-18:45:10.211416 7fa2337fe6c0 Delete type=0 #615
2026/05/23-19:09:56.304132 7fa2327fc6c0 Level-0 table #620: started
2026/05/23-19:09:56.304162 7fa2327fc6c0 Level-0 table #620: 0 bytes OK
2026/05/23-19:09:56.339034 7fa2327fc6c0 Delete type=0 #618
2026/05/23-19:09:56.339189 7fa2327fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339203 7fa2327fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/25-11:43:40.044921 7f87e3fff6c0 Recovering log #623
2026/05/25-11:43:40.054992 7f87e3fff6c0 Delete type=3 #621
2026/05/25-11:43:40.055048 7f87e3fff6c0 Delete type=0 #623
2026/05/25-12:29:17.710484 7f87e2ffd6c0 Level-0 table #628: started
2026/05/25-12:29:17.710568 7f87e2ffd6c0 Level-0 table #628: 0 bytes OK
2026/05/25-12:29:17.716928 7f87e2ffd6c0 Delete type=0 #626
2026/05/25-12:29:17.740121 7f87e2ffd6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/25-12:29:17.758707 7f87e2ffd6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.082007 7f179dfec6c0 Recovering log #611
2026/05/20-23:09:33.140910 7f179dfec6c0 Delete type=3 #609
2026/05/20-23:09:33.140962 7f179dfec6c0 Delete type=0 #611
2026/05/20-23:16:53.510592 7f179d7eb6c0 Level-0 table #616: started
2026/05/20-23:16:53.510664 7f179d7eb6c0 Level-0 table #616: 0 bytes OK
2026/05/20-23:16:53.517661 7f179d7eb6c0 Delete type=0 #614
2026/05/20-23:16:53.536973 7f179d7eb6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537037 7f179d7eb6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/24-09:22:42.993966 7fdfa8dfe6c0 Recovering log #619
2026/05/24-09:22:43.035467 7fdfa8dfe6c0 Delete type=3 #617
2026/05/24-09:22:43.035518 7fdfa8dfe6c0 Delete type=0 #619
2026/05/24-09:42:00.319082 7fdf5affd6c0 Level-0 table #624: started
2026/05/24-09:42:00.319109 7fdf5affd6c0 Level-0 table #624: 0 bytes OK
2026/05/24-09:42:00.326261 7fdf5affd6c0 Delete type=0 #622
2026/05/24-09:42:00.334196 7fdf5affd6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/24-09:42:00.334355 7fdf5affd6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000312
MANIFEST-000320
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/23-18:45:10.252202 7fa2337fe6c0 Recovering log #310
2026/05/23-18:45:10.261300 7fa2337fe6c0 Delete type=3 #308
2026/05/23-18:45:10.261343 7fa2337fe6c0 Delete type=0 #310
2026/05/23-19:09:56.467263 7fa2327fc6c0 Level-0 table #315: started
2026/05/23-19:09:56.467308 7fa2327fc6c0 Level-0 table #315: 0 bytes OK
2026/05/23-19:09:56.509084 7fa2327fc6c0 Delete type=0 #313
2026/05/23-19:09:56.608544 7fa2327fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.665018 7fa2327fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/25-11:43:40.107633 7f8830dfe6c0 Recovering log #318
2026/05/25-11:43:40.118039 7f8830dfe6c0 Delete type=3 #316
2026/05/25-11:43:40.118104 7f8830dfe6c0 Delete type=0 #318
2026/05/25-12:29:17.777484 7f87e2ffd6c0 Level-0 table #323: started
2026/05/25-12:29:17.777511 7f87e2ffd6c0 Level-0 table #323: 0 bytes OK
2026/05/25-12:29:17.784021 7f87e2ffd6c0 Delete type=0 #321
2026/05/25-12:29:17.784188 7f87e2ffd6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/25-12:29:17.803354 7f87e2ffd6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.368596 7f179e7ed6c0 Recovering log #306
2026/05/20-23:09:33.422152 7f179e7ed6c0 Delete type=3 #304
2026/05/20-23:09:33.422210 7f179e7ed6c0 Delete type=0 #306
2026/05/20-23:16:53.560903 7f179d7eb6c0 Level-0 table #311: started
2026/05/20-23:16:53.560969 7f179d7eb6c0 Level-0 table #311: 0 bytes OK
2026/05/20-23:16:53.568455 7f179d7eb6c0 Delete type=0 #309
2026/05/20-23:16:53.568616 7f179d7eb6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.578679 7f179d7eb6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/24-09:22:43.194643 7fdfa8dfe6c0 Recovering log #314
2026/05/24-09:22:43.231409 7fdfa8dfe6c0 Delete type=3 #312
2026/05/24-09:22:43.231470 7fdfa8dfe6c0 Delete type=0 #314
2026/05/24-09:42:00.341818 7fdf5affd6c0 Level-0 table #319: started
2026/05/24-09:42:00.341853 7fdf5affd6c0 Level-0 table #319: 0 bytes OK
2026/05/24-09:42:00.348538 7fdf5affd6c0 Delete type=0 #317
2026/05/24-09:42:00.367125 7fdf5affd6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/24-09:42:00.367348 7fdf5affd6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000611
MANIFEST-000619
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/23-18:45:10.238924 7fa233fff6c0 Recovering log #609
2026/05/23-18:45:10.250309 7fa233fff6c0 Delete type=3 #607
2026/05/23-18:45:10.250371 7fa233fff6c0 Delete type=0 #609
2026/05/23-19:09:56.224507 7fa2327fc6c0 Level-0 table #614: started
2026/05/23-19:09:56.224539 7fa2327fc6c0 Level-0 table #614: 0 bytes OK
2026/05/23-19:09:56.261516 7fa2327fc6c0 Delete type=0 #612
2026/05/23-19:09:56.339172 7fa2327fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339199 7fa2327fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/25-11:43:40.093877 7f87e3fff6c0 Recovering log #617
2026/05/25-11:43:40.103670 7f87e3fff6c0 Delete type=3 #615
2026/05/25-11:43:40.103720 7f87e3fff6c0 Delete type=0 #617
2026/05/25-12:29:17.764689 7f87e2ffd6c0 Level-0 table #622: started
2026/05/25-12:29:17.764705 7f87e2ffd6c0 Level-0 table #622: 0 bytes OK
2026/05/25-12:29:17.770486 7f87e2ffd6c0 Delete type=0 #620
2026/05/25-12:29:17.784104 7f87e2ffd6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/25-12:29:17.784130 7f87e2ffd6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.302872 7f179efee6c0 Recovering log #605
2026/05/20-23:09:33.362229 7f179efee6c0 Delete type=3 #603
2026/05/20-23:09:33.362319 7f179efee6c0 Delete type=0 #605
2026/05/20-23:16:53.530498 7f179d7eb6c0 Level-0 table #610: started
2026/05/20-23:16:53.530547 7f179d7eb6c0 Level-0 table #610: 0 bytes OK
2026/05/20-23:16:53.536854 7f179d7eb6c0 Delete type=0 #608
2026/05/20-23:16:53.537015 7f179d7eb6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537048 7f179d7eb6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/24-09:22:43.141936 7fdf5bfff6c0 Recovering log #613
2026/05/24-09:22:43.189387 7fdf5bfff6c0 Delete type=3 #611
2026/05/24-09:22:43.189438 7fdf5bfff6c0 Delete type=0 #613
2026/05/24-09:42:00.311436 7fdf5affd6c0 Level-0 table #618: started
2026/05/24-09:42:00.311459 7fdf5affd6c0 Level-0 table #618: 0 bytes OK
2026/05/24-09:42:00.318964 7fdf5affd6c0 Delete type=0 #616
2026/05/24-09:42:00.334187 7fdf5affd6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/24-09:42:00.334334 7fdf5affd6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
+4 -4
View File
@@ -387,11 +387,11 @@
min-width: 6rem;
max-width: 6rem;
}
min-width: 10rem;
max-width: 10rem;
min-width: 11rem;
max-width: 11rem;
.input {
min-width: 2.5rem;
max-width: 2.5rem;
min-width: 3.5rem;
max-width: 3.5rem;
}
}
.granted {
+1 -3
View File
@@ -55,8 +55,7 @@
<div class="dialog-save">Add Granted Attack Dice
<input type="checkbox" data-action="selectGranted" name="granted" />
</div>
{{#if rollTarget.weapon}}
{{#if (eq rollTarget.weapon.system.weaponType "melee")}}{{else}}
{{#if isRangedAttack}}
<div class="dialog-save">Point Blank Range Attack
<input
type="checkbox"
@@ -84,7 +83,6 @@
</select>
</div>
{{/if}}
{{/if}}
{{/if}}
{{#if (match rollType "defense")}}