Fight helper !
This commit is contained in:
@@ -3041,6 +3041,9 @@ i.fvtt-cthulhu-eternal {
|
||||
font-size: calc(var(--font-size-standard) * 2);
|
||||
color: var(--color-dark-1);
|
||||
}
|
||||
.li-apply-wounds {
|
||||
display: none;
|
||||
}
|
||||
.dice-roll {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
@@ -171,6 +171,15 @@ Hooks.on("renderChatMessageHTML", (message, html, data) => {
|
||||
CthulhuEternalUtils.applySANType(message, event)
|
||||
})
|
||||
}
|
||||
if (game.user.isGM) {
|
||||
$(html).find(".li-apply-wounds").each((i, btn) => {
|
||||
btn.style.display = "inline"
|
||||
})
|
||||
$(html).find(".li-apply-wounds-select").click((event) => {
|
||||
CthulhuEternalUtils.applyWounds(message, event)
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
/**
|
||||
|
@@ -730,7 +730,8 @@
|
||||
"visibility": "Visibility",
|
||||
"rangedRange": "Range",
|
||||
"aimingLastRound": "Aiming Last Round (+20)",
|
||||
"aimingWithSight": "Aiming with Sight (+20)"
|
||||
"aimingWithSight": "Aiming with Sight (+20)",
|
||||
"applyWounds": "Apply To"
|
||||
},
|
||||
"ChatMessage": {
|
||||
"exhausted": "Your protagonist is exhausted. He loses [[/r 1d6]] Willpower Points."
|
||||
@@ -755,6 +756,9 @@
|
||||
"rollDamage": "Roll Damage"
|
||||
},
|
||||
"Chat": {
|
||||
"noArmor": "No armor absorbed damage.",
|
||||
"armorAbsorbed": "Armor absorbed {armor} damage.",
|
||||
"woundsApplied": "Wounds applied to {name}: {effectiveWounds} (armor absorbed : {armorText})"
|
||||
},
|
||||
"Notifications": {
|
||||
"NoWeaponSkill": "No weapon skill found for this weapon. Check Weapon definition or available skills/era",
|
||||
|
@@ -751,7 +751,8 @@
|
||||
"visibility": "Visibilité",
|
||||
"rangedRange": "Portée",
|
||||
"aimingLastRound": "Visée lors du dernier round (+20)",
|
||||
"aimingWithSight": "Visée avec lunette (+20)"
|
||||
"aimingWithSight": "Visée avec lunette (+20)",
|
||||
"applyWounds": "Appliquer à"
|
||||
},
|
||||
"ChatMessage": {
|
||||
"exhausted": "Votre protagoniste est épuisé. Il perd [[/r 1d6]] Points de Volonté."
|
||||
@@ -776,6 +777,9 @@
|
||||
"rollDamage": "Lancer les dégâts"
|
||||
},
|
||||
"Chat": {
|
||||
"armorAbsorbed": "L'armure a absorbé {armor} points de dégâts.",
|
||||
"noArmor": "Pas d'armure.",
|
||||
"woundsApplied": "Blessures appliquées à {name} : {effectiveWounds} (armure absorbée : {armorText})"
|
||||
},
|
||||
"Notifications": {
|
||||
"NoWeaponSkill": "Aucune compétence associée n'a été trouvé pour cette arme. Vérifier la définition de l'arme ainsi que l'époque configurée.",
|
||||
|
@@ -23,8 +23,10 @@ export default class CthulhuEternalActor extends Actor {
|
||||
data.items.push(skill.toObject())
|
||||
}
|
||||
}
|
||||
data.items.push({ type:"weapon", img: "systems/fvtt-cthulhu-eternal/assets/icons/icon_fist.svg",
|
||||
name: game.i18n.localize("CTHULHUETERNAL.Label.Unarmed"), system: { damage: "1d4-1", weaponType: "unarmed" } })
|
||||
data.items.push({
|
||||
type: "weapon", img: "systems/fvtt-cthulhu-eternal/assets/icons/icon_fist.svg",
|
||||
name: game.i18n.localize("CTHULHUETERNAL.Label.Unarmed"), system: { damage: "1d4-1", weaponType: "unarmed" }
|
||||
})
|
||||
}
|
||||
|
||||
return super.create(data, options);
|
||||
@@ -43,6 +45,39 @@ export default class CthulhuEternalActor extends Actor {
|
||||
return super._onUpdate(changed, options, userId)
|
||||
}
|
||||
|
||||
applyWounds(woundData) {
|
||||
let updates = {}
|
||||
// Get available armor
|
||||
let armors = this.items.filter(i => i.type === "armor" && i.system.equipped)
|
||||
let totalArmor = 0
|
||||
for (let armor of armors) {
|
||||
totalArmor += armor.system.protection
|
||||
}
|
||||
let effectiveWounds = Math.max(woundData.rollResult - totalArmor, 0)
|
||||
if (woundData.isLethal) {
|
||||
effectiveWounds = this.system.hp.value // Killed!
|
||||
}
|
||||
// Apply armor reduction
|
||||
let hp = Math.max(this.system.hp.value - effectiveWounds, 0)
|
||||
if (this.system.hp.value !== hp) {
|
||||
updates[`system.hp.value`] = hp
|
||||
}
|
||||
if (Object.keys(updates).length > 0) {
|
||||
this.update(updates)
|
||||
}
|
||||
// Chat message for GM only
|
||||
if (game.user.isGM) {
|
||||
let armorText = totalArmor > 0 ? game.i18n.format("CTHULHUETERNAL.Chat.armorAbsorbed", { armor: totalArmor }) : game.i18n.localize("CTHULHUETERNAL.Chat.noArmor")
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
speaker: { alias: this.name },
|
||||
rollMode: "gmroll",
|
||||
content: game.i18n.format("CTHULHUETERNAL.Chat.woundsApplied", { name: this.name, effectiveWounds, armorText }),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async createEmbeddedDocuments(embeddedName, data, operation) {
|
||||
let newData = []
|
||||
if (embeddedName === "Item") {
|
||||
@@ -83,6 +118,6 @@ export default class CthulhuEternalActor extends Actor {
|
||||
})
|
||||
this.updateSource({ prototypeToken })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -146,6 +146,15 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
|
||||
ammoUsed = Number(ammoUsed)
|
||||
|
||||
let combatants = []
|
||||
if (game?.combat?.combatants) {
|
||||
for (let c of game.combat.combatants) {
|
||||
if (c.actor.id !== actor.id) {
|
||||
combatants.push({ id: c.actor.id, name: c.name })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (weapon.system.lethality > 0) {
|
||||
let lethalityRoll = new Roll("1d100")
|
||||
await lethalityRoll.evaluate()
|
||||
@@ -159,20 +168,22 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
}
|
||||
let wounds = Math.floor(lethalityRoll.total / 10) + (lethalityRoll.total % 10)
|
||||
let msgData = {
|
||||
actorId: actor.id,
|
||||
weapon,
|
||||
wounds,
|
||||
lethalScore,
|
||||
isLethal,
|
||||
ammoUsed,
|
||||
rollResult: lethalityRoll.total,
|
||||
combatants: combatants
|
||||
}
|
||||
let flavor = await foundry.applications.handlebars.renderTemplate("systems/fvtt-cthulhu-eternal/templates/chat-lethal-damage.hbs", msgData)
|
||||
ChatMessage.create({
|
||||
let msg = await ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: flavor,
|
||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||
}, { rollMode: options.rollMode, create: true })
|
||||
|
||||
await msg.setFlag("fvtt-cthulhu-eternal", "woundData", msgData)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -190,21 +201,24 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
"system.ammo.value": Math.max(0, weapon.system.ammo.value - ammoUsed)
|
||||
}])
|
||||
}
|
||||
console.log("Weapon damage formula", formula, weapon, ammoUsed)
|
||||
|
||||
let damageRoll = new Roll(formula)
|
||||
await damageRoll.evaluate()
|
||||
let msgData = {
|
||||
actorId: actor.id,
|
||||
weapon,
|
||||
formula,
|
||||
ammoUsed,
|
||||
rollResult: damageRoll.total,
|
||||
combatants: combatants
|
||||
}
|
||||
let flavor = await foundry.applications.handlebars.renderTemplate("systems/fvtt-cthulhu-eternal/templates/chat-regular-damage.hbs", msgData)
|
||||
ChatMessage.create({
|
||||
let msg = await ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: flavor,
|
||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||
}, { rollMode: options.rollMode, create: true })
|
||||
await msg.setFlag("fvtt-cthulhu-eternal", "woundData", msgData)
|
||||
}
|
||||
|
||||
|
||||
|
@@ -268,11 +268,11 @@ export default class CthulhuEternalUtils {
|
||||
}
|
||||
|
||||
static async registerBabeleTranslations(babele) {
|
||||
babele.registerConverters( {
|
||||
babele.registerConverters({
|
||||
'translateRangeUnit': (originalValue) => {
|
||||
return CthulhuEternalUtils.translateRangeUnit(originalValue)
|
||||
},
|
||||
'translateRange' : (originalValue) => {
|
||||
'translateRange': (originalValue) => {
|
||||
return CthulhuEternalUtils.translateRange(originalValue)
|
||||
}
|
||||
})
|
||||
@@ -336,7 +336,7 @@ export default class CthulhuEternalUtils {
|
||||
rejectClose: false, // Click on Close button will not launch an error
|
||||
render: (event, dialog) => {
|
||||
$(".nudged-score-select").change(event => {
|
||||
dialogContext.nudgedValue = Number(event.target.value)+1
|
||||
dialogContext.nudgedValue = Number(event.target.value) + 1
|
||||
dialogContext.wpCost = Math.ceil(Math.abs(rollMessage.rolls[0].total - dialogContext.nudgedValue) / 5)
|
||||
$("#nudged-wp-cost").val(dialogContext.wpCost)
|
||||
})
|
||||
@@ -375,4 +375,24 @@ export default class CthulhuEternalUtils {
|
||||
document.documentElement.style.setProperty('--background-image-base', `linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)), url("../assets/ui/${era}_background_main.webp")`);
|
||||
}
|
||||
|
||||
static applyWounds(message, event) {
|
||||
let woundData = message.getFlag("fvtt-cthulhu-eternal", "woundData")
|
||||
if (!woundData) {
|
||||
ui.notifications.error(game.i18n.localize("CTHULHUETERNAL.Notifications.noRollDataFound"))
|
||||
return
|
||||
}
|
||||
let actor = game.actors.get(woundData.actorId)
|
||||
if (!actor) {
|
||||
ui.notifications.error(game.i18n.localize("CTHULHUETERNAL.Notifications.noActorFound"))
|
||||
return
|
||||
}
|
||||
// Get the targetted actorId from the HTML select event
|
||||
let targetActorId = event.target.value
|
||||
let targetActor = game.actors.get(targetActorId)
|
||||
if (!targetActor) {
|
||||
ui.notifications.error(game.i18n.localize("CTHULHUETERNAL.Notifications.noTargetActorFound") + targetActorId)
|
||||
return
|
||||
}
|
||||
targetActor.applyWounds(woundData)
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000230
|
||||
MANIFEST-000249
|
||||
|
@@ -1,7 +1,7 @@
|
||||
2025/07/29-18:28:11.485462 7fbfdeffd6c0 Recovering log #227
|
||||
2025/07/29-18:28:11.542963 7fbfdeffd6c0 Delete type=3 #225
|
||||
2025/07/29-18:28:11.543020 7fbfdeffd6c0 Delete type=0 #227
|
||||
2025/07/29-18:28:25.939648 7fbd3ffff6c0 Level-0 table #233: started
|
||||
2025/07/29-18:28:25.939685 7fbd3ffff6c0 Level-0 table #233: 0 bytes OK
|
||||
2025/07/29-18:28:25.996353 7fbd3ffff6c0 Delete type=0 #231
|
||||
2025/07/29-18:28:25.996608 7fbd3ffff6c0 Manual compaction at level-0 from '!items!4oyPRBWPBWAChrJP' @ 72057594037927935 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-10:24:47.689741 7fc4987f86c0 Recovering log #246
|
||||
2025/10/01-10:24:47.787870 7fc4987f86c0 Delete type=3 #244
|
||||
2025/10/01-10:24:47.787986 7fc4987f86c0 Delete type=0 #246
|
||||
2025/10/01-11:24:12.555415 7fc497ff76c0 Level-0 table #252: started
|
||||
2025/10/01-11:24:12.555461 7fc497ff76c0 Level-0 table #252: 0 bytes OK
|
||||
2025/10/01-11:24:12.565317 7fc497ff76c0 Delete type=0 #250
|
||||
2025/10/01-11:24:12.577205 7fc497ff76c0 Manual compaction at level-0 from '!items!4oyPRBWPBWAChrJP' @ 72057594037927935 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at (end)
|
||||
|
@@ -1,11 +1,11 @@
|
||||
2025/07/29-17:56:07.304105 7fbfddffb6c0 Delete type=3 #1
|
||||
2025/07/29-18:20:36.901079 7fbd3ffff6c0 Level-0 table #228: started
|
||||
2025/07/29-18:20:36.901119 7fbd3ffff6c0 Level-0 table #228: 0 bytes OK
|
||||
2025/07/29-18:20:36.907068 7fbd3ffff6c0 Delete type=0 #226
|
||||
2025/07/29-18:20:36.913035 7fbd3ffff6c0 Manual compaction at level-0 from '!items!4oyPRBWPBWAChrJP' @ 72057594037927935 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at '!items!zVFfp3o0G0Zg3Ia4' @ 52 : 1
|
||||
2025/07/29-18:20:36.913051 7fbd3ffff6c0 Compacting 1@0 + 0@1 files
|
||||
2025/07/29-18:20:36.917150 7fbd3ffff6c0 Generated table #229@0: 26 keys, 60964 bytes
|
||||
2025/07/29-18:20:36.917172 7fbd3ffff6c0 Compacted 1@0 + 0@1 files => 60964 bytes
|
||||
2025/07/29-18:20:36.923988 7fbd3ffff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/07/29-18:20:36.924086 7fbd3ffff6c0 Delete type=2 #60
|
||||
2025/07/29-18:20:36.941818 7fbd3ffff6c0 Manual compaction at level-0 from '!items!zVFfp3o0G0Zg3Ia4' @ 52 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-09:23:25.493413 7fc499ffb6c0 Delete type=3 #1
|
||||
2025/10/01-09:24:30.037985 7fc497ff76c0 Level-0 table #247: started
|
||||
2025/10/01-09:24:30.038031 7fc497ff76c0 Level-0 table #247: 0 bytes OK
|
||||
2025/10/01-09:24:30.044462 7fc497ff76c0 Delete type=0 #245
|
||||
2025/10/01-09:24:30.069660 7fc497ff76c0 Manual compaction at level-0 from '!items!4oyPRBWPBWAChrJP' @ 72057594037927935 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at '!items!zVFfp3o0G0Zg3Ia4' @ 52 : 1
|
||||
2025/10/01-09:24:30.069672 7fc497ff76c0 Compacting 1@0 + 0@1 files
|
||||
2025/10/01-09:24:30.073695 7fc497ff76c0 Generated table #248@0: 26 keys, 60964 bytes
|
||||
2025/10/01-09:24:30.073722 7fc497ff76c0 Compacted 1@0 + 0@1 files => 60964 bytes
|
||||
2025/10/01-09:24:30.080151 7fc497ff76c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/10/01-09:24:30.080234 7fc497ff76c0 Delete type=2 #242
|
||||
2025/10/01-09:24:30.086925 7fc497ff76c0 Manual compaction at level-0 from '!items!zVFfp3o0G0Zg3Ia4' @ 52 : 1 .. '!items!zVFfp3o0G0Zg3Ia4' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000399
|
||||
MANIFEST-000418
|
||||
|
@@ -1,7 +1,7 @@
|
||||
2025/07/29-18:28:11.326583 7fbfdd7fa6c0 Recovering log #396
|
||||
2025/07/29-18:28:11.422544 7fbfdd7fa6c0 Delete type=3 #394
|
||||
2025/07/29-18:28:11.422600 7fbfdd7fa6c0 Delete type=0 #396
|
||||
2025/07/29-18:28:25.859630 7fbd3ffff6c0 Level-0 table #402: started
|
||||
2025/07/29-18:28:25.859675 7fbd3ffff6c0 Level-0 table #402: 0 bytes OK
|
||||
2025/07/29-18:28:25.902834 7fbd3ffff6c0 Delete type=0 #400
|
||||
2025/07/29-18:28:25.996583 7fbd3ffff6c0 Manual compaction at level-0 from '!folders!5PrT9QmN1cFPzDFP' @ 72057594037927935 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-10:24:47.499257 7fc4997fa6c0 Recovering log #415
|
||||
2025/10/01-10:24:47.596647 7fc4997fa6c0 Delete type=3 #413
|
||||
2025/10/01-10:24:47.596724 7fc4997fa6c0 Delete type=0 #415
|
||||
2025/10/01-11:24:12.545465 7fc497ff76c0 Level-0 table #421: started
|
||||
2025/10/01-11:24:12.545499 7fc497ff76c0 Level-0 table #421: 0 bytes OK
|
||||
2025/10/01-11:24:12.555310 7fc497ff76c0 Delete type=0 #419
|
||||
2025/10/01-11:24:12.577192 7fc497ff76c0 Manual compaction at level-0 from '!folders!5PrT9QmN1cFPzDFP' @ 72057594037927935 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at (end)
|
||||
|
@@ -1,11 +1,11 @@
|
||||
2025/07/29-17:56:07.265693 7fbfddffb6c0 Delete type=3 #1
|
||||
2025/07/29-18:20:36.941849 7fbd3ffff6c0 Level-0 table #397: started
|
||||
2025/07/29-18:20:36.941895 7fbd3ffff6c0 Level-0 table #397: 0 bytes OK
|
||||
2025/07/29-18:20:36.948373 7fbd3ffff6c0 Delete type=0 #395
|
||||
2025/07/29-18:20:36.960564 7fbd3ffff6c0 Manual compaction at level-0 from '!folders!5PrT9QmN1cFPzDFP' @ 72057594037927935 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at '!items!zvoUByzWSWZ87fxA' @ 1281 : 1
|
||||
2025/07/29-18:20:36.960577 7fbd3ffff6c0 Compacting 1@0 + 0@1 files
|
||||
2025/07/29-18:20:36.968003 7fbd3ffff6c0 Generated table #398@0: 556 keys, 320457 bytes
|
||||
2025/07/29-18:20:36.968044 7fbd3ffff6c0 Compacted 1@0 + 0@1 files => 320457 bytes
|
||||
2025/07/29-18:20:36.974076 7fbd3ffff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/07/29-18:20:36.974209 7fbd3ffff6c0 Delete type=2 #277
|
||||
2025/07/29-18:20:36.980862 7fbd3ffff6c0 Manual compaction at level-0 from '!items!zvoUByzWSWZ87fxA' @ 1281 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-09:23:25.444068 7fc499ffb6c0 Delete type=3 #1
|
||||
2025/10/01-09:24:30.024822 7fc497ff76c0 Level-0 table #416: started
|
||||
2025/10/01-09:24:30.024870 7fc497ff76c0 Level-0 table #416: 0 bytes OK
|
||||
2025/10/01-09:24:30.030665 7fc497ff76c0 Delete type=0 #414
|
||||
2025/10/01-09:24:30.044587 7fc497ff76c0 Manual compaction at level-0 from '!folders!5PrT9QmN1cFPzDFP' @ 72057594037927935 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at '!items!zvoUByzWSWZ87fxA' @ 1281 : 1
|
||||
2025/10/01-09:24:30.044598 7fc497ff76c0 Compacting 1@0 + 0@1 files
|
||||
2025/10/01-09:24:30.051264 7fc497ff76c0 Generated table #417@0: 556 keys, 320457 bytes
|
||||
2025/10/01-09:24:30.051285 7fc497ff76c0 Compacted 1@0 + 0@1 files => 320457 bytes
|
||||
2025/10/01-09:24:30.058278 7fc497ff76c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/10/01-09:24:30.058439 7fc497ff76c0 Delete type=2 #411
|
||||
2025/10/01-09:24:30.086897 7fc497ff76c0 Manual compaction at level-0 from '!items!zvoUByzWSWZ87fxA' @ 1281 : 1 .. '!items!zvoUByzWSWZ87fxA' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000045
|
||||
MANIFEST-000064
|
||||
|
@@ -1,7 +1,7 @@
|
||||
2025/07/29-18:28:11.426069 7fbfde7fc6c0 Recovering log #42
|
||||
2025/07/29-18:28:11.482529 7fbfde7fc6c0 Delete type=3 #40
|
||||
2025/07/29-18:28:11.482582 7fbfde7fc6c0 Delete type=0 #42
|
||||
2025/07/29-18:28:25.996691 7fbd3ffff6c0 Level-0 table #48: started
|
||||
2025/07/29-18:28:25.996717 7fbd3ffff6c0 Level-0 table #48: 0 bytes OK
|
||||
2025/07/29-18:28:26.032508 7fbd3ffff6c0 Delete type=0 #46
|
||||
2025/07/29-18:28:26.140428 7fbd3ffff6c0 Manual compaction at level-0 from '!folders!0DI3T2jve3nsmsfZ' @ 72057594037927935 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-10:24:47.601344 7fc499ffb6c0 Recovering log #61
|
||||
2025/10/01-10:24:47.686801 7fc499ffb6c0 Delete type=3 #59
|
||||
2025/10/01-10:24:47.686869 7fc499ffb6c0 Delete type=0 #61
|
||||
2025/10/01-11:24:12.535658 7fc497ff76c0 Level-0 table #67: started
|
||||
2025/10/01-11:24:12.535725 7fc497ff76c0 Level-0 table #67: 0 bytes OK
|
||||
2025/10/01-11:24:12.545352 7fc497ff76c0 Delete type=0 #65
|
||||
2025/10/01-11:24:12.577171 7fc497ff76c0 Manual compaction at level-0 from '!folders!0DI3T2jve3nsmsfZ' @ 72057594037927935 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at (end)
|
||||
|
@@ -1,11 +1,11 @@
|
||||
2025/07/29-17:56:07.286370 7fbfdeffd6c0 Delete type=3 #1
|
||||
2025/07/29-18:20:36.907148 7fbd3ffff6c0 Level-0 table #43: started
|
||||
2025/07/29-18:20:36.907174 7fbd3ffff6c0 Level-0 table #43: 0 bytes OK
|
||||
2025/07/29-18:20:36.912933 7fbd3ffff6c0 Delete type=0 #41
|
||||
2025/07/29-18:20:36.924240 7fbd3ffff6c0 Manual compaction at level-0 from '!folders!0DI3T2jve3nsmsfZ' @ 72057594037927935 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at '!items!zyxA9DhO36t5OBDv' @ 55 : 1
|
||||
2025/07/29-18:20:36.924252 7fbd3ffff6c0 Compacting 1@0 + 0@1 files
|
||||
2025/07/29-18:20:36.928859 7fbd3ffff6c0 Generated table #44@0: 362 keys, 93592 bytes
|
||||
2025/07/29-18:20:36.928870 7fbd3ffff6c0 Compacted 1@0 + 0@1 files => 93592 bytes
|
||||
2025/07/29-18:20:36.935549 7fbd3ffff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/07/29-18:20:36.935675 7fbd3ffff6c0 Delete type=2 #35
|
||||
2025/07/29-18:20:36.941835 7fbd3ffff6c0 Manual compaction at level-0 from '!items!zyxA9DhO36t5OBDv' @ 55 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at (end)
|
||||
2025/10/01-09:23:25.469063 7fc499ffb6c0 Delete type=3 #1
|
||||
2025/10/01-09:24:30.030754 7fc497ff76c0 Level-0 table #62: started
|
||||
2025/10/01-09:24:30.030783 7fc497ff76c0 Level-0 table #62: 0 bytes OK
|
||||
2025/10/01-09:24:30.037809 7fc497ff76c0 Delete type=0 #60
|
||||
2025/10/01-09:24:30.058634 7fc497ff76c0 Manual compaction at level-0 from '!folders!0DI3T2jve3nsmsfZ' @ 72057594037927935 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at '!items!zyxA9DhO36t5OBDv' @ 55 : 1
|
||||
2025/10/01-09:24:30.058646 7fc497ff76c0 Compacting 1@0 + 0@1 files
|
||||
2025/10/01-09:24:30.063565 7fc497ff76c0 Generated table #63@0: 362 keys, 93592 bytes
|
||||
2025/10/01-09:24:30.063591 7fc497ff76c0 Compacted 1@0 + 0@1 files => 93592 bytes
|
||||
2025/10/01-09:24:30.069446 7fc497ff76c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/10/01-09:24:30.069529 7fc497ff76c0 Delete type=2 #57
|
||||
2025/10/01-09:24:30.086915 7fc497ff76c0 Manual compaction at level-0 from '!items!zyxA9DhO36t5OBDv' @ 55 : 1 .. '!items!zyxA9DhO36t5OBDv' @ 0 : 0; will stop at (end)
|
||||
|
@@ -53,6 +53,10 @@
|
||||
color: var(--color-dark-1);
|
||||
}
|
||||
|
||||
.li-apply-wounds {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.dice-roll {
|
||||
flex-direction: column;
|
||||
|
||||
@@ -70,7 +74,7 @@
|
||||
border: 0px;
|
||||
}
|
||||
.intro-chat {
|
||||
color:var(--color-dark-1);
|
||||
color: var(--color-dark-1);
|
||||
border-radius: 20px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -91,20 +95,20 @@
|
||||
li {
|
||||
margin: 0 10px;
|
||||
font-family: var(--font-primary);
|
||||
font-size: calc(var(--font-size-standard) * 1.0);
|
||||
font-size: calc(var(--font-size-standard) * 1);
|
||||
}
|
||||
.nudge-roll {
|
||||
font-size: calc(var(--font-size-standard) * 1.0);
|
||||
font-size: calc(var(--font-size-standard) * 1);
|
||||
margin-left: 2rem;
|
||||
display: none;
|
||||
}
|
||||
.healing-roll {
|
||||
font-size: calc(var(--font-size-standard) * 1.0);
|
||||
font-size: calc(var(--font-size-standard) * 1);
|
||||
margin-left: 2rem;
|
||||
display: none;
|
||||
}
|
||||
.roll-damage {
|
||||
font-size: calc(var(--font-size-standard) * 1.0);
|
||||
font-size: calc(var(--font-size-standard) * 1);
|
||||
margin-left: 2rem;
|
||||
display: none;
|
||||
}
|
||||
|
@@ -21,12 +21,20 @@
|
||||
<li>{{localize "CTHULHUETERNAL.Label.ammoUsed"}}: {{ammoUsed}} / {{weapon.system.ammo.value}}</li>
|
||||
{{/if}}
|
||||
|
||||
<li class="li-apply-wounds">
|
||||
<button type="button" class="apply-wounds">{{localize "CTHULHUETERNAL.Label.applyWounds"}}</button>
|
||||
<select name="combatant" class="roll-skill-modifier">
|
||||
{{selectOptions combatants valueAttr="id" labelAttr="name"}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
{{#if isLethal}}
|
||||
<li class="result-lethal">{{localize "CTHULHUETERNAL.Label.lethalityLethal"}}</li>
|
||||
<li class="result-lethal">{{localize "CTHULHUETERNAL.Label.lethalityWounded"}}</li>
|
||||
{{else}}
|
||||
<li class="result-non-lethal">{{localize "CTHULHUETERNAL.Label.lethalityNotLethal"}}</li>
|
||||
<li class="result-non-lethal">{{localize "CTHULHUETERNAL.Label.lethalityNotWounded"}}: <strong>{{wounds}}</strong></li>
|
||||
<li class="result-non-lethal">{{localize "CTHULHUETERNAL.Label.lethalityNotWounded"}}: <strong>{{wounds}}</strong>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
|
@@ -12,11 +12,23 @@
|
||||
{{#if (gt weapon.system.armorPiercing 0)}}
|
||||
<li>{{localize "CTHULHUETERNAL.Label.armorPiercing"}} : {{weapon.system.armorPiercing}}</li>
|
||||
{{/if}}
|
||||
{{#if (gt weapon.system.penetration 0)}}
|
||||
<li>{{localize "CTHULHUETERNAL.Label.penetration"}} : {{weapon.system.penetration}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if ammoUsed}}
|
||||
<li>{{localize "CTHULHUETERNAL.Label.ammoUsed"}}: {{ammoUsed}} / {{weapon.system.ammo.value}}</li>
|
||||
{{/if}}
|
||||
<li class="result-non-lethal">{{localize "CTHULHUETERNAL.Label.damageMessage"}}: <strong>{{rollResult}}</strong></li>
|
||||
|
||||
<li class="li-apply-wounds">
|
||||
{{localize "CTHULHUETERNAL.Label.applyWounds"}}
|
||||
<select name="combatant" class="li-apply-wounds-select">
|
||||
{{selectOptions combatants valueAttr="id" labelAttr="name"}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<li class="result-non-lethal">{{localize "CTHULHUETERNAL.Label.damageMessage"}}: <strong>{{rollResult}}</strong>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
Reference in New Issue
Block a user