From 7a2be0cc0ecd79eb31066d409943adf1e1ecde11 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Sat, 11 Apr 2026 15:29:44 +0200 Subject: [PATCH] Update compendium and welcom chat message --- fvtt-celestopol.mjs | 79 +++++++++++++++++- lang/fr.json | 9 ++ packs-system/aides-de-jeu/000005.ldb | Bin 0 -> 5441 bytes .../000030.log => aides-de-jeu/000024.log} | 0 packs-system/aides-de-jeu/CURRENT | 1 + packs-system/aides-de-jeu/LOCK | 0 packs-system/aides-de-jeu/LOG | 8 ++ packs-system/aides-de-jeu/LOG.old | 8 ++ packs-system/aides-de-jeu/MANIFEST-000022 | Bin 0 -> 161 bytes packs-system/anomalies/000060.log | 0 .../anomalies/{000032.ldb => 000062.ldb} | Bin 6617 -> 6617 bytes packs-system/anomalies/CURRENT | 2 +- packs-system/anomalies/LOG | 30 +++---- packs-system/anomalies/LOG.old | 30 +++---- packs-system/anomalies/MANIFEST-000028 | Bin 289 -> 0 bytes packs-system/anomalies/MANIFEST-000058 | Bin 0 -> 289 bytes packs-system/scenes/000017.log | 0 packs-system/scenes/000019.ldb | Bin 0 -> 3095 bytes packs-system/scenes/CURRENT | 1 + packs-system/scenes/LOCK | 0 packs-system/scenes/LOG | 15 ++++ packs-system/scenes/LOG.old | 8 ++ packs-system/scenes/MANIFEST-000015 | Bin 0 -> 719 bytes styles/roll.less | 78 +++++++++++++++++ system.json | 19 ++++- 25 files changed, 254 insertions(+), 34 deletions(-) create mode 100644 packs-system/aides-de-jeu/000005.ldb rename packs-system/{anomalies/000030.log => aides-de-jeu/000024.log} (100%) create mode 100644 packs-system/aides-de-jeu/CURRENT create mode 100644 packs-system/aides-de-jeu/LOCK create mode 100644 packs-system/aides-de-jeu/LOG create mode 100644 packs-system/aides-de-jeu/LOG.old create mode 100644 packs-system/aides-de-jeu/MANIFEST-000022 create mode 100644 packs-system/anomalies/000060.log rename packs-system/anomalies/{000032.ldb => 000062.ldb} (96%) delete mode 100644 packs-system/anomalies/MANIFEST-000028 create mode 100644 packs-system/anomalies/MANIFEST-000058 create mode 100644 packs-system/scenes/000017.log create mode 100644 packs-system/scenes/000019.ldb create mode 100644 packs-system/scenes/CURRENT create mode 100644 packs-system/scenes/LOCK create mode 100644 packs-system/scenes/LOG create mode 100644 packs-system/scenes/LOG.old create mode 100644 packs-system/scenes/MANIFEST-000015 diff --git a/fvtt-celestopol.mjs b/fvtt-celestopol.mjs index 9df2ac3..c56a1d4 100644 --- a/fvtt-celestopol.mjs +++ b/fvtt-celestopol.mjs @@ -40,6 +40,7 @@ import { const DAMAGE_APPLICATION_FLAG = "damageApplication" const FACTION_ASPECT_STATE_SETTING = "factionAspectState" +const WELCOME_SCENE_IMPORTED_SETTING = "welcomeSceneImported" /* ─── Init hook ──────────────────────────────────────────────────────────── */ @@ -156,7 +157,7 @@ Hooks.once("init", () => { /* ─── Ready hook ─────────────────────────────────────────────────────────── */ -Hooks.once("ready", () => { +Hooks.once("ready", async () => { console.log(`${SYSTEM_ID} | System ready`) // Socket handler for GM-only operations (e.g. wound application) @@ -179,7 +180,10 @@ Hooks.once("ready", () => { _migrateObsoleteItems() _migrateIntegerTracks() _setupAnomaliesFolder() + await _setupWelcomeScene() } + + await _createWelcomeChatMessage() }) /** Supprime les items dont le type n'est plus reconnu par le système. */ @@ -349,6 +353,79 @@ function _registerSettings() { type: Object, default: _getDefaultFactionAspectState(), }) + game.settings.register(SYSTEM_ID, WELCOME_SCENE_IMPORTED_SETTING, { + scope: "world", + config: false, + type: Boolean, + default: false, + }) +} + +async function _createWelcomeChatMessage() { + const activeGM = game.users.activeGM + if (!game.user.isGM || (activeGM && activeGM.id !== game.user.id)) return + + const helpPack = game.packs.get(`${SYSTEM_ID}.aides-de-jeu`) + const helpDocs = helpPack ? await helpPack.getDocuments() : [] + const helpEntry = helpDocs[0] ?? null + const helpReference = helpEntry + ? `@UUID[${helpEntry.uuid}]{${helpEntry.name}}` + : `**${helpPack?.metadata?.label ?? game.i18n.localize("CELESTOPOL.Welcome.helpFallback")}**` + const rawContent = ` +
+
+ + ${game.i18n.localize("CELESTOPOL.Welcome.title")} +
+
+

${game.i18n.localize("CELESTOPOL.Welcome.intro")}

+
+ ${game.i18n.localize("CELESTOPOL.Welcome.helpLabel")} + ${game.i18n.format("CELESTOPOL.Welcome.helpCompendium", { help: helpReference })} +
+
+ ${game.i18n.localize("CELESTOPOL.Welcome.bookLabel")} + ${game.i18n.localize("CELESTOPOL.Welcome.bookLinkLabel")} +
+
+
+ ` + + await ChatMessage.create({ + style: CONST.CHAT_MESSAGE_STYLES.OOC, + speaker: { alias: game.system.title }, + content: await foundry.applications.ux.TextEditor.implementation.enrichHTML(rawContent, { async: true }), + }) +} + +async function _setupWelcomeScene() { + const activeGM = game.users.activeGM + if (!game.user.isGM || (activeGM && activeGM.id !== game.user.id)) return + if (game.settings.get(SYSTEM_ID, WELCOME_SCENE_IMPORTED_SETTING)) return + + const sceneName = "Accueil Celestopol 1922" + let scene = game.scenes.getName(sceneName) + + if (!scene) { + const pack = game.packs.get(`${SYSTEM_ID}.scenes`) + if (!pack) { + console.warn(`${SYSTEM_ID} | Compendium de scènes introuvable`) + return + } + + const docs = await pack.getDocuments() + const sourceScene = docs.find(doc => doc.name === sceneName) + if (!sourceScene) { + console.warn(`${SYSTEM_ID} | Scène d'accueil introuvable dans le compendium`) + return + } + + scene = await Scene.create(sourceScene.toObject()) + } + + await scene.activate() + await scene.view() + await game.settings.set(SYSTEM_ID, WELCOME_SCENE_IMPORTED_SETTING, true) } /* ─── Template preload ───────────────────────────────────────────────────── */ diff --git a/lang/fr.json b/lang/fr.json index e50480a..895a0a8 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -404,6 +404,15 @@ "hint": "Cocher automatiquement 'Lancer le dé de la lune' dans les fenêtres de jet" } }, + "Welcome": { + "title": "Bienvenue dans Célestopol 1922", + "intro": "Bienvenue dans le système FoundryVTT de Célestopol 1922.", + "helpLabel": "Aide de jeu", + "helpCompendium": "Une aide de jeu est disponible dans le compendium : {help}.", + "bookLabel": "Livre de base", + "helpFallback": "Célestopol 1922 — Aides de jeu", + "bookLinkLabel": "Voir le livre de base sur le site d’Antre-Monde Éditions" + }, "ChatCard": { "rollFor": "Jet de {skill} ({stat})" }, diff --git a/packs-system/aides-de-jeu/000005.ldb b/packs-system/aides-de-jeu/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..633c6614a3d90e14312ddb803d40bfc06f1136eb GIT binary patch literal 5441 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 delta 33 pcmcaW>1m-%&f+G#-@goeI@3z2woA(pZr1MB>=;~3*Z0% diff --git a/packs-system/anomalies/CURRENT b/packs-system/anomalies/CURRENT index 5d0fffb..717cf9a 100644 --- a/packs-system/anomalies/CURRENT +++ b/packs-system/anomalies/CURRENT @@ -1 +1 @@ -MANIFEST-000028 +MANIFEST-000058 diff --git a/packs-system/anomalies/LOG b/packs-system/anomalies/LOG index fa0b0f1..64a1a26 100644 --- a/packs-system/anomalies/LOG +++ b/packs-system/anomalies/LOG @@ -1,15 +1,15 @@ -2026/04/11-14:57:57.789089 7f20ee3ff6c0 Recovering log #25 -2026/04/11-14:57:57.798668 7f20ee3ff6c0 Delete type=3 #23 -2026/04/11-14:57:57.798745 7f20ee3ff6c0 Delete type=0 #25 -2026/04/11-14:58:32.475719 7f1e4ffff6c0 Level-0 table #31: started -2026/04/11-14:58:32.479327 7f1e4ffff6c0 Level-0 table #31: 3524 bytes OK -2026/04/11-14:58:32.485215 7f1e4ffff6c0 Delete type=0 #29 -2026/04/11-14:58:32.485355 7f1e4ffff6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at (end) -2026/04/11-14:58:32.485398 7f1e4ffff6c0 Manual compaction at level-1 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 29 : 1 -2026/04/11-14:58:32.485404 7f1e4ffff6c0 Compacting 1@1 + 1@2 files -2026/04/11-14:58:32.488550 7f1e4ffff6c0 Generated table #32@1: 9 keys, 6617 bytes -2026/04/11-14:58:32.488570 7f1e4ffff6c0 Compacted 1@1 + 1@2 files => 6617 bytes -2026/04/11-14:58:32.494415 7f1e4ffff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/04/11-14:58:32.494503 7f1e4ffff6c0 Delete type=2 #27 -2026/04/11-14:58:32.494598 7f1e4ffff6c0 Delete type=2 #31 -2026/04/11-14:58:32.513712 7f1e4ffff6c0 Manual compaction at level-1 from '!items!null' @ 29 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/04/11-15:27:57.608051 7ff3bf3fe6c0 Recovering log #55 +2026/04/11-15:27:57.617618 7ff3bf3fe6c0 Delete type=3 #53 +2026/04/11-15:27:57.617668 7ff3bf3fe6c0 Delete type=0 #55 +2026/04/11-15:29:26.012403 7ff3bdbfb6c0 Level-0 table #61: started +2026/04/11-15:29:26.015819 7ff3bdbfb6c0 Level-0 table #61: 3524 bytes OK +2026/04/11-15:29:26.022024 7ff3bdbfb6c0 Delete type=0 #59 +2026/04/11-15:29:26.034975 7ff3bdbfb6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/04/11-15:29:26.044411 7ff3bdbfb6c0 Manual compaction at level-1 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 53 : 1 +2026/04/11-15:29:26.044420 7ff3bdbfb6c0 Compacting 1@1 + 1@2 files +2026/04/11-15:29:26.047715 7ff3bdbfb6c0 Generated table #62@1: 9 keys, 6617 bytes +2026/04/11-15:29:26.047736 7ff3bdbfb6c0 Compacted 1@1 + 1@2 files => 6617 bytes +2026/04/11-15:29:26.054365 7ff3bdbfb6c0 compacted to: files[ 0 0 1 0 0 0 0 ] +2026/04/11-15:29:26.054474 7ff3bdbfb6c0 Delete type=2 #57 +2026/04/11-15:29:26.054607 7ff3bdbfb6c0 Delete type=2 #61 +2026/04/11-15:29:26.064047 7ff3bdbfb6c0 Manual compaction at level-1 from '!items!null' @ 53 : 1 .. '!items!null' @ 0 : 0; will stop at (end) diff --git a/packs-system/anomalies/LOG.old b/packs-system/anomalies/LOG.old index f817ac7..3acc276 100644 --- a/packs-system/anomalies/LOG.old +++ b/packs-system/anomalies/LOG.old @@ -1,15 +1,15 @@ -2026/04/11-09:06:09.549060 7f20edbfe6c0 Recovering log #20 -2026/04/11-09:06:09.559919 7f20edbfe6c0 Delete type=3 #18 -2026/04/11-09:06:09.559969 7f20edbfe6c0 Delete type=0 #20 -2026/04/11-14:57:53.882273 7f1e4ffff6c0 Level-0 table #26: started -2026/04/11-14:57:53.885416 7f1e4ffff6c0 Level-0 table #26: 3524 bytes OK -2026/04/11-14:57:53.891947 7f1e4ffff6c0 Delete type=0 #24 -2026/04/11-14:57:53.892102 7f1e4ffff6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at (end) -2026/04/11-14:57:53.902087 7f1e4ffff6c0 Manual compaction at level-1 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 25 : 1 -2026/04/11-14:57:53.902094 7f1e4ffff6c0 Compacting 1@1 + 1@2 files -2026/04/11-14:57:53.905146 7f1e4ffff6c0 Generated table #27@1: 9 keys, 6617 bytes -2026/04/11-14:57:53.905170 7f1e4ffff6c0 Compacted 1@1 + 1@2 files => 6617 bytes -2026/04/11-14:57:53.911010 7f1e4ffff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/04/11-14:57:53.911117 7f1e4ffff6c0 Delete type=2 #22 -2026/04/11-14:57:53.911253 7f1e4ffff6c0 Delete type=2 #26 -2026/04/11-14:57:53.928122 7f1e4ffff6c0 Manual compaction at level-1 from '!items!null' @ 25 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/04/11-15:27:20.551914 7f20ee3ff6c0 Recovering log #50 +2026/04/11-15:27:20.562310 7f20ee3ff6c0 Delete type=3 #48 +2026/04/11-15:27:20.562396 7f20ee3ff6c0 Delete type=0 #50 +2026/04/11-15:27:31.313674 7f1e4ffff6c0 Level-0 table #56: started +2026/04/11-15:27:31.317287 7f1e4ffff6c0 Level-0 table #56: 3524 bytes OK +2026/04/11-15:27:31.323440 7f1e4ffff6c0 Delete type=0 #54 +2026/04/11-15:27:31.336770 7f1e4ffff6c0 Manual compaction at level-0 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at (end) +2026/04/11-15:27:31.336813 7f1e4ffff6c0 Manual compaction at level-1 from '!items!anomCommMorts001' @ 72057594037927935 : 1 .. '!items!null' @ 0 : 0; will stop at '!items!null' @ 49 : 1 +2026/04/11-15:27:31.336819 7f1e4ffff6c0 Compacting 1@1 + 1@2 files +2026/04/11-15:27:31.340181 7f1e4ffff6c0 Generated table #57@1: 9 keys, 6617 bytes +2026/04/11-15:27:31.340207 7f1e4ffff6c0 Compacted 1@1 + 1@2 files => 6617 bytes +2026/04/11-15:27:31.346883 7f1e4ffff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] +2026/04/11-15:27:31.346998 7f1e4ffff6c0 Delete type=2 #52 +2026/04/11-15:27:31.347109 7f1e4ffff6c0 Delete type=2 #56 +2026/04/11-15:27:31.353403 7f1e4ffff6c0 Manual compaction at level-1 from '!items!null' @ 49 : 1 .. '!items!null' @ 0 : 0; will stop at (end) diff --git a/packs-system/anomalies/MANIFEST-000028 b/packs-system/anomalies/MANIFEST-000028 deleted file mode 100644 index f9e48bd9cf9a0e856ef43cbfadc2422525f7021d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcma$4|7~_Q10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199uwrIOYHqP&UTIDa zqa*_uuro>DG?s@-BrbU}uy+B8{R=0gF+x5HaOE(a2b+UPTrKG>1YJu`$ZCF-fyCDUj$~ GsJ#G;I79*f diff --git a/packs-system/anomalies/MANIFEST-000058 b/packs-system/anomalies/MANIFEST-000058 new file mode 100644 index 0000000000000000000000000000000000000000..4e7ceec364f99c1ad157829f3a925eb9d58e3d4d GIT binary patch literal 289 zcmd0}TxFKcz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nte9Dnnp>=xSDKT< zXvhEt>`az7jpd;diFx_CKn=OR`9&qg1_p+VoDfAQ8ciT#kN145=3roCvgTx9wqY>| zkALKA3gp@VxppiT?2NWYq*1h4U@^)RB4(9V$QBFLYtLeV=1{02Hbz@ECQEiEI})7> GwHE-fDn)Go literal 0 HcmV?d00001 diff --git a/packs-system/scenes/000017.log b/packs-system/scenes/000017.log new file mode 100644 index 0000000..e69de29 diff --git a/packs-system/scenes/000019.ldb b/packs-system/scenes/000019.ldb new file mode 100644 index 0000000000000000000000000000000000000000..451651d265f56ac3f0bd3a101af34c4bf2278584 GIT binary patch literal 3095 zcma)84{RIN8Go<6YwsL8*pbsFAu0AHfx6g^?Zi&vrO}*{eGR#QeaZRG zxj#vq%vz(Vn}Bs}YzT^IMb?#)iLOwX#>OTgI_r33Ze}2F3-mB-4?~K!Lh*YJ9f2ZE6^v+LA$A-H{mA%8WxDm1Ve9xkw zk~|fXLP``ZDl5JnRH25c6*R>cZI8u-ARL&Lv&57&RY+!tV$h&q=B#`ggyu9|k&Gsh z;ua@Jgm80h6EO^G8cqB{UsEp~jLh{Y^J86Y>Af?G7Bcbn^E2T&nl6CeIaxAuLK1F? z1ce-xvpExXkv7;Bh$P8sR!By|v3O9BRoRq@A|w}uc{mbpha*KH+13&Z3Wi7&us;%R zYe|%XLROb0`ud(-ej!TgwmOX3)qRKwMY@&b?@`@Ncyg;w<{)_Bp8Yq5 zKETdgd4$bzk#DwuuwIVy2{*! zW~q|P>DFmh*4Qyj7+LW&IOm9>xaz$Hg%lOpKhxjqaibC38$IWq(kxvi&3uFF3ST$8 zwz!*Qsppz6&rxFLs2y3jIio2OcJj?!Mj`m^+C_NtBt#ZJ+OY@;kS|bGlCAs*s3HzN zs}5du3-b@|$y5N!!J$J;@(Q8Y}N?}vB`nOV~eiFX{S ztcxWO6A6>!K2ZlNs5B}sJsXL(w#M6|Es$%WKGuS7G%Qu^QTN+K@VTsrwBZb+B> zLr%!~$)!7x(0McK0}&#c@+`F;=L}8fN0CDQ>_6|Bq8}}Nufg^{D9f08=^nNWO~8~_ zu4cC}Lb9hFxgo`MLdKE2bdrP8I$0lmV&=C@G`@T-f0uJeRf?{AAa^!K-&r5#@9G-a zfWjd+`xSg2gBzX}8MNs7xYLK8KHz_3s*^``CJMPcZm6OzQhtcD5i(8msQ-#uVw$>~w#;%D&w;O3o7Q=rA6VYx%w(uoUc>nSX$>nqMa4#E_dgB~9(m9e-D;;7V9+4Zr&p`dV$C}a zCK?Q%!hD{d<;ytWkcrpW?^guMm|0q0TZU5X-}!?mc=VPdjTJ-O!QF{n%5b)=`MRjt zKYU$c0jf49OA=LIc;nb}wMLHEq}KB8+0I9pr6Y%^ViLfK9i!QnVpn%GCJ#~?9UcQA znhRS48!m*{|MS-sVmpR*?QA8vk%`{!u93ds2)!x9F29=$v7LvRUxYf8 ze46f{Mk2e=etoQUzVD$B(-u1!V&W0F;&_OyMKG{E&&J79_isFZ6B@b=f7btm*GSq3 zOSaSgs~HMk&QRgYor-;+7{;P7X*U>aP7nLg`A+cmMcjw31EMbj1K7+bbWMy#cj&3+ z*5T%%Y(%weh^2Pw*nPu(*Z}t7K)c>G z+BFkiRQnn28tkLKOT0UHa^OEW_fq@1M!f@(a0D#6NURdjES0*7o~J%1Sh8T#uV znty|Y^%+?)sU8MWqKcFbcUiEP)h 3095 bytes +2026/04/11-15:29:26.044152 7ff3bdbfb6c0 compacted to: files[ 0 0 1 0 0 0 0 ] +2026/04/11-15:29:26.044236 7ff3bdbfb6c0 Delete type=2 #10 +2026/04/11-15:29:26.044341 7ff3bdbfb6c0 Delete type=2 #18 +2026/04/11-15:29:26.064030 7ff3bdbfb6c0 Manual compaction at level-1 from '!scenes.tokens.delta.items!Jr7lGxYk2RETlXRv.6urwC5SVcou6UOAG.CTg4yBE12iMee1RU.BYT1CrA37R3Og0nu' @ 31 : 1 .. '!scenes.tokens.delta.items!Jr7lGxYk2RETlXRv.6urwC5SVcou6UOAG.CTg4yBE12iMee1RU.BYT1CrA37R3Og0nu' @ 0 : 0; will stop at (end) diff --git a/packs-system/scenes/LOG.old b/packs-system/scenes/LOG.old new file mode 100644 index 0000000..8b2d7a4 --- /dev/null +++ b/packs-system/scenes/LOG.old @@ -0,0 +1,8 @@ +2026/04/11-15:27:20.576678 7f20ecbfc6c0 Recovering log #8 +2026/04/11-15:27:20.586717 7f20ecbfc6c0 Delete type=3 #6 +2026/04/11-15:27:20.586780 7f20ecbfc6c0 Delete type=0 #8 +2026/04/11-15:27:31.330627 7f1e4ffff6c0 Level-0 table #14: started +2026/04/11-15:27:31.330649 7f1e4ffff6c0 Level-0 table #14: 0 bytes OK +2026/04/11-15:27:31.336642 7f1e4ffff6c0 Delete type=0 #12 +2026/04/11-15:27:31.336792 7f1e4ffff6c0 Manual compaction at level-0 from '!scenes!Jr7lGxYk2RETlXRv' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!Jr7lGxYk2RETlXRv.6urwC5SVcou6UOAG.CTg4yBE12iMee1RU.BYT1CrA37R3Og0nu' @ 0 : 0; will stop at (end) +2026/04/11-15:27:31.347189 7f1e4ffff6c0 Manual compaction at level-1 from '!scenes!Jr7lGxYk2RETlXRv' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!Jr7lGxYk2RETlXRv.6urwC5SVcou6UOAG.CTg4yBE12iMee1RU.BYT1CrA37R3Og0nu' @ 0 : 0; will stop at (end) diff --git a/packs-system/scenes/MANIFEST-000015 b/packs-system/scenes/MANIFEST-000015 new file mode 100644 index 0000000000000000000000000000000000000000..a2d6735e8ab300d054e9b1d5d3594765605bac71 GIT binary patch literal 719 zcmeD9WhgJi$jB&_lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P9ordXVunwMIvSCXHd znpdoslA2SJsFzuinp>>sRb-yyUJ;pX6yzF`6A@IVXI5HN?ra(ymYiQ|7V7WluIC(* zZc^#wYG{<{o0@7E6sqSG8Di*MA57=_rFxY(J52TxD{0HQk0>;M1& literal 0 HcmV?d00001 diff --git a/styles/roll.less b/styles/roll.less index 9d8a185..7ff5d7a 100644 --- a/styles/roll.less +++ b/styles/roll.less @@ -899,6 +899,84 @@ } } +.chat-message .cel-welcome-message { + border: 1px solid var(--cel-border, #7a5c20); + border-radius: 4px; + overflow: hidden; + background: linear-gradient(180deg, rgba(255,248,232,0.98), rgba(240,229,209,0.95)); + font-family: var(--cel-font-body, "Palatino Linotype", serif); + + .welcome-header { + display: flex; + align-items: center; + gap: 8px; + padding: 7px 10px; + background: var(--cel-green, #0c4c0c); + background-image: url("../assets/ui/fond_cadrille.jpg"); + background-blend-mode: soft-light; + border-bottom: 2px solid var(--cel-orange, #e07b00); + } + + .welcome-mark { + color: var(--cel-orange, #e07b00); + font-size: 1.05em; + line-height: 1; + } + + .welcome-title { + font-family: var(--cel-font-title, "CopaseticNF", serif); + color: var(--cel-orange, #e07b00); + font-size: 0.98em; + letter-spacing: 0.05em; + text-transform: uppercase; + } + + .welcome-body { + padding: 9px 11px 10px; + color: #3f3623; + font-size: 0.84em; + line-height: 1.45; + + p { + margin: 0 0 8px; + } + } + + .welcome-note { + margin-top: 7px; + padding: 6px 8px; + border: 1px solid rgba(122,92,32,0.2); + border-radius: 4px; + background: rgba(255,255,255,0.5); + } + + .welcome-label { + display: block; + margin-bottom: 2px; + color: var(--cel-border, #7a5c20); + font-size: 0.72em; + font-weight: bold; + letter-spacing: 0.05em; + text-transform: uppercase; + } + + .welcome-value { + color: var(--cel-green, #0c4c0c); + } + + a.content-link, + a[href] { + color: var(--cel-orange, #e07b00); + font-weight: bold; + text-decoration: none; + } + + a.content-link:hover, + a[href]:hover { + text-decoration: underline; + } +} + .application.faction-aspect-dialog { width: min(540px, 92vw); } diff --git a/system.json b/system.json index 090ea9f..7567447 100644 --- a/system.json +++ b/system.json @@ -6,7 +6,7 @@ "download": "#{DOWNLOAD}#", "url": "https://www.uberwald.me/gitea/public/fvtt-celestopol", "license": "LICENSE", - "version": "13.0.0", + "version": "14.0.0", "authors": [ { "name": "Uberwald", @@ -30,7 +30,7 @@ }, "compatibility": { "minimum": "13", - "verified": "13" + "verified": "14" }, "esmodules": [ "fvtt-celestopol.mjs" @@ -97,7 +97,22 @@ "system": "fvtt-celestopol", "path": "packs-system/anomalies", "type": "Item" + }, + { + "name": "aides-de-jeu", + "label": "Célestopol 1922 — Aides de jeu", + "system": "fvtt-celestopol", + "path": "packs-system/aides-de-jeu", + "type": "JournalEntry" + }, + { + "name": "scenes", + "label": "Célestopol 1922 — Scènes", + "system": "fvtt-celestopol", + "path": "packs-system/scenes", + "type": "Scene" } + ], "grid": { "distance": 5,