Ranged defense fixes again
This commit is contained in:
@@ -2236,10 +2236,17 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy-range-defense-dialog fieldset {
|
.lethalfantasy-range-defense-dialog fieldset {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy-range-defense-dialog .fieldset-centered {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.lethalfantasy-range-defense-dialog select {
|
.lethalfantasy-range-defense-dialog select {
|
||||||
margin-left: 0.5rem;
|
margin-left: 0.5rem;
|
||||||
min-width: 10rem;
|
min-width: 12rem;
|
||||||
max-width: 10rem;
|
max-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy-range-defense-dialog .field-section {
|
.lethalfantasy-range-defense-dialog .field-section {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -2247,9 +2254,9 @@ i.lethalfantasy {
|
|||||||
justify-content: left;
|
justify-content: left;
|
||||||
}
|
}
|
||||||
.lethalfantasy-range-defense-dialog .field-name {
|
.lethalfantasy-range-defense-dialog .field-name {
|
||||||
width: 4rem;
|
width: 5rem;
|
||||||
min-width: 4rem;
|
min-width: 5rem;
|
||||||
max-width: 4rem;
|
max-width: 5em;
|
||||||
}
|
}
|
||||||
.dialog-form .form-footer button {
|
.dialog-form .form-footer button {
|
||||||
min-width: 14rem;
|
min-width: 14rem;
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
||||||
|
|
||||||
// Handle different data types
|
// Handle different data types
|
||||||
if (data.type === "Item") {
|
if (data.type === "Item") {
|
||||||
const item = await fromUuid(data.uuid)
|
const item = await fromUuid(data.uuid)
|
||||||
return this._onDropItem(item)
|
return this._onDropItem(item)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
let hasGrantedDice = false
|
let hasGrantedDice = false
|
||||||
let pointBlank = false
|
let pointBlank = false
|
||||||
let letItFly = false
|
let letItFly = false
|
||||||
|
let saveSpell = false
|
||||||
let beyondSkill = false
|
let beyondSkill = false
|
||||||
let hasStaticModifier = false
|
let hasStaticModifier = false
|
||||||
let hasExplode = true
|
let hasExplode = true
|
||||||
@@ -368,6 +369,9 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
"selectLetItFly": (event, button, dialog) => {
|
"selectLetItFly": (event, button, dialog) => {
|
||||||
letItFly = button.checked
|
letItFly = button.checked
|
||||||
},
|
},
|
||||||
|
"saveSpellCheck": (event, button, dialog) => {
|
||||||
|
saveSpell = button.checked
|
||||||
|
},
|
||||||
"gotoToken": (event, button, dialog) => {
|
"gotoToken": (event, button, dialog) => {
|
||||||
let tokenId = $(button).data("tokenId")
|
let tokenId = $(button).data("tokenId")
|
||||||
let token = canvas.tokens?.get(tokenId)
|
let token = canvas.tokens?.get(tokenId)
|
||||||
@@ -384,6 +388,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
// If the user cancels the dialog, exit
|
// If the user cancels the dialog, exit
|
||||||
if (rollContext === null) return
|
if (rollContext === null) return
|
||||||
console.log("rollContext", rollContext, hasGrantedDice)
|
console.log("rollContext", rollContext, hasGrantedDice)
|
||||||
|
rollContext.saveSpell = saveSpell // Update fucking flag
|
||||||
|
|
||||||
let fullModifier = 0
|
let fullModifier = 0
|
||||||
let titleFormula = ""
|
let titleFormula = ""
|
||||||
@@ -405,7 +410,6 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
if (hasStaticModifier) {
|
if (hasStaticModifier) {
|
||||||
modifierFormula += ` + ${options.rollTarget.staticModifier}`
|
modifierFormula += ` + ${options.rollTarget.staticModifier}`
|
||||||
}
|
}
|
||||||
// modifierFormula += ` + ${options.rollTarget.charModifier}`
|
|
||||||
let sign = fullModifier < 0 ? "-" : "+"
|
let sign = fullModifier < 0 ? "-" : "+"
|
||||||
if (hasExplode) {
|
if (hasExplode) {
|
||||||
titleFormula = `${dice}E ${sign} ${modifierFormula}`
|
titleFormula = `${dice}E ${sign} ${modifierFormula}`
|
||||||
@@ -440,10 +444,11 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Specific pain/poison/contagion case
|
// Specific pain/poison/contagion case
|
||||||
if (options.rollType === "save" && (options.rollTarget.rollKey === "pain" || options.rollTarget.rollKey === "paincourage" || options.rollTarget.rollKey === "poison" || options.rollTarget.rollKey === "contagion")) {
|
if (options.rollType === "save" && (options.rollTarget.rollKey === "poison" || options.rollTarget.rollKey === "contagion")) {
|
||||||
hasD30 = false
|
hasD30 = false
|
||||||
hasStaticModifier = true
|
hasStaticModifier = true
|
||||||
modifierFormula = ` + ${Math.abs(fullModifier)}`
|
modifierFormula = ` + ${Math.abs(fullModifier)}`
|
||||||
|
titleFormula = `${dice}E + ${Math.abs(fullModifier)}`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (letItFly) {
|
if (letItFly) {
|
||||||
@@ -622,7 +627,6 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
fieldRollMode,
|
fieldRollMode,
|
||||||
rollModes
|
rollModes
|
||||||
}
|
}
|
||||||
console.log("CTX", dialogContext)
|
|
||||||
|
|
||||||
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-initiative-dialog.hbs", dialogContext)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-initiative-dialog.hbs", dialogContext)
|
||||||
|
|
||||||
@@ -657,7 +661,6 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
let combat = game.combats.get(options.combatId)
|
let combat = game.combats.get(options.combatId)
|
||||||
combat.updateEmbeddedDocuments("Combatant", [{ _id: options.combatantId, initiative: initRoll.total, 'system.progressionCount': 0 }]);
|
combat.updateEmbeddedDocuments("Combatant", [{ _id: options.combatantId, initiative: initRoll.total, 'system.progressionCount': 0 }]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ***********************************************************/
|
/* ***********************************************************/
|
||||||
@@ -920,9 +923,9 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ***********************************************************/
|
/* ***********************************************************/
|
||||||
static async promptRangedDefense(rollTarget) {
|
static async promptRangedDefense(options = {}) {
|
||||||
|
|
||||||
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes); // v12 : Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes);
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
choices: rollModes,
|
choices: rollModes,
|
||||||
blank: false,
|
blank: false,
|
||||||
@@ -937,13 +940,12 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
attackerAimChoices: SYSTEM.ATTACKER_AIM_CHOICES,
|
attackerAimChoices: SYSTEM.ATTACKER_AIM_CHOICES,
|
||||||
movement: "none",
|
movement: "none",
|
||||||
moveDirection: "none",
|
moveDirection: "none",
|
||||||
size: "medium",
|
size: "+5",
|
||||||
range: "short",
|
range: "short",
|
||||||
attackerAim: "simple",
|
attackerAim: "simple",
|
||||||
fieldRollMode,
|
fieldRollMode,
|
||||||
rollModes
|
rollModes
|
||||||
}
|
}
|
||||||
console.log("CTX", dialogContext)
|
|
||||||
|
|
||||||
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/range-defense-dialog.hbs", dialogContext)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/range-defense-dialog.hbs", dialogContext)
|
||||||
|
|
||||||
@@ -990,18 +992,18 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
Number(rollContext.size) +
|
Number(rollContext.size) +
|
||||||
Number(rollContext.range) +
|
Number(rollContext.range) +
|
||||||
Number(rollContext?.attackerAim || 0)
|
Number(rollContext?.attackerAim || 0)
|
||||||
console.log("Modifier", fullModifier, rollContext)
|
|
||||||
|
|
||||||
let modifierFormula
|
let modifierFormula
|
||||||
if (fullModifier === 0) {
|
if (fullModifier === 0) {
|
||||||
modifierFormula = "0"
|
modifierFormula = "0"
|
||||||
} else {
|
} else {
|
||||||
let modAbs = Math.abs(fullModifier)
|
let modAbs = Math.abs(fullModifier)
|
||||||
modifierFormula = `D${modAbs+1} -1`
|
modifierFormula = `D${modAbs + 1} -1`
|
||||||
}
|
}
|
||||||
|
|
||||||
let rollData = { ...rollContext }
|
let rollData = { ...rollContext }
|
||||||
let options = { ...rollContext }
|
// Merge rollContext object into options object
|
||||||
|
options = { ...options, ...rollContext }
|
||||||
options.rollName = "Ranged Defense"
|
options.rollName = "Ranged Defense"
|
||||||
|
|
||||||
const rollBase = new this(rollContext.movement, options.data, rollData)
|
const rollBase = new this(rollContext.movement, options.data, rollData)
|
||||||
@@ -1011,13 +1013,15 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
let rollD30 = await new Roll("1D30").evaluate()
|
let rollD30 = await new Roll("1D30").evaluate()
|
||||||
options.D30result = rollD30.total
|
options.D30result = rollD30.total
|
||||||
|
|
||||||
|
let badResult = 0
|
||||||
if (rollContext.movement.includes("kh")) {
|
if (rollContext.movement.includes("kh")) {
|
||||||
rollData.favor = "favor"
|
rollData.favor = "favor"
|
||||||
|
badResult = Math.min(rollBase.terms[0].results[0].result, rollBase.terms[0].results[1]?.result || 20)
|
||||||
}
|
}
|
||||||
if (rollContext.movement.includes("kl")) {
|
if (rollContext.movement.includes("kl")) {
|
||||||
rollData.favor = "disfavor"
|
rollData.favor = "disfavor"
|
||||||
|
badResult = Math.max(rollBase.terms[0].results[0].result, rollBase.terms[0].results[1]?.result || 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
let dice = rollContext.movement
|
let dice = rollContext.movement
|
||||||
let maxValue = 20 // As per latest changes (was : Number(dice.match(/\d+$/)[0])
|
let maxValue = 20 // As per latest changes (was : Number(dice.match(/\d+$/)[0])
|
||||||
let rollTotal = -1
|
let rollTotal = -1
|
||||||
@@ -1043,14 +1047,15 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
} else {
|
} else {
|
||||||
rollTotal = diceSum
|
rollTotal = diceSum
|
||||||
}
|
}
|
||||||
|
rollBase.options = { ...rollBase.options, ...options }
|
||||||
rollBase.options.resultType = resultType
|
rollBase.options.resultType = resultType
|
||||||
rollBase.options.rollTotal = rollTotal
|
rollBase.options.rollTotal = rollTotal
|
||||||
rollBase.options.diceResults = diceResults
|
rollBase.options.diceResults = diceResults
|
||||||
rollBase.options.rollTarget = options.rollTarget
|
rollBase.options.rollTarget = options.rollTarget
|
||||||
rollBase.options.titleFormula = `${dice}E + ${modifierFormula}`
|
rollBase.options.titleFormula = `1D20E + ${modifierFormula}`
|
||||||
rollBase.options.D30result = options.D30result
|
rollBase.options.D30result = options.D30result
|
||||||
rollBase.options.rollName = "Ranged Defense"
|
rollBase.options.rollName = "Ranged Defense"
|
||||||
|
rollBase.options.badResult = badResult
|
||||||
rollBase.options.rollData = foundry.utils.duplicate(rollData)
|
rollBase.options.rollData = foundry.utils.duplicate(rollData)
|
||||||
/**
|
/**
|
||||||
* A hook event that fires after the roll has been made.
|
* A hook event that fires after the roll has been made.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
MANIFEST-000416
|
MANIFEST-000420
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/17-07:46:03.118742 7f3080dfa6c0 Recovering log #414
|
2025/09/19-21:01:58.948341 7f7cfaffd6c0 Recovering log #418
|
||||||
2025/09/17-07:46:03.213578 7f3080dfa6c0 Delete type=3 #412
|
2025/09/19-21:01:58.990053 7f7cfaffd6c0 Delete type=3 #416
|
||||||
2025/09/17-07:46:03.213653 7f3080dfa6c0 Delete type=0 #414
|
2025/09/19-21:01:58.990118 7f7cfaffd6c0 Delete type=0 #418
|
||||||
2025/09/17-07:46:49.420076 7f307a7fc6c0 Level-0 table #419: started
|
2025/09/19-22:28:27.055322 7f7cf9fff6c0 Level-0 table #423: started
|
||||||
2025/09/17-07:46:49.420100 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
2025/09/19-22:28:27.055429 7f7cf9fff6c0 Level-0 table #423: 0 bytes OK
|
||||||
2025/09/17-07:46:49.429915 7f307a7fc6c0 Delete type=0 #417
|
2025/09/19-22:28:27.062766 7f7cf9fff6c0 Delete type=0 #421
|
||||||
2025/09/17-07:46:49.430201 7f307a7fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082558 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
2025/09/17-07:46:49.430227 7f307a7fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082605 7f7cf9fff6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/16-23:16:29.221312 7f307affd6c0 Recovering log #410
|
2025/09/17-07:46:03.118742 7f3080dfa6c0 Recovering log #414
|
||||||
2025/09/16-23:16:29.232289 7f307affd6c0 Delete type=3 #408
|
2025/09/17-07:46:03.213578 7f3080dfa6c0 Delete type=3 #412
|
||||||
2025/09/16-23:16:29.232343 7f307affd6c0 Delete type=0 #410
|
2025/09/17-07:46:03.213653 7f3080dfa6c0 Delete type=0 #414
|
||||||
2025/09/16-23:47:50.382735 7f307a7fc6c0 Level-0 table #415: started
|
2025/09/17-07:46:49.420076 7f307a7fc6c0 Level-0 table #419: started
|
||||||
2025/09/16-23:47:50.383046 7f307a7fc6c0 Level-0 table #415: 0 bytes OK
|
2025/09/17-07:46:49.420100 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
||||||
2025/09/16-23:47:50.390243 7f307a7fc6c0 Delete type=0 #413
|
2025/09/17-07:46:49.429915 7f307a7fc6c0 Delete type=0 #417
|
||||||
2025/09/16-23:47:50.410779 7f307a7fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430201 7f307a7fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
2025/09/16-23:47:50.410810 7f307a7fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430227 7f307a7fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000416
|
MANIFEST-000420
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/17-07:46:03.218339 7f307bfff6c0 Recovering log #414
|
2025/09/19-21:01:58.995284 7f7cfbfff6c0 Recovering log #418
|
||||||
2025/09/17-07:46:03.309130 7f307bfff6c0 Delete type=3 #412
|
2025/09/19-21:01:59.036400 7f7cfbfff6c0 Delete type=3 #416
|
||||||
2025/09/17-07:46:03.309200 7f307bfff6c0 Delete type=0 #414
|
2025/09/19-21:01:59.036480 7f7cfbfff6c0 Delete type=0 #418
|
||||||
2025/09/17-07:46:49.410790 7f307a7fc6c0 Level-0 table #419: started
|
2025/09/19-22:28:27.076046 7f7cf9fff6c0 Level-0 table #423: started
|
||||||
2025/09/17-07:46:49.410814 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
2025/09/19-22:28:27.076085 7f7cf9fff6c0 Level-0 table #423: 0 bytes OK
|
||||||
2025/09/17-07:46:49.419958 7f307a7fc6c0 Delete type=0 #417
|
2025/09/19-22:28:27.082428 7f7cf9fff6c0 Delete type=0 #421
|
||||||
2025/09/17-07:46:49.430187 7f307a7fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082612 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
2025/09/17-07:46:49.430218 7f307a7fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082639 7f7cf9fff6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/16-23:16:29.238114 7f3080dfa6c0 Recovering log #409
|
2025/09/17-07:46:03.218339 7f307bfff6c0 Recovering log #414
|
||||||
2025/09/16-23:16:29.248900 7f3080dfa6c0 Delete type=3 #407
|
2025/09/17-07:46:03.309130 7f307bfff6c0 Delete type=3 #412
|
||||||
2025/09/16-23:16:29.248979 7f3080dfa6c0 Delete type=0 #409
|
2025/09/17-07:46:03.309200 7f307bfff6c0 Delete type=0 #414
|
||||||
2025/09/16-23:47:50.397435 7f307a7fc6c0 Level-0 table #415: started
|
2025/09/17-07:46:49.410790 7f307a7fc6c0 Level-0 table #419: started
|
||||||
2025/09/16-23:47:50.397478 7f307a7fc6c0 Level-0 table #415: 0 bytes OK
|
2025/09/17-07:46:49.410814 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
||||||
2025/09/16-23:47:50.404058 7f307a7fc6c0 Delete type=0 #413
|
2025/09/17-07:46:49.419958 7f307a7fc6c0 Delete type=0 #417
|
||||||
2025/09/16-23:47:50.410801 7f307a7fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430187 7f307a7fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
2025/09/16-23:47:50.410854 7f307a7fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430218 7f307a7fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000416
|
MANIFEST-000420
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/17-07:46:03.016134 7f307affd6c0 Recovering log #414
|
2025/09/19-21:01:58.905694 7f7d00dfa6c0 Recovering log #418
|
||||||
2025/09/17-07:46:03.115017 7f307affd6c0 Delete type=3 #412
|
2025/09/19-21:01:58.943958 7f7d00dfa6c0 Delete type=3 #416
|
||||||
2025/09/17-07:46:03.115113 7f307affd6c0 Delete type=0 #414
|
2025/09/19-21:01:58.944064 7f7d00dfa6c0 Delete type=0 #418
|
||||||
2025/09/17-07:46:49.400823 7f307a7fc6c0 Level-0 table #419: started
|
2025/09/19-22:28:27.069590 7f7cf9fff6c0 Level-0 table #423: started
|
||||||
2025/09/17-07:46:49.400858 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
2025/09/19-22:28:27.069620 7f7cf9fff6c0 Level-0 table #423: 0 bytes OK
|
||||||
2025/09/17-07:46:49.410679 7f307a7fc6c0 Delete type=0 #417
|
2025/09/19-22:28:27.075890 7f7cf9fff6c0 Delete type=0 #421
|
||||||
2025/09/17-07:46:49.430172 7f307a7fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082581 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
2025/09/17-07:46:49.430210 7f307a7fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082657 7f7cf9fff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/16-23:16:29.207343 7f307bfff6c0 Recovering log #409
|
2025/09/17-07:46:03.016134 7f307affd6c0 Recovering log #414
|
||||||
2025/09/16-23:16:29.216984 7f307bfff6c0 Delete type=3 #407
|
2025/09/17-07:46:03.115017 7f307affd6c0 Delete type=3 #412
|
||||||
2025/09/16-23:16:29.217040 7f307bfff6c0 Delete type=0 #409
|
2025/09/17-07:46:03.115113 7f307affd6c0 Delete type=0 #414
|
||||||
2025/09/16-23:47:50.390364 7f307a7fc6c0 Level-0 table #415: started
|
2025/09/17-07:46:49.400823 7f307a7fc6c0 Level-0 table #419: started
|
||||||
2025/09/16-23:47:50.390390 7f307a7fc6c0 Level-0 table #415: 0 bytes OK
|
2025/09/17-07:46:49.400858 7f307a7fc6c0 Level-0 table #419: 0 bytes OK
|
||||||
2025/09/16-23:47:50.397293 7f307a7fc6c0 Delete type=0 #413
|
2025/09/17-07:46:49.410679 7f307a7fc6c0 Delete type=0 #417
|
||||||
2025/09/16-23:47:50.410791 7f307a7fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430172 7f307a7fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
2025/09/16-23:47:50.410840 7f307a7fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430210 7f307a7fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000116
|
MANIFEST-000120
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/17-07:46:03.403212 7f307affd6c0 Recovering log #114
|
2025/09/19-21:01:59.113262 7f7cfaffd6c0 Recovering log #118
|
||||||
2025/09/17-07:46:03.504394 7f307affd6c0 Delete type=3 #112
|
2025/09/19-21:01:59.152822 7f7cfaffd6c0 Delete type=3 #116
|
||||||
2025/09/17-07:46:03.504449 7f307affd6c0 Delete type=0 #114
|
2025/09/19-21:01:59.152924 7f7cfaffd6c0 Delete type=0 #118
|
||||||
2025/09/17-07:46:49.470775 7f307a7fc6c0 Level-0 table #119: started
|
2025/09/19-22:28:27.089546 7f7cf9fff6c0 Level-0 table #123: started
|
||||||
2025/09/17-07:46:49.470837 7f307a7fc6c0 Level-0 table #119: 0 bytes OK
|
2025/09/19-22:28:27.089602 7f7cf9fff6c0 Level-0 table #123: 0 bytes OK
|
||||||
2025/09/17-07:46:49.482316 7f307a7fc6c0 Delete type=0 #117
|
2025/09/19-22:28:27.095855 7f7cf9fff6c0 Delete type=0 #121
|
||||||
2025/09/17-07:46:49.503080 7f307a7fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.116632 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
2025/09/17-07:46:49.523511 7f307a7fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.145745 7f7cf9fff6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/16-23:16:29.263902 7f307affd6c0 Recovering log #109
|
2025/09/17-07:46:03.403212 7f307affd6c0 Recovering log #114
|
||||||
2025/09/16-23:16:29.274398 7f307affd6c0 Delete type=3 #107
|
2025/09/17-07:46:03.504394 7f307affd6c0 Delete type=3 #112
|
||||||
2025/09/16-23:16:29.274490 7f307affd6c0 Delete type=0 #109
|
2025/09/17-07:46:03.504449 7f307affd6c0 Delete type=0 #114
|
||||||
2025/09/16-23:47:50.437467 7f307a7fc6c0 Level-0 table #115: started
|
2025/09/17-07:46:49.470775 7f307a7fc6c0 Level-0 table #119: started
|
||||||
2025/09/16-23:47:50.437529 7f307a7fc6c0 Level-0 table #115: 0 bytes OK
|
2025/09/17-07:46:49.470837 7f307a7fc6c0 Level-0 table #119: 0 bytes OK
|
||||||
2025/09/16-23:47:50.443898 7f307a7fc6c0 Delete type=0 #113
|
2025/09/17-07:46:49.482316 7f307a7fc6c0 Delete type=0 #117
|
||||||
2025/09/16-23:47:50.474392 7f307a7fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.503080 7f307a7fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
2025/09/16-23:47:50.474456 7f307a7fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.523511 7f307a7fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000415
|
MANIFEST-000419
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/17-07:46:03.312040 7f307b7fe6c0 Recovering log #413
|
2025/09/19-21:01:59.044069 7f7cfb7fe6c0 Recovering log #417
|
||||||
2025/09/17-07:46:03.400421 7f307b7fe6c0 Delete type=3 #411
|
2025/09/19-21:01:59.110180 7f7cfb7fe6c0 Delete type=3 #415
|
||||||
2025/09/17-07:46:03.400487 7f307b7fe6c0 Delete type=0 #413
|
2025/09/19-21:01:59.110282 7f7cfb7fe6c0 Delete type=0 #417
|
||||||
2025/09/17-07:46:49.390955 7f307a7fc6c0 Level-0 table #418: started
|
2025/09/19-22:28:27.062900 7f7cf9fff6c0 Level-0 table #422: started
|
||||||
2025/09/17-07:46:49.391029 7f307a7fc6c0 Level-0 table #418: 0 bytes OK
|
2025/09/19-22:28:27.062937 7f7cf9fff6c0 Level-0 table #422: 0 bytes OK
|
||||||
2025/09/17-07:46:49.400683 7f307a7fc6c0 Delete type=0 #416
|
2025/09/19-22:28:27.069460 7f7cf9fff6c0 Delete type=0 #420
|
||||||
2025/09/17-07:46:49.430144 7f307a7fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082570 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
2025/09/17-07:46:49.430391 7f307a7fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/09/19-22:28:27.082620 7f7cf9fff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2025/09/16-23:16:29.250993 7f307bfff6c0 Recovering log #409
|
2025/09/17-07:46:03.312040 7f307b7fe6c0 Recovering log #413
|
||||||
2025/09/16-23:16:29.261540 7f307bfff6c0 Delete type=3 #407
|
2025/09/17-07:46:03.400421 7f307b7fe6c0 Delete type=3 #411
|
||||||
2025/09/16-23:16:29.261614 7f307bfff6c0 Delete type=0 #409
|
2025/09/17-07:46:03.400487 7f307b7fe6c0 Delete type=0 #413
|
||||||
2025/09/16-23:47:50.404206 7f307a7fc6c0 Level-0 table #414: started
|
2025/09/17-07:46:49.390955 7f307a7fc6c0 Level-0 table #418: started
|
||||||
2025/09/16-23:47:50.404257 7f307a7fc6c0 Level-0 table #414: 0 bytes OK
|
2025/09/17-07:46:49.391029 7f307a7fc6c0 Level-0 table #418: 0 bytes OK
|
||||||
2025/09/16-23:47:50.410667 7f307a7fc6c0 Delete type=0 #412
|
2025/09/17-07:46:49.400683 7f307a7fc6c0 Delete type=0 #416
|
||||||
2025/09/16-23:47:50.410817 7f307a7fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430144 7f307a7fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
2025/09/16-23:47:50.410847 7f307a7fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/09/17-07:46:49.430391 7f307a7fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -33,10 +33,17 @@
|
|||||||
fieldset {
|
fieldset {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
.fieldset-centered {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
select {
|
select {
|
||||||
margin-left: 0.5rem;
|
margin-left: 0.5rem;
|
||||||
min-width: 10rem;
|
min-width: 12rem;
|
||||||
max-width: 10rem;
|
max-width: 12rem;
|
||||||
}
|
}
|
||||||
.field-section {
|
.field-section {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -44,9 +51,9 @@
|
|||||||
justify-content: left;
|
justify-content: left;
|
||||||
}
|
}
|
||||||
.field-name {
|
.field-name {
|
||||||
width: 4rem;
|
width: 5rem;
|
||||||
min-width: 4rem;
|
min-width: 5rem;
|
||||||
max-width: 4rem;
|
max-width: 5em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="intro-right">
|
<div class="intro-right">
|
||||||
<span>{{actingCharName}} - {{upperFirst rollName}}</span>
|
<span><STRONG>{{actingCharName}} - {{upperFirst rollName}}</STRONG></span>
|
||||||
|
|
||||||
{{#if (match rollType "attack")}}
|
{{#if (match rollType "attack")}}
|
||||||
<span>Attack roll !</span>
|
<span>Attack roll !</span>
|
||||||
@@ -15,8 +15,14 @@
|
|||||||
<span>Defense roll !</span>
|
<span>Defense roll !</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq rollData.favor "favor")}}
|
||||||
|
<span><strong>Favor roll</strong></span>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq rollData.favor "disfavor")}}
|
||||||
|
<span><strong>Disfavor roll</strong></span>
|
||||||
|
{{/if}}
|
||||||
{{#if badResult}}
|
{{#if badResult}}
|
||||||
<span>{{localize "LETHALFANTASY.Label.otherResult"}} : {{badResult}}</span>
|
<span><strong>{{localize "LETHALFANTASY.Label.otherResult"}}</strong> : {{badResult}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if rollTarget.weapon}}
|
{{#if rollTarget.weapon}}
|
||||||
@@ -32,14 +38,8 @@
|
|||||||
{{#if rollData.beyondSkill}}
|
{{#if rollData.beyondSkill}}
|
||||||
<span>Beyond Skill Range Attack !</span>
|
<span>Beyond Skill Range Attack !</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq rollData.favor "favor")}}
|
|
||||||
<span>Favor roll</span>
|
|
||||||
{{/if}}
|
|
||||||
{{#if (eq rollData.favor "disfavor")}}
|
|
||||||
<span>Disfavor roll</span>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<span>Formula : {{titleFormula}}</span>
|
<span><strong>Formula</strong> : {{titleFormula}}</span>
|
||||||
|
|
||||||
{{#each diceResults as |result|}}
|
{{#each diceResults as |result|}}
|
||||||
<span>{{result.dice}} : {{result.value}}</span>
|
<span>{{result.dice}} : {{result.value}}</span>
|
||||||
|
|||||||
@@ -36,9 +36,11 @@
|
|||||||
|
|
||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<span class="fieldset-centered">
|
||||||
{{selectOptions rollModes selected=visibility localize=true}}
|
<select name="visibility">
|
||||||
</select>
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
|
</select>
|
||||||
|
</span>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
{{#if rollTarget.magicUser}}
|
{{#if rollTarget.magicUser}}
|
||||||
<div>
|
<div>
|
||||||
<span>Save against spell (+{{rollTarget.actorModifiers.saveModifier}}) ?</span>
|
<span>Save against spell (+{{rollTarget.actorModifiers.saveModifier}}) ?</span>
|
||||||
<input type="checkbox" name="saveSpell" value="saveSpell">
|
<input type="checkbox" name="saveSpellCheck" data-action="saveSpellCheck">
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
Reference in New Issue
Block a user