Compare commits

...

5 Commits

59 changed files with 205 additions and 198 deletions

View File

@@ -6,7 +6,7 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
/* -------------------------------------------- */
export class EcrymeActorSheet extends ActorSheet {
export class EcrymeActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
@@ -53,9 +53,9 @@ export class EcrymeActorSheet extends ActorSheet {
cephalySkills: this.actor.getCephalySkills(),
subActors: foundry.utils.duplicate(this.actor.getSubActors()),
annency: this.actor.getAnnency(),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }),
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipmentfree, { async: true }),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }),
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.notes, { async: true }),
equipementlibre: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
@@ -63,7 +63,7 @@ export class EcrymeActorSheet extends ActorSheet {
}
this.formData = formData;
console.log("PC : ", formData, this.object);
//console.log("PC : ", formData, this.object);
return formData;
}
@@ -75,10 +75,10 @@ export class EcrymeActorSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
if (e.keyCode === 13) return false;
});
});
html.find('.open-annency').click(ev => {
let actorId = $(ev.currentTarget).data("annency-id")
@@ -105,14 +105,14 @@ export class EcrymeActorSheet extends ActorSheet {
let dataType = $(ev.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true })
})
html.find('.subactor-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
let actor = game.actors.get( actorId );
actor.sheet.render(true);
});
html.find('.subactor-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
@@ -131,13 +131,13 @@ export class EcrymeActorSheet extends ActorSheet {
let categKey = $(event.currentTarget).data("category-key")
let skillKey = $(event.currentTarget).data("skill-key")
this.actor.rollSkill(categKey, skillKey)
});
});
html.find('.roll-spec').click((event) => {
let categKey = $(event.currentTarget).data("category-key")
let skillKey = $(event.currentTarget).data("skill-key")
let specId = $(event.currentTarget).data("spec-id")
this.actor.rollSpec(categKey, skillKey, specId)
});
});
html.find('.roll-skill-confront').click((event) => {
let categKey = $(event.currentTarget).data("category-key")
let skillKey = $(event.currentTarget).data("skill-key")
@@ -151,36 +151,36 @@ export class EcrymeActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item")
let weaponId = li.data("item-id");
this.actor.rollWeaponConfront(weaponId)
});
});
html.find('.impact-modify').click((event) => {
let impactType = $(event.currentTarget).data("impact-type")
let impactLevel = $(event.currentTarget).data("impact-level")
let modifier = Number($(event.currentTarget).data("impact-modifier"))
this.actor.modifyImpact(impactType, impactLevel, modifier)
});
html.find('.roll-weapon').click((event) => {
const armeId = $(event.currentTarget).data("arme-id")
this.actor.rollArme(armeId)
});
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
});
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
this.render(true);
});
html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name");
let value = Number(ev.currentTarget.value);
this.actor.update( { [`${fieldName}`]: value } );
});
});
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {

View File

@@ -6,7 +6,7 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
/* -------------------------------------------- */
export class EcrymeAnnencySheet extends ActorSheet {
export class EcrymeAnnencySheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
@@ -75,7 +75,7 @@ export class EcrymeAnnencySheet extends ActorSheet {
let actorId = li.data("actor-id")
this.actor.removeAnnencyActor(actorId)
})
// Update Inventory Item
html.find('.item-edit').click(ev => {

View File

@@ -36,7 +36,7 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => EcrymeUtility.chatListeners(html));
Hooks.on("getChatLogEntryContext", (html, options) => EcrymeUtility.chatMenuManager(html, options));
Hooks.on("getChatMessageContextOptions", (html, options) => EcrymeUtility.chatMenuManager(html, options));
this.rollDataStore = {}
this.defenderStore = {}
@@ -120,7 +120,7 @@ export class EcrymeUtility {
let level = game.settings.get("fvtt-ecryme", "ecryme-game-level")
return level == "level_a"
}
/*-------------------------------------------- */
static buildSkillConfig() {
game.system.ecryme.config.skills = {}
@@ -155,8 +155,8 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static getActorFromRollData(rollData) {
let actor = game.actors.get(rollData.actorId)
if (rollData.tokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
if (rollData.defenderTokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
if (token) {
actor = token.actor
}
@@ -273,20 +273,17 @@ export class EcrymeUtility {
let canTranscendRoll = []
for (let i = 1; i <= 10; i++) {
canTranscendRoll[i] = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "rolldata")
//console.log(">>>>>>>>>>>>>>>>>>>>>>>>>> Menu !!!!", rollData)
if (rollData.skill && rollData.skill.value >= i && !rollData.transcendUsed && rollData.spec) {
return true
}
return false
return (rollData?.skill?.value >= i && !rollData.transcendUsed && rollData.spec)
}
options.push({
name: game.i18n.localize("ECRY.chat.spectranscend") + i,
icon: '<i class="fas fa-plus-square"></i>',
condition: canTranscendRoll[i],
callback: li => {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "rolldata")
EcrymeUtility.transcendFromSpec(rollData, i).catch("Error on Transcend")
}
@@ -297,27 +294,35 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.button-select-confront', event => {
$(html).on("click", '.button-select-confront', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "ecryme-rolldata")
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
ui.notifications.info(game.i18n.localize("ECRY.chat.confrontselect"))
EcrymeUtility.manageConfrontation(rollData)
})
html.on("click", '.button-apply-cephaly-difficulty', event => {
$(html).on("click", '.button-apply-cephaly-difficulty', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "ecryme-rolldata")
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
EcrymeUtility.manageCephalyDifficulty(rollData, difficulty)
})
html.on("click", '.button-apply-impact', event => {
$(html).on("click", '.button-apply-impact', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
let tokenId = $(event.currentTarget).data("token-id")
let actor
if (!tokenId) {
actorId = $(event.currentTarget).data("actor-id")
actor = game.actors.get(actorId)
} else {
let token = canvas.tokens.placeables.find(t => t.id == tokenId)
actor = token?.actor
}
actor.modifyImpact($(event.currentTarget).data("impact-type"), $(event.currentTarget).data("impact"), 1)
})
html.on("click", '.button-apply-bonus', event => {
$(html).on("click", '.button-apply-bonus', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
@@ -339,7 +344,7 @@ export class EcrymeUtility {
'systems/fvtt-ecryme/templates/dialogs/partial-confront-bonus-area.hbs',
'systems/fvtt-ecryme/templates/actors/partial-impacts.hbs',
]
return loadTemplates(templatePaths);
return foundry.applications.handlebars.loadTemplates(templatePaths);
}
/* -------------------------------------------- */
@@ -414,7 +419,7 @@ export class EcrymeUtility {
console.log("SOCKET MESSAGE", msg)
if (msg.name == "msg_gm_chat_message") {
let rollData = msg.data.rollData
if ( game.user.isGM ) {
if (game.user.isGM) {
let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", {
content: await renderTemplate(msg.data.template, rollData),
whisper: game.user.id
@@ -575,7 +580,7 @@ export class EcrymeUtility {
this.computeResults(rollData)
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
})
await msg.setFlag("world", "ecryme-rolldata", rollData)
console.log("Rolldata result", rollData)
@@ -661,7 +666,7 @@ export class EcrymeUtility {
}
return array;
}
/* -------------------------------------------- */
static async createChatMessage(name, rollMode, chatOptions) {
switch (rollMode) {
@@ -718,11 +723,11 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
let msgTxt = "<p>Are you sure to remove this Item ?";
let msgTxt = "<p>Etes vous certain de souhaiter envoyer cet item dans les limbes ?";
let buttons = {
delete: {
icon: '<i class="fas fa-check"></i>',
label: "Yes, remove it",
label: "Oui, retirez-le",
callback: () => {
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
li.slideUp(200, () => actorSheet.render(false));
@@ -730,7 +735,7 @@ export class EcrymeUtility {
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel"
label: "Annuler"
}
}
msgTxt += "</p>";

View File

@@ -12,7 +12,7 @@ export class EcrymeConfrontDialog extends Dialog {
width: 620, height: 'fit-content', 'z-index': 99999
});
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
return new EcrymeConfrontDialog(actor, rollData, html, options);
}
@@ -72,7 +72,7 @@ export class EcrymeConfrontDialog extends Dialog {
$("#confront-dice-pool").html(content)
content = await renderTemplate("systems/fvtt-ecryme/templates/dialogs/partial-confront-bonus-area.hbs", this.rollData )
$("#confront-bonus-pool").html(content)
}
/* -------------------------------------------- */
async refreshDialog() {
@@ -83,7 +83,7 @@ export class EcrymeConfrontDialog extends Dialog {
let button = this.buttonDisabled
setTimeout(function () { $(".launchConfront").attr("disabled", button) }, 180)
}
/* ------------------ -------------------------- */
_canDragStart(selector) {
console.log("CAN DRAG START", selector, super._canDragStart(selector) )
@@ -124,23 +124,23 @@ export class EcrymeConfrontDialog extends Dialog {
if ( data.dragType == "dice") {
let idx = Number(data.diceIndex)
console.log("DATA", data, event, event.srcElement.className)
if (event.srcElement.className.includes("execution") &&
if (event.srcElement.className.includes("execution") &&
this.rollData.availableDices.filter(d => d.location == "execution").length < 2) {
this.rollData.availableDices[idx].location = "execution"
}
if (event.srcElement.className.includes("preservation") &&
if (event.srcElement.className.includes("preservation") &&
this.rollData.availableDices.filter(d => d.location == "preservation").length < 2) {
this.rollData.availableDices[idx].location = "preservation"
}
if (event.srcElement.className.includes("dice-list")) {
this.rollData.availableDices[idx].location = "mainpool"
}
if (this.rollData.availableDices.filter(d => d.location == "execution").length == 2 && this.rollData.availableDices.filter(d => d.location == "preservation").length == 2) {
this.buttonDisabled = false
} else {
this.buttonDisabled = true
}
}
} else {
let idx = Number(data.bonusIndex)
if (event.srcElement.className.includes("execution")) {
@@ -192,7 +192,7 @@ export class EcrymeConfrontDialog extends Dialog {
this.processTranscendence()
if (rollData.selectedSpecs && rollData.selectedSpecs.length > 0) {
rollData.spec = foundry.utils.duplicate(actor.getSpecialization(rollData.selectedSpecs[0]))
rollData.spec = foundry.utils.duplicate(actor.getSpecialization(rollData.selectedSpecs[0]))
rollData.specApplied = true
rollData.executionTotal += 2
rollData.preservationTotal += 2

View File

@@ -1,13 +1,16 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
import {EcrymeConfrontDialog } from "./ecryme-confront-dialog.js";
import { EcrymeConfrontDialog } from "./ecryme-confront-dialog.js";
export class EcrymeConfrontStartDialog extends Dialog {
/* -------------------------------------------- */
static async create(actor, rollData) {
if (!actor) throw new Error("Ecryme | No actor provided for confront dialog");
if (!rollData) throw new Error("Ecryme | No roll data provided for confront dialog");
if (actor?.token) rollData.tokenId = actor.token.id;
let options = { classes: ["fvtt-ecryme ecryme-confront-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
return new EcrymeConfrontStartDialog(actor, rollData, html, options);
}
@@ -43,12 +46,12 @@ export class EcrymeConfrontStartDialog extends Dialog {
super(conf, options);
this.actor = actor;
this.actor = actor?.token?.actor || actor;
this.rollData = rollData;
}
/* -------------------------------------------- */
async rollConfront( diceFormula ) {
async rollConfront(diceFormula) {
// Do the initial roll
let myRoll = await new Roll(diceFormula).roll()
await EcrymeUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
@@ -57,7 +60,7 @@ export class EcrymeConfrontStartDialog extends Dialog {
rollData.roll = foundry.utils.duplicate(myRoll)
rollData.availableDices = []
for (let result of myRoll.terms[0].results) {
if ( !result.discarded) {
if (!result.discarded) {
let resultDup = foundry.utils.duplicate(result)
resultDup.location = "mainpool"
rollData.availableDices.push(resultDup)

View File

@@ -6,7 +6,7 @@ export class EcrymeRollDialog extends Dialog {
static async create(actor, rollData) {
let options = { classes: ["ecryme-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
return new EcrymeRollDialog(actor, rollData, html, options);
}
@@ -52,7 +52,6 @@ export class EcrymeRollDialog extends Dialog {
activateListeners(html) {
super.activateListeners(html);
var dialog = this;
function onLoad() {
}
$(function () { onLoad(); });
@@ -75,13 +74,13 @@ export class EcrymeRollDialog extends Dialog {
})
html.find('#roll-select-transcendence').change((event) => {
this.rollData.skillTranscendence = Number($('#roll-select-transcendence').val())
})
})
html.find('#roll-use-spleen').change((event) => {
this.rollData.useSpleen = event.currentTarget.checked
})
})
html.find('#roll-use-ideal').change((event) => {
this.rollData.useIdeal = event.currentTarget.checked
})
})
}
}

View File

@@ -38,7 +38,7 @@ Hooks.once("init", async function () {
EcrymeUtility.preloadHandlebarsTemplates();
/* -------------------------------------------- */
// Set an initiative formula for the system
// Set an initiative formula for the system
CONFIG.Combat.initiative = {
formula: "1d6",
decimals: 1
@@ -57,18 +57,16 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
foundry.documents.collections.Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
EcrymeUtility.init()
Babele.get().setSystemTranslationsDir("translated")
});
/* -------------------------------------------- */
@@ -91,6 +89,7 @@ async function importDefaultScene() {
await game.scenes.documentClass.create(newDocuments);
game.scenes.find(i => i.name == "Landing page 1").activate();
}
}
/* -------------------------------------------- */
@@ -98,9 +97,6 @@ async function importDefaultScene() {
/* -------------------------------------------- */
Hooks.once("ready", function () {
// Load trranslations
Babele.get().setSystemTranslationsDir("translated")
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Attention ! Aucun personnage relié au joueur !");
@@ -122,6 +118,9 @@ Hooks.once("ready", function () {
EcrymeCharacterSummary.ready();
importDefaultScene();
// Load translations
Babele.get().setSystemTranslationsDir("translated")
})
@@ -138,4 +137,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});

View File

@@ -4,7 +4,7 @@ import { EcrymeUtility } from "../common/ecryme-utility.js";
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
export class EcrymeItemSheet extends ItemSheet {
export class EcrymeItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */
static get defaultOptions() {
@@ -61,15 +61,15 @@ export class EcrymeItemSheet extends ItemSheet {
limited: this.object.limited,
options: this.options,
owner: this.document.isOwner,
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
isGM: game.user.isGM
}
if ( this.object.type == "archetype") {
formData.tarots = EcrymeUtility.getTarots()
}
this.options.editable = !(this.object.origin == "embeddedItem");
console.log("ITEM DATA", formData, this);
return formData;
@@ -115,7 +115,7 @@ export class EcrymeItemSheet extends ItemSheet {
let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index"))
let choiceIndex = Number($(ev.currentTarget).parents(".item").data("choice-index"))
let featureId = $(ev.currentTarget).parents(".item").data("feature-id")
let itemData = this.object.system.levels[levelIndex].choices[choiceIndex].features[featureId]
if (itemData.name != 'None') {

Binary file not shown.

BIN
packs/equipment/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000225

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.691022 7f24c57fa6c0 Recovering log #182
2025/03/11-23:44:54.761305 7f24c57fa6c0 Delete type=3 #180
2025/03/11-23:44:54.761368 7f24c57fa6c0 Delete type=0 #182
2025/03/11-23:45:54.472551 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.472575 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.479092 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491718 7f24c4bff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.935378 7f189effd6c0 Recovering log #223
2025/10/16-23:04:27.944998 7f189effd6c0 Delete type=3 #221
2025/10/16-23:04:27.945071 7f189effd6c0 Delete type=0 #223
2025/10/17-00:31:02.431129 7f189e7fc6c0 Level-0 table #228: started
2025/10/17-00:31:02.431165 7f189e7fc6c0 Level-0 table #228: 0 bytes OK
2025/10/17-00:31:02.437211 7f189e7fc6c0 Delete type=0 #226
2025/10/17-00:31:02.444512 7f189e7fc6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.501703 7f24c5ffb6c0 Recovering log #178
2025/03/11-23:33:32.511734 7f24c5ffb6c0 Delete type=3 #176
2025/03/11-23:33:32.511785 7f24c5ffb6c0 Delete type=0 #178
2025/03/11-23:44:47.591299 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.591363 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.624590 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748676 7f24c4bff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.315581 7ff26f7fe6c0 Recovering log #219
2025/10/02-22:42:43.325193 7ff26f7fe6c0 Delete type=3 #217
2025/10/02-22:42:43.325254 7ff26f7fe6c0 Delete type=0 #219
2025/10/02-22:46:10.718055 7ff26ebff6c0 Level-0 table #224: started
2025/10/02-22:46:10.718108 7ff26ebff6c0 Level-0 table #224: 0 bytes OK
2025/10/02-22:46:10.724165 7ff26ebff6c0 Delete type=0 #222
2025/10/02-22:46:10.737951 7ff26ebff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/help/000129.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000121
MANIFEST-000162

View File

@@ -1,8 +1,8 @@
2025/03/11-23:44:54.948819 7f24c67fc6c0 Recovering log #119
2025/03/11-23:44:55.014909 7f24c67fc6c0 Delete type=3 #117
2025/03/11-23:44:55.015006 7f24c67fc6c0 Delete type=0 #119
2025/03/11-23:45:54.515413 7f24c4bff6c0 Level-0 table #124: started
2025/03/11-23:45:54.515443 7f24c4bff6c0 Level-0 table #124: 0 bytes OK
2025/03/11-23:45:54.522097 7f24c4bff6c0 Delete type=0 #122
2025/03/11-23:45:54.522287 7f24c4bff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/03/11-23:45:54.522303 7f24c4bff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.987583 7f189f7fe6c0 Recovering log #160
2025/10/16-23:04:27.998975 7f189f7fe6c0 Delete type=3 #158
2025/10/16-23:04:27.999065 7f189f7fe6c0 Delete type=0 #160
2025/10/17-00:31:02.437340 7f189e7fc6c0 Level-0 table #165: started
2025/10/17-00:31:02.437367 7f189e7fc6c0 Level-0 table #165: 0 bytes OK
2025/10/17-00:31:02.444287 7f189e7fc6c0 Delete type=0 #163
2025/10/17-00:31:02.444526 7f189e7fc6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/17-00:31:02.454473 7f189e7fc6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2025/03/11-23:33:32.552584 7f24c6ffd6c0 Recovering log #115
2025/03/11-23:33:32.563351 7f24c6ffd6c0 Delete type=3 #113
2025/03/11-23:33:32.563398 7f24c6ffd6c0 Delete type=0 #115
2025/03/11-23:44:47.842166 7f24c4bff6c0 Level-0 table #120: started
2025/03/11-23:44:47.842227 7f24c4bff6c0 Level-0 table #120: 0 bytes OK
2025/03/11-23:44:47.879285 7f24c4bff6c0 Delete type=0 #118
2025/03/11-23:44:47.922462 7f24c4bff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/03/11-23:44:47.974424 7f24c4bff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.369243 7ff26ffff6c0 Recovering log #156
2025/10/02-22:42:43.379551 7ff26ffff6c0 Delete type=3 #154
2025/10/02-22:42:43.379614 7ff26ffff6c0 Delete type=0 #156
2025/10/02-22:46:10.762665 7ff26ebff6c0 Level-0 table #161: started
2025/10/02-22:46:10.762700 7ff26ebff6c0 Level-0 table #161: 0 bytes OK
2025/10/02-22:46:10.769189 7ff26ebff6c0 Delete type=0 #159
2025/10/02-22:46:10.769383 7ff26ebff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/02-22:46:10.779762 7ff26ebff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/help/MANIFEST-000162 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/maneuvers/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000225

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.883993 7f24c5ffb6c0 Recovering log #182
2025/03/11-23:44:54.946077 7f24c5ffb6c0 Delete type=3 #180
2025/03/11-23:44:54.946154 7f24c5ffb6c0 Delete type=0 #182
2025/03/11-23:45:54.498184 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.498223 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.505537 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.522269 7f24c4bff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.975607 7f18a4ffa6c0 Recovering log #223
2025/10/16-23:04:27.985618 7f18a4ffa6c0 Delete type=3 #221
2025/10/16-23:04:27.985677 7f18a4ffa6c0 Delete type=0 #223
2025/10/17-00:31:02.386862 7f189e7fc6c0 Level-0 table #228: started
2025/10/17-00:31:02.386912 7f189e7fc6c0 Level-0 table #228: 0 bytes OK
2025/10/17-00:31:02.393931 7f189e7fc6c0 Delete type=0 #226
2025/10/17-00:31:02.413626 7f189e7fc6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.540154 7f24c67fc6c0 Recovering log #178
2025/03/11-23:33:32.549680 7f24c67fc6c0 Delete type=3 #176
2025/03/11-23:33:32.549720 7f24c67fc6c0 Delete type=0 #178
2025/03/11-23:44:47.624705 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.624728 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.667991 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748692 7f24c4bff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.357117 7ff2749f96c0 Recovering log #219
2025/10/02-22:42:43.366815 7ff2749f96c0 Delete type=3 #217
2025/10/02-22:42:43.366872 7ff2749f96c0 Delete type=0 #219
2025/10/02-22:46:10.756135 7ff26ebff6c0 Level-0 table #224: started
2025/10/02-22:46:10.756193 7ff26ebff6c0 Level-0 table #224: 0 bytes OK
2025/10/02-22:46:10.762494 7ff26ebff6c0 Delete type=0 #222
2025/10/02-22:46:10.769374 7ff26ebff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000090.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000111

View File

@@ -1,8 +1,8 @@
2025/03/11-23:44:54.826302 7f24c67fc6c0 Recovering log #66
2025/03/11-23:44:54.878873 7f24c67fc6c0 Delete type=3 #64
2025/03/11-23:44:54.879033 7f24c67fc6c0 Delete type=0 #66
2025/03/11-23:45:54.479218 7f24c4bff6c0 Level-0 table #71: started
2025/03/11-23:45:54.479246 7f24c4bff6c0 Level-0 table #71: 0 bytes OK
2025/03/11-23:45:54.485312 7f24c4bff6c0 Delete type=0 #69
2025/03/11-23:45:54.491727 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/03/11-23:45:54.491756 7f24c4bff6c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.962699 7f189f7fe6c0 Recovering log #109
2025/10/16-23:04:27.972819 7f189f7fe6c0 Delete type=3 #107
2025/10/16-23:04:27.972872 7f189f7fe6c0 Delete type=0 #109
2025/10/17-00:31:02.407461 7f189e7fc6c0 Level-0 table #114: started
2025/10/17-00:31:02.407488 7f189e7fc6c0 Level-0 table #114: 0 bytes OK
2025/10/17-00:31:02.413518 7f189e7fc6c0 Delete type=0 #112
2025/10/17-00:31:02.413653 7f189e7fc6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2025/10/17-00:31:02.413685 7f189e7fc6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2025/03/11-23:33:32.527497 7f24c6ffd6c0 Recovering log #62
2025/03/11-23:33:32.537450 7f24c6ffd6c0 Delete type=3 #60
2025/03/11-23:33:32.537513 7f24c6ffd6c0 Delete type=0 #62
2025/03/11-23:44:47.879398 7f24c4bff6c0 Level-0 table #67: started
2025/03/11-23:44:47.879423 7f24c4bff6c0 Level-0 table #67: 0 bytes OK
2025/03/11-23:44:47.922234 7f24c4bff6c0 Delete type=0 #65
2025/03/11-23:44:47.922483 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/03/11-23:44:47.974443 7f24c4bff6c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.343031 7ff26ffff6c0 Recovering log #105
2025/10/02-22:42:43.353479 7ff26ffff6c0 Delete type=3 #103
2025/10/02-22:42:43.353550 7ff26ffff6c0 Delete type=0 #105
2025/10/02-22:46:10.730732 7ff26ebff6c0 Level-0 table #110: started
2025/10/02-22:46:10.730767 7ff26ebff6c0 Level-0 table #110: 0 bytes OK
2025/10/02-22:46:10.737713 7ff26ebff6c0 Delete type=0 #108
2025/10/02-22:46:10.737975 7ff26ebff6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2025/10/02-22:46:10.738002 7ff26ebff6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000225

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.615643 7f24c6ffd6c0 Recovering log #182
2025/03/11-23:44:54.688425 7f24c6ffd6c0 Delete type=3 #180
2025/03/11-23:44:54.688509 7f24c6ffd6c0 Delete type=0 #182
2025/03/11-23:45:54.466489 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.466525 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.472451 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491700 7f24c4bff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.922340 7f189f7fe6c0 Recovering log #223
2025/10/16-23:04:27.932658 7f189f7fe6c0 Delete type=3 #221
2025/10/16-23:04:27.932743 7f189f7fe6c0 Delete type=0 #223
2025/10/17-00:31:02.394067 7f189e7fc6c0 Level-0 table #228: started
2025/10/17-00:31:02.394095 7f189e7fc6c0 Level-0 table #228: 0 bytes OK
2025/10/17-00:31:02.400645 7f189e7fc6c0 Delete type=0 #226
2025/10/17-00:31:02.413636 7f189e7fc6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.488591 7f24c57fa6c0 Recovering log #178
2025/03/11-23:33:32.499216 7f24c57fa6c0 Delete type=3 #176
2025/03/11-23:33:32.499268 7f24c57fa6c0 Delete type=0 #178
2025/03/11-23:44:47.713953 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.713983 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.748547 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748713 7f24c4bff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.301864 7ff26ffff6c0 Recovering log #219
2025/10/02-22:42:43.312602 7ff26ffff6c0 Delete type=3 #217
2025/10/02-22:42:43.312680 7ff26ffff6c0 Delete type=0 #219
2025/10/02-22:46:10.711801 7ff26ebff6c0 Level-0 table #224: started
2025/10/02-22:46:10.711844 7ff26ebff6c0 Level-0 table #224: 0 bytes OK
2025/10/02-22:46:10.717835 7ff26ebff6c0 Delete type=0 #222
2025/10/02-22:46:10.737937 7ff26ebff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/traits/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000225

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.764214 7f24c5ffb6c0 Recovering log #182
2025/03/11-23:44:54.823309 7f24c5ffb6c0 Delete type=3 #180
2025/03/11-23:44:54.823390 7f24c5ffb6c0 Delete type=0 #182
2025/03/11-23:45:54.485457 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.485489 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.491568 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491736 7f24c4bff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2025/10/16-23:04:27.948519 7f189ffff6c0 Recovering log #223
2025/10/16-23:04:27.959741 7f189ffff6c0 Delete type=3 #221
2025/10/16-23:04:27.959811 7f189ffff6c0 Delete type=0 #223
2025/10/17-00:31:02.400771 7f189e7fc6c0 Level-0 table #228: started
2025/10/17-00:31:02.400802 7f189e7fc6c0 Level-0 table #228: 0 bytes OK
2025/10/17-00:31:02.407358 7f189e7fc6c0 Delete type=0 #226
2025/10/17-00:31:02.413646 7f189e7fc6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.514118 7f24c67fc6c0 Recovering log #178
2025/03/11-23:33:32.524830 7f24c67fc6c0 Delete type=3 #176
2025/03/11-23:33:32.525025 7f24c67fc6c0 Delete type=0 #178
2025/03/11-23:44:47.668164 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.668203 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.713809 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748703 7f24c4bff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2025/10/02-22:42:43.327925 7ff2749f96c0 Recovering log #219
2025/10/02-22:42:43.339012 7ff2749f96c0 Delete type=3 #217
2025/10/02-22:42:43.339080 7ff2749f96c0 Delete type=0 #219
2025/10/02-22:46:10.724277 7ff26ebff6c0 Level-0 table #224: started
2025/10/02-22:46:10.724304 7ff26ebff6c0 Level-0 table #224: 0 bytes OK
2025/10/02-22:46:10.730560 7ff26ebff6c0 Delete type=0 #222
2025/10/02-22:46:10.737964 7ff26ebff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -3,7 +3,7 @@
font-family: "MailartRubberstamp";
src: url('../fonts/MailartRubberstamp-Regular.woff') format("woff");
}
:root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
@@ -27,7 +27,7 @@
--actor-label-font-weight: 700;
--actor-label-color: rgba(70,67,49,0.76863);
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
--debug-background-color-red: rgba(255,0,0,0.32941);
--debug-background-color-blue: rgba(29,0,255,0.32941);
--debug-background-color-green: rgba(84,255,0,0.32941);
@@ -454,9 +454,11 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
/* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
nav.sheet-tabs a,
nav.sheet-tabs .item {
position: relative;
padding: 0 0.25rem;
color: beige;
}
nav.sheet-tabs .item:after {
@@ -697,7 +699,7 @@ ul, li {
/* ======================================== */
.tokenhudext {
display: flex;
display: flex;
flex: 0 !important;
font-weight: 600;
}
@@ -755,7 +757,7 @@ ul, li {
.skill-label {
font-size: 0.7rem;
}
.skill-good-checkbox {
.skill-good-checkbox {
max-height: 10px;
max-width: 10px;
}
@@ -790,7 +792,7 @@ ul, li {
.sidebar-tab .directory-list .entity {
border-top: 1px dashed rgba(0,0,0,0.25);
border-bottom: 0 none;
padding: 0.25rem 0;
padding: 0.25rem 0;
}
.sidebar-tab .directory-list .entity:hover {
@@ -804,10 +806,10 @@ ul, li {
text-align: center;
vertical-align: middle;
display: flex;
align-items: center;
align-items: center;
}
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
font-size: 0.9rem;
}
.chat-result-text,
@@ -978,7 +980,7 @@ ul, li {
border-radius: 0px;
}
#hotbar .bar-controls {
#hotbar .bar-controls {
background: rgba(30, 25, 20, 1);
border: 1px solid rgba(72, 46, 28, 1);
}
@@ -1042,7 +1044,7 @@ ul, li {
top: 1px;
position: absolute;
z-index: 1;
/* Fade in tooltip */
visibility: hidden;
opacity: 0;
@@ -1148,7 +1150,7 @@ ul, li {
height: 60px;
}
.dice-cell {
.dice-cell {
padding-left: 12px;
padding-right: 12px;
width: 60px;
@@ -1194,8 +1196,8 @@ ul, li {
display: flex;
align-items: center;
justify-content: center;
margin-left: auto;
margin-right: auto;
margin-left: auto;
margin-right: auto;
text-align: center;
}
@@ -1312,7 +1314,7 @@ ul, li {
flex-wrap: nowrap;
}
.item-filler {
flex-grow: 6;
flex-grow: 6;
flex-shrink: 7;
}
.item-controls-fixed {
@@ -1327,7 +1329,7 @@ ul, li {
font-weight: bold;
}
.flexrow-no-expand {
flex-grow: 0;
flex-grow: 0;
}
.flexrow-start {
justify-content: flex-start;

View File

@@ -104,8 +104,8 @@
"license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
"compatibility": {
"minimum": "12",
"verified": "12"
"minimum": "13",
"verified": "13"
},
"id": "fvtt-ecryme",
"primaryTokenAttribute": "secondary.health",
@@ -125,7 +125,7 @@
},
"title": "Ecryme, le Jeu de Rôles",
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
"version": "12.0.3",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v12.0.3.zip",
"version": "13.0.2",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v13.0.2.zip",
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
}

View File

@@ -15,7 +15,7 @@
<div>
<ul>
<li>Confrontation : {{rollData1.alias}} vs {{rollData2.alias}}</li>
<li><strong>Confrontation</strong> : {{rollData1.alias}} vs {{rollData2.alias}}</li>
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}}) </li>
<li>{{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} : {{marginExecution}}</li>
<li>{{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} : {{marginPreservation}}</li>
@@ -32,21 +32,21 @@
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : {{effectExecution}}</li>
{{#if impactExecution}}
<li>Impact {{rollData2.alias}} : 1 {{localize (concat "ECRY.ui." impactExecution)}}</li>
<button class="button-apply-impact" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="button-apply-impact" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus2}}
<li>Bonus {{rollData2.alias}} : {{bonus2}}</li>
<button class="button-apply-bonus" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
<button class="button-apply-bonus" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : {{effectPreservation}}</li>
{{#if impactPreservation}}
<li>Impact {{rollData1.alias}} : 1 {{localize (concat "ECRY.ui." impactPreservation)}}</li>
<button class="button-apply-impact" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="button-apply-impact" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus1}}
<li>Bonus {{rollData1.alias}} : {{bonus1}}</li>
<button class="button-apply-bonus" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
<button class="button-apply-bonus" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
</ul>
</div>