From 9dbd614c5a99aeec7a265ed0b283958370a6f395 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Tue, 31 Mar 2026 00:33:59 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20gestion=20de=20l'exp=C3=A9rience=20(XP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Schéma xp dans CelestopolCharacter : actuel (éditable), log[] ({montant, raison, date}), depense (calculé dans prepareDerivedData) - Bouton 'Dépenser XP' → DialogV2 (montant + raison) : décrémente actuel, logge l'entrée - Suppression d'entrée de log avec remboursement des points (mode édition) - Section XP en haut de l'onglet Biographie : compteurs, tableau du log, référentiel des coûts - i18n : section CELESTOPOL.XP.* complète - CSS : .xp-section avec compteurs, tableau de log et accordéon de référence Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- assets/ui/cercle-jaune-checked.png | Bin 72102 -> 0 bytes assets/ui/cercle-jaune-unchecked.png | Bin 71232 -> 0 bytes assets/ui/cercle-vert-checked.png | Bin 23507 -> 0 bytes assets/ui/cercle-vert-unchecked.png | Bin 18357 -> 0 bytes fvtt-celestopol.mjs | 70 ++++- lang/fr.json | 73 +++-- .../applications/sheets/base-actor-sheet.mjs | 185 +++---------- .../applications/sheets/character-sheet.mjs | 92 ++++++- module/config/system.mjs | 18 +- module/documents/actor.mjs | 6 - module/documents/chat-message.mjs | 7 +- module/documents/item.mjs | 5 - module/documents/roll.mjs | 89 +++---- module/models/character.mjs | 174 ++++++------ module/models/npc.mjs | 6 - .../anomalies/{000007.log => 000019.log} | 0 packs-system/anomalies/CURRENT | 2 +- packs-system/anomalies/LOG | 6 +- packs-system/anomalies/LOG.old | 12 +- packs-system/anomalies/MANIFEST-000006 | Bin 50 -> 0 bytes packs-system/anomalies/MANIFEST-000018 | Bin 0 -> 50 bytes .../aspects/{000007.log => 000019.log} | 0 packs-system/aspects/CURRENT | 2 +- packs-system/aspects/LOG | 6 +- packs-system/aspects/LOG.old | 12 +- packs-system/aspects/MANIFEST-000006 | Bin 50 -> 0 bytes packs-system/aspects/MANIFEST-000018 | Bin 0 -> 50 bytes styles/character.less | 249 +++++++++++++++--- styles/global.less | 67 ++++- system.json | 2 +- templates/character-biography.hbs | 71 +++++ templates/character-blessures.hbs | 42 +-- templates/character-competences.hbs | 23 +- templates/character-equipement.hbs | 3 + templates/character-factions.hbs | 84 +----- templates/character-main.hbs | 12 + templates/chat-message.hbs | 26 +- templates/npc-blessures.hbs | 16 +- templates/npc-main.hbs | 12 + templates/roll-dialog.hbs | 6 +- 40 files changed, 849 insertions(+), 529 deletions(-) delete mode 100644 assets/ui/cercle-jaune-checked.png delete mode 100644 assets/ui/cercle-jaune-unchecked.png delete mode 100644 assets/ui/cercle-vert-checked.png delete mode 100644 assets/ui/cercle-vert-unchecked.png rename packs-system/anomalies/{000007.log => 000019.log} (100%) delete mode 100644 packs-system/anomalies/MANIFEST-000006 create mode 100644 packs-system/anomalies/MANIFEST-000018 rename packs-system/aspects/{000007.log => 000019.log} (100%) delete mode 100644 packs-system/aspects/MANIFEST-000006 create mode 100644 packs-system/aspects/MANIFEST-000018 diff --git a/assets/ui/cercle-jaune-checked.png b/assets/ui/cercle-jaune-checked.png deleted file mode 100644 index 3e5e4376b6d7b4c93f1be1673fdbf09ed26b07fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72102 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 diff --git a/assets/ui/cercle-jaune-unchecked.png b/assets/ui/cercle-jaune-unchecked.png deleted file mode 100644 index 2ea6ed7d43e376cea7a2671ee4b36fa93e32034a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71232 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�T#T+x>#l*w}Wi;=lepLxQ? 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 { // ── Sheets: unregister core, register system sheets ───────────────────── foundry.applications.sheets.ActorSheetV2.unregisterSheet?.("core", "Actor", { types: ["character", "npc"] }) - foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet) + foundry.appv1?.sheets?.ActorSheet && foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet) foundry.documents.collections.Actors.registerSheet(SYSTEM_ID, CelestopolCharacterSheet, { types: ["character"], makeDefault: true, @@ -80,7 +80,7 @@ Hooks.once("init", () => { label: "CELESTOPOL.Sheet.npc", }) - foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet) + foundry.appv1?.sheets?.ItemSheet && foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet) foundry.documents.collections.Items.registerSheet(SYSTEM_ID, CelestopolAnomalySheet, { types: ["anomaly"], makeDefault: true, @@ -130,6 +130,7 @@ Hooks.once("ready", () => { // Migration : supprime les items de types obsolètes (ex: "attribute") if (game.user.isGM) { _migrateObsoleteItems() + _migrateIntegerTracks() } }) @@ -156,6 +157,68 @@ async function _migrateObsoleteItems() { } } +/** + * Migration : convertit les anciennes données booléennes (level1..level8, b1..b8, etc.) + * vers le nouveau stockage entier direct. + * Ne s'applique qu'aux acteurs ayant encore l'ancien format dans leur source. + */ +async function _migrateIntegerTracks() { + const validActors = game.actors.contents.filter(a => ["character", "npc"].includes(a.type)) + + for (const actor of validActors) { + const src = actor._source?.system + if (!src) continue + + const updateData = {} + + // Blessures : si b1 existe dans la source, recalculer lvl depuis les booléens + const blessures = src.blessures ?? {} + if ("b1" in blessures) { + const lvl = [1,2,3,4,5,6,7,8].filter(i => blessures[`b${i}`]?.checked === true).length + updateData["system.blessures.lvl"] = lvl + } + + if (actor.type === "character") { + // Destin + const destin = src.destin ?? {} + if ("d1" in destin) { + const lvl = [1,2,3,4,5,6,7,8].filter(i => destin[`d${i}`]?.checked === true).length + updateData["system.destin.lvl"] = lvl + } + + // Spleen + const spleen = src.spleen ?? {} + if ("s1" in spleen) { + const lvl = [1,2,3,4,5,6,7,8].filter(i => spleen[`s${i}`]?.checked === true).length + updateData["system.spleen.lvl"] = lvl + } + + // Domaines : si level1 existe dans un domaine, recalculer value depuis les booléens + const stats = src.stats ?? {} + for (const [statId, statData] of Object.entries(stats)) { + for (const [skillId, skill] of Object.entries(statData ?? {})) { + if (typeof skill !== "object" || !("level1" in skill)) continue + const value = [1,2,3,4,5,6,7,8].filter(i => skill[`level${i}`] === true).length + updateData[`system.stats.${statId}.${skillId}.value`] = value + } + } + + // Factions : si level1 existe dans une faction, recalculer value depuis les booléens + const factions = src.factions ?? {} + for (const [factionId, faction] of Object.entries(factions)) { + if (typeof faction !== "object" || !("level1" in faction)) continue + const value = [1,2,3,4,5,6,7,8,9].filter(i => faction[`level${i}`] === true).length + updateData[`system.factions.${factionId}.value`] = value + } + } + + if (Object.keys(updateData).length > 0) { + console.log(`${SYSTEM_ID} | Migration tracks → entiers : ${actor.name}`, updateData) + await actor.update(updateData) + } + } +} + /* ─── Handlebars helpers ─────────────────────────────────────────────────── */ function _registerHandlebarsHelpers() { @@ -183,6 +246,9 @@ function _registerHandlebarsHelpers() { // Helper : build array from args (Handlebars doesn't have arrays natively) Handlebars.registerHelper("array", (...args) => args.slice(0, -1)) + // Helper : range(n) → [1, 2, ..., n] — pour les boucles de cases à cocher + Handlebars.registerHelper("range", (n) => Array.from({ length: n }, (_, i) => i + 1)) + // Helper : nested object lookup with dot path or multiple keys Handlebars.registerHelper("lookup", (obj, ...args) => { const options = args.pop() // last arg is Handlebars options hash diff --git a/lang/fr.json b/lang/fr.json index dbcde01..562ce66 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -95,29 +95,40 @@ "destin": "Destin", "spleen": "Spleen", "level": "Niveau", - "currentMalus": "Malus actuel" + "currentMalus": "Malus actuel", + "destinTooltip": "Usages du Destin :\n• Réaliser un test avec 3d8\n• Gagner l'initiative lors d'un combat\n• Trouver l'ensemble des indices\n• Éviter une blessure\n• Sortir de l'inconscience\n• Obtenir un Triomphe" }, "Wound": { - "none": "Aucune blessure", - "anodin": "Anodin", - "derisoire": "Dérisoire", - "negligeable": "Négligeable", - "superficiel": "Superficiel", - "leger": "Léger", - "modere": "Modéré", - "grave": "Grave", - "dramatique": "Dramatique (hors combat)" + "none": "Aucune blessure", + "anodin": "Anodin", + "derisoire": "Dérisoire", + "negligeable": "Négligeable", + "superficiel": "Superficiel", + "leger": "Léger", + "modere": "Modéré", + "grave": "Grave", + "dramatique": "Dramatique (hors combat)", + "duration1min": "1 min", + "duration10min": "10 min", + "duration30min": "30 min", + "duration1jour": "1 journée", + "status": "État : " }, "Combat": { - "attack": "Attaquer", - "corpsPnj": "Corps du PNJ", - "tie": "ÉGALITÉ", - "tieDesc": "Personne n'est blessé", - "successHit": "PNJ touché — 1 blessure", - "failureHit": "Joueur touché — 1 blessure (mêlée)", - "distanceNoWound": "Raté — pas de riposte", - "weaponDamage": "dégâts supplémentaires", - "playerWounded": "Blessure infligée au joueur (mêlée)" + "attack": "Attaquer", + "corpsPnj": "Corps du PNJ", + "tie": "ÉGALITÉ", + "tieDesc": "Personne n'est blessé", + "successHit": "PNJ touché — 1 blessure", + "failureHit": "Joueur touché — 1 blessure (mêlée)", + "distanceNoWound": "Raté — pas de riposte", + "weaponDamage": "dégâts supplémentaires", + "playerWounded": "Blessure infligée au joueur (mêlée)", + "rangedDefenseTitle": "Esquiver (Mobilité)", + "rangedDefenseTag": "Défense à distance", + "rangedDefenseSuccess": "Attaque esquivée — pas de blessure", + "rangedDefenseFailure": "Touché par le PNJ — 1 blessure", + "rangedDefensePlayerWounded":"Blessure infligée par attaque à distance" }, "Tab": { "main": "Principal", @@ -294,6 +305,30 @@ }, "Aspect": { "valeur": "Valeur" + }, + "XP": { + "title": "Expérience", + "actuel": "XP disponible", + "depense": "XP dépensée", + "depenser": "Dépenser XP", + "confirmer": "Confirmer", + "montant": "Montant", + "raison": "Raison", + "raisonPlaceholder": "Ex : Augmentation Mobilité à 4", + "date": "Date", + "supprimer": "Annuler cette dépense", + "disponible": "{n} XP disponibles", + "insuffisant": "XP insuffisante — seulement {n} disponibles", + "montantInvalide": "Le montant doit être supérieur à 0", + "refTitle": "Tableau des coûts", + "refAmelioration": "Amélioration", + "refCout": "Coût (XP)", + "refAugmenterSpec": "Augmenter une Spécialisation", + "refCoutNiveau": "= niveau à atteindre", + "refAcquerirAspect": "Acquérir un nouvel Aspect", + "refAugmenterAspect":"Augmenter / Diminuer un Aspect", + "refAcquerirAttribut":"Acquérir ou augmenter un Attribut", + "refCoutAttributTotal":"= total des points × 10" } } } \ No newline at end of file diff --git a/module/applications/sheets/base-actor-sheet.mjs b/module/applications/sheets/base-actor-sheet.mjs index 79594bf..05c74f4 100644 --- a/module/applications/sheets/base-actor-sheet.mjs +++ b/module/applications/sheets/base-actor-sheet.mjs @@ -1,3 +1,5 @@ +import { SYSTEM } from "../../config/system.mjs" + const { HandlebarsApplicationMixin } = foundry.applications.api export default class CelestopolActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) { @@ -18,11 +20,15 @@ export default class CelestopolActorSheet extends HandlebarsApplicationMixin(fou window: { resizable: true }, dragDrop: [{ dragSelector: '[data-drag="true"], .rollable', dropSelector: null }], actions: { - editImage: CelestopolActorSheet.#onEditImage, - toggleSheet: CelestopolActorSheet.#onToggleSheet, - edit: CelestopolActorSheet.#onItemEdit, - delete: CelestopolActorSheet.#onItemDelete, - attack: CelestopolActorSheet.#onAttack, + editImage: CelestopolActorSheet.#onEditImage, + toggleSheet: CelestopolActorSheet.#onToggleSheet, + edit: CelestopolActorSheet.#onItemEdit, + delete: CelestopolActorSheet.#onItemDelete, + attack: CelestopolActorSheet.#onAttack, + rangedDefense: CelestopolActorSheet.#onRangedDefense, + trackBox: CelestopolActorSheet.#onTrackBox, + skillLevel: CelestopolActorSheet.#onSkillLevel, + factionLevel: CelestopolActorSheet.#onFactionLevel, }, } @@ -42,6 +48,7 @@ export default class CelestopolActorSheet extends HandlebarsApplicationMixin(fou isEditMode: this.isEditMode, isPlayMode: this.isPlayMode, isEditable: this.isEditable, + woundLevels: SYSTEM.WOUND_LEVELS, } } @@ -51,28 +58,9 @@ export default class CelestopolActorSheet extends HandlebarsApplicationMixin(fou this.element.querySelectorAll(".rollable").forEach(el => { el.addEventListener("click", this._onRoll.bind(this)) }) - - // Setup sequential checkbox logic for wound tracks - this._setupSequentialCheckboxes() - - // Setup sequential checkbox logic for factions - this._setupFactionCheckboxes() - } - - /** @override */ - _onClick(event) { - // Skip checkbox clicks in edit mode - if (this.isEditMode && event.target.classList.contains('skill-level-checkbox')) { - return - } - super._onClick(event) } async _onRoll(event) { - // Don't roll if clicking on a checkbox - if (event.target.classList.contains('skill-level-checkbox')) { - return - } if (!this.isPlayMode) return const el = event.currentTarget const statId = el.dataset.statId @@ -158,132 +146,39 @@ export default class CelestopolActorSheet extends HandlebarsApplicationMixin(fou await this.document.system.rollAttack(itemId) } - /** - * Setup sequential checkbox logic for wound/destin/spleen tracks - * Only allows checking the next checkbox in sequence - */ - _setupSequentialCheckboxes() { - this.element.querySelectorAll('.wound-checkbox').forEach(checkbox => { - checkbox.addEventListener('change', (event) => { - this._handleSequentialCheckboxChange(event) - }) - }) + static async #onRangedDefense(_event, target) { + const itemId = target.getAttribute("data-item-id") + if (!itemId) return + await this.document.system.rollRangedDefense(itemId) } - /** - * Handle sequential checkbox change logic - * @param {Event} event - The change event - */ - _handleSequentialCheckboxChange(event) { - const checkbox = event.target - if (!checkbox.classList.contains('wound-checkbox') || checkbox.disabled) return - - const track = checkbox.dataset.track - const currentIndex = parseInt(checkbox.dataset.index) - const isChecked = checkbox.checked - - // Get all checkboxes in this track - const trackCheckboxes = Array.from(this.element.querySelectorAll(`.wound-checkbox[data-track="${track}"]`)) - - if (isChecked) { - // Checking a box: uncheck all boxes after this one - for (let i = currentIndex + 1; i < trackCheckboxes.length; i++) { - trackCheckboxes[i].checked = false - } - // Check all boxes before this one - for (let i = 0; i < currentIndex; i++) { - trackCheckboxes[i].checked = true - } - } else { - // Unchecking a box: uncheck all boxes after this one - for (let i = currentIndex; i < trackCheckboxes.length; i++) { - trackCheckboxes[i].checked = false - } - } - - // Update the visual state - this._updateTrackVisualState() + /** Met à jour une jauge de piste (blessures/destin/spleen) par clic sur une case. */ + static #onTrackBox(_event, target) { + if (!this.isEditable) return + const path = target.dataset.path + const index = parseInt(target.dataset.index) + const current = foundry.utils.getProperty(this.document, path) ?? 0 + const newValue = (index <= current) ? index - 1 : index + this.document.update({ [path]: Math.max(0, newValue) }) } - /** - * Update visual state of track boxes based on checkbox states - */ - _updateTrackVisualState() { - this.element.querySelectorAll('.track-box').forEach(box => { - const checkbox = box.querySelector('.wound-checkbox') - if (checkbox) { - if (checkbox.checked) { - box.classList.add('checked') - } else { - box.classList.remove('checked') - } - } - }) + /** Met à jour la valeur d'un domaine par clic sur un point de niveau. */ + static #onSkillLevel(_event, target) { + if (!this.isEditable) return + const { statId, skillId } = target.dataset + const index = parseInt(target.dataset.index) + const current = this.document.system.stats[statId]?.[skillId]?.value ?? 0 + const newValue = (index <= current) ? index - 1 : index + this.document.update({ [`system.stats.${statId}.${skillId}.value`]: Math.max(0, newValue) }) } - /** - * Setup sequential checkbox logic for faction tracks - */ - _setupFactionCheckboxes() { - this.element.querySelectorAll('.faction-checkbox').forEach(checkbox => { - checkbox.addEventListener('change', (event) => { - this._handleFactionCheckboxChange(event) - }) - }) - } - - /** - * Handle faction checkbox change logic - * @param {Event} event - The change event - */ - _handleFactionCheckboxChange(event) { - const checkbox = event.target - if (!checkbox.classList.contains('faction-checkbox') || checkbox.disabled) return - - const factionId = checkbox.dataset.faction - const currentLevel = parseInt(checkbox.dataset.level) - const isChecked = checkbox.checked - - // Get all checkboxes for this faction - const factionCheckboxes = Array.from(this.element.querySelectorAll(`.faction-checkbox[data-faction="${factionId}"]`)) - - if (isChecked) { - // Checking a box: check all boxes before this one, uncheck all boxes after this one - for (let i = 0; i < currentLevel; i++) { - factionCheckboxes[i].checked = true - } - for (let i = currentLevel; i < factionCheckboxes.length; i++) { - factionCheckboxes[i].checked = false - } - } else { - // Unchecking a box: uncheck all boxes after this one - for (let i = currentLevel - 1; i < factionCheckboxes.length; i++) { - factionCheckboxes[i].checked = false - } - } - - // Update the count display - this._updateFactionCount(factionId) - } - - /** - * Update the faction count display based on checked checkboxes - * @param {string} factionId - The faction ID - */ - _updateFactionCount(factionId) { - const checkboxes = Array.from(this.element.querySelectorAll(`.faction-checkbox[data-faction="${factionId}"]:checked`)) - const count = checkboxes.length - - // Update the hidden input field - const input = this.element.querySelector(`input[name="system.factions.${factionId}.value"]`) - if (input) { - input.value = count - } - - // Update the visual count display - const countDisplay = this.element.querySelector(`.faction-row[data-faction="${factionId}"] .faction-count`) - if (countDisplay) { - countDisplay.textContent = count - } + /** Met à jour le score d'une faction par clic sur un point. */ + static #onFactionLevel(_event, target) { + if (!this.isEditable) return + const factionId = target.dataset.faction + const index = parseInt(target.dataset.index) + const current = this.document.system.factions[factionId]?.value ?? 0 + const newValue = (index <= current) ? index - 1 : index + this.document.update({ [`system.factions.${factionId}.value`]: Math.max(0, newValue) }) } } diff --git a/module/applications/sheets/character-sheet.mjs b/module/applications/sheets/character-sheet.mjs index 8251c54..5f79d8f 100644 --- a/module/applications/sheets/character-sheet.mjs +++ b/module/applications/sheets/character-sheet.mjs @@ -15,6 +15,8 @@ export default class CelestopolCharacterSheet extends CelestopolActorSheet { createArmure: CelestopolCharacterSheet.#onCreateArmure, useAnomaly: CelestopolCharacterSheet.#onUseAnomaly, resetAnomalyUses: CelestopolCharacterSheet.#onResetAnomalyUses, + depenseXp: CelestopolCharacterSheet.#onDepenseXp, + supprimerXpLog: CelestopolCharacterSheet.#onSupprimerXpLog, }, } @@ -95,6 +97,7 @@ export default class CelestopolCharacterSheet extends CelestopolActorSheet { case "biography": context.tab = context.tabs.biography + context.xpLogEmpty = (doc.system.xp?.log?.length ?? 0) === 0 context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML( doc.system.description, { async: true }) context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML( @@ -111,36 +114,36 @@ export default class CelestopolCharacterSheet extends CelestopolActorSheet { return context } - static #onCreateAnomaly() { + static async #onCreateAnomaly() { if (this.document.itemTypes.anomaly.length > 0) { ui.notifications.warn(game.i18n.localize("CELESTOPOL.Anomaly.maxAnomaly")) return } - this.document.createEmbeddedDocuments("Item", [{ + await this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CELESTOPOL.Item.newAnomaly"), type: "anomaly", }]) } - static #onCreateAspect() { - this.document.createEmbeddedDocuments("Item", [{ + static async #onCreateAspect() { + await this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CELESTOPOL.Item.newAspect"), type: "aspect", }]) } - static #onCreateEquipment() { - this.document.createEmbeddedDocuments("Item", [{ + static async #onCreateEquipment() { + await this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("TYPES.Item.equipment"), type: "equipment", }]) } - static #onCreateWeapon() { - this.document.createEmbeddedDocuments("Item", [{ + static async #onCreateWeapon() { + await this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("TYPES.Item.weapon"), type: "weapon", }]) } - static #onCreateArmure() { - this.document.createEmbeddedDocuments("Item", [{ + static async #onCreateArmure() { + await this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("TYPES.Item.armure"), type: "armure", }]) } @@ -163,4 +166,73 @@ export default class CelestopolCharacterSheet extends CelestopolActorSheet { if (!anomaly) return await anomaly.update({ "system.usesRemaining": anomaly.system.level }) } + + /** Ouvre un dialogue pour dépenser de l'XP. */ + static async #onDepenseXp() { + const actor = this.document + const currentXp = actor.system.xp?.actuel ?? 0 + const i18n = game.i18n + + const content = ` +

