From 5c2a3648322ada6f169a262b4ceb66b1ebc9994d Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Fri, 29 May 2026 18:28:09 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9glage=20de=20la=20difficult=C3=A9=20par?= =?UTF-8?q?=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 87 ++++++++++++++++++ fvtt-celestopol.mjs | 23 +++++ lang/fr.json | 4 + module/documents/roll.mjs | 17 ++-- .../aides-de-jeu/{000099.log => 000107.log} | 0 .../aides-de-jeu/{000088.ldb => 000109.ldb} | Bin packs-system/aides-de-jeu/CURRENT | 2 +- packs-system/aides-de-jeu/LOG | 18 ++-- packs-system/aides-de-jeu/LOG.old | 11 +-- packs-system/aides-de-jeu/MANIFEST-000097 | Bin 220 -> 0 bytes packs-system/aides-de-jeu/MANIFEST-000105 | Bin 0 -> 334 bytes .../lost/000103.log} | 0 .../000060.log => anomalies/000170.log} | 0 .../anomalies/{000161.ldb => 000172.ldb} | Bin 6617 -> 6617 bytes packs-system/anomalies/CURRENT | 2 +- packs-system/anomalies/LOG | 26 +++--- packs-system/anomalies/LOG.old | 18 +--- packs-system/anomalies/MANIFEST-000157 | Bin 303 -> 0 bytes packs-system/anomalies/MANIFEST-000168 | Bin 0 -> 281 bytes .../000102.log => anomalies/lost/000164.log} | 0 packs-system/pretires/000068.log | 0 .../pretires/{000049.ldb => 000070.ldb} | Bin packs-system/pretires/CURRENT | 2 +- packs-system/pretires/LOG | 18 ++-- packs-system/pretires/LOG.old | 11 +-- packs-system/pretires/MANIFEST-000058 | Bin 174 -> 0 bytes packs-system/pretires/MANIFEST-000066 | Bin 0 -> 265 bytes packs-system/pretires/lost/000064.log | 0 packs-system/scenes/000110.log | 0 .../scenes/{000091.ldb => 000112.ldb} | Bin packs-system/scenes/CURRENT | 2 +- packs-system/scenes/LOG | 18 ++-- packs-system/scenes/LOG.old | 11 +-- packs-system/scenes/MANIFEST-000100 | Bin 219 -> 0 bytes packs-system/scenes/MANIFEST-000108 | Bin 0 -> 332 bytes packs-system/scenes/lost/000106.log | 0 templates/roll-dialog.hbs | 4 +- 37 files changed, 191 insertions(+), 83 deletions(-) create mode 100644 AGENTS.md rename packs-system/aides-de-jeu/{000099.log => 000107.log} (100%) rename packs-system/aides-de-jeu/{000088.ldb => 000109.ldb} (100%) delete mode 100644 packs-system/aides-de-jeu/MANIFEST-000097 create mode 100644 packs-system/aides-de-jeu/MANIFEST-000105 rename packs-system/{anomalies/000159.log => aides-de-jeu/lost/000103.log} (100%) rename packs-system/{pretires/000060.log => anomalies/000170.log} (100%) rename packs-system/anomalies/{000161.ldb => 000172.ldb} (96%) delete mode 100644 packs-system/anomalies/MANIFEST-000157 create mode 100644 packs-system/anomalies/MANIFEST-000168 rename packs-system/{scenes/000102.log => anomalies/lost/000164.log} (100%) create mode 100644 packs-system/pretires/000068.log rename packs-system/pretires/{000049.ldb => 000070.ldb} (100%) delete mode 100644 packs-system/pretires/MANIFEST-000058 create mode 100644 packs-system/pretires/MANIFEST-000066 create mode 100644 packs-system/pretires/lost/000064.log create mode 100644 packs-system/scenes/000110.log rename packs-system/scenes/{000091.ldb => 000112.ldb} (100%) delete mode 100644 packs-system/scenes/MANIFEST-000100 create mode 100644 packs-system/scenes/MANIFEST-000108 create mode 100644 packs-system/scenes/lost/000106.log diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..6f36498 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,87 @@ +# Copilot Instructions — fvtt-celestopol + +## Project Overview + +This is a **Foundry VTT system** for **Célestopol 1922**, a French tabletop RPG set in an art-deco 1922 universe. The project targets FoundryVTT v13+ and is developed in French. + +The reference rulebooks are in `__regles/` (gitignored): +- *Célestopol 1922 Livre de base* — core rulebook +- *Célestopol 1922 Fiches de prêts à jouer* — pre-generated character sheets + +## Architecture + +This system uses **FoundryVTT v13 DataModels + ApplicationV2** — NOT the legacy template.json / AppV1 approach. + +``` +fvtt-celestopol.mjs # Main entry point (Hooks.once("init")) +module/ + config/system.mjs # All game constants (SYSTEM export) + models/ # TypeDataModel subclasses (character, npc, items) + documents/ # Actor, Item, ChatMessage, Roll wrappers + applications/sheets/ # AppV2 sheets (HandlebarsApplicationMixin) +lang/fr.json # French i18n (key prefix: CELESTOPOL.*) +styles/ # LESS source files +css/ # Compiled CSS (via gulp) +templates/ # Handlebars (.hbs) templates +assets/fonts/ # CopaseticNF art-deco font +assets/ui/ # Background images +assets/icons/ # Item icons +packs-system/ # Source files for compendium packs +``` + +## DataModels (no template.json) + +- Extend `foundry.abstract.TypeDataModel` +- Schema in `static defineSchema()` using `foundry.data.fields.*` +- `prepareDerivedData()` for computed values +- Files: `module/models/character.mjs`, `npc.mjs`, `items.mjs` + +## ApplicationV2 / Sheets + +- Actor sheets: `HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2)` +- Item sheets: `HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2)` +- `static DEFAULT_OPTIONS` for config; `static PARTS` for templates +- `_prepareContext()` for base context; `_preparePartContext(partId, context)` for per-tab +- Edit/Play mode toggle via `_sheetMode` + `isPlayMode`/`isEditMode` getters +- Actions: `static #onXxx(event, target)` private static methods in `DEFAULT_OPTIONS.actions` +- `form: { submitOnChange: true }` enables live saving + +## Roll Mechanics + +- Pool of d6 dice: `nbDice = max(1, skillValue + woundMalus)` +- Formula: `{n}d6 [+ moonBonus + modifier]` +- Moon phase bonus: Nouvelle Lune=0, Croissants=+1, Gibbeuse=+2, Pleine Lune=+3 +- Compare total vs difficulty threshold (normal=7) +- Wound malus: levels 1-2=0, 3-4=-1, 5-6=-2, 7=-3, 8=-999 (out) +- DialogV2 for roll configuration: `foundry.applications.api.DialogV2.wait(...)` + +## Game Data (4 stats × 4 skills) + +- **Âme**: Artifice, Attraction, Coercition, Faveur +- **Corps**: Échauffourée, Effacement, Mobilité, Prouesse +- **Cœur**: Appréciation, Arts, Inspiration, Traque +- **Esprit**: Instruction, Merveilleux technologique, Raisonnement, Traitement + +**Tracks**: Blessures (8 niveaux), Destin (8), Spleen (8) +**Anomalies**: 9 types (none + 8) +**Factions**: 8 standard + 2 custom + +## Build + +```bash +npm install # Install dev deps +npx gulp css # Compile LESS → css/fvtt-celestopol.css (once) +npx gulp # Compile + watch +``` + +## Visual Style + +- Font: **CopaseticNF** (Regular + Bold, in `assets/fonts/`) — art-deco style +- Header bg color: `rgb(12, 76, 12)` (dark green) with orange text (`#e07b00`) +- Sheet header texture: `assets/ui/fond_cadrille.jpg` +- CSS variables: `--cel-green`, `--cel-orange`, `--cel-font-title`, etc. + +## Language + +All in-game text, labels, and code comments should be in **French**. Code identifiers may be English. All i18n keys use the `CELESTOPOL.*` prefix (see `lang/fr.json`). + diff --git a/fvtt-celestopol.mjs b/fvtt-celestopol.mjs index b47692e..c0ca82c 100644 --- a/fvtt-celestopol.mjs +++ b/fvtt-celestopol.mjs @@ -43,6 +43,7 @@ const MOON_EFFECT_FLAG = "moonEffectApplied" const FACTION_ASPECT_STATE_SETTING = "factionAspectState" const PREGENS_IMPORTED_SETTING = "pregensImported" const WELCOME_SCENE_IMPORTED_SETTING = "welcomeSceneImported" +const DEFAULT_ROLL_THRESHOLD_SETTING = "defaultRollThreshold" /* ─── Init hook ──────────────────────────────────────────────────────────── */ @@ -65,6 +66,7 @@ Hooks.once("init", () => { // Expose SYSTEM constants + utilities globales game.celestopol = { SYSTEM, + DEFAULT_ROLL_THRESHOLD_SETTING, rollMoonStandalone: (actor = null) => CelestopolRoll.rollMoonStandalone(actor), manageFactionAspects: (actor = null) => _manageFactionAspects(actor), resetFactionAspects: () => _resetFactionAspects(), @@ -357,6 +359,11 @@ function _registerHandlebarsHelpers() { return false }) + // Helper : récupérer un setting système par son nom + Handlebars.registerHelper("getSetting", (settingName) => { + return game.settings.get(SYSTEM_ID, settingName) + }) + Handlebars.registerHelper("let", function(value, options) { return options.fn({ value }) }) @@ -626,6 +633,22 @@ function _registerSettings() { type: Boolean, default: false, }) + + // Seuil de difficulté par défaut pour les jets normaux (hors combat) + game.settings.register(SYSTEM_ID, DEFAULT_ROLL_THRESHOLD_SETTING, { + name: "CELESTOPOL.Setting.defaultRollThreshold.name", + hint: "CELESTOPOL.Setting.defaultRollThreshold.hint", + scope: "world", + config: true, + type: Number, + default: 11, + range: { + min: 1, + max: 30, + step: 1, + }, + }) + // Suivi de l'import des anomalies (caché) game.settings.register(SYSTEM_ID, "anomaliesImported", { scope: "world", diff --git a/lang/fr.json b/lang/fr.json index cc09186..96b9c5e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -454,6 +454,10 @@ "name": "Lancer le dé de la lune par défaut", "hint": "Cocher automatiquement 'Lancer le dé de la lune' dans les fenêtres de jet" }, + "defaultRollThreshold": { + "name": "Seuil de difficulté par défaut", + "hint": "Valeur du seuil utilisée par défaut pour les jets de compétence hors combat" + }, "migrateOldSystem": { "name": "Migration depuis l'ancien système", "hint": "Importer un personnage exporté depuis l'ancien système Célestopol 1922 (celestopol1922).", diff --git a/module/documents/roll.mjs b/module/documents/roll.mjs index 9432fb1..2a1d5a7 100644 --- a/module/documents/roll.mjs +++ b/module/documents/roll.mjs @@ -294,12 +294,13 @@ export class CelestopolRoll extends Roll { if (!rollContext) return null - // En combat : Corps PNJ = seuil direct ; sinon seuil fixe = 11 + // En combat : Corps PNJ = seuil direct ; sinon seuil configurable via setting const corpsPnj = isCombat ? (parseInt(rollContext.corpsPnj ?? 7) || 7) : null const difficulty = isCombat ? "combat" : "standard" + const defaultThreshold = game.settings.get(game.celestopol.SYSTEM.id, game.celestopol.DEFAULT_ROLL_THRESHOLD_SETTING) const diffConfig = isCombat ? { value: corpsPnj, label: "CELESTOPOL.Combat.corpsPnj" } - : { value: 11, label: "CELESTOPOL.Roll.threshold" } + : { value: defaultThreshold, label: "CELESTOPOL.Roll.threshold" } const autoSuccess = rollContext.modifier === "auto" const modifier = autoSuccess ? 0 : (parseInt(rollContext.modifier ?? 0) || 0) const aspectMod = parseInt(rollContext.aspectModifier ?? 0) || 0 @@ -464,7 +465,7 @@ export class CelestopolRoll extends Roll { /** * Détermine succès/échec selon la marge (total − seuil). - * Seuil : 11 pour les tests normaux, Corps PNJ pour le combat. + * Seuil : configurable via setting pour les tests normaux, Corps PNJ pour le combat. * Pas de succès/échec critique — seul le Dé de la Lune produit des résultats exceptionnels. */ computeResult() { @@ -479,9 +480,10 @@ export class CelestopolRoll extends Roll { this.options.margin = null return } + const defaultThreshold = game.settings.get(game.celestopol.SYSTEM.id, game.celestopol.DEFAULT_ROLL_THRESHOLD_SETTING) const threshold = this.options.isCombat ? (this.options.difficultyValue ?? 0) - : 11 + : defaultThreshold if (threshold === 0) { this.options.resultType = "unknown" this.options.margin = null @@ -510,9 +512,10 @@ export class CelestopolRoll extends Roll { const resultType = this.resultType const diceResults = this.dice[0]?.results?.map(r => r.result) ?? [] const diceSum = diceResults.reduce((a, b) => a + b, 0) + const defaultThreshold = game.settings.get(game.celestopol.SYSTEM.id, game.celestopol.DEFAULT_ROLL_THRESHOLD_SETTING) const threshold = this.options.isCombat ? (this.options.difficultyValue ?? 0) - : 11 + : defaultThreshold const margin = this.options.margin const woundMalus = this.options.woundMalus ?? 0 const armorMalus = this.options.armorMalus ?? 0 @@ -565,12 +568,12 @@ export class CelestopolRoll extends Roll { }) const actorType = rollingActor?.type ?? this.options.actorType ?? null - // Libellé de difficulté : en combat "Corps PNJ : N", en opposition "vs ?", sinon "Seuil : 11" + // Libellé de difficulté : en combat "Corps PNJ : N", en opposition "vs ?", sinon "Seuil : N" const difficultyLabel = this.options.isCombat ? `${game.i18n.localize("CELESTOPOL.Combat.corpsPnj")} : ${threshold}` : isOpposition ? `${game.i18n.localize("CELESTOPOL.Roll.oppositionVs")}` - : `${game.i18n.localize("CELESTOPOL.Roll.threshold")} : 11` + : `${game.i18n.localize("CELESTOPOL.Roll.threshold")} : ${threshold}` return { cssClass: [SYSTEM.id, "dice-roll"].join(" "), diff --git a/packs-system/aides-de-jeu/000099.log b/packs-system/aides-de-jeu/000107.log similarity index 100% rename from packs-system/aides-de-jeu/000099.log rename to packs-system/aides-de-jeu/000107.log diff --git a/packs-system/aides-de-jeu/000088.ldb b/packs-system/aides-de-jeu/000109.ldb similarity index 100% rename from packs-system/aides-de-jeu/000088.ldb rename to packs-system/aides-de-jeu/000109.ldb diff --git a/packs-system/aides-de-jeu/CURRENT b/packs-system/aides-de-jeu/CURRENT index af00d34..2a5d251 100644 --- a/packs-system/aides-de-jeu/CURRENT +++ b/packs-system/aides-de-jeu/CURRENT @@ -1 +1 @@ -MANIFEST-000097 +MANIFEST-000105 diff --git a/packs-system/aides-de-jeu/LOG b/packs-system/aides-de-jeu/LOG index 72109fe..3309221 100644 --- a/packs-system/aides-de-jeu/LOG +++ b/packs-system/aides-de-jeu/LOG @@ -1,7 +1,11 @@ -2026/04/27-22:18:49.718901 7fed937fe6c0 Recovering log #95 -2026/04/27-22:18:49.728863 7fed937fe6c0 Delete type=3 #93 -2026/04/27-22:18:49.728935 7fed937fe6c0 Delete type=0 #95 -2026/04/27-22:29:30.180780 7feb10fff6c0 Level-0 table #100: started -2026/04/27-22:29:30.180810 7feb10fff6c0 Level-0 table #100: 0 bytes OK -2026/04/27-22:29:30.187367 7feb10fff6c0 Delete type=0 #98 -2026/04/27-22:29:30.210881 7feb10fff6c0 Manual compaction at level-0 from '!journal!eNYstmPK0mMmVJYC' @ 72057594037927935 : 1 .. '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.135570 7f381f7fe6c0 Delete type=3 #1 +2026/05/29-18:27:57.110280 7f381e7fc6c0 Level-0 table #108: started +2026/05/29-18:27:57.110317 7f381e7fc6c0 Level-0 table #108: 0 bytes OK +2026/05/29-18:27:57.146936 7f381e7fc6c0 Delete type=0 #106 +2026/05/29-18:27:57.291474 7f381e7fc6c0 Manual compaction at level-0 from '!journal!eNYstmPK0mMmVJYC' @ 72057594037927935 : 1 .. '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 0 : 0; will stop at '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 1 : 1 +2026/05/29-18:27:57.291484 7f381e7fc6c0 Compacting 1@0 + 0@1 files +2026/05/29-18:27:57.308314 7f381e7fc6c0 Generated table #109@0: 6 keys, 5441 bytes +2026/05/29-18:27:57.308348 7f381e7fc6c0 Compacted 1@0 + 0@1 files => 5441 bytes +2026/05/29-18:27:57.339343 7f381e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/05/29-18:27:57.339668 7f381e7fc6c0 Delete type=2 #88 +2026/05/29-18:27:57.450192 7f381e7fc6c0 Manual compaction at level-0 from '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 1 : 1 .. '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 0 : 0; will stop at (end) diff --git a/packs-system/aides-de-jeu/LOG.old b/packs-system/aides-de-jeu/LOG.old index 893583b..3ab1fe6 100644 --- a/packs-system/aides-de-jeu/LOG.old +++ b/packs-system/aides-de-jeu/LOG.old @@ -1,7 +1,4 @@ -2026/04/27-22:04:32.581280 7fed927fc6c0 Recovering log #91 -2026/04/27-22:04:32.591253 7fed927fc6c0 Delete type=3 #89 -2026/04/27-22:04:32.591326 7fed927fc6c0 Delete type=0 #91 -2026/04/27-22:06:50.324351 7feb10fff6c0 Level-0 table #96: started -2026/04/27-22:06:50.324370 7feb10fff6c0 Level-0 table #96: 0 bytes OK -2026/04/27-22:06:50.330761 7feb10fff6c0 Delete type=0 #94 -2026/04/27-22:06:50.339938 7feb10fff6c0 Manual compaction at level-0 from '!journal!eNYstmPK0mMmVJYC' @ 72057594037927935 : 1 .. '!journal.pages!eNYstmPK0mMmVJYC.r9h1ggd3G9hiqYJX' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.120174 7f381f7fe6c0 Log #103: 0 ops saved to Table #104 OK +2026/05/29-18:25:23.120268 7f381f7fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/aides-de-jeu/000103.log: OK +2026/05/29-18:25:23.120320 7f381f7fe6c0 Table #88: 6 entries OK +2026/05/29-18:25:23.123657 7f381f7fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/aides-de-jeu; recovered 1 files; 5441 bytes. Some data may have been lost. **** diff --git a/packs-system/aides-de-jeu/MANIFEST-000097 b/packs-system/aides-de-jeu/MANIFEST-000097 deleted file mode 100644 index 840a9359a8028d40634ee26be9329c3e6905b3f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmWH3IO)iC21Z7yoYb<^oRlOzr^=Gl^338?=ltA)#G=HK{32Ec3&pJb(xSY?9KC|X z^weU-RKLjLlH34qgIwR-Ft12wy&}sD!}RnNV|UAp%)&^o2u4N*FkoklIH;uv(~Y5z lkqx4ZZ1Ycj6o}_wU}Q?-WMEEaVare0vKquq269tb*Z_RFKjr`c diff --git a/packs-system/aides-de-jeu/MANIFEST-000105 b/packs-system/aides-de-jeu/MANIFEST-000105 new file mode 100644 index 0000000000000000000000000000000000000000..1302e50ef4e5cc1ac6547830d60e507ad7f3d90c GIT binary patch literal 334 zcmX?eO+&ASfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfb7;-HqIVpe`>QC?z> zVya(caY=4~w?VFNZkSi3Gb0-V7+Anm=oKWUrxs(V(<`#fFicNRF?P4i$SjQXieO}f zXncG{^&STUBU2V919LVDn_J5Q0}wYG$jxP8yS^-D{W2&wkA;nufoyx&7$Vpib7|@o E0JTzH+yDRo literal 0 HcmV?d00001 diff --git a/packs-system/anomalies/000159.log b/packs-system/aides-de-jeu/lost/000103.log similarity index 100% rename from packs-system/anomalies/000159.log rename to packs-system/aides-de-jeu/lost/000103.log diff --git a/packs-system/pretires/000060.log b/packs-system/anomalies/000170.log similarity index 100% rename from packs-system/pretires/000060.log rename to packs-system/anomalies/000170.log diff --git a/packs-system/anomalies/000161.ldb b/packs-system/anomalies/000172.ldb similarity index 96% rename from packs-system/anomalies/000161.ldb rename to packs-system/anomalies/000172.ldb index c864244539022a6c40e154ea85bb3368e0df8a75..93f76c873f082a8f942e8f2c5dfbc144b70c275b 100644 GIT binary patch delta 33 pcmca1m-%&f+G#-@goeI@3z=oPT&PW~YA5&+6x3#|YE diff --git a/packs-system/anomalies/CURRENT b/packs-system/anomalies/CURRENT index 5df89bd..57112f5 100644 --- a/packs-system/anomalies/CURRENT +++ b/packs-system/anomalies/CURRENT @@ -1 +1 @@ -MANIFEST-000157 +MANIFEST-000168 diff --git a/packs-system/anomalies/LOG b/packs-system/anomalies/LOG index 5e20ca3..e8fc7dd 100644 --- a/packs-system/anomalies/LOG +++ b/packs-system/anomalies/LOG @@ -1,14 +1,12 @@ -2026/04/27-22:18:49.690384 7fed92ffd6c0 Recovering log #154 -2026/04/27-22:18:49.702685 7fed92ffd6c0 Delete type=3 #152 -2026/04/27-22:18:49.702754 7fed92ffd6c0 Delete type=0 #154 -2026/04/27-22:29:30.170390 7feb10fff6c0 Level-0 table #160: started -2026/04/27-22:29:30.173958 7feb10fff6c0 Level-0 table #160: 3524 bytes OK -2026/04/27-22:29:30.180662 7feb10fff6c0 Delete type=0 #158 -2026/04/27-22:29:30.201177 7feb10fff6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 133 : 1 -2026/04/27-22:29:30.201186 7feb10fff6c0 Compacting 1@0 + 1@1 files -2026/04/27-22:29:30.204413 7feb10fff6c0 Generated table #161@0: 9 keys, 6617 bytes -2026/04/27-22:29:30.204438 7feb10fff6c0 Compacted 1@0 + 1@1 files => 6617 bytes -2026/04/27-22:29:30.210527 7feb10fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2026/04/27-22:29:30.210659 7feb10fff6c0 Delete type=2 #156 -2026/04/27-22:29:30.210789 7feb10fff6c0 Delete type=2 #160 -2026/04/27-22:29:30.210920 7feb10fff6c0 Manual compaction at level-0 from '!items!null' @ 133 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.097516 7f381effd6c0 Delete type=3 #1 +2026/05/29-18:27:57.232279 7f381e7fc6c0 Level-0 table #171: started +2026/05/29-18:27:57.253183 7f381e7fc6c0 Level-0 table #171: 3524 bytes OK +2026/05/29-18:27:57.291326 7f381e7fc6c0 Delete type=0 #169 +2026/05/29-18:27:57.404912 7f381e7fc6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 141 : 1 +2026/05/29-18:27:57.404922 7f381e7fc6c0 Compacting 2@0 + 0@1 files +2026/05/29-18:27:57.421172 7f381e7fc6c0 Generated table #172@0: 9 keys, 6617 bytes +2026/05/29-18:27:57.421194 7f381e7fc6c0 Compacted 2@0 + 0@1 files => 6617 bytes +2026/05/29-18:27:57.449840 7f381e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/05/29-18:27:57.449959 7f381e7fc6c0 Delete type=2 #166 +2026/05/29-18:27:57.450112 7f381e7fc6c0 Delete type=2 #171 +2026/05/29-18:27:57.505063 7f381e7fc6c0 Manual compaction at level-0 from '!items!null' @ 141 : 1 .. '!items!null' @ 0 : 0; will stop at (end) diff --git a/packs-system/anomalies/LOG.old b/packs-system/anomalies/LOG.old index 2b53edf..200f23e 100644 --- a/packs-system/anomalies/LOG.old +++ b/packs-system/anomalies/LOG.old @@ -1,14 +1,4 @@ -2026/04/27-22:04:32.549946 7fed937fe6c0 Recovering log #149 -2026/04/27-22:04:32.561235 7fed937fe6c0 Delete type=3 #147 -2026/04/27-22:04:32.561293 7fed937fe6c0 Delete type=0 #149 -2026/04/27-22:06:50.330846 7feb10fff6c0 Level-0 table #155: started -2026/04/27-22:06:50.333934 7feb10fff6c0 Level-0 table #155: 3524 bytes OK -2026/04/27-22:06:50.339817 7feb10fff6c0 Delete type=0 #153 -2026/04/27-22:06:50.339951 7feb10fff6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 129 : 1 -2026/04/27-22:06:50.339958 7feb10fff6c0 Compacting 1@0 + 1@1 files -2026/04/27-22:06:50.343129 7feb10fff6c0 Generated table #156@0: 9 keys, 6617 bytes -2026/04/27-22:06:50.343143 7feb10fff6c0 Compacted 1@0 + 1@1 files => 6617 bytes -2026/04/27-22:06:50.349117 7feb10fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2026/04/27-22:06:50.349224 7feb10fff6c0 Delete type=2 #151 -2026/04/27-22:06:50.349379 7feb10fff6c0 Delete type=2 #155 -2026/04/27-22:06:50.368353 7feb10fff6c0 Manual compaction at level-0 from '!items!null' @ 129 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.059599 7f381effd6c0 Log #164: 0 ops saved to Table #167 OK +2026/05/29-18:25:23.059740 7f381effd6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/anomalies/000164.log: OK +2026/05/29-18:25:23.059875 7f381effd6c0 Table #166: 9 entries OK +2026/05/29-18:25:23.063157 7f381effd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/anomalies; recovered 1 files; 6617 bytes. Some data may have been lost. **** diff --git a/packs-system/anomalies/MANIFEST-000157 b/packs-system/anomalies/MANIFEST-000157 deleted file mode 100644 index 29fa44b3e0ca702f64d97d72608b513bb3d11e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmXrM$Ga_ufss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVSTVCCHMdwXuQVrz zv5^4`*csAGIByxq3CRZh;6-e_9{06Bhx&fBIfyw zEG>+`r!alD1d7ZDi7aGf>0o4MSipEh8bx;p786?`VtsP|0+M0+7lHJnxf!aC4QMJG O(B15e3rTf5)OG-BFisl) diff --git a/packs-system/anomalies/MANIFEST-000168 b/packs-system/anomalies/MANIFEST-000168 new file mode 100644 index 0000000000000000000000000000000000000000..eee4ea2c6e1d8be8dc2f2023c509889ed4da64b1 GIT binary patch literal 281 zcmeadc3Cxyfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfb-8RJc3dBx0<)ZAjl z#Jv1mpj@tReo;xWfq@|-Cj%G=L*?^Ib8;AaAYz;AMPs-b7@1ZA6)~@3Wa(kd@^Nyp z1d6NziL7B{nZU@-u$u9RG>YyCSWN7Nh&{}j!<7uvzZRsQl>tRB)MhrIo7sRSvoo$C I)$LH*0Ug*!YXATM literal 0 HcmV?d00001 diff --git a/packs-system/scenes/000102.log b/packs-system/anomalies/lost/000164.log similarity index 100% rename from packs-system/scenes/000102.log rename to packs-system/anomalies/lost/000164.log diff --git a/packs-system/pretires/000068.log b/packs-system/pretires/000068.log new file mode 100644 index 0000000..e69de29 diff --git a/packs-system/pretires/000049.ldb b/packs-system/pretires/000070.ldb similarity index 100% rename from packs-system/pretires/000049.ldb rename to packs-system/pretires/000070.ldb diff --git a/packs-system/pretires/CURRENT b/packs-system/pretires/CURRENT index 717cf9a..7873dc6 100644 --- a/packs-system/pretires/CURRENT +++ b/packs-system/pretires/CURRENT @@ -1 +1 @@ -MANIFEST-000058 +MANIFEST-000066 diff --git a/packs-system/pretires/LOG b/packs-system/pretires/LOG index 2481ce1..38482c5 100644 --- a/packs-system/pretires/LOG +++ b/packs-system/pretires/LOG @@ -1,7 +1,11 @@ -2026/04/27-22:18:49.704865 7fed93fff6c0 Recovering log #56 -2026/04/27-22:18:49.714938 7fed93fff6c0 Delete type=3 #54 -2026/04/27-22:18:49.714987 7fed93fff6c0 Delete type=0 #56 -2026/04/27-22:29:30.194650 7feb10fff6c0 Level-0 table #61: started -2026/04/27-22:29:30.194677 7feb10fff6c0 Level-0 table #61: 0 bytes OK -2026/04/27-22:29:30.201065 7feb10fff6c0 Delete type=0 #59 -2026/04/27-22:29:30.210910 7feb10fff6c0 Manual compaction at level-0 from '!actors!6RZ6IzJUHm4dB5Ut' @ 72057594037927935 : 1 .. '!folders!MbFQgPdF6Gtbj5AU' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.116810 7f381ffff6c0 Delete type=3 #1 +2026/05/29-18:27:57.533567 7f381e7fc6c0 Level-0 table #69: started +2026/05/29-18:27:57.533614 7f381e7fc6c0 Level-0 table #69: 0 bytes OK +2026/05/29-18:27:57.568380 7f381e7fc6c0 Delete type=0 #67 +2026/05/29-18:27:57.662122 7f381e7fc6c0 Manual compaction at level-0 from '!actors!6RZ6IzJUHm4dB5Ut' @ 72057594037927935 : 1 .. '!folders!MbFQgPdF6Gtbj5AU' @ 0 : 0; will stop at '!folders!MbFQgPdF6Gtbj5AU' @ 37 : 1 +2026/05/29-18:27:57.662130 7f381e7fc6c0 Compacting 1@0 + 0@1 files +2026/05/29-18:27:57.681906 7f381e7fc6c0 Generated table #70@0: 36 keys, 35733 bytes +2026/05/29-18:27:57.681939 7f381e7fc6c0 Compacted 1@0 + 0@1 files => 35733 bytes +2026/05/29-18:27:57.724776 7f381e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/05/29-18:27:57.724885 7f381e7fc6c0 Delete type=2 #49 +2026/05/29-18:27:57.817815 7f381e7fc6c0 Manual compaction at level-0 from '!folders!MbFQgPdF6Gtbj5AU' @ 37 : 1 .. '!folders!MbFQgPdF6Gtbj5AU' @ 0 : 0; will stop at (end) diff --git a/packs-system/pretires/LOG.old b/packs-system/pretires/LOG.old index a35230d..194bf64 100644 --- a/packs-system/pretires/LOG.old +++ b/packs-system/pretires/LOG.old @@ -1,7 +1,4 @@ -2026/04/27-22:04:32.565909 7fed92ffd6c0 Recovering log #52 -2026/04/27-22:04:32.576099 7fed92ffd6c0 Delete type=3 #50 -2026/04/27-22:04:32.576173 7fed92ffd6c0 Delete type=0 #52 -2026/04/27-22:06:50.318454 7feb10fff6c0 Level-0 table #57: started -2026/04/27-22:06:50.318473 7feb10fff6c0 Level-0 table #57: 0 bytes OK -2026/04/27-22:06:50.324288 7feb10fff6c0 Delete type=0 #55 -2026/04/27-22:06:50.339928 7feb10fff6c0 Manual compaction at level-0 from '!actors!6RZ6IzJUHm4dB5Ut' @ 72057594037927935 : 1 .. '!folders!MbFQgPdF6Gtbj5AU' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.101143 7f381ffff6c0 Log #64: 0 ops saved to Table #65 OK +2026/05/29-18:25:23.101233 7f381ffff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/pretires/000064.log: OK +2026/05/29-18:25:23.101342 7f381ffff6c0 Table #49: 36 entries OK +2026/05/29-18:25:23.105539 7f381ffff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/pretires; recovered 1 files; 35733 bytes. Some data may have been lost. **** diff --git a/packs-system/pretires/MANIFEST-000058 b/packs-system/pretires/MANIFEST-000058 deleted file mode 100644 index ce9ffd23a2c71a1b6059b900728461c920abdd4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmcED_q(u@fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVQ86t)CndG0SkX7h zEigSG#m&sUBq__(F_cl20Swp~4W~|LQcz4x25Kl)Gz*F{^Q`g;^~g0zaWV}pVbp>s iBW%!=X+9G<7#NwXIT@I3SUehkI-dh^ZGc=m77qa504|~c diff --git a/packs-system/pretires/MANIFEST-000066 b/packs-system/pretires/MANIFEST-000066 new file mode 100644 index 0000000000000000000000000000000000000000..512aaeafad47d08dd91a7462369feee51987eeaf GIT binary patch literal 265 zcmdN-T758;fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfc|aO!j>1;xZeDp) 1746 bytes +2026/05/29-18:27:57.404742 7f381e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/05/29-18:27:57.404821 7f381e7fc6c0 Delete type=2 #91 +2026/05/29-18:27:57.505039 7f381e7fc6c0 Manual compaction at level-0 from '!scenes.levels!X3XJg7raEXtOFOtj.defaultLevel0000' @ 61 : 1 .. '!scenes.levels!X3XJg7raEXtOFOtj.defaultLevel0000' @ 0 : 0; will stop at (end) diff --git a/packs-system/scenes/LOG.old b/packs-system/scenes/LOG.old index bc89d1f..dd034a0 100644 --- a/packs-system/scenes/LOG.old +++ b/packs-system/scenes/LOG.old @@ -1,7 +1,4 @@ -2026/04/27-22:04:32.595481 7fed93fff6c0 Recovering log #94 -2026/04/27-22:04:32.606129 7fed93fff6c0 Delete type=3 #92 -2026/04/27-22:04:32.606193 7fed93fff6c0 Delete type=0 #94 -2026/04/27-22:06:50.312356 7feb10fff6c0 Level-0 table #99: started -2026/04/27-22:06:50.312415 7feb10fff6c0 Level-0 table #99: 0 bytes OK -2026/04/27-22:06:50.318377 7feb10fff6c0 Delete type=0 #97 -2026/04/27-22:06:50.339915 7feb10fff6c0 Manual compaction at level-0 from '!scenes!0iGCRqkdJKjmmbl4' @ 72057594037927935 : 1 .. '!scenes.levels!X3XJg7raEXtOFOtj.defaultLevel0000' @ 0 : 0; will stop at (end) +2026/05/29-18:25:23.139385 7f381ffff6c0 Log #106: 0 ops saved to Table #107 OK +2026/05/29-18:25:23.139489 7f381ffff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/scenes/000106.log: OK +2026/05/29-18:25:23.139532 7f381ffff6c0 Table #91: 4 entries OK +2026/05/29-18:25:23.142713 7f381ffff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-celestopol/packs-system/scenes; recovered 1 files; 1746 bytes. Some data may have been lost. **** diff --git a/packs-system/scenes/MANIFEST-000100 b/packs-system/scenes/MANIFEST-000100 deleted file mode 100644 index 5ee591405155fb165137dc2fa8a0f1e123d9051e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmd0~T=;q$10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei18!g<^4XYF=uw9#~Pa zVuW#oSGsvoqH9EnzngzamR?F~T4HHVi4VvO10Z0uWdH+q#^_7D3Q*mO2AS^8L50~V tUfx-`xk))Dj5ZKeWE=0Tsbj{$z{r%!$-tb(VmG0~p&P_a19CH1>;O?{KQ#aV diff --git a/packs-system/scenes/MANIFEST-000108 b/packs-system/scenes/MANIFEST-000108 new file mode 100644 index 0000000000000000000000000000000000000000..8796bee44a3e1be65c8ddc5bc87f1fa6fcf001f5 GIT binary patch literal 332 zcmX>(xA1T^10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1uE^d(*e#p2}DywqYv zgG_hlpu+4FFYm0}+@u^6MjHk&uz)Ji0~=JV7-1aYm2O^?=o(St@8(~UrI(VLmROoo z;sdhB00 - {{!-- Difficulté : Corps PNJ en combat, fixe 11 en test normal --}} + {{!-- Difficulté : Corps PNJ en combat, configurable via setting en test normal --}} {{#if isCombat}} {{!-- Sélecteur de cible PNJ (si des tokens NPCs sont disponibles) --}} @@ -81,7 +81,7 @@ {{else}}
- 11 + {{getSetting "defaultRollThreshold"}}
{{!-- Test en opposition : le résultat sera masqué, MJ décide --}}