+
+ + +
+
+ + +
+

${i18n.format("CELESTOPOL.XP.disponible", { n: currentXp })}

+ ` + + const result = await foundry.applications.api.DialogV2.prompt({ + window: { title: i18n.localize("CELESTOPOL.XP.depenser") }, + content, + ok: { + label: i18n.localize("CELESTOPOL.XP.confirmer"), + callback: (event, button) => { + const form = button.form + return { + montant: parseInt(form.querySelector("[name=montant]").value) || 0, + raison: form.querySelector("[name=raison]").value.trim(), + } + }, + }, + }) + + if (!result) return + const { montant, raison } = result + + if (montant <= 0) { + ui.notifications.warn(i18n.localize("CELESTOPOL.XP.montantInvalide")) + return + } + if (montant > currentXp) { + ui.notifications.warn(i18n.format("CELESTOPOL.XP.insuffisant", { n: currentXp })) + return + } + + const date = new Date().toLocaleDateString("fr-FR") + const log = [...(actor.system.xp.log ?? []), { montant, raison, date }] + await actor.update({ + "system.xp.actuel": currentXp - montant, + "system.xp.log": log, + }) + } + + /** Supprime une entrée du log XP et rembourse les points (mode édition). */ + static async #onSupprimerXpLog(event, target) { + const idx = parseInt(target.dataset.idx) + const actor = this.document + const log = [...(actor.system.xp.log ?? [])] + if (isNaN(idx) || idx < 0 || idx >= log.length) return + + const entry = log[idx] + log.splice(idx, 1) + await actor.update({ + "system.xp.actuel": (actor.system.xp?.actuel ?? 0) + entry.montant, + "system.xp.log": log, + }) + } } diff --git a/module/config/system.mjs b/module/config/system.mjs index 85698fd..53e4d9f 100644 --- a/module/config/system.mjs +++ b/module/config/system.mjs @@ -90,15 +90,15 @@ export const FACTIONS = { /** Niveaux de blessures avec leur malus associé. */ export const WOUND_LEVELS = [ - { id: 0, label: "CELESTOPOL.Wound.none", malus: 0 }, - { id: 1, label: "CELESTOPOL.Wound.anodin", malus: 0 }, - { id: 2, label: "CELESTOPOL.Wound.derisoire", malus: 0 }, - { id: 3, label: "CELESTOPOL.Wound.negligeable", malus: -1 }, - { id: 4, label: "CELESTOPOL.Wound.superficiel", malus: -1 }, - { id: 5, label: "CELESTOPOL.Wound.leger", malus: -2 }, - { id: 6, label: "CELESTOPOL.Wound.modere", malus: -2 }, - { id: 7, label: "CELESTOPOL.Wound.grave", malus: -3 }, - { id: 8, label: "CELESTOPOL.Wound.dramatique", malus: -999 }, + { id: 0, label: "CELESTOPOL.Wound.none", malus: 0, duration: "" }, + { id: 1, label: "CELESTOPOL.Wound.anodin", malus: 0, duration: "CELESTOPOL.Wound.duration1min" }, + { id: 2, label: "CELESTOPOL.Wound.negligeable", malus: 0, duration: "CELESTOPOL.Wound.duration1min" }, + { id: 3, label: "CELESTOPOL.Wound.derisoire", malus: -1, duration: "CELESTOPOL.Wound.duration10min" }, + { id: 4, label: "CELESTOPOL.Wound.superficiel", malus: -1, duration: "CELESTOPOL.Wound.duration10min" }, + { id: 5, label: "CELESTOPOL.Wound.leger", malus: -2, duration: "CELESTOPOL.Wound.duration30min" }, + { id: 6, label: "CELESTOPOL.Wound.modere", malus: -2, duration: "CELESTOPOL.Wound.duration30min" }, + { id: 7, label: "CELESTOPOL.Wound.grave", malus: -3, duration: "CELESTOPOL.Wound.duration1jour" }, + { id: 8, label: "CELESTOPOL.Wound.dramatique", malus: -999, duration: "" }, ] /** Seuils de difficulté pour les jets de dés. */ diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 5cadf79..05f4c55 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -1,10 +1,4 @@ export default class CelestopolActor extends Actor { - /** @override */ - prepareDerivedData() { - super.prepareDerivedData() - this.system.prepareDerivedData?.() - } - /** @override */ getRollData() { return this.toObject(false).system diff --git a/module/documents/chat-message.mjs b/module/documents/chat-message.mjs index aa181a9..e63dc12 100644 --- a/module/documents/chat-message.mjs +++ b/module/documents/chat-message.mjs @@ -1,6 +1 @@ -export default class CelestopolChatMessage extends ChatMessage { - /** @override */ - async renderHTML(options = {}) { - return super.renderHTML(options) - } -} +export default class CelestopolChatMessage extends ChatMessage {} diff --git a/module/documents/item.mjs b/module/documents/item.mjs index b96cb45..813e104 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -1,9 +1,4 @@ export default class CelestopolItem extends Item { - /** @override */ - prepareDerivedData() { - super.prepareDerivedData() - } - /** @override */ getRollData() { return this.toObject(false).system diff --git a/module/documents/roll.mjs b/module/documents/roll.mjs index cfe465c..970a818 100644 --- a/module/documents/roll.mjs +++ b/module/documents/roll.mjs @@ -42,6 +42,7 @@ export class CelestopolRoll extends Roll { const fortuneValue = options.fortuneValue ?? 0 const isResistance = options.isResistance ?? false const isCombat = options.isCombat ?? false + const isRangedDefense = options.isRangedDefense ?? false const weaponType = options.weaponType ?? "melee" const weaponName = options.weaponName ?? null const weaponDegats = options.weaponDegats ?? "0" @@ -72,6 +73,7 @@ export class CelestopolRoll extends Roll { defaultRollMoonDie: options.rollMoonDie ?? false, isResistance, isCombat, + isRangedDefense, weaponType, weaponName, weaponDegats, @@ -221,6 +223,7 @@ export class CelestopolRoll extends Roll { autoSuccess, isResistance, isCombat, + isRangedDefense, weaponType, weaponName, weaponDegats, @@ -243,66 +246,49 @@ export class CelestopolRoll extends Roll { // Test de résistance échoué → cocher automatiquement la prochaine case de blessure const actor = game.actors.get(options.actorId) if (isResistance && actor && roll.options.resultType === "failure") { - const wounds = actor.system.blessures - const nextIdx = [1,2,3,4,5,6,7,8].find(i => !wounds[`b${i}`]?.checked) - if (nextIdx) { - await actor.update({ [`system.blessures.b${nextIdx}.checked`]: true }) - roll.options.woundTaken = nextIdx + const nextLvl = (actor.system.blessures.lvl ?? 0) + 1 + if (nextLvl <= 8) { + await actor.update({ "system.blessures.lvl": nextLvl }) + roll.options.woundTaken = nextLvl } } - // Combat mêlée échoué → joueur prend une blessure - if (isCombat && weaponType === "melee" && actor && roll.options.resultType === "failure") { - const wounds = actor.system.blessures - const nextIdx = [1,2,3,4,5,6,7,8].find(i => !wounds[`b${i}`]?.checked) - if (nextIdx) { - await actor.update({ [`system.blessures.b${nextIdx}.checked`]: true }) - roll.options.woundTaken = nextIdx + // Mêlée échouée OU défense à distance échouée → joueur prend une blessure + if (isCombat && (weaponType === "melee" || isRangedDefense) && actor && roll.options.resultType === "failure") { + const nextLvl = (actor.system.blessures.lvl ?? 0) + 1 + if (nextLvl <= 8) { + await actor.update({ "system.blessures.lvl": nextLvl }) + roll.options.woundTaken = nextLvl } } await roll.toMessage({}, { rollMode: rollData.rollMode }) - // Destin utilisé → vider la jauge (reset à 0) - if (rollData.useDestin && actor) { - await actor.update({ - "system.destin.lvl": 0, - "system.destin.d1.checked": false, - "system.destin.d2.checked": false, - "system.destin.d3.checked": false, - "system.destin.d4.checked": false, - "system.destin.d5.checked": false, - "system.destin.d6.checked": false, - "system.destin.d7.checked": false, - "system.destin.d8.checked": false, - }) - } - - // Fortune utilisée → décrémenter de 1 (min 0) - if (rollData.useFortune && actor) { - const currentFortune = actor.system.attributs.fortune.value ?? 0 - await actor.update({ "system.attributs.fortune.value": Math.max(0, currentFortune - 1) }) - } - - // Puiser dans ses ressources → coche une case de spleen - if (rollData.puiserRessources && actor) { - const currentSpleen = actor.system.spleen.lvl ?? 0 - if (currentSpleen < 8) { - const newLvl = currentSpleen + 1 - const key = `s${newLvl}` - await actor.update({ - "system.spleen.lvl": newLvl, - [`system.spleen.${key}.checked`]: true, - }) - } - } - - // Mémoriser les préférences sur l'acteur + // Batching de toutes les mises à jour de l'acteur en un seul appel réseau if (actor) { - await actor.update({ - "system.prefs.rollMoonDie": rollData.rollMoonDie, - "system.prefs.difficulty": difficulty, - }) + const updateData = {} + + if (rollData.useDestin) { + updateData["system.destin.lvl"] = 0 + } + + if (rollData.useFortune) { + const currentFortune = actor.system.attributs.fortune.value ?? 0 + updateData["system.attributs.fortune.value"] = Math.max(0, currentFortune - 1) + } + + if (rollData.puiserRessources) { + const currentSpleen = actor.system.spleen.lvl ?? 0 + if (currentSpleen < 8) { + updateData["system.spleen.lvl"] = currentSpleen + 1 + } + } + + // Mémoriser les préférences + updateData["system.prefs.rollMoonDie"] = rollData.rollMoonDie + updateData["system.prefs.difficulty"] = difficulty + + await actor.update(updateData) } return roll @@ -421,6 +407,7 @@ export class CelestopolRoll extends Roll { weaponName: this.options.weaponName ?? null, weaponDegats: this.options.weaponDegats ?? null, weaponType: this.options.weaponType ?? null, + isRangedDefense: this.options.isRangedDefense ?? false, woundTaken: this.options.woundTaken ?? null, // Dé de lune hasMoonDie: moonDieResult !== null, diff --git a/module/models/character.mjs b/module/models/character.mjs index 4873e42..32618cd 100644 --- a/module/models/character.mjs +++ b/module/models/character.mjs @@ -21,18 +21,10 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel value: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), }) - // Les 4 stats avec leurs domaines + // Les 4 stats avec leurs domaines — niveau stocké directement comme entier const skillField = (label) => new fields.SchemaField({ label: new fields.StringField({ required: true, initial: label }), value: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), - level1: new fields.BooleanField({ required: true, initial: false }), - level2: new fields.BooleanField({ required: true, initial: false }), - level3: new fields.BooleanField({ required: true, initial: false }), - level4: new fields.BooleanField({ required: true, initial: false }), - level5: new fields.BooleanField({ required: true, initial: false }), - level6: new fields.BooleanField({ required: true, initial: false }), - level7: new fields.BooleanField({ required: true, initial: false }), - level8: new fields.BooleanField({ required: true, initial: false }), }) const statField = (statId) => { @@ -55,32 +47,19 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel esprit: statField("esprit"), }) - // Blessures (8 cases) - const woundField = (idx) => new fields.SchemaField({ - checked: new fields.BooleanField({ required: true, initial: false }), - malus: new fields.NumberField({ ...reqInt, initial: SYSTEM.WOUND_LEVELS[idx]?.malus ?? 0 }), - }) + // Blessures — niveau entier direct (0 = aucune, 8 = fatale) schema.blessures = new fields.SchemaField({ lvl: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), - b1: woundField(1), b2: woundField(2), b3: woundField(3), b4: woundField(4), - b5: woundField(5), b6: woundField(6), b7: woundField(7), b8: woundField(8), }) - // Destin (8 cases) - const destField = () => new fields.SchemaField({ - checked: new fields.BooleanField({ required: true, initial: false }), - }) + // Destin — jauge entière directe schema.destin = new fields.SchemaField({ lvl: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), - d1: destField(), d2: destField(), d3: destField(), d4: destField(), - d5: destField(), d6: destField(), d7: destField(), d8: destField(), }) - // Spleen (8 cases) + // Spleen — jauge entière directe schema.spleen = new fields.SchemaField({ lvl: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), - s1: destField(), s2: destField(), s3: destField(), s4: destField(), - s5: destField(), s6: destField(), s7: destField(), s8: destField(), }) // Attributs de personnage (Entregent, Fortune, Rêve, Vision) @@ -95,18 +74,9 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel vision: persoAttrField(), }) - // Factions - 9 checkboxes per faction (like wound tracks) + // Factions — score entier direct (0-9) const factionField = () => new fields.SchemaField({ - value: new fields.NumberField({ ...reqInt, initial: 0 }), - level1: new fields.BooleanField({ required: true, initial: false }), - level2: new fields.BooleanField({ required: true, initial: false }), - level3: new fields.BooleanField({ required: true, initial: false }), - level4: new fields.BooleanField({ required: true, initial: false }), - level5: new fields.BooleanField({ required: true, initial: false }), - level6: new fields.BooleanField({ required: true, initial: false }), - level7: new fields.BooleanField({ required: true, initial: false }), - level8: new fields.BooleanField({ required: true, initial: false }), - level9: new fields.BooleanField({ required: true, initial: false }), + value: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 9 }), }) schema.factions = new fields.SchemaField({ pinkerton: factionField(), @@ -133,6 +103,16 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel difficulty: new fields.StringField({ required: true, nullable: false, initial: "normal" }), }) + // Expérience + schema.xp = new fields.SchemaField({ + actuel: new fields.NumberField({ ...reqInt, initial: 0, min: 0 }), + log: new fields.ArrayField(new fields.SchemaField({ + montant: new fields.NumberField({ ...reqInt, initial: 0, min: 0 }), + raison: new fields.StringField({ required: true, nullable: false, initial: "" }), + date: new fields.StringField({ required: true, nullable: false, initial: "" }), + })), + }) + // Description & notes schema.description = new fields.HTMLField({ required: true, textSearch: true }) schema.notes = new fields.HTMLField({ required: true, textSearch: true }) @@ -156,15 +136,7 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel prepareDerivedData() { super.prepareDerivedData() - // Calcul automatique de la valeur de chaque domaine = nombre de cases cochées - for (const stat of Object.values(this.stats)) { - for (const skill of Object.values(stat)) { - if (typeof skill !== "object" || !("level1" in skill)) continue - skill.value = [1,2,3,4,5,6,7,8].filter(i => skill[`level${i}`]).length - } - } - - // Calcul automatique de la Résistance par stat = +2 par domaine atteignant son seuil + // Résistance par stat = +2 par domaine atteignant son seuil de spécialisation for (const [statId, statData] of Object.entries(this.stats)) { let res = 0 for (const [skillId, skill] of Object.entries(statData)) { @@ -175,19 +147,11 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel statData.res = res } - // Calcul automatique de la valeur de chaque faction = nombre de cases cochées - for (const faction of Object.values(this.factions)) { - if (typeof faction !== "object" || !("level1" in faction)) continue - faction.value = [1,2,3,4,5,6,7,8,9].filter(i => faction[`level${i}`]).length - } - - // Calcul automatique du niveau des jauges depuis les cases cochées - this.blessures.lvl = [1,2,3,4,5,6,7,8].filter(i => this.blessures[`b${i}`]?.checked).length - this.destin.lvl = [1,2,3,4,5,6,7,8].filter(i => this.destin[`d${i}`]?.checked).length - this.spleen.lvl = [1,2,3,4,5,6,7,8].filter(i => this.spleen[`s${i}`]?.checked).length - - // Initiative PJ : 4 + Mobilité (Corps) + Inspiration (Cœur) [après calcul des domaines] + // Initiative PJ : 4 + Mobilité (Corps) + Inspiration (Cœur) this.initiative = 4 + (this.stats.corps.mobilite?.value ?? 0) + (this.stats.coeur.inspiration?.value ?? 0) + + // XP dépensée = somme des montants du log + this.xp.depense = this.xp.log.reduce((sum, entry) => sum + entry.montant, 0) } /** @@ -239,10 +203,29 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel const statData = this.stats[statId] if (!statData) return null + return CelestopolRoll.prompt({ + actorId: this.parent.id, + actorName: this.parent.name, + actorImage: this.parent.img, + statId, + skillId: null, + statLabel: SYSTEM.STATS[statId]?.label, + skillLabel: "CELESTOPOL.Roll.resistanceTest", + skillValue: statData.res, + woundMalus: this.getWoundMalus(), + woundLevel: this.blessures.lvl, + isResistance: true, + rollMoonDie: false, + destGaugeFull: false, + fortuneValue: 0, + difficulty: "normal", + }) + } + /** - * Lance une attaque avec une arme (test Échauffourée vs Corps PNJ). - * Mêlée : échec → blessure joueur auto-cochée. - * Distance : échec → simple raté, pas de blessure joueur. + * Lance une attaque avec une arme. + * Mêlée : test Échauffourée vs Corps PNJ ; échec → blessure joueur. + * Distance : test Échauffourée vs Corps PNJ ; échec → pas de blessure joueur. * Égalité (marge=0) → personne n'est blessé. * @param {string} itemId - Id de l'item arme */ @@ -255,23 +238,60 @@ export default class CelestopolCharacter extends foundry.abstract.TypeDataModel if (!echauffouree) return null return CelestopolRoll.prompt({ - actorId: this.parent.id, - actorName: this.parent.name, - actorImage: this.parent.img, - statId: "corps", - skillId: "echauffouree", - statLabel: SYSTEM.STATS.corps.label, - skillLabel: SYSTEM.SKILLS.corps.echauffouree.label, - skillValue: echauffouree.value, - woundMalus: this.getWoundMalus(), - woundLevel: this.blessures.lvl, - rollMoonDie: this.prefs.rollMoonDie ?? false, - destGaugeFull: this.destin.lvl > 0, - fortuneValue: this.attributs.fortune.value, - isCombat: true, - weaponType: item.system.type, - weaponName: item.name, - weaponDegats: item.system.degats, + actorId: this.parent.id, + actorName: this.parent.name, + actorImage: this.parent.img, + statId: "corps", + skillId: "echauffouree", + statLabel: SYSTEM.STATS.corps.label, + skillLabel: SYSTEM.SKILLS.corps.echauffouree.label, + skillValue: echauffouree.value, + woundMalus: this.getWoundMalus(), + woundLevel: this.blessures.lvl, + rollMoonDie: this.prefs.rollMoonDie ?? false, + destGaugeFull: this.destin.lvl > 0, + fortuneValue: this.attributs.fortune.value, + isCombat: true, + isRangedDefense: false, + weaponType: item.system.type, + weaponName: item.name, + weaponDegats: item.system.degats, + }) + } + + /** + * Lance un jet de défense contre une attaque à distance (test Mobilité vs Corps PNJ). + * Succès → esquive réussie. + * Échec → blessure automatique (le PNJ touche). + * @param {string} itemId - Id de l'item arme (distance uniquement) + */ + async rollRangedDefense(itemId) { + const { CelestopolRoll } = await import("../documents/roll.mjs") + const item = this.parent.items.get(itemId) + if (!item || item.type !== "weapon" || item.system.type !== "distance") return null + + const mobilite = this.stats.corps.mobilite + if (!mobilite) return null + + return CelestopolRoll.prompt({ + actorId: this.parent.id, + actorName: this.parent.name, + actorImage: this.parent.img, + statId: "corps", + skillId: "mobilite", + statLabel: SYSTEM.STATS.corps.label, + skillLabel: SYSTEM.SKILLS.corps.mobilite.label, + skillValue: mobilite.value, + woundMalus: this.getWoundMalus(), + woundLevel: this.blessures.lvl, + rollMoonDie: this.prefs.rollMoonDie ?? false, + destGaugeFull: this.destin.lvl > 0, + fortuneValue: this.attributs.fortune.value, + isCombat: true, + isRangedDefense: true, + weaponType: "distance", + weaponName: item.name, + weaponDegats: "0", }) } } diff --git a/module/models/npc.mjs b/module/models/npc.mjs index 8247490..67478ee 100644 --- a/module/models/npc.mjs +++ b/module/models/npc.mjs @@ -41,14 +41,8 @@ export default class CelestopolNPC extends foundry.abstract.TypeDataModel { esprit: statField("esprit"), }) - const woundField = (idx) => new fields.SchemaField({ - checked: new fields.BooleanField({ required: true, initial: false }), - malus: new fields.NumberField({ ...reqInt, initial: SYSTEM.WOUND_LEVELS[idx]?.malus ?? 0 }), - }) schema.blessures = new fields.SchemaField({ lvl: new fields.NumberField({ ...reqInt, initial: 0, min: 0, max: 8 }), - b1: woundField(1), b2: woundField(2), b3: woundField(3), b4: woundField(4), - b5: woundField(5), b6: woundField(6), b7: woundField(7), b8: woundField(8), }) schema.prefs = new fields.SchemaField({ diff --git a/packs-system/anomalies/000007.log b/packs-system/anomalies/000019.log similarity index 100% rename from packs-system/anomalies/000007.log rename to packs-system/anomalies/000019.log diff --git a/packs-system/anomalies/CURRENT b/packs-system/anomalies/CURRENT index f7753e2..e417a51 100644 --- a/packs-system/anomalies/CURRENT +++ b/packs-system/anomalies/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000018 diff --git a/packs-system/anomalies/LOG b/packs-system/anomalies/LOG index a24feaa..ca546fd 100644 --- a/packs-system/anomalies/LOG +++ b/packs-system/anomalies/LOG @@ -1,3 +1,3 @@ -2026/03/29-17:12:00.740305 7f4bda7ed6c0 Recovering log #4 -2026/03/29-17:12:00.787211 7f4bda7ed6c0 Delete type=3 #2 -2026/03/29-17:12:00.787276 7f4bda7ed6c0 Delete type=0 #4 +2026/03/30-23:54:32.064751 7ff9c7fff6c0 Recovering log #16 +2026/03/30-23:54:32.074311 7ff9c7fff6c0 Delete type=3 #14 +2026/03/30-23:54:32.074383 7ff9c7fff6c0 Delete type=0 #16 diff --git a/packs-system/anomalies/LOG.old b/packs-system/anomalies/LOG.old index 2014d7a..e2bb26b 100644 --- a/packs-system/anomalies/LOG.old +++ b/packs-system/anomalies/LOG.old @@ -1,5 +1,7 @@ -2026/03/28-09:47:34.669467 7f0018fff6c0 Delete type=3 #1 -2026/03/29-17:08:09.756858 7effca7fc6c0 Level-0 table #5: started -2026/03/29-17:08:09.756892 7effca7fc6c0 Level-0 table #5: 0 bytes OK -2026/03/29-17:08:09.762851 7effca7fc6c0 Delete type=0 #3 -2026/03/29-17:08:09.769416 7effca7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2026/03/30-09:43:32.818417 7f4bda7ed6c0 Recovering log #12 +2026/03/30-09:43:32.832361 7f4bda7ed6c0 Delete type=3 #10 +2026/03/30-09:43:32.832436 7f4bda7ed6c0 Delete type=0 #12 +2026/03/30-14:14:04.399110 7f4bd8fea6c0 Level-0 table #17: started +2026/03/30-14:14:04.399143 7f4bd8fea6c0 Level-0 table #17: 0 bytes OK +2026/03/30-14:14:04.436937 7f4bd8fea6c0 Delete type=0 #15 +2026/03/30-14:14:04.520163 7f4bd8fea6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs-system/anomalies/MANIFEST-000006 b/packs-system/anomalies/MANIFEST-000006 deleted file mode 100644 index 8bc31620a1a216ad19a14f281bbec9eb03aa762d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$lIi(_J_i7@62P8JIa( F7y#q(5I6t; diff --git a/packs-system/anomalies/MANIFEST-000018 b/packs-system/anomalies/MANIFEST-000018 new file mode 100644 index 0000000000000000000000000000000000000000..1f89f0daff3eff656bc0f1d1f1b605ca2840f117 GIT binary patch literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAevx?al`R|$j7-9u49p@d F3;^6A58MC% literal 0 HcmV?d00001 diff --git a/packs-system/aspects/000007.log b/packs-system/aspects/000019.log similarity index 100% rename from packs-system/aspects/000007.log rename to packs-system/aspects/000019.log diff --git a/packs-system/aspects/CURRENT b/packs-system/aspects/CURRENT index f7753e2..e417a51 100644 --- a/packs-system/aspects/CURRENT +++ b/packs-system/aspects/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000018 diff --git a/packs-system/aspects/LOG b/packs-system/aspects/LOG index f7becb0..11ff994 100644 --- a/packs-system/aspects/LOG +++ b/packs-system/aspects/LOG @@ -1,3 +1,3 @@ -2026/03/29-17:12:00.691509 7f4bd9fec6c0 Recovering log #4 -2026/03/29-17:12:00.738164 7f4bd9fec6c0 Delete type=3 #2 -2026/03/29-17:12:00.738214 7f4bd9fec6c0 Delete type=0 #4 +2026/03/30-23:54:32.051664 7ff9fd1fe6c0 Recovering log #16 +2026/03/30-23:54:32.062889 7ff9fd1fe6c0 Delete type=3 #14 +2026/03/30-23:54:32.062954 7ff9fd1fe6c0 Delete type=0 #16 diff --git a/packs-system/aspects/LOG.old b/packs-system/aspects/LOG.old index c749628..070b37c 100644 --- a/packs-system/aspects/LOG.old +++ b/packs-system/aspects/LOG.old @@ -1,5 +1,7 @@ -2026/03/28-09:47:34.653497 7effcaffd6c0 Delete type=3 #1 -2026/03/29-17:08:09.762957 7effca7fc6c0 Level-0 table #5: started -2026/03/29-17:08:09.762977 7effca7fc6c0 Level-0 table #5: 0 bytes OK -2026/03/29-17:08:09.769218 7effca7fc6c0 Delete type=0 #3 -2026/03/29-17:08:09.769426 7effca7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2026/03/30-09:43:32.805788 7f4bd9fec6c0 Recovering log #12 +2026/03/30-09:43:32.816248 7f4bd9fec6c0 Delete type=3 #10 +2026/03/30-09:43:32.816303 7f4bd9fec6c0 Delete type=0 #12 +2026/03/30-14:14:04.367410 7f4bd8fea6c0 Level-0 table #17: started +2026/03/30-14:14:04.367477 7f4bd8fea6c0 Level-0 table #17: 0 bytes OK +2026/03/30-14:14:04.398962 7f4bd8fea6c0 Delete type=0 #15 +2026/03/30-14:14:04.520149 7f4bd8fea6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs-system/aspects/MANIFEST-000006 b/packs-system/aspects/MANIFEST-000006 deleted file mode 100644 index 8bc31620a1a216ad19a14f281bbec9eb03aa762d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$lIi(_J_i7@62P8JIa( F7y#q(5I6t; diff --git a/packs-system/aspects/MANIFEST-000018 b/packs-system/aspects/MANIFEST-000018 new file mode 100644 index 0000000000000000000000000000000000000000..1f89f0daff3eff656bc0f1d1f1b605ca2840f117 GIT binary patch literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAevx?al`R|$j7-9u49p@d F3;^6A58MC% literal 0 HcmV?d00001 diff --git a/styles/character.less b/styles/character.less index e09ce5e..3e0de63 100644 --- a/styles/character.less +++ b/styles/character.less @@ -131,39 +131,27 @@ text-align: center; } - // Track de niveau (cases à cocher Art Déco) + // Points de niveau Art Déco (remplacent les cases à cocher) .skill-checkboxes-container { .skill-checkboxes { display: flex; gap: 3px; align-items: center; } - .skill-checkbox-wrapper { - line-height: 0; - cursor: pointer; - .skill-level-checkbox { - appearance: none; - -webkit-appearance: none; - display: inline-block; - width: 13px; - height: 13px; - border: 1px solid var(--cel-border); - border-radius: 1px; - background: rgba(255,255,255,0.3); - cursor: pointer; - vertical-align: middle; - transition: background 0.1s, border-color 0.1s; - &:checked { - background: var(--cel-orange); - border-color: var(--cel-border); - } - &:disabled { cursor: default; } - &:disabled:checked { - background: var(--cel-orange); - border-color: var(--cel-border); - opacity: 1; - } + .skill-level-dot { + display: inline-block; + width: 13px; + height: 13px; + border: 1px solid var(--cel-border); + border-radius: 1px; + background: rgba(255,255,255,0.3); + vertical-align: middle; + transition: background 0.1s, border-color 0.1s; + &.filled { + background: var(--cel-orange); + border-color: var(--cel-border); } + &[data-action] { cursor: pointer; } } } } @@ -215,6 +203,11 @@ text-transform: uppercase; font-size: 0.9em; } + .track-title-destin { + cursor: help; + border-bottom: 1px dashed currentColor; + text-decoration: none; + } } .track-boxes { @@ -228,17 +221,29 @@ display: flex; flex-direction: column; align-items: center; + justify-content: center; gap: 2px; + width: 22px; + min-height: 22px; + border: 2px solid var(--cel-border); + border-radius: 2px; + background: rgba(255,255,255,0.45); + transition: background 0.1s, border-color 0.1s; + + &.filled { + background: var(--cel-orange); + border-color: var(--cel-orange); + } + + &[data-action] { cursor: pointer; } - input[type="checkbox"] { .cel-box(); accent-color: var(--cel-orange); } .box-label { - font-size: 0.65em; + font-size: 0.6em; color: var(--cel-border); + line-height: 1; } - &.checked input[type="checkbox"] { - accent-color: var(--cel-orange); - } + &.filled .box-label { color: rgba(30,10,0,0.65); } } } @@ -274,6 +279,38 @@ td { padding: 4px 8px; border-bottom: 1px solid rgba(122,92,32,0.2); } &.custom td { font-style: italic; color: #666; } + .faction-checkboxes-container { + display: flex; + align-items: center; + gap: 8px; + } + + .faction-checkboxes { + display: flex; + gap: 3px; + align-items: center; + } + + .faction-dot { + display: inline-block; + width: 12px; + height: 12px; + border: 1px solid var(--cel-border); + border-radius: 1px; + background: rgba(255,255,255,0.3); + transition: background 0.1s; + &.filled { background: var(--cel-orange); border-color: var(--cel-orange); } + &[data-action] { cursor: pointer; } + } + + .faction-count { + font-size: 0.85em; + font-weight: bold; + color: var(--cel-orange); + min-width: 16px; + text-align: center; + } + .faction-value input[type="number"] { width: 50px; .cel-input-std(); @@ -335,6 +372,156 @@ .enriched-html { font-size: 0.9em; line-height: 1.6; } } + // ── Section Expérience (onglet Biographie) ────────────────────────────── + .xp-section { + margin-bottom: 14px; + + .section-header { .cel-section-header(); } + + .xp-counters { + display: flex; + align-items: center; + gap: 12px; + padding: 6px 0 8px; + flex-wrap: wrap; + + .xp-counter { + display: flex; + flex-direction: column; + align-items: center; + background: rgba(0,0,0,0.18); + border: 1px solid var(--cel-orange); + border-radius: 4px; + padding: 4px 12px; + min-width: 80px; + + label { + font-size: 0.6em; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--cel-orange-light); + white-space: nowrap; + } + + input[type="number"] { + width: 52px; + text-align: center; + .cel-input-std(); + font-family: var(--cel-font-title); + font-size: 1.1em; + font-weight: bold; + color: var(--cel-orange); + } + } + + .xp-depense-counter { + border-color: rgba(196,154,26,0.4); + .xp-depense-value { + font-family: var(--cel-font-title); + font-size: 1.1em; + font-weight: bold; + color: rgba(196,154,26,0.7); + } + } + + .xp-btn-depenser { + background: var(--cel-green); + border: 1px solid var(--cel-orange); + color: var(--cel-orange); + font-size: 0.78em; + padding: 5px 12px; + cursor: pointer; + font-family: var(--cel-font-title); + text-transform: uppercase; + letter-spacing: 0.04em; + border-radius: 2px; + transition: background 0.15s; + margin-left: auto; + &:hover { background: var(--cel-green-light); } + i { margin-right: 4px; } + } + } + + .xp-log-table { + width: 100%; + border-collapse: collapse; + font-size: 0.82em; + margin-bottom: 8px; + + thead tr { + background: rgba(12,76,12,0.35); + th { + color: var(--cel-orange-light); + font-size: 0.75em; + text-transform: uppercase; + letter-spacing: 0.04em; + padding: 3px 6px; + text-align: left; + border-bottom: 1px solid rgba(196,154,26,0.3); + } + } + + tbody tr { + border-bottom: 1px solid rgba(196,154,26,0.12); + &:nth-child(even) { background: rgba(0,0,0,0.08); } + + td { padding: 3px 6px; color: var(--cel-text-dark, #3a2a0a); } + .xp-date { white-space: nowrap; color: var(--cel-border); font-size: 0.9em; } + .xp-montant { font-weight: bold; color: #c04040; white-space: nowrap; } + + .xp-suppr-cell { + text-align: center; + .xp-btn-suppr { + background: none; + border: none; + color: rgba(180,60,60,0.6); + cursor: pointer; + font-size: 0.9em; + padding: 1px 4px; + &:hover { color: #c04040; } + } + } + } + } + + // Référentiel de coûts (accordéon) + .xp-ref { + margin-top: 6px; + summary { + font-size: 0.78em; + color: var(--cel-orange-light); + cursor: pointer; + letter-spacing: 0.03em; + text-transform: uppercase; + user-select: none; + &:hover { color: var(--cel-orange); } + } + + .xp-ref-table { + width: 100%; + border-collapse: collapse; + font-size: 0.78em; + margin-top: 5px; + opacity: 0.75; + + th { + color: var(--cel-orange-light); + text-transform: uppercase; + font-size: 0.85em; + letter-spacing: 0.03em; + padding: 2px 6px; + border-bottom: 1px solid rgba(196,154,26,0.25); + text-align: left; + } + td { + padding: 2px 6px; + border-bottom: 1px solid rgba(196,154,26,0.1); + color: var(--cel-text-dark, #3a2a0a); + } + } + } + } + // ── Bloc Anomalie sur l'onglet Domaines ────────────────────────────────── .anomaly-block { border: 1px solid rgba(196,154,26,0.5); diff --git a/styles/global.less b/styles/global.less index 2d53039..8b6a0c4 100644 --- a/styles/global.less +++ b/styles/global.less @@ -277,18 +277,63 @@ &:disabled { cursor: default; opacity: 0.7; } } - .faction-count { - margin-left: 8px; - font-weight: bold; - color: var(--cel-orange); - min-width: 20px; - text-align: right; + // ── Badge d'état de blessure intégré dans header-stats-row ───────────────── + .wound-status-badge { + // Supprime le fond/bord générique du .header-stat + background: transparent; + border-color: currentColor; + + label { + text-transform: uppercase; + white-space: nowrap; + } + + .wound-value { + font-family: var(--cel-font-title); + font-size: 0.95em; + font-weight: bold; + white-space: nowrap; + line-height: 1.2; + } + .wound-duration { font-weight: normal; opacity: 0.85; } + .wound-malus { opacity: 0.9; } + + // Niveaux 1-2 : aucun malus → vert doux + &.wound-level-1, &.wound-level-2 { + color: #6abf5e; + background: rgba(106,191,94,0.10); + label { color: #6abf5e; } + } + // Niveaux 3-4 : malus -1 → ambre + &.wound-level-3, &.wound-level-4 { + color: #e8a020; + background: rgba(232,160,32,0.13); + label { color: #e8a020; } + } + // Niveaux 5-6 : malus -2 → orange vif + &.wound-level-5, &.wound-level-6 { + color: #e06020; + background: rgba(224,96,32,0.13); + label { color: #e06020; } + } + // Niveau 7 : malus -3 → rouge + &.wound-level-7 { + color: #d43030; + background: rgba(212,48,48,0.13); + label { color: #d43030; } + } + // Niveau 8 : hors combat → rouge sombre + pulsation + &.wound-level-8 { + color: #c00; + background: rgba(192,0,0,0.18); + label { color: #c00; } + animation: wound-pulse 1.4s ease-in-out infinite; + } } - .faction-value-input { width: 40px; margin-left: 8px; } - - .faction-row { - pointer-events: auto !important; - td { pointer-events: auto !important; } + @keyframes wound-pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.55; } } + } diff --git a/system.json b/system.json index a6b0a36..ab65c01 100644 --- a/system.json +++ b/system.json @@ -110,7 +110,7 @@ "distance": 5, "units": "m" }, - "primaryTokenAttribute": "resource", + "primaryTokenAttribute": "blessures.lvl", "socket": true, "background": "systems/fvtt-celestopol/assets/ui/celestopol_background.webp" } \ No newline at end of file diff --git a/templates/character-biography.hbs b/templates/character-biography.hbs index 4696644..ac48acc 100644 --- a/templates/character-biography.hbs +++ b/templates/character-biography.hbs @@ -1,5 +1,76 @@
+ {{!-- Section XP --}} +
+
{{localize "CELESTOPOL.XP.title"}}
+ +
+
+ + {{formInput systemFields.xp.fields.actuel value=system.xp.actuel name="system.xp.actuel"}} +
+
+ + {{system.xp.depense}} +
+ {{#if isPlayMode}} + + {{/if}} +
+ + {{!-- Log des dépenses --}} + {{#unless xpLogEmpty}} + + + + + + + {{#if isEditMode}}{{/if}} + + + + {{#each system.xp.log}} + + + + + {{#if ../isEditMode}} + + {{/if}} + + {{/each}} + +
{{localize "CELESTOPOL.XP.date"}}{{localize "CELESTOPOL.XP.raison"}}{{localize "CELESTOPOL.XP.montant"}}
{{this.date}}{{this.raison}}−{{this.montant}} + +
+ {{/unless}} + + {{!-- Tableau de référence des coûts --}} +
+ {{localize "CELESTOPOL.XP.refTitle"}} + + + + + + + + + + + + + +
{{localize "CELESTOPOL.XP.refAmelioration"}}{{localize "CELESTOPOL.XP.refCout"}}
{{localize "CELESTOPOL.XP.refAugmenterSpec"}}{{localize "CELESTOPOL.XP.refCoutNiveau"}}
{{localize "CELESTOPOL.XP.refAcquerirAspect"}}5
{{localize "CELESTOPOL.XP.refAugmenterAspect"}}5
{{localize "CELESTOPOL.XP.refAcquerirAttribut"}}{{localize "CELESTOPOL.XP.refCoutAttributTotal"}}
+
+
+ {{!-- Description / Biographie --}}
{{localize "CELESTOPOL.Actor.description"}}
diff --git a/templates/character-blessures.hbs b/templates/character-blessures.hbs index 6511cb8..71311cf 100644 --- a/templates/character-blessures.hbs +++ b/templates/character-blessures.hbs @@ -4,19 +4,14 @@
{{localize "CELESTOPOL.Track.blessures"}} {{localize "CELESTOPOL.Track.currentMalus"}} : - {{system.blessures.lvl}} + {{lookup @root.woundLevels system.blessures.lvl 'malus'}}
- {{#each (array "b1" "b2" "b3" "b4" "b5" "b6" "b7" "b8") as |key idx|}} -
- - + {{#each (range 8) as |lvl|}} +
+ {{lookup @root.woundLevels lvl 'malus'}}
{{/each}}
@@ -29,18 +24,13 @@ {{!-- Destin --}}
- {{localize "CELESTOPOL.Track.destin"}} + {{localize "CELESTOPOL.Track.destin"}}
- {{#each (array "d1" "d2" "d3" "d4" "d5" "d6" "d7" "d8") as |key|}} -
- -
+ {{#each (range 8) as |lvl|}} +
{{/each}}
@@ -55,15 +45,9 @@ {{localize "CELESTOPOL.Track.spleen"}}
- {{#each (array "s1" "s2" "s3" "s4" "s5" "s6" "s7" "s8") as |key|}} -
- -
+ {{#each (range 8) as |lvl|}} +
{{/each}}
diff --git a/templates/character-competences.hbs b/templates/character-competences.hbs index 0027e26..759787c 100644 --- a/templates/character-competences.hbs +++ b/templates/character-competences.hbs @@ -18,18 +18,13 @@ {{localize skill.label}}
- {{#each (array 1 2 3 4 5 6 7 8) as |level|}} - + {{#each (range 8) as |lvl|}} + {{/each}}
- + {{lookup @root.system.stats statId skillId 'value'}}
{{else}}
{{localize skill.label}}
- {{#each (array 1 2 3 4 5 6 7 8) as |level|}} - + {{#each (range 8) as |lvl|}} + {{/each}}
- {{lookup (lookup @root.system.stats statId) skillId 'value'}} + {{lookup @root.system.stats statId skillId 'value'}}
{{/if}} {{/each}} diff --git a/templates/character-equipement.hbs b/templates/character-equipement.hbs index 95bbc9c..272653e 100644 --- a/templates/character-equipement.hbs +++ b/templates/character-equipement.hbs @@ -18,6 +18,9 @@
{{#unless ../isEditMode}} + {{#if (eq item.system.type "distance")}} + + {{/if}} {{/unless}} {{#if ../isEditMode}}{{/if}} diff --git a/templates/character-factions.hbs b/templates/character-factions.hbs index 7868b95..ae725bf 100644 --- a/templates/character-factions.hbs +++ b/templates/character-factions.hbs @@ -13,32 +13,12 @@
- {{#each (array 1 2 3 4 5 6 7 8 9) as |level|}} - {{#if @root.isEditMode}} - - {{else}} - - {{/if}} + {{#each (range 9) as |level|}} + {{/each}}
- - {{#if ../isEditMode}} - - {{else}} - {{lookup (lookup ../system.factions factionId) 'value'}} - {{/if}} - + {{lookup @root.system.factions factionId 'value'}}
@@ -58,32 +38,12 @@
- {{#each (array 1 2 3 4 5 6 7 8 9) as |level|}} - {{#if ../isEditMode}} - - {{else}} - - {{/if}} + {{#each (range 9) as |level|}} + {{/each}}
- - {{#if ../isEditMode}} - - {{else}} - {{system.factions.perso1.value}} - {{/if}} - + {{system.factions.perso1.value}}
@@ -100,32 +60,12 @@
- {{#each (array 1 2 3 4 5 6 7 8 9) as |level|}} - {{#if ../isEditMode}} - - {{else}} - - {{/if}} + {{#each (range 9) as |level|}} + {{/each}}
- - {{#if ../isEditMode}} - - {{else}} - {{system.factions.perso2.value}} - {{/if}} - + {{system.factions.perso2.value}}
diff --git a/templates/character-main.hbs b/templates/character-main.hbs index 99f03c5..10a2718 100644 --- a/templates/character-main.hbs +++ b/templates/character-main.hbs @@ -70,6 +70,18 @@ {{/if}}
{{/each}} + {{#with (lookup woundLevels system.blessures.lvl) as |wound|}} + {{#if wound.id}} +
+ + + {{localize wound.label}} + {{#if wound.duration}} — {{localize wound.duration}}{{/if}} + {{#if wound.malus}} ({{wound.malus}}){{/if}} + +
+ {{/if}} + {{/with}}
diff --git a/templates/chat-message.hbs b/templates/chat-message.hbs index 9d6d720..475a689 100644 --- a/templates/chat-message.hbs +++ b/templates/chat-message.hbs @@ -123,7 +123,11 @@ ✦✦ {{localize "CELESTOPOL.Roll.criticalSuccess"}} {{#if isCombat}} + {{#if isRangedDefense}} + {{localize "CELESTOPOL.Combat.rangedDefenseSuccess"}} + {{else}} {{localize "CELESTOPOL.Combat.successHit"}}{{#if (gt weaponDegats "0")}} +{{weaponDegats}} {{localize "CELESTOPOL.Combat.weaponDamage"}}{{/if}} + {{/if}} {{else}} {{localize "CELESTOPOL.Roll.criticalSuccessDesc"}} {{/if}} @@ -131,13 +135,23 @@ {{localize "CELESTOPOL.Roll.success"}} {{#if isCombat}} + {{#if isRangedDefense}} + {{localize "CELESTOPOL.Combat.rangedDefenseSuccess"}} + {{else}} {{localize "CELESTOPOL.Combat.successHit"}}{{#if (gt weaponDegats "0")}} +{{weaponDegats}} {{localize "CELESTOPOL.Combat.weaponDamage"}}{{/if}} {{/if}} + {{/if}} {{else if isCriticalFailure}} ✖✖ {{localize "CELESTOPOL.Roll.criticalFailure"}} {{#if isCombat}} - {{#if (eq weaponType "melee")}}{{localize "CELESTOPOL.Combat.failureHit"}}{{else}}{{localize "CELESTOPOL.Combat.distanceNoWound"}}{{/if}} + {{#if (eq weaponType "melee")}} + {{localize "CELESTOPOL.Combat.failureHit"}} + {{else if isRangedDefense}} + {{localize "CELESTOPOL.Combat.rangedDefenseFailure"}} + {{else}} + {{localize "CELESTOPOL.Combat.distanceNoWound"}} + {{/if}} {{else}} {{localize "CELESTOPOL.Roll.criticalFailureDesc"}} {{/if}} @@ -145,7 +159,13 @@ {{localize "CELESTOPOL.Roll.failure"}} {{#if isCombat}} - {{#if (eq weaponType "melee")}}{{localize "CELESTOPOL.Combat.failureHit"}}{{else}}{{localize "CELESTOPOL.Combat.distanceNoWound"}}{{/if}} + {{#if (eq weaponType "melee")}} + {{localize "CELESTOPOL.Combat.failureHit"}} + {{else if isRangedDefense}} + {{localize "CELESTOPOL.Combat.rangedDefenseFailure"}} + {{else}} + {{localize "CELESTOPOL.Combat.distanceNoWound"}} + {{/if}} {{/if}} {{/if}}
@@ -154,7 +174,7 @@ {{#if woundTaken}}
🩹 - {{#if isCombat}}{{localize "CELESTOPOL.Combat.playerWounded"}}{{else}}{{localize "CELESTOPOL.Roll.woundTaken"}}{{/if}} + {{#if isCombat}}{{#if isRangedDefense}}{{localize "CELESTOPOL.Combat.rangedDefensePlayerWounded"}}{{else}}{{localize "CELESTOPOL.Combat.playerWounded"}}{{/if}}{{else}}{{localize "CELESTOPOL.Roll.woundTaken"}}{{/if}}
{{/if}} diff --git a/templates/npc-blessures.hbs b/templates/npc-blessures.hbs index bda5e32..5d2c1f7 100644 --- a/templates/npc-blessures.hbs +++ b/templates/npc-blessures.hbs @@ -4,22 +4,16 @@ {{localize "CELESTOPOL.Track.blessures"}}
- {{#each (array "b1" "b2" "b3" "b4" "b5" "b6" "b7" "b8") as |key|}} -
- - + {{#each (range 8) as |lvl|}} +
+ {{lookup @root.woundLevels lvl 'malus'}}
{{/each}}
- {{#if isEditMode}} - - {{else}} - {{system.blessures.lvl}} - {{/if}} + {{system.blessures.lvl}}
diff --git a/templates/npc-main.hbs b/templates/npc-main.hbs index 2cdbc65..4839985 100644 --- a/templates/npc-main.hbs +++ b/templates/npc-main.hbs @@ -37,6 +37,18 @@ {{localize (lookup (lookup anomalyTypes system.anomaly.type) 'label')}} {{/if}}
+ {{#with (lookup woundLevels system.blessures.lvl) as |wound|}} + {{#if wound.id}} +
+ + + {{localize wound.label}} + {{#if wound.duration}} — {{localize wound.duration}}{{/if}} + {{#if wound.malus}} ({{wound.malus}}){{/if}} + +
+ {{/if}} + {{/with}}
diff --git a/templates/roll-dialog.hbs b/templates/roll-dialog.hbs index 80598e4..0b54fe7 100644 --- a/templates/roll-dialog.hbs +++ b/templates/roll-dialog.hbs @@ -6,9 +6,13 @@ {{!-- Arme (mode combat) --}} {{#if isCombat}}
- + {{#if isRangedDefense}}🛡{{else}}⚔{{/if}} {{weaponName}} + {{#if isRangedDefense}} + {{localize "CELESTOPOL.Combat.rangedDefenseTag"}} + {{else}} +{{weaponDegats}} + {{/if}}
{{/if}}