From 440755d8a1074a9d5cebef1e25f51cf988b4464d Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Mon, 1 Jun 2026 22:36:08 +0200 Subject: [PATCH] Pre-tires, WIP --- AGENTS.md | 65 + css/cde-theme.css | 22 +- css/cde-theme.less | 24 +- css/cde-theme.less.backup | 4656 +++++++++++++++++ css/cde-theme.less.backup2 | 4656 +++++++++++++++++ packs/cde-armors/{000008.log => 000025.log} | 0 packs/cde-armors/{000010.ldb => 000027.ldb} | Bin packs/cde-armors/CURRENT | 2 +- packs/cde-armors/LOG | 26 +- packs/cde-armors/LOG.old | 9 +- packs/cde-armors/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-armors/MANIFEST-000023 | Bin 0 -> 255 bytes .../000008.log => cde-armors/lost/000021.log} | 0 .../000008.log => cde-help/000025.log} | 0 packs/cde-help/{000010.ldb => 000027.ldb} | Bin packs/cde-help/CURRENT | 2 +- packs/cde-help/LOG | 26 +- packs/cde-help/LOG.old | 9 +- packs/cde-help/MANIFEST-000006 | Bin 433 -> 0 bytes packs/cde-help/MANIFEST-000023 | Bin 0 -> 336 bytes .../000008.log => cde-help/lost/000021.log} | 0 .../000008.log => cde-ingredients/000025.log} | 0 .../{000010.ldb => 000027.ldb} | Bin packs/cde-ingredients/CURRENT | 2 +- packs/cde-ingredients/LOG | 26 +- packs/cde-ingredients/LOG.old | 9 +- packs/cde-ingredients/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-ingredients/MANIFEST-000023 | Bin 0 -> 255 bytes .../lost/000021.log} | 0 .../000008.log => cde-items/000025.log} | 0 packs/cde-items/{000010.ldb => 000027.ldb} | Bin packs/cde-items/CURRENT | 2 +- packs/cde-items/LOG | 26 +- packs/cde-items/LOG.old | 9 +- packs/cde-items/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-items/MANIFEST-000023 | Bin 0 -> 255 bytes .../000024.log => cde-items/lost/000021.log} | 0 .../000008.log => cde-kungfus/000025.log} | 0 packs/cde-kungfus/{000010.ldb => 000027.ldb} | Bin packs/cde-kungfus/CURRENT | 2 +- packs/cde-kungfus/LOG | 26 +- packs/cde-kungfus/LOG.old | 9 +- packs/cde-kungfus/MANIFEST-000006 | Bin 330 -> 0 bytes packs/cde-kungfus/MANIFEST-000023 | Bin 0 -> 257 bytes .../lost/000021.log} | 0 .../000008.log => cde-npcs/000025.log} | 0 packs/cde-npcs/{000010.ldb => 000027.ldb} | Bin packs/cde-npcs/CURRENT | 2 +- packs/cde-npcs/LOG | 26 +- packs/cde-npcs/LOG.old | 9 +- packs/cde-npcs/MANIFEST-000006 | Bin 337 -> 0 bytes packs/cde-npcs/MANIFEST-000023 | Bin 0 -> 262 bytes packs/cde-npcs/lost/000021.log | 0 packs/cde-pretires/000004.log | 0 packs/cde-pretires/000005.ldb | Bin 0 -> 429877 bytes packs/cde-pretires/CURRENT | 1 + packs/cde-pretires/LOCK | 0 packs/cde-pretires/LOG | 5 + packs/cde-pretires/MANIFEST-000002 | Bin 0 -> 161 bytes packs/cde-sanhei/000025.log | 0 packs/cde-sanhei/{000010.ldb => 000027.ldb} | Bin packs/cde-sanhei/CURRENT | 2 +- packs/cde-sanhei/LOG | 26 +- packs/cde-sanhei/LOG.old | 9 +- packs/cde-sanhei/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-sanhei/MANIFEST-000023 | Bin 0 -> 255 bytes packs/cde-sanhei/lost/000021.log | 0 packs/cde-scenes/000005.ldb | Bin 7078 -> 0 bytes packs/cde-scenes/000044.log | 0 packs/cde-scenes/000046.ldb | Bin 0 -> 3172 bytes packs/cde-scenes/CURRENT | 2 +- packs/cde-scenes/LOG | 19 +- packs/cde-scenes/LOG.old | 12 +- packs/cde-scenes/MANIFEST-000022 | Bin 160 -> 0 bytes packs/cde-scenes/MANIFEST-000042 | Bin 0 -> 332 bytes packs/cde-scenes/lost/000040.log | 0 packs/cde-spells/000025.log | 0 packs/cde-spells/{000010.ldb => 000027.ldb} | Bin packs/cde-spells/CURRENT | 2 +- packs/cde-spells/LOG | 26 +- packs/cde-spells/LOG.old | 9 +- packs/cde-spells/MANIFEST-000006 | Bin 330 -> 0 bytes packs/cde-spells/MANIFEST-000023 | Bin 0 -> 257 bytes packs/cde-spells/lost/000021.log | 0 packs/cde-supernaturals/000025.log | 0 .../{000010.ldb => 000027.ldb} | Bin packs/cde-supernaturals/CURRENT | 2 +- packs/cde-supernaturals/LOG | 26 +- packs/cde-supernaturals/LOG.old | 9 +- packs/cde-supernaturals/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-supernaturals/MANIFEST-000023 | Bin 0 -> 255 bytes packs/cde-supernaturals/lost/000021.log | 0 packs/cde-weapons/000025.log | 0 packs/cde-weapons/{000010.ldb => 000027.ldb} | Bin packs/cde-weapons/CURRENT | 2 +- packs/cde-weapons/LOG | 26 +- packs/cde-weapons/LOG.old | 9 +- packs/cde-weapons/MANIFEST-000006 | Bin 327 -> 0 bytes packs/cde-weapons/MANIFEST-000023 | Bin 0 -> 255 bytes packs/cde-weapons/lost/000021.log | 0 ...fvtt-Actor-billy-lau-BXvMmiWRcnOzGXSM.json | 78 +- ...fvtt-Actor-billy-lau-zSWwOmFiFjN4YxC9.json | 1233 +++++ ...tt-Actor-brenda-kang-X7kM9pQ2rT5vW8nZ.json | 1179 +++++ ...fvtt-Actor-danny-hou-9Ln7wnMwFK89FiTI.json | 972 ++++ ...vtt-Actor-emerson-wu-adc8c6091e217308.json | 1159 ++++ ...tt-Actor-freddie-tan-74f0586f55e860cc.json | 1160 ++++ ...fvtt-Actor-lily-chiu-YRIuWZJowkm0gJuc.json | 1252 +++++ ...vtt-Actor-maggie-jan-mJ3kL5pR7tX9vB2n.json | 1118 ++++ ...tt-Actor-mallory-tin-We0fDm06Ua2msJte.json | 1160 ++++ ...fvtt-Actor-penny-woo-a1b2c3d4e5f6g7h8.json | 1123 ++++ .../fvtt-Actor-sam-song-JuY7qnjxuMvGo2Nu.json | 1066 ++++ system.json | 12 + 112 files changed, 21076 insertions(+), 268 deletions(-) create mode 100644 AGENTS.md create mode 100644 css/cde-theme.less.backup create mode 100644 css/cde-theme.less.backup2 rename packs/cde-armors/{000008.log => 000025.log} (100%) rename packs/cde-armors/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-armors/MANIFEST-000006 create mode 100644 packs/cde-armors/MANIFEST-000023 rename packs/{cde-help/000008.log => cde-armors/lost/000021.log} (100%) rename packs/{cde-ingredients/000008.log => cde-help/000025.log} (100%) rename packs/cde-help/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-help/MANIFEST-000006 create mode 100644 packs/cde-help/MANIFEST-000023 rename packs/{cde-items/000008.log => cde-help/lost/000021.log} (100%) rename packs/{cde-kungfus/000008.log => cde-ingredients/000025.log} (100%) rename packs/cde-ingredients/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-ingredients/MANIFEST-000006 create mode 100644 packs/cde-ingredients/MANIFEST-000023 rename packs/{cde-npcs/000008.log => cde-ingredients/lost/000021.log} (100%) rename packs/{cde-sanhei/000008.log => cde-items/000025.log} (100%) rename packs/cde-items/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-items/MANIFEST-000006 create mode 100644 packs/cde-items/MANIFEST-000023 rename packs/{cde-scenes/000024.log => cde-items/lost/000021.log} (100%) rename packs/{cde-spells/000008.log => cde-kungfus/000025.log} (100%) rename packs/cde-kungfus/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-kungfus/MANIFEST-000006 create mode 100644 packs/cde-kungfus/MANIFEST-000023 rename packs/{cde-supernaturals/000008.log => cde-kungfus/lost/000021.log} (100%) rename packs/{cde-weapons/000008.log => cde-npcs/000025.log} (100%) rename packs/cde-npcs/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-npcs/MANIFEST-000006 create mode 100644 packs/cde-npcs/MANIFEST-000023 create mode 100644 packs/cde-npcs/lost/000021.log create mode 100644 packs/cde-pretires/000004.log create mode 100644 packs/cde-pretires/000005.ldb create mode 100644 packs/cde-pretires/CURRENT create mode 100644 packs/cde-pretires/LOCK create mode 100644 packs/cde-pretires/LOG create mode 100644 packs/cde-pretires/MANIFEST-000002 create mode 100644 packs/cde-sanhei/000025.log rename packs/cde-sanhei/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-sanhei/MANIFEST-000006 create mode 100644 packs/cde-sanhei/MANIFEST-000023 create mode 100644 packs/cde-sanhei/lost/000021.log delete mode 100644 packs/cde-scenes/000005.ldb create mode 100644 packs/cde-scenes/000044.log create mode 100644 packs/cde-scenes/000046.ldb delete mode 100644 packs/cde-scenes/MANIFEST-000022 create mode 100644 packs/cde-scenes/MANIFEST-000042 create mode 100644 packs/cde-scenes/lost/000040.log create mode 100644 packs/cde-spells/000025.log rename packs/cde-spells/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-spells/MANIFEST-000006 create mode 100644 packs/cde-spells/MANIFEST-000023 create mode 100644 packs/cde-spells/lost/000021.log create mode 100644 packs/cde-supernaturals/000025.log rename packs/cde-supernaturals/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-supernaturals/MANIFEST-000006 create mode 100644 packs/cde-supernaturals/MANIFEST-000023 create mode 100644 packs/cde-supernaturals/lost/000021.log create mode 100644 packs/cde-weapons/000025.log rename packs/cde-weapons/{000010.ldb => 000027.ldb} (100%) delete mode 100644 packs/cde-weapons/MANIFEST-000006 create mode 100644 packs/cde-weapons/MANIFEST-000023 create mode 100644 packs/cde-weapons/lost/000021.log create mode 100644 sample_data/fvtt-Actor-billy-lau-zSWwOmFiFjN4YxC9.json create mode 100644 sample_data/fvtt-Actor-brenda-kang-X7kM9pQ2rT5vW8nZ.json create mode 100644 sample_data/fvtt-Actor-danny-hou-9Ln7wnMwFK89FiTI.json create mode 100644 sample_data/fvtt-Actor-emerson-wu-adc8c6091e217308.json create mode 100644 sample_data/fvtt-Actor-freddie-tan-74f0586f55e860cc.json create mode 100644 sample_data/fvtt-Actor-lily-chiu-YRIuWZJowkm0gJuc.json create mode 100644 sample_data/fvtt-Actor-maggie-jan-mJ3kL5pR7tX9vB2n.json create mode 100644 sample_data/fvtt-Actor-mallory-tin-We0fDm06Ua2msJte.json create mode 100644 sample_data/fvtt-Actor-penny-woo-a1b2c3d4e5f6g7h8.json create mode 100644 sample_data/fvtt-Actor-sam-song-JuY7qnjxuMvGo2Nu.json diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e8ac660 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,65 @@ +# Copilot Instructions — fvtt-chroniques-de-l-etrange + +FoundryVTT v13 game system for *Les Chroniques de l'Étrange* (Antre-Monde Éditions). The codebase is entirely in **ES modules** (`"type": "module"`) bundled with esbuild. There are no tests. + +## Build commands + +```bash +npm run build # compile LESS → CSS and bundle src/system.js → dist/system.js +npm run build:css # LESS only +npm run build:js # esbuild bundle only +npm run build:watch # rebuild on file changes +npm run build:full # compile compendiums then build + +npm run pack:compile # compile packs-src/ → packs/ (LevelDB) +npm run pack:extract # extract packs/ → packs-src/ (YAML source) +``` + +The built output goes to `dist/system.js` (sourced via the unbuilt `src/system.js` in `system.json` `esmodules`). + +## Architecture + +The entry point is `src/system.js`, which wires up all FoundryVTT hooks (`init`, `ready`, `renderChatLog`, etc.). + +### Layer structure + +| Layer | Path | Purpose | +|---|---|---| +| **Config** | `src/config/` | Constants, i18n pre-localization, runtime config, settings | +| **Data Models** | `src/data/` | `TypeDataModel` subclasses defining actor/item schemas | +| **Documents** | `src/documents/` | `CDEActor`, `CDEItem`, `CDEMessage` — thin document class overrides | +| **UI / Sheets** | `src/ui/sheets/` | ApplicationV2 sheets for actors and items | +| **UI / Apps** | `src/ui/apps/` | Standalone apps: `CDELoksyuApp`, `CDETinjiApp` (singletons) | +| **UI / Core** | `src/ui/` | Rolling engine, dice registration, Handlebars helpers, initiative | + +### Key domain concepts + +- **Wu Xing cycle**: Five aspects (metal, water, earth, fire, wood) drive all dice resolution. Each aspect maps to two d10 faces (see `ASPECT_FACES` in `constants.js`). `WU_XING_CYCLE` maps an active aspect to the five result categories: successes / auspicious / noxious / **loksyu** / **tinji**. +- **Loksyu / Tin Ji**: Persistent world-level counters stored in game settings (`loksyuData`, `tinjiData`). Managed via `CDELoksyuApp` / `CDETinjiApp` singleton apps; updated from roll results in `ui/apps/singletons.js`. +- **Three Treasures** (`threetreasures`): The character's Hei-Yang and Hei-Yin pools plus dice-level branches — used as the primary/secondary token attribute. +- **Magics**: Five schools (`internalcinnabar`, `alchemy`, `masteryoftheway`, `exorcism`, `geomancy`), each with five specialities. Fully defined in `MAGICS` constant. + +### Data model pattern + +All data models live in `src/data/` and extend `foundry.abstract.TypeDataModel`. Schema fields are defined with local factory helpers (`numberField`, `stringField`, `boolField`, `htmlField`) — prefer reusing these helpers when adding new fields. + +### Sheet pattern + +Actor and item sheets extend `HandlebarsApplicationMixin(ActorSheetV2)` via `CDEBaseActorSheet` (`src/ui/sheets/actors/base.js`). Key conventions: +- `static DEFAULT_OPTIONS` with `form: { submitOnChange: true }` — forms auto-save on every change. +- Tab state is manually restored in `_onRender` by iterating `this.tabGroups` and calling `this.changeTab()` (AppV2 does not persist tab state natively). +- Sheet actions (create/edit/delete item, editImage) are static private methods registered in `DEFAULT_OPTIONS.actions`. +- `_prepareContext()` exposes both `system` and `systemData` (same reference) for template compatibility. + +### Compendium source + +Human-editable compendium content lives in `packs-src/` as YAML. Use `npm run pack:compile` before building when pack content has changed, and `npm run pack:extract` after importing new data in Foundry. + +## Key conventions + +- All user-visible strings go through i18n with the `CDE.` prefix namespace. New labels must be added to `lang/fr-cde.json`. +- Handlebars templates live in `templates/` and are referenced by their full system path (`systems/fvtt-chroniques-de-l-etrange/templates/...`). Partials are pre-registered from `TEMPLATE_PARTIALS` in `constants.js`. +- The system ID constant (`SYSTEM_ID = "fvtt-chroniques-de-l-etrange"`) is used everywhere — never hardcode the string. +- CSS is authored in LESS (`css/cde-theme.less`) and compiled to `css/cde-theme.css`. Do not edit the `.css` file directly. +- Global macro access is via `game.cde` (exposes `CDELoksyuApp` and `CDETinjiApp`). +- The `dist/` directory is generated — do not commit it manually; it is rebuilt by `npm run build`. diff --git a/css/cde-theme.css b/css/cde-theme.css index cd0397b..0b9a214 100644 --- a/css/cde-theme.css +++ b/css/cde-theme.css @@ -396,17 +396,22 @@ section.npc .cde-neon-tabs .item.active { .cde-tab-body { flex: 1 1 0; min-height: 0; + display: flex; + flex-direction: column; padding: 12px; background: #0d1520; border: 1px solid #1a2436; border-top: none; border-radius: 0 0 8px 8px; - overflow-y: auto; + overflow: hidden; } .cde-tab-body .tab { display: none; + flex: 1 1 0; + min-height: 0; flex-direction: column; gap: 12px; + overflow-y: auto; } .cde-tab-body .tab.active { display: flex; @@ -447,12 +452,25 @@ section.npc .cde-neon-tabs .item.active { flex-direction: column; } .cde-notes-editor .editor { - flex: 1 1 0; + flex: 1 1 auto; min-height: 200px; + height: 100%; border-radius: 8px; border: 1px solid #1a2436; background: #101622; } +.cde-notes-editor .editor .tox { + height: 100% !important; + min-height: 100% !important; +} +.cde-notes-editor .editor .tox-editor-container { + height: 100% !important; + min-height: 100% !important; +} +.cde-notes-editor .editor iframe { + height: 100% !important; + min-height: 100% !important; +} .cde-technique-card { border-left: 3px solid #ff3d5a; background: rgba(16, 22, 34, 0.8); diff --git a/css/cde-theme.less b/css/cde-theme.less index 8d528d3..b2a1e9f 100644 --- a/css/cde-theme.less +++ b/css/cde-theme.less @@ -381,17 +381,22 @@ section.npc .cde-neon-tabs .item.active { color: @cde-supernatural; borde .cde-tab-body { flex: 1 1 0; min-height: 0; + display: flex; + flex-direction: column; padding: @cde-gap; background: @cde-surface2; border: 1px solid @cde-border; border-top: none; border-radius: 0 0 @cde-radius @cde-radius; - overflow-y: auto; + overflow: hidden; .tab { display: none; + flex: 1 1 0; + min-height: 0; flex-direction: column; gap: @cde-gap; + overflow-y: auto; } .tab.active { @@ -445,11 +450,26 @@ section.npc .cde-neon-tabs .item.active { color: @cde-supernatural; borde flex-direction: column; .editor { - flex: 1 1 0; + flex: 1 1 auto; min-height: 200px; + height: 100%; border-radius: @cde-radius; border: 1px solid @cde-border; background: @cde-surface; + + // Force TinyMCE to fill the container + .tox { + height: 100% !important; + min-height: 100% !important; + } + .tox-editor-container { + height: 100% !important; + min-height: 100% !important; + } + iframe { + height: 100% !important; + min-height: 100% !important; + } } } diff --git a/css/cde-theme.less.backup b/css/cde-theme.less.backup new file mode 100644 index 0000000..8d528d3 --- /dev/null +++ b/css/cde-theme.less.backup @@ -0,0 +1,4656 @@ + +/* ------------------------------------------- + Fonts + ---------------------------------------------*/ + +@font-face { + font-family: "Averia"; + src: url(../fonts/Averia-Regular.ttf); +} + +// ============================================================ +// Neo-Tokyo Neon Noir — Palette +// ============================================================ +@cde-bg: #080c14; +@cde-surface: #101622; +@cde-surface2: #0d1520; +@cde-border: #1a2436; +@cde-border-hi: #263853; +@cde-text: #e2e8f4; +@cde-muted: #7d94b8; + +// Accents néon par type +@cde-item: #00d4d4; +@cde-kungfu: #ff3d5a; +@cde-spell: #4a9eff; +@cde-supernatural: #cc44ff; +@cde-weapon: #ff6b35; +@cde-armor: #4ecdc4; +@cde-sanhei: #cc44ff; +@cde-ingredient: #98c379; + +@cde-shadow: 0 8px 32px rgba(0, 0, 0, 0.6); +@cde-shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.4); +@cde-radius: 8px; +@cde-radius-sm: 5px; +@cde-gap: 12px; + +// Glow helpers +.glow(@color) { box-shadow: 0 0 0 1px fade(@color, 35%), 0 0 12px fade(@color, 20%); } +.glow-text(@color) { text-shadow: 0 0 8px fade(@color, 60%); } + +// ============================================================ +// CSS Variables (for JS access) +// ============================================================ +.fvtt-chroniques-de-l-etrange { + --cde-bg: @cde-bg; + --cde-surface: @cde-surface; + --cde-border: @cde-border; + --cde-text: @cde-text; + --cde-muted: @cde-muted; + --cde-item: @cde-item; + --cde-kungfu: @cde-kungfu; + --cde-spell: @cde-spell; + --cde-supernatural: @cde-supernatural; + color: @cde-text; + background: @cde-bg; +} + +// ============================================================ +// Base sheet +// ============================================================ +.cde-sheet { + background: @cde-bg; + color: @cde-text; + font-family: "Averia", sans-serif; + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + overflow: hidden; + + input, textarea { + font-family: inherit; + color: @cde-text; + background: transparent; + } + + // Selects need an explicit dark background — transparent fails on native dropdowns + select { + font-family: inherit; + color: @cde-text; + background: @cde-surface; + border-radius: 2px; + } + + select option { + background: @cde-bg; + color: @cde-text; + } +} + +// ============================================================ +// Item-sheet Neon Header +// ============================================================ +.cde-neon-header { + position: relative; + background: @cde-surface; + display: grid; + grid-template-columns: 90px 1fr; + gap: 14px; + padding: 12px 14px 14px; + overflow: hidden; + // Angular clip on bottom-right corner + clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%); + + // Top accent line — overridden per type + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: @cde-border-hi; + } + + // Subtle neon scatter in background + &::after { + content: ""; + position: absolute; + inset: 0; + background: radial-gradient(ellipse at 0% 0%, fade(@cde-border-hi, 30%) 0%, transparent 50%); + pointer-events: none; + } + + // Per-type accent colors + &.item { &::before { background: @cde-item; box-shadow: 0 0 10px fade(@cde-item, 50%); } } + &.kungfu { &::before { background: @cde-kungfu; box-shadow: 0 0 10px fade(@cde-kungfu, 50%); } } + &.spell { &::before { background: @cde-spell; box-shadow: 0 0 10px fade(@cde-spell, 50%); } } + &.supernatural { &::before { background: @cde-supernatural; box-shadow: 0 0 10px fade(@cde-supernatural, 50%); } } + &.weapon { &::before { background: @cde-weapon; box-shadow: 0 0 10px fade(@cde-weapon, 50%); } } + &.armor { &::before { background: @cde-armor; box-shadow: 0 0 10px fade(@cde-armor, 50%); } } + &.sanhei { &::before { background: @cde-sanhei; box-shadow: 0 0 10px fade(@cde-sanhei, 50%); } } + &.ingredient { &::before { background: @cde-ingredient; box-shadow: 0 0 10px fade(@cde-ingredient, 50%); } } +} + +// Avatar inside neon header — angular clip +.cde-avatar { + width: 90px; + height: 90px; + object-fit: cover; + clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%); + border: 1px solid @cde-border-hi; + background: @cde-surface2; + cursor: pointer; + position: relative; + z-index: 1; +} + +// Header content zone +.cde-header-content { + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + gap: 8px; + min-width: 0; +} + +// Item name — flat neon-bottom-border input +.cde-item-name { + margin: 0; + + input { + width: 100%; + border: none; + border-bottom: 2px solid @cde-border-hi; + background: transparent; + color: @cde-text; + font-size: 18px; + font-family: "Averia", sans-serif; + font-weight: 700; + padding: 4px 0 6px; + letter-spacing: 0.04em; + text-transform: uppercase; + outline: none; + transition: border-color 0.15s; + + &:focus { + border-bottom-color: @cde-item; + } + } +} + +// Type-specific focus color on name input +.cde-neon-header.kungfu .cde-item-name input:focus { border-bottom-color: @cde-kungfu; } +.cde-neon-header.spell .cde-item-name input:focus { border-bottom-color: @cde-spell; } +.cde-neon-header.supernatural .cde-item-name input:focus { border-bottom-color: @cde-supernatural; } +.cde-neon-header.weapon .cde-item-name input:focus { border-bottom-color: @cde-weapon; } +.cde-neon-header.armor .cde-item-name input:focus { border-bottom-color: @cde-armor; } +.cde-neon-header.sanhei .cde-item-name input:focus { border-bottom-color: @cde-sanhei; } +.cde-neon-header.ingredient .cde-item-name input:focus { border-bottom-color: @cde-ingredient; } + +// ============================================================ +// Stat Grid (terminal style) +// ============================================================ +.cde-stat-grid { + display: flex; + flex-wrap: wrap; + gap: 6px 10px; + align-items: flex-end; +} + +.cde-stat-cell { + display: flex; + flex-direction: column; + gap: 3px; + min-width: 110px; + flex: 1 1 110px; + max-width: 200px; + + &--wide { + flex: 1 1 100%; + max-width: 100%; + min-width: 0; + } +} + +.cde-stat-label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + white-space: nowrap; +} + +.cde-stat-value { + font-size: 15px; + font-weight: 800; + color: @cde-text; + letter-spacing: 0.02em; +} + +.cde-stat-cell input { + width: 100%; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 14px; + padding: 4px 0; + outline: none; + transition: border-color 0.15s; + + &:focus { border-bottom-color: @cde-item; } +} + +.cde-stat-cell textarea { + width: 100%; + background: transparent; + border: 1px solid @cde-border; + border-radius: 2px; + color: @cde-text; + font-size: 13px; + font-family: inherit; + padding: 4px 6px; + outline: none; + resize: vertical; + transition: border-color 0.15s; + line-height: 1.5; + + &:focus { border-color: @cde-kungfu; } +} + +.cde-stat-cell select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + font-size: 14px; + padding: 4px 0; + outline: none; + transition: border-color 0.15s; + + &:focus { border-bottom-color: @cde-item; } +} + +.cde-neon-header.kungfu .cde-stat-cell input:focus, +.cde-neon-header.kungfu .cde-stat-cell select:focus { border-bottom-color: @cde-kungfu; } +.cde-neon-header.spell .cde-stat-cell input:focus, +.cde-neon-header.spell .cde-stat-cell select:focus { border-bottom-color: @cde-spell; } +.cde-neon-header.supernatural .cde-stat-cell input:focus, +.cde-neon-header.supernatural .cde-stat-cell select:focus { border-bottom-color: @cde-supernatural; } +.cde-neon-header.weapon .cde-stat-cell input:focus, +.cde-neon-header.weapon .cde-stat-cell select:focus { border-bottom-color: @cde-weapon; } +.cde-neon-header.armor .cde-stat-cell input:focus, +.cde-neon-header.armor .cde-stat-cell select:focus { border-bottom-color: @cde-armor; } +.cde-neon-header.sanhei .cde-stat-cell input:focus, +.cde-neon-header.sanhei .cde-stat-cell select:focus { border-bottom-color: @cde-sanhei; } +.cde-neon-header.ingredient .cde-stat-cell input:focus, +.cde-neon-header.ingredient .cde-stat-cell select:focus { border-bottom-color: @cde-ingredient; } + +// ============================================================ +// Type Badge — angular clip-path parallelogram +// ============================================================ +.cde-badge { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 3px 14px 3px 10px; + clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%); + font-size: 11px; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-bg; + cursor: default; + white-space: nowrap; + + &.item { background: @cde-item; } + &.kungfu { background: @cde-kungfu; } + &.spell { background: @cde-spell; } + &.supernatural { background: @cde-supernatural; } + &.character { background: @cde-item; } + &.npc { background: @cde-supernatural; } + &.weapon { background: @cde-weapon; } + &.armor { background: @cde-armor; } + &.sanhei { background: @cde-sanhei; } + &.ingredient { background: @cde-ingredient; } +} + +// ============================================================ +// Neon Tabs +// ============================================================ +.cde-neon-tabs { + display: flex; + gap: 0; + border-bottom: 1px solid @cde-border; + background: transparent; + margin-top: 8px; + overflow-x: auto; + + .item { + padding: 8px 14px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + border-bottom: 2px solid transparent; + white-space: nowrap; + transition: color 0.15s, border-color 0.15s; + cursor: pointer; + + &:hover { + color: @cde-text; + } + + &.active { + color: @cde-item; + border-bottom-color: @cde-item; + font-weight: 700; + background: fade(@cde-item, 8%); + } + } +} + +// Per-type active tab color +.item.kungfu .cde-neon-tabs .item.active, +form.kungfu .cde-neon-tabs .item.active, +section.kungfu .cde-neon-tabs .item.active { color: @cde-kungfu; border-bottom-color: @cde-kungfu; background: fade(@cde-kungfu, 8%); } +form.spell .cde-neon-tabs .item.active, +section.spell .cde-neon-tabs .item.active { color: @cde-spell; border-bottom-color: @cde-spell; background: fade(@cde-spell, 8%); } +form.supernatural .cde-neon-tabs .item.active, +section.supernatural .cde-neon-tabs .item.active { color: @cde-supernatural; border-bottom-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } +form.weapon .cde-neon-tabs .item.active, +section.weapon .cde-neon-tabs .item.active { color: @cde-weapon; border-bottom-color: @cde-weapon; background: fade(@cde-weapon, 8%); } +form.armor .cde-neon-tabs .item.active, +section.armor .cde-neon-tabs .item.active { color: @cde-armor; border-bottom-color: @cde-armor; background: fade(@cde-armor, 8%); } +form.sanhei .cde-neon-tabs .item.active, +section.sanhei .cde-neon-tabs .item.active { color: @cde-sanhei; border-bottom-color: @cde-sanhei; background: fade(@cde-sanhei, 8%); } +form.ingredient .cde-neon-tabs .item.active, +section.ingredient .cde-neon-tabs .item.active { color: @cde-ingredient; border-bottom-color: @cde-ingredient; background: fade(@cde-ingredient, 8%); } +// Actor type accent colors +section.character .cde-neon-tabs .item.active { color: @cde-item; border-bottom-color: @cde-item; background: fade(@cde-item, 8%); } +section.npc .cde-neon-tabs .item.active { color: @cde-supernatural; border-bottom-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } + +// ============================================================ +// Tab body +// ============================================================ +.cde-tab-body { + flex: 1 1 0; + min-height: 0; + padding: @cde-gap; + background: @cde-surface2; + border: 1px solid @cde-border; + border-top: none; + border-radius: 0 0 @cde-radius @cde-radius; + overflow-y: auto; + + .tab { + display: none; + flex-direction: column; + gap: @cde-gap; + } + + .tab.active { + display: flex; + } +} + +// Tab section label — visible inside each tab body +.cde-tab-label { + font-family: "Averia", sans-serif; + font-size: 0.65rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.15em; + color: @cde-muted; + padding: 2px 6px; + border-left: 2px solid @cde-border-hi; + margin-bottom: 2px; + flex-shrink: 0; +} + +// ============================================================ +// Card +// ============================================================ +.cde-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 12px; + box-shadow: @cde-shadow-sm; +} + +.cde-card .tab-sous-titre { + font-family: "Averia", sans-serif; + font-size: 10px; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-muted; + margin-bottom: 6px; + border-bottom: 1px solid @cde-border; + padding-bottom: 4px; +} + +// ============================================================ +// Notes editor +// ============================================================ +.cde-notes-editor { + flex: 1 1 0; + min-height: 0; + display: flex; + flex-direction: column; + + .editor { + flex: 1 1 0; + min-height: 200px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + background: @cde-surface; + } +} + +// ============================================================ +// Technique card (kungfu) +// ============================================================ +.cde-technique-card { + border-left: 3px solid @cde-kungfu; + background: fade(@cde-surface, 80%); +} + +.cde-technique-header { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-start; + gap: 10px; + margin-bottom: 10px; +} + +.cde-technique-title { + display: flex; + align-items: center; + gap: 8px; + flex: 1 1 200px; + + input { + flex: 1; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 15px; + font-weight: 700; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-kungfu; } + } +} + +.cde-technique-meta { + display: flex; + gap: 8px; + flex-wrap: wrap; + align-items: flex-end; +} + +.cde-technique-body .editor { + min-height: 180px; +} + +// Mini technique checkbox row +.cde-check-cell { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + min-width: 70px; + + label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: @cde-kungfu; + cursor: pointer; + } +} + +// ============================================================ +// Legacy chips (kept for actor sheets) +// ============================================================ +.cde-chip { + background: fade(@cde-surface, 75%); + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 8px 10px; + display: inline-flex; + flex-direction: column; + gap: 6px; + min-width: 140px; + + label { + font-size: 10px; + font-family: "Averia", sans-serif; + letter-spacing: 0.08em; + text-transform: uppercase; + color: @cde-muted; + margin: 0; + } + + input { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + input[type="checkbox"] { + width: auto; + align-self: flex-start; + accent-color: @cde-item; + } + + &.mini { min-width: 100px; padding: 6px 8px; } +} + +.cde-meta-row { + display: flex; + gap: @cde-gap; + flex-wrap: wrap; + align-items: flex-end; + margin-top: 8px; + + &.compact { gap: 8px; } +} + +// Kept for backward compat with actor templates +.cde-pill { + display: inline-block; + padding: 3px 10px; + border-radius: 999px; + font-weight: 800; + font-size: 11px; + letter-spacing: 0.06em; + text-transform: uppercase; + color: @cde-bg; + + &.item { background: @cde-item; } + &.kungfu { background: @cde-kungfu; } + &.spell { background: @cde-spell; } + &.supernatural { background: @cde-supernatural; } + &.character { background: @cde-item; } + &.npc { background: @cde-supernatural; } + &.weapon { background: @cde-weapon; } + &.armor { background: @cde-armor; } + &.sanhei { background: @cde-sanhei; } + &.ingredient { background: @cde-ingredient; } +} + +// ============================================================ +// Actor header (kept, updated for new palette) +// ============================================================ +.cde-header { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 12px; + display: grid; + grid-template-columns: 120px 1fr; + gap: @cde-gap; + box-shadow: @cde-shadow; + + .profile-img { + width: 100%; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; + object-fit: cover; + } + + .header-fields h1.charname input { + width: 100%; + border: none; + border-bottom: 2px solid @cde-border-hi; + background: transparent; + color: @cde-text; + font-size: 20px; + font-family: "Averia", sans-serif; + padding: 4px 0 8px; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } +} + +.cde-actor-header { + grid-template-columns: 160px 1fr; + align-items: start; +} + +.cde-header-top { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; +} + +.cde-icon-button { + border: 1px solid @cde-border; + background: fade(@cde-surface, 70%); + color: @cde-text; + border-radius: 999px; + padding: 6px 10px; + box-shadow: @cde-shadow-sm; + cursor: pointer; + + &:hover { border-color: @cde-border-hi; } +} + +.cde-quick-meta { + display: flex; + align-items: center; + gap: @cde-gap; + flex-wrap: wrap; +} + +.cde-initiative-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-spell; + border-radius: @cde-radius; + padding: 8px 12px; + background: fade(@cde-surface, 70%); + box-shadow: @cde-shadow-sm; + display: inline-flex; + flex-direction: column; + gap: 4px; + min-width: 130px; +} + +.cde-initiative-header { + display: flex; + align-items: center; + gap: 6px; +} + +.cde-initiative-title { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; +} + +.cde-initiative-icon { + font-size: 11px; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 70%); +} + +.cde-initiative-controls { + display: inline-flex; + align-items: center; + gap: 6px; + + .cde-init-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 26px; + height: 26px; + padding: 0; + border: 1px solid @cde-border; + border-radius: 5px; + background: fade(@cde-bg, 80%); + color: @cde-muted; + font-size: 11px; + cursor: pointer; + flex-shrink: 0; + transition: border-color 0.15s, box-shadow 0.15s, color 0.15s; + + &:hover { + border-color: @cde-spell; + color: @cde-spell; + box-shadow: 0 0 0 2px fade(@cde-spell, 25%); + } + } + + .cde-init-btn--roll { + width: 30px; + height: 30px; + font-size: 14px; + border-color: fade(@cde-spell, 40%); + color: @cde-spell; + background: fade(@cde-spell, 10%); + box-shadow: 0 0 6px fade(@cde-spell, 20%); + + &:hover { + background: fade(@cde-spell, 20%); + box-shadow: 0 0 10px fade(@cde-spell, 40%); + } + } +} + +.cde-initiative-values { + display: flex; + flex-direction: column; + align-items: center; + gap: 2px; + min-width: 50px; +} + +.cde-initiative-value { + font-size: 20px; + font-weight: 800; + text-align: center; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 60%); + line-height: 1; +} + +.cde-anti-initiative-value { + font-size: 9px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-align: center; + white-space: nowrap; + + i { + font-size: 8px; + opacity: 0.7; + } +} + +// ============================================================ +// Grid, field, table, section — common +// ============================================================ +.cde-grid { + display: grid; + gap: @cde-gap; + + &.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } + &.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } +} + +.cde-field { + label { + display: block; + margin-bottom: 4px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + input, textarea { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 5px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 5px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } +} + +.cde-section-title { + font-family: "Averia", sans-serif; + font-size: 10px; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-muted; + margin-bottom: 8px; + border-bottom: 1px solid @cde-border; + padding-bottom: 4px; +} + +.cde-tag { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 3px 10px; + border-radius: 999px; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + background: fade(@cde-border, 80%); + color: @cde-muted; + border: 1px solid @cde-border; +} + +.cde-data-table { + table { + width: 100%; + border-collapse: collapse; + color: @cde-text; + } + + td { + padding: 7px 8px; + border-bottom: 1px solid @cde-border; + } + + tr:nth-child(even) { background: fade(@cde-surface, 50%); } + tr:hover { background: fade(@cde-border-hi, 20%); } + + input { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 4px 0; + outline: none; + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 4px 0; + outline: none; + } +} + +.cde-centered-card { + display: flex; + gap: @cde-gap; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + + img { + max-height: 280px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; + } +} + +// ============================================================ +// NPC Aptitudes table — modern cde-skills-table layout +// ============================================================ +.cde-aptitudes-table { + // Inherits .cde-skills-table styles; just ensure consistent width + .cde-spec-cell { flex: 1 1 0; } + + .cde-roll-cell { + width: 28px; + flex-shrink: 0; + text-align: center; + + .cde-roll-trigger { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + color: @cde-muted; + border-radius: 4px; + transition: color 0.15s, background 0.15s; + + &:hover { + color: @cde-supernatural; + background: fade(@cde-supernatural, 12%); + } + } + } +} + +// Empty list placeholder +.cde-empty-list { + color: @cde-muted; + font-style: italic; + font-size: 11px; + text-align: center; + padding: 10px 0; +} + +// NPC supernatural item cards +// ── Supernatural abilities card (NPC) ─────────────────────────────────────── + +.cde-super-add-row { + display: flex; + justify-content: flex-end; + padding: 4px 0 8px; +} + +.cde-super-add-btn { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + cursor: pointer; + padding: 4px 10px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + transition: color 0.12s, border-color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-supernatural; border-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } +} + +.cde-super-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-supernatural; + border-radius: @cde-radius; + background: fade(@cde-surface, 70%); + margin-bottom: 10px; + overflow: hidden; + transition: box-shadow 0.15s; + + &:hover { + box-shadow: 0 0 8px fade(@cde-supernatural, 20%); + + .cde-super-controls { opacity: 1; } + } +} + +.cde-super-header { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; +} + +.cde-super-img { + width: 28px; + height: 28px; + object-fit: contain; + border-radius: 4px; + flex-shrink: 0; +} + +.cde-super-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 3px; + min-width: 0; +} + +.cde-super-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-super-meta { + display: flex; + align-items: center; + gap: 4px; +} + +.cde-super-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 22px; + height: 22px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 11px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-super-desc { + padding: 6px 12px 8px 46px; + border-top: 1px solid fade(@cde-border, 60%); + background: fade(@cde-surface, 40%); + font-size: 11px; + color: @cde-muted; + line-height: 1.5; + + p { margin: 0 0 4px; &:last-child { margin-bottom: 0; } } + em { color: @cde-text; } + strong { color: @cde-supernatural; } +} + +.cde-super-empty { + padding: 16px; + text-align: center; + font-size: 12px; + color: @cde-muted; + font-style: italic; +} + +// NPC vitality / hei tracker +.cde-npc-tracks { + margin-top: @cde-gap; + + .cde-track-row { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 0; + border-bottom: 1px solid @cde-border; + + &:last-child { border-bottom: none; } + } + + .cde-track-label { + display: flex; + align-items: center; + gap: 6px; + width: 120px; + flex-shrink: 0; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + + i { font-size: 12px; } + } + + .cde-track-value { + display: flex; + align-items: center; + gap: 6px; + + input.cde-circle-input { + width: 48px; + } + } + + .cde-track-sep { + font-size: 14px; + color: @cde-muted; + font-weight: 700; + } + + .cde-track-max { + font-size: 15px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 40%); + min-width: 28px; + text-align: center; + } + + .cde-track-note { + flex: 1; + input { width: 100%; } + } +} + +// ============================================================ +// Loksyu — 5 elemental cards grid +// ============================================================ +// ============================================================ +// Chat buttons — Loksyu / TinJi quick-access +// ============================================================ +.cde-chat-app-buttons { + display: flex; + gap: 6px; + padding: 6px 8px 4px; + border-top: 1px solid @cde-border; + pointer-events: auto; // sidebar has pointer-events:none — must override + + .cde-chat-btn { + flex: 1 1 0; + pointer-events: auto; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + padding: 5px 8px; + font-size: 11px; + font-family: "Orbitron", "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: 4px; + color: @cde-muted; + cursor: pointer; + transition: all 0.2s; + + i { font-size: 12px; } + + &:hover { + background: fade(@cde-spell, 10%); + border-color: @cde-spell; + color: @cde-spell; + box-shadow: 0 0 8px fade(@cde-spell, 30%); + } + + &--tinji:hover { + background: fade(@cde-kungfu, 10%); + border-color: @cde-kungfu; + color: @cde-kungfu; + box-shadow: 0 0 8px fade(@cde-kungfu, 30%); + } + } +} + +// ============================================================ +// Loksyu standalone app +// ============================================================ +.cde-loksyu-standalone { + .cde-loksyu-app-body { + padding: 12px; + } + + .cde-loksyu-elements { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 10px; + } + + .cde-lok-card { + flex: 0 0 calc(33.333% - 6px); + min-width: 140px; + max-width: 160px; + background: fade(@cde-surface, 80%); + border: 1px solid @cde-border; + border-radius: 6px; + padding: 10px 8px; + display: flex; + flex-direction: column; + gap: 6px; + min-width: 0; + overflow: hidden; + transition: border-color 0.2s; + + &--wood { &:hover { border-color: #4a9e3f; } .cde-lok-input:focus { border-bottom-color: #4a9e3f; } } + &--fire { &:hover { border-color: @cde-kungfu; } .cde-lok-input:focus { border-bottom-color: @cde-kungfu; } } + &--earth { &:hover { border-color: #c88a3a; } .cde-lok-input:focus { border-bottom-color: #c88a3a; } } + &--metal { &:hover { border-color: @cde-muted; } .cde-lok-input:focus { border-bottom-color: @cde-muted; } } + &--water { &:hover { border-color: @cde-spell; } .cde-lok-input:focus { border-bottom-color: @cde-spell; } } + } + + .cde-lok-header { + display: flex; + align-items: center; + gap: 6px; + + img.cde-lok-icon { border-radius: 4px; flex-shrink: 0; } + } + + .cde-lok-titles { + flex: 1 1 0; + min-width: 0; + display: flex; + flex-direction: column; + + .cde-lok-name { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-text; + } + + .cde-lok-qual { + font-size: 9px; + color: @cde-muted; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + + .cde-lok-reset { + color: @cde-muted; + font-size: 11px; + flex-shrink: 0; + cursor: pointer; + &:hover { color: @cde-text; } + } + + .cde-lok-values { + display: flex; + flex-direction: column; + gap: 4px; + } + + .cde-lok-polarity { + display: flex; + align-items: center; + gap: 4px; + + .cde-lok-pol-label { + font-size: 9px; + color: @cde-muted; + width: 30px; + flex-shrink: 0; + } + + &--yang .cde-lok-pol-label { color: @cde-text; } + } + + .cde-lok-input { + flex: 1 1 0; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 13px; + font-weight: 700; + text-align: center; + padding: 2px 0; + transition: border-bottom-color 0.2s; + width: 100%; + + &:focus { outline: none; } + &[disabled] { opacity: 0.5; cursor: default; } + } + + .cde-loksyu-visual-row { + text-align: center; + margin: 6px 0; + + .cde-lok-visual { + max-width: 120px; + max-height: 160px; + width: auto; + height: auto; + opacity: 0.6; + cursor: zoom-in; + transition: opacity 0.2s ease, box-shadow 0.2s ease; + + &:hover { + opacity: 0.9; + box-shadow: 0 0 10px @cde-border-hi; + } + } + } + + .cde-lok-footer { + display: flex; + justify-content: center; + padding-top: 6px; + border-top: 1px solid @cde-border; + margin-top: 6px; + } + + .cde-lok-reset-all { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 14px; + font-size: 11px; + background: fade(@cde-kungfu, 12%); + border: 1px solid fade(@cde-kungfu, 30%); + border-radius: 4px; + color: @cde-muted; + cursor: pointer; + transition: all 0.2s; + + &:hover { + background: fade(@cde-kungfu, 20%); + border-color: @cde-kungfu; + color: @cde-text; + } + } +} + +// ============================================================ +// TinJi standalone app +// ============================================================ +.cde-tinji-standalone { + .cde-tinji-app-body { + padding: 16px 12px; + display: flex; + align-items: center; + gap: 16px; + } + + .cde-tinji-display { + flex: 1 1 0; + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + } + + .cde-tinji-chinese-large { + font-size: 40px; + color: @cde-kungfu; + text-shadow: 0 0 20px fade(@cde-kungfu, 60%); + line-height: 1; + font-family: serif; + } + + .cde-tinji-label { + font-size: 11px; + font-family: "Orbitron", sans-serif; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-text; + opacity: 0.75; + } + + .cde-tinji-counter { + display: flex; + align-items: center; + gap: 8px; + margin: 4px 0; + } + + .cde-tinji-step { + width: 30px; + height: 30px; + background: @cde-surface2; + border: 1px solid @cde-border-hi; + border-radius: 50%; + color: @cde-text; + font-size: 18px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + line-height: 1; + padding: 0; + + &:hover { + background: fade(@cde-kungfu, 25%); + border-color: @cde-kungfu; + color: @cde-text; + } + } + + .cde-tinji-direct { + width: 72px; + background: transparent; + border: none; + border-bottom: 2px solid @cde-kungfu; + color: @cde-kungfu; + font-size: 36px; + font-weight: 700; + text-align: center; + text-shadow: 0 0 12px fade(@cde-kungfu, 50%); + padding: 0; + + &:focus { outline: none; } + &[disabled] { opacity: 0.7; cursor: default; } + } + + .cde-tinji-hint { + font-size: 10px; + color: @cde-muted; + text-align: center; + } + + .cde-tinji-actions { + display: flex; + gap: 6px; + margin-top: 6px; + } + + .cde-tinji-spend-btn, + .cde-tinji-reset-btn { + display: flex; + align-items: center; + gap: 5px; + padding: 6px 12px; + font-size: 11px; + font-weight: 600; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s; + letter-spacing: 0.03em; + } + + .cde-tinji-spend-btn { + background: fade(@cde-kungfu, 25%); + border: 1px solid @cde-kungfu; + color: @cde-text; + + &:hover { background: fade(@cde-kungfu, 45%); border-color: lighten(@cde-kungfu, 10%); } + &[disabled] { opacity: 0.55; cursor: not-allowed; pointer-events: none; } + } + + .cde-tinji-reset-btn { + background: @cde-surface2; + border: 1px solid @cde-border-hi; + color: @cde-text; + opacity: 0.85; + + &:hover { border-color: @cde-text; opacity: 1; } + } + + .cde-tinji-visual { + width: 90px; + height: auto; + opacity: 0.85; + flex-shrink: 0; + } +} + +// Chat Tin Ji spend message +.cde-tinji-spend-msg { + display: flex; + align-items: center; + gap: 8px; + font-size: 13px; + padding: 8px 10px; + background: fade(@cde-kungfu, 18%); + border: 1px solid fade(@cde-kungfu, 35%); + border-left: 4px solid @cde-kungfu; + border-radius: 4px; + color: @cde-text; + + .cde-tinji-icon { + font-size: 18px; + color: @cde-kungfu; + text-shadow: 0 0 6px fade(@cde-kungfu, 70%); + flex-shrink: 0; + font-weight: 700; + line-height: 1; + } + + i { + color: @cde-kungfu; + font-size: 15px; + filter: drop-shadow(0 0 4px fade(@cde-kungfu, 60%)); + flex-shrink: 0; + } + + strong { + color: @cde-kungfu; + font-size: 13px; + letter-spacing: 0.02em; + } + + .cde-tinji-remain { + margin-left: auto; + font-size: 11px; + color: fade(@cde-text, 65%); + font-style: italic; + white-space: nowrap; + } +} + +// Post-roll Loksyu draw message — rich notification card +.cde-loksyu-draw-msg { + display: flex; + flex-direction: column; + gap: 5px; + font-size: 12px; + padding: 9px 11px; + background: linear-gradient(135deg, fade(@cde-item, 10%) 0%, fade(@cde-surface, 95%) 100%); + border: 1px solid fade(@cde-item, 40%); + border-left: 4px solid @cde-item; + border-radius: 5px; + color: @cde-text; + box-shadow: 0 2px 8px fade(@cde-item, 12%); + + .cde-loksyu-draw-header { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 5px; + font-size: 13px; + line-height: 1.4; + } + + .cde-loksyu-draw-aspect-icon { + width: 20px; + height: 20px; + object-fit: contain; + filter: drop-shadow(0 0 4px fade(@cde-item, 60%)); + flex-shrink: 0; + } + + .cde-loksyu-draw-user { + font-weight: 700; + color: @cde-item; + letter-spacing: 0.03em; + } + + .cde-loksyu-draw-action { + color: fade(@cde-text, 65%); + font-size: 12px; + font-style: italic; + } + + .cde-loksyu-draw-type { + font-weight: 700; + font-size: 13px; + color: #c9a227; + text-transform: uppercase; + letter-spacing: 0.05em; + text-shadow: 0 0 6px fade(#c9a227, 40%); + } + + .cde-loksyu-draw-from { + color: fade(@cde-text, 60%); + font-size: 11px; + + em { + color: @cde-item; + font-style: normal; + font-weight: 600; + } + } + + .cde-loksyu-draw-footer { + display: flex; + align-items: center; + gap: 5px; + font-size: 11px; + color: fade(@cde-text, 55%); + padding-top: 4px; + border-top: 1px solid fade(@cde-item, 20%); + + i { + color: @cde-item; + font-size: 10px; + } + + .cde-loksyu-remain { + color: @cde-item; + font-weight: 700; + } + } +} + +// Post-roll action buttons section inside a roll-result card +.cde-roll-actions { + margin-top: 10px; + padding-top: 8px; + border-top: 1px solid fade(@cde-border, 60%); + + .cde-roll-actions-title { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: fade(@cde-text, 50%); + margin-bottom: 6px; + display: flex; + align-items: center; + gap: 4px; + + i { font-size: 9px; } + } + + .cde-roll-actions-btns { + display: flex; + flex-wrap: wrap; + gap: 5px; + } + + .cde-roll-action-btn { + display: flex; + align-items: center; + gap: 5px; + padding: 4px 8px; + font-size: 11px; + font-family: "Courier New", Courier, monospace; + border-radius: 3px; + border: 1px solid fade(@cde-border, 80%); + background: fade(@cde-surface, 90%); + color: @cde-text; + cursor: pointer; + transition: background 0.15s, border-color 0.15s, box-shadow 0.15s; + pointer-events: auto; + line-height: 1.4; + + &:hover:not(:disabled) { + border-color: fade(@cde-item, 70%); + background: fade(@cde-item, 12%); + box-shadow: 0 0 6px fade(@cde-item, 25%); + color: @cde-item; + } + + &:disabled { + opacity: 0.35; + cursor: not-allowed; + } + + .cde-roll-action-icon { + width: 16px; + height: 16px; + object-fit: contain; + filter: drop-shadow(0 0 2px fade(@cde-item, 40%)); + } + + .cde-roll-action-label { + flex: 1; + } + + .cde-roll-action-count { + background: fade(@cde-border, 60%); + border-radius: 2px; + padding: 1px 4px; + font-size: 10px; + font-weight: 700; + min-width: 18px; + text-align: center; + } + + .cde-roll-action-tinji-char { + font-size: 14px; + line-height: 1; + color: @cde-kungfu; + text-shadow: 0 0 4px fade(@cde-kungfu, 60%); + } + + &.cde-roll-action--success { + &:hover:not(:disabled) { + border-color: fade(#c9a227, 70%); + background: fade(#c9a227, 10%); + box-shadow: 0 0 6px fade(#c9a227, 25%); + color: #c9a227; + } + } + + &.cde-roll-action--faste { + &:hover:not(:disabled) { + border-color: fade(@cde-item, 70%); + background: fade(@cde-item, 10%); + box-shadow: 0 0 6px fade(@cde-item, 25%); + color: @cde-item; + } + } + + &.cde-roll-action--tinji { + &:hover:not(:disabled) { + border-color: fade(@cde-kungfu, 70%); + background: fade(@cde-kungfu, 12%); + box-shadow: 0 0 6px fade(@cde-kungfu, 30%); + color: @cde-kungfu; + + .cde-roll-action-count { + background: fade(@cde-kungfu, 25%); + } + } + } + } +} + +.cde-loksyu-grid { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: @cde-gap; + padding: @cde-gap 0; +} + +.cde-element-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 10px 8px; + display: flex; + flex-direction: column; + gap: 8px; + box-shadow: @cde-shadow-sm; + transition: border-color 0.15s, box-shadow 0.15s; + + &:hover { box-shadow: @cde-shadow; } +} + +// Per-element color theming using LESS variables +.cde-element--wood { border-top: 3px solid @wu-green; .cde-element-name { color: @wu-green; text-shadow: 0 0 6px fade(@wu-green, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-green); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-green, 70%); } } +.cde-element--fire { border-top: 3px solid @wu-red; .cde-element-name { color: @wu-red; text-shadow: 0 0 6px fade(@wu-red, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-red); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-red, 70%); } } +.cde-element--earth { border-top: 3px solid @wu-brown; .cde-element-name { color: @wu-brown; text-shadow: 0 0 6px fade(@wu-brown, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-brown); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-brown, 70%); } } +.cde-element--metal { border-top: 3px solid @wu-gray; .cde-element-name { color: @wu-gray; text-shadow: 0 0 6px fade(@wu-gray, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-gray); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-gray, 70%); } } +.cde-element--water { border-top: 3px solid @wu-blue; .cde-element-name { color: @wu-blue; text-shadow: 0 0 6px fade(@wu-blue, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-blue); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-blue, 70%); } } + +// Input focus per element +.cde-element--wood .cde-element-polarity input:focus { border-bottom-color: @wu-green; box-shadow: 0 1px 0 0 @wu-green; } +.cde-element--fire .cde-element-polarity input:focus { border-bottom-color: @wu-red; box-shadow: 0 1px 0 0 @wu-red; } +.cde-element--earth .cde-element-polarity input:focus { border-bottom-color: @wu-brown; box-shadow: 0 1px 0 0 @wu-brown; } +.cde-element--metal .cde-element-polarity input:focus { border-bottom-color: @wu-gray; box-shadow: 0 1px 0 0 @wu-gray; } +.cde-element--water .cde-element-polarity input:focus { border-bottom-color: @wu-blue; box-shadow: 0 1px 0 0 @wu-blue; } + +.cde-element-header { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + text-align: center; +} + +.cde-element-img { + width: 36px; + height: 36px; + object-fit: contain; + filter: drop-shadow(0 0 4px var(--el-color)); +} + +.cde-element-titles { + display: flex; + flex-direction: column; + gap: 2px; +} + +.cde-element-name { + font-family: "Averia", sans-serif; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; // overridden per-element below + white-space: nowrap; +} + +.cde-element-qualities { + font-size: 9px; + color: @cde-muted; + font-style: italic; + line-height: 1.3; + text-align: center; + display: none; // hidden on small width, shown via media query if needed +} + +.cde-element-values { + display: flex; + flex-direction: column; + gap: 4px; +} + +.cde-element-polarity { + display: flex; + align-items: center; + gap: 6px; + padding: 3px 6px; + border-radius: 4px; + background: fade(@cde-bg, 60%); + + &--yin { border-left: 2px solid fade(@cde-muted, 40%); } +} + +.cde-polarity-label { + font-size: 9px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + white-space: nowrap; + min-width: 32px; +} + +.cde-element-polarity input { + width: 40px; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + font-size: 14px; + font-weight: 700; + text-align: center; + padding: 2px 0; + outline: none; +} + +.cde-loksyu-visual-row { + display: flex; + justify-content: center; + padding-top: @cde-gap; + + .loksyu-visual { + max-width: 100%; + height: auto; + opacity: 0.7; + border-radius: @cde-radius; + border: 1px solid @cde-border; + } +} + +// ============================================================ +// Tin Ji — enhanced display +// ============================================================ +.cde-tinji-layout { + display: flex; + align-items: center; + justify-content: space-between; + gap: @cde-gap * 2; + padding: @cde-gap; + flex-wrap: wrap; +} + +.cde-tinji-main { + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; + flex: 1; +} + +.cde-tinji-chinese { + font-size: 48px; + color: @cde-supernatural; + text-shadow: 0 0 20px fade(@cde-supernatural, 60%); + line-height: 1; + letter-spacing: 0.1em; +} + +.cde-tinji-subtitle { + font-family: "Averia", sans-serif; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.2em; + color: @cde-muted; +} + +.cde-tinji-value-wrapper { + display: flex; + align-items: center; + justify-content: center; + + .cde-tinji-input { + width: 80px; + text-align: center; + font-size: 36px; + font-weight: 700; + color: @cde-supernatural; + text-shadow: 0 0 12px fade(@cde-supernatural, 50%); + border: none; + border-bottom: 2px solid @cde-supernatural; + background: transparent; + outline: none; + padding: 4px 0; + + &:focus { + border-bottom-color: lighten(@cde-supernatural, 15%); + box-shadow: 0 2px 0 0 fade(@cde-supernatural, 60%); + } + } +} + +.cde-tinji-hint { + font-size: 10px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.12em; + text-align: center; +} + +.tinji-visual { + max-height: 280px; + max-width: 200px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; +} + +// ============================================================ +// Weapon roll button + dialog +// ============================================================ + +.cde-weapon-roll-btn { + color: @cde-weapon !important; + &:hover { text-shadow: 0 0 6px fade(@cde-weapon, 60%); } +} + +.cde-item-damage { + color: @cde-weapon; + font-weight: 700; +} + +.cde-weapon-prompt { + // Weapon info bar at top of dialog + .cde-weapon-info-bar { + display: flex; + align-items: center; + gap: 10px; + padding: 10px 12px; + background: fade(@cde-weapon, 8%); + border: 1px solid fade(@cde-weapon, 30%); + border-radius: @cde-radius; + margin-bottom: @cde-gap; + + .cde-weapon-aspect-icon { + width: 36px; + height: 36px; + object-fit: contain; + } + + .cde-weapon-info-text { + flex: 1; + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-weapon-info-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + } + + .cde-weapon-info-meta { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-weapon-info-badge { + font-size: 20px; + color: fade(@cde-weapon, 50%); + } + } +} + +// Weapon damage result in chat card +.cde-rr-weapon-damage { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + background: fade(@cde-weapon, 10%); + border-top: 1px solid fade(@cde-weapon, 30%); + border-bottom: 1px solid fade(@cde-weapon, 30%); + margin: 4px 0; + + .cde-rr-weapon-icon { + font-size: 16px; + color: @cde-weapon; + text-shadow: 0 0 6px fade(@cde-weapon, 50%); + flex-shrink: 0; + } + + .cde-rr-weapon-text { + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-rr-weapon-name { + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + .cde-rr-weapon-calc { + font-size: 12px; + color: @cde-text; + } + + .cde-rr-weapon-total { + font-size: 16px; + font-weight: 900; + color: @cde-weapon; + text-shadow: 0 0 8px fade(@cde-weapon, 60%); + margin: 0 2px; + } + + .cde-rr-weapon-unit { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + } +} + +// ============================================================ +// Magics tab — components grid + magic cards +// ============================================================ + +.cde-section-label { + display: flex; + align-items: center; + gap: 8px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-muted; + border-bottom: 1px solid @cde-border; + padding-bottom: 6px; + margin-bottom: 10px; + + i { font-size: 11px; } + + &--top-margin { margin-top: 18px; } +} + +// 2-column grid for the 10 components +.cde-components-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; + margin-bottom: 10px; +} + +.cde-component-cell { + display: flex; + align-items: center; + gap: 8px; + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 4px 8px; + + &:hover { border-color: @cde-border-hi; } +} + +.cde-component-die { + width: 28px; + height: 28px; + object-fit: contain; + flex-shrink: 0; + opacity: 0.85; +} + +.cde-component-input { + flex: 1; + background: transparent; + border: none; + border-bottom: 1px solid transparent; + color: @cde-text; + font-size: 12px; + padding: 2px 0; + + &:focus { + outline: none; + border-bottom-color: @cde-spell; + } + + &::placeholder { color: @cde-muted; font-style: italic; font-size: 11px; } +} + +.cde-component-random-row { + display: flex; + justify-content: center; + margin-bottom: 4px; +} + +.cde-btn-random-component { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 6px 16px; + background: fade(@cde-spell, 8%); + border: 1px solid fade(@cde-spell, 35%); + border-radius: @cde-radius; + color: @cde-spell; + font-family: "Averia", sans-serif; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.08em; + cursor: pointer; + transition: background 0.15s, box-shadow 0.15s; + + i { font-size: 14px; } + + &:hover { + background: fade(@cde-spell, 16%); + box-shadow: 0 0 8px fade(@cde-spell, 30%); + } +} + +// === Magic type cards === +.cde-magic-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-left: 3px solid @cde-border-hi; + border-radius: @cde-radius; + margin-bottom: 8px; + overflow: hidden; + box-shadow: @cde-shadow-sm; +} + +.cde-magic-header { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 10px; +} + +.cde-magic-aspect-icon { + width: 32px; + height: 32px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-magic-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 1px; + min-width: 0; +} + +.cde-magic-name { + font-family: "Averia", sans-serif; + font-size: 13px; + font-weight: 700; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-magic-aspect-name { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + font-family: "Averia", sans-serif; +} + +.cde-magic-value-input { + width: 52px; + flex-shrink: 0; +} + +.cde-magic-roll-btn { + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + transition: background 0.15s; + flex-shrink: 0; + + i { font-size: 15px; } + + &:hover { background: fade(@cde-spell, 15%); } +} + +.cde-magic-toggle { + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + + input[type="checkbox"] { display: none; } + + i { font-size: 11px; transition: color 0.15s; } + + &:hover i { color: @cde-text; } +} + +// Specialities list +.cde-magic-specialities { + border-top: 1px solid @cde-border; + padding: 4px 0; +} + +.cde-magic-spec-row { + display: flex; + align-items: center; + gap: 8px; + padding: 5px 10px 5px 42px; // indent aligned with aspect icon + opacity: 0.55; + transition: opacity 0.12s, background 0.12s; + + &:hover { opacity: 1; background: fade(@cde-border-hi, 30%); } + &--active { opacity: 1; } +} + +.cde-magic-spec-check-label { + display: flex; + align-items: center; + cursor: pointer; + flex-shrink: 0; + + input[type="checkbox"] { display: none; } + + .cde-spec-checkbox-ui { + width: 14px; + height: 14px; + border: 1px solid @cde-muted; + border-radius: 3px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: border-color 0.12s, background 0.12s; + } + + input:checked + .cde-spec-checkbox-ui { + background: @cde-spell; + border-color: @cde-spell; + + &::after { + content: "✓"; + font-size: 9px; + color: @cde-bg; + line-height: 1; + } + } +} + +.cde-magic-spec-element { + width: 18px; + height: 18px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-magic-spec-polarity { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + width: 42px; + flex-shrink: 0; + + &.icon-yin { color: @cde-supernatural; } + &.icon-yang { color: @cde-item; } + &.icon-yinyang { color: @cde-spell; } +} + +.cde-magic-spec-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; +} + +.cde-magic-spec-roll-btn { + width: 26px; + height: 26px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + transition: color 0.15s, background 0.15s; + + i { font-size: 12px; } + + &:hover { color: @cde-spell; background: fade(@cde-spell, 12%); } +} + +// Per-magic accent colors using direct Wu Xing LESS variables +.cde-magic--internalcinnabar { + border-left-color: @wu-gray; + .cde-magic-name { color: lighten(@wu-gray, 20%); } + .cde-magic-roll-btn i { color: @wu-gray; } +} +.cde-magic--alchemy { + border-left-color: @wu-blue; + .cde-magic-name { color: lighten(@wu-blue, 15%); } + .cde-magic-roll-btn i { color: @wu-blue; } +} +.cde-magic--masteryoftheway { + border-left-color: @wu-brown; + .cde-magic-name { color: lighten(@wu-brown, 20%); } + .cde-magic-roll-btn i { color: lighten(@wu-brown, 10%); } +} +.cde-magic--exorcism { + border-left-color: @wu-red; + .cde-magic-name { color: lighten(@wu-red, 20%); } + .cde-magic-roll-btn i { color: @wu-red; } +} +.cde-magic--geomancy { + border-left-color: @wu-green; + .cde-magic-name { color: lighten(@wu-green, 15%); } + .cde-magic-roll-btn i { color: @wu-green; } +} + +// ===================================================================== +// GRIMOIRE (spell list integrated in magic discipline cards) +// ===================================================================== + +.cde-grimoire-section { + border-top: 1px dashed fade(@cde-border, 60%); + margin-top: 6px; + padding-top: 6px; +} + +.cde-grimoire-header { + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + + i { font-size: 10px; color: @cde-spell; } + + span { flex: 1; } +} + +.cde-grimoire-add { + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + border-radius: 3px; + cursor: pointer; + color: @cde-muted; + transition: color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-spell; background: fade(@cde-spell, 15%); } +} + +.cde-grimoire-list { + list-style: none; + margin: 0; + padding: 0; +} + +.cde-grimoire-entry { + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px 4px 14px; + border-bottom: 1px solid fade(@cde-border, 40%); + transition: background 0.1s; + + &:last-child { border-bottom: none; } + + &:hover { + background: fade(@cde-border, 25%); + + .cde-grimoire-controls { opacity: 1; } + } +} + +.cde-grimoire-img { + width: 18px; + height: 18px; + object-fit: contain; + border-radius: 2px; + flex-shrink: 0; +} + +.cde-grimoire-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-grimoire-meta { + display: flex; + align-items: center; + gap: 8px; + font-size: 10px; + color: @cde-muted; + flex-shrink: 0; + + em { + color: @cde-spell; + font-style: normal; + font-size: 10px; + max-width: 80px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} + +.cde-grimoire-diff, .cde-grimoire-hei { + display: flex; + align-items: center; + gap: 3px; + + i { font-size: 9px; } +} + +.cde-grimoire-diff { color: @cde-muted; } +.cde-grimoire-hei { color: @cde-kungfu; } + +.cde-grimoire-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-grimoire-empty { + padding: 4px 14px 8px; + font-size: 11px; + color: @cde-muted; + font-style: italic; + margin: 0; +} + +// ===================================================================== +// KUNG-FU CARDS (actor tab redesign) +// ===================================================================== + +.cde-kf-add-row { + display: flex; + justify-content: flex-end; + padding: 4px 0 8px; +} + +.cde-kf-add-btn { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + cursor: pointer; + padding: 4px 10px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + transition: color 0.12s, border-color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-kungfu; border-color: @cde-kungfu; background: fade(@cde-kungfu, 8%); } +} + +.cde-kf-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-kungfu; + border-radius: @cde-radius; + background: fade(@cde-surface, 70%); + margin-bottom: 10px; + overflow: hidden; + transition: box-shadow 0.15s; + + &:hover { box-shadow: 0 0 8px fade(@cde-kungfu, 20%); } + + &.cde-kf--metal { border-left-color: @wu-gray; } + &.cde-kf--eau { border-left-color: @wu-blue; } + &.cde-kf--terre { border-left-color: lighten(@wu-brown, 10%); } + &.cde-kf--feu { border-left-color: @wu-red; } + &.cde-kf--bois { border-left-color: @wu-green; } +} + +.cde-kf-header { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; + + &:hover .cde-kf-controls { opacity: 1; } +} + +.cde-kf-aspect-icon { + width: 26px; + height: 26px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-kf-orient-icon { + width: 18px; + height: 18px; + object-fit: contain; + flex-shrink: 0; + opacity: 0.75; +} + +.cde-kf-info { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.cde-kf-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-kf-meta { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + + em { color: @cde-text; font-style: normal; } +} + +.cde-kf-roll-btn { + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + transition: color 0.15s, background 0.15s; + + i { font-size: 14px; } + + &:hover { color: @cde-kungfu; background: fade(@cde-kungfu, 15%); } +} + +.cde-kf-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 22px; + height: 22px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 11px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-kf-style-row { + display: flex; + align-items: baseline; + gap: 8px; + padding: 4px 12px 6px 44px; + border-top: 1px solid fade(@cde-border, 60%); + background: fade(@cde-surface, 40%); +} + +.cde-kf-style-label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-kungfu; + flex-shrink: 0; + + i { font-size: 9px; } +} + +.cde-kf-style-text { + font-size: 11px; + color: @cde-text; + font-family: "Averia", sans-serif; + font-style: italic; +} + +.cde-kf-techniques { + list-style: none; + margin: 0; + padding: 0; + border-top: 1px solid fade(@cde-border, 50%); +} + +.cde-kf-tech { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 12px 5px 44px; + border-bottom: 1px solid fade(@cde-border, 30%); + opacity: 0.5; + transition: opacity 0.1s, background 0.1s; + + &:last-child { border-bottom: none; } + &--mastered { opacity: 1; } + &:hover { background: fade(@cde-border, 20%); opacity: 1; } +} + +.cde-kf-tech-mastered { + font-size: 11px; + flex-shrink: 0; + width: 14px; + text-align: center; + + .cde-kf-tech--mastered & { color: @cde-kungfu; } + .cde-kf-tech:not(.cde-kf-tech--mastered) & { color: @cde-muted; } +} + +.cde-act-badge { + font-size: 9px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.05em; + padding: 2px 5px; + border-radius: 3px; + flex-shrink: 0; + max-width: 110px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border: 1px solid currentColor; + + &.cde-act--action-attack { color: @wu-red; background: fade(@wu-red, 10%); } + &.cde-act--action-defense { color: @wu-blue; background: fade(@wu-blue, 10%); } + &.cde-act--action-aid { color: @wu-green; background: fade(@wu-green, 10%); } + &.cde-act--action-attack-defense { color: @wu-gray; background: fade(@wu-gray, 12%); } + &.cde-act--reaction { color: @wu-brown; background: fade(@wu-brown, 12%); } + &.cde-act--dice { color: @cde-spell; background: fade(@cde-spell, 10%); } + &.cde-act--damage-inflicted { color: @cde-weapon; background: fade(@cde-weapon, 10%); } + &.cde-act--damage-received { color: @cde-muted; background: fade(@cde-border, 20%); } +} + +.cde-kf-tech-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + em { color: @cde-muted; } +} + +.cde-kf-empty { + padding: 16px; + text-align: center; + font-size: 12px; + color: @cde-muted; + font-style: italic; +} + +// Random component chat message +.cde-chat-random-component { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + padding: 8px 12px; +} + +.cde-chat-component-label { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; +} + +.cde-chat-component-value { + font-size: 16px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); +} + +// Legacy tabs (actor sheets still use cde-tabs) +.cde-tabs { + margin-top: @cde-gap; + border-bottom: 1px solid @cde-border; + + .item { + color: @cde-muted; + padding: 8px 12px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + + &:hover { color: @cde-text; } + + &.active { + color: @cde-item; + background: @cde-surface; + border: 1px solid @cde-border; + border-bottom: 1px solid @cde-surface; + border-radius: @cde-radius @cde-radius 0 0; + } + } +} + + +/* ============================================= + Global UI Rules + =============================================*/ + +#logo { + content: url("/systems/fvtt-chroniques-de-l-etrange/images/logo_jeu.webp"); + width: 100px; + height: 100px; + margin-left: 7px; + margin-top: -2px; +} + +#pause > img { + content: url("/systems/fvtt-chroniques-de-l-etrange/images/wheel.webp"); + height: 192px; + width: 192px; + top: -45px; + left: calc(50% - 96px); +} + +#pause.paused { + animation: none; +} + +a.compendium-name, +a.entry-name, +strong.ellipsis { + font-family: "Averia"; +} + + + +/* concerne les pages de journaux */ + +.journal-header input { + font-family: "Averia"; +} + +.journal-entry-page h1 { + font-family: "Averia"; + text-align: center; + color:hsla(249, 66%, 58%, 0.874); + border-bottom: 1px solid orange; + border-top: 1px solid orange; + border-top: 1px solid orange; + +} + +.journal-entry-page h2 { + font-family: "Averia"; + color:orange; + border-bottom: 0px; + border-top: 1px solid orange; +} + +.journal-entry-page h3, +.journal-entry-page h4, +.journal-entry-page h5, +.journal-entry-page h6 { + font-family: "Averia"; + color:hsla(249, 66%, 58%, 0.874); + border-bottom: 0px; +} + +/* concerne le Tchat */ + +#interface .chat-message .message-header img { + max-width: 80px; + border-radius: 5px; + border: 0.5px solid black; + /* max-width: 50px; */ + /* max-height: 50px; */ + margin-right: 4px; +} + +#interface .chat-message .message-header .message-sender { + width: 100px; +} + +// ============================================================ +// Three Treasures partial layout +// ============================================================ +.cde-flex-center-text { + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.cde-flex-center { + display: flex; + justify-content: center; + align-items: center; +} + +// ============================================================ +// Circle input — replaces cercle.webp overlay approach +// ============================================================ +.cde-circle-input { + width: 44px !important; + height: 44px !important; + border-radius: 50%; + border: 2px solid @cde-border-hi; + background: @cde-surface; + color: @cde-text; + text-align: center; + font-size: 1.1rem; + font-weight: 700; + padding: 0; + flex-shrink: 0; + display: inline-block !important; + line-height: 40px; + vertical-align: middle; + box-sizing: border-box; + + &:focus { + outline: none; + border-color: @cde-item; + box-shadow: 0 0 8px fade(@cde-item, 40%); + } + + &.cde-circle-sm { + width: 32px !important; + height: 32px !important; + font-size: 0.85rem; + line-height: 28px; + } +} + +// ============================================================ +// Skills table +// ============================================================ +.cde-skills-table { + width: 100%; + border-collapse: collapse; + + tr { border-bottom: 1px solid @cde-border; } + tr:last-child { border-bottom: none; } + + td { + padding: 3px 4px; + vertical-align: middle; + } + + td.click, td.noclick { + width: 30px; + min-width: 30px; + text-align: center; + cursor: pointer; + + &:hover img { filter: drop-shadow(0 0 5px @cde-item); } + } + + td.noclick { cursor: default; opacity: 0.4; } + + .cde-skill-label { + white-space: nowrap; + font-size: 0.8rem; + padding-right: 8px; + } + + .cde-val-cell { + width: 52px; + min-width: 52px; + text-align: center; + padding: 4px; + } + + .cde-spec-cell { + width: 100%; + input[type="text"] { width: 100%; } + } + + .cde-bonus-cell { + white-space: nowrap; + font-family: monospace; + font-size: 0.65rem; + color: @cde-muted; + padding: 0 6px; + } + + .cde-check-cell { width: 22px; text-align: center; } +} + +// ============================================================ +// Three Treasures layout (HEI / SAN-ZING / PTAO) +// ============================================================ +.cde-tt-block { + margin-bottom: 12px; + + .cde-tt-row { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + } + + .cde-tt-labels { + margin-bottom: 4px; + span { + width: 52px; + text-align: center; + font-family: "Averia", sans-serif; + font-size: 0.6rem; + text-transform: uppercase; + color: @cde-muted; + } + .cde-tt-center { width: 44px; } + } + + .cde-tt-yinyang { + width: 44px; + height: 44px; + opacity: 0.8; + } +} + +.cde-tt-sanzing { + margin-bottom: 12px; + + .cde-tt-sz-header, + .cde-tt-sz-row { + display: grid; + grid-template-columns: 36px 48px 1fr 48px 36px; + align-items: center; + gap: 6px; + padding: 4px 8px; + } + + .cde-tt-sz-header { + font-family: "Averia", sans-serif; + font-size: 0.6rem; + text-transform: uppercase; + color: @cde-muted; + text-align: center; + } + + .cde-tt-sz-row { + border-top: 1px solid @cde-border; + + .cde-circle-input { justify-self: center; } + } + + .cde-tt-level { + text-align: center; + font-family: monospace; + font-size: 0.75rem; + font-weight: 700; + color: @cde-muted; + } +} + +// ============================================================ +// Ng Hang — Aspects grid +// ============================================================ +.cde-aspects-header { + display: flex; + justify-content: center; + margin-bottom: 10px; + + .cde-aspects-logo { + max-height: 48px; + opacity: 0.7; + } +} + +.cde-aspects-grid { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 12px; +} + +.cde-aspect-card { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + padding: 10px 8px; + border-radius: 4px; + background: @cde-surface; + border: 1px solid @cde-border; + min-width: 88px; + flex: 1 1 88px; + max-width: 120px; + + .cde-aspect-top { + display: flex; + flex-direction: column; + align-items: center; + gap: 3px; + } + + .cde-aspect-gif { width: 36px; height: 36px; } + + .cde-aspect-name { + font-family: "Averia"; + font-size: 0.8rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + } + + .cde-aspect-roll { + display: flex; + align-items: center; + gap: 6px; + + .cde-roll-trigger { + cursor: pointer; + display: flex; + align-items: center; + + &:hover img { filter: drop-shadow(0 0 5px currentColor); } + } + } + + .cde-aspect-qual { + font-size: 0.6rem; + color: @cde-muted; + text-align: center; + line-height: 1.3; + } + + &.cde-aspect--fire { + border-color: @cde-kungfu; + .cde-aspect-name { color: @cde-kungfu; } + .cde-circle-input:focus { border-color: @cde-kungfu; box-shadow: 0 0 6px @cde-kungfu; } + } + + &.cde-aspect--wood { + border-color: #44bb44; + .cde-aspect-name { color: #55cc55; } + .cde-circle-input:focus { border-color: #55cc55; box-shadow: 0 0 6px #55cc55; } + } + + &.cde-aspect--earth { + border-color: #aa7722; + .cde-aspect-name { color: #cc9933; } + .cde-circle-input:focus { border-color: #cc9933; box-shadow: 0 0 6px #cc9933; } + } + + &.cde-aspect--water { + border-color: @cde-spell; + .cde-aspect-name { color: @cde-spell; } + .cde-circle-input:focus { border-color: @cde-spell; box-shadow: 0 0 6px @cde-spell; } + } + + &.cde-aspect--metal { + border-color: @cde-muted; + .cde-aspect-name { color: @cde-text; } + .cde-circle-input:focus { border-color: @cde-item; box-shadow: 0 0 6px @cde-item; } + } +} + +.cde-nghang-diagram { + display: flex; + justify-content: center; + margin-top: 8px; + + img { + max-width: 100%; + max-height: 180px; + opacity: 0.45; + border-radius: 4px; + cursor: zoom-in; + transition: opacity 0.2s ease, box-shadow 0.2s ease; + + &:hover { + opacity: 0.85; + box-shadow: 0 0 12px @cde-border-hi; + } + } +} + +.img-die-sm { + width: 27px !important; + height: 27px !important; + flex-shrink: 0; +} + +// ============================================================ +// Magics partial layout +// ============================================================ +.cde-magics-table { + td.image { + width: 2.2%; + &.td-die { width: 2%; } + } + td.value { width: 25%; } + td.td-spacer { width: 2.2%; } +} + +.chancethrow { + display: flex; + justify-content: center; + align-items: center; +} + +// ============================================================ +// Actor sheet item lists +// ============================================================ +.cde-item-group-label { + font-family: "Averia", sans-serif; + font-size: 0.65rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.15em; + color: @cde-muted; + padding: 2px 6px; + border-left: 2px solid @cde-border-hi; + margin: 8px 0 2px; + flex-shrink: 0; +} + +ol.item-list { + list-style: none; + margin: 0 0 4px; + padding: 0; + + li.item { + display: flex; + align-items: center; + gap: 8px; + padding: 3px 6px; + border-radius: 4px; + background: @cde-surface; + border: 1px solid @cde-border; + margin-bottom: 2px; + + img { border: none; border-radius: 3px; flex-shrink: 0; } + + h4.item-name { flex: 1 1 0; margin: 0; font-size: 13px; color: @cde-text; } + + .cde-item-stat { + font-family: monospace; + font-size: 11px; + color: @cde-muted; + } + + .item-controls { + display: flex; + gap: 4px; + flex-shrink: 0; + + a.item-control { + color: @cde-muted; + &:hover { color: @cde-text; } + } + } + } +} + +// ============================================================ +// Roll Prompt Dialogs (.cde-roll-prompt) +// ============================================================ + +.cde-roll-prompt { + background: @cde-bg; + color: @cde-text; + font-family: "Averia", sans-serif; + padding: 12px 14px; + + &.cde-roll-prompt--magic { + min-width: 340px; + } + + .cde-roll-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 8px; + margin-bottom: 10px; + border-bottom: 1px solid @cde-border; + } + + .cde-roll-title { + font-size: 13px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: @cde-text; + } + + .cde-roll-dice-count { + font-size: 36px; + font-weight: 900; + color: @cde-item; + line-height: 1; + text-align: center; + margin: 4px 0 8px; + text-shadow: 0 0 12px fade(@cde-item, 60%); + + .cde-roll-dice-label { + font-size: 14px; + font-weight: 600; + color: @cde-muted; + margin-left: 4px; + } + } + + .cde-roll-section { + margin-bottom: 8px; + + &.cde-roll-section--separator { + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px dashed @cde-border; + } + } + + .cde-roll-section-title { + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + margin: 0 0 6px; + } + + .cde-roll-fields { + display: flex; + flex-direction: column; + gap: 5px; + } + + .cde-roll-field { + display: flex; + align-items: center; + gap: 8px; + + label { + flex: 0 0 160px; + font-size: 11px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + select, + .cde-roll-input { + flex: 1; + background: @cde-surface; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-family: monospace; + font-size: 13px; + padding: 3px 6px; + border-radius: 2px; + + &:focus { + outline: none; + border-bottom-color: @cde-item; + box-shadow: 0 1px 0 0 @cde-item; + } + } + + select option { + background: @cde-surface; + color: @cde-text; + } + } + + .cde-roll-hint { + font-size: 10px; + color: @cde-muted; + margin: 4px 0 0; + font-style: italic; + } +} + +// ============================================================ +// Dice Roll Result in Chat (.cde-roll-result) +// ============================================================ + +// Wu Xing aspect color + icon custom properties +// Row order: [successes, auspicious, noxious, loksyu, tinji] +// Colors: wood=#41a436 fire=#cd171a earth=#a85747 metal=#70706e water=#009fe2 + +@wu-green: #41a436; +@wu-red: #cd171a; +@wu-brown: #a85747; +@wu-gray: #70706e; +@wu-blue: #009fe2; + +@wu-img-bois: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp)"; +@wu-img-feu: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp)"; +@wu-img-terre: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp)"; +@wu-img-metal: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp)"; +@wu-img-eau: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp)"; + +// Wu Xing aspect custom properties (accent color + icon per aspect) +// Sets --rr-accent on the card root, plus per-row --rr-color/--rr-icon +[data-aspect="wood"] { + --rr-accent: @wu-green; + --rr-accent-bg: fade(@wu-green, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--noxious { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--loksyu { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--tinji { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } +} +[data-aspect="fire"] { + --rr-accent: @wu-red; + --rr-accent-bg: fade(@wu-red, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--noxious { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--loksyu { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--tinji { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } +} +[data-aspect="earth"] { + --rr-accent: @wu-brown; + --rr-accent-bg: fade(@wu-brown, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--noxious { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--loksyu { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--tinji { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } +} +[data-aspect="metal"] { + --rr-accent: @wu-gray; + --rr-accent-bg: fade(@wu-gray, 16%); + .cde-rr-row--auspicious { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--noxious { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--loksyu { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--tinji { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } +} +[data-aspect="water"] { + --rr-accent: @wu-blue; + --rr-accent-bg: fade(@wu-blue, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--noxious { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--loksyu { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--tinji { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } +} + +.cde-roll-result { + background: @cde-bg; + color: @cde-text; + font-family: 'Share Tech Mono', monospace; + border-radius: 4px; + border: 1px solid @cde-border; + overflow: hidden; + + // ---- Header ---- + .cde-rr-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px; + background: var(--rr-accent-bg, fade(@cde-surface, 80%)); + border-left: 4px solid var(--rr-accent, @cde-border); + border-bottom: 1px solid @cde-border; + gap: 8px; + + .cde-rr-header-left { + display: flex; + align-items: center; + gap: 10px; + flex: 1; + } + + .cde-rr-aspect-icon { + width: 32px; + height: 32px; + object-fit: contain; + filter: drop-shadow(0 0 4px var(--rr-accent, @cde-border)); + border: none; + } + + .cde-rr-header-text { + display: flex; + flex-direction: column; + } + + .cde-rr-aspect-label { + font-size: 11px; + font-weight: 900; + text-transform: uppercase; + letter-spacing: 0.12em; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 6px var(--rr-accent, transparent); + } + + .cde-rr-roll-label { + font-size: 13px; + font-weight: 600; + color: @cde-text; + } + + .cde-rr-header-right { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 2px; + } + + .cde-rr-actor-avatar { + width: 28px; + height: 28px; + border-radius: 50%; + border: 1px solid var(--rr-accent, @cde-border); + object-fit: cover; + } + + .cde-rr-actor-name { + font-size: 9px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + } + + // ---- Hero: successes count ---- + .cde-rr-hero { + display: flex; + align-items: center; + gap: 12px; + padding: 10px 16px; + background: fade(@cde-surface, 40%); + + .cde-rr-hero-count { + font-size: 48px; + font-weight: 900; + line-height: 1; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 16px var(--rr-accent, transparent), 0 0 32px var(--rr-accent, transparent); + } + + .cde-rr-hero-right { + display: flex; + flex-direction: column; + } + + .cde-rr-hero-label { + font-size: 11px; + font-weight: 900; + text-transform: uppercase; + letter-spacing: 0.1em; + color: var(--rr-accent, @cde-text); + } + + .cde-rr-hero-dice { + font-size: 13px; + color: @cde-muted; + margin-top: 2px; + } + + .cde-rr-hero-dice-label { + font-size: 10px; + } + + .cde-rr-spell-power { + margin-left: auto; + display: flex; + flex-direction: column; + align-items: flex-end; + border-left: 2px solid var(--rr-accent, @cde-border); + padding-left: 10px; + + .cde-rr-spell-power-count { + font-size: 32px; + font-weight: 900; + line-height: 1; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 12px var(--rr-accent, transparent); + } + + .cde-rr-spell-power-label { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + } + } + + // Loksyu bonus badge (shown when dice drawn from Loksyu) + .cde-rr-loksyu-bonus { + display: inline-flex; + align-items: center; + gap: 3px; + font-size: 13px; + font-weight: 700; + padding: 2px 6px; + border-radius: 3px; + animation: cde-pulse-in 0.3s ease; + + &.cde-rr-loksyu-bonus--success { + background: fade(#c9a227, 20%); + border: 1px solid fade(#c9a227, 50%); + color: #c9a227; + text-shadow: 0 0 6px fade(#c9a227, 60%); + } + + &.cde-rr-loksyu-bonus--faste { + background: fade(@cde-item, 15%); + border: 1px solid fade(@cde-item, 40%); + color: @cde-item; + text-shadow: 0 0 6px fade(@cde-item, 50%); + } + } + } + + @keyframes cde-pulse-in { + from { opacity: 0; transform: scale(0.7); } + to { opacity: 1; transform: scale(1); } + } + + // ---- Detail rows ---- + .cde-rr-details { + display: flex; + flex-direction: column; + gap: 2px; + padding: 6px 10px; + } + + .cde-rr-row { + display: flex; + align-items: center; + gap: 8px; + padding: 3px 6px; + border-radius: 3px; + background: fade(@cde-surface, 60%); + color: var(--rr-color, @cde-muted); + + .cde-rr-count { + font-size: 18px; + font-weight: 900; + line-height: 1; + min-width: 26px; + text-align: center; + text-shadow: 0 0 6px currentColor; + } + + // Inline Loksyu bonus badge in detail rows + .cde-rr-loksyu-bonus { + font-size: 10px; + font-weight: 700; + padding: 1px 4px; + border-radius: 2px; + background: fade(@cde-item, 15%); + border: 1px solid fade(@cde-item, 40%); + color: @cde-item; + text-shadow: 0 0 4px fade(@cde-item, 50%); + flex-shrink: 0; + } + + .cde-rr-icon { + width: 22px; + height: 22px; + background-image: var(--rr-icon); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + flex-shrink: 0; + opacity: 0.85; + } + + .cde-rr-label { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.07em; + flex: 1; + } + + .cde-rr-partition { + font-size: 9px; + color: @cde-muted; + margin-left: 4px; + } + } + + // ---- Footer modifiers ---- + .cde-rr-footer { + padding: 5px 12px; + border-top: 1px solid @cde-border; + background: fade(@cde-surface, 30%); + display: flex; + align-items: baseline; + gap: 6px; + + .cde-rr-footer-label { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + color: @cde-muted; + letter-spacing: 0.08em; + } + + .cde-rr-footer-text { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + } + + // ---- Dice face grid ---- + .cde-dice-grid { + display: grid; + grid-template-columns: repeat(10, 1fr); + gap: 3px; + padding: 8px 8px 6px; + border-top: 1px solid @cde-border; + + .cde-dice-cell { + display: flex; + flex-direction: column; + align-items: center; + gap: 1px; + + .cde-dice-count { + font-size: 12px; + font-weight: 700; + color: @cde-text; + line-height: 1; + } + + .cde-dice-plate { + width: 100%; + border: none; + opacity: 0.65; + } + } + } +} + + +// ============================================================ +// Initiative prompt dialog +// ============================================================ +.cde-initiative-prompt { + // Override: fields use vertical layout (label on top, control below) + // to avoid the fixed 160px label squeezing the select to 12px. + .cde-roll-field { + flex-direction: column; + align-items: stretch; + gap: 4px; + + label { + flex: none; + font-size: 10px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + select, .cde-roll-input { + flex: none; + width: 100%; + } + } + + .cde-initiative-base-row { + display: flex; + align-items: flex-end; + gap: 10px; + flex-wrap: nowrap; + } + + .cde-initiative-base-field { + flex-shrink: 0; + min-width: 70px; + } + + .cde-initiative-base-value { + display: block; + font-size: 22px; + font-weight: 800; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); + text-align: center; + line-height: 1; + padding: 4px 0; + } + + .cde-initiative-op { + font-size: 18px; + font-weight: 700; + color: @cde-muted; + padding-bottom: 6px; + flex-shrink: 0; + align-self: flex-end; + } + + .cde-initiative-action-field { + flex: 1; + min-width: 0; + } + + .cde-initiative-select { + width: 100%; + } + + .cde-initiative-hint { + font-size: 10px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-align: center; + letter-spacing: 0.05em; + padding: 4px 0 0; + border-top: 1px solid @cde-border; + margin-top: 4px; + } + + .cde-initiative-icon { + font-size: 20px; + color: @cde-spell; + } +} + +// ============================================================ +// Initiative chat result card +// ============================================================ +.cde-initiative-result { + background: @cde-surface; + border: 1px solid @cde-border; + border-left: 4px solid @cde-spell; + border-radius: @cde-radius; + overflow: hidden; + color: @cde-text; + + .cde-ir-header { + display: flex; + align-items: center; + gap: 10px; + padding: 10px 12px; + background: fade(@cde-spell, 8%); + border-bottom: 1px solid @cde-border; + } + + .cde-ir-avatar { + width: 36px; + height: 36px; + border-radius: 50%; + border: 2px solid @cde-border; + object-fit: cover; + flex-shrink: 0; + } + + .cde-ir-actor-info { + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-ir-actor-name { + font-size: 13px; + font-weight: 700; + color: @cde-text; + } + + .cde-ir-roll-label { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-ir-formula { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 5px; + padding: 8px 12px; + background: fade(@cde-bg, 60%); + border-bottom: 1px solid @cde-border; + font-family: monospace; + font-size: 12px; + } + + .cde-ir-formula-base { + color: @cde-muted; + font-size: 11px; + } + + .cde-ir-formula-val { + font-weight: 700; + color: @cde-text; + font-size: 13px; + } + + .cde-ir-formula-mod { + color: @cde-kungfu; + } + + .cde-ir-formula-sep { + color: @cde-muted; + } + + .cde-ir-formula-eq { + color: @cde-muted; + font-size: 14px; + } + + .cde-ir-formula-total { + font-size: 16px; + font-weight: 800; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 50%); + } + + .cde-ir-hero { + display: flex; + align-items: center; + justify-content: center; + gap: 14px; + padding: 14px 12px; + } + + .cde-ir-init-value { + font-size: 48px; + font-weight: 900; + color: @cde-spell; + text-shadow: 0 0 12px fade(@cde-spell, 70%), 0 0 24px fade(@cde-spell, 35%); + line-height: 1; + font-family: 'Averia Regular', sans-serif; + } + + .cde-ir-hero-right { + display: flex; + flex-direction: column; + gap: 4px; + } + + .cde-ir-init-label { + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-ir-anti { + display: flex; + gap: 5px; + align-items: baseline; + } + + .cde-ir-anti-label { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + .cde-ir-anti-value { + font-size: 14px; + font-weight: 700; + color: @cde-kungfu; + text-shadow: 0 0 5px fade(@cde-kungfu, 40%); + } +} + + +/* ============================================================ + ROUE D'INITIATIVE — CDEWheelApp + ============================================================ */ + +// Wu Xing segment colours (match JS constants) +@wu-metal: #b8c4cc; +@wu-water: #3a7bd5; +@wu-earth: #c8a84b; +@wu-fire: #d94f3d; +@wu-wood: #4a9b5a; +@wu-reference: #2c1f6b; + +.cde-wheel-app { + color: @cde-text; + background: @cde-bg; + font-family: "Averia", "Averia Regular", sans-serif; + + .window-content { + padding: 0; + overflow: hidden; + } +} + +/* Two-column layout: SVG wheel left, panel right */ +.cde-wheel-layout { + display: flex; + height: 100%; + min-height: 520px; +} + +/* ---- Left: SVG wheel ---- */ +.cde-wheel-svg-container { + flex: 0 0 480px; + width: 480px; + padding: 12px 12px 6px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: @cde-surface2; + border-right: 1px solid @cde-border; + + svg { + flex: 1 1 auto; + width: 100%; + max-width: 456px; + max-height: 456px; + overflow: visible; + } + + .cde-wheel-legend { + display: flex; + align-items: center; + gap: 8px; + padding: 4px 0 2px; + font-size: 11px; + color: rgba(255,255,255,0.55); + flex-shrink: 0; + } + + .cde-wheel-legend-dot { + display: inline-block; + width: 10px; + height: 10px; + border-radius: 50%; + flex-shrink: 0; + } + + .cde-wheel-segment { + stroke: @cde-bg; + stroke-width: 1.5; + transition: opacity 0.2s; + } + + .cde-wheel-cran-label { + font-family: "Averia Regular", sans-serif; + font-size: 12px; + fill: rgba(255,255,255,0.55); + text-anchor: middle; + dominant-baseline: central; + pointer-events: none; + user-select: none; + } + + // Combatant token circle on the wheel + .cde-wheel-fighter-circle { + stroke-width: 2; + cursor: pointer; + transition: r 0.2s, stroke-width 0.2s; + + &:hover { + stroke-width: 3; + } + + &.is-active { + r: 18; + stroke-width: 3; + filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.7)); + } + + &.is-turn { + stroke-dasharray: 3 2; + animation: cde-spin 4s linear infinite; + } + } + + .cde-wheel-fighter-initial { + font-size: 13px; + font-weight: 700; + fill: #fff; + text-anchor: middle; + dominant-baseline: central; + pointer-events: none; + } +} + +/* ---- Right: panel ---- */ +.cde-wheel-panel { + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow: hidden; + padding: 0; + min-width: 0; +} + +.cde-wheel-section-title { + padding: 7px 12px 6px; + border-bottom: 1px solid @cde-border; + background: @cde-surface2; + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-muted; + border-left: 3px solid @cde-spell; + flex-shrink: 0; + + em { + font-style: normal; + color: @cde-text; + text-transform: none; + letter-spacing: 0; + font-size: 11px; + } +} + +/* Combatant list */ +.cde-wheel-combatants { + flex: 0 0 auto; + max-height: 130px; + overflow-y: auto; + border-bottom: 1px solid @cde-border; +} + +.cde-wheel-combatant { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 12px 6px 9px; + cursor: pointer; + border-bottom: 1px solid fade(@cde-border, 50%); + border-left: 3px solid transparent; + transition: background 0.15s, border-color 0.15s; + + &:last-child { border-bottom: none; } + + &:hover { + background: @cde-surface; + } + + &.cde-wheel-combatant--selected { + background: fade(@cde-spell, 10%); + border-left-color: @cde-spell; + + .cde-wheel-combatant-name { + color: @cde-text; + font-weight: 600; + } + } + + &.cde-wheel-combatant--active { + .cde-wheel-active-marker { + color: #f0c040; + filter: drop-shadow(0 0 3px #f0c040); + } + } +} + +.cde-wheel-combatant-img { + width: 30px; + height: 30px; + border-radius: 50%; + object-fit: cover; + border: 1.5px solid @cde-border-hi; + flex-shrink: 0; +} + +.cde-wheel-combatant-name { + flex: 1 1 auto; + font-size: 13px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: @cde-muted; +} + +.cde-wheel-combatant-cran { + font-size: 11px; + font-weight: 700; + font-variant-numeric: tabular-nums; + flex-shrink: 0; + min-width: 22px; + text-align: center; + padding: 2px 6px; + border-radius: 12px; + line-height: 1.3; +} + +.cde-wheel-active-marker { + font-size: 10px; + color: @cde-muted; + flex-shrink: 0; +} + +/* Action area */ +.cde-wheel-actions { + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; + padding: 8px 10px 10px; + gap: 6px; + + &.cde-wheel-actions--hint { + justify-content: center; + align-items: center; + } +} + +.cde-wheel-hint { + color: @cde-muted; + font-size: 12px; + text-align: center; + font-style: italic; + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + + i { + font-size: 22px; + opacity: 0.4; + } +} + +.cde-wheel-action-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 5px; +} + +.cde-wheel-action-btn { + display: flex; + align-items: center; + justify-content: space-between; + gap: 4px; + background: @cde-surface; + border: 1px solid @cde-border-hi; + border-radius: @cde-radius-sm; + color: @cde-muted; + font-size: 11px; + padding: 5px 7px; + cursor: pointer; + text-align: left; + transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s; + font-family: inherit; + + &:hover { + color: @cde-text; + background: @cde-border; + border-color: @cde-border-hi; + } + + .cde-wheel-action-name { + flex: 1 1 auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .cde-wheel-action-cost { + flex-shrink: 0; + font-weight: 700; + font-size: 10px; + padding: 1px 5px; + border-radius: 10px; + background: @cde-border-hi; + color: @cde-muted; + line-height: 1.4; + } + + &[data-cost="1"] { + &:hover { box-shadow: 0 0 6px fade(@cde-spell, 22%); } + .cde-wheel-action-cost { background: #1a3d6a; color: #6aadff; } + } + &[data-cost="2"] { + &:hover { box-shadow: 0 0 6px fade(#d4a050, 25%); } + .cde-wheel-action-cost { background: #4a3200; color: #d4a050; } + } + &[data-cost="3"] { + &:hover { box-shadow: 0 0 6px fade(#e06030, 28%); } + .cde-wheel-action-cost { background: #4a1800; color: #e07840; } + } + &[data-cost="6"] { + border-color: fade(#cc2040, 40%); + &:hover { box-shadow: 0 0 6px fade(#cc2040, 35%); } + .cde-wheel-action-cost { background: #4a0814; color: #e03050; } + } +} + +/* Special action buttons */ +.cde-wheel-special-actions { + display: flex; + gap: 6px; + margin-top: 2px; +} + +.cde-wheel-btn-roll, +.cde-wheel-btn-surprise { + flex: 1 1 0; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + border-radius: @cde-radius-sm; + font-size: 11px; + font-weight: 600; + padding: 7px 8px; + cursor: pointer; + font-family: inherit; + transition: background 0.15s, box-shadow 0.15s; + border: 1px solid; +} + +.cde-wheel-btn-roll { + background: fade(#c08a00, 14%); + border-color: fade(#c08a00, 50%); + color: #e0b030; + + &:hover { + background: fade(#c08a00, 26%); + box-shadow: 0 0 8px fade(#c08a00, 40%); + } +} + +.cde-wheel-btn-surprise { + background: fade(@cde-kungfu, 12%); + border-color: fade(@cde-kungfu, 45%); + color: @cde-kungfu; + + &:hover { + background: fade(@cde-kungfu, 24%); + box-shadow: 0 0 8px fade(@cde-kungfu, 35%); + } +} + +/* No-combat empty state */ +.cde-wheel-no-combat { + flex: 1 1 auto; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: @cde-muted; + gap: 8px; + padding: 20px; + text-align: center; + font-size: 12px; + + i { + font-size: 28px; + opacity: 0.4; + } +} + +/* Spin animation for active-turn token */ +@keyframes cde-spin { + from { transform-origin: var(--fx) var(--fy); transform: rotate(0deg); } + to { transform-origin: var(--fx) var(--fy); transform: rotate(360deg); } +} + +/* =================================================================== + Migration App + =================================================================== */ + +.cde-migration-app { + .window-content { + padding: 0; + overflow-y: auto; + } +} + +.cde-migration-body { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px; +} + +/* Drop zone */ +.cde-migration-drop-zone { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: 28px 20px; + border: 2px dashed @cde-border; + border-radius: 8px; + background: fadeout(@cde-surface2, 40%); + text-align: center; + transition: border-color 0.15s, background 0.15s; + cursor: pointer; + + &.is-dragover { + border-color: @cde-spell; + background: fadeout(@cde-spell, 85%); + } +} + +.cde-migration-drop-icon { + font-size: 36px; + color: @cde-spell; + opacity: 0.7; +} + +.cde-migration-drop-hint { + margin: 0; + font-size: 12px; + color: @cde-muted; +} + +.cde-migration-file-btn { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 6px 14px; + border: 1px solid @cde-spell; + border-radius: 4px; + color: @cde-spell; + font-size: 12px; + font-weight: 600; + cursor: pointer; + transition: background 0.15s; + + &:hover { + background: fadeout(@cde-spell, 80%); + } +} + +/* Preview section */ +.cde-migration-preview { + border: 1px solid @cde-border; + border-radius: 6px; + overflow: hidden; +} + +.cde-migration-preview-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px; + background: fadeout(@cde-surface2, 20%); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; +} + +.cde-migration-clear-btn { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 8px; + border: 1px solid @cde-border; + border-radius: 4px; + font-size: 11px; + color: @cde-muted; + background: none; + cursor: pointer; + transition: color 0.15s, border-color 0.15s; + + &:hover { + color: #e04444; + border-color: #e04444; + } +} + +/* Preview table */ +.cde-migration-table { + width: 100%; + border-collapse: collapse; + font-size: 12px; + + th { + padding: 5px 8px; + background: fadeout(@cde-surface2, 10%); + color: @cde-muted; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + text-align: left; + border-bottom: 1px solid @cde-border; + } + + td { + padding: 5px 8px; + border-bottom: 1px solid fadeout(@cde-border, 60%); + vertical-align: middle; + } + + tr:last-child td { + border-bottom: none; + } +} + +.cde-migration-thumb { + width: 28px; + height: 28px; + border-radius: 3px; + object-fit: cover; +} + +.cde-migration-name { + font-weight: 600; + color: @cde-text; +} + +.cde-migration-items-count { + text-align: center; + color: @cde-muted; +} + +.cde-migration-srcfile { + font-size: 10px; + color: @cde-muted; + max-width: 130px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Type badge */ +.cde-migration-type-badge { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 8px; + border-radius: 10px; + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + + &.cde-migration-type-character { + background: fadeout(@cde-spell, 80%); + color: @cde-spell; + border: 1px solid fadeout(@cde-spell, 60%); + } + + &.cde-migration-type-npc { + background: fadeout(#9c4dcc, 80%); + color: #c97ae0; + border: 1px solid fadeout(#9c4dcc, 60%); + } +} + +/* Errors */ +.cde-migration-errors { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + gap: 4px; + + li { + display: flex; + align-items: flex-start; + gap: 6px; + padding: 6px 10px; + border: 1px solid fadeout(#e04444, 40%); + border-radius: 4px; + background: fadeout(#e04444, 90%); + color: #e07070; + font-size: 11px; + + i { margin-top: 2px; flex-shrink: 0; } + } +} + +/* Bottom action bar */ +.cde-migration-actions { + display: flex; + justify-content: center; + padding-top: 4px; +} + +.cde-migration-import-btn { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 9px 24px; + border: none; + border-radius: 6px; + background: @cde-spell; + color: #fff; + font-size: 13px; + font-weight: 700; + cursor: pointer; + transition: filter 0.15s; + + &:hover { + filter: brightness(1.15); + } +} + +.cde-migration-hint { + margin: 0; + font-size: 12px; + color: @cde-muted; + text-align: center; +} + +// ============================================================ +// Welcome message +// ============================================================ + +.cde-welcome-message { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: 12px 16px; + background: @cde-surface; + border: 1px solid @cde-border-hi; + border-radius: 8px; + text-align: center; +} + +.cde-welcome-logo { + width: 120px; + height: auto; + object-fit: contain; + filter: drop-shadow(0 0 8px fade(@cde-spell, 40%)); +} + +.cde-welcome-title { + margin: 0; + font-size: 15px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); +} + +.cde-welcome-links { + margin: 0; + font-size: 12px; + color: @cde-muted; + + a { + color: @cde-item; + text-decoration: none; + border-bottom: 1px solid fade(@cde-item, 40%); + + &:hover { + color: #fff; + border-bottom-color: #fff; + } + } +} + +.cde-welcome-help-btn { + display: inline-flex; + align-items: center; + gap: 6px; + margin-top: 4px; + padding: 7px 18px; + background: @cde-spell; + border: none; + border-radius: 6px; + color: #fff; + font-size: 12px; + font-weight: 700; + cursor: pointer; + transition: filter 0.15s; + + &:hover { + filter: brightness(1.2); + } +} diff --git a/css/cde-theme.less.backup2 b/css/cde-theme.less.backup2 new file mode 100644 index 0000000..8d528d3 --- /dev/null +++ b/css/cde-theme.less.backup2 @@ -0,0 +1,4656 @@ + +/* ------------------------------------------- + Fonts + ---------------------------------------------*/ + +@font-face { + font-family: "Averia"; + src: url(../fonts/Averia-Regular.ttf); +} + +// ============================================================ +// Neo-Tokyo Neon Noir — Palette +// ============================================================ +@cde-bg: #080c14; +@cde-surface: #101622; +@cde-surface2: #0d1520; +@cde-border: #1a2436; +@cde-border-hi: #263853; +@cde-text: #e2e8f4; +@cde-muted: #7d94b8; + +// Accents néon par type +@cde-item: #00d4d4; +@cde-kungfu: #ff3d5a; +@cde-spell: #4a9eff; +@cde-supernatural: #cc44ff; +@cde-weapon: #ff6b35; +@cde-armor: #4ecdc4; +@cde-sanhei: #cc44ff; +@cde-ingredient: #98c379; + +@cde-shadow: 0 8px 32px rgba(0, 0, 0, 0.6); +@cde-shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.4); +@cde-radius: 8px; +@cde-radius-sm: 5px; +@cde-gap: 12px; + +// Glow helpers +.glow(@color) { box-shadow: 0 0 0 1px fade(@color, 35%), 0 0 12px fade(@color, 20%); } +.glow-text(@color) { text-shadow: 0 0 8px fade(@color, 60%); } + +// ============================================================ +// CSS Variables (for JS access) +// ============================================================ +.fvtt-chroniques-de-l-etrange { + --cde-bg: @cde-bg; + --cde-surface: @cde-surface; + --cde-border: @cde-border; + --cde-text: @cde-text; + --cde-muted: @cde-muted; + --cde-item: @cde-item; + --cde-kungfu: @cde-kungfu; + --cde-spell: @cde-spell; + --cde-supernatural: @cde-supernatural; + color: @cde-text; + background: @cde-bg; +} + +// ============================================================ +// Base sheet +// ============================================================ +.cde-sheet { + background: @cde-bg; + color: @cde-text; + font-family: "Averia", sans-serif; + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + overflow: hidden; + + input, textarea { + font-family: inherit; + color: @cde-text; + background: transparent; + } + + // Selects need an explicit dark background — transparent fails on native dropdowns + select { + font-family: inherit; + color: @cde-text; + background: @cde-surface; + border-radius: 2px; + } + + select option { + background: @cde-bg; + color: @cde-text; + } +} + +// ============================================================ +// Item-sheet Neon Header +// ============================================================ +.cde-neon-header { + position: relative; + background: @cde-surface; + display: grid; + grid-template-columns: 90px 1fr; + gap: 14px; + padding: 12px 14px 14px; + overflow: hidden; + // Angular clip on bottom-right corner + clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%); + + // Top accent line — overridden per type + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: @cde-border-hi; + } + + // Subtle neon scatter in background + &::after { + content: ""; + position: absolute; + inset: 0; + background: radial-gradient(ellipse at 0% 0%, fade(@cde-border-hi, 30%) 0%, transparent 50%); + pointer-events: none; + } + + // Per-type accent colors + &.item { &::before { background: @cde-item; box-shadow: 0 0 10px fade(@cde-item, 50%); } } + &.kungfu { &::before { background: @cde-kungfu; box-shadow: 0 0 10px fade(@cde-kungfu, 50%); } } + &.spell { &::before { background: @cde-spell; box-shadow: 0 0 10px fade(@cde-spell, 50%); } } + &.supernatural { &::before { background: @cde-supernatural; box-shadow: 0 0 10px fade(@cde-supernatural, 50%); } } + &.weapon { &::before { background: @cde-weapon; box-shadow: 0 0 10px fade(@cde-weapon, 50%); } } + &.armor { &::before { background: @cde-armor; box-shadow: 0 0 10px fade(@cde-armor, 50%); } } + &.sanhei { &::before { background: @cde-sanhei; box-shadow: 0 0 10px fade(@cde-sanhei, 50%); } } + &.ingredient { &::before { background: @cde-ingredient; box-shadow: 0 0 10px fade(@cde-ingredient, 50%); } } +} + +// Avatar inside neon header — angular clip +.cde-avatar { + width: 90px; + height: 90px; + object-fit: cover; + clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%); + border: 1px solid @cde-border-hi; + background: @cde-surface2; + cursor: pointer; + position: relative; + z-index: 1; +} + +// Header content zone +.cde-header-content { + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + gap: 8px; + min-width: 0; +} + +// Item name — flat neon-bottom-border input +.cde-item-name { + margin: 0; + + input { + width: 100%; + border: none; + border-bottom: 2px solid @cde-border-hi; + background: transparent; + color: @cde-text; + font-size: 18px; + font-family: "Averia", sans-serif; + font-weight: 700; + padding: 4px 0 6px; + letter-spacing: 0.04em; + text-transform: uppercase; + outline: none; + transition: border-color 0.15s; + + &:focus { + border-bottom-color: @cde-item; + } + } +} + +// Type-specific focus color on name input +.cde-neon-header.kungfu .cde-item-name input:focus { border-bottom-color: @cde-kungfu; } +.cde-neon-header.spell .cde-item-name input:focus { border-bottom-color: @cde-spell; } +.cde-neon-header.supernatural .cde-item-name input:focus { border-bottom-color: @cde-supernatural; } +.cde-neon-header.weapon .cde-item-name input:focus { border-bottom-color: @cde-weapon; } +.cde-neon-header.armor .cde-item-name input:focus { border-bottom-color: @cde-armor; } +.cde-neon-header.sanhei .cde-item-name input:focus { border-bottom-color: @cde-sanhei; } +.cde-neon-header.ingredient .cde-item-name input:focus { border-bottom-color: @cde-ingredient; } + +// ============================================================ +// Stat Grid (terminal style) +// ============================================================ +.cde-stat-grid { + display: flex; + flex-wrap: wrap; + gap: 6px 10px; + align-items: flex-end; +} + +.cde-stat-cell { + display: flex; + flex-direction: column; + gap: 3px; + min-width: 110px; + flex: 1 1 110px; + max-width: 200px; + + &--wide { + flex: 1 1 100%; + max-width: 100%; + min-width: 0; + } +} + +.cde-stat-label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + white-space: nowrap; +} + +.cde-stat-value { + font-size: 15px; + font-weight: 800; + color: @cde-text; + letter-spacing: 0.02em; +} + +.cde-stat-cell input { + width: 100%; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 14px; + padding: 4px 0; + outline: none; + transition: border-color 0.15s; + + &:focus { border-bottom-color: @cde-item; } +} + +.cde-stat-cell textarea { + width: 100%; + background: transparent; + border: 1px solid @cde-border; + border-radius: 2px; + color: @cde-text; + font-size: 13px; + font-family: inherit; + padding: 4px 6px; + outline: none; + resize: vertical; + transition: border-color 0.15s; + line-height: 1.5; + + &:focus { border-color: @cde-kungfu; } +} + +.cde-stat-cell select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + font-size: 14px; + padding: 4px 0; + outline: none; + transition: border-color 0.15s; + + &:focus { border-bottom-color: @cde-item; } +} + +.cde-neon-header.kungfu .cde-stat-cell input:focus, +.cde-neon-header.kungfu .cde-stat-cell select:focus { border-bottom-color: @cde-kungfu; } +.cde-neon-header.spell .cde-stat-cell input:focus, +.cde-neon-header.spell .cde-stat-cell select:focus { border-bottom-color: @cde-spell; } +.cde-neon-header.supernatural .cde-stat-cell input:focus, +.cde-neon-header.supernatural .cde-stat-cell select:focus { border-bottom-color: @cde-supernatural; } +.cde-neon-header.weapon .cde-stat-cell input:focus, +.cde-neon-header.weapon .cde-stat-cell select:focus { border-bottom-color: @cde-weapon; } +.cde-neon-header.armor .cde-stat-cell input:focus, +.cde-neon-header.armor .cde-stat-cell select:focus { border-bottom-color: @cde-armor; } +.cde-neon-header.sanhei .cde-stat-cell input:focus, +.cde-neon-header.sanhei .cde-stat-cell select:focus { border-bottom-color: @cde-sanhei; } +.cde-neon-header.ingredient .cde-stat-cell input:focus, +.cde-neon-header.ingredient .cde-stat-cell select:focus { border-bottom-color: @cde-ingredient; } + +// ============================================================ +// Type Badge — angular clip-path parallelogram +// ============================================================ +.cde-badge { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 3px 14px 3px 10px; + clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%); + font-size: 11px; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-bg; + cursor: default; + white-space: nowrap; + + &.item { background: @cde-item; } + &.kungfu { background: @cde-kungfu; } + &.spell { background: @cde-spell; } + &.supernatural { background: @cde-supernatural; } + &.character { background: @cde-item; } + &.npc { background: @cde-supernatural; } + &.weapon { background: @cde-weapon; } + &.armor { background: @cde-armor; } + &.sanhei { background: @cde-sanhei; } + &.ingredient { background: @cde-ingredient; } +} + +// ============================================================ +// Neon Tabs +// ============================================================ +.cde-neon-tabs { + display: flex; + gap: 0; + border-bottom: 1px solid @cde-border; + background: transparent; + margin-top: 8px; + overflow-x: auto; + + .item { + padding: 8px 14px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + border-bottom: 2px solid transparent; + white-space: nowrap; + transition: color 0.15s, border-color 0.15s; + cursor: pointer; + + &:hover { + color: @cde-text; + } + + &.active { + color: @cde-item; + border-bottom-color: @cde-item; + font-weight: 700; + background: fade(@cde-item, 8%); + } + } +} + +// Per-type active tab color +.item.kungfu .cde-neon-tabs .item.active, +form.kungfu .cde-neon-tabs .item.active, +section.kungfu .cde-neon-tabs .item.active { color: @cde-kungfu; border-bottom-color: @cde-kungfu; background: fade(@cde-kungfu, 8%); } +form.spell .cde-neon-tabs .item.active, +section.spell .cde-neon-tabs .item.active { color: @cde-spell; border-bottom-color: @cde-spell; background: fade(@cde-spell, 8%); } +form.supernatural .cde-neon-tabs .item.active, +section.supernatural .cde-neon-tabs .item.active { color: @cde-supernatural; border-bottom-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } +form.weapon .cde-neon-tabs .item.active, +section.weapon .cde-neon-tabs .item.active { color: @cde-weapon; border-bottom-color: @cde-weapon; background: fade(@cde-weapon, 8%); } +form.armor .cde-neon-tabs .item.active, +section.armor .cde-neon-tabs .item.active { color: @cde-armor; border-bottom-color: @cde-armor; background: fade(@cde-armor, 8%); } +form.sanhei .cde-neon-tabs .item.active, +section.sanhei .cde-neon-tabs .item.active { color: @cde-sanhei; border-bottom-color: @cde-sanhei; background: fade(@cde-sanhei, 8%); } +form.ingredient .cde-neon-tabs .item.active, +section.ingredient .cde-neon-tabs .item.active { color: @cde-ingredient; border-bottom-color: @cde-ingredient; background: fade(@cde-ingredient, 8%); } +// Actor type accent colors +section.character .cde-neon-tabs .item.active { color: @cde-item; border-bottom-color: @cde-item; background: fade(@cde-item, 8%); } +section.npc .cde-neon-tabs .item.active { color: @cde-supernatural; border-bottom-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } + +// ============================================================ +// Tab body +// ============================================================ +.cde-tab-body { + flex: 1 1 0; + min-height: 0; + padding: @cde-gap; + background: @cde-surface2; + border: 1px solid @cde-border; + border-top: none; + border-radius: 0 0 @cde-radius @cde-radius; + overflow-y: auto; + + .tab { + display: none; + flex-direction: column; + gap: @cde-gap; + } + + .tab.active { + display: flex; + } +} + +// Tab section label — visible inside each tab body +.cde-tab-label { + font-family: "Averia", sans-serif; + font-size: 0.65rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.15em; + color: @cde-muted; + padding: 2px 6px; + border-left: 2px solid @cde-border-hi; + margin-bottom: 2px; + flex-shrink: 0; +} + +// ============================================================ +// Card +// ============================================================ +.cde-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 12px; + box-shadow: @cde-shadow-sm; +} + +.cde-card .tab-sous-titre { + font-family: "Averia", sans-serif; + font-size: 10px; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-muted; + margin-bottom: 6px; + border-bottom: 1px solid @cde-border; + padding-bottom: 4px; +} + +// ============================================================ +// Notes editor +// ============================================================ +.cde-notes-editor { + flex: 1 1 0; + min-height: 0; + display: flex; + flex-direction: column; + + .editor { + flex: 1 1 0; + min-height: 200px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + background: @cde-surface; + } +} + +// ============================================================ +// Technique card (kungfu) +// ============================================================ +.cde-technique-card { + border-left: 3px solid @cde-kungfu; + background: fade(@cde-surface, 80%); +} + +.cde-technique-header { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-start; + gap: 10px; + margin-bottom: 10px; +} + +.cde-technique-title { + display: flex; + align-items: center; + gap: 8px; + flex: 1 1 200px; + + input { + flex: 1; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 15px; + font-weight: 700; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-kungfu; } + } +} + +.cde-technique-meta { + display: flex; + gap: 8px; + flex-wrap: wrap; + align-items: flex-end; +} + +.cde-technique-body .editor { + min-height: 180px; +} + +// Mini technique checkbox row +.cde-check-cell { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + min-width: 70px; + + label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: @cde-kungfu; + cursor: pointer; + } +} + +// ============================================================ +// Legacy chips (kept for actor sheets) +// ============================================================ +.cde-chip { + background: fade(@cde-surface, 75%); + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 8px 10px; + display: inline-flex; + flex-direction: column; + gap: 6px; + min-width: 140px; + + label { + font-size: 10px; + font-family: "Averia", sans-serif; + letter-spacing: 0.08em; + text-transform: uppercase; + color: @cde-muted; + margin: 0; + } + + input { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 4px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + input[type="checkbox"] { + width: auto; + align-self: flex-start; + accent-color: @cde-item; + } + + &.mini { min-width: 100px; padding: 6px 8px; } +} + +.cde-meta-row { + display: flex; + gap: @cde-gap; + flex-wrap: wrap; + align-items: flex-end; + margin-top: 8px; + + &.compact { gap: 8px; } +} + +// Kept for backward compat with actor templates +.cde-pill { + display: inline-block; + padding: 3px 10px; + border-radius: 999px; + font-weight: 800; + font-size: 11px; + letter-spacing: 0.06em; + text-transform: uppercase; + color: @cde-bg; + + &.item { background: @cde-item; } + &.kungfu { background: @cde-kungfu; } + &.spell { background: @cde-spell; } + &.supernatural { background: @cde-supernatural; } + &.character { background: @cde-item; } + &.npc { background: @cde-supernatural; } + &.weapon { background: @cde-weapon; } + &.armor { background: @cde-armor; } + &.sanhei { background: @cde-sanhei; } + &.ingredient { background: @cde-ingredient; } +} + +// ============================================================ +// Actor header (kept, updated for new palette) +// ============================================================ +.cde-header { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 12px; + display: grid; + grid-template-columns: 120px 1fr; + gap: @cde-gap; + box-shadow: @cde-shadow; + + .profile-img { + width: 100%; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; + object-fit: cover; + } + + .header-fields h1.charname input { + width: 100%; + border: none; + border-bottom: 2px solid @cde-border-hi; + background: transparent; + color: @cde-text; + font-size: 20px; + font-family: "Averia", sans-serif; + padding: 4px 0 8px; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } +} + +.cde-actor-header { + grid-template-columns: 160px 1fr; + align-items: start; +} + +.cde-header-top { + display: flex; + justify-content: space-between; + align-items: center; + gap: 8px; +} + +.cde-icon-button { + border: 1px solid @cde-border; + background: fade(@cde-surface, 70%); + color: @cde-text; + border-radius: 999px; + padding: 6px 10px; + box-shadow: @cde-shadow-sm; + cursor: pointer; + + &:hover { border-color: @cde-border-hi; } +} + +.cde-quick-meta { + display: flex; + align-items: center; + gap: @cde-gap; + flex-wrap: wrap; +} + +.cde-initiative-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-spell; + border-radius: @cde-radius; + padding: 8px 12px; + background: fade(@cde-surface, 70%); + box-shadow: @cde-shadow-sm; + display: inline-flex; + flex-direction: column; + gap: 4px; + min-width: 130px; +} + +.cde-initiative-header { + display: flex; + align-items: center; + gap: 6px; +} + +.cde-initiative-title { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; +} + +.cde-initiative-icon { + font-size: 11px; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 70%); +} + +.cde-initiative-controls { + display: inline-flex; + align-items: center; + gap: 6px; + + .cde-init-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 26px; + height: 26px; + padding: 0; + border: 1px solid @cde-border; + border-radius: 5px; + background: fade(@cde-bg, 80%); + color: @cde-muted; + font-size: 11px; + cursor: pointer; + flex-shrink: 0; + transition: border-color 0.15s, box-shadow 0.15s, color 0.15s; + + &:hover { + border-color: @cde-spell; + color: @cde-spell; + box-shadow: 0 0 0 2px fade(@cde-spell, 25%); + } + } + + .cde-init-btn--roll { + width: 30px; + height: 30px; + font-size: 14px; + border-color: fade(@cde-spell, 40%); + color: @cde-spell; + background: fade(@cde-spell, 10%); + box-shadow: 0 0 6px fade(@cde-spell, 20%); + + &:hover { + background: fade(@cde-spell, 20%); + box-shadow: 0 0 10px fade(@cde-spell, 40%); + } + } +} + +.cde-initiative-values { + display: flex; + flex-direction: column; + align-items: center; + gap: 2px; + min-width: 50px; +} + +.cde-initiative-value { + font-size: 20px; + font-weight: 800; + text-align: center; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 60%); + line-height: 1; +} + +.cde-anti-initiative-value { + font-size: 9px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-align: center; + white-space: nowrap; + + i { + font-size: 8px; + opacity: 0.7; + } +} + +// ============================================================ +// Grid, field, table, section — common +// ============================================================ +.cde-grid { + display: grid; + gap: @cde-gap; + + &.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } + &.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } +} + +.cde-field { + label { + display: block; + margin-bottom: 4px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + input, textarea { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 5px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 5px 0; + outline: none; + + &:focus { border-bottom-color: @cde-item; } + } +} + +.cde-section-title { + font-family: "Averia", sans-serif; + font-size: 10px; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; + color: @cde-muted; + margin-bottom: 8px; + border-bottom: 1px solid @cde-border; + padding-bottom: 4px; +} + +.cde-tag { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 3px 10px; + border-radius: 999px; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + background: fade(@cde-border, 80%); + color: @cde-muted; + border: 1px solid @cde-border; +} + +.cde-data-table { + table { + width: 100%; + border-collapse: collapse; + color: @cde-text; + } + + td { + padding: 7px 8px; + border-bottom: 1px solid @cde-border; + } + + tr:nth-child(even) { background: fade(@cde-surface, 50%); } + tr:hover { background: fade(@cde-border-hi, 20%); } + + input { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + padding: 4px 0; + outline: none; + } + + select { + width: 100%; + border: none; + border-bottom: 1px solid @cde-border; + padding: 4px 0; + outline: none; + } +} + +.cde-centered-card { + display: flex; + gap: @cde-gap; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + + img { + max-height: 280px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; + } +} + +// ============================================================ +// NPC Aptitudes table — modern cde-skills-table layout +// ============================================================ +.cde-aptitudes-table { + // Inherits .cde-skills-table styles; just ensure consistent width + .cde-spec-cell { flex: 1 1 0; } + + .cde-roll-cell { + width: 28px; + flex-shrink: 0; + text-align: center; + + .cde-roll-trigger { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + color: @cde-muted; + border-radius: 4px; + transition: color 0.15s, background 0.15s; + + &:hover { + color: @cde-supernatural; + background: fade(@cde-supernatural, 12%); + } + } + } +} + +// Empty list placeholder +.cde-empty-list { + color: @cde-muted; + font-style: italic; + font-size: 11px; + text-align: center; + padding: 10px 0; +} + +// NPC supernatural item cards +// ── Supernatural abilities card (NPC) ─────────────────────────────────────── + +.cde-super-add-row { + display: flex; + justify-content: flex-end; + padding: 4px 0 8px; +} + +.cde-super-add-btn { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + cursor: pointer; + padding: 4px 10px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + transition: color 0.12s, border-color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-supernatural; border-color: @cde-supernatural; background: fade(@cde-supernatural, 8%); } +} + +.cde-super-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-supernatural; + border-radius: @cde-radius; + background: fade(@cde-surface, 70%); + margin-bottom: 10px; + overflow: hidden; + transition: box-shadow 0.15s; + + &:hover { + box-shadow: 0 0 8px fade(@cde-supernatural, 20%); + + .cde-super-controls { opacity: 1; } + } +} + +.cde-super-header { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; +} + +.cde-super-img { + width: 28px; + height: 28px; + object-fit: contain; + border-radius: 4px; + flex-shrink: 0; +} + +.cde-super-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 3px; + min-width: 0; +} + +.cde-super-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-super-meta { + display: flex; + align-items: center; + gap: 4px; +} + +.cde-super-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 22px; + height: 22px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 11px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-super-desc { + padding: 6px 12px 8px 46px; + border-top: 1px solid fade(@cde-border, 60%); + background: fade(@cde-surface, 40%); + font-size: 11px; + color: @cde-muted; + line-height: 1.5; + + p { margin: 0 0 4px; &:last-child { margin-bottom: 0; } } + em { color: @cde-text; } + strong { color: @cde-supernatural; } +} + +.cde-super-empty { + padding: 16px; + text-align: center; + font-size: 12px; + color: @cde-muted; + font-style: italic; +} + +// NPC vitality / hei tracker +.cde-npc-tracks { + margin-top: @cde-gap; + + .cde-track-row { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 0; + border-bottom: 1px solid @cde-border; + + &:last-child { border-bottom: none; } + } + + .cde-track-label { + display: flex; + align-items: center; + gap: 6px; + width: 120px; + flex-shrink: 0; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + + i { font-size: 12px; } + } + + .cde-track-value { + display: flex; + align-items: center; + gap: 6px; + + input.cde-circle-input { + width: 48px; + } + } + + .cde-track-sep { + font-size: 14px; + color: @cde-muted; + font-weight: 700; + } + + .cde-track-max { + font-size: 15px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 40%); + min-width: 28px; + text-align: center; + } + + .cde-track-note { + flex: 1; + input { width: 100%; } + } +} + +// ============================================================ +// Loksyu — 5 elemental cards grid +// ============================================================ +// ============================================================ +// Chat buttons — Loksyu / TinJi quick-access +// ============================================================ +.cde-chat-app-buttons { + display: flex; + gap: 6px; + padding: 6px 8px 4px; + border-top: 1px solid @cde-border; + pointer-events: auto; // sidebar has pointer-events:none — must override + + .cde-chat-btn { + flex: 1 1 0; + pointer-events: auto; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + padding: 5px 8px; + font-size: 11px; + font-family: "Orbitron", "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: 4px; + color: @cde-muted; + cursor: pointer; + transition: all 0.2s; + + i { font-size: 12px; } + + &:hover { + background: fade(@cde-spell, 10%); + border-color: @cde-spell; + color: @cde-spell; + box-shadow: 0 0 8px fade(@cde-spell, 30%); + } + + &--tinji:hover { + background: fade(@cde-kungfu, 10%); + border-color: @cde-kungfu; + color: @cde-kungfu; + box-shadow: 0 0 8px fade(@cde-kungfu, 30%); + } + } +} + +// ============================================================ +// Loksyu standalone app +// ============================================================ +.cde-loksyu-standalone { + .cde-loksyu-app-body { + padding: 12px; + } + + .cde-loksyu-elements { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 10px; + } + + .cde-lok-card { + flex: 0 0 calc(33.333% - 6px); + min-width: 140px; + max-width: 160px; + background: fade(@cde-surface, 80%); + border: 1px solid @cde-border; + border-radius: 6px; + padding: 10px 8px; + display: flex; + flex-direction: column; + gap: 6px; + min-width: 0; + overflow: hidden; + transition: border-color 0.2s; + + &--wood { &:hover { border-color: #4a9e3f; } .cde-lok-input:focus { border-bottom-color: #4a9e3f; } } + &--fire { &:hover { border-color: @cde-kungfu; } .cde-lok-input:focus { border-bottom-color: @cde-kungfu; } } + &--earth { &:hover { border-color: #c88a3a; } .cde-lok-input:focus { border-bottom-color: #c88a3a; } } + &--metal { &:hover { border-color: @cde-muted; } .cde-lok-input:focus { border-bottom-color: @cde-muted; } } + &--water { &:hover { border-color: @cde-spell; } .cde-lok-input:focus { border-bottom-color: @cde-spell; } } + } + + .cde-lok-header { + display: flex; + align-items: center; + gap: 6px; + + img.cde-lok-icon { border-radius: 4px; flex-shrink: 0; } + } + + .cde-lok-titles { + flex: 1 1 0; + min-width: 0; + display: flex; + flex-direction: column; + + .cde-lok-name { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-text; + } + + .cde-lok-qual { + font-size: 9px; + color: @cde-muted; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + + .cde-lok-reset { + color: @cde-muted; + font-size: 11px; + flex-shrink: 0; + cursor: pointer; + &:hover { color: @cde-text; } + } + + .cde-lok-values { + display: flex; + flex-direction: column; + gap: 4px; + } + + .cde-lok-polarity { + display: flex; + align-items: center; + gap: 4px; + + .cde-lok-pol-label { + font-size: 9px; + color: @cde-muted; + width: 30px; + flex-shrink: 0; + } + + &--yang .cde-lok-pol-label { color: @cde-text; } + } + + .cde-lok-input { + flex: 1 1 0; + background: transparent; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-size: 13px; + font-weight: 700; + text-align: center; + padding: 2px 0; + transition: border-bottom-color 0.2s; + width: 100%; + + &:focus { outline: none; } + &[disabled] { opacity: 0.5; cursor: default; } + } + + .cde-loksyu-visual-row { + text-align: center; + margin: 6px 0; + + .cde-lok-visual { + max-width: 120px; + max-height: 160px; + width: auto; + height: auto; + opacity: 0.6; + cursor: zoom-in; + transition: opacity 0.2s ease, box-shadow 0.2s ease; + + &:hover { + opacity: 0.9; + box-shadow: 0 0 10px @cde-border-hi; + } + } + } + + .cde-lok-footer { + display: flex; + justify-content: center; + padding-top: 6px; + border-top: 1px solid @cde-border; + margin-top: 6px; + } + + .cde-lok-reset-all { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 14px; + font-size: 11px; + background: fade(@cde-kungfu, 12%); + border: 1px solid fade(@cde-kungfu, 30%); + border-radius: 4px; + color: @cde-muted; + cursor: pointer; + transition: all 0.2s; + + &:hover { + background: fade(@cde-kungfu, 20%); + border-color: @cde-kungfu; + color: @cde-text; + } + } +} + +// ============================================================ +// TinJi standalone app +// ============================================================ +.cde-tinji-standalone { + .cde-tinji-app-body { + padding: 16px 12px; + display: flex; + align-items: center; + gap: 16px; + } + + .cde-tinji-display { + flex: 1 1 0; + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + } + + .cde-tinji-chinese-large { + font-size: 40px; + color: @cde-kungfu; + text-shadow: 0 0 20px fade(@cde-kungfu, 60%); + line-height: 1; + font-family: serif; + } + + .cde-tinji-label { + font-size: 11px; + font-family: "Orbitron", sans-serif; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-text; + opacity: 0.75; + } + + .cde-tinji-counter { + display: flex; + align-items: center; + gap: 8px; + margin: 4px 0; + } + + .cde-tinji-step { + width: 30px; + height: 30px; + background: @cde-surface2; + border: 1px solid @cde-border-hi; + border-radius: 50%; + color: @cde-text; + font-size: 18px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + line-height: 1; + padding: 0; + + &:hover { + background: fade(@cde-kungfu, 25%); + border-color: @cde-kungfu; + color: @cde-text; + } + } + + .cde-tinji-direct { + width: 72px; + background: transparent; + border: none; + border-bottom: 2px solid @cde-kungfu; + color: @cde-kungfu; + font-size: 36px; + font-weight: 700; + text-align: center; + text-shadow: 0 0 12px fade(@cde-kungfu, 50%); + padding: 0; + + &:focus { outline: none; } + &[disabled] { opacity: 0.7; cursor: default; } + } + + .cde-tinji-hint { + font-size: 10px; + color: @cde-muted; + text-align: center; + } + + .cde-tinji-actions { + display: flex; + gap: 6px; + margin-top: 6px; + } + + .cde-tinji-spend-btn, + .cde-tinji-reset-btn { + display: flex; + align-items: center; + gap: 5px; + padding: 6px 12px; + font-size: 11px; + font-weight: 600; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s; + letter-spacing: 0.03em; + } + + .cde-tinji-spend-btn { + background: fade(@cde-kungfu, 25%); + border: 1px solid @cde-kungfu; + color: @cde-text; + + &:hover { background: fade(@cde-kungfu, 45%); border-color: lighten(@cde-kungfu, 10%); } + &[disabled] { opacity: 0.55; cursor: not-allowed; pointer-events: none; } + } + + .cde-tinji-reset-btn { + background: @cde-surface2; + border: 1px solid @cde-border-hi; + color: @cde-text; + opacity: 0.85; + + &:hover { border-color: @cde-text; opacity: 1; } + } + + .cde-tinji-visual { + width: 90px; + height: auto; + opacity: 0.85; + flex-shrink: 0; + } +} + +// Chat Tin Ji spend message +.cde-tinji-spend-msg { + display: flex; + align-items: center; + gap: 8px; + font-size: 13px; + padding: 8px 10px; + background: fade(@cde-kungfu, 18%); + border: 1px solid fade(@cde-kungfu, 35%); + border-left: 4px solid @cde-kungfu; + border-radius: 4px; + color: @cde-text; + + .cde-tinji-icon { + font-size: 18px; + color: @cde-kungfu; + text-shadow: 0 0 6px fade(@cde-kungfu, 70%); + flex-shrink: 0; + font-weight: 700; + line-height: 1; + } + + i { + color: @cde-kungfu; + font-size: 15px; + filter: drop-shadow(0 0 4px fade(@cde-kungfu, 60%)); + flex-shrink: 0; + } + + strong { + color: @cde-kungfu; + font-size: 13px; + letter-spacing: 0.02em; + } + + .cde-tinji-remain { + margin-left: auto; + font-size: 11px; + color: fade(@cde-text, 65%); + font-style: italic; + white-space: nowrap; + } +} + +// Post-roll Loksyu draw message — rich notification card +.cde-loksyu-draw-msg { + display: flex; + flex-direction: column; + gap: 5px; + font-size: 12px; + padding: 9px 11px; + background: linear-gradient(135deg, fade(@cde-item, 10%) 0%, fade(@cde-surface, 95%) 100%); + border: 1px solid fade(@cde-item, 40%); + border-left: 4px solid @cde-item; + border-radius: 5px; + color: @cde-text; + box-shadow: 0 2px 8px fade(@cde-item, 12%); + + .cde-loksyu-draw-header { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 5px; + font-size: 13px; + line-height: 1.4; + } + + .cde-loksyu-draw-aspect-icon { + width: 20px; + height: 20px; + object-fit: contain; + filter: drop-shadow(0 0 4px fade(@cde-item, 60%)); + flex-shrink: 0; + } + + .cde-loksyu-draw-user { + font-weight: 700; + color: @cde-item; + letter-spacing: 0.03em; + } + + .cde-loksyu-draw-action { + color: fade(@cde-text, 65%); + font-size: 12px; + font-style: italic; + } + + .cde-loksyu-draw-type { + font-weight: 700; + font-size: 13px; + color: #c9a227; + text-transform: uppercase; + letter-spacing: 0.05em; + text-shadow: 0 0 6px fade(#c9a227, 40%); + } + + .cde-loksyu-draw-from { + color: fade(@cde-text, 60%); + font-size: 11px; + + em { + color: @cde-item; + font-style: normal; + font-weight: 600; + } + } + + .cde-loksyu-draw-footer { + display: flex; + align-items: center; + gap: 5px; + font-size: 11px; + color: fade(@cde-text, 55%); + padding-top: 4px; + border-top: 1px solid fade(@cde-item, 20%); + + i { + color: @cde-item; + font-size: 10px; + } + + .cde-loksyu-remain { + color: @cde-item; + font-weight: 700; + } + } +} + +// Post-roll action buttons section inside a roll-result card +.cde-roll-actions { + margin-top: 10px; + padding-top: 8px; + border-top: 1px solid fade(@cde-border, 60%); + + .cde-roll-actions-title { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: fade(@cde-text, 50%); + margin-bottom: 6px; + display: flex; + align-items: center; + gap: 4px; + + i { font-size: 9px; } + } + + .cde-roll-actions-btns { + display: flex; + flex-wrap: wrap; + gap: 5px; + } + + .cde-roll-action-btn { + display: flex; + align-items: center; + gap: 5px; + padding: 4px 8px; + font-size: 11px; + font-family: "Courier New", Courier, monospace; + border-radius: 3px; + border: 1px solid fade(@cde-border, 80%); + background: fade(@cde-surface, 90%); + color: @cde-text; + cursor: pointer; + transition: background 0.15s, border-color 0.15s, box-shadow 0.15s; + pointer-events: auto; + line-height: 1.4; + + &:hover:not(:disabled) { + border-color: fade(@cde-item, 70%); + background: fade(@cde-item, 12%); + box-shadow: 0 0 6px fade(@cde-item, 25%); + color: @cde-item; + } + + &:disabled { + opacity: 0.35; + cursor: not-allowed; + } + + .cde-roll-action-icon { + width: 16px; + height: 16px; + object-fit: contain; + filter: drop-shadow(0 0 2px fade(@cde-item, 40%)); + } + + .cde-roll-action-label { + flex: 1; + } + + .cde-roll-action-count { + background: fade(@cde-border, 60%); + border-radius: 2px; + padding: 1px 4px; + font-size: 10px; + font-weight: 700; + min-width: 18px; + text-align: center; + } + + .cde-roll-action-tinji-char { + font-size: 14px; + line-height: 1; + color: @cde-kungfu; + text-shadow: 0 0 4px fade(@cde-kungfu, 60%); + } + + &.cde-roll-action--success { + &:hover:not(:disabled) { + border-color: fade(#c9a227, 70%); + background: fade(#c9a227, 10%); + box-shadow: 0 0 6px fade(#c9a227, 25%); + color: #c9a227; + } + } + + &.cde-roll-action--faste { + &:hover:not(:disabled) { + border-color: fade(@cde-item, 70%); + background: fade(@cde-item, 10%); + box-shadow: 0 0 6px fade(@cde-item, 25%); + color: @cde-item; + } + } + + &.cde-roll-action--tinji { + &:hover:not(:disabled) { + border-color: fade(@cde-kungfu, 70%); + background: fade(@cde-kungfu, 12%); + box-shadow: 0 0 6px fade(@cde-kungfu, 30%); + color: @cde-kungfu; + + .cde-roll-action-count { + background: fade(@cde-kungfu, 25%); + } + } + } + } +} + +.cde-loksyu-grid { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: @cde-gap; + padding: @cde-gap 0; +} + +.cde-element-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 10px 8px; + display: flex; + flex-direction: column; + gap: 8px; + box-shadow: @cde-shadow-sm; + transition: border-color 0.15s, box-shadow 0.15s; + + &:hover { box-shadow: @cde-shadow; } +} + +// Per-element color theming using LESS variables +.cde-element--wood { border-top: 3px solid @wu-green; .cde-element-name { color: @wu-green; text-shadow: 0 0 6px fade(@wu-green, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-green); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-green, 70%); } } +.cde-element--fire { border-top: 3px solid @wu-red; .cde-element-name { color: @wu-red; text-shadow: 0 0 6px fade(@wu-red, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-red); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-red, 70%); } } +.cde-element--earth { border-top: 3px solid @wu-brown; .cde-element-name { color: @wu-brown; text-shadow: 0 0 6px fade(@wu-brown, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-brown); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-brown, 70%); } } +.cde-element--metal { border-top: 3px solid @wu-gray; .cde-element-name { color: @wu-gray; text-shadow: 0 0 6px fade(@wu-gray, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-gray); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-gray, 70%); } } +.cde-element--water { border-top: 3px solid @wu-blue; .cde-element-name { color: @wu-blue; text-shadow: 0 0 6px fade(@wu-blue, 50%); } .cde-element-img { filter: drop-shadow(0 0 4px @wu-blue); } .cde-element-polarity--yang { border-left: 2px solid fade(@wu-blue, 70%); } } + +// Input focus per element +.cde-element--wood .cde-element-polarity input:focus { border-bottom-color: @wu-green; box-shadow: 0 1px 0 0 @wu-green; } +.cde-element--fire .cde-element-polarity input:focus { border-bottom-color: @wu-red; box-shadow: 0 1px 0 0 @wu-red; } +.cde-element--earth .cde-element-polarity input:focus { border-bottom-color: @wu-brown; box-shadow: 0 1px 0 0 @wu-brown; } +.cde-element--metal .cde-element-polarity input:focus { border-bottom-color: @wu-gray; box-shadow: 0 1px 0 0 @wu-gray; } +.cde-element--water .cde-element-polarity input:focus { border-bottom-color: @wu-blue; box-shadow: 0 1px 0 0 @wu-blue; } + +.cde-element-header { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + text-align: center; +} + +.cde-element-img { + width: 36px; + height: 36px; + object-fit: contain; + filter: drop-shadow(0 0 4px var(--el-color)); +} + +.cde-element-titles { + display: flex; + flex-direction: column; + gap: 2px; +} + +.cde-element-name { + font-family: "Averia", sans-serif; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; // overridden per-element below + white-space: nowrap; +} + +.cde-element-qualities { + font-size: 9px; + color: @cde-muted; + font-style: italic; + line-height: 1.3; + text-align: center; + display: none; // hidden on small width, shown via media query if needed +} + +.cde-element-values { + display: flex; + flex-direction: column; + gap: 4px; +} + +.cde-element-polarity { + display: flex; + align-items: center; + gap: 6px; + padding: 3px 6px; + border-radius: 4px; + background: fade(@cde-bg, 60%); + + &--yin { border-left: 2px solid fade(@cde-muted, 40%); } +} + +.cde-polarity-label { + font-size: 9px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + white-space: nowrap; + min-width: 32px; +} + +.cde-element-polarity input { + width: 40px; + border: none; + border-bottom: 1px solid @cde-border; + background: transparent; + color: @cde-text; + font-size: 14px; + font-weight: 700; + text-align: center; + padding: 2px 0; + outline: none; +} + +.cde-loksyu-visual-row { + display: flex; + justify-content: center; + padding-top: @cde-gap; + + .loksyu-visual { + max-width: 100%; + height: auto; + opacity: 0.7; + border-radius: @cde-radius; + border: 1px solid @cde-border; + } +} + +// ============================================================ +// Tin Ji — enhanced display +// ============================================================ +.cde-tinji-layout { + display: flex; + align-items: center; + justify-content: space-between; + gap: @cde-gap * 2; + padding: @cde-gap; + flex-wrap: wrap; +} + +.cde-tinji-main { + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; + flex: 1; +} + +.cde-tinji-chinese { + font-size: 48px; + color: @cde-supernatural; + text-shadow: 0 0 20px fade(@cde-supernatural, 60%); + line-height: 1; + letter-spacing: 0.1em; +} + +.cde-tinji-subtitle { + font-family: "Averia", sans-serif; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.2em; + color: @cde-muted; +} + +.cde-tinji-value-wrapper { + display: flex; + align-items: center; + justify-content: center; + + .cde-tinji-input { + width: 80px; + text-align: center; + font-size: 36px; + font-weight: 700; + color: @cde-supernatural; + text-shadow: 0 0 12px fade(@cde-supernatural, 50%); + border: none; + border-bottom: 2px solid @cde-supernatural; + background: transparent; + outline: none; + padding: 4px 0; + + &:focus { + border-bottom-color: lighten(@cde-supernatural, 15%); + box-shadow: 0 2px 0 0 fade(@cde-supernatural, 60%); + } + } +} + +.cde-tinji-hint { + font-size: 10px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.12em; + text-align: center; +} + +.tinji-visual { + max-height: 280px; + max-width: 200px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + box-shadow: @cde-shadow; +} + +// ============================================================ +// Weapon roll button + dialog +// ============================================================ + +.cde-weapon-roll-btn { + color: @cde-weapon !important; + &:hover { text-shadow: 0 0 6px fade(@cde-weapon, 60%); } +} + +.cde-item-damage { + color: @cde-weapon; + font-weight: 700; +} + +.cde-weapon-prompt { + // Weapon info bar at top of dialog + .cde-weapon-info-bar { + display: flex; + align-items: center; + gap: 10px; + padding: 10px 12px; + background: fade(@cde-weapon, 8%); + border: 1px solid fade(@cde-weapon, 30%); + border-radius: @cde-radius; + margin-bottom: @cde-gap; + + .cde-weapon-aspect-icon { + width: 36px; + height: 36px; + object-fit: contain; + } + + .cde-weapon-info-text { + flex: 1; + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-weapon-info-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + } + + .cde-weapon-info-meta { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-weapon-info-badge { + font-size: 20px; + color: fade(@cde-weapon, 50%); + } + } +} + +// Weapon damage result in chat card +.cde-rr-weapon-damage { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + background: fade(@cde-weapon, 10%); + border-top: 1px solid fade(@cde-weapon, 30%); + border-bottom: 1px solid fade(@cde-weapon, 30%); + margin: 4px 0; + + .cde-rr-weapon-icon { + font-size: 16px; + color: @cde-weapon; + text-shadow: 0 0 6px fade(@cde-weapon, 50%); + flex-shrink: 0; + } + + .cde-rr-weapon-text { + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-rr-weapon-name { + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + } + + .cde-rr-weapon-calc { + font-size: 12px; + color: @cde-text; + } + + .cde-rr-weapon-total { + font-size: 16px; + font-weight: 900; + color: @cde-weapon; + text-shadow: 0 0 8px fade(@cde-weapon, 60%); + margin: 0 2px; + } + + .cde-rr-weapon-unit { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + } +} + +// ============================================================ +// Magics tab — components grid + magic cards +// ============================================================ + +.cde-section-label { + display: flex; + align-items: center; + gap: 8px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-muted; + border-bottom: 1px solid @cde-border; + padding-bottom: 6px; + margin-bottom: 10px; + + i { font-size: 11px; } + + &--top-margin { margin-top: 18px; } +} + +// 2-column grid for the 10 components +.cde-components-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; + margin-bottom: 10px; +} + +.cde-component-cell { + display: flex; + align-items: center; + gap: 8px; + background: @cde-surface; + border: 1px solid @cde-border; + border-radius: @cde-radius; + padding: 4px 8px; + + &:hover { border-color: @cde-border-hi; } +} + +.cde-component-die { + width: 28px; + height: 28px; + object-fit: contain; + flex-shrink: 0; + opacity: 0.85; +} + +.cde-component-input { + flex: 1; + background: transparent; + border: none; + border-bottom: 1px solid transparent; + color: @cde-text; + font-size: 12px; + padding: 2px 0; + + &:focus { + outline: none; + border-bottom-color: @cde-spell; + } + + &::placeholder { color: @cde-muted; font-style: italic; font-size: 11px; } +} + +.cde-component-random-row { + display: flex; + justify-content: center; + margin-bottom: 4px; +} + +.cde-btn-random-component { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 6px 16px; + background: fade(@cde-spell, 8%); + border: 1px solid fade(@cde-spell, 35%); + border-radius: @cde-radius; + color: @cde-spell; + font-family: "Averia", sans-serif; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.08em; + cursor: pointer; + transition: background 0.15s, box-shadow 0.15s; + + i { font-size: 14px; } + + &:hover { + background: fade(@cde-spell, 16%); + box-shadow: 0 0 8px fade(@cde-spell, 30%); + } +} + +// === Magic type cards === +.cde-magic-card { + background: @cde-surface; + border: 1px solid @cde-border; + border-left: 3px solid @cde-border-hi; + border-radius: @cde-radius; + margin-bottom: 8px; + overflow: hidden; + box-shadow: @cde-shadow-sm; +} + +.cde-magic-header { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 10px; +} + +.cde-magic-aspect-icon { + width: 32px; + height: 32px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-magic-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 1px; + min-width: 0; +} + +.cde-magic-name { + font-family: "Averia", sans-serif; + font-size: 13px; + font-weight: 700; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-magic-aspect-name { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + font-family: "Averia", sans-serif; +} + +.cde-magic-value-input { + width: 52px; + flex-shrink: 0; +} + +.cde-magic-roll-btn { + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + transition: background 0.15s; + flex-shrink: 0; + + i { font-size: 15px; } + + &:hover { background: fade(@cde-spell, 15%); } +} + +.cde-magic-toggle { + width: 28px; + height: 28px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + + input[type="checkbox"] { display: none; } + + i { font-size: 11px; transition: color 0.15s; } + + &:hover i { color: @cde-text; } +} + +// Specialities list +.cde-magic-specialities { + border-top: 1px solid @cde-border; + padding: 4px 0; +} + +.cde-magic-spec-row { + display: flex; + align-items: center; + gap: 8px; + padding: 5px 10px 5px 42px; // indent aligned with aspect icon + opacity: 0.55; + transition: opacity 0.12s, background 0.12s; + + &:hover { opacity: 1; background: fade(@cde-border-hi, 30%); } + &--active { opacity: 1; } +} + +.cde-magic-spec-check-label { + display: flex; + align-items: center; + cursor: pointer; + flex-shrink: 0; + + input[type="checkbox"] { display: none; } + + .cde-spec-checkbox-ui { + width: 14px; + height: 14px; + border: 1px solid @cde-muted; + border-radius: 3px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: border-color 0.12s, background 0.12s; + } + + input:checked + .cde-spec-checkbox-ui { + background: @cde-spell; + border-color: @cde-spell; + + &::after { + content: "✓"; + font-size: 9px; + color: @cde-bg; + line-height: 1; + } + } +} + +.cde-magic-spec-element { + width: 18px; + height: 18px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-magic-spec-polarity { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; + width: 42px; + flex-shrink: 0; + + &.icon-yin { color: @cde-supernatural; } + &.icon-yang { color: @cde-item; } + &.icon-yinyang { color: @cde-spell; } +} + +.cde-magic-spec-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; +} + +.cde-magic-spec-roll-btn { + width: 26px; + height: 26px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + transition: color 0.15s, background 0.15s; + + i { font-size: 12px; } + + &:hover { color: @cde-spell; background: fade(@cde-spell, 12%); } +} + +// Per-magic accent colors using direct Wu Xing LESS variables +.cde-magic--internalcinnabar { + border-left-color: @wu-gray; + .cde-magic-name { color: lighten(@wu-gray, 20%); } + .cde-magic-roll-btn i { color: @wu-gray; } +} +.cde-magic--alchemy { + border-left-color: @wu-blue; + .cde-magic-name { color: lighten(@wu-blue, 15%); } + .cde-magic-roll-btn i { color: @wu-blue; } +} +.cde-magic--masteryoftheway { + border-left-color: @wu-brown; + .cde-magic-name { color: lighten(@wu-brown, 20%); } + .cde-magic-roll-btn i { color: lighten(@wu-brown, 10%); } +} +.cde-magic--exorcism { + border-left-color: @wu-red; + .cde-magic-name { color: lighten(@wu-red, 20%); } + .cde-magic-roll-btn i { color: @wu-red; } +} +.cde-magic--geomancy { + border-left-color: @wu-green; + .cde-magic-name { color: lighten(@wu-green, 15%); } + .cde-magic-roll-btn i { color: @wu-green; } +} + +// ===================================================================== +// GRIMOIRE (spell list integrated in magic discipline cards) +// ===================================================================== + +.cde-grimoire-section { + border-top: 1px dashed fade(@cde-border, 60%); + margin-top: 6px; + padding-top: 6px; +} + +.cde-grimoire-header { + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px; + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + + i { font-size: 10px; color: @cde-spell; } + + span { flex: 1; } +} + +.cde-grimoire-add { + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + border-radius: 3px; + cursor: pointer; + color: @cde-muted; + transition: color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-spell; background: fade(@cde-spell, 15%); } +} + +.cde-grimoire-list { + list-style: none; + margin: 0; + padding: 0; +} + +.cde-grimoire-entry { + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px 4px 14px; + border-bottom: 1px solid fade(@cde-border, 40%); + transition: background 0.1s; + + &:last-child { border-bottom: none; } + + &:hover { + background: fade(@cde-border, 25%); + + .cde-grimoire-controls { opacity: 1; } + } +} + +.cde-grimoire-img { + width: 18px; + height: 18px; + object-fit: contain; + border-radius: 2px; + flex-shrink: 0; +} + +.cde-grimoire-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-grimoire-meta { + display: flex; + align-items: center; + gap: 8px; + font-size: 10px; + color: @cde-muted; + flex-shrink: 0; + + em { + color: @cde-spell; + font-style: normal; + font-size: 10px; + max-width: 80px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} + +.cde-grimoire-diff, .cde-grimoire-hei { + display: flex; + align-items: center; + gap: 3px; + + i { font-size: 9px; } +} + +.cde-grimoire-diff { color: @cde-muted; } +.cde-grimoire-hei { color: @cde-kungfu; } + +.cde-grimoire-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-grimoire-empty { + padding: 4px 14px 8px; + font-size: 11px; + color: @cde-muted; + font-style: italic; + margin: 0; +} + +// ===================================================================== +// KUNG-FU CARDS (actor tab redesign) +// ===================================================================== + +.cde-kf-add-row { + display: flex; + justify-content: flex-end; + padding: 4px 0 8px; +} + +.cde-kf-add-btn { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-muted; + cursor: pointer; + padding: 4px 10px; + border-radius: @cde-radius; + border: 1px solid @cde-border; + transition: color 0.12s, border-color 0.12s, background 0.12s; + + i { font-size: 10px; } + + &:hover { color: @cde-kungfu; border-color: @cde-kungfu; background: fade(@cde-kungfu, 8%); } +} + +.cde-kf-card { + border: 1px solid @cde-border; + border-left: 3px solid @cde-kungfu; + border-radius: @cde-radius; + background: fade(@cde-surface, 70%); + margin-bottom: 10px; + overflow: hidden; + transition: box-shadow 0.15s; + + &:hover { box-shadow: 0 0 8px fade(@cde-kungfu, 20%); } + + &.cde-kf--metal { border-left-color: @wu-gray; } + &.cde-kf--eau { border-left-color: @wu-blue; } + &.cde-kf--terre { border-left-color: lighten(@wu-brown, 10%); } + &.cde-kf--feu { border-left-color: @wu-red; } + &.cde-kf--bois { border-left-color: @wu-green; } +} + +.cde-kf-header { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; + + &:hover .cde-kf-controls { opacity: 1; } +} + +.cde-kf-aspect-icon { + width: 26px; + height: 26px; + object-fit: contain; + flex-shrink: 0; +} + +.cde-kf-orient-icon { + width: 18px; + height: 18px; + object-fit: contain; + flex-shrink: 0; + opacity: 0.75; +} + +.cde-kf-info { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.cde-kf-name { + font-size: 14px; + font-weight: 700; + font-family: "Averia", sans-serif; + color: @cde-text; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cde-kf-meta { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.06em; + + em { color: @cde-text; font-style: normal; } +} + +.cde-kf-roll-btn { + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: @cde-radius; + cursor: pointer; + color: @cde-muted; + flex-shrink: 0; + transition: color 0.15s, background 0.15s; + + i { font-size: 14px; } + + &:hover { color: @cde-kungfu; background: fade(@cde-kungfu, 15%); } +} + +.cde-kf-controls { + display: flex; + align-items: center; + gap: 4px; + opacity: 0; + transition: opacity 0.12s; + flex-shrink: 0; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 22px; + height: 22px; + border-radius: 3px; + color: @cde-muted; + cursor: pointer; + transition: color 0.12s, background 0.12s; + + i { font-size: 11px; } + + &:hover { color: @cde-text; background: fade(@cde-border-hi, 30%); } + } +} + +.cde-kf-style-row { + display: flex; + align-items: baseline; + gap: 8px; + padding: 4px 12px 6px 44px; + border-top: 1px solid fade(@cde-border, 60%); + background: fade(@cde-surface, 40%); +} + +.cde-kf-style-label { + font-size: 10px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + color: @cde-kungfu; + flex-shrink: 0; + + i { font-size: 9px; } +} + +.cde-kf-style-text { + font-size: 11px; + color: @cde-text; + font-family: "Averia", sans-serif; + font-style: italic; +} + +.cde-kf-techniques { + list-style: none; + margin: 0; + padding: 0; + border-top: 1px solid fade(@cde-border, 50%); +} + +.cde-kf-tech { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 12px 5px 44px; + border-bottom: 1px solid fade(@cde-border, 30%); + opacity: 0.5; + transition: opacity 0.1s, background 0.1s; + + &:last-child { border-bottom: none; } + &--mastered { opacity: 1; } + &:hover { background: fade(@cde-border, 20%); opacity: 1; } +} + +.cde-kf-tech-mastered { + font-size: 11px; + flex-shrink: 0; + width: 14px; + text-align: center; + + .cde-kf-tech--mastered & { color: @cde-kungfu; } + .cde-kf-tech:not(.cde-kf-tech--mastered) & { color: @cde-muted; } +} + +.cde-act-badge { + font-size: 9px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.05em; + padding: 2px 5px; + border-radius: 3px; + flex-shrink: 0; + max-width: 110px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border: 1px solid currentColor; + + &.cde-act--action-attack { color: @wu-red; background: fade(@wu-red, 10%); } + &.cde-act--action-defense { color: @wu-blue; background: fade(@wu-blue, 10%); } + &.cde-act--action-aid { color: @wu-green; background: fade(@wu-green, 10%); } + &.cde-act--action-attack-defense { color: @wu-gray; background: fade(@wu-gray, 12%); } + &.cde-act--reaction { color: @wu-brown; background: fade(@wu-brown, 12%); } + &.cde-act--dice { color: @cde-spell; background: fade(@cde-spell, 10%); } + &.cde-act--damage-inflicted { color: @cde-weapon; background: fade(@cde-weapon, 10%); } + &.cde-act--damage-received { color: @cde-muted; background: fade(@cde-border, 20%); } +} + +.cde-kf-tech-name { + flex: 1; + font-size: 12px; + color: @cde-text; + font-family: "Averia", sans-serif; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + em { color: @cde-muted; } +} + +.cde-kf-empty { + padding: 16px; + text-align: center; + font-size: 12px; + color: @cde-muted; + font-style: italic; +} + +// Random component chat message +.cde-chat-random-component { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + padding: 8px 12px; +} + +.cde-chat-component-label { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; +} + +.cde-chat-component-value { + font-size: 16px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); +} + +// Legacy tabs (actor sheets still use cde-tabs) +.cde-tabs { + margin-top: @cde-gap; + border-bottom: 1px solid @cde-border; + + .item { + color: @cde-muted; + padding: 8px 12px; + font-size: 11px; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.08em; + + &:hover { color: @cde-text; } + + &.active { + color: @cde-item; + background: @cde-surface; + border: 1px solid @cde-border; + border-bottom: 1px solid @cde-surface; + border-radius: @cde-radius @cde-radius 0 0; + } + } +} + + +/* ============================================= + Global UI Rules + =============================================*/ + +#logo { + content: url("/systems/fvtt-chroniques-de-l-etrange/images/logo_jeu.webp"); + width: 100px; + height: 100px; + margin-left: 7px; + margin-top: -2px; +} + +#pause > img { + content: url("/systems/fvtt-chroniques-de-l-etrange/images/wheel.webp"); + height: 192px; + width: 192px; + top: -45px; + left: calc(50% - 96px); +} + +#pause.paused { + animation: none; +} + +a.compendium-name, +a.entry-name, +strong.ellipsis { + font-family: "Averia"; +} + + + +/* concerne les pages de journaux */ + +.journal-header input { + font-family: "Averia"; +} + +.journal-entry-page h1 { + font-family: "Averia"; + text-align: center; + color:hsla(249, 66%, 58%, 0.874); + border-bottom: 1px solid orange; + border-top: 1px solid orange; + border-top: 1px solid orange; + +} + +.journal-entry-page h2 { + font-family: "Averia"; + color:orange; + border-bottom: 0px; + border-top: 1px solid orange; +} + +.journal-entry-page h3, +.journal-entry-page h4, +.journal-entry-page h5, +.journal-entry-page h6 { + font-family: "Averia"; + color:hsla(249, 66%, 58%, 0.874); + border-bottom: 0px; +} + +/* concerne le Tchat */ + +#interface .chat-message .message-header img { + max-width: 80px; + border-radius: 5px; + border: 0.5px solid black; + /* max-width: 50px; */ + /* max-height: 50px; */ + margin-right: 4px; +} + +#interface .chat-message .message-header .message-sender { + width: 100px; +} + +// ============================================================ +// Three Treasures partial layout +// ============================================================ +.cde-flex-center-text { + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.cde-flex-center { + display: flex; + justify-content: center; + align-items: center; +} + +// ============================================================ +// Circle input — replaces cercle.webp overlay approach +// ============================================================ +.cde-circle-input { + width: 44px !important; + height: 44px !important; + border-radius: 50%; + border: 2px solid @cde-border-hi; + background: @cde-surface; + color: @cde-text; + text-align: center; + font-size: 1.1rem; + font-weight: 700; + padding: 0; + flex-shrink: 0; + display: inline-block !important; + line-height: 40px; + vertical-align: middle; + box-sizing: border-box; + + &:focus { + outline: none; + border-color: @cde-item; + box-shadow: 0 0 8px fade(@cde-item, 40%); + } + + &.cde-circle-sm { + width: 32px !important; + height: 32px !important; + font-size: 0.85rem; + line-height: 28px; + } +} + +// ============================================================ +// Skills table +// ============================================================ +.cde-skills-table { + width: 100%; + border-collapse: collapse; + + tr { border-bottom: 1px solid @cde-border; } + tr:last-child { border-bottom: none; } + + td { + padding: 3px 4px; + vertical-align: middle; + } + + td.click, td.noclick { + width: 30px; + min-width: 30px; + text-align: center; + cursor: pointer; + + &:hover img { filter: drop-shadow(0 0 5px @cde-item); } + } + + td.noclick { cursor: default; opacity: 0.4; } + + .cde-skill-label { + white-space: nowrap; + font-size: 0.8rem; + padding-right: 8px; + } + + .cde-val-cell { + width: 52px; + min-width: 52px; + text-align: center; + padding: 4px; + } + + .cde-spec-cell { + width: 100%; + input[type="text"] { width: 100%; } + } + + .cde-bonus-cell { + white-space: nowrap; + font-family: monospace; + font-size: 0.65rem; + color: @cde-muted; + padding: 0 6px; + } + + .cde-check-cell { width: 22px; text-align: center; } +} + +// ============================================================ +// Three Treasures layout (HEI / SAN-ZING / PTAO) +// ============================================================ +.cde-tt-block { + margin-bottom: 12px; + + .cde-tt-row { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + } + + .cde-tt-labels { + margin-bottom: 4px; + span { + width: 52px; + text-align: center; + font-family: "Averia", sans-serif; + font-size: 0.6rem; + text-transform: uppercase; + color: @cde-muted; + } + .cde-tt-center { width: 44px; } + } + + .cde-tt-yinyang { + width: 44px; + height: 44px; + opacity: 0.8; + } +} + +.cde-tt-sanzing { + margin-bottom: 12px; + + .cde-tt-sz-header, + .cde-tt-sz-row { + display: grid; + grid-template-columns: 36px 48px 1fr 48px 36px; + align-items: center; + gap: 6px; + padding: 4px 8px; + } + + .cde-tt-sz-header { + font-family: "Averia", sans-serif; + font-size: 0.6rem; + text-transform: uppercase; + color: @cde-muted; + text-align: center; + } + + .cde-tt-sz-row { + border-top: 1px solid @cde-border; + + .cde-circle-input { justify-self: center; } + } + + .cde-tt-level { + text-align: center; + font-family: monospace; + font-size: 0.75rem; + font-weight: 700; + color: @cde-muted; + } +} + +// ============================================================ +// Ng Hang — Aspects grid +// ============================================================ +.cde-aspects-header { + display: flex; + justify-content: center; + margin-bottom: 10px; + + .cde-aspects-logo { + max-height: 48px; + opacity: 0.7; + } +} + +.cde-aspects-grid { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 12px; +} + +.cde-aspect-card { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + padding: 10px 8px; + border-radius: 4px; + background: @cde-surface; + border: 1px solid @cde-border; + min-width: 88px; + flex: 1 1 88px; + max-width: 120px; + + .cde-aspect-top { + display: flex; + flex-direction: column; + align-items: center; + gap: 3px; + } + + .cde-aspect-gif { width: 36px; height: 36px; } + + .cde-aspect-name { + font-family: "Averia"; + font-size: 0.8rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + } + + .cde-aspect-roll { + display: flex; + align-items: center; + gap: 6px; + + .cde-roll-trigger { + cursor: pointer; + display: flex; + align-items: center; + + &:hover img { filter: drop-shadow(0 0 5px currentColor); } + } + } + + .cde-aspect-qual { + font-size: 0.6rem; + color: @cde-muted; + text-align: center; + line-height: 1.3; + } + + &.cde-aspect--fire { + border-color: @cde-kungfu; + .cde-aspect-name { color: @cde-kungfu; } + .cde-circle-input:focus { border-color: @cde-kungfu; box-shadow: 0 0 6px @cde-kungfu; } + } + + &.cde-aspect--wood { + border-color: #44bb44; + .cde-aspect-name { color: #55cc55; } + .cde-circle-input:focus { border-color: #55cc55; box-shadow: 0 0 6px #55cc55; } + } + + &.cde-aspect--earth { + border-color: #aa7722; + .cde-aspect-name { color: #cc9933; } + .cde-circle-input:focus { border-color: #cc9933; box-shadow: 0 0 6px #cc9933; } + } + + &.cde-aspect--water { + border-color: @cde-spell; + .cde-aspect-name { color: @cde-spell; } + .cde-circle-input:focus { border-color: @cde-spell; box-shadow: 0 0 6px @cde-spell; } + } + + &.cde-aspect--metal { + border-color: @cde-muted; + .cde-aspect-name { color: @cde-text; } + .cde-circle-input:focus { border-color: @cde-item; box-shadow: 0 0 6px @cde-item; } + } +} + +.cde-nghang-diagram { + display: flex; + justify-content: center; + margin-top: 8px; + + img { + max-width: 100%; + max-height: 180px; + opacity: 0.45; + border-radius: 4px; + cursor: zoom-in; + transition: opacity 0.2s ease, box-shadow 0.2s ease; + + &:hover { + opacity: 0.85; + box-shadow: 0 0 12px @cde-border-hi; + } + } +} + +.img-die-sm { + width: 27px !important; + height: 27px !important; + flex-shrink: 0; +} + +// ============================================================ +// Magics partial layout +// ============================================================ +.cde-magics-table { + td.image { + width: 2.2%; + &.td-die { width: 2%; } + } + td.value { width: 25%; } + td.td-spacer { width: 2.2%; } +} + +.chancethrow { + display: flex; + justify-content: center; + align-items: center; +} + +// ============================================================ +// Actor sheet item lists +// ============================================================ +.cde-item-group-label { + font-family: "Averia", sans-serif; + font-size: 0.65rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.15em; + color: @cde-muted; + padding: 2px 6px; + border-left: 2px solid @cde-border-hi; + margin: 8px 0 2px; + flex-shrink: 0; +} + +ol.item-list { + list-style: none; + margin: 0 0 4px; + padding: 0; + + li.item { + display: flex; + align-items: center; + gap: 8px; + padding: 3px 6px; + border-radius: 4px; + background: @cde-surface; + border: 1px solid @cde-border; + margin-bottom: 2px; + + img { border: none; border-radius: 3px; flex-shrink: 0; } + + h4.item-name { flex: 1 1 0; margin: 0; font-size: 13px; color: @cde-text; } + + .cde-item-stat { + font-family: monospace; + font-size: 11px; + color: @cde-muted; + } + + .item-controls { + display: flex; + gap: 4px; + flex-shrink: 0; + + a.item-control { + color: @cde-muted; + &:hover { color: @cde-text; } + } + } + } +} + +// ============================================================ +// Roll Prompt Dialogs (.cde-roll-prompt) +// ============================================================ + +.cde-roll-prompt { + background: @cde-bg; + color: @cde-text; + font-family: "Averia", sans-serif; + padding: 12px 14px; + + &.cde-roll-prompt--magic { + min-width: 340px; + } + + .cde-roll-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 8px; + margin-bottom: 10px; + border-bottom: 1px solid @cde-border; + } + + .cde-roll-title { + font-size: 13px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: @cde-text; + } + + .cde-roll-dice-count { + font-size: 36px; + font-weight: 900; + color: @cde-item; + line-height: 1; + text-align: center; + margin: 4px 0 8px; + text-shadow: 0 0 12px fade(@cde-item, 60%); + + .cde-roll-dice-label { + font-size: 14px; + font-weight: 600; + color: @cde-muted; + margin-left: 4px; + } + } + + .cde-roll-section { + margin-bottom: 8px; + + &.cde-roll-section--separator { + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px dashed @cde-border; + } + } + + .cde-roll-section-title { + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + margin: 0 0 6px; + } + + .cde-roll-fields { + display: flex; + flex-direction: column; + gap: 5px; + } + + .cde-roll-field { + display: flex; + align-items: center; + gap: 8px; + + label { + flex: 0 0 160px; + font-size: 11px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + select, + .cde-roll-input { + flex: 1; + background: @cde-surface; + border: none; + border-bottom: 1px solid @cde-border; + color: @cde-text; + font-family: monospace; + font-size: 13px; + padding: 3px 6px; + border-radius: 2px; + + &:focus { + outline: none; + border-bottom-color: @cde-item; + box-shadow: 0 1px 0 0 @cde-item; + } + } + + select option { + background: @cde-surface; + color: @cde-text; + } + } + + .cde-roll-hint { + font-size: 10px; + color: @cde-muted; + margin: 4px 0 0; + font-style: italic; + } +} + +// ============================================================ +// Dice Roll Result in Chat (.cde-roll-result) +// ============================================================ + +// Wu Xing aspect color + icon custom properties +// Row order: [successes, auspicious, noxious, loksyu, tinji] +// Colors: wood=#41a436 fire=#cd171a earth=#a85747 metal=#70706e water=#009fe2 + +@wu-green: #41a436; +@wu-red: #cd171a; +@wu-brown: #a85747; +@wu-gray: #70706e; +@wu-blue: #009fe2; + +@wu-img-bois: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp)"; +@wu-img-feu: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp)"; +@wu-img-terre: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp)"; +@wu-img-metal: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp)"; +@wu-img-eau: ~"url(/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp)"; + +// Wu Xing aspect custom properties (accent color + icon per aspect) +// Sets --rr-accent on the card root, plus per-row --rr-color/--rr-icon +[data-aspect="wood"] { + --rr-accent: @wu-green; + --rr-accent-bg: fade(@wu-green, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--noxious { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--loksyu { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--tinji { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } +} +[data-aspect="fire"] { + --rr-accent: @wu-red; + --rr-accent-bg: fade(@wu-red, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--noxious { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--loksyu { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--tinji { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } +} +[data-aspect="earth"] { + --rr-accent: @wu-brown; + --rr-accent-bg: fade(@wu-brown, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--noxious { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--loksyu { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--tinji { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } +} +[data-aspect="metal"] { + --rr-accent: @wu-gray; + --rr-accent-bg: fade(@wu-gray, 16%); + .cde-rr-row--auspicious { --rr-color: @wu-blue; --rr-icon: @wu-img-eau; } + .cde-rr-row--noxious { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } + .cde-rr-row--loksyu { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--tinji { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } +} +[data-aspect="water"] { + --rr-accent: @wu-blue; + --rr-accent-bg: fade(@wu-blue, 12%); + .cde-rr-row--auspicious { --rr-color: @wu-green; --rr-icon: @wu-img-bois; } + .cde-rr-row--noxious { --rr-color: @wu-gray; --rr-icon: @wu-img-metal; } + .cde-rr-row--loksyu { --rr-color: @wu-red; --rr-icon: @wu-img-feu; } + .cde-rr-row--tinji { --rr-color: @wu-brown; --rr-icon: @wu-img-terre; } +} + +.cde-roll-result { + background: @cde-bg; + color: @cde-text; + font-family: 'Share Tech Mono', monospace; + border-radius: 4px; + border: 1px solid @cde-border; + overflow: hidden; + + // ---- Header ---- + .cde-rr-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px; + background: var(--rr-accent-bg, fade(@cde-surface, 80%)); + border-left: 4px solid var(--rr-accent, @cde-border); + border-bottom: 1px solid @cde-border; + gap: 8px; + + .cde-rr-header-left { + display: flex; + align-items: center; + gap: 10px; + flex: 1; + } + + .cde-rr-aspect-icon { + width: 32px; + height: 32px; + object-fit: contain; + filter: drop-shadow(0 0 4px var(--rr-accent, @cde-border)); + border: none; + } + + .cde-rr-header-text { + display: flex; + flex-direction: column; + } + + .cde-rr-aspect-label { + font-size: 11px; + font-weight: 900; + text-transform: uppercase; + letter-spacing: 0.12em; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 6px var(--rr-accent, transparent); + } + + .cde-rr-roll-label { + font-size: 13px; + font-weight: 600; + color: @cde-text; + } + + .cde-rr-header-right { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 2px; + } + + .cde-rr-actor-avatar { + width: 28px; + height: 28px; + border-radius: 50%; + border: 1px solid var(--rr-accent, @cde-border); + object-fit: cover; + } + + .cde-rr-actor-name { + font-size: 9px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + } + + // ---- Hero: successes count ---- + .cde-rr-hero { + display: flex; + align-items: center; + gap: 12px; + padding: 10px 16px; + background: fade(@cde-surface, 40%); + + .cde-rr-hero-count { + font-size: 48px; + font-weight: 900; + line-height: 1; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 16px var(--rr-accent, transparent), 0 0 32px var(--rr-accent, transparent); + } + + .cde-rr-hero-right { + display: flex; + flex-direction: column; + } + + .cde-rr-hero-label { + font-size: 11px; + font-weight: 900; + text-transform: uppercase; + letter-spacing: 0.1em; + color: var(--rr-accent, @cde-text); + } + + .cde-rr-hero-dice { + font-size: 13px; + color: @cde-muted; + margin-top: 2px; + } + + .cde-rr-hero-dice-label { + font-size: 10px; + } + + .cde-rr-spell-power { + margin-left: auto; + display: flex; + flex-direction: column; + align-items: flex-end; + border-left: 2px solid var(--rr-accent, @cde-border); + padding-left: 10px; + + .cde-rr-spell-power-count { + font-size: 32px; + font-weight: 900; + line-height: 1; + color: var(--rr-accent, @cde-text); + text-shadow: 0 0 12px var(--rr-accent, transparent); + } + + .cde-rr-spell-power-label { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + } + } + + // Loksyu bonus badge (shown when dice drawn from Loksyu) + .cde-rr-loksyu-bonus { + display: inline-flex; + align-items: center; + gap: 3px; + font-size: 13px; + font-weight: 700; + padding: 2px 6px; + border-radius: 3px; + animation: cde-pulse-in 0.3s ease; + + &.cde-rr-loksyu-bonus--success { + background: fade(#c9a227, 20%); + border: 1px solid fade(#c9a227, 50%); + color: #c9a227; + text-shadow: 0 0 6px fade(#c9a227, 60%); + } + + &.cde-rr-loksyu-bonus--faste { + background: fade(@cde-item, 15%); + border: 1px solid fade(@cde-item, 40%); + color: @cde-item; + text-shadow: 0 0 6px fade(@cde-item, 50%); + } + } + } + + @keyframes cde-pulse-in { + from { opacity: 0; transform: scale(0.7); } + to { opacity: 1; transform: scale(1); } + } + + // ---- Detail rows ---- + .cde-rr-details { + display: flex; + flex-direction: column; + gap: 2px; + padding: 6px 10px; + } + + .cde-rr-row { + display: flex; + align-items: center; + gap: 8px; + padding: 3px 6px; + border-radius: 3px; + background: fade(@cde-surface, 60%); + color: var(--rr-color, @cde-muted); + + .cde-rr-count { + font-size: 18px; + font-weight: 900; + line-height: 1; + min-width: 26px; + text-align: center; + text-shadow: 0 0 6px currentColor; + } + + // Inline Loksyu bonus badge in detail rows + .cde-rr-loksyu-bonus { + font-size: 10px; + font-weight: 700; + padding: 1px 4px; + border-radius: 2px; + background: fade(@cde-item, 15%); + border: 1px solid fade(@cde-item, 40%); + color: @cde-item; + text-shadow: 0 0 4px fade(@cde-item, 50%); + flex-shrink: 0; + } + + .cde-rr-icon { + width: 22px; + height: 22px; + background-image: var(--rr-icon); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + flex-shrink: 0; + opacity: 0.85; + } + + .cde-rr-label { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.07em; + flex: 1; + } + + .cde-rr-partition { + font-size: 9px; + color: @cde-muted; + margin-left: 4px; + } + } + + // ---- Footer modifiers ---- + .cde-rr-footer { + padding: 5px 12px; + border-top: 1px solid @cde-border; + background: fade(@cde-surface, 30%); + display: flex; + align-items: baseline; + gap: 6px; + + .cde-rr-footer-label { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + color: @cde-muted; + letter-spacing: 0.08em; + } + + .cde-rr-footer-text { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + } + + // ---- Dice face grid ---- + .cde-dice-grid { + display: grid; + grid-template-columns: repeat(10, 1fr); + gap: 3px; + padding: 8px 8px 6px; + border-top: 1px solid @cde-border; + + .cde-dice-cell { + display: flex; + flex-direction: column; + align-items: center; + gap: 1px; + + .cde-dice-count { + font-size: 12px; + font-weight: 700; + color: @cde-text; + line-height: 1; + } + + .cde-dice-plate { + width: 100%; + border: none; + opacity: 0.65; + } + } + } +} + + +// ============================================================ +// Initiative prompt dialog +// ============================================================ +.cde-initiative-prompt { + // Override: fields use vertical layout (label on top, control below) + // to avoid the fixed 160px label squeezing the select to 12px. + .cde-roll-field { + flex-direction: column; + align-items: stretch; + gap: 4px; + + label { + flex: none; + font-size: 10px; + color: @cde-muted; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + select, .cde-roll-input { + flex: none; + width: 100%; + } + } + + .cde-initiative-base-row { + display: flex; + align-items: flex-end; + gap: 10px; + flex-wrap: nowrap; + } + + .cde-initiative-base-field { + flex-shrink: 0; + min-width: 70px; + } + + .cde-initiative-base-value { + display: block; + font-size: 22px; + font-weight: 800; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); + text-align: center; + line-height: 1; + padding: 4px 0; + } + + .cde-initiative-op { + font-size: 18px; + font-weight: 700; + color: @cde-muted; + padding-bottom: 6px; + flex-shrink: 0; + align-self: flex-end; + } + + .cde-initiative-action-field { + flex: 1; + min-width: 0; + } + + .cde-initiative-select { + width: 100%; + } + + .cde-initiative-hint { + font-size: 10px; + font-family: "Averia", sans-serif; + color: @cde-muted; + text-align: center; + letter-spacing: 0.05em; + padding: 4px 0 0; + border-top: 1px solid @cde-border; + margin-top: 4px; + } + + .cde-initiative-icon { + font-size: 20px; + color: @cde-spell; + } +} + +// ============================================================ +// Initiative chat result card +// ============================================================ +.cde-initiative-result { + background: @cde-surface; + border: 1px solid @cde-border; + border-left: 4px solid @cde-spell; + border-radius: @cde-radius; + overflow: hidden; + color: @cde-text; + + .cde-ir-header { + display: flex; + align-items: center; + gap: 10px; + padding: 10px 12px; + background: fade(@cde-spell, 8%); + border-bottom: 1px solid @cde-border; + } + + .cde-ir-avatar { + width: 36px; + height: 36px; + border-radius: 50%; + border: 2px solid @cde-border; + object-fit: cover; + flex-shrink: 0; + } + + .cde-ir-actor-info { + display: flex; + flex-direction: column; + gap: 2px; + } + + .cde-ir-actor-name { + font-size: 13px; + font-weight: 700; + color: @cde-text; + } + + .cde-ir-roll-label { + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-ir-formula { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 5px; + padding: 8px 12px; + background: fade(@cde-bg, 60%); + border-bottom: 1px solid @cde-border; + font-family: monospace; + font-size: 12px; + } + + .cde-ir-formula-base { + color: @cde-muted; + font-size: 11px; + } + + .cde-ir-formula-val { + font-weight: 700; + color: @cde-text; + font-size: 13px; + } + + .cde-ir-formula-mod { + color: @cde-kungfu; + } + + .cde-ir-formula-sep { + color: @cde-muted; + } + + .cde-ir-formula-eq { + color: @cde-muted; + font-size: 14px; + } + + .cde-ir-formula-total { + font-size: 16px; + font-weight: 800; + color: @cde-spell; + text-shadow: 0 0 6px fade(@cde-spell, 50%); + } + + .cde-ir-hero { + display: flex; + align-items: center; + justify-content: center; + gap: 14px; + padding: 14px 12px; + } + + .cde-ir-init-value { + font-size: 48px; + font-weight: 900; + color: @cde-spell; + text-shadow: 0 0 12px fade(@cde-spell, 70%), 0 0 24px fade(@cde-spell, 35%); + line-height: 1; + font-family: 'Averia Regular', sans-serif; + } + + .cde-ir-hero-right { + display: flex; + flex-direction: column; + gap: 4px; + } + + .cde-ir-init-label { + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: @cde-muted; + font-family: "Averia", sans-serif; + } + + .cde-ir-anti { + display: flex; + gap: 5px; + align-items: baseline; + } + + .cde-ir-anti-label { + font-size: 10px; + color: @cde-muted; + font-family: "Averia", sans-serif; + text-transform: uppercase; + letter-spacing: 0.05em; + } + + .cde-ir-anti-value { + font-size: 14px; + font-weight: 700; + color: @cde-kungfu; + text-shadow: 0 0 5px fade(@cde-kungfu, 40%); + } +} + + +/* ============================================================ + ROUE D'INITIATIVE — CDEWheelApp + ============================================================ */ + +// Wu Xing segment colours (match JS constants) +@wu-metal: #b8c4cc; +@wu-water: #3a7bd5; +@wu-earth: #c8a84b; +@wu-fire: #d94f3d; +@wu-wood: #4a9b5a; +@wu-reference: #2c1f6b; + +.cde-wheel-app { + color: @cde-text; + background: @cde-bg; + font-family: "Averia", "Averia Regular", sans-serif; + + .window-content { + padding: 0; + overflow: hidden; + } +} + +/* Two-column layout: SVG wheel left, panel right */ +.cde-wheel-layout { + display: flex; + height: 100%; + min-height: 520px; +} + +/* ---- Left: SVG wheel ---- */ +.cde-wheel-svg-container { + flex: 0 0 480px; + width: 480px; + padding: 12px 12px 6px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: @cde-surface2; + border-right: 1px solid @cde-border; + + svg { + flex: 1 1 auto; + width: 100%; + max-width: 456px; + max-height: 456px; + overflow: visible; + } + + .cde-wheel-legend { + display: flex; + align-items: center; + gap: 8px; + padding: 4px 0 2px; + font-size: 11px; + color: rgba(255,255,255,0.55); + flex-shrink: 0; + } + + .cde-wheel-legend-dot { + display: inline-block; + width: 10px; + height: 10px; + border-radius: 50%; + flex-shrink: 0; + } + + .cde-wheel-segment { + stroke: @cde-bg; + stroke-width: 1.5; + transition: opacity 0.2s; + } + + .cde-wheel-cran-label { + font-family: "Averia Regular", sans-serif; + font-size: 12px; + fill: rgba(255,255,255,0.55); + text-anchor: middle; + dominant-baseline: central; + pointer-events: none; + user-select: none; + } + + // Combatant token circle on the wheel + .cde-wheel-fighter-circle { + stroke-width: 2; + cursor: pointer; + transition: r 0.2s, stroke-width 0.2s; + + &:hover { + stroke-width: 3; + } + + &.is-active { + r: 18; + stroke-width: 3; + filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.7)); + } + + &.is-turn { + stroke-dasharray: 3 2; + animation: cde-spin 4s linear infinite; + } + } + + .cde-wheel-fighter-initial { + font-size: 13px; + font-weight: 700; + fill: #fff; + text-anchor: middle; + dominant-baseline: central; + pointer-events: none; + } +} + +/* ---- Right: panel ---- */ +.cde-wheel-panel { + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow: hidden; + padding: 0; + min-width: 0; +} + +.cde-wheel-section-title { + padding: 7px 12px 6px; + border-bottom: 1px solid @cde-border; + background: @cde-surface2; + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.12em; + color: @cde-muted; + border-left: 3px solid @cde-spell; + flex-shrink: 0; + + em { + font-style: normal; + color: @cde-text; + text-transform: none; + letter-spacing: 0; + font-size: 11px; + } +} + +/* Combatant list */ +.cde-wheel-combatants { + flex: 0 0 auto; + max-height: 130px; + overflow-y: auto; + border-bottom: 1px solid @cde-border; +} + +.cde-wheel-combatant { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 12px 6px 9px; + cursor: pointer; + border-bottom: 1px solid fade(@cde-border, 50%); + border-left: 3px solid transparent; + transition: background 0.15s, border-color 0.15s; + + &:last-child { border-bottom: none; } + + &:hover { + background: @cde-surface; + } + + &.cde-wheel-combatant--selected { + background: fade(@cde-spell, 10%); + border-left-color: @cde-spell; + + .cde-wheel-combatant-name { + color: @cde-text; + font-weight: 600; + } + } + + &.cde-wheel-combatant--active { + .cde-wheel-active-marker { + color: #f0c040; + filter: drop-shadow(0 0 3px #f0c040); + } + } +} + +.cde-wheel-combatant-img { + width: 30px; + height: 30px; + border-radius: 50%; + object-fit: cover; + border: 1.5px solid @cde-border-hi; + flex-shrink: 0; +} + +.cde-wheel-combatant-name { + flex: 1 1 auto; + font-size: 13px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: @cde-muted; +} + +.cde-wheel-combatant-cran { + font-size: 11px; + font-weight: 700; + font-variant-numeric: tabular-nums; + flex-shrink: 0; + min-width: 22px; + text-align: center; + padding: 2px 6px; + border-radius: 12px; + line-height: 1.3; +} + +.cde-wheel-active-marker { + font-size: 10px; + color: @cde-muted; + flex-shrink: 0; +} + +/* Action area */ +.cde-wheel-actions { + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; + padding: 8px 10px 10px; + gap: 6px; + + &.cde-wheel-actions--hint { + justify-content: center; + align-items: center; + } +} + +.cde-wheel-hint { + color: @cde-muted; + font-size: 12px; + text-align: center; + font-style: italic; + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + + i { + font-size: 22px; + opacity: 0.4; + } +} + +.cde-wheel-action-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 5px; +} + +.cde-wheel-action-btn { + display: flex; + align-items: center; + justify-content: space-between; + gap: 4px; + background: @cde-surface; + border: 1px solid @cde-border-hi; + border-radius: @cde-radius-sm; + color: @cde-muted; + font-size: 11px; + padding: 5px 7px; + cursor: pointer; + text-align: left; + transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s; + font-family: inherit; + + &:hover { + color: @cde-text; + background: @cde-border; + border-color: @cde-border-hi; + } + + .cde-wheel-action-name { + flex: 1 1 auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .cde-wheel-action-cost { + flex-shrink: 0; + font-weight: 700; + font-size: 10px; + padding: 1px 5px; + border-radius: 10px; + background: @cde-border-hi; + color: @cde-muted; + line-height: 1.4; + } + + &[data-cost="1"] { + &:hover { box-shadow: 0 0 6px fade(@cde-spell, 22%); } + .cde-wheel-action-cost { background: #1a3d6a; color: #6aadff; } + } + &[data-cost="2"] { + &:hover { box-shadow: 0 0 6px fade(#d4a050, 25%); } + .cde-wheel-action-cost { background: #4a3200; color: #d4a050; } + } + &[data-cost="3"] { + &:hover { box-shadow: 0 0 6px fade(#e06030, 28%); } + .cde-wheel-action-cost { background: #4a1800; color: #e07840; } + } + &[data-cost="6"] { + border-color: fade(#cc2040, 40%); + &:hover { box-shadow: 0 0 6px fade(#cc2040, 35%); } + .cde-wheel-action-cost { background: #4a0814; color: #e03050; } + } +} + +/* Special action buttons */ +.cde-wheel-special-actions { + display: flex; + gap: 6px; + margin-top: 2px; +} + +.cde-wheel-btn-roll, +.cde-wheel-btn-surprise { + flex: 1 1 0; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + border-radius: @cde-radius-sm; + font-size: 11px; + font-weight: 600; + padding: 7px 8px; + cursor: pointer; + font-family: inherit; + transition: background 0.15s, box-shadow 0.15s; + border: 1px solid; +} + +.cde-wheel-btn-roll { + background: fade(#c08a00, 14%); + border-color: fade(#c08a00, 50%); + color: #e0b030; + + &:hover { + background: fade(#c08a00, 26%); + box-shadow: 0 0 8px fade(#c08a00, 40%); + } +} + +.cde-wheel-btn-surprise { + background: fade(@cde-kungfu, 12%); + border-color: fade(@cde-kungfu, 45%); + color: @cde-kungfu; + + &:hover { + background: fade(@cde-kungfu, 24%); + box-shadow: 0 0 8px fade(@cde-kungfu, 35%); + } +} + +/* No-combat empty state */ +.cde-wheel-no-combat { + flex: 1 1 auto; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: @cde-muted; + gap: 8px; + padding: 20px; + text-align: center; + font-size: 12px; + + i { + font-size: 28px; + opacity: 0.4; + } +} + +/* Spin animation for active-turn token */ +@keyframes cde-spin { + from { transform-origin: var(--fx) var(--fy); transform: rotate(0deg); } + to { transform-origin: var(--fx) var(--fy); transform: rotate(360deg); } +} + +/* =================================================================== + Migration App + =================================================================== */ + +.cde-migration-app { + .window-content { + padding: 0; + overflow-y: auto; + } +} + +.cde-migration-body { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px; +} + +/* Drop zone */ +.cde-migration-drop-zone { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: 28px 20px; + border: 2px dashed @cde-border; + border-radius: 8px; + background: fadeout(@cde-surface2, 40%); + text-align: center; + transition: border-color 0.15s, background 0.15s; + cursor: pointer; + + &.is-dragover { + border-color: @cde-spell; + background: fadeout(@cde-spell, 85%); + } +} + +.cde-migration-drop-icon { + font-size: 36px; + color: @cde-spell; + opacity: 0.7; +} + +.cde-migration-drop-hint { + margin: 0; + font-size: 12px; + color: @cde-muted; +} + +.cde-migration-file-btn { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 6px 14px; + border: 1px solid @cde-spell; + border-radius: 4px; + color: @cde-spell; + font-size: 12px; + font-weight: 600; + cursor: pointer; + transition: background 0.15s; + + &:hover { + background: fadeout(@cde-spell, 80%); + } +} + +/* Preview section */ +.cde-migration-preview { + border: 1px solid @cde-border; + border-radius: 6px; + overflow: hidden; +} + +.cde-migration-preview-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px; + background: fadeout(@cde-surface2, 20%); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.06em; + color: @cde-muted; +} + +.cde-migration-clear-btn { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 8px; + border: 1px solid @cde-border; + border-radius: 4px; + font-size: 11px; + color: @cde-muted; + background: none; + cursor: pointer; + transition: color 0.15s, border-color 0.15s; + + &:hover { + color: #e04444; + border-color: #e04444; + } +} + +/* Preview table */ +.cde-migration-table { + width: 100%; + border-collapse: collapse; + font-size: 12px; + + th { + padding: 5px 8px; + background: fadeout(@cde-surface2, 10%); + color: @cde-muted; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + text-align: left; + border-bottom: 1px solid @cde-border; + } + + td { + padding: 5px 8px; + border-bottom: 1px solid fadeout(@cde-border, 60%); + vertical-align: middle; + } + + tr:last-child td { + border-bottom: none; + } +} + +.cde-migration-thumb { + width: 28px; + height: 28px; + border-radius: 3px; + object-fit: cover; +} + +.cde-migration-name { + font-weight: 600; + color: @cde-text; +} + +.cde-migration-items-count { + text-align: center; + color: @cde-muted; +} + +.cde-migration-srcfile { + font-size: 10px; + color: @cde-muted; + max-width: 130px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Type badge */ +.cde-migration-type-badge { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 2px 8px; + border-radius: 10px; + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + + &.cde-migration-type-character { + background: fadeout(@cde-spell, 80%); + color: @cde-spell; + border: 1px solid fadeout(@cde-spell, 60%); + } + + &.cde-migration-type-npc { + background: fadeout(#9c4dcc, 80%); + color: #c97ae0; + border: 1px solid fadeout(#9c4dcc, 60%); + } +} + +/* Errors */ +.cde-migration-errors { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + gap: 4px; + + li { + display: flex; + align-items: flex-start; + gap: 6px; + padding: 6px 10px; + border: 1px solid fadeout(#e04444, 40%); + border-radius: 4px; + background: fadeout(#e04444, 90%); + color: #e07070; + font-size: 11px; + + i { margin-top: 2px; flex-shrink: 0; } + } +} + +/* Bottom action bar */ +.cde-migration-actions { + display: flex; + justify-content: center; + padding-top: 4px; +} + +.cde-migration-import-btn { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 9px 24px; + border: none; + border-radius: 6px; + background: @cde-spell; + color: #fff; + font-size: 13px; + font-weight: 700; + cursor: pointer; + transition: filter 0.15s; + + &:hover { + filter: brightness(1.15); + } +} + +.cde-migration-hint { + margin: 0; + font-size: 12px; + color: @cde-muted; + text-align: center; +} + +// ============================================================ +// Welcome message +// ============================================================ + +.cde-welcome-message { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: 12px 16px; + background: @cde-surface; + border: 1px solid @cde-border-hi; + border-radius: 8px; + text-align: center; +} + +.cde-welcome-logo { + width: 120px; + height: auto; + object-fit: contain; + filter: drop-shadow(0 0 8px fade(@cde-spell, 40%)); +} + +.cde-welcome-title { + margin: 0; + font-size: 15px; + font-weight: 700; + color: @cde-spell; + text-shadow: 0 0 8px fade(@cde-spell, 50%); +} + +.cde-welcome-links { + margin: 0; + font-size: 12px; + color: @cde-muted; + + a { + color: @cde-item; + text-decoration: none; + border-bottom: 1px solid fade(@cde-item, 40%); + + &:hover { + color: #fff; + border-bottom-color: #fff; + } + } +} + +.cde-welcome-help-btn { + display: inline-flex; + align-items: center; + gap: 6px; + margin-top: 4px; + padding: 7px 18px; + background: @cde-spell; + border: none; + border-radius: 6px; + color: #fff; + font-size: 12px; + font-weight: 700; + cursor: pointer; + transition: filter 0.15s; + + &:hover { + filter: brightness(1.2); + } +} diff --git a/packs/cde-armors/000008.log b/packs/cde-armors/000025.log similarity index 100% rename from packs/cde-armors/000008.log rename to packs/cde-armors/000025.log diff --git a/packs/cde-armors/000010.ldb b/packs/cde-armors/000027.ldb similarity index 100% rename from packs/cde-armors/000010.ldb rename to packs/cde-armors/000027.ldb diff --git a/packs/cde-armors/CURRENT b/packs/cde-armors/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-armors/CURRENT +++ b/packs/cde-armors/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-armors/LOG b/packs/cde-armors/LOG index 642f054..4caa440 100644 --- a/packs/cde-armors/LOG +++ b/packs/cde-armors/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.314091 7ff671fef6c0 Recovering log #4 -2026/05/12-00:36:56.323263 7ff671fef6c0 Delete type=3 #2 -2026/05/12-00:36:56.323317 7ff671fef6c0 Delete type=0 #4 -2026/05/12-00:37:07.971141 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.974291 7ff6637fe6c0 Level-0 table #9: 1387 bytes OK -2026/05/12-00:37:07.980872 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.009643 7ff6637fe6c0 Manual compaction at level-0 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.009699 7ff6637fe6c0 Manual compaction at level-1 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at '!items!cXaQG1TBE0jzrbNt' @ 8 : 1 -2026/05/12-00:37:08.009706 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.012872 7ff6637fe6c0 Generated table #10@1: 4 keys, 1387 bytes -2026/05/12-00:37:08.012903 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 1387 bytes -2026/05/12-00:37:08.019075 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.019187 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.019315 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.051276 7ff6637fe6c0 Manual compaction at level-1 from '!items!cXaQG1TBE0jzrbNt' @ 8 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.880760 7f52c5bfd6c0 Delete type=3 #1 +2026/06/01-22:35:51.016255 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.016270 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.023046 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.047956 7f52c4bfb6c0 Manual compaction at level-0 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at '!items!cXaQG1TBE0jzrbNt' @ 8 : 1 +2026/06/01-22:35:51.047965 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.051139 7f52c4bfb6c0 Generated table #27@0: 4 keys, 1387 bytes +2026/06/01-22:35:51.051154 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 1387 bytes +2026/06/01-22:35:51.057027 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.057087 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.067136 7f52c4bfb6c0 Manual compaction at level-0 from '!items!cXaQG1TBE0jzrbNt' @ 8 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) diff --git a/packs/cde-armors/LOG.old b/packs/cde-armors/LOG.old index f0e5aed..1a38e82 100644 --- a/packs/cde-armors/LOG.old +++ b/packs/cde-armors/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.149746 7fdfd57ec6c0 Delete type=3 #1 -2026/05/12-00:36:37.152016 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.155425 7fdfd4feb6c0 Level-0 table #5: 1330 bytes OK -2026/05/12-00:36:37.161916 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.162057 7fdfd4feb6c0 Manual compaction at level-0 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.858708 7f52c5bfd6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.858788 7f52c5bfd6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-armors/000021.log: OK +2026/06/01-22:35:11.858829 7f52c5bfd6c0 Table #10: 4 entries OK +2026/06/01-22:35:11.862084 7f52c5bfd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-armors; recovered 1 files; 1387 bytes. Some data may have been lost. **** diff --git a/packs/cde-armors/MANIFEST-000006 b/packs/cde-armors/MANIFEST-000006 deleted file mode 100644 index a2be5f8260a9bad7276dcdd7f981df486e4245f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZP-dU`35fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQbrYAoVrEHdZn2_q zVrIITZ+Kahb5MSGL_jzrBLf(~2WYHGO=?q zFmtf5O!BU`@C9-?fLtyX4t7S)*SM`yL_WXz#>7&nncOTKtc*C_1l7RC$jQdU K%Fe_^x!nM6Sx$%m diff --git a/packs/cde-armors/MANIFEST-000023 b/packs/cde-armors/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..43050d3a24167f0c87dd5d795ba5b9f7793b7ff3 GIT binary patch literal 255 zcmbP}WT=`pgoS$2eSd>_jU&PM9^_ojwF|#B!w^-3Q zF*DuFH@qy$IVe9oA|RZRl>rQ3^2rg2f$oMOPOb)7RYggDC5#*pd5K0jR}Kb7CJ9ak sW=R%~g2PjQGK@@;K&~_kNB@~8dyAl485Ry!213TMF>tXnN>lDE0Mpq$ZvX%Q literal 0 HcmV?d00001 diff --git a/packs/cde-help/000008.log b/packs/cde-armors/lost/000021.log similarity index 100% rename from packs/cde-help/000008.log rename to packs/cde-armors/lost/000021.log diff --git a/packs/cde-ingredients/000008.log b/packs/cde-help/000025.log similarity index 100% rename from packs/cde-ingredients/000008.log rename to packs/cde-help/000025.log diff --git a/packs/cde-help/000010.ldb b/packs/cde-help/000027.ldb similarity index 100% rename from packs/cde-help/000010.ldb rename to packs/cde-help/000027.ldb diff --git a/packs/cde-help/CURRENT b/packs/cde-help/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-help/CURRENT +++ b/packs/cde-help/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-help/LOG b/packs/cde-help/LOG index 1c518b9..ba59c23 100644 --- a/packs/cde-help/LOG +++ b/packs/cde-help/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.374154 7ff663fff6c0 Recovering log #4 -2026/05/12-00:36:56.383721 7ff663fff6c0 Delete type=3 #2 -2026/05/12-00:36:56.383779 7ff663fff6c0 Delete type=0 #4 -2026/05/12-00:37:08.062905 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:08.066411 7ff6637fe6c0 Level-0 table #9: 10124 bytes OK -2026/05/12-00:37:08.072622 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.086421 7ff6637fe6c0 Manual compaction at level-0 from '!journal!CDEGuideMain0001' @ 72057594037927935 : 1 .. '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.096808 7ff6637fe6c0 Manual compaction at level-1 from '!journal!CDEGuideMain0001' @ 72057594037927935 : 1 .. '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 0 : 0; will stop at '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 17 : 1 -2026/05/12-00:37:08.096817 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.100204 7ff6637fe6c0 Generated table #10@1: 21 keys, 18033 bytes -2026/05/12-00:37:08.100229 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 18033 bytes -2026/05/12-00:37:08.106245 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.106373 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.106502 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.113213 7ff6637fe6c0 Manual compaction at level-1 from '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 17 : 1 .. '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.987923 7f52c53fc6c0 Delete type=3 #1 +2026/06/01-22:35:51.085088 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.085109 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.091460 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.107759 7f52c4bfb6c0 Manual compaction at level-0 from '!journal!CDEGuideMain0001' @ 72057594037927935 : 1 .. '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 0 : 0; will stop at '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 17 : 1 +2026/06/01-22:35:51.107763 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.111831 7f52c4bfb6c0 Generated table #27@0: 21 keys, 18033 bytes +2026/06/01-22:35:51.111846 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 18033 bytes +2026/06/01-22:35:51.117896 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.117946 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.124817 7f52c4bfb6c0 Manual compaction at level-0 from '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 17 : 1 .. '!journal.pages!CDEGuideMain0001.wgqIHHVlO9miegn1' @ 0 : 0; will stop at (end) diff --git a/packs/cde-help/LOG.old b/packs/cde-help/LOG.old index 2337157..7da809b 100644 --- a/packs/cde-help/LOG.old +++ b/packs/cde-help/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.177388 7fdfd5fed6c0 Delete type=3 #1 -2026/05/12-00:36:37.178463 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.181940 7fdfd4feb6c0 Level-0 table #5: 9307 bytes OK -2026/05/12-00:36:37.188105 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.188350 7fdfd4feb6c0 Manual compaction at level-0 from '!journal!CDEGuideMain0001' @ 72057594037927935 : 1 .. '!journal.pages!CDEGuideMain0001.CDEHelpP10Extra' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.970906 7f52c53fc6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.971023 7f52c53fc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-help/000021.log: OK +2026/06/01-22:35:11.971154 7f52c53fc6c0 Table #10: 21 entries OK +2026/06/01-22:35:11.974528 7f52c53fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-help; recovered 1 files; 18033 bytes. Some data may have been lost. **** diff --git a/packs/cde-help/MANIFEST-000006 b/packs/cde-help/MANIFEST-000006 deleted file mode 100644 index 81b046049311943bd1a34e6faf6d228e8c669142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmX^AY|Z>?21Z7yoYb<^oRlOzr^=Gl^338?=ltA)#G=HK{33QH*4rM6idp%kMR|!i ziq0;s?xmS2slJJsc?JdshK!61U|WWz|g?8qNFI1ksG4# zX5O=D91M(1?3@hD94y?NIa*E`KrRQ6%f%wb&dAy0kH>N`h#?k)EH6(l^z`ru%kj6& s%}hC3b#PzX`pgoS$2eSd>_jU&PM9^|6OhQ86pOv?wnz zN732E)x9(`CDk`EGta=lz>ral0Sqi)D)b5x(^HEv)ajL{7kYYlgyr~K=4Pg*=NU2z zLNq?P(ffsifssjqlYv>1MQlwsa}bCt3FJz%h?NRIGguDg%CLyBGLUT#8v_?Rqcm;( F0sz0{TS@=` literal 0 HcmV?d00001 diff --git a/packs/cde-items/000008.log b/packs/cde-help/lost/000021.log similarity index 100% rename from packs/cde-items/000008.log rename to packs/cde-help/lost/000021.log diff --git a/packs/cde-kungfus/000008.log b/packs/cde-ingredients/000025.log similarity index 100% rename from packs/cde-kungfus/000008.log rename to packs/cde-ingredients/000025.log diff --git a/packs/cde-ingredients/000010.ldb b/packs/cde-ingredients/000027.ldb similarity index 100% rename from packs/cde-ingredients/000010.ldb rename to packs/cde-ingredients/000027.ldb diff --git a/packs/cde-ingredients/CURRENT b/packs/cde-ingredients/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-ingredients/CURRENT +++ b/packs/cde-ingredients/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-ingredients/LOG b/packs/cde-ingredients/LOG index 4021b5d..e08cf37 100644 --- a/packs/cde-ingredients/LOG +++ b/packs/cde-ingredients/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.336872 7ff671fef6c0 Recovering log #4 -2026/05/12-00:36:56.346806 7ff671fef6c0 Delete type=3 #2 -2026/05/12-00:36:56.346886 7ff671fef6c0 Delete type=0 #4 -2026/05/12-00:37:07.990253 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.993684 7ff6637fe6c0 Level-0 table #9: 8881 bytes OK -2026/05/12-00:37:07.999919 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.009675 7ff6637fe6c0 Manual compaction at level-0 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.019406 7ff6637fe6c0 Manual compaction at level-1 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at '!items!ykekdZlirabRobEF' @ 108 : 1 -2026/05/12-00:37:08.019418 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.023624 7ff6637fe6c0 Generated table #10@1: 54 keys, 8881 bytes -2026/05/12-00:37:08.023709 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 8881 bytes -2026/05/12-00:37:08.029864 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.030009 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.030163 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.051296 7ff6637fe6c0 Manual compaction at level-1 from '!items!ykekdZlirabRobEF' @ 108 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.914967 7f52c6bff6c0 Delete type=3 #1 +2026/06/01-22:35:51.023125 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.023151 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.028968 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.057155 7f52c4bfb6c0 Manual compaction at level-0 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at '!items!ykekdZlirabRobEF' @ 108 : 1 +2026/06/01-22:35:51.057162 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.060536 7f52c4bfb6c0 Generated table #27@0: 54 keys, 8881 bytes +2026/06/01-22:35:51.060550 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 8881 bytes +2026/06/01-22:35:51.067003 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.067054 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.073072 7f52c4bfb6c0 Manual compaction at level-0 from '!items!ykekdZlirabRobEF' @ 108 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) diff --git a/packs/cde-ingredients/LOG.old b/packs/cde-ingredients/LOG.old index 31d5005..0471edb 100644 --- a/packs/cde-ingredients/LOG.old +++ b/packs/cde-ingredients/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.205346 7fdfd6fef6c0 Delete type=3 #1 -2026/05/12-00:36:37.206616 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.210149 7fdfd4feb6c0 Level-0 table #5: 5923 bytes OK -2026/05/12-00:36:37.216280 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.216387 7fdfd4feb6c0 Manual compaction at level-0 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.900722 7f52c6bff6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.900766 7f52c6bff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-ingredients/000021.log: OK +2026/06/01-22:35:11.900837 7f52c6bff6c0 Table #10: 54 entries OK +2026/06/01-22:35:11.904105 7f52c6bff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-ingredients; recovered 1 files; 8881 bytes. Some data may have been lost. **** diff --git a/packs/cde-ingredients/MANIFEST-000006 b/packs/cde-ingredients/MANIFEST-000006 deleted file mode 100644 index e55a2b296f7f346adb8292157ecb11b3000f063f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmaD>axyoOfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQb+MkjVrEHdZn2_) zpNmtuVWg9(NuhCukB0%HDFYb57`IJxmj{p8DR!uxCyF( Pjgga$iIts+i*maGz&KKt diff --git a/packs/cde-ingredients/MANIFEST-000023 b/packs/cde-ingredients/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..b66c33629afed9b9eb1aed3bda2d593d8ba0385b GIT binary patch literal 255 zcmY$BT;rL@z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PM9wb4~xF|#B!w^-4@ z&&8?SFw)7?q|i9S$HRcpoB<4A@|D@C*(p&unMH|7LHS9pZj3n)`3pxM`*1KYGD&bU rFiW!J{HV+Q1>#Bqxza2-A=xp>MNqB`OAadoA>-H>xY!w`DR&kCsp~=0 literal 0 HcmV?d00001 diff --git a/packs/cde-npcs/000008.log b/packs/cde-ingredients/lost/000021.log similarity index 100% rename from packs/cde-npcs/000008.log rename to packs/cde-ingredients/lost/000021.log diff --git a/packs/cde-sanhei/000008.log b/packs/cde-items/000025.log similarity index 100% rename from packs/cde-sanhei/000008.log rename to packs/cde-items/000025.log diff --git a/packs/cde-items/000010.ldb b/packs/cde-items/000027.ldb similarity index 100% rename from packs/cde-items/000010.ldb rename to packs/cde-items/000027.ldb diff --git a/packs/cde-items/CURRENT b/packs/cde-items/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-items/CURRENT +++ b/packs/cde-items/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-items/LOG b/packs/cde-items/LOG index 13d9ec9..c909a9a 100644 --- a/packs/cde-items/LOG +++ b/packs/cde-items/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.348871 7ff6717ee6c0 Recovering log #4 -2026/05/12-00:36:56.358876 7ff6717ee6c0 Delete type=3 #2 -2026/05/12-00:36:56.358970 7ff6717ee6c0 Delete type=0 #4 -2026/05/12-00:37:07.981024 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.984143 7ff6637fe6c0 Level-0 table #9: 596 bytes OK -2026/05/12-00:37:07.990088 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.009661 7ff6637fe6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.030253 7ff6637fe6c0 Manual compaction at level-1 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at '!items!HKq5ANSGiBIdcnki' @ 2 : 1 -2026/05/12-00:37:08.030264 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.033436 7ff6637fe6c0 Generated table #10@1: 1 keys, 596 bytes -2026/05/12-00:37:08.033469 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 596 bytes -2026/05/12-00:37:08.040221 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.040443 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.040599 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.051309 7ff6637fe6c0 Manual compaction at level-1 from '!items!HKq5ANSGiBIdcnki' @ 2 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.932171 7f52c63fe6c0 Delete type=3 #1 +2026/06/01-22:35:51.010289 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.010313 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.016160 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.037980 7f52c4bfb6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at '!items!HKq5ANSGiBIdcnki' @ 2 : 1 +2026/06/01-22:35:51.037986 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.041162 7f52c4bfb6c0 Generated table #27@0: 1 keys, 596 bytes +2026/06/01-22:35:51.041178 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 596 bytes +2026/06/01-22:35:51.047786 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.047867 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.067128 7f52c4bfb6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 2 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) diff --git a/packs/cde-items/LOG.old b/packs/cde-items/LOG.old index dd46fca..28765bd 100644 --- a/packs/cde-items/LOG.old +++ b/packs/cde-items/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.230762 7fdfd67ee6c0 Delete type=3 #1 -2026/05/12-00:36:37.231622 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.234740 7fdfd4feb6c0 Level-0 table #5: 559 bytes OK -2026/05/12-00:36:37.240940 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.241065 7fdfd4feb6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.918464 7f52c63fe6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.918512 7f52c63fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-items/000021.log: OK +2026/06/01-22:35:11.918537 7f52c63fe6c0 Table #10: 1 entries OK +2026/06/01-22:35:11.921448 7f52c63fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-items; recovered 1 files; 596 bytes. Some data may have been lost. **** diff --git a/packs/cde-items/MANIFEST-000006 b/packs/cde-items/MANIFEST-000006 deleted file mode 100644 index 00f98f041f4e9112fb29d60ab995792abd1b9a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZ=iVbGMwz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDx}HT|F|#B!w^-4` zyU^6pFW5cP$ulK6FFTWwkpT<{$lZ}a$or#Nby8&Y&Ot}C6 diff --git a/packs/cde-items/MANIFEST-000023 b/packs/cde-items/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..966c071d359f6f52ae2276acca9c4866bb069a32 GIT binary patch literal 255 zcmWfv+}N7Pz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PM9b%jM 34454 bytes -2026/05/12-00:37:07.939008 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:07.939170 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:07.939306 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:07.970948 7ff6637fe6c0 Manual compaction at level-1 from '!items!tlIc1bmIAbQeUwj7' @ 40 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.796994 7f52c63fe6c0 Delete type=3 #1 +2026/06/01-22:35:50.937098 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:50.937158 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:50.943430 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:50.962798 7f52c4bfb6c0 Manual compaction at level-0 from '!items!2nKXEHLG0fXtSOdy' @ 72057594037927935 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at '!items!tlIc1bmIAbQeUwj7' @ 40 : 1 +2026/06/01-22:35:50.962805 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:50.966120 7f52c4bfb6c0 Generated table #27@0: 20 keys, 34454 bytes +2026/06/01-22:35:50.966138 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 34454 bytes +2026/06/01-22:35:50.972309 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:50.972597 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.004209 7f52c4bfb6c0 Manual compaction at level-0 from '!items!tlIc1bmIAbQeUwj7' @ 40 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at (end) diff --git a/packs/cde-kungfus/LOG.old b/packs/cde-kungfus/LOG.old index 94194e1..4437a9d 100644 --- a/packs/cde-kungfus/LOG.old +++ b/packs/cde-kungfus/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.257477 7fdfd57ec6c0 Delete type=3 #1 -2026/05/12-00:36:37.258479 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.261916 7fdfd4feb6c0 Level-0 table #5: 32988 bytes OK -2026/05/12-00:36:37.269084 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.269269 7fdfd4feb6c0 Manual compaction at level-0 from '!items!2nKXEHLG0fXtSOdy' @ 72057594037927935 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.733217 7f52c63fe6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.733303 7f52c63fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-kungfus/000021.log: OK +2026/06/01-22:35:11.733464 7f52c63fe6c0 Table #10: 20 entries OK +2026/06/01-22:35:11.736813 7f52c63fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-kungfus; recovered 1 files; 34454 bytes. Some data may have been lost. **** diff --git a/packs/cde-kungfus/MANIFEST-000006 b/packs/cde-kungfus/MANIFEST-000006 deleted file mode 100644 index 6a25b485b9efcac3b4c0048c4be8e84e5b367ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmdPdwwfo2fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQ^-d#`ykcfaYHqQj zQJ!~%tA~%fL0UvfuzyM=BO3!4z~oDEJd+KRay=cB0#ifFv&6}KdE^J=asatpEE?>LoYQ)7+aXH84h@L>gp{<{GN_^4EE=qgI2{Gmz{beQ M#>C3b#6<d#Mo|VZfXSEScqSVr<$5|M1*V3UXPGlcNIgqGAtUb41|nhW8h+El%|5a06pzMasU7T literal 0 HcmV?d00001 diff --git a/packs/cde-supernaturals/000008.log b/packs/cde-kungfus/lost/000021.log similarity index 100% rename from packs/cde-supernaturals/000008.log rename to packs/cde-kungfus/lost/000021.log diff --git a/packs/cde-weapons/000008.log b/packs/cde-npcs/000025.log similarity index 100% rename from packs/cde-weapons/000008.log rename to packs/cde-npcs/000025.log diff --git a/packs/cde-npcs/000010.ldb b/packs/cde-npcs/000027.ldb similarity index 100% rename from packs/cde-npcs/000010.ldb rename to packs/cde-npcs/000027.ldb diff --git a/packs/cde-npcs/CURRENT b/packs/cde-npcs/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-npcs/CURRENT +++ b/packs/cde-npcs/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-npcs/LOG b/packs/cde-npcs/LOG index 363dac5..519899a 100644 --- a/packs/cde-npcs/LOG +++ b/packs/cde-npcs/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.360962 7ff663fff6c0 Recovering log #4 -2026/05/12-00:36:56.371878 7ff663fff6c0 Delete type=3 #2 -2026/05/12-00:36:56.371942 7ff663fff6c0 Delete type=0 #4 -2026/05/12-00:37:08.051413 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:08.055337 7ff6637fe6c0 Level-0 table #9: 50053 bytes OK -2026/05/12-00:37:08.062742 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.086408 7ff6637fe6c0 Manual compaction at level-0 from '!actors!4ZjFZ1HoJV9mJStt' @ 72057594037927935 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.086444 7ff6637fe6c0 Manual compaction at level-1 from '!actors!4ZjFZ1HoJV9mJStt' @ 72057594037927935 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at '!actors!zVpmacwoWEG8YTCQ' @ 98 : 1 -2026/05/12-00:37:08.086448 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.090154 7ff6637fe6c0 Generated table #10@1: 49 keys, 50053 bytes -2026/05/12-00:37:08.090193 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 50053 bytes -2026/05/12-00:37:08.096495 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.096568 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.096695 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.113181 7ff6637fe6c0 Manual compaction at level-1 from '!actors!zVpmacwoWEG8YTCQ' @ 98 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.950430 7f52c6bff6c0 Delete type=3 #1 +2026/06/01-22:35:51.067200 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.067214 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.072998 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.091558 7f52c4bfb6c0 Manual compaction at level-0 from '!actors!4ZjFZ1HoJV9mJStt' @ 72057594037927935 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at '!actors!zVpmacwoWEG8YTCQ' @ 98 : 1 +2026/06/01-22:35:51.091566 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.095457 7f52c4bfb6c0 Generated table #27@0: 49 keys, 50053 bytes +2026/06/01-22:35:51.095470 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 50053 bytes +2026/06/01-22:35:51.101290 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.101339 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.118034 7f52c4bfb6c0 Manual compaction at level-0 from '!actors!zVpmacwoWEG8YTCQ' @ 98 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at (end) diff --git a/packs/cde-npcs/LOG.old b/packs/cde-npcs/LOG.old index 7a89863..6cb46e4 100644 --- a/packs/cde-npcs/LOG.old +++ b/packs/cde-npcs/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.286062 7fdfd5fed6c0 Delete type=3 #1 -2026/05/12-00:36:37.287117 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.291305 7fdfd4feb6c0 Level-0 table #5: 21686 bytes OK -2026/05/12-00:36:37.297295 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.297424 7fdfd4feb6c0 Manual compaction at level-0 from '!actors!4ZjFZ1HoJV9mJStt' @ 72057594037927935 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.935539 7f52c6bff6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.935591 7f52c6bff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-npcs/000021.log: OK +2026/06/01-22:35:11.935674 7f52c6bff6c0 Table #10: 49 entries OK +2026/06/01-22:35:11.939231 7f52c6bff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-npcs; recovered 1 files; 50053 bytes. Some data may have been lost. **** diff --git a/packs/cde-npcs/MANIFEST-000006 b/packs/cde-npcs/MANIFEST-000006 deleted file mode 100644 index fa6aa08438fe0bfee0f358daf980e97733e4bd83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmY#uIkqo_fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQb=yit1;xZ`pgoS$2eSd>_jU&PM9)!NRipqQ8pL2hDld49O7yG3M(b0A|9M8U(HO=TPmj7$=o s49t=&Nh`N&oB?qqfm~^pq~A+C!pops8I~kg27>0XF>tXnN>jyY09ScLg8%>k literal 0 HcmV?d00001 diff --git a/packs/cde-npcs/lost/000021.log b/packs/cde-npcs/lost/000021.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-pretires/000004.log b/packs/cde-pretires/000004.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-pretires/000005.ldb b/packs/cde-pretires/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..2472b66e5decbdbe56e1c247d4c7ecb074128d7f GIT binary patch literal 429877 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࡚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 z%0AbS9A+3P)^FHn%sD`Udq27lL8_xqHHq)2}ehke%l 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 literal 0 HcmV?d00001 diff --git a/packs/cde-sanhei/000025.log b/packs/cde-sanhei/000025.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-sanhei/000010.ldb b/packs/cde-sanhei/000027.ldb similarity index 100% rename from packs/cde-sanhei/000010.ldb rename to packs/cde-sanhei/000027.ldb diff --git a/packs/cde-sanhei/CURRENT b/packs/cde-sanhei/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-sanhei/CURRENT +++ b/packs/cde-sanhei/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-sanhei/LOG b/packs/cde-sanhei/LOG index d5adfac..482563a 100644 --- a/packs/cde-sanhei/LOG +++ b/packs/cde-sanhei/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.324955 7ff6717ee6c0 Recovering log #4 -2026/05/12-00:36:56.335151 7ff6717ee6c0 Delete type=3 #2 -2026/05/12-00:36:56.335204 7ff6717ee6c0 Delete type=0 #4 -2026/05/12-00:37:08.000036 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:08.003325 7ff6637fe6c0 Level-0 table #9: 4934 bytes OK -2026/05/12-00:37:08.009477 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:08.009687 7ff6637fe6c0 Manual compaction at level-0 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.040730 7ff6637fe6c0 Manual compaction at level-1 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at '!items!qzfAEhmvVxEMzm0k' @ 10 : 1 -2026/05/12-00:37:08.040743 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:08.044737 7ff6637fe6c0 Generated table #10@1: 5 keys, 4934 bytes -2026/05/12-00:37:08.044781 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 4934 bytes -2026/05/12-00:37:08.050905 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:08.051035 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:08.051186 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:08.051322 7ff6637fe6c0 Manual compaction at level-1 from '!items!qzfAEhmvVxEMzm0k' @ 10 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.897294 7f52c63fe6c0 Delete type=3 #1 +2026/06/01-22:35:51.004437 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:51.004459 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:51.010228 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:51.029047 7f52c4bfb6c0 Manual compaction at level-0 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at '!items!qzfAEhmvVxEMzm0k' @ 10 : 1 +2026/06/01-22:35:51.029057 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.032066 7f52c4bfb6c0 Generated table #27@0: 5 keys, 4934 bytes +2026/06/01-22:35:51.032071 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 4934 bytes +2026/06/01-22:35:51.037821 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.037900 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.067117 7f52c4bfb6c0 Manual compaction at level-0 from '!items!qzfAEhmvVxEMzm0k' @ 10 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) diff --git a/packs/cde-sanhei/LOG.old b/packs/cde-sanhei/LOG.old index b7d535a..03d6647 100644 --- a/packs/cde-sanhei/LOG.old +++ b/packs/cde-sanhei/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.311794 7fdfd6fef6c0 Delete type=3 #1 -2026/05/12-00:36:37.312497 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.315659 7fdfd4feb6c0 Level-0 table #5: 4830 bytes OK -2026/05/12-00:36:37.322060 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.322200 7fdfd4feb6c0 Manual compaction at level-0 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.883439 7f52c63fe6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.883485 7f52c63fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-sanhei/000021.log: OK +2026/06/01-22:35:11.883523 7f52c63fe6c0 Table #10: 5 entries OK +2026/06/01-22:35:11.886566 7f52c63fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-sanhei; recovered 1 files; 4934 bytes. Some data may have been lost. **** diff --git a/packs/cde-sanhei/MANIFEST-000006 b/packs/cde-sanhei/MANIFEST-000006 deleted file mode 100644 index 8a73f79ffbb43e2aa721b9d8692aa211349116f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmWIgTy`*#fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQ^`5G{VrEHdZn2_^ zvr%?tu5+ekad<^xMua;fGXogFzJCnVrEHdZn2_^ zvr%?tu5+ekad<^xMua;f8v_`?rTGD&bU rFiWy<9b;`w1aT#STxk}r2fuGED1vfjSh!dj2pPx5z{SoeO}VoGpUXlw literal 0 HcmV?d00001 diff --git a/packs/cde-sanhei/lost/000021.log b/packs/cde-sanhei/lost/000021.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-scenes/000005.ldb b/packs/cde-scenes/000005.ldb deleted file mode 100644 index f208e184059ec4d0ad3c977a734c4b36d14ffb51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7078 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 diff --git a/packs/cde-scenes/000044.log b/packs/cde-scenes/000044.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-scenes/000046.ldb b/packs/cde-scenes/000046.ldb new file mode 100644 index 0000000000000000000000000000000000000000..34419de0719f8b090df147aa725485197445520c GIT binary patch literal 3172 zcmdT`eQaA-6~EVcFWBUHeM#Ikfn?aPuGUc7@w4N^F(Rt-)w+qBr0GX$=*RVY*Y-`W z-*exG6VD1XV%e!K80@b}pb3@zLqXHljeME3#D-Lk+p>#y45nX3S84ijiQW3?ju#&T+;75>+JJ50Q+&nXw!w6S0O=V5V z7%t}#rP1k=ZH;j1^9$>d&OPZ_TBjhQ=(I#!?ugrhaaeG2*$PR4rs6beR6IFkvqvBX zY8foI@rM7);7fNOU8{jYs{4M0XNJ2_dL90t zMx9xvQKg21lU|)z;uZ0hcw>8)*VI;0@AQ?qStNXx?RvDQ3BshvaYc44mqvPjF2nIf z%eO1P!~f@juZaHqNF1!@Zj~9P&76kVkZj_(oe!Znemh_|7O@>)U!X#CbJZ55&Wrdb zUXT?7fhvK(s`z(at)YdU_Fa&Q#HRRRq2dm_EHlHQ#`ZJyv#8gGSc^_?PL7SJ$#g$P zquKG31tdh{x#x%9LH#EKtsqzge~Zp9=mSZlr@93-mE~cgIjm0S4Bm)-8-HiFMOGo@ z5VtR#$S3_0;@Q`+H2sE0Isp!ZUc?Xez{W5g>hF+k(=~LzBwMu1%+7;ehw;v^ca?B) zDF{+EP8ytrzUOo*~Jmm}fxAjed-;H@vu0GiVRY-|b*_iB6pe{-# zKR5472F+E2T2OSg(BsvMyFNVKIAk9v)fbNKFC>zDf>)JH5}Yb=66)-0!tN9#AHN@L zLU~y9D7DzZy^1;%OAf1`)Na@gt>!jv9WK=!C#qE-x9p5d?Wj(pJW4~)31zzd^ZgTh zld*WLRi2s!Hc|aBySR5q9T`c-N7JL~u$mZ(kQcnH#0vc=z#(yY(-)G)8%k#Smk343 z+k$C@=8?6rb6{IUGpjXf=*+Dynz0@f)ZH3q8mNu!KxqB)bLij;Hw7h51L znWc4a&y!MqhNMP|6}{lv`NeYG#$8uGd!sKnK`e&`C-kZ7!LcOT47T409xg7Y7qdsG zks8TY3VbS0?3szVg-ozrPNw4N$n~I{7)r+@Ap8;N*)ZzR0uX@$B@%u$E8H;J~3>?ZW<<>*28k+6=ef2p`Uk$E)cxvuX-gxuT zen8>Jw@}#R$0@|tU0OYKY$3fof@MJA(_1K<)ijqf4i#`0ht-dX!{_eeuv;&(14{)v zXXWN6qpo=$lFH`2&;xtFDV`m8>`E40{$VMDHUycj zIj%(rv`CneDyFrBH-uEg|G=x)@dL71D%tefZJ&fc6M?qMU<`yi=b^CN8t0a-HpSM| z*WtBHC)x~Edg?Gv6&b($Rn)w&M>w&*(1nkj**CwwZQ%X3`}^0l>_MHIvgbv3Ca?$J zx-ENxTC1C#f|+$Q;Mt z8&jp}ZV%c9udj4_WHq6x>bvjVepo={!GM3W%dwU+aYx4Y0k07NDBH>Ug28pCxFUH1Q;F&SbO|v?E=TqVbI|BE#q14VF{|R-r z-JAQX_^*FoXrlx91mzz4SjQ!)^$!dK$kW=qa{A2RYdhk9*^z8<|9&0&@a)&a?!Mpr E4G2HQ9smFU literal 0 HcmV?d00001 diff --git a/packs/cde-scenes/CURRENT b/packs/cde-scenes/CURRENT index 5af92b2..8e0a062 100644 --- a/packs/cde-scenes/CURRENT +++ b/packs/cde-scenes/CURRENT @@ -1 +1 @@ -MANIFEST-000022 +MANIFEST-000042 diff --git a/packs/cde-scenes/LOG b/packs/cde-scenes/LOG index c4296a8..5554053 100644 --- a/packs/cde-scenes/LOG +++ b/packs/cde-scenes/LOG @@ -1,8 +1,11 @@ -2026/05/12-00:36:56.386114 7ff670fed6c0 Recovering log #20 -2026/05/12-00:36:56.396758 7ff670fed6c0 Delete type=3 #18 -2026/05/12-00:36:56.396824 7ff670fed6c0 Delete type=0 #20 -2026/05/12-00:37:08.080126 7ff6637fe6c0 Level-0 table #25: started -2026/05/12-00:37:08.080172 7ff6637fe6c0 Level-0 table #25: 0 bytes OK -2026/05/12-00:37:08.086288 7ff6637fe6c0 Delete type=0 #23 -2026/05/12-00:37:08.096790 7ff6637fe6c0 Manual compaction at level-0 from '!scenes!2C6gyZpvPxWlsVZi' @ 72057594037927935 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at (end) -2026/05/12-00:37:08.113200 7ff6637fe6c0 Manual compaction at level-1 from '!scenes!2C6gyZpvPxWlsVZi' @ 72057594037927935 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at (end) +2026/06/01-22:35:12.007471 7f52c63fe6c0 Delete type=3 #1 +2026/06/01-22:35:51.124825 7f52c4bfb6c0 Level-0 table #45: started +2026/06/01-22:35:51.124844 7f52c4bfb6c0 Level-0 table #45: 0 bytes OK +2026/06/01-22:35:51.131445 7f52c4bfb6c0 Delete type=0 #43 +2026/06/01-22:35:51.145660 7f52c4bfb6c0 Manual compaction at level-0 from '!scenes!2C6gyZpvPxWlsVZi' @ 72057594037927935 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 1 : 1 +2026/06/01-22:35:51.145675 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:51.149105 7f52c4bfb6c0 Generated table #46@0: 8 keys, 3172 bytes +2026/06/01-22:35:51.149125 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 3172 bytes +2026/06/01-22:35:51.155673 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.155780 7f52c4bfb6c0 Delete type=2 #5 +2026/06/01-22:35:51.163444 7f52c4bfb6c0 Manual compaction at level-0 from '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 1 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at (end) diff --git a/packs/cde-scenes/LOG.old b/packs/cde-scenes/LOG.old index d3277b9..6c15334 100644 --- a/packs/cde-scenes/LOG.old +++ b/packs/cde-scenes/LOG.old @@ -1,8 +1,4 @@ -2026/05/12-00:34:51.728359 7ff671fef6c0 Recovering log #16 -2026/05/12-00:34:51.737993 7ff671fef6c0 Delete type=3 #14 -2026/05/12-00:34:51.738056 7ff671fef6c0 Delete type=0 #16 -2026/05/12-00:35:02.012940 7ff6637fe6c0 Level-0 table #21: started -2026/05/12-00:35:02.012962 7ff6637fe6c0 Level-0 table #21: 0 bytes OK -2026/05/12-00:35:02.019210 7ff6637fe6c0 Delete type=0 #19 -2026/05/12-00:35:02.033237 7ff6637fe6c0 Manual compaction at level-0 from '!scenes!2C6gyZpvPxWlsVZi' @ 72057594037927935 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at (end) -2026/05/12-00:35:02.033284 7ff6637fe6c0 Manual compaction at level-1 from '!scenes!2C6gyZpvPxWlsVZi' @ 72057594037927935 : 1 .. '!scenes.levels!olYe9bhuXwRWQ8j7.defaultLevel0000' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.992251 7f52c63fe6c0 Log #40: 0 ops saved to Table #41 OK +2026/06/01-22:35:11.992349 7f52c63fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-scenes/000040.log: OK +2026/06/01-22:35:11.992433 7f52c63fe6c0 Table #5: 22 entries OK +2026/06/01-22:35:11.995902 7f52c63fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-scenes; recovered 1 files; 7078 bytes. Some data may have been lost. **** diff --git a/packs/cde-scenes/MANIFEST-000022 b/packs/cde-scenes/MANIFEST-000022 deleted file mode 100644 index 3656fc3db08e33a9859b8e9af5be0598214e4c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmYeiY;9f5z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDy3AZbu{b$3FSS_F z$k{BtGOC~~pdvh{I4mlYQH%i$ET9VXzy=j7=I2DFS|(+bMwADI2U=vA>!qZoC6?xt p_<-y&00Krvh{o@4kM?sgFfxgAGB8W9h-s=8l!CYtK&}*v7y#zNEZYD8 diff --git a/packs/cde-scenes/MANIFEST-000042 b/packs/cde-scenes/MANIFEST-000042 new file mode 100644 index 0000000000000000000000000000000000000000..f32ffbb33a66e453ac054af86195a5edf034f0f0 GIT binary patch literal 332 zcmaz%u*VsUb6UTU$T zk+WHPWmG{~Kt*^?aadF)qZk7iSU?r%fek8F%+HBTwM@z=jVKQa546ZK*GoxFODxSP z@d4Rm00fMT5RGSx|D5GuU}VzfWMI}|5!)g0Wdew+1LW$lh<$zkIAbZ4tIs0F%0RX~ SYz(aIjCxNbXy6lmh))2C|6gqY literal 0 HcmV?d00001 diff --git a/packs/cde-scenes/lost/000040.log b/packs/cde-scenes/lost/000040.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-spells/000025.log b/packs/cde-spells/000025.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-spells/000010.ldb b/packs/cde-spells/000027.ldb similarity index 100% rename from packs/cde-spells/000010.ldb rename to packs/cde-spells/000027.ldb diff --git a/packs/cde-spells/CURRENT b/packs/cde-spells/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-spells/CURRENT +++ b/packs/cde-spells/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-spells/LOG b/packs/cde-spells/LOG index 632de31..7b525ae 100644 --- a/packs/cde-spells/LOG +++ b/packs/cde-spells/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.276952 7ff6717ee6c0 Recovering log #4 -2026/05/12-00:36:56.286901 7ff6717ee6c0 Delete type=3 #2 -2026/05/12-00:36:56.286957 7ff6717ee6c0 Delete type=0 #4 -2026/05/12-00:37:07.897667 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.902498 7ff6637fe6c0 Level-0 table #9: 124022 bytes OK -2026/05/12-00:37:07.909088 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:07.928672 7ff6637fe6c0 Manual compaction at level-0 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) -2026/05/12-00:37:07.949109 7ff6637fe6c0 Manual compaction at level-1 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at '!items!yVN7PZw35iIaBl0H' @ 50 : 1 -2026/05/12-00:37:07.949120 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:07.954259 7ff6637fe6c0 Generated table #10@1: 25 keys, 124022 bytes -2026/05/12-00:37:07.954276 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 124022 bytes -2026/05/12-00:37:07.961206 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:07.961331 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:07.961477 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:07.970977 7ff6637fe6c0 Manual compaction at level-1 from '!items!yVN7PZw35iIaBl0H' @ 50 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.817600 7f52c53fc6c0 Delete type=3 #1 +2026/06/01-22:35:50.950071 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:50.950101 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:50.956859 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:50.982784 7f52c4bfb6c0 Manual compaction at level-0 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at '!items!yVN7PZw35iIaBl0H' @ 50 : 1 +2026/06/01-22:35:50.982795 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:50.988505 7f52c4bfb6c0 Generated table #27@0: 25 keys, 124022 bytes +2026/06/01-22:35:50.988522 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 124022 bytes +2026/06/01-22:35:50.994813 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:50.994888 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.004229 7f52c4bfb6c0 Manual compaction at level-0 from '!items!yVN7PZw35iIaBl0H' @ 50 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) diff --git a/packs/cde-spells/LOG.old b/packs/cde-spells/LOG.old index 5d05f00..ce140cf 100644 --- a/packs/cde-spells/LOG.old +++ b/packs/cde-spells/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.338931 7fdfd67ee6c0 Delete type=3 #1 -2026/05/12-00:36:37.341086 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.345847 7fdfd4feb6c0 Level-0 table #5: 120353 bytes OK -2026/05/12-00:36:37.352605 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.352812 7fdfd4feb6c0 Manual compaction at level-0 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.800364 7f52c53fc6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.800471 7f52c53fc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-spells/000021.log: OK +2026/06/01-22:35:11.801036 7f52c53fc6c0 Table #10: 25 entries OK +2026/06/01-22:35:11.805168 7f52c53fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-spells; recovered 1 files; 124022 bytes. Some data may have been lost. **** diff --git a/packs/cde-spells/MANIFEST-000006 b/packs/cde-spells/MANIFEST-000006 deleted file mode 100644 index 10a570122343f1387f31f3ea109cf4e79f140938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmZ4SI<_W>fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQb>SLzdBx0<)ZAi4 zqcl^)g5)x{?BuAd#0r;eMm`2GfXP>e`I!eql^dI8dL}yM7L0~;eJ N8xt!#6BiXM2LKdxQ8WMm diff --git a/packs/cde-spells/MANIFEST-000023 b/packs/cde-spells/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..375e644c082eb04294db79873579faa90f4bf8a8 GIT binary patch literal 257 zcmZ1&<(Qeoz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PM9_3Z?^ykcfaYHqQj zQJSe?L2{W}c5+l!VuedKqZ9)ez~n2#{LBNQ%8gAkJrkXB3_KW(Ao5b&JS-dxj7$=o s49t=&Mn#crb|9`KkSon%bW~|tQ8AP&!(znBK*%^Y1}=6+X)3r20FBi>^Z)<= literal 0 HcmV?d00001 diff --git a/packs/cde-spells/lost/000021.log b/packs/cde-spells/lost/000021.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-supernaturals/000025.log b/packs/cde-supernaturals/000025.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-supernaturals/000010.ldb b/packs/cde-supernaturals/000027.ldb similarity index 100% rename from packs/cde-supernaturals/000010.ldb rename to packs/cde-supernaturals/000027.ldb diff --git a/packs/cde-supernaturals/CURRENT b/packs/cde-supernaturals/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-supernaturals/CURRENT +++ b/packs/cde-supernaturals/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-supernaturals/LOG b/packs/cde-supernaturals/LOG index faf8d1a..5f3bd73 100644 --- a/packs/cde-supernaturals/LOG +++ b/packs/cde-supernaturals/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.290045 7ff671fef6c0 Recovering log #4 -2026/05/12-00:36:56.299803 7ff671fef6c0 Delete type=3 #2 -2026/05/12-00:36:56.299870 7ff671fef6c0 Delete type=0 #4 -2026/05/12-00:37:07.909338 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.913145 7ff6637fe6c0 Level-0 table #9: 8790 bytes OK -2026/05/12-00:37:07.919132 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:07.928684 7ff6637fe6c0 Manual compaction at level-0 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) -2026/05/12-00:37:07.961574 7ff6637fe6c0 Manual compaction at level-1 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at '!items!xxZKGqDVxAfr140W' @ 32 : 1 -2026/05/12-00:37:07.961583 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:07.964786 7ff6637fe6c0 Generated table #10@1: 16 keys, 8790 bytes -2026/05/12-00:37:07.964814 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 8790 bytes -2026/05/12-00:37:07.970646 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:07.970759 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:07.970874 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:07.970988 7ff6637fe6c0 Manual compaction at level-1 from '!items!xxZKGqDVxAfr140W' @ 32 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.836158 7f52c63fe6c0 Delete type=3 #1 +2026/06/01-22:35:50.943540 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:50.943578 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:50.949973 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:50.972693 7f52c4bfb6c0 Manual compaction at level-0 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at '!items!xxZKGqDVxAfr140W' @ 32 : 1 +2026/06/01-22:35:50.972702 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:50.976827 7f52c4bfb6c0 Generated table #27@0: 16 keys, 8790 bytes +2026/06/01-22:35:50.976844 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 8790 bytes +2026/06/01-22:35:50.982579 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:50.982676 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.004221 7f52c4bfb6c0 Manual compaction at level-0 from '!items!xxZKGqDVxAfr140W' @ 32 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) diff --git a/packs/cde-supernaturals/LOG.old b/packs/cde-supernaturals/LOG.old index 18921af..393a8cb 100644 --- a/packs/cde-supernaturals/LOG.old +++ b/packs/cde-supernaturals/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.372690 7fdfd57ec6c0 Delete type=3 #1 -2026/05/12-00:36:37.373512 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.376679 7fdfd4feb6c0 Level-0 table #5: 8622 bytes OK -2026/05/12-00:36:37.382725 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.382856 7fdfd4feb6c0 Manual compaction at level-0 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.821755 7f52c63fe6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.821828 7f52c63fe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-supernaturals/000021.log: OK +2026/06/01-22:35:11.821868 7f52c63fe6c0 Table #10: 16 entries OK +2026/06/01-22:35:11.824849 7f52c63fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-supernaturals; recovered 1 files; 8790 bytes. Some data may have been lost. **** diff --git a/packs/cde-supernaturals/MANIFEST-000006 b/packs/cde-supernaturals/MANIFEST-000006 deleted file mode 100644 index 7e3b9532783f75b261d2af4a463a0fdbf5d9c652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmXTxkiC+~z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDy3Sc%F|#B!w^-3J zz|YdKAkfFa&nYdc*xj6wi2)2?@)Z?P-tL7iVHJ*PMTRB@;f(wc`SvE?^BfF}OzfNt z%p5ENN99>Ge1TjJAeW0pft``_nhVSb3@Zc)SfK!s?`vYdUJ5mnn?-?@5oREUo1hxl P7&+OPSlOAlD7PB`qK8cp diff --git a/packs/cde-supernaturals/MANIFEST-000023 b/packs/cde-supernaturals/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..1629ffb5995865063f11e7eda500a7f6ffeca154 GIT binary patch literal 255 zcmeYcnjDzOz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PM9b8#x#lnIt$F rm?c>hG|RV61#u;TTxk}CWfxhW6+yW&EDEd)gp6Zj;9_T#rrcQoEg3zx literal 0 HcmV?d00001 diff --git a/packs/cde-supernaturals/lost/000021.log b/packs/cde-supernaturals/lost/000021.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-weapons/000025.log b/packs/cde-weapons/000025.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/cde-weapons/000010.ldb b/packs/cde-weapons/000027.ldb similarity index 100% rename from packs/cde-weapons/000010.ldb rename to packs/cde-weapons/000027.ldb diff --git a/packs/cde-weapons/CURRENT b/packs/cde-weapons/CURRENT index f7753e2..7fbb623 100644 --- a/packs/cde-weapons/CURRENT +++ b/packs/cde-weapons/CURRENT @@ -1 +1 @@ -MANIFEST-000006 +MANIFEST-000023 diff --git a/packs/cde-weapons/LOG b/packs/cde-weapons/LOG index 3c1224e..cb07bd2 100644 --- a/packs/cde-weapons/LOG +++ b/packs/cde-weapons/LOG @@ -1,15 +1,11 @@ -2026/05/12-00:36:56.301895 7ff670fed6c0 Recovering log #4 -2026/05/12-00:36:56.312457 7ff670fed6c0 Delete type=3 #2 -2026/05/12-00:36:56.312525 7ff670fed6c0 Delete type=0 #4 -2026/05/12-00:37:07.919212 7ff6637fe6c0 Level-0 table #9: started -2026/05/12-00:37:07.922365 7ff6637fe6c0 Level-0 table #9: 4529 bytes OK -2026/05/12-00:37:07.928522 7ff6637fe6c0 Delete type=0 #7 -2026/05/12-00:37:07.928694 7ff6637fe6c0 Manual compaction at level-0 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) -2026/05/12-00:37:07.939386 7ff6637fe6c0 Manual compaction at level-1 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at '!items!uOpWyMGK3oiUJ1Sl' @ 30 : 1 -2026/05/12-00:37:07.939396 7ff6637fe6c0 Compacting 1@1 + 1@2 files -2026/05/12-00:37:07.942722 7ff6637fe6c0 Generated table #10@1: 15 keys, 4529 bytes -2026/05/12-00:37:07.942780 7ff6637fe6c0 Compacted 1@1 + 1@2 files => 4529 bytes -2026/05/12-00:37:07.948850 7ff6637fe6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2026/05/12-00:37:07.948918 7ff6637fe6c0 Delete type=2 #5 -2026/05/12-00:37:07.949040 7ff6637fe6c0 Delete type=2 #9 -2026/05/12-00:37:07.970963 7ff6637fe6c0 Manual compaction at level-1 from '!items!uOpWyMGK3oiUJ1Sl' @ 30 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.855333 7f52c53fc6c0 Delete type=3 #1 +2026/06/01-22:35:50.956960 7f52c4bfb6c0 Level-0 table #26: started +2026/06/01-22:35:50.956991 7f52c4bfb6c0 Level-0 table #26: 0 bytes OK +2026/06/01-22:35:50.962751 7f52c4bfb6c0 Delete type=0 #24 +2026/06/01-22:35:50.994960 7f52c4bfb6c0 Manual compaction at level-0 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at '!items!uOpWyMGK3oiUJ1Sl' @ 30 : 1 +2026/06/01-22:35:50.994966 7f52c4bfb6c0 Compacting 1@0 + 0@1 files +2026/06/01-22:35:50.998285 7f52c4bfb6c0 Generated table #27@0: 15 keys, 4529 bytes +2026/06/01-22:35:50.998300 7f52c4bfb6c0 Compacted 1@0 + 0@1 files => 4529 bytes +2026/06/01-22:35:51.004081 7f52c4bfb6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2026/06/01-22:35:51.004146 7f52c4bfb6c0 Delete type=2 #10 +2026/06/01-22:35:51.004357 7f52c4bfb6c0 Manual compaction at level-0 from '!items!uOpWyMGK3oiUJ1Sl' @ 30 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) diff --git a/packs/cde-weapons/LOG.old b/packs/cde-weapons/LOG.old index e1ddfa1..f0e34ad 100644 --- a/packs/cde-weapons/LOG.old +++ b/packs/cde-weapons/LOG.old @@ -1,5 +1,4 @@ -2026/05/12-00:36:37.398172 7fdfd5fed6c0 Delete type=3 #1 -2026/05/12-00:36:37.399093 7fdfd4feb6c0 Level-0 table #5: started -2026/05/12-00:36:37.402237 7fdfd4feb6c0 Level-0 table #5: 4359 bytes OK -2026/05/12-00:36:37.408926 7fdfd4feb6c0 Delete type=0 #3 -2026/05/12-00:36:37.409067 7fdfd4feb6c0 Manual compaction at level-0 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) +2026/06/01-22:35:11.839235 7f52c53fc6c0 Log #21: 0 ops saved to Table #22 OK +2026/06/01-22:35:11.839283 7f52c53fc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-weapons/000021.log: OK +2026/06/01-22:35:11.839312 7f52c53fc6c0 Table #10: 15 entries OK +2026/06/01-22:35:11.842894 7f52c53fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-chroniques-de-l-etrange/packs/cde-weapons; recovered 1 files; 4529 bytes. Some data may have been lost. **** diff --git a/packs/cde-weapons/MANIFEST-000006 b/packs/cde-weapons/MANIFEST-000006 deleted file mode 100644 index f72cc60bed215cfd18fa941c8ffacb0028b3c41a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcma#vU)h_;z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD+O8z8m|2pVTdZj0 z8JSe+9N=c@LV)xmn~`8DR!uxCyF( Pjgga$iIts+i*maG=+jZ_ diff --git a/packs/cde-weapons/MANIFEST-000023 b/packs/cde-weapons/MANIFEST-000023 new file mode 100644 index 0000000000000000000000000000000000000000..c5597b8f22c5a1af31b7c8b4047a57661d7773cd GIT binary patch literal 255 zcmZ3~ayKTCfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcIYooHfVrEHdZn2_~ zXJk^PbAX$rk5_(HRdE)h00S7nBilly Lau, enquêteur de l'étrange

怪 Durant sa jeunesse, Eddy Lau – le père de Billy – connut une brève mais intense carrière de fat si, raison pour laquelle il refusa fermement que son fils emprunte cette voie à son tour. En effet, il avait reçu une grave blessure lors d’un combat contre un démon et n’avait dû la vie sauve qu’à ses compagnons de l’époque. Prématurément forcé de trouver une autre activité en raison du trauma qui affecta son hei de manière permanente, il fit tout pour se tenir à l’écart du monde occulte.

怪 Une fois retiré, Eddy se maria mais son épouse mourut en couche lors de la naissance de Billy. Tentant de l’élever seul malgré sa profonde dépression, l’ancien exorciste dut travailler dur en enchaînant divers petits boulots précaires et physiquement éreintants. Billy grandit ainsi dans un quartier difficile de Sham Shui Po. De son point de vue, son père se montrait trop souvent absent et, livré à lui-même, il passa son adolescence en compagnie de petites frappes et autres voyous de bas étage. Gravissant les échelons d’un gang à l’insu de son père, il fut finalement repéré par un occultiste de la pègre nommé Jim Chiu.

怪 C’est donc Jim qui enseigna les ficelles du métier de fat si à Billy en lieu et place d’Eddy. En tant que géomancien, le gangster apprit au jeune homme à communiquer avec les divinités terrestres et à pratiquer l’art de la divination, ainsi que diverses méthodes permettant de dissiper les nœuds d’énergies néfastes. Billy devint également un enquêteur réputé pour son esprit de déduction, aussi perspicace qu’observateur et pouvant s’appuyer sur ses nombreux contacts. Hélas, quand Eddy découvrit que son fils avait appris la magie et auprès de qui, une violente dispute éclata – au terme de laquelle Billy claqua la porte de chez lui pour ne plus jamais y revenir.

怪 Le jeune fat si entretient encore des relations avec son ancien gang et ne manque jamais de rien grâce à la fraternité de la rue. De plus, comme son maître avant lui, il vend ses services aux triades qui se retrouvent face à des problèmes de nature occulte – ce qui lui assure des revenus réguliers. Heureusement d’ailleurs, car Billy brûle d’une passion dévorante : les belles voitures. Dans ses moments perdus, il retape ainsi un coupé sport de 1990 – une beauté qui lui a coûté de nombreuses heures de sommeil et la totalité de ses maigres économies.

怪 Sous une attitude un peu macho, Billy cache un cœur généreux et nostalgique. Son ex-petite amie – Clara, elle aussi passionnée de bolides – a trouvé la mort dans un violent accident à l’occasion d’une course de voitures urbaine illégale. Même si elle connaissait les risques liés à ce sport extrême, cette disparition affecta durement Billy qui en garde une grande sensibilité lorsqu’il s’agit d’interagir avec des fantômes ou autres créatures en proie à des peines de cœur. Son sanhei se nomme Regard abyssal. Il s’agit d’une boussole lopun que lui a léguée son mentor Jim Chiu à sa mort. La scène est encore gravée dans la mémoire de Billy, puisqu’il se trouvait auprès de son maître lorsque celui-ci fut assassiné non par une créature surnaturelle, mais bien par un assassin mortel lors d’un règlement de compte entre triades.

怪 Récemment, son père Eddy – qui tient aujourd’hui le restaurant Chez Lau – a renoué avec Billy. Le temps aidant, les absences de l’un et les frasques de l’autre se sont vues pardonnées. Depuis, le jeune homme fréquente le restaurant avec des collègues fat si dont il vient de rejoindre le groupe après les avoir croisés au cours de plusieurs affaires successives. Il râle à chaque fois que l’addition lui est présentée, arguant qu’en tant que fils du propriétaire il pourrait manger gratis. Mais peine perdue…

", + "description": "

Durant sa jeunesse, Eddy Lau – le père de

\n

Billy – connut une brève mais intense carrière

\n

de fat si, raison pour laquelle il refusa ferme­

\n

ment que son fils emprunte cette voie à son

\n

tour. En effet, il avait reçu une grave blessure

\n

lors d’un combat contre un démon et n’avait dû

\n

la vie sauve qu’à ses compagnons de l’époque.

\n

Prématurément forcé de trouver une autre acti­

\n

vité en raison du trauma qui affecta son hei de

\n

manière permanente, il fit tout pour se tenir à

\n

l’écart du monde occulte.

\n

Une fois retiré, Eddy se maria mais son

\n

épouse mourut en couche lors de la naissance

\n

de Billy. Tentant de l’élever seul malgré sa pro­

\n

fonde dépression, l’ancien exorciste dut travail­

\n

ler dur en enchaînant divers petits boulots pré­

\n

caires et physiquement éreintants. Billy grandit

\n

ainsi dans un quartier difficile de Sham Shui Po.

\n

De son point de vue, son père se montrait trop

\n

souvent absent et, livré à lui-même, il passa son

\n

adolescence en compagnie de petites frappes

\n

et autres voyous de bas étage. Gravissant les

\n

échelons d’un gang à l’insu de son père, il fut

\n

finalement repéré par un occultiste de la pègre

\n

nommé Jim Chiu.

\n

C’est donc Jim qui enseigna les ficelles du

\n

métier de fat si à Billy en lieu et place d’Eddy.

\n

En tant que géomancien, le gangster apprit au

\n

jeune homme à communiquer avec les divinités

\n

terrestres et à pratiquer l’art de la divination,

\n

ainsi que diverses méthodes permettant de

\n

dissiper les nœuds d’énergies néfastes. Billy

\n

devint également un enquêteur réputé pour son

\n

esprit de déduction, aussi perspicace qu’obser­

\n

vateur et pouvant s’appuyer sur ses nombreux

\n

contacts. Hélas, quand Eddy découvrit que son

\n

fils avait appris la magie et auprès de qui, une

\n

violente dispute éclata – au terme de laquelle

\n

Billy claqua la porte de chez lui pour ne plus

\n

jamais y revenir.

\n

Le jeune fat si entretient encore des relations

\n

avec son ancien gang et ne manque jamais de

\n

rien grâce à la fraternité de la rue. De plus,

\n

comme son maître avant lui, il vend ses services

\n

aux triades qui se retrouvent face à des pro­

\n

blèmes de nature occulte – ce qui lui assure des

\n

revenus réguliers. Heureusement d’ailleurs, car

\n

Billy brûle d’une passion dévorante : les belles

\n

voitures. Dans ses moments perdus, il retape

\n

ainsi un coupé sport de 1990 – une beauté qui

\n

lui a coûté de nombreuses heures de sommeil et

\n

la totalité de ses maigres économies.

\n

Sous une attitude un peu macho, Billy cache

\n

un cœur généreux et nostalgique. Son ex-petite

\n

amie – Clara, elle aussi passionnée de bolides –

\n

a trouvé la mort dans un violent accident à l’oc­

\n

casion d’une course de voitures urbaine illégale.

\n

Même si elle connaissait les risques liés à ce

\n

sport extrême, cette disparition affecta dure­

\n

ment Billy qui en garde une grande sensibilité

\n

lorsqu’il s’agit d’interagir avec des fantômes ou

\n

autres créatures en proie à des peines de cœur.

\n

Son sanhei se nomme Regard abyssal. Il s’agit

\n

d’une boussole lopun que lui a légué son mentor

\n

Jim Chiu à sa mort. La scène est encore gravée

\n

dans la mémoire de Billy, puisqu’il se trouvait

\n

auprès de son maître lorsque celui-ci fut assas­

\n

siné non par une créature surnaturelle, mais

\n

bien par un assassin mortel lors d’un règlement

\n

de compte entre triades.

\n

Récemment, son père Eddy – qui tient au­

\n

jourd’hui le restaurant Chez Lau – a renoué avec

\n

Billy. Le temps aidant, les absences de l’un et

\n

les frasques de l’autre se sont vues pardonnées.

\n

Depuis, le jeune homme fréquente le restaurant

\n

avec des collègues fat si dont il vient de rejoindre

\n

le groupe après les avoir croisés au cours de plu­

\n

sieurs affaires successives. Il râle à chaque fois

\n

que l’addition lui est présentée, arguant qu’en

\n

tant que fils du propriétaire il pourrait manger

\n

gratis. Mais peine perdue…

\n

les chroniques

\n

de l’étrange

", "prefs": { "typeofthrow": { "check": true, @@ -634,31 +634,35 @@ }, "items": [ { - "name": "怪 Regard abyssal", - "type": "item", + "name": "Regard abyssal", + "type": "sanhei", "_id": "cYoxj5ZM5x9hZjDO", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/regard_abyssal.png", "system": { - "subtype": "sanhei", "reference": "Sanhei du pré-tiré Billy Lau", - "description": "

Regard abyssal

(boussole lopun)

怪 récupère +1 san.

怪 1 Hei Yang = +4 dé-fastes lors d'un jet Enquête (déduction).

怪 1 Hei Yang = +2D Géomancie.

Son sanhei se nomme Regard abyssal. Il s’agit d’une boussole lopun que lui a léguée son mentor Jim Chiu à sa mort.

", - "quantity": 1, - "weight": 0, - "protection": "", - "damage": "", - "range": "", - "notes": "

Vos notes…

", - "attributes": {}, - "groups": {}, - "item": { - "reference": "Sanhei du pré-tiré Billy Lau", - "quantity": null, - "weight": null, - "protection": "", - "damage": "", - "range": "", - "subtype": "0" - } + "description": "

Regard abyssal (boussole lopun) :

\n

• Chaque fois qu'il doit récupérer 1 (ou plusieurs) point(s) de San, en récupère 1 de plus.

\n

• Contre 1 point de Hei Yang, ajoute un nombre de dés-fastes = à sa valeur en Bois (4) aux jets d'Enquête (Déduction) pour rassembler des preuves ou reconstituer une scène de crime.

\n

• Contre 1 point de Hei Yang, + 2 dés à tout jet de Géomancie (Divination).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" }, "effects": [], "folder": null, @@ -688,7 +692,7 @@ "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/kung-fu/pistolet.png", "system": { "reference": "LdB p. 282", - "description": "

Le Gun Fu

En l’espace d’une génération, il était inévitable que les amateurs des films d’action de Hong Kong finissent par s’inspirer des cascades mises en scène par John Woo, Tsui Hark et d’autres... Combiner les arts martiaux traditionnels avec les armes à feu est une voie encore embryonnaire – d’autant que la législation sur les armes à feu de Hong Kong est loin d’être souple. Cependant, quelques soldats des triades, une poignée de tueurs à gages et certains perfectionnistes en quête de nouveauté ont obtenu des résultats assez intéressants. Il n’existe pas encore de véritable « école de Gun fu », mais Hong Kong accueille plusieurs dizaines d’adeptes de cette nouvelle voie largement dénigrée par à peu près tous les autres pratiquants des arts martiaux.

Le Gun fu mise sur la rapidité d’action et la mobilité. En dehors des armes à feu, il s’avère donc être un style défensif et assez acrobatique.

Style

Sa célérité et ses angles de tir improbables permettent au pratiquant de toucher des cibles qui semblent hors d’atteinte. La portée des attaques du personnage passe de distance longue à distance extrême, et les dégâts des armes à feu sont augmentés de 1 à portée courte.

", + "description": "

Le Gun-fu

\n

Yin / Eau / Combat à distance (Pistolet, Fusil)

\n

Portée longue devient portée extrême / Dégâts armes à feu + 1 à portée courte

", "orientation": "", "aspect": "", "skill": "", @@ -761,14 +765,14 @@ } }, { - "name": "怪 Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)", + "name": "Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)", "type": "item", "_id": "iTnOEYwcbhfJ45Fe", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/polo-shirt.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)

", + "description": "

Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)

", "quantity": 1, "weight": 0, "protection": "", @@ -796,14 +800,14 @@ } }, { - "name": "怪 Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)", + "name": "Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)", "type": "item", "_id": "nyLUo3lMYKVNohQj", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/pistol-gun.png", "system": { "subtype": "weapon", "reference": "", - "description": "

怪 Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)

", + "description": "

Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)

", "quantity": 1, "weight": 0, "protection": "", @@ -831,14 +835,14 @@ } }, { - "name": "怪 Cigarettes de contrebande", + "name": "Cigarettes de contrebande", "type": "item", "_id": "SO25GJT8cGKUhFD2", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/cigarette.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 Cigarettes de contrebande

", + "description": "

Cigarettes de contrebande

", "quantity": 1, "weight": 0, "protection": "", @@ -866,14 +870,14 @@ } }, { - "name": "怪 Smartphone d’entrée de gamme avec accès au Taonet", + "name": "Smartphone d’entrée de gamme avec accès au Taonet", "type": "item", "_id": "VuVIEGsCnK87UE9M", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/smartphone.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 Smartphone d’entrée de gamme avec accès au Taonet

", + "description": "

Smartphone d’entrée de gamme avec accès au Taonet

", "quantity": 1, "weight": 0, "protection": "", @@ -901,14 +905,14 @@ } }, { - "name": "怪 scooter", + "name": "scooter", "type": "item", "_id": "arkbeo5My8QHStAm", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/scooter.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 scooter

", + "description": "

scooter

", "quantity": 1, "weight": 0, "protection": "", @@ -936,14 +940,14 @@ } }, { - "name": "怪 Voiture de luxe en panne dans un garage, à remettre en état", + "name": "Voiture de luxe en panne dans un garage, à remettre en état", "type": "item", "_id": "zILLnKG1TZd1ErIY", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/auto.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 Voiture de luxe en panne dans un garage, à remettre en état

", + "description": "

Voiture de luxe en panne dans un garage, à remettre en état

", "quantity": 1, "weight": 0, "protection": "", @@ -971,14 +975,14 @@ } }, { - "name": "怪 Appartement modeste dans un quartier sous protection d'une triade", + "name": "Appartement modeste dans un quartier sous protection d'une triade", "type": "item", "_id": "KdxMSoGh8AynQ9Ee", "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", "system": { "subtype": "other", "reference": "", - "description": "

怪 Appartement modeste dans un quartier sous protection d'une triade : quartier de Wan Chai

", + "description": "

Appartement modeste dans un quartier sous protection d'une triade : quartier de Wan Chai

", "quantity": 1, "weight": 0, "protection": "", diff --git a/sample_data/fvtt-Actor-billy-lau-zSWwOmFiFjN4YxC9.json b/sample_data/fvtt-Actor-billy-lau-zSWwOmFiFjN4YxC9.json new file mode 100644 index 0000000..348ccf9 --- /dev/null +++ b/sample_data/fvtt-Actor-billy-lau-zSWwOmFiFjN4YxC9.json @@ -0,0 +1,1233 @@ +{ + "name": "Billy Lau", + "type": "character", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/billy.png?1701021038975", + "system": { + "concept": "Enquêteur de l'étrange", + "guardian": 5, + "initiative": 1, + "anti_initiative": 24, + "description": "

Durant sa jeunesse, Eddy Lau – le père de

\n

Billy – connut une brève mais intense carrière

\n

de fat si, raison pour laquelle il refusa ferme­

\n

ment que son fils emprunte cette voie à son

\n

tour. En effet, il avait reçu une grave blessure

\n

lors d’un combat contre un démon et n’avait dû

\n

la vie sauve qu’à ses compagnons de l’époque.

\n

Prématurément forcé de trouver une autre acti­

\n

vité en raison du trauma qui affecta son hei de

\n

manière permanente, il fit tout pour se tenir à

\n

l’écart du monde occulte.

\n

Une fois retiré, Eddy se maria mais son

\n

épouse mourut en couche lors de la naissance

\n

de Billy. Tentant de l’élever seul malgré sa pro­

\n

fonde dépression, l’ancien exorciste dut travail­

\n

ler dur en enchaînant divers petits boulots pré­

\n

caires et physiquement éreintants. Billy grandit

\n

ainsi dans un quartier difficile de Sham Shui Po.

\n

De son point de vue, son père se montrait trop

\n

souvent absent et, livré à lui-même, il passa son

\n

adolescence en compagnie de petites frappes

\n

et autres voyous de bas étage. Gravissant les

\n

échelons d’un gang à l’insu de son père, il fut

\n

finalement repéré par un occultiste de la pègre

\n

nommé Jim Chiu.

\n

C’est donc Jim qui enseigna les ficelles du

\n

métier de fat si à Billy en lieu et place d’Eddy.

\n

En tant que géomancien, le gangster apprit au

\n

jeune homme à communiquer avec les divinités

\n

terrestres et à pratiquer l’art de la divination,

\n

ainsi que diverses méthodes permettant de

\n

dissiper les nœuds d’énergies néfastes. Billy

\n

devint également un enquêteur réputé pour son

\n

esprit de déduction, aussi perspicace qu’obser­

\n

vateur et pouvant s’appuyer sur ses nombreux

\n

contacts. Hélas, quand Eddy découvrit que son

\n

fils avait appris la magie et auprès de qui, une

\n

violente dispute éclata – au terme de laquelle

\n

Billy claqua la porte de chez lui pour ne plus

\n

jamais y revenir.

\n

Le jeune fat si entretient encore des relations

\n

avec son ancien gang et ne manque jamais de

\n

rien grâce à la fraternité de la rue. De plus,

\n

comme son maître avant lui, il vend ses services

\n

aux triades qui se retrouvent face à des pro­

\n

blèmes de nature occulte – ce qui lui assure des

\n

revenus réguliers. Heureusement d’ailleurs, car

\n

Billy brûle d’une passion dévorante : les belles

\n

voitures. Dans ses moments perdus, il retape

\n

ainsi un coupé sport de 1990 – une beauté qui

\n

lui a coûté de nombreuses heures de sommeil et

\n

la totalité de ses maigres économies.

\n

Sous une attitude un peu macho, Billy cache

\n

un cœur généreux et nostalgique. Son ex-petite

\n

amie – Clara, elle aussi passionnée de bolides –

\n

a trouvé la mort dans un violent accident à l’oc­

\n

casion d’une course de voitures urbaine illégale.

\n

Même si elle connaissait les risques liés à ce

\n

sport extrême, cette disparition affecta dure­

\n

ment Billy qui en garde une grande sensibilité

\n

lorsqu’il s’agit d’interagir avec des fantômes ou

\n

autres créatures en proie à des peines de cœur.

\n

Son sanhei se nomme Regard abyssal. Il s’agit

\n

d’une boussole lopun que lui a légué son mentor

\n

Jim Chiu à sa mort. La scène est encore gravée

\n

dans la mémoire de Billy, puisqu’il se trouvait

\n

auprès de son maître lorsque celui-ci fut assas­

\n

siné non par une créature surnaturelle, mais

\n

bien par un assassin mortel lors d’un règlement

\n

de compte entre triades.

\n

Récemment, son père Eddy – qui tient au­

\n

jourd’hui le restaurant Chez Lau – a renoué avec

\n

Billy. Le temps aidant, les absences de l’un et

\n

les frasques de l’autre se sont vues pardonnées.

\n

Depuis, le jeune homme fréquente le restaurant

\n

avec des collègues fat si dont il vient de rejoindre

\n

le groupe après les avoir croisés au cours de plu­

\n

sieurs affaires successives. Il râle à chaque fois

\n

que l’addition lui est présentée, arguant qu’en

\n

tant que fils du propriétaire il pourrait manger

\n

gratis. Mais peine perdue…

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 2 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 4 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "déduction", + "value": 3 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "philosophie", + "value": 1 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "triades", + "value": 2 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 0 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 0 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 0 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 2 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "armes à feu", + "value": 3 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "triades", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "triades", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "gangs", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "poignée de grains de riz" + }, + "two": { + "value": "fiole de sel" + }, + "three": { + "value": "fiole de sang" + }, + "four": { + "value": "écaille ventrale de tortue" + }, + "five": { + "value": "fiole d'eau pure" + }, + "six": { + "value": "fiole d'eau de riz" + }, + "seven": { + "value": "papier à origami" + }, + "eight": { + "value": "bâton d'encens" + }, + "nine": { + "value": "bâton d'encens" + }, + "zero": { + "value": "bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 2, + "speciality": { + "invocation": { + "check": true + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 3, + "speciality": { + "neutralization": { + "check": true + }, + "divination": { + "check": true + }, + "earthlyprayer": { + "check": true + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 3, + "max": 3 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 7, + "max": 7, + "min": 0 + }, + "zing": { + "value": 5, + "max": 5, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 4, + "max": 4, + "min": 0 + }, + "zing": { + "value": 2, + "max": 2, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Regard abyssal", + "type": "sanhei", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/regard_abyssal.png", + "system": { + "reference": "Sanhei du pré-tiré Billy Lau", + "description": "

Regard abyssal (boussole lopun) :

\n

• Chaque fois qu'il doit récupérer 1 (ou plusieurs) point(s) de San, en récupère 1 de plus.

\n

• Contre 1 point de Hei Yang, ajoute un nombre de dés-fastes = à sa valeur en Bois (4) aux jets d'Enquête (Déduction) pour rassembler des preuves ou reconstituer une scène de crime.

\n

• Contre 1 point de Hei Yang, + 2 dés à tout jet de Géomancie (Divination).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "Y8AZOkLs7Ke04hfu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Le Gun Fu", + "type": "kungfu", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/kung-fu/pistolet.png", + "system": { + "reference": "LdB p. 282", + "description": "

Le Gun-fu

\n

Yin / Eau / Combat à distance (Pistolet, Fusil)

\n

Portée longue devient portée extrême / Dégâts armes à feu + 1 à portée courte

", + "orientation": "yin", + "aspect": "metal", + "skill": "kungfu", + "speciality": "", + "style": "", + "techniques": { + "technique1": { + "check": false, + "name": "Louvoyer entre les flammes", + "activation": "dice", + "technique": "

Louvoyer entre les flammes

Ne restant jamais immobile dans une fusillade, le pratiquant n’offre pas une cible facile ! Le personnage peut annuler sur son action de défense (qu’elle soit réussie ou non) un nombre de dés-néfastes égal à sa valeur de Feu (ou d’Aptitude sociale pour un PNJ).

" + }, + "technique2": { + "check": false, + "name": "Rester conscient", + "activation": "action-attack-defense", + "technique": "

Rester conscient

Pris dans une fusillade, le pratiquant se concentre sur sa survie malgré les blessures éventuelles. Quelle que soit son action, lorsque le personnage fait son jet, il ignore 1 dé de malus dû à la perte de Zing et/ou de San. S’il dépense 2 dés-fastes à cet effet, il ignore alors 2 dés de malus dus à la perte de Zing et/ou de San. S’il s’agit d’un PNJ, il récupère 1 point de Vitalité.

" + }, + "technique3": { + "check": false, + "name": "Le Cri du dragon", + "activation": "damage-inflicted", + "technique": "

Le Cri du dragon

Vidant ses chargeurs dans un déluge de plomb, le pratiquant s’assure d’occasionner le maximum de dommages. Le personnage inflige des dégâts supplémentaires égaux à sa valeur de Métal (ou d’Aptitude martiale pour un PNJ) sur une attaque réussie.

" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "G5mXYDoCyJ0dsQZv", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/polo-shirt.png", + "system": { + "reference": "", + "description": "

Grand imperméable à la doublure constellée de talismans (protection spirituelle 1)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "t9DHIbr8EW4gsLWm", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/pistol-gun.png", + "system": { + "reference": "", + "description": "

Revolver Glock 17, munitions à têtes en bois de saule (dégâts 3, distance longue)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "W6uaY31VuCSetszi", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cigarettes de contrebande", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/cigarette.png", + "system": { + "reference": "", + "description": "

Cigarettes de contrebande

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "Vyb7Whzy1z5yzoh9", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Smartphone d’entrée de gamme avec accès au Taonet", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/smartphone.png", + "system": { + "reference": "", + "description": "

Smartphone d’entrée de gamme avec accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "valJXuTGGQN06znJ", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "scooter", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/scooter.png", + "system": { + "reference": "", + "description": "

scooter

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "w8LXSYQ1eIygtlKV", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Voiture de luxe en panne dans un garage, à remettre en état", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/auto.png", + "system": { + "reference": "", + "description": "

Voiture de luxe en panne dans un garage, à remettre en état

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "e7jD4SZw8dH8gyzx", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement modeste dans un quartier sous protection d'une triade", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", + "system": { + "reference": "", + "description": "

Appartement modeste dans un quartier sous protection d'une triade : quartier de Wan Chai

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "9wc3h3l8bKRogDlD", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Invocation", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "LdB p. 316", + "description": "

Exorcisme (Feu)

L’Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d’interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s’en protéger et même de les soumettre.

Il s’agit d’une magie qui fait un grand usage d’objets et d’armes. Un exorciste est souvent équipé d’une épée de saule et de talismans de protection, mais aussi de divers outils facilitant sa traque et son combat – boussole à esprits ou GPS à fantômes, entre autres.

Les sorts d’Exorcisme ne sont en général d’aucune utilité face à des mortels ou des créatures d’essence céleste.

Invocation (Métal)

Le PJ est capable de canaliser son énergie Yang afin de se créer un redoutable arsenal, transférable et utilisable par un autre personnage que lui-même.

Lorsqu’il la transfère dans un objet, celui-ci devient capable de blesser ou perturber (en gênant leurs actions par le port d’un masque représentant le visage d’un dieu courroucé, une musique produite par une clochette de bronze ou une odeur répandue par de l’encens) tous les jiugwaai, même s’ils disposent de la Capacité intangibilité. De la même façon, les dégâts infligés par une arme ainsi imprégnée de Hei ne tiennent pas compte de l’éventuelle Capacité protection de la cible.

L’exorciste peut également se protéger des attaques portées par des créatures surnaturelles. Généralement, il utilise pour cela un talisman qu’il porte sur lui et dans lequel il déverse son énergie Yang pour former une armure spirituelle.

Certains matériaux sont des « conducteurs » privilégiés pour l’énergie Yang : les essences de bois sacré (pêcher, saule) et les métaux nobles (or, argent, jade) notamment. Bien des exorcistes utilisent encore la classique épée de saule, mais nombre d’entre eux se sont adaptés à l’ère moderne et se servent de munitions à tête en bois sacré pour leurs armes à feu – toutefois, ces balles sont difficiles à produire et donc plutôt chères (sans compter que la stricte législation de Hong Kong concernant les armes à feu rend leur possession très difficile). Certains fat si utilisent également de l’eau pure ou de l’alcool qu’ils crachent sur les créatures après y avoir insufflé leur puissance !

Lorsque le PJ mobilise son souffle positif pour prier une divinité (expression ultime de l’énergie Yang), cette discipline lui permet également d’invoquer l’un de ses attributs : en général, l’arme ou une partie de l’équipement du dieu ainsi sollicité (le trident de Jilong, la hallebarde de Gwaan Dai, le bâton du Roi singe, etc.). Cet objet est capable de blesser les jiugwaai (même ceux possédant la Capacité intangibilité ; les dégâts infligés par une arme ainsi invoquée ne tiennent pas compte de leur éventuelle Capacité protection) et frappe également les mortels ou les êtres célestes. De façon similaire, la protection octroyée par cet équipement protège le PJ aussi bien contre les agressions des créatures surnaturelles que contre les armes profanes.

En même temps que cet attribut, le PJ est également investi d’une part de l’essence du dieu – qui lui permet de manier son arme avec efficacité. Si l’attribut invoqué n’est pas une arme, mais un outil (comme le Pilon de Soeng Ngo), le PJ bénéficie d’un bonus à un jet spécifique en relation avec son utilisation.

", + "specialityname": "Invocation", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, sûtra du diamant

  • Gestes : suivre le contour de l’objet à enchanter du plat de la main, lever les mains vers le ciel

  • État d’esprit : courroucé, combatif

  • Consommables : poudre de jade, eau pure, alcool de riz, encens, représentation en papier de l’attribut emprunté au dieu

  • Objets : arme en bois de saule ou de pécher, masque nuo, clochette de bronze, statuette du dieu auquel on emprunte un attribut

", + "effects": "

Effets

  • L’Effet « Trois Trésors » indique les dégâts supplémentaires provoqués par un objet chargé en énergie Yang (ces dégâts n’affectant que les créatures d’essence Yin), ainsi que la protection qu’il peut octroyer au personnage (là aussi, uniquement contre des attaques portées par des créatures d’essence Yin). Il traduit aussi les dégâts supplémentaires provoqués par l’attribut divin invoqué, ainsi que la protection qu’elle peut octroyer au personnage contre les attaques physiques (s’il s’agit d’un bouclier ou d’une armure).

  • L’Effet « malus » impose des dés-néfastes ou diminue le nombre de dés à lancer d’un jiugwaai lors d’actions particulières (généralement les actions physiques ou de combat), rendant compte de sa gêne quand il est exposé à une vision, un son ou même une odeur chargée de Yang.

  • L’Effet « bonus » indique les dés-fastes ou dés supplémentaires à lancer lors d’actions en lien avec l’objet ou l’arme invoqué (bonus en Kung-fu pour manier l’épée de Zung Kwai, en Combat à distance pour tirer avec l’arc de Jik l’Archer, en Prouesse avec les Roues de Feu de Naazaa, etc.).

  • L’Effet « durée » définit le temps durant lequel l’objet reste chargé ou durant lequel l’attribut divin se trouve entre les mains du personnage.


Certains effets des attributs divins peuvent également être associés à une « aire » d’effet ou avoir une « distance » pour la portée.


", + "examples": "

Exemples

Voici une liste non exhaustive d’invocations utiles, avec leur coût en Puissance :

  • Balle bénie à tête en bois de saule (3 points) : contre les jiugwaai, les dégâts de cette balle spéciale s’élèvent à [Feu + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Chaque balle est à usage unique, mais il arrive que des exorcistes en enchantent tout un chargeur (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène en enchantant tout le chargeur).

  • Lame bénie insufflée de Yang (3 points) : contre les jiugwaai, les dégâts de cette épée (qui doit être constituée de bois de saule) s’élèvent à [Bois + 3 ou Aptitude physique + 3 dans le cas d’un PNJ] du lanceur. Le Yang se dissipe après le premier coup porté avec l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène).

  • Le Cercle du Ciel et de la Terre de Naazaa (5 points) : il s’agit d’un attribut divin semblable à un anneau d’or (considéré comme un chakram), dont les dégâts s’élèvent à [Eau + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Cette arme peut s’utiliser au contact ou à distance, jusqu’à une distance extrême. Elle revient toujours dans la main de celui qui l‘a invoquée et perdure pour une durée de 1 scène (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Les Roues de Feu de Naazaa (6 points) : il s’agit d’un attribut divin permettant de voler. Il accorde au bénéficiaire 2 dés-fastes gratuits à toutes les actions où le fait de pouvoir voler s’avère utile (y compris dans le cadre d’un affrontement). Il perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà des deux premiers).

  • Talisman de protection (6 points) : ce talisman dans lequel l’exorciste a insufflé son Hei octroie à son bénéficiaire 1 point de protection physique et spirituelle contre les jiugwaai de toutes sortes. À usage unique, il ne protège que contre une attaque ou équivalent – comme l’effet d’un nœud d’énergies néfastes (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points pour rendre son usage effectif pour une durée de 1 scène).

  • Le Pilon de Soeng Ngo (8 points) : il s’agit d’un attribut divin représenté par un ensemble mortier / pilon. Pour une durée de 2 heures, il accorde à son bénéficiaire 2 dés-fastes gratuits sur un jet d’alchimie et lui permet de préparer une potion en seulement 2 heures (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Flèche divine de Soeng Ngo (10 points) : compagne de Jik l’Archer divin, la déesse lunaire permet à cette flèche argentée d’infliger des dégâts s’élevant à [Terre + 6 ou Attribut mentale + 6 dans le cas d’un PNJ] du lanceur et ignore alors toute forme de protection. Elle ne fonctionne toutefois que contre les revenants (cf p. 367) et n’autorise que 1 tir – le bénéficiaire doit de plus disposer d’un arc pour la décocher (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Jyuji Gamku Paang, le bâton du Roi singe (9 points) : attribut divin, ce bâton inflige des dégâts s’élevant à [Bois + 2 ou Aptitude physique + 2 dans le cas d’un PNJ] du lanceur et peut atteindre des cibles situées à distance courte en ignorant leur protection. cette arme se révèle si versatile que sur chaque jet d’attaque, elle accorde 2 dés-fastes gratuits à son bénéficiaire. Elle perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • La Lame du Dragon bleu de Gwaan Dai (9 points) : attribut divin, cette hallebarde inflige des dégâts s’élevant à [Métal + 4 ou Aptitude physique + 4 dans le cas d’un PNJ] du lanceur. Elle perdure pour une durée de 1 scène. Sa lame ajoute 1 dé supplémentaire à lancer (ou augmente de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense de son bénéficiaire (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé supplémentaire au-delà du premier).

  • Le Trident à Double-tranchant de Jilong (9 points) : attribut divin, ce trident inflige des dégâts s’élevant à [Métal + 4 ou Attribut physique + 4] du lanceur. Il perdure pour une durée de 1 scène. Ses pointes retirent 1 dé (ou diminuent de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense d’un adversaire de son bénéficiaire, nommé au moment de l’invocation de l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Le Miroir de Din Mou (13 points) : attribut divin, ce bouclier octroie une protection physique et spirituelle de 1. Sa simple présence impose à tout adversaire qui affronte son bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou la diminution de 1 à l’Aptitude martiale dans le cas d’un PNJ) à tous leurs jets d’attaque et de défense. L’objet perdure pour 1 scène (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points par dé-néfaste supplémentaire au-delà du premier) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Les Cloches de Bouddha (14 points) : le tintement de ces cloches est insupportable pour les créatures surnaturelles, qui subissent pour une durée de 1 scène 1 dé-néfaste et retirent 2 dés (ou diminuent leurs Aptitudes dans le cas de PNJ) sur toutes leurs actions, au sein d’une aire correspondant à la surface d’une pièce de maison – jusqu’à distance extrême. Se boucher les oreilles ne protège pas contre le glas du jugement céleste.


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les effets d’un sort peuvent être renforcés : le coût pour en augmenter les effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "lLWh4oHNXFbBXQSS", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Neutralisation", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "LdB p. 323", + "description": "

Géomancie (Bois)

Le Géomancie recouvre la compréhension qu’a le fat si des flux d’énergie qui circulent à travers le cosmos, ainsi que sa capacité à les manipuler dans une certaine mesure. Il voit ainsi la façon dont l’énergie du Tao baigne le monde et le relie au Ciel – mais aussi aux Dix Enfers. Cette Compétence recouvre la divination et le fungseoi. Grâce à la divination, le fat si est capable de recevoir des présages et de les interpréter – il discerne ainsi des bribes de l’avenir par divers moyens (tirage du Jik Ging, scapulomancie, horoscope, etc.). Il est également versé dans l’art de prier les dieux célestes afin de demander leur bénédiction pour une occasion particulière. Enfin, il sait s’adresser aux divinités terrestres afin d’obtenir des faveurs et de leur demander des services. Le fungseoi permet de manipuler les lignes d’énergie dans le but de les harmoniser ou de les perturber – afin de changer du tout au tout l’influence exercée par un lieu sur ses occupants.

Le fat si est également capable de repérer et de détruire un nœud de flux néfastes afin de libérer un endroit de son influence délétère.

Neutralisation (Métal)

Grâce à son art de la géomancie, le PJ est capable d’analyser un nœud de flux néfastes, d’en bloquer les effets et même de le détruire.

Lorsqu’il se trouve face à un tel confluent d’énergie négative, le PJ peut en premier lieu étudier ce qui en est à l’origine. S’agit-il d’une stagnation d’un élément due à une mauvaise circulation des souffles ? Le nœud provient-il de l’accumulation de sentiments violents (colère, peine, ressentiment) ? Est-il né à la suite d’un événement atroce (meurtre, tortures, suicide) ? Le PJ peut ainsi apprendre diverses informations sur la nature de ce nœud néfaste.

Uniquement après s’être livré à cette analyse, le personnage peut se prémunir – lui-même ainsi que d’autres personnes s’il lance le sort sur elles – des effets de la puissance négative de cette confluence délétère. Grâce à diverses protections (talisman, peinture corporelle, amulette, etc.), il réduit ainsi la valeur du nœud.

Toujours grâce à une analyse préalable, le PJ use enfin de sa magie pour détruire le nœud de flux néfastes – généralement en dissipant les énergies négatives qui le composent par une réorganisation de leur circulation. Il peut ainsi ramener une certaine harmonie dans le lieu qui était pollué par cette confluence.

", + "specialityname": "Neutralisation", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "6 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, citation du Dou Dak Ging

  • Gestes : gestes rituels de purification, manipulation des ingrédients

  • État d’esprit : apaisé, serein

  • Consommables : riz, œuf, sang, alcool

  • Objets : plumeau taoïste, collier de pièces, amulette de purification

", + "effects": "

Effets

  • L’Effet « ampleur » indique l’importance des informations apprises par le personnage en analysant le nœud d’énergie Yin (son origine, sa puissance, etc.).

  • L’Effet « source de dégâts récurrents » permet de diminuer la valeur du nœud d’énergies néfastes. Cela peut aller jusqu’à le détruire en abaissant cette valeur à 0.

  • L’Effet « bonus » octroie des dés supplémentaires à lancer sur un jet d’Aspect privilégié visant à résister aux effets du nœud néfaste.

  • L’Effet « Trois Trésors » recouvre le personnage d’une protection contre la perte de San provoquée par l’exposition au nœud de flux néfastes.

  • L’Effet « durée » indique le temps durant lequel les effets du sort perdurent.

", + "examples": "

Exemples

Voici une liste non exhaustive de sorts utiles, avec leur coût en Puissance :

  • Dans l’eau du bol, contempler le Taigik (2 à 6 points) : offre des visions concernant la nature d’un nœud d’énergies néfastes, le coût en Puissance dépendant de la nature des informations à obtenir (Effet « ampleur » – à la discrétion du MJ) et chaque information doit être obtenue séparément (mais un même sort permet d’en obtenir plusieurs).

  • Rituel de purification des énergies (3 points) : diminuer de 1 la valeur d’un nœud d’énergies néfastes (source de dégâts spirituels récurrents) clairement identifié, ce qui l’annule si cette valeur est réduite à 0 (+ 3 points par diminution supplémentaire de la valeur au-delà de la première).

  • Protection spirituelle (5 points) : crée une protection spirituelle de 1 point pour 1 personne ciblée (qui peut être le lanceur) pour une durée de 1 scène, valable uniquement contre les pertes de San occasionnées par un nœud d’énergies néfastes (source de dégâts spirituels récurrents) (+ 3 points par point de protection supplémentaire au-delà du premier) (+ 2 points pour protéger 1 personne supplémentaire, + 4 points pour protéger jusqu’à 4 personnes et + 6 points pour protéger jusqu’à 8 personnes).

  • Bouclier spirituel (7 points) : accorde 1 dé-faste gratuit et ajoute 1 dé supplémentaire à lancer (ou augmente l’Aptitude spirituelle dans le cas d’un PNJ) sur tout jet de résistance contre la perte de San occasionnée par un nœud d’énergies néfastes (source de dégâts spirituels récurrents) (+ 3 points par dé supplémentaire au-delà du premier) (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 2 points pour protéger 1 personne supplémentaire, + 4 points pour protéger jusqu’à 4 personnes et + 6 points pour protéger jusqu’à 8 personnes).


Il est possible de déclencher chaque Effet plusieurs fois dans un même sort. Le coût pour en augmenter les Effets est précisé entre parenthèses. Il est aussi possible de les combiner entre eux pour créer de nouveaux sorts plus puissants.


", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "bcQuW5SfzQcClpdu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Divination", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "LdB p. 324", + "description": "

Exorcisme (Feu)

L’Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d’interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s’en protéger et même de les soumettre.

Il s’agit d’une magie qui fait un grand usage d’objets et d’armes. Un exorciste est souvent équipé d’une épée de saule et de talismans de protection, mais aussi de divers outils facilitant sa traque et son combat – boussole à esprits ou GPS à fantômes, entre autres.

Les sorts d’Exorcisme ne sont en général d’aucune utilité face à des mortels ou des créatures d’essence céleste.

Divination (Eau)

Magie ancienne, la divination permet au PJ de deviner l’avenir, d’entrevoir le destin, de visualiser le passé et le présent ainsi que de recevoir divers signes qu’il aura à charge d’interpréter au mieux. La divination chinoise prend bien des formes : lecture de la position des étoiles, horoscope et almanach, scapulomancie, tirage du Jik Ging, analyse des lignes de la main et des traits du visage, rêve prémonitoire, etc.

Concrètement, le PJ discerne un futur probable ou des événements à venir sur un certain laps de temps. Une divination va souvent concerner une occasion particulière (la réussite à un concours, la signature d’un contrat, etc.), pendant la durée de laquelle le PJ (ou celui à qui il a fait sa prédiction) gagnera un certain nombre de bonus.

Il est également possible d’explorer le passé, de visualiser des scènes s’étant produites en un lieu donné ou aux abords d’un objet précis (à la façon de la psychomancie). De même, le devin peut voir le présent et percevoir des images d’événements en cours qui se déroulent loin de lui.

Le PJ peut bien sûr réaliser une réelle prédiction – pour lui-même ou un tiers – et le MJ doit alors délivrer des informations plus ou moins exploitables en fonction de la Puissance investie dans le sort.

", + "specialityname": "Divination", + "associatedelement": "eau", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "impossible", + "flashback": "oui, mais sans la possibilité d’agir sur le Loksyu", + "components": "

Composantes

  • Mots : citation du Dou Dak Ging, citation du Jik Ging, prière à Fuk Hei

  • Gestes : jeter les baguettes d’achillée, lire une carte céleste, suivre les lignes de la main

  • État d’esprit : tourné vers l’avenir, concentration

  • Consommables : écaille ventrale de tortue, encens

  • Objets : disque de jade, baguettes d’achillée, pièces, almanach

", + "effects": "

Effets

  • L’Effet « ampleur » indique le degré de précision de la vision ou prédiction obtenue – de messages sibyllins à véritables visions claires.

  • L’Effet « Loksyu » simule les avantages qu’a procurés aux PJ la connaissance de la divination lorsque l’événement prédit survient.

", + "examples": "

Exemples

Voici une liste non exhaustive de divinations utiles, avec leur coût en Puissance :

  • Vents favorables (2 points) : le devin s’attire les faveurs des dieux pour ses prochaines actions, sans se soucier de la manière dont ceux-ci vont lui venir en aide. Il lance 1 dé à ajouter au Loksyu (ou ajoute 1 point à la Tin Ji dans le cas d’un PNJ) (+ 2 points par dé supplémentaire au-delà du premier).

  • Murmure du vent (2 points) : l’avenir change comme la direction du vent, mais en utilisant la divination, le devin obtient une information symbolique sur ce qui lui est réservé. Cet augure peut se voir orienté par une question : si le MJ dispose d’une réponse, il la formule sous la forme d’une image ou d’un symbole (Ampleur faible). Dans le cas contraire, le devin lance 1 dé à ajouter au Loksyu (ou ajoute 1 point à la Tin Ji dans le cas d’un PNJ) pour signifier qu’il a obtenu des informations parcellaires mais utiles pour ses prochaines actions – bien que le scénario ne permette pas d’identifier lesquelles pour l’instant (Cf encadré Interpréter une divination).

  • Clairvoyance (4 points) : le devin plonge le regard dans le flot de hei et obtient une information claire sur ce que lui réserve l’avenir. L’augure peut se voir orienté par une question : si le MJ dispose d’une réponse, il la formule sous la forme d’une prédiction (Ampleur moyenne). Dans le cas contraire, le devin lance 2 dés à ajouter au Loksyu (ou ajoute 2 points à la Tin Ji dans le cas d’un PNJ) pour signifier qu’il a obtenu des informations parcellaires mais utiles pour ses prochaines actions – bien que le scénario ne permette pas d’identifier lesquelles pour l’instant (cf encadré Interpréter une divination).

  • Scruter le Taigik (6 points) : au prix d’une concentration extrême, le devin obtient une information limpide sur ce que lui réserve l’avenir. L’augure peut se voir orienté par une question : si le MJ dispose d’une réponse, il la formule sous la forme d’une prédiction (Ampleur importante). Dans le cas contraire, le devin lance 3 dés à ajouter au Loksyu (ou ajoute 3 points à la Tin Ji dans le cas d’un PNJ) pour signifier qu’il a obtenu des informations parcellaires mais utiles pour ses prochaines actions – bien que le scénario ne permette pas d’identifier lesquelles pour l’instant (cf encadré Interpréter une divination).

  • Souffler le vent (7 points) : le devin obtient une vision si claire de ce que lui réserve l’avenir qu’il devient capable d’influer celui-ci par ses propres actions. Cela se traduit par l’ajout de 1 dé de la valeur choisie par le devin au Loksyu ou l’ajout de 2 points à la Tin Ji dans le cas d’un PNJ) (+ 7 points par dé supplémentaire au-delà du premier).


Il est possible de déclencher chaque Effet plusieurs fois dans un même sort. Le coût pour en augmenter les effets est précisé entre parenthèses. Il est aussi possible de les combiner entre eux pour créer de nouveaux sorts plus puissants.


", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "A5nXrr2uSdja2GTM", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Prière céleste", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "LdB p. 327", + "description": "

Géomancie (Bois)

Le Géomancie recouvre la compréhension qu’a le fat si des flux d’énergie qui circulent à travers le cosmos, ainsi que sa capacité à les manipuler dans une certaine mesure. Il voit ainsi la façon dont l’énergie du Tao baigne le monde et le relie au Ciel – mais aussi aux Dix Enfers. Cette Compétence recouvre la divination et le fungseoi. Grâce à la divination, le fat si est capable de recevoir des présages et de les interpréter – il discerne ainsi des bribes de l’avenir par divers moyens (tirage du Jik Ging, scapulomancie, horoscope, etc.). Il est également versé dans l’art de prier les dieux célestes afin de demander leur bénédiction pour une occasion particulière. Enfin, il sait s’adresser aux divinités terrestres afin d’obtenir des faveurs et de leur demander des services. Le fungseoi permet de manipuler les lignes d’énergie dans le but de les harmoniser ou de les perturber – afin de changer du tout au tout l’influence exercée par un lieu sur ses occupants.

Le fat si est également capable de repérer et de détruire un nœud de flux néfastes afin de libérer un endroit de son influence délétère.

Prière céleste (Feu)

Le PJ connaît les rituels et paroles permettant d’appeler la bénédiction d’une divinité céleste. En général, on sollicite les dieux pour qu’ils nous prêtent force et assistance durant une épreuve particulière et planifiée – qui peut être un combat, une négociation, un interrogatoire, l’analyse d’une scène de crime, la préparation d’une potion d’alchimie, etc. Cette épreuve doit être planifiée à l’avance afin que le Ciel identifie le moment où il doit apporter son aide.

Le PJ doit bien sûr rendre hommage à la divinité la plus en rapport avec la nature de l’épreuve prévue. S’il s’apprête à combattre des démons, il priera Jinlong ou Gwaan Ji. S’il compte séduire la personne dont il est amoureux, il sollicitera Soeng Ngo. Si l’épreuve est de nature intellectuelle (des recherches à accomplir, un examen à réussir, etc.), il se tournera vers Man Tai. Il est bien sûr possible d’adresser ses prières aux immortels et aux divers bouddhas !

", + "specialityname": "Prière céleste", + "associatedelement": "feu", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "non applicable", + "flashback": "oui", + "components": "

Composantes

  • Mots : prière à la divinité implorée

  • Gestes : danse rituelle

  • État d’esprit : lié à la divinité implorée, concentration

  • Consommables : offrandes à la divinité implorée, encens

  • Objets : statuette ou amulette de la divinité implorée, autel de prière

", + "effects": "

Effets

  • L’Effet « bonus » octroie des dés-fastes ou des dés supplémentaires à lancer lors des épreuves en rapport avec la bénédiction demandée : si le personnage compte examiner une scène de crime, il obtiendra ces bonus sur ses jets d’Enquête ; s’il s’agit de reconstituer un antique rituel, il choisira la Compétence Érudition, etc.

  • L’Effet « durée » permet de décider du temps durant lequel les dieux veillent sur le personnage et favorisent ses actions.

  • L’Effet « Loksyu » traduit une bénédiction s’étendant sur le groupe des PJ, signe qu’ils se trouvent sous la protection du dieu céleste prié.

  • Les bienfaits proposés par une divinité céleste sont accordés à une ou plusieurs personnes : où qu’elles aillent, la bénédiction ou la faveur les suit pour une durée donnée.

", + "examples": "

Exemples

Voici une liste non exhaustive de prières utiles, avec leur coût en Puissance :

  • Faveur de Mansyu (2 points) : la divinité de la sagesse accorde 1 dé-faste gratuit au lanceur sur un prochain jet d’Érudition ou d’Enquête, au choix (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 personnes supplémentaires, chacun recevant le ou les dé(s)-faste(s) sur son prochain jet).

  • Protection des cinq Gardiens célestes (2 points) : la prière s’adresse aux Gardiens célestes afin de leur demander d’attirer la chance. Seuls les fat si s’avèrent normalement capables de la réaliser et elle permet de lancer 1 dé à ajouter au Loksyu (ou ajoute 1 point à la Tin Ji dans le cas d’un PNJ) (+ 2 points par dé supplémentaire au-delà du premier).

  • Appui de Man Coeng (3 points) : le lanceur reçoit une assistance discrète du dieu des lettrés sous sa forme d’entité numérique. Il ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur son prochain jet en rapport avec une recherche sur internet – dont le Taonet (+ 3 points par dé supplémentaire au-delà du premier).

  • • Bénédiction de Gunjam (3 points) : la déesse de la compassion ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude physique ou spirituelle dans le cas d’un PNJ) sur un prochain jet de récupération d’un personnage (qui peut être le lanceur) (+ 3 points par dé supplémentaire au-delà du premier).

  • Faveur de Poujin (3 points) : la divinité de la vérité ultime ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur un prochain jet d’Enquête ou de Renseignement – au choix – du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Sapience de Sannung (3 points) : la divinité de l’herboristerie ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur un prochain jet d’Érudition du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Grâce de Soeng Ngo (3 points) : la déesse lunaire ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude sociale dans le cas d’un PNJ) sur un prochain jet de Mondanités du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Bénédiction de Gwaan Dai (4 points) : le dieu de la guerre accorde 1 dé-faste gratuit sur tous les jets du lanceur lors de son prochain combat. Les effets de cette prière durent 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires) (+ 3 points par dé pour obtenir des dés supplémentaires à lancer – ou des augmentations de l’Aptitude martiale – en plus des dés-fastes).

  • Souffle de la Dame aux Sept Étoiles de la Grande Ourse (4 points) : la déesse protectrice accorde 1 dé-faste gratuit sur tous les jets du lanceur liés aux Spécialités magiques suivantes : Purification, Punition et Neutralisation (mais un seul à la fois). Les Effets de cette prière durent 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 exorcistes supplémentaires).

  • Assentiment de Jilong (4 points) : le défenseur du Ciel accorde 1 dé-faste gratuit sur tous les jets du lanceur, tant qu’il combat ou s’oppose à des jiugwaai dont les actions ou l’existence s’opposent à la Volonté du Ciel – ce qui inclut la plupart des revenants et démons (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).

  • Faveur de Naazaa (5 points) : apprécié de cette divinité martiale, le lanceur ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude martiale dans le cas d’un PNJ) sur tous ses jets d’attaque et de défense tant qu’il utilise un Style d’art martial (+ 3 points par dé supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).

  • Assentiment de Ymlo (6 points) : un groupe d’au maximum 4 fat si reçoit l’approbation du dieu des Enfers lui-même et se voit accorder pour chacun de ses membres 1 dé-faste gratuit sur tous ses jets, tant qu’il s’agit d’affronter des démons ou des revenants (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 2 points pour étendre la bénédiction à 8 personnes supplémentaires).

  • Bienfait de Syun Nghung (6 points) : le Roi-singe aux nombreuses formes offre un déguisement presque parfait qui accorde au lanceur 2 dés-fastes gratuits sur tous ses jets pour lesquels cette illusion s’avère utile (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Présent de Soeng Ngo (6 points) : l’éclat de la lune elle-même se voile pour dissimuler les actions nocturnes du lanceur, qui se voit accorder 1 dé-faste sur tous ses jets pour se dissimuler ou être discret – incluant les jets de Filouterie, mais aussi d’autres Compétences éventuelles (comme Prouesse). Les effets de cette prière durent 1 nuit (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Bénédiction de Tin Hau (7 points) : la déesse tutélaire de Hong Kong permet au lanceur d’ajouter 1 dé supplémentaire sur tous ses jets impliquant l’Aspect Terre (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Terre. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Faveur de Zuk Jung (7 points) : le dieu du feu chevaucheur de dragon ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Feu (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Feu. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Manifestation de Din Mou (7 points) : la déesse des éclairs ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Eau (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Eau. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Imprécation de Deizong (7 points) : ce dieu apporte une endurance et une détermination sans faille, se traduisant par l’ajout de 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Bois (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Bois. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Manifestation de Leoi Gung (7 points) : le dieu du tonnerre ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Métal (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Métal. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Prospérité de Coi San (7 points) : cette bénédiction apporte richesse et succès. Le lanceur s’accorde 2 dés-fastes gratuits et ajoute 1 dé supplémentaire à lancer sur son prochain jet de Ressource Matériel (ou augmente sa capacité de Nuisance de 1 cran dans le cas d’un PNJ) (+ 2 points par dé-faste supplémentaire au-delà des 2 premiers) (+ 3 points par dé supplémentaire au-delà du premier).

  • Visions de Neilakfat (7 points) : rares sont ceux qui possèdent le pouvoir de prier le bouddha du futur pour obtenir de lui une vision de leur propre destin. Cela se traduit par l’ajout de 1 dé de la valeur choisie par le lanceur au Loksyu (ou l’ajout de 2 points à la Tin Ji dans le cas d’un PNJ) (+ 7 points par dé supplémentaire au-delà du premier).

  • Soutien de Zung Kwai (9 points) : grâce au soutien de la divinité, le personnage ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude mentale, sociale ou spirituelle dans le cas d’un PNJ) sur tous ses jets d’Enquête, Renseignement et Exorcisme (Traque) visant à identifier ou traquer un revenant. Il faut spécifier de quel spectre, fantôme ou mort-vivant il s’agit au départ car on ne peut en traquer qu’un seul à la fois. Les effets de cette prière durent 1 journée – jusqu’à la prochaine aube (+ 3 points par dé supplémentaire au-delà du premier).

  • Sceau des Neuf Cieux, message de l’Impératrice du Ciel (10 points) : pour effectuer cette prière, le fat si doit disposer du véritable nom d’un, de l’un de ses effets personnels ou l’avoir déjà clairement identifié. Il obtient de la messagère de l’Impératrice du Ciel l’ascendant sur la créature ciblée : l’ajout de 2 dés supplémentaires à lancer (ou l’augmentation de 2 de ses Aptitudes spirituelles ou sociales dans le cas d’un PNJ) et 2 dés-fastes gratuits sur son prochain jet de Domination ou de Nécromancie visant à la contrôler ou de toute autre Compétence permettant de s’en octroyer les services durablement, comme Mondanités (Négociation) par exemple.

  • Mandat de l’Empereur de Jade (12 points) : pour effectuer cette prière, le fat si doit disposer du véritable nom d’un jiugwaai, de l’un de ses effets personnels ou l’avoir déjà clairement identifié. Il obtient de l’Empereur de Jade lui-même l’assentiment pour le bannir : l’ajout de 2 dés supplémentaires à lancer (ou l’augmentation de 2 de ses Aptitudes spirituelles ou sociales dans le cas d’un PNJ) et 2 dés-fastes gratuits sur tous ses jets pour affronter, vaincre ou utiliser des Spécialités magiques telles qu’Invocation, Neutralisation ou Punition à l’encontre de la créature ciblée. Les effets de cette prière durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les Effets d’un sort peuvent être renforcés : le coût pour en augmenter les Effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "Qz8GcQFGSAvEMGsQ", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Billy Lau", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/billy.png?1701021038975", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.zSWwOmFiFjN4YxC9", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-brenda-kang-X7kM9pQ2rT5vW8nZ.json b/sample_data/fvtt-Actor-brenda-kang-X7kM9pQ2rT5vW8nZ.json new file mode 100644 index 0000000..a0a7f9d --- /dev/null +++ b/sample_data/fvtt-Actor-brenda-kang-X7kM9pQ2rT5vW8nZ.json @@ -0,0 +1,1179 @@ +{ + "name": "Brenda Kang", + "type": "character", + "img": "", + "system": { + "concept": "Alchimiste autodidacte", + "guardian": 6, + "initiative": 1, + "anti_initiative": 24, + "description": "

Brenda compte au faible nombre des fat si

\n

autodidactes – ce qui en dit long sur ses talents

\n

magiques. Très discrète sur sa vie passée (au

\n

point que même ses amis les plus proches en

\n

ignorent tout) et sur les raisons qui la poussèrent

\n

vers cette vocation, elle accomplit ses premiers

\n

pas en offrant ses services de géomancienne

\n

auprès du gotha hongkongais. Elle proposait

\n

notamment son expertise dans le domaine de la

\n

décoration d’intérieur, avec la petite touche de

\n

fungseoi véritable qui faisait la différence. Peu à

\n

peu, elle monta sa propre entreprise en la ma­

\n

tière et gagna de plus en plus de clients grâce

\n

à un bouche à oreille particulièrement flatteur.

\n

Grâce à cette activité, elle put s’offrir un loft

\n

suffisamment spacieux pour accueillir un véri­

\n

table laboratoire où mener ses recherches alchi­

\n

miques – cette science ésotérique constituant sa

\n

véritable passion.

\n

Cette fréquentation du gratin de Hong Kong

\n

lui permit également de se construire un vaste

\n

réseau de contacts. Et c’est à travers ce dernier

\n

qu’elle finit par découvrir la part occulte de la

\n

ville qui ne dort jamais. Bien que déjà initiée

\n

aux arts mystiques, Brenda ignorait qu’il existait

\n

une telle faune surnaturelle dans les rues qu’elle

\n

arpentait pourtant chaque jour. Elle s’y plongea

\n

avec la même curiosité dévorante qu’elle montre

\n

envers tout ce qui attise son intérêt et apprit à

\n

la dure que ce microcosme regorgeait de dan­

\n

gers qu’il fallait prendre garde à ne pas réveiller.

\n

Toutefois, sa nature indiscrète la poussa à se

\n

mêler de ce qui ne la regardait pas plus souvent

\n

qu’à son tour  ! Elle s’en sortit heureusement

\n

toujours grâce à un mélange de chance et de

\n

talent, ce qui ne l’incita guère à se montrer plus

\n

prudente…

\n

Intelligente et débrouillarde, Brenda adore

\n

allier à la magie traditionnelle la modernité

\n

de la science, à la façon de son pistolet LDB

\n

à cartouches alchimiques de fabrication artisa­

\n

nale – une arme redoutable avec laquelle elle a

\n

déjà neutralisé plus d’un jiugwaai. Son labora­

\n

toire s’avère à cette image, entre écrans plats

\n

sur lesquels défilent des algorithmes complexes

\n

et jarres en terre cuite contenant des herbes

\n

séchées et des poudres aux couleurs variées.

\n

En cela, elle représente à merveille la facette

\n

contemporaine des fat si : des mages capables

\n

de vivre avec leur temps sans renier les usages

\n

ayant fait leurs preuves depuis des siècles.

\n

Souvent peu prise au sérieux en raison de son

\n

apparence fantasque et de son caractère enjoué,

\n

Brenda dément rapidement cette première im­

\n

pression en démontrant toutes ses compétences

\n

une fois sur le terrain.

\n

Son sanhei est le traditionnel Gam Sim Ceoi,

\n

le crapaud d’or à trois pattes qui amène fortune

\n

et prospérité. Porté en permanence par Brenda,

\n

le talisman s’est mué en un symbole de son man­

\n

dat céleste de fat si après qu’elle a rendu ser­

\n

vice à d’autres exorcistes réputés en présence

\n

du Grand Immortel Wong qui leur avait accordé

\n

sa bénédiction. C’est d’ailleurs à cette occasion

\n

qu’elle rencontra le groupe avec lequel elle offi­

\n

cie encore aujourd’hui.

\n

Elle fréquente avec ses compagnons le res­

\n

taurant Chez Lau où ils aiment discuter de leurs

\n

prochaines missions, mais aussi se détendre en­

\n

semble. C’est Brenda qui a proposé aux autres

\n

de travailler ensemble sur une base régulière

\n

– devenant en quelque sorte l’âme de cette

\n

équipe, celle pour qui chacun de ses camarades

\n

serait prêt à donner sa vie.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 2 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 1 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 4 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "Énigme", + "value": 3 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Mythologie", + "value": 1 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 2 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "Négociation", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 1 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "Botanique", + "value": 3 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 1 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 2 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune, Commerçants", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Médias, Politiciens", + "value": 1, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Politiciens", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "Huiles essentielles" + }, + "two": { + "value": "Ginseng" + }, + "three": { + "value": "Radis noir" + }, + "four": { + "value": "Cinabre" + }, + "five": { + "value": "Cigüe" + }, + "six": { + "value": "Soufre" + }, + "seven": { + "value": "Mélange d'herbes" + }, + "eight": { + "value": "Bâton d'encens" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Fiole d'alcool très fort" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": true, + "value": 4, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": true + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": true + }, + "potions": { + "check": true + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": false, + "value": 0, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 2, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": true + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 6, + "max": 6 + }, + "heiyin": { + "value": 3, + "max": 3 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 5, + "max": 5, + "min": 0 + }, + "zing": { + "value": 6, + "max": 6, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 2, + "max": 2, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Serendipité", + "type": "sanhei", + "img": "", + "system": { + "reference": "Sanhei de Brenda Kang", + "description": "

Serendipité (figurine du crapaud à trois pattes) :

\n

• Réserve de 3 points de Hei Yang ; chaque fois que le fat si récupère 1 point de Hei Yang, le sanhei en récupère également 1 de son côté.

\n

• Lors d'un jet de Mondanités (Négociation) ou de Matériel (Fortune) destiné à acheter des ingrédients ou des objets occultes, permet de lancer 1 dé supplémentaire.

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "sN4tR7kE9wQ2yU6iA1pL3mB8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Instruments modernes d'alchimie (fioles, tubes, balance, mortier)", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Instruments modernes d'alchimie (fioles, tubes, balance, mortier)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "aBc0Df2Gh4Ij6Kl8Mn0Op2Qr", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Sacoche de transport de fioles", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Sacoche de transport de fioles

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "tU6vW4xY8zA2bC0dE4fG6hI8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Hangar spacieux dans un quartier modeste", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Hangar spacieux dans un quartier modeste

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "jK2lM4nO6pQ8rS0tU2vW4xY6", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Scooter haut de gamme", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Scooter haut de gamme

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "zA8bC0dE2fG4hI6jK8lM0nO2", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Smartphone dernière génération avec accès au Taonet", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Smartphone dernière génération avec accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "pQ4rS6tU8vW0xY2zA4bC6dE8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Nombreux bijoux et colifichets", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Nombreux bijoux et colifichets

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "fG0hI2jK4lM6nO8pQ0rS2tU4", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Pistolet LDB à cartouches alchimiques (et 3 fioles adaptées)", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Pistolet LDB à cartouches alchimiques (et 3 fioles adaptées) – dégâts 2+, distance longue

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "vW6xY8zA0bC2dE4fG6hI8jK0", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Élixirs", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 288", + "description": "

Alchimie (Eau)

L'Alchimie est l'art de combiner des ingrédients pour produire des effets surnaturels. Contrairement aux autres disciplines magiques, elle ne repose pas sur l'invocation d'esprits ou la manipulation directe du Hei, mais sur la transformation de la matière par des procédés ésotériques. L'alchimiste utilise des ingrédients rares, des appareils de mesure et de chauffage, et suit des protocoles précis hérités d'une tradition millénaire mêlant taoïsme et sciences occultes occidentales.

Élixirs (Eau)

L'alchimiste est capable de concocter des élixirs aux propriétés variées : remèdes qui accélèrent la guérison, breuvages qui confèrent une force surhumaine le temps d'une scène, ou encore philtres permettant de résister aux poisons et aux maladies. Chaque élixir nécessite des ingrédients spécifiques et un temps de préparation qui varie selon sa puissance.

", + "specialityname": "Élixirs", + "associatedelement": "bois", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 heure", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : incantation de la formule alchimique, récitation des propriétés des ingrédients

  • Gestes : dosage, mélange, chauffage au chalumeau

  • État d'esprit : concentration extrême, patience

  • Consommables : ingrédients spécifiques à l'élixir (plantes, minéraux, etc.)

  • Objets : instruments d'alchimie (fioles, tubes, balance, mortier)

", + "effects": "

Effets

  • L'Effet « Trois Trésors » indique le nombre de points de Zing ou de San restaurés par l'élixir, ou le bonus accordé à une caractéristique.

  • L'Effet « durée » précise le temps pendant lequel les effets de l'élixir persistent.

  • L'Effet « bonus » octroie des dés supplémentaires pour une action spécifique.

", + "examples": "

Exemples

Voici une liste non exhaustive d'élixirs, avec leur coût en Puissance :

  • Baume de cicatrisation rapide (2 points) : restaure 1 point de Zing perdu (+ 2 points par point supplémentaire).

  • Essence de vigueur du dragon (3 points) : confère +1 dé sur tous les jets de Prouesse et de Kung-Fu pour une scène (+ 2 points par dé supplémentaire).

  • Thé de clarté mentale (2 points) : confère +1 dé sur tous les jets d'Études ou de Sciences pour une scène.

", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "lM2nO4pQ6rS8tU0vW2xY4zA6", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Arsenal", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 289", + "description": "

Alchimie (Eau)

L'Alchimie est l'art de combiner des ingrédients pour produire des effets surnaturels. Contrairement aux autres disciplines magiques, elle ne repose pas sur l'invocation d'esprits ou la manipulation directe du Hei, mais sur la transformation de la matière par des procédés ésotériques.

Arsenal (Métal)

L'alchimiste est capable de préparer des projectiles et des munitions spéciales aux propriétés surnaturelles : balles chargées d'énergie Yang, fioles explosives, grenades fumigènes alchimiques, ou encore des cartouches qui infligent des dégâts spirituels aux créatures Yin. Ces préparations nécessitent une connaissance approfondie des métaux et des réactions chimiques ésotériques.

", + "specialityname": "Arsenal", + "associatedelement": "metal", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière de bénédiction des armes, formules alchimiques

  • Gestes : chargement des projectiles, scellement des fioles

  • État d'esprit : déterminé, guerrier

  • Consommables : poudre alchimique, métaux rares, alcool fort

  • Objets : instruments d'alchimie, établi, creuset

", + "effects": "

Effets

  • L'Effet « Trois Trésors » indique les dégâts supplémentaires infligés par les projectiles alchimiques.

  • L'Effet « durée » indique le temps durant lequel les projectiles conservent leurs propriétés.

  • L'Effet « bonus » octroie des dés supplémentaires aux jets de Combat à distance utilisant ces munitions.

", + "examples": "

Exemples

Voici une liste non exhaustive de préparations d'arsenal, avec leur coût en Puissance :

  • Cartouche de Yang concentré (2 points) : les dégâts de l'arme sont augmentés de +1 contre les créatures d'essence Yin (+ 1 point par point de dégât supplémentaire).

  • Fiole fumigène d'encens de protection (3 points) : crée un nuage qui repousse les jiugwaai pendant 1 scène.

  • Balle de cinabre explosif (3 points) : inflige des dégâts de zone (Feu + 2) dans un rayon court.

", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "bC8dE0fG2hI4jK6lM8nO0pQ2", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Philtres", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 290", + "description": "

Alchimie (Eau)

L'Alchimie est l'art de combiner des ingrédients pour produire des effets surnaturels. Contrairement aux autres disciplines magiques, elle ne repose pas sur l'invocation d'esprits ou la manipulation directe du Hei, mais sur la transformation de la matière par des procédés ésotériques.

Philtres (Eau)

L'alchimiste maîtrise la confection de philtres aux effets subtils agissant sur l'esprit et les émotions : philtres d'amitié qui rendent un interlocuteur bienveillant, élixirs de vérité qui empêchent de mentir, ou encore breuvages de confusion qui sèment le trouble chez un adversaire. Ces préparations sont redoutables en société et permettent d'obtenir des informations ou des faveurs sans recourir à la violence.

", + "specialityname": "Philtres", + "associatedelement": "eau", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 heure", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : incantations douces, paroles de pouvoir

  • Gestes : mélange délicat, présentation élégante

  • État d'esprit : calme, empathique, rusé

  • Consommables : herbes aromatiques, essences florales, alcool

  • Objets : fioles en verre fin, balance de précision, filtre

", + "effects": "

Effets

  • L'Effet « bonus » octroie des dés supplémentaires aux jets de Mondanités ou de Knavery visant à influencer une cible ayant consommé le philtre.

  • L'Effet « durée » indique le temps pendant lequel le philtre reste actif après ingestion.

  • L'Effet « Trois Trésors » indique la difficulté pour la cible de résister aux effets du philtre.

", + "examples": "

Exemples

Voici une liste non exhaustive de philtres, avec leur coût en Puissance :

  • Philtre de sincérité (2 points) : la cible ne peut pas mentir pendant une scène (+ 2 points pour prolonger d'une scène supplémentaire).

  • Élixir de sympathie (3 points) : la cible est bien disposée envers le personnage, accordant +2 dés aux jets de négociation.

  • Nectar d'oubli (4 points) : la cible oublie les événements de la dernière heure.

", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "rS4tU6vW8xY0zA2bC4dE6fG8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Fungseoi", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 328", + "description": "

Géomancie (Bois)

La Géomancie recouvre la compréhension qu'a le fat si des flux d'énergie qui circulent à travers le cosmos, ainsi que sa capacité à les manipuler dans une certaine mesure. Il voit ainsi la façon dont l'énergie du Tao baigne le monde et le relie au Ciel – mais aussi aux Dix Enfers.

Fungseoi (Eau)

Le Fungseoi – littéralement « vent et eau » – est l'art de manipuler les lignes d'énergie tellurique pour harmoniser ou perturber l'influence exercée par un lieu sur ses occupants. Le fat si peut ainsi purifier une maison maudite, attirer la prospérité sur un commerce, ou au contraire rendre un endroit si désagréable que ses occupants finiront par le quitter. Il utilise pour cela des calculs complexes basés sur l'orientation, les éléments environnants et les dates propices.

", + "specialityname": "Fungseoi", + "associatedelement": "eau", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "2 heures", + "realizationtimeaccelerated": "impossible", + "flashback": "oui, mais sans la possibilité d'agir sur le Loksyu", + "components": "

Composantes

  • Mots : calculs géomantiques, récitation du Dou Dak Ging

  • Gestes : prise de mesures avec une boussole lopun, déplacement d'objets

  • État d'esprit : serein, en harmonie avec la nature

  • Consommables : encens, offrandes aux divinités terrestres

  • Objets : boussole lopun, disque de jade, baguettes d'achillée

", + "effects": "

Effets

  • L'Effet « bonus » octroie des dés supplémentaires aux jets effectués dans un lieu harmonisé par le Fungseoi.

  • L'Effet « durée » indique le temps durant lequel l'harmonisation ou la perturbation du lieu persiste.

  • L'Effet « Trois Trésors » indique la protection contre les pertes de San conférée par le lieu harmonisé.

", + "examples": "

Exemples

Voici une liste non exhaustive de sorts de Fungseoi, avec leur coût en Puissance :

  • Harmonisation d'un espace de vie (3 points) : les occupants d'un lieu gagnent +1 dé sur tous les jets de récupération de San tant qu'ils s'y reposent (+ 2 points par dé supplémentaire).

  • Bénédiction commerciale (4 points) : attire la prospérité sur un commerce pendant 1 mois, offrant +2 dés aux jets de Matériel liés au revenu de l'établissement.

  • Perturbation des flux hostiles (5 points) : rend un lieu si désagréable que les occupants indésirables subissent 2 dés-néfastes sur toutes leurs actions.

", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "hI0jK2lM4nO6pQ8rS0tU2vW4", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Brenda Kang", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.X7kM9pQ2rT5vW8nZ", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-danny-hou-9Ln7wnMwFK89FiTI.json b/sample_data/fvtt-Actor-danny-hou-9Ln7wnMwFK89FiTI.json new file mode 100644 index 0000000..47a411b --- /dev/null +++ b/sample_data/fvtt-Actor-danny-hou-9Ln7wnMwFK89FiTI.json @@ -0,0 +1,972 @@ +{ + "name": "Danny Hou", + "type": "character", + "img": "", + "system": { + "concept": "Artiste urbain", + "guardian": 3, + "initiative": 1, + "anti_initiative": 24, + "description": "

Danny est un fat si, un protecteur, un artiste

\n

et un athlète adepte des sports de glisse urbains.

\n

Issu d’une famille aussi traditionnelle qu’ai­

\n

sée, il se passionna très tôt pour le sport. Curieux

\n

et spontané, il s’encanailla dans les rues en

\n

compagnie d’enfants moins favorisés. En raison

\n

d’un hei Yang prononcé, Danny attirait à lui de

\n

nombreuses créatures et fut ainsi remarqué par

\n

un fat si nommé Jude Leung. Dans un premier

\n

temps, Jude poussa le jeune homme à fréquenter

\n

l’école de kung-fu du quartier où lui-même avait

\n

appris la Paume des Huit Trigrammes – afin de

\n

l’initier à la maîtrise de son énergie et de garder

\n

un œil sur lui par la même occasion.

\n

Cependant, l’âme d’artiste de Danny – ca­

\n

pricieuse et changeante – le poussait régulière­

\n

ment à fuguer afin de se livrer à ses véritables

\n

passions  : le skateboard et le street-art. Bien

\n

que figurant parmi les meilleurs espoirs de son

\n

école d’arts martiaux, son insouciance et son

\n

manque de sérieux lui valurent finalement d’en

\n

être exclu temporairement. À cette époque, Jude

\n

s’interrogeait sur l’opportunité d’initier Danny à

\n

la voie des fat si en raison de ses dons naturels,

\n

mais finit par renoncer à cause de son compor­

\n

tement erratique.

\n

Jeune adulte, Danny devint un artiste locale­

\n

ment reconnu sous le pseudonyme de « Mister

\n

D ». Il entama une liaison avec l’une de ses mé­

\n

cènes : la romancière à succès Wendy Zhang, de

\n

dix ans son aînée. Alors que celle-ci effectuait di­

\n

verses recherches sur des événements étranges

\n

pour l’écriture de son prochain ouvrage, elle se

\n

trouva attaquée par une créature et sombra dans

\n

un profond coma suite à ses blessures. Frappé

\n

par ce drame, Danny reprit les recherches de

\n

son amante afin de découvrir ce qui lui était ar­

\n

rivé, ce qui le mit à son tour en danger et poussa

\n

Jude à l’initier aux secrets de la magie chinoise.

\n

De ce mentor, Danny apprit principalement des

\n

techniques d’alchimie interne – dont les arts

\n

martiaux pratiqués durant l’enfance lui avaient

\n

ouvert la voie.

\n

Après cette première enquête menée de

\n

concert et au terme d’un combat épique ayant

\n

mis fin aux méfaits de la créature responsable

\n

du coma de Wendy, Jude se trouva grièvement

\n

blessé et son hei s’affaiblit au point d’affecter

\n

sa pratique de la magie. Les deux fat si déci­

\n

dèrent cependant de continuer à faire équipe :

\n

Jude profitant de son expérience pour conseiller

\n

Danny qui utilisait sur le terrain la puissance

\n

magique dont son maître ne disposait plus. Tout

\n

au long de cet apprentissage, Danny croisa de

\n

nombreux autres fat si avec qui il sympathisa

\n

et auprès desquels il apprit notamment l’exor­

\n

cisme, auquel son Gardien céleste le prédispose

\n

naturellement, ainsi que la Maîtrise de la Voie.

\n

Au terme de cette période, Danny avait bien

\n

changé. Jude décida donc de lui avouer qu’il

\n

n’avait pas formé un partenaire mais bien un

\n

remplaçant. Le fat si amoindri prit donc sa re­

\n

traite et céda à son successeur son propre san­

\n

hei : un bouclier en bois de pêcher orné d’idéo­

\n

grammes anciens. Fidèle à sa nature adaptable,

\n

Danny se permit de modifier l’objet mystique en

\n

y ajoutant des roues pour en faire un skateboard, tout en conservant la lanière qui permet

\n

de le porter au bras.

\n

Danny ne dispose d’aucun revenu fixe et

\n

squatte la plupart du temps chez ses mécènes

\n

ou au domicile d’autres artistes. Il se comporte

\n

en joli cœur qui croque la vie à pleine dent,

\n

conscient que tout peut s’arrêter du jour au

\n

lendemain. Certains disent de lui que c’est un

\n

mélancolique et qu’il adopte cette attitude dé­

\n

sinvolte pour oublier la tragédie qui a frappé

\n

l’amour de sa vie – Wendy se trouvant encore à

\n

ce jour dans le coma.

\n

Il aide également les plus démunis et offre

\n

ses services de fat si en oubliant parfois de ré­

\n

clamer un quelconque dédommagement. Il ar­

\n

rive à Danny de prendre ses repas au restaurant

\n

Chez Lau avec d’autres fat si de sa génération ou

\n

à peine plus expérimentés. Cela lui donne l’oc­

\n

casion de coopérer avec certains d’entre eux sur

\n

des affaires ponctuelles, sans qu’il n’ait jusqu’ici

\n

décidé de rejoindre officiellement leur groupe.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 4 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 1 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 1 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "Street Art", + "value": 3 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 2 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "", + "value": 1 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "Discrétion", + "value": 2 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 3 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 0 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 2 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "Mains nues", + "value": 3 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Mécènes", + "value": 1, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "La Rue, Artistes", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Artistes", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "Poignée de grains de riz" + }, + "two": { + "value": "Fiole de sel" + }, + "three": { + "value": "Fiole de sang" + }, + "four": { + "value": "Carapace de tortue" + }, + "five": { + "value": "Queue de rat" + }, + "six": { + "value": "Fiole d'alcool de riz" + }, + "seven": { + "value": "Talisman" + }, + "eight": { + "value": "Talisman" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": true, + "value": 3, + "speciality": { + "essence": { + "check": true + }, + "mind": { + "check": false + }, + "purification": { + "check": true + }, + "manipulation": { + "check": true + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": true, + "value": 2, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": true + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 2, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": true + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 3, + "max": 3 + }, + "heiyin": { + "value": 6, + "max": 6 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 5, + "max": 5, + "min": 0 + }, + "zing": { + "value": 6, + "max": 6, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 4, + "max": 4, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 1, + "max": 1, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Le Bouclier de Naazaa (bouclier / skate-board)", + "type": "sanhei", + "img": "", + "system": { + "reference": "Sanhei de Danny Hou", + "description": "

Le Bouclier de Naazaa (bouclier / skate-board) :

\n

• Quand il porte son sanhei, Danny bénéficie d'une protection physique de 3.

\n

• Réserve de 4 points de Hei Yin ; chaque fois que Danny récupère 1 point de Hei Yin, le sanhei en récupère également 1 de son côté.

\n

• Si 1 Succès sur un jet d'Exorcisme (Protection), + 1 Succès automatique au résultat.

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "DgBJwRCnThNwGx9G", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "La Paume des Huit Trigrammes", + "type": "kungfu", + "img": "", + "system": { + "reference": "", + "description": "

La Paume des Huit Trigrammes

\n

Yin / Métal / Kung-fu (Mains Nues)

\n

Action de déplacement = 1 cran d'initiative (au lieu de 2)

", + "orientation": "yin", + "aspect": "metal", + "skill": "kungfu", + "speciality": "Mains nues", + "style": "", + "techniques": { + "technique1": { + "check": false, + "name": "", + "activation": "", + "technique": "" + }, + "technique2": { + "check": false, + "name": "", + "activation": "", + "technique": "" + }, + "technique3": { + "check": false, + "name": "", + "activation": "", + "technique": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "lLDzJcaHXZs5S7LX", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Sac à dos avec des bombes de peinture et du matériel artistique", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Sac à dos avec des bombes de peinture et du matériel artistique

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "rnorD8QzwcgJYuhx", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Sweat à capuche sombre, masque et vêtements permettant de se déplacer rapidement et discrètement", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Sweat à capuche sombre, masque et vêtements permettant de se déplacer rapidement et discrètement

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "L0F0bTg8FvaJrvWe", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Téléphone bas de gamme de seconde main avec un accès au Taonet", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Téléphone bas de gamme de seconde main avec un accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "cp9F4sbDYTwE2jWP", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Logement: habite chez ses mécènes et amis artistes", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Logement: habite chez ses mécènes et amis artistes

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "3WQtOweomuGQlggG", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Danny Hou", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "loxrnomOLtPiHbne", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.9Ln7wnMwFK89FiTI", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-emerson-wu-adc8c6091e217308.json b/sample_data/fvtt-Actor-emerson-wu-adc8c6091e217308.json new file mode 100644 index 0000000..4167283 --- /dev/null +++ b/sample_data/fvtt-Actor-emerson-wu-adc8c6091e217308.json @@ -0,0 +1,1159 @@ +{ + "name": "Emerson «Wu» Jiu", + "type": "character", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/monk.png", + "system": { + "concept": "Bonze branché", + "guardian": 5, + "initiative": 1, + "anti_initiative": 24, + "description": "

Emerson appartient à la jeunesse dorée de

\n

Hong Kong. Sa famille dispose d’un très impor­

\n

tant empire financier qui contrôle plusieurs so­

\n

ciétés influentes en Chine continentale (où elle

\n

utilise la transcription de son nom en mandarin :

\n

Yao) et à Hong Kong. De plus, elle comporte des

\n

personnalités du show-business ainsi que des

\n

politiciens. Emerson a beau se tenir très éloigné

\n

de la politique et de la finance, s’intéressant

\n

principalement à la science et à la théologie, il

\n

n’a jamais manqué de rien. Actuellement, il vit

\n

de ses rentes et de l’aide financière ponctuelle

\n

que sa famille peut lui apporter en cas de besoin.

\n

Très tôt dans sa jeunesse, Emerson a démon­

\n

tré un grand potentiel intellectuel. Excellent

\n

élève, il se passionnait alors pour des domaines

\n

aussi divers que la philosophie, les sciences, les

\n

technologies mais aussi l’histoire et la mytho­

\n

logie. Poussé par sa famille, il brûla les étapes

\n

pendant ses études jusqu’à sombrer à l’âge de

\n

vingt et un ans, victime de surmenage et d’une

\n

lourde dépression. Après avoir fait appel à de

\n

nombreux spécialistes et essayé de nombreuses

\n

approches pour lui venir en aide, ses parents se

\n

tournèrent vers un monastère où Emerson effec­

\n

tua un très long séjour.

\n

Lorsqu’il quitta le temple cinq ans plus tard,

\n

Emerson se rebaptisa « Wu  » et devint moine

\n

bouddhiste – une vocation dont sa famille ne lui

\n

tient pas rigueur, car elle dispose de suffisam­

\n

ment d’héritiers. Bien qu’Emerson ne vive pas à

\n

la façon d’un ascète (ses parts de l’empire Yao

\n

le tenant à l’abri du besoin), il consacre depuis

\n

sa conversion sa vie à aider autrui, en associant

\n

ses connaissances académiques, scientifiques

\n

et technologiques aux enseignements religieux

\n

reçus pendant sa convalescence.

\n

Emerwon « Wu » Jiu se fit rapidement remar­

\n

quer par d’autres occultistes renommés, étant

\n

donné ses méthodes peu orthodoxes. Il découvrit

\n

le monde des fat si en fouillant sans y être invi­

\n

té le Taonet, avant d’en devenir par la suite un

\n

fervent protecteur. Aujourd’hui, il est reconnu

\n

comme l’un des spécialistes à qui l’ont fait appel

\n

lorsqu’on est confronté à un mystère qui a trait

\n

à la fois au surnaturel et à la technologie. Depuis

\n

qu’il a reçu des mains d’un vénérable moine son

\n

sanhei (un précieux sekzoeng), il participe aux

\n

côtés d’exorcistes de Hong Kong à des combats

\n

contre des créatures occultes à l’aide de chants

\n

religieux pré-enregistrés dans son téléphone

\n

portable et diffusés par des enceintes sans fil.

\n

Il utilise son ordinateur dernier cri, modifié à

\n

l’aide de talismans et de quelques programmes

\n

spéciaux, pour traquer des êtres démoniaques

\n

qui se dissimulent sous forme immatérielle dans

\n

les réseaux informatiques.

\n

Bien que Wu soit un véritable bonze, il est

\n

aussi un fat si moderne ultra-connecté. Il n’a

\n

cependant jamais montré de prédisposition pour

\n

le combat et préfère affronter les jiugwaai à dis­

\n

tance et à l’aide de la technologie ou de la ma­

\n

gie. En dehors de son équipement à la pointe et

\n

de nombreux livres, son appartement – bien que

\n

spacieux – est meublé et équipé de manière très

\n

sobre. Organisé selon les principes du fungseoi,

\n

on y trouve un large espace décoré de manière

\n

traditionnelle et propice à la méditation.

\n

Il arrive à Wu de prendre ses repas (exclu­

\n

sivement végétariens) au restaurant Chez Lau,

\n

fréquenté par de nombreux fat si. Il visite éga­

\n

lement de nombreux forums sur le Taonet et

\n

il est même le modérateur de certains d’entre

\n

ceux qui traitent du bouddhisme.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 1 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 2 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 3 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 1 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Théologie", + "value": 2 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 1 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 0 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 2 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "Informatique", + "value": 3 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 1 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 2 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune", + "value": 3, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Bouddhistes, Taonet", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Bouddhistes", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "Feuille de saule" + }, + "two": { + "value": "Fiole de sel" + }, + "three": { + "value": "Poudre de jade" + }, + "four": { + "value": "Œuf de poule" + }, + "five": { + "value": "Pétard traditionnel" + }, + "six": { + "value": "Baguettes en bambou" + }, + "seven": { + "value": "Morceau de bougie" + }, + "eight": { + "value": "Bâton d'encens" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Pièce de monnaie" + } + }, + "magics": { + "internalcinnabar": { + "visible": true, + "value": 2, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": true + }, + "purification": { + "check": true + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 2, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": true + }, + "protection": { + "check": true + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 2, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": true + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 3, + "max": 3 + }, + "heiyin": { + "value": 5, + "max": 5 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 6, + "max": 6, + "min": 0 + }, + "zing": { + "value": 6, + "max": 6, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Montagne Immobile (sekzoeng, long bâton à anneaux de prière)", + "type": "sanhei", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/baton_sanhei.png", + "system": { + "reference": "Sanhei du pré-tiré Emerson «Wu» Jiu", + "description": "

Montagne Immobile (sekzoeng, long bâton à anneaux de prière) :

\n

• Affecte les créatures surnaturelles même intangibles.

\n

• Ajoute 1 niveau de Puissance gratuit et 1 dé supplémentaire à lancer à tous les jets de Géomancie (Prière céleste).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "cdc0e4ce3886062f", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Ordinateur dernier cri bardé de programmes talismaniques connecté au Taonet", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/pc.png", + "system": { + "reference": "", + "description": "

Ordinateur dernier cri, bardé de programmes qui agissent comme des talismans de protection et connecté au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "ccb84243400abba8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Smartphone dernier cri avec cantiques bouddhiques et quatre haut-parleurs portables", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/smartphone.png", + "system": { + "reference": "", + "description": "

Smartphone dernier cri, disposant de cantiques et chants religieux pré-enregistrés, et quatre haut-parleurs portables

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "2077bbfdb6a86ccc", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Voiture citadine et pratique", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/auto.png", + "system": { + "reference": "", + "description": "

Voiture citadine et pratique

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "65cc6b041375fe60", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement spacieux proche d'un monastère", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", + "system": { + "reference": "", + "description": "

Appartement spacieux proche d'un monastère

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "654767071245553f", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Chapelet bouddhique", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/mala.png", + "system": { + "reference": "", + "description": "

Chapelet bouddhique

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "8ae9b762817c086f", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cinabre Interne (Métal) : Esprit", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/METAL.gif", + "system": { + "reference": "LdB p. 310", + "description": "

Cinabre Interne (Métal) : Esprit

Sort de Esprit pour le discipline de internalcinnabar.

", + "specialityname": "Esprit", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, sûtra du diamant

  • Gestes : suivre le contour de l’objet à enchanter du plat de la main, lever les mains vers le ciel

  • État d’esprit : courroucé, combatif

  • Consommables : poudre de jade, eau pure, alcool de riz, encens, représentation en papier de l’attribut emprunté au dieu

  • Objets : arme en bois de saule ou de pécher, masque nuo, clochette de bronze, statuette du dieu auquel on emprunte un attribut

", + "effects": "

Effets

  • L’Effet « Trois Trésors » indique les dégâts supplémentaires provoqués par un objet chargé en énergie Yang (ces dégâts n’affectant que les créatures d’essence Yin), ainsi que la protection qu’il peut octroyer au personnage (là aussi, uniquement contre des attaques portées par des créatures d’essence Yin). Il traduit aussi les dégâts supplémentaires provoqués par l’attribut divin invoqué, ainsi que la protection qu’elle peut octroyer au personnage contre les attaques physiques (s’il s’agit d’un bouclier ou d’une armure).

  • L’Effet « malus » impose des dés-néfastes ou diminue le nombre de dés à lancer d’un jiugwaai lors d’actions particulières (généralement les actions physiques ou de combat), rendant compte de sa gêne quand il est exposé à une vision, un son ou même une odeur chargée de Yang.

  • L’Effet « bonus » indique les dés-fastes ou dés supplémentaires à lancer lors d’actions en lien avec l’objet ou l’arme invoqué (bonus en Kung-fu pour manier l’épée de Zung Kwai, en Combat à distance pour tirer avec l’arc de Jik l’Archer, en Prouesse avec les Roues de Feu de Naazaa, etc.).

  • L’Effet « durée » définit le temps durant lequel l’objet reste chargé ou durant lequel l’attribut divin se trouve entre les mains du personnage.


Certains effets des attributs divins peuvent également être associés à une « aire » d’effet ou avoir une « distance » pour la portée.


", + "examples": "

Exemples

Voici une liste non exhaustive d’invocations utiles, avec leur coût en Puissance :

  • Balle bénie à tête en bois de saule (3 points) : contre les jiugwaai, les dégâts de cette balle spéciale s’élèvent à [Feu + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Chaque balle est à usage unique, mais il arrive que des exorcistes en enchantent tout un chargeur (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène en enchantant tout le chargeur).

  • Lame bénie insufflée de Yang (3 points) : contre les jiugwaai, les dégâts de cette épée (qui doit être constituée de bois de saule) s’élèvent à [Bois + 3 ou Aptitude physique + 3 dans le cas d’un PNJ] du lanceur. Le Yang se dissipe après le premier coup porté avec l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène).

  • Le Cercle du Ciel et de la Terre de Naazaa (5 points) : il s’agit d’un attribut divin semblable à un anneau d’or (considéré comme un chakram), dont les dégâts s’élèvent à [Eau + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Cette arme peut s’utiliser au contact ou à distance, jusqu’à une distance extrême. Elle revient toujours dans la main de celui qui l‘a invoquée et perdure pour une durée de 1 scène (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Les Roues de Feu de Naazaa (6 points) : il s’agit d’un attribut divin permettant de voler. Il accorde au bénéficiaire 2 dés-fastes gratuits à toutes les actions où le fait de pouvoir voler s’avère utile (y compris dans le cadre d’un affrontement). Il perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà des deux premiers).

  • Talisman de protection (6 points) : ce talisman dans lequel l’exorciste a insufflé son Hei octroie à son bénéficiaire 1 point de protection physique et spirituelle contre les jiugwaai de toutes sortes. À usage unique, il ne protège que contre une attaque ou équivalent – comme l’effet d’un nœud d’énergies néfastes (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points pour rendre son usage effectif pour une durée de 1 scène).

  • Le Pilon de Soeng Ngo (8 points) : il s’agit d’un attribut divin représenté par un ensemble mortier / pilon. Pour une durée de 2 heures, il accorde à son bénéficiaire 2 dés-fastes gratuits sur un jet d’alchimie et lui permet de préparer une potion en seulement 2 heures (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Flèche divine de Soeng Ngo (10 points) : compagne de Jik l’Archer divin, la déesse lunaire permet à cette flèche argentée d’infliger des dégâts s’élevant à [Terre + 6 ou Attribut mentale + 6 dans le cas d’un PNJ] du lanceur et ignore alors toute forme de protection. Elle ne fonctionne toutefois que contre les revenants (cf p. 367) et n’autorise que 1 tir – le bénéficiaire doit de plus disposer d’un arc pour la décocher (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Jyuji Gamku Paang, le bâton du Roi singe (9 points) : attribut divin, ce bâton inflige des dégâts s’élevant à [Bois + 2 ou Aptitude physique + 2 dans le cas d’un PNJ] du lanceur et peut atteindre des cibles situées à distance courte en ignorant leur protection. cette arme se révèle si versatile que sur chaque jet d’attaque, elle accorde 2 dés-fastes gratuits à son bénéficiaire. Elle perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • La Lame du Dragon bleu de Gwaan Dai (9 points) : attribut divin, cette hallebarde inflige des dégâts s’élevant à [Métal + 4 ou Aptitude physique + 4 dans le cas d’un PNJ] du lanceur. Elle perdure pour une durée de 1 scène. Sa lame ajoute 1 dé supplémentaire à lancer (ou augmente de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense de son bénéficiaire (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé supplémentaire au-delà du premier).

  • Le Trident à Double-tranchant de Jilong (9 points) : attribut divin, ce trident inflige des dégâts s’élevant à [Métal + 4 ou Attribut physique + 4] du lanceur. Il perdure pour une durée de 1 scène. Ses pointes retirent 1 dé (ou diminuent de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense d’un adversaire de son bénéficiaire, nommé au moment de l’invocation de l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Le Miroir de Din Mou (13 points) : attribut divin, ce bouclier octroie une protection physique et spirituelle de 1. Sa simple présence impose à tout adversaire qui affronte son bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou la diminution de 1 à l’Aptitude martiale dans le cas d’un PNJ) à tous leurs jets d’attaque et de défense. L’objet perdure pour 1 scène (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points par dé-néfaste supplémentaire au-delà du premier) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Les Cloches de Bouddha (14 points) : le tintement de ces cloches est insupportable pour les créatures surnaturelles, qui subissent pour une durée de 1 scène 1 dé-néfaste et retirent 2 dés (ou diminuent leurs Aptitudes dans le cas de PNJ) sur toutes leurs actions, au sein d’une aire correspondant à la surface d’une pièce de maison – jusqu’à distance extrême. Se boucher les oreilles ne protège pas contre le glas du jugement céleste.


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les effets d’un sort peuvent être renforcés : le coût pour en augmenter les effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "internalcinnabar", + "hei": "" + }, + "_id": "4e088d6573f23cfa", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cinabre Interne (Métal) : Purification", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/METAL.gif", + "system": { + "reference": "LdB p. 310", + "description": "

Cinabre Interne (Métal) : Purification

Sort de Purification pour le discipline de internalcinnabar.

", + "specialityname": "Purification", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, sûtra du diamant

  • Gestes : suivre le contour de l’objet à enchanter du plat de la main, lever les mains vers le ciel

  • État d’esprit : courroucé, combatif

  • Consommables : poudre de jade, eau pure, alcool de riz, encens, représentation en papier de l’attribut emprunté au dieu

  • Objets : arme en bois de saule ou de pécher, masque nuo, clochette de bronze, statuette du dieu auquel on emprunte un attribut

", + "effects": "

Effets

  • L’Effet « Trois Trésors » indique les dégâts supplémentaires provoqués par un objet chargé en énergie Yang (ces dégâts n’affectant que les créatures d’essence Yin), ainsi que la protection qu’il peut octroyer au personnage (là aussi, uniquement contre des attaques portées par des créatures d’essence Yin). Il traduit aussi les dégâts supplémentaires provoqués par l’attribut divin invoqué, ainsi que la protection qu’elle peut octroyer au personnage contre les attaques physiques (s’il s’agit d’un bouclier ou d’une armure).

  • L’Effet « malus » impose des dés-néfastes ou diminue le nombre de dés à lancer d’un jiugwaai lors d’actions particulières (généralement les actions physiques ou de combat), rendant compte de sa gêne quand il est exposé à une vision, un son ou même une odeur chargée de Yang.

  • L’Effet « bonus » indique les dés-fastes ou dés supplémentaires à lancer lors d’actions en lien avec l’objet ou l’arme invoqué (bonus en Kung-fu pour manier l’épée de Zung Kwai, en Combat à distance pour tirer avec l’arc de Jik l’Archer, en Prouesse avec les Roues de Feu de Naazaa, etc.).

  • L’Effet « durée » définit le temps durant lequel l’objet reste chargé ou durant lequel l’attribut divin se trouve entre les mains du personnage.


Certains effets des attributs divins peuvent également être associés à une « aire » d’effet ou avoir une « distance » pour la portée.


", + "examples": "

Exemples

Voici une liste non exhaustive d’invocations utiles, avec leur coût en Puissance :

  • Balle bénie à tête en bois de saule (3 points) : contre les jiugwaai, les dégâts de cette balle spéciale s’élèvent à [Feu + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Chaque balle est à usage unique, mais il arrive que des exorcistes en enchantent tout un chargeur (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène en enchantant tout le chargeur).

  • Lame bénie insufflée de Yang (3 points) : contre les jiugwaai, les dégâts de cette épée (qui doit être constituée de bois de saule) s’élèvent à [Bois + 3 ou Aptitude physique + 3 dans le cas d’un PNJ] du lanceur. Le Yang se dissipe après le premier coup porté avec l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène).

  • Le Cercle du Ciel et de la Terre de Naazaa (5 points) : il s’agit d’un attribut divin semblable à un anneau d’or (considéré comme un chakram), dont les dégâts s’élèvent à [Eau + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Cette arme peut s’utiliser au contact ou à distance, jusqu’à une distance extrême. Elle revient toujours dans la main de celui qui l‘a invoquée et perdure pour une durée de 1 scène (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Les Roues de Feu de Naazaa (6 points) : il s’agit d’un attribut divin permettant de voler. Il accorde au bénéficiaire 2 dés-fastes gratuits à toutes les actions où le fait de pouvoir voler s’avère utile (y compris dans le cadre d’un affrontement). Il perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà des deux premiers).

  • Talisman de protection (6 points) : ce talisman dans lequel l’exorciste a insufflé son Hei octroie à son bénéficiaire 1 point de protection physique et spirituelle contre les jiugwaai de toutes sortes. À usage unique, il ne protège que contre une attaque ou équivalent – comme l’effet d’un nœud d’énergies néfastes (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points pour rendre son usage effectif pour une durée de 1 scène).

  • Le Pilon de Soeng Ngo (8 points) : il s’agit d’un attribut divin représenté par un ensemble mortier / pilon. Pour une durée de 2 heures, il accorde à son bénéficiaire 2 dés-fastes gratuits sur un jet d’alchimie et lui permet de préparer une potion en seulement 2 heures (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Flèche divine de Soeng Ngo (10 points) : compagne de Jik l’Archer divin, la déesse lunaire permet à cette flèche argentée d’infliger des dégâts s’élevant à [Terre + 6 ou Attribut mentale + 6 dans le cas d’un PNJ] du lanceur et ignore alors toute forme de protection. Elle ne fonctionne toutefois que contre les revenants (cf p. 367) et n’autorise que 1 tir – le bénéficiaire doit de plus disposer d’un arc pour la décocher (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Jyuji Gamku Paang, le bâton du Roi singe (9 points) : attribut divin, ce bâton inflige des dégâts s’élevant à [Bois + 2 ou Aptitude physique + 2 dans le cas d’un PNJ] du lanceur et peut atteindre des cibles situées à distance courte en ignorant leur protection. cette arme se révèle si versatile que sur chaque jet d’attaque, elle accorde 2 dés-fastes gratuits à son bénéficiaire. Elle perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • La Lame du Dragon bleu de Gwaan Dai (9 points) : attribut divin, cette hallebarde inflige des dégâts s’élevant à [Métal + 4 ou Aptitude physique + 4 dans le cas d’un PNJ] du lanceur. Elle perdure pour une durée de 1 scène. Sa lame ajoute 1 dé supplémentaire à lancer (ou augmente de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense de son bénéficiaire (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé supplémentaire au-delà du premier).

  • Le Trident à Double-tranchant de Jilong (9 points) : attribut divin, ce trident inflige des dégâts s’élevant à [Métal + 4 ou Attribut physique + 4] du lanceur. Il perdure pour une durée de 1 scène. Ses pointes retirent 1 dé (ou diminuent de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense d’un adversaire de son bénéficiaire, nommé au moment de l’invocation de l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Le Miroir de Din Mou (13 points) : attribut divin, ce bouclier octroie une protection physique et spirituelle de 1. Sa simple présence impose à tout adversaire qui affronte son bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou la diminution de 1 à l’Aptitude martiale dans le cas d’un PNJ) à tous leurs jets d’attaque et de défense. L’objet perdure pour 1 scène (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points par dé-néfaste supplémentaire au-delà du premier) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Les Cloches de Bouddha (14 points) : le tintement de ces cloches est insupportable pour les créatures surnaturelles, qui subissent pour une durée de 1 scène 1 dé-néfaste et retirent 2 dés (ou diminuent leurs Aptitudes dans le cas de PNJ) sur toutes leurs actions, au sein d’une aire correspondant à la surface d’une pièce de maison – jusqu’à distance extrême. Se boucher les oreilles ne protège pas contre le glas du jugement céleste.


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les effets d’un sort peuvent être renforcés : le coût pour en augmenter les effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "internalcinnabar", + "hei": "" + }, + "_id": "da18bcc97a7694f1", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Traque", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "LdB p. 317", + "description": "

Exorcisme (Feu) : Traque

Sort de Traque pour le discipline de exorcism.

", + "specialityname": "Traque", + "associatedelement": "feu", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, sûtra du diamant

  • Gestes : suivre le contour de l’objet à enchanter du plat de la main, lever les mains vers le ciel

  • État d’esprit : courroucé, combatif

  • Consommables : poudre de jade, eau pure, alcool de riz, encens, représentation en papier de l’attribut emprunté au dieu

  • Objets : arme en bois de saule ou de pécher, masque nuo, clochette de bronze, statuette du dieu auquel on emprunte un attribut

", + "effects": "

Effets

  • L’Effet « Trois Trésors » indique les dégâts supplémentaires provoqués par un objet chargé en énergie Yang (ces dégâts n’affectant que les créatures d’essence Yin), ainsi que la protection qu’il peut octroyer au personnage (là aussi, uniquement contre des attaques portées par des créatures d’essence Yin). Il traduit aussi les dégâts supplémentaires provoqués par l’attribut divin invoqué, ainsi que la protection qu’elle peut octroyer au personnage contre les attaques physiques (s’il s’agit d’un bouclier ou d’une armure).

  • L’Effet « malus » impose des dés-néfastes ou diminue le nombre de dés à lancer d’un jiugwaai lors d’actions particulières (généralement les actions physiques ou de combat), rendant compte de sa gêne quand il est exposé à une vision, un son ou même une odeur chargée de Yang.

  • L’Effet « bonus » indique les dés-fastes ou dés supplémentaires à lancer lors d’actions en lien avec l’objet ou l’arme invoqué (bonus en Kung-fu pour manier l’épée de Zung Kwai, en Combat à distance pour tirer avec l’arc de Jik l’Archer, en Prouesse avec les Roues de Feu de Naazaa, etc.).

  • L’Effet « durée » définit le temps durant lequel l’objet reste chargé ou durant lequel l’attribut divin se trouve entre les mains du personnage.


Certains effets des attributs divins peuvent également être associés à une « aire » d’effet ou avoir une « distance » pour la portée.


", + "examples": "

Exemples

Voici une liste non exhaustive d’invocations utiles, avec leur coût en Puissance :

  • Balle bénie à tête en bois de saule (3 points) : contre les jiugwaai, les dégâts de cette balle spéciale s’élèvent à [Feu + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Chaque balle est à usage unique, mais il arrive que des exorcistes en enchantent tout un chargeur (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène en enchantant tout le chargeur).

  • Lame bénie insufflée de Yang (3 points) : contre les jiugwaai, les dégâts de cette épée (qui doit être constituée de bois de saule) s’élèvent à [Bois + 3 ou Aptitude physique + 3 dans le cas d’un PNJ] du lanceur. Le Yang se dissipe après le premier coup porté avec l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène).

  • Le Cercle du Ciel et de la Terre de Naazaa (5 points) : il s’agit d’un attribut divin semblable à un anneau d’or (considéré comme un chakram), dont les dégâts s’élèvent à [Eau + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Cette arme peut s’utiliser au contact ou à distance, jusqu’à une distance extrême. Elle revient toujours dans la main de celui qui l‘a invoquée et perdure pour une durée de 1 scène (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Les Roues de Feu de Naazaa (6 points) : il s’agit d’un attribut divin permettant de voler. Il accorde au bénéficiaire 2 dés-fastes gratuits à toutes les actions où le fait de pouvoir voler s’avère utile (y compris dans le cadre d’un affrontement). Il perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà des deux premiers).

  • Talisman de protection (6 points) : ce talisman dans lequel l’exorciste a insufflé son Hei octroie à son bénéficiaire 1 point de protection physique et spirituelle contre les jiugwaai de toutes sortes. À usage unique, il ne protège que contre une attaque ou équivalent – comme l’effet d’un nœud d’énergies néfastes (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points pour rendre son usage effectif pour une durée de 1 scène).

  • Le Pilon de Soeng Ngo (8 points) : il s’agit d’un attribut divin représenté par un ensemble mortier / pilon. Pour une durée de 2 heures, il accorde à son bénéficiaire 2 dés-fastes gratuits sur un jet d’alchimie et lui permet de préparer une potion en seulement 2 heures (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Flèche divine de Soeng Ngo (10 points) : compagne de Jik l’Archer divin, la déesse lunaire permet à cette flèche argentée d’infliger des dégâts s’élevant à [Terre + 6 ou Attribut mentale + 6 dans le cas d’un PNJ] du lanceur et ignore alors toute forme de protection. Elle ne fonctionne toutefois que contre les revenants (cf p. 367) et n’autorise que 1 tir – le bénéficiaire doit de plus disposer d’un arc pour la décocher (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Jyuji Gamku Paang, le bâton du Roi singe (9 points) : attribut divin, ce bâton inflige des dégâts s’élevant à [Bois + 2 ou Aptitude physique + 2 dans le cas d’un PNJ] du lanceur et peut atteindre des cibles situées à distance courte en ignorant leur protection. cette arme se révèle si versatile que sur chaque jet d’attaque, elle accorde 2 dés-fastes gratuits à son bénéficiaire. Elle perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • La Lame du Dragon bleu de Gwaan Dai (9 points) : attribut divin, cette hallebarde inflige des dégâts s’élevant à [Métal + 4 ou Aptitude physique + 4 dans le cas d’un PNJ] du lanceur. Elle perdure pour une durée de 1 scène. Sa lame ajoute 1 dé supplémentaire à lancer (ou augmente de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense de son bénéficiaire (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé supplémentaire au-delà du premier).

  • Le Trident à Double-tranchant de Jilong (9 points) : attribut divin, ce trident inflige des dégâts s’élevant à [Métal + 4 ou Attribut physique + 4] du lanceur. Il perdure pour une durée de 1 scène. Ses pointes retirent 1 dé (ou diminuent de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense d’un adversaire de son bénéficiaire, nommé au moment de l’invocation de l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Le Miroir de Din Mou (13 points) : attribut divin, ce bouclier octroie une protection physique et spirituelle de 1. Sa simple présence impose à tout adversaire qui affronte son bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou la diminution de 1 à l’Aptitude martiale dans le cas d’un PNJ) à tous leurs jets d’attaque et de défense. L’objet perdure pour 1 scène (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points par dé-néfaste supplémentaire au-delà du premier) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Les Cloches de Bouddha (14 points) : le tintement de ces cloches est insupportable pour les créatures surnaturelles, qui subissent pour une durée de 1 scène 1 dé-néfaste et retirent 2 dés (ou diminuent leurs Aptitudes dans le cas de PNJ) sur toutes leurs actions, au sein d’une aire correspondant à la surface d’une pièce de maison – jusqu’à distance extrême. Se boucher les oreilles ne protège pas contre le glas du jugement céleste.


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les effets d’un sort peuvent être renforcés : le coût pour en augmenter les effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "7b88c9612aeda2a0", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Protection", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "LdB p. 318", + "description": "

Exorcisme (Feu) : Protection

Sort de Protection pour le discipline de exorcism.

", + "specialityname": "Protection", + "associatedelement": "feu", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d’initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, prière à Jilong, sûtra du diamant

  • Gestes : suivre le contour de l’objet à enchanter du plat de la main, lever les mains vers le ciel

  • État d’esprit : courroucé, combatif

  • Consommables : poudre de jade, eau pure, alcool de riz, encens, représentation en papier de l’attribut emprunté au dieu

  • Objets : arme en bois de saule ou de pécher, masque nuo, clochette de bronze, statuette du dieu auquel on emprunte un attribut

", + "effects": "

Effets

  • L’Effet « Trois Trésors » indique les dégâts supplémentaires provoqués par un objet chargé en énergie Yang (ces dégâts n’affectant que les créatures d’essence Yin), ainsi que la protection qu’il peut octroyer au personnage (là aussi, uniquement contre des attaques portées par des créatures d’essence Yin). Il traduit aussi les dégâts supplémentaires provoqués par l’attribut divin invoqué, ainsi que la protection qu’elle peut octroyer au personnage contre les attaques physiques (s’il s’agit d’un bouclier ou d’une armure).

  • L’Effet « malus » impose des dés-néfastes ou diminue le nombre de dés à lancer d’un jiugwaai lors d’actions particulières (généralement les actions physiques ou de combat), rendant compte de sa gêne quand il est exposé à une vision, un son ou même une odeur chargée de Yang.

  • L’Effet « bonus » indique les dés-fastes ou dés supplémentaires à lancer lors d’actions en lien avec l’objet ou l’arme invoqué (bonus en Kung-fu pour manier l’épée de Zung Kwai, en Combat à distance pour tirer avec l’arc de Jik l’Archer, en Prouesse avec les Roues de Feu de Naazaa, etc.).

  • L’Effet « durée » définit le temps durant lequel l’objet reste chargé ou durant lequel l’attribut divin se trouve entre les mains du personnage.


Certains effets des attributs divins peuvent également être associés à une « aire » d’effet ou avoir une « distance » pour la portée.


", + "examples": "

Exemples

Voici une liste non exhaustive d’invocations utiles, avec leur coût en Puissance :

  • Balle bénie à tête en bois de saule (3 points) : contre les jiugwaai, les dégâts de cette balle spéciale s’élèvent à [Feu + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Chaque balle est à usage unique, mais il arrive que des exorcistes en enchantent tout un chargeur (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène en enchantant tout le chargeur).

  • Lame bénie insufflée de Yang (3 points) : contre les jiugwaai, les dégâts de cette épée (qui doit être constituée de bois de saule) s’élèvent à [Bois + 3 ou Aptitude physique + 3 dans le cas d’un PNJ] du lanceur. Le Yang se dissipe après le premier coup porté avec l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 2 points pour rendre le bonus de dégât effectif pour une durée de 1 scène).

  • Le Cercle du Ciel et de la Terre de Naazaa (5 points) : il s’agit d’un attribut divin semblable à un anneau d’or (considéré comme un chakram), dont les dégâts s’élèvent à [Eau + 3 ou Aptitude mentale + 3 dans le cas d’un PNJ] du lanceur. Cette arme peut s’utiliser au contact ou à distance, jusqu’à une distance extrême. Elle revient toujours dans la main de celui qui l‘a invoquée et perdure pour une durée de 1 scène (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Les Roues de Feu de Naazaa (6 points) : il s’agit d’un attribut divin permettant de voler. Il accorde au bénéficiaire 2 dés-fastes gratuits à toutes les actions où le fait de pouvoir voler s’avère utile (y compris dans le cadre d’un affrontement). Il perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà des deux premiers).

  • Talisman de protection (6 points) : ce talisman dans lequel l’exorciste a insufflé son Hei octroie à son bénéficiaire 1 point de protection physique et spirituelle contre les jiugwaai de toutes sortes. À usage unique, il ne protège que contre une attaque ou équivalent – comme l’effet d’un nœud d’énergies néfastes (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points pour rendre son usage effectif pour une durée de 1 scène).

  • Le Pilon de Soeng Ngo (8 points) : il s’agit d’un attribut divin représenté par un ensemble mortier / pilon. Pour une durée de 2 heures, il accorde à son bénéficiaire 2 dés-fastes gratuits sur un jet d’alchimie et lui permet de préparer une potion en seulement 2 heures (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Flèche divine de Soeng Ngo (10 points) : compagne de Jik l’Archer divin, la déesse lunaire permet à cette flèche argentée d’infliger des dégâts s’élevant à [Terre + 6 ou Attribut mentale + 6 dans le cas d’un PNJ] du lanceur et ignore alors toute forme de protection. Elle ne fonctionne toutefois que contre les revenants (cf p. 367) et n’autorise que 1 tir – le bénéficiaire doit de plus disposer d’un arc pour la décocher (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • Jyuji Gamku Paang, le bâton du Roi singe (9 points) : attribut divin, ce bâton inflige des dégâts s’élevant à [Bois + 2 ou Aptitude physique + 2 dans le cas d’un PNJ] du lanceur et peut atteindre des cibles situées à distance courte en ignorant leur protection. cette arme se révèle si versatile que sur chaque jet d’attaque, elle accorde 2 dés-fastes gratuits à son bénéficiaire. Elle perdure pour une durée de 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât).

  • La Lame du Dragon bleu de Gwaan Dai (9 points) : attribut divin, cette hallebarde inflige des dégâts s’élevant à [Métal + 4 ou Aptitude physique + 4 dans le cas d’un PNJ] du lanceur. Elle perdure pour une durée de 1 scène. Sa lame ajoute 1 dé supplémentaire à lancer (ou augmente de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense de son bénéficiaire (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé supplémentaire au-delà du premier).

  • Le Trident à Double-tranchant de Jilong (9 points) : attribut divin, ce trident inflige des dégâts s’élevant à [Métal + 4 ou Attribut physique + 4] du lanceur. Il perdure pour une durée de 1 scène. Ses pointes retirent 1 dé (ou diminuent de 1 l’Aptitude martiale dans le cas d’un PNJ) sur tous les jets d’attaque et de défense d’un adversaire de son bénéficiaire, nommé au moment de l’invocation de l’arme (+ 1 point par dégât supplémentaire au-delà du premier concernant le bonus de dégât) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Le Miroir de Din Mou (13 points) : attribut divin, ce bouclier octroie une protection physique et spirituelle de 1. Sa simple présence impose à tout adversaire qui affronte son bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou la diminution de 1 à l’Aptitude martiale dans le cas d’un PNJ) à tous leurs jets d’attaque et de défense. L’objet perdure pour 1 scène (+ 3 points par point de protection physique ou spirituelle supplémentaire au-delà du premier) (+ 2 points par dé-néfaste supplémentaire au-delà du premier) (+ 3 points par dé retiré supplémentaire au-delà du premier).

  • Les Cloches de Bouddha (14 points) : le tintement de ces cloches est insupportable pour les créatures surnaturelles, qui subissent pour une durée de 1 scène 1 dé-néfaste et retirent 2 dés (ou diminuent leurs Aptitudes dans le cas de PNJ) sur toutes leurs actions, au sein d’une aire correspondant à la surface d’une pièce de maison – jusqu’à distance extrême. Se boucher les oreilles ne protège pas contre le glas du jugement céleste.


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les effets d’un sort peuvent être renforcés : le coût pour en augmenter les effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "6326ae13063c683c", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Prière céleste", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "LdB p. 327", + "description": "

Géomancie (Bois) : Prière céleste

Sort de Prière céleste pour le discipline de geomancy.

", + "specialityname": "Prière céleste", + "associatedelement": "feu", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "non applicable", + "flashback": "oui", + "components": "

Composantes

  • Mots : prière à la divinité implorée

  • Gestes : danse rituelle

  • État d’esprit : lié à la divinité implorée, concentration

  • Consommables : offrandes à la divinité implorée, encens

  • Objets : statuette ou amulette de la divinité implorée, autel de prière

", + "effects": "

Effets

  • L’Effet « bonus » octroie des dés-fastes ou des dés supplémentaires à lancer lors des épreuves en rapport avec la bénédiction demandée : si le personnage compte examiner une scène de crime, il obtiendra ces bonus sur ses jets d’Enquête ; s’il s’agit de reconstituer un antique rituel, il choisira la Compétence Érudition, etc.

  • L’Effet « durée » permet de décider du temps durant lequel les dieux veillent sur le personnage et favorisent ses actions.

  • L’Effet « Loksyu » traduit une bénédiction s’étendant sur le groupe des PJ, signe qu’ils se trouvent sous la protection du dieu céleste prié.

  • Les bienfaits proposés par une divinité céleste sont accordés à une ou plusieurs personnes : où qu’elles aillent, la bénédiction ou la faveur les suit pour une durée donnée.

", + "examples": "

Exemples

Voici une liste non exhaustive de prières utiles, avec leur coût en Puissance :

  • Faveur de Mansyu (2 points) : la divinité de la sagesse accorde 1 dé-faste gratuit au lanceur sur un prochain jet d’Érudition ou d’Enquête, au choix (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 personnes supplémentaires, chacun recevant le ou les dé(s)-faste(s) sur son prochain jet).

  • Protection des cinq Gardiens célestes (2 points) : la prière s’adresse aux Gardiens célestes afin de leur demander d’attirer la chance. Seuls les fat si s’avèrent normalement capables de la réaliser et elle permet de lancer 1 dé à ajouter au Loksyu (ou ajoute 1 point à la Tin Ji dans le cas d’un PNJ) (+ 2 points par dé supplémentaire au-delà du premier).

  • Appui de Man Coeng (3 points) : le lanceur reçoit une assistance discrète du dieu des lettrés sous sa forme d’entité numérique. Il ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur son prochain jet en rapport avec une recherche sur internet – dont le Taonet (+ 3 points par dé supplémentaire au-delà du premier).

  • • Bénédiction de Gunjam (3 points) : la déesse de la compassion ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude physique ou spirituelle dans le cas d’un PNJ) sur un prochain jet de récupération d’un personnage (qui peut être le lanceur) (+ 3 points par dé supplémentaire au-delà du premier).

  • Faveur de Poujin (3 points) : la divinité de la vérité ultime ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur un prochain jet d’Enquête ou de Renseignement – au choix – du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Sapience de Sannung (3 points) : la divinité de l’herboristerie ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude mentale dans le cas d’un PNJ) sur un prochain jet d’Érudition du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Grâce de Soeng Ngo (3 points) : la déesse lunaire ajoute 1 dé supplémentaire (ou augmente de 1 son Aptitude sociale dans le cas d’un PNJ) sur un prochain jet de Mondanités du lanceur (+ 3 points par dé supplémentaire au-delà du premier).

  • Bénédiction de Gwaan Dai (4 points) : le dieu de la guerre accorde 1 dé-faste gratuit sur tous les jets du lanceur lors de son prochain combat. Les effets de cette prière durent 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires) (+ 3 points par dé pour obtenir des dés supplémentaires à lancer – ou des augmentations de l’Aptitude martiale – en plus des dés-fastes).

  • Souffle de la Dame aux Sept Étoiles de la Grande Ourse (4 points) : la déesse protectrice accorde 1 dé-faste gratuit sur tous les jets du lanceur liés aux Spécialités magiques suivantes : Purification, Punition et Neutralisation (mais un seul à la fois). Les Effets de cette prière durent 1 scène (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 exorcistes supplémentaires).

  • Assentiment de Jilong (4 points) : le défenseur du Ciel accorde 1 dé-faste gratuit sur tous les jets du lanceur, tant qu’il combat ou s’oppose à des jiugwaai dont les actions ou l’existence s’opposent à la Volonté du Ciel – ce qui inclut la plupart des revenants et démons (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).

  • Faveur de Naazaa (5 points) : apprécié de cette divinité martiale, le lanceur ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude martiale dans le cas d’un PNJ) sur tous ses jets d’attaque et de défense tant qu’il utilise un Style d’art martial (+ 3 points par dé supplémentaire au-delà du premier) (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).

  • Assentiment de Ymlo (6 points) : un groupe d’au maximum 4 fat si reçoit l’approbation du dieu des Enfers lui-même et se voit accorder pour chacun de ses membres 1 dé-faste gratuit sur tous ses jets, tant qu’il s’agit d’affronter des démons ou des revenants (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 2 points pour étendre la bénédiction à 8 personnes supplémentaires).

  • Bienfait de Syun Nghung (6 points) : le Roi-singe aux nombreuses formes offre un déguisement presque parfait qui accorde au lanceur 2 dés-fastes gratuits sur tous ses jets pour lesquels cette illusion s’avère utile (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Présent de Soeng Ngo (6 points) : l’éclat de la lune elle-même se voile pour dissimuler les actions nocturnes du lanceur, qui se voit accorder 1 dé-faste sur tous ses jets pour se dissimuler ou être discret – incluant les jets de Filouterie, mais aussi d’autres Compétences éventuelles (comme Prouesse). Les effets de cette prière durent 1 nuit (+ 2 points par dé-faste supplémentaire au-delà du premier).

  • Bénédiction de Tin Hau (7 points) : la déesse tutélaire de Hong Kong permet au lanceur d’ajouter 1 dé supplémentaire sur tous ses jets impliquant l’Aspect Terre (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Terre. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Faveur de Zuk Jung (7 points) : le dieu du feu chevaucheur de dragon ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Feu (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Feu. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Manifestation de Din Mou (7 points) : la déesse des éclairs ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Eau (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Eau. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Imprécation de Deizong (7 points) : ce dieu apporte une endurance et une détermination sans faille, se traduisant par l’ajout de 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Bois (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Bois. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Manifestation de Leoi Gung (7 points) : le dieu du tonnerre ajoute 1 dé supplémentaire à lancer sur tous les jets du lanceur impliquant l’Aspect Métal (ou augmente de 1 son Aptitude spirituelle ou martiale dans le cas d’un PNJ) et accorde 1 dé-faste gratuit sur tous ses jets liés à une Compétence de Magie, une Spécialité de Magie ou un Style d’art martial liés à l’Aspect Métal. Ces bonus sont cumulatifs et durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 2 points par dé-faste supplémentaire au-delà du premier) (+ 3 points par dé supplémentaire au-delà du premier).

  • Prospérité de Coi San (7 points) : cette bénédiction apporte richesse et succès. Le lanceur s’accorde 2 dés-fastes gratuits et ajoute 1 dé supplémentaire à lancer sur son prochain jet de Ressource Matériel (ou augmente sa capacité de Nuisance de 1 cran dans le cas d’un PNJ) (+ 2 points par dé-faste supplémentaire au-delà des 2 premiers) (+ 3 points par dé supplémentaire au-delà du premier).

  • Visions de Neilakfat (7 points) : rares sont ceux qui possèdent le pouvoir de prier le bouddha du futur pour obtenir de lui une vision de leur propre destin. Cela se traduit par l’ajout de 1 dé de la valeur choisie par le lanceur au Loksyu (ou l’ajout de 2 points à la Tin Ji dans le cas d’un PNJ) (+ 7 points par dé supplémentaire au-delà du premier).

  • Soutien de Zung Kwai (9 points) : grâce au soutien de la divinité, le personnage ajoute 1 dé supplémentaire à lancer (ou augmente de 1 son Aptitude mentale, sociale ou spirituelle dans le cas d’un PNJ) sur tous ses jets d’Enquête, Renseignement et Exorcisme (Traque) visant à identifier ou traquer un revenant. Il faut spécifier de quel spectre, fantôme ou mort-vivant il s’agit au départ car on ne peut en traquer qu’un seul à la fois. Les effets de cette prière durent 1 journée – jusqu’à la prochaine aube (+ 3 points par dé supplémentaire au-delà du premier).

  • Sceau des Neuf Cieux, message de l’Impératrice du Ciel (10 points) : pour effectuer cette prière, le fat si doit disposer du véritable nom d’un, de l’un de ses effets personnels ou l’avoir déjà clairement identifié. Il obtient de la messagère de l’Impératrice du Ciel l’ascendant sur la créature ciblée : l’ajout de 2 dés supplémentaires à lancer (ou l’augmentation de 2 de ses Aptitudes spirituelles ou sociales dans le cas d’un PNJ) et 2 dés-fastes gratuits sur son prochain jet de Domination ou de Nécromancie visant à la contrôler ou de toute autre Compétence permettant de s’en octroyer les services durablement, comme Mondanités (Négociation) par exemple.

  • Mandat de l’Empereur de Jade (12 points) : pour effectuer cette prière, le fat si doit disposer du véritable nom d’un jiugwaai, de l’un de ses effets personnels ou l’avoir déjà clairement identifié. Il obtient de l’Empereur de Jade lui-même l’assentiment pour le bannir : l’ajout de 2 dés supplémentaires à lancer (ou l’augmentation de 2 de ses Aptitudes spirituelles ou sociales dans le cas d’un PNJ) et 2 dés-fastes gratuits sur tous ses jets pour affronter, vaincre ou utiliser des Spécialités magiques telles qu’Invocation, Neutralisation ou Punition à l’encontre de la créature ciblée. Les effets de cette prière durent 1 scène. Il est possible de recevoir cette bénédiction et d’en utiliser les effets lors d’une scène ultérieure, à la discrétion du MJ (+ 4 points pour étendre la bénédiction à 4 combattants supplémentaires).


Chaque exemple d’Effet ci-dessus est indépendant et nécessite son propre sort. Cependant, les Effets d’un sort peuvent être renforcés : le coût pour en augmenter les Effets est précisé entre parenthèses.


", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "72b29fc6b1460a6e", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Emerson «Wu» Jiu", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/monk.png", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.adc8c6091e217308", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-freddie-tan-74f0586f55e860cc.json b/sample_data/fvtt-Actor-freddie-tan-74f0586f55e860cc.json new file mode 100644 index 0000000..b00deee --- /dev/null +++ b/sample_data/fvtt-Actor-freddie-tan-74f0586f55e860cc.json @@ -0,0 +1,1160 @@ +{ + "name": "Freddie Tan", + "type": "character", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/freddie.png", + "system": { + "concept": "Spécialiste du Hei (Comptable)", + "guardian": 5, + "initiative": 1, + "anti_initiative": 24, + "description": "

Issu d’une famille modeste, rien ne prédis­

\n

posait Freddie à devenir fat si. Enfant à la santé

\n

fragile et élève discipliné, il avait tout du gamin

\n

appelé à se faire régulièrement malmener par

\n

les brutes de son école. Raison pour laquelle ses

\n

parents le poussèrent à suivre des cours d’arts

\n

martiaux dans une institution traditionnelle.

\n

En grandissant, Freddie s’épanouit grâce à

\n

cet enseignement – la pratique intense du kungfu le transformant physiquement et spirituelle­

\n

ment. Pour autant, cette passion ne le détourna

\n

pas de ses études de comptabilité et il sut conju­

\n

guer ces deux voies en allant même jusqu’à s’ap­

\n

puyer sur l’une pour mieux briller dans l’autre,

\n

démontrant ainsi un esprit adaptable et inventif.

\n

Autant dire que les rares camarades d’école qui

\n

s’en prirent à lui le regrettèrent bien vite…

\n

S’il dispose désormais d’un physique impres­

\n

sionnant, Freddie est loin d’être la brute que

\n

son apparence pourrait laisser imaginer. S’il ne

\n

rechigne pas à se battre quand il le faut, il consi­

\n

dère avant tout l’épreuve et le défi représentés

\n

par l’affrontement comme un moyen de se dé­

\n

passer lui-même. Son Kung-fu de l’Invulnérabi­

\n

lité lui octroie une capacité certaine à encaisser

\n

aussi bien qu’à distribuer les coups mais, avant

\n

de déployer ses techniques, il cherche tou­

\n

jours à parlementer pour éviter toute violence.

\n

Cependant, gare à celui qui prendrait ce désir de

\n

paix pour de la faiblesse…

\n

Freddie découvrit la facette occulte de Hong

\n

Kong suite à sa propre enquête sur la mort sus­

\n

pecte de son sifu – David Cheng. Ce maître en

\n

kung-fu avait en effet péri d’une façon étrange,

\n

mais la police conclut à un banal accident – une

\n

explication dont ne pouvait se contenter son

\n

disciple. Une fat si nommée Josie Song sut dé­

\n

celer son potentiel alors que ses investigations

\n

le rapprochaient dangereusement de créatures

\n

malintentionnées et, afin qu’il puisse se proté­

\n

ger lui-même, elle accepta de lui enseigner la

\n

magie. Après avoir retrouvé et éliminé le démon

\n

responsable de la mort de David Cheng, Freddie

\n

décida de continuer à fréquenter ce monde se­

\n

cret qui attisait sa curiosité.

\n

Le chapelet qu’il porte au bras constitue son

\n

sanhei : un talisman de protection de la couleur

\n

du sang, dans lequel se trouve sertie une pierre

\n

dont la phosphorescence ne s’éteint jamais.

\n

Josie le lui a légué au moment de prendre sa

\n

retraite, l’adoubant comme son successeur dési­

\n

gné au sein de la communauté des fat si.

\n

Maîtrisant la magie du Cinabre interne,

\n

Freddie utilise son hei avant tout pour augmen­

\n

ter ses capacités de persuasion et de charme

\n

lorsqu’il pratique son métier de conseiller fi­

\n

nancier indépendant. Cette utilisation un peu

\n

trop terre à terre lui vaut d’ailleurs certains

\n

reproches de la part de son ancienne mentore...

\n

mais c’est ainsi qu’il s’est constitué un porte­

\n

feuille de clients le mettant à l’abri du besoin.

\n

Bien sûr, ses talents de combattant bénéficient

\n

grandement de sa connaissance pointue de

\n

l’énergie interne – notamment quand il pratique

\n

le Kung-fu de l’Invulnérabilité en déployant ses

\n

techniques aussi bien martiales que mystiques.

\n

En tant que fat si, Freddie apprécie d’aider

\n

ses compagnons d’armes. Grâce à son métier,

\n

il dispose de revenus confortables ainsi que de

\n

contacts dans diverses banques et entreprises de

\n

Hong Kong. Lorsqu’il accomplit sa tâche d’exor­

\n

ciste, l’argent n’est en conséquence jamais sa

\n

motivation mais bien un moyen comme un autre

\n

de parvenir à ses fins. De plus, il peut accepter

\n

des missions qui correspondent à ses valeurs et

\n

il s’implique d’ailleurs toujours personnellement

\n

dans ses enquêtes – trop même, selon Josie.

\n

C’est cette vision commune du surnaturel et

\n

l’amour qu’il porte à Hong Kong et à ses habi­

\n

tants qui l’ont amené à rejoindre un groupe de

\n

fat si rencontrés au fil de précédentes enquêtes.

\n

Cette fine équipe se retrouve régulièrement au

\n

restaurant Chez Lau tenu par Josie et l’un de ses

\n

vieux amis, Eddy Lau.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 2 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 2 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Comptabilité", + "value": 2 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 2 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 3 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 2 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 2 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 2 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "Mains nues", + "value": 3 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Finance, Industrie, Artistes martiaux", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Artistes martiaux", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "Éclat de jade" + }, + "two": { + "value": "Barre protéinée" + }, + "three": { + "value": "Pilule de cinabre" + }, + "four": { + "value": "Granules d'homéopathie" + }, + "five": { + "value": "Bougie" + }, + "six": { + "value": "Fiole de sel" + }, + "seven": { + "value": "Mélange d'herbes" + }, + "eight": { + "value": "Bâton d'encens" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Fiole d'alcool" + } + }, + "magics": { + "internalcinnabar": { + "visible": true, + "value": 3, + "speciality": { + "essence": { + "check": true + }, + "mind": { + "check": true + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": true + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": false, + "value": 0, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": false, + "value": 0, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 4, + "max": 4 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 5, + "max": 5, + "min": 0 + }, + "zing": { + "value": 6, + "max": 6, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 4, + "max": 4, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 2, + "max": 2, + "min": 0 + }, + "zing": { + "value": 2, + "max": 2, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Le Chapelet de l'Infini (chapelet bouddhiste)", + "type": "sanhei", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/chapelet_infini.png", + "system": { + "reference": "Sanhei de Freddie Tan", + "description": "

Le Chapelet de l'Infini (chapelet bouddhiste) :

\n

• Chaque fois que Freddie récupère des points de Zing et/ou de San, il en récupère 1 de plus.

\n

• Contre la dépense de 1 point de Hei Yin supplémentaire, il obtient autant de dés-fastes que sa valeur de Feu (3) sur tout jet de Cinabre interne (Essence).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "Y8AZOkLs7Ke04hfu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Kung-fu de l'Invulnérabilité", + "type": "kungfu", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/kung-fu/invulnerabilite.png", + "system": { + "reference": "Style de Freddie Tan", + "description": "

Kung-fu de l'Invulnérabilité

\n

Yang ou Yin / Terre / Kung-fu (Mains Nues)

\n

Protection de 2

\n

La chemise de fer

\n

La main de fer

\n

La volonté de fer

", + "orientation": "yang", + "aspect": "earth", + "skill": "kungfu", + "speciality": "Mains nues", + "style": "Yang ou Yin / Terre / Kung-fu (Mains Nues)", + "techniques": { + "technique1": { + "check": false, + "name": "La chemise de fer", + "activation": "dice", + "technique": "

La chemise de fer

Technique de protection du Kung-fu de l'Invulnérabilité.

" + }, + "technique2": { + "check": false, + "name": "La main de fer", + "activation": "action-attack-defense", + "technique": "

La main de fer

Technique offensive du Kung-fu de l'Invulnérabilité.

" + }, + "technique3": { + "check": false, + "name": "La volonté de fer", + "activation": "damage-inflicted", + "technique": "

La volonté de fer

Technique de volonté du Kung-fu de l'Invulnérabilité.

" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "G5mXYDoCyJ0dsQZv", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Lunettes de vue et costume sur mesure rehaussés d'or et de jade", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/lunettes.png", + "system": { + "reference": "", + "description": "

Lunettes de vue et costume sur mesure rehaussés d'or et de jade. Ajoute 1 dé-faste aux jets de Mondanités.

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "t9DHIbr8EW4gsLWm", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Smartphone dernière génération", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/smartphone.png", + "system": { + "reference": "", + "description": "

Smartphone dernière génération

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "valJXuTGGQN06znJ", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Petit flacon de parfum à la mode", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/parfum.png", + "system": { + "reference": "", + "description": "

Petit flacon de parfum à la mode

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "Vyb7Whzy1z5yzoh9", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Ordinateur portable avec logiciels de comptabilité et accès au Taonet", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/laptop.png", + "system": { + "reference": "", + "description": "

Ordinateur portable avec logiciels de comptabilité et accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "W6uaY31VuCSetszi", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Voiture de type SUV", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/auto.png", + "system": { + "reference": "", + "description": "

Voiture de type SUV

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "e7jD4SZw8dH8gyzx", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement agréable dans un quartier commerçant", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", + "system": { + "reference": "", + "description": "

Appartement agréable dans un quartier commerçant

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "9wc3h3l8bKRogDlD", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cinabre Interne (Métal) : Essence", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/METAL.gif", + "system": { + "reference": "", + "description": "

Cinabre Interne (Métal) : Essence

Le sort d'Essence du Cinabre Interne permet de manipuler l'énergie vitale.

", + "specialityname": "Essence", + "associatedelement": "metal", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "internalcinnabar", + "hei": "" + }, + "_id": "lLWh4oHNXFbBXQSS", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cinabre Interne (Métal) : Esprit", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/METAL.gif", + "system": { + "reference": "", + "description": "

Cinabre Interne (Métal) : Esprit

Le sort d'Esprit du Cinabre Interne permet d'affecter les pensées et la perception.

", + "specialityname": "Esprit", + "associatedelement": "metal", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "internalcinnabar", + "hei": "" + }, + "_id": "bcQuW5SfzQcClpdu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Cinabre Interne (Métal) : Aura", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/METAL.gif", + "system": { + "reference": "", + "description": "

Cinabre Interne (Métal) : Aura

Le sort d'Aura du Cinabre Interne permet de projeter son énergie.

", + "specialityname": "Aura", + "associatedelement": "metal", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "internalcinnabar", + "hei": "" + }, + "_id": "A5nXrr2uSdja2GTM", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Freddie Tan", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/freddie.png", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.74f0586f55e860cc", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-lily-chiu-YRIuWZJowkm0gJuc.json b/sample_data/fvtt-Actor-lily-chiu-YRIuWZJowkm0gJuc.json new file mode 100644 index 0000000..af8d2e0 --- /dev/null +++ b/sample_data/fvtt-Actor-lily-chiu-YRIuWZJowkm0gJuc.json @@ -0,0 +1,1252 @@ +{ + "name": "Lily Chiu", + "type": "character", + "img": "", + "system": { + "concept": "Sorcière repentie", + "guardian": 4, + "initiative": 1, + "anti_initiative": 24, + "description": "

Née d’un père chirurgien et d’une mère avo­

\n

cate, Lily grandit dans le quartier huppé des

\n

Mid-Levels sur l’île de Hong Kong, sous la férule

\n

bienveillante des employés de sa famille. Toute

\n

sa vie, elle se passionna pour les mystères.

\n

Tandis qu’elle poursuivait avec brio des études

\n

de botanique, elle acquit par hasard un ancien

\n

et précieux tome traitant d’alchimie. Mais il ne

\n

s’agissait pas d’un livre pour les profanes – bien

\n

au contraire ! – et ce premier contact avec la

\n

magie véritable entraîna la jeune femme dans

\n

une découverte progressive du monde occulte.

\n

Afin d’assouvir sa soif de connaissances

\n

secrètes, Lily fréquenta des spécialistes du

\n

surnaturel liés au gotha hongkongais. Dans ce

\n

milieu, elle croisa de nombreux charlatans qui

\n

ne visaient qu’à soulager les nantis de quelques

\n

billets, mais elle se fit aussi remarquer par de

\n

véritables occultistes qui décelèrent en elle un

\n

potentiel intéressant. Malheureusement, elle

\n

choisit alors de s’associer avec Jason «  Black

\n

Jack » Wai. Ce sorcier redoutable était alors le

\n

prestataire privilégié d’une triade – celle des

\n

Trois Lotus – pour laquelle il usait de ses talents

\n

mystiques. C’est auprès de lui que Lily s’initia à

\n

la véritable magie, en tant qu’apprentie.

\n

Pendant des années, Lily vécut sous la coupe

\n

de son maître. Elle côtoyait la pègre mais aussi

\n

les milieux de la finance et de la politique. Un

\n

jour, Jason captura un fat si qui cherchait à l’ar­

\n

rêter : son adversaire de toujours, Henry Wong.

\n

À force de voir Jason maltraiter ses partenaires,

\n

ses prisonniers et ses serviteurs, Lily se trou­

\n

vait à ce moment-là en plein doute. Elle n’était

\n

pas certaine d’aimer la sorcière qu’elle devenait

\n

mais elle ne pensait pas non plus pouvoir faire

\n

marche arrière. Durant la captivité d’Henry

\n

Wong – et alors que Jason le torturait pour se

\n

venger –, Lily s’occupa du fat si et discuta lon­

\n

guement avec lui. Il parvint à la convaincre qu’il

\n

existait une autre façon de se servir de la magie.

\n

Lily finit par aider Henry à s’évader mais

\n

Jason les rattrapa tous les deux. Lors d’un com­

\n

bat mémorable, Henry et Jason s’affrontèrent.

\n

Indécise au début, Lily se décida à la fin du com­

\n

bat – alors que Jason avait le dessus – à aider

\n

Henry pour qu’ensemble, ils mettent un terme

\n

aux activités du sorcier. Après sa défaite, celui

\n

qui avait été son maître se vit privé d’une grande

\n

partie de ses pouvoirs et arrêté par l’OCTB pour

\n

ses méfaits commis avec les triades. Lily aida

\n

les policiers à accumuler des preuves mais n’osa

\n

cependant pas témoigner directement, de peur

\n

que la triade des Trois Lotus ne s’en prenne à

\n

elle ou à sa famille par la suite. Cependant, la

\n

société noire abandonna le sorcier maléfique à

\n

la seconde où elle comprit qu’il avait perdu l’es­

\n

sentiel de ses forces surnaturelles.

\n

Très diminué par sa captivité, les mauvais

\n

traitements reçus et le combat difficile mené,

\n

Henry décida de prendre sa retraite. Son der­

\n

nier acte en tant que fat si fut de léguer à Lily

\n

son sanhei, non sans lui arracher la promesse

\n

qu’elle ferait désormais tout son possible pour

\n

se racheter de ses années de mauvais comporte­

\n

ment. La jeune femme jura de devenir à son tour

\n

une fat si qui protège Hong Kong des créatures

\n

étranges mais aussi des sorciers maléfiques, tels

\n

que son ancien sifu.

\n

Aujourd’hui, Lily a encore un peu de mal

\n

à se faire accepter de la communauté des fat

\n

si – bien que la possession même d’un sanhei

\n

prouve qu’elle a été choisie par le Ciel. Elle se

\n

rend souvent au restaurant Chez Lau, largement

\n

fréquenté par d’autres exorcistes, dans l’espoir

\n

d’apporter son aide et de faire ainsi ses preuves.

\n

Outre ses connaissances occultes, elle dispose

\n

encore de nombreux contacts dans la haute so­

\n

ciété – dont certains lui doivent quelques ser­

\n

vices. Elle est également passée maîtresse dans

\n

l’art de déchiffrer les codes et de résoudre les

\n

énigmes.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 4 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 2 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 1 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "Énigme", + "value": 1 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Linguistique", + "value": 3 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "Baratin", + "value": 1 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "Gotha", + "value": 2 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 1 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "Botanique", + "value": 1 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 1 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 0 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune", + "value": 3, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Gotha, Triades, Finance", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Gotha, Politiciens", + "value": 2, + "debt": false + } + }, + "component": { + "one": { + "value": "Amanite" + }, + "two": { + "value": "Fiole de soufre" + }, + "three": { + "value": "Venin de serpent" + }, + "four": { + "value": "Œuf de poule" + }, + "five": { + "value": "Bâton d'encens" + }, + "six": { + "value": "Talisman" + }, + "seven": { + "value": "Poudre d'os" + }, + "eight": { + "value": "Bâton d'encens" + }, + "nine": { + "value": "Argent funéraire" + }, + "zero": { + "value": "Fiole vide" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": true, + "value": 2, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": true + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": true, + "value": 2, + "speciality": { + "curse": { + "check": true + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": true + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": true + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 2, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": true + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": false, + "value": 0, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 5, + "max": 5 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 5, + "max": 5, + "min": 0 + }, + "zing": { + "value": 5, + "max": 5, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 2, + "max": 2, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 2, + "max": 2, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Cinq Tempêtes (sceau en jade)", + "type": "sanhei", + "img": "", + "system": { + "reference": "Sanhei de Lily Chiu", + "description": "

Cinq Tempêtes (sceau en jade) :

\n

• Gagne autant de dés-fastes que valeur de Feu (3) lorsque jet de Mondanités (Diplomatie) face à créature surnaturelle.

\n

• Gagne autant de dés-fastes que valeur de Terre (4) lorsque jet de Filouterie (Baratin) face à créature surnaturelle.

\n

• Réduit la difficulté de 1 sur tous ses jets de Maîtrise de la Voie (Malédiction).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "a1B2c3D4e5F6g7H8", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Téléphone portable dernier cri avec accès au Taonet", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Téléphone portable dernier cri avec accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "i9J8k7L6m5N4b3V2", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Pilon, mortier et fioles diverses", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Pilon, mortier et fioles diverses

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "cX9y8Z7w6V5u4T3s", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Voiture élégante et citadine récente", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Voiture élégante et citadine récente

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "r2Q1p0O9i8U7y6T5", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement spacieux dans les Mid-Levels", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Appartement spacieux dans les Mid-Levels

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "g4F3d2S1a0Z9x8W7", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Pistolet dissimulé et un chargeur rempli de balles en argent gravées d'idéogrammes rituels (dégâts 2)", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Pistolet dissimulé et un chargeur rempli de balles en argent gravées d'idéogrammes rituels (dégâts 2)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "v6B5n4M3l2K1j0H9", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Figurines de malédiction", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Figurines de malédiction

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "g8F7e6D5c4B3a2Z1", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Talisman, papier de qualité et nécessaire de calligraphie", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Talisman, papier de qualité et nécessaire de calligraphie

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "y0X9w8V7u6T5s4R3", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Formulaires de décret céleste", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Formulaires de décret céleste

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "q2P1o0I9u8Y7t6R5", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Poisons", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 310", + "description": "

Alchimie (Eau)

L'Alchimie est l'art de manipuler la matière par des procédés occultes. Le fat si est capable de transformer un matériau en un autre, de créer des substances aux propriétés magiques, d'altérer les propriétés physiques des objets ou de confectionner des poisons et des remèdes.

Poisons (Métal)

Le PJ est capable de confectionner des poisons et des venins aux effets variés : paralysie, sommeil, douleur, ou même la mort. Il sait également créer des antidotes.

", + "specialityname": "Poisons", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : incantations alchimiques

  • Gestes : manipulation des ingrédients

  • État d'esprit : concentration, précision

  • Consommables : ingrédients du poison

  • Objets : pilon, mortier, fioles

", + "effects": "

Effets

  • Les poisons infligent des dégâts ou des effets de statut à la cible.

  • La puissance du poison dépend du nombre de dés de Puissance investis.

", + "examples": "

Exemples

Voici une liste non exhaustive de poisons utiles, avec leur coût en Puissance :

  • Venin paralysant (2 points) : la cible est paralysée pour 1 tour.

  • Poison mortel (5 points) : inflige 3 dégâts par tour.

", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "e4R3t2Y1u0I9o8P7", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Maîtrise de la Voie (Terre) : Malédiction", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 320", + "description": "

Maîtrise de la Voie (Terre)

La Maîtrise de la Voie est l'art de manipuler le Hei, l'énergie vitale qui traverse tous les êtres. Le fat si peut bénir ou maudire, influencer les esprits, contrôler les corps et même commander aux morts.

Malédiction (Métal)

Le PJ est capable de lancer des malédictions sur ses ennemis, leur infligeant malchance, souffrance ou affaiblissement.

", + "specialityname": "Malédiction", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "10 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : formules de malédiction

  • Gestes : tracer des symboles dans l'air

  • État d'esprit : colère, détermination

  • Consommables : figurines de malédiction, encens

  • Objets : talisman, papier de calligraphie

", + "effects": "

Effets

  • La malédiction inflige des dés-néfastes à la cible sur ses actions.

  • La puissance de la malédiction dépend du nombre de dés de Puissance investis.

", + "examples": "

Exemples

Voici une liste non exhaustive de malédictions utiles, avec leur coût en Puissance :

  • Mauvais œil (2 points) : la cible subit 2 dés-néfastes sur son prochain jet.

", + "notes": "

Vos notes…

", + "discipline": "masteryoftheway", + "hei": "" + }, + "_id": "m5N4b3V2c1X9z8W7", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Maîtrise de la Voie (Terre) : Nécromancie", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 321", + "description": "

Maîtrise de la Voie (Terre)

La Maîtrise de la Voie est l'art de manipuler le Hei, l'énergie vitale qui traverse tous les êtres.

Nécromancie (Eau)

Le PJ est capable de communiquer avec les morts, de les interroger et même de les commander. Il peut également apaiser les esprits errants.

", + "specialityname": "Nécromancie", + "associatedelement": "water", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prières aux morts

  • Gestes : offrandes funéraires

  • État d'esprit : recueillement

  • Consommables : argent funéraire, encens

  • Objets : talisman

", + "effects": "

Effets

  • Le PJ peut interroger un mort ou un esprit.

  • La clarté des réponses dépend du nombre de dés de Puissance investis.

", + "examples": "

Exemples

Voici une liste non exhaustive de sorts nécromantiques utiles, avec leur coût en Puissance :

  • Appel du défunt (3 points) : le PJ peut interroger un mort récent pendant quelques minutes.

", + "notes": "

Vos notes…

", + "discipline": "masteryoftheway", + "hei": "" + }, + "_id": "q6A5s4D3f2G1h0J9", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Maîtrise de la Voie (Terre) : Domination", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 320", + "description": "

Maîtrise de la Voie (Terre)

La Maîtrise de la Voie est l'art de manipuler le Hei, l'énergie vitale qui traverse tous les êtres.

Domination (Feu)

Le PJ est capable de dominer la volonté d'autrui, de contrôler ses actions et de lui imposer sa volonté.

", + "specialityname": "Domination", + "associatedelement": "fire", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 minute", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : ordres impérieux

  • Gestes : contact visuel, gestes de commandement

  • État d'esprit : autorité, volonté de fer

  • Consommables : talisman

  • Objets : aucun

", + "effects": "

Effets

  • La cible obéit à un ordre simple du PJ.

  • La durée et la complexité de l'ordre dépendent du nombre de dés de Puissance investis.

", + "examples": "

Exemples

Voici une liste non exhaustive de sorts de domination utiles, avec leur coût en Puissance :

  • Ordre simple (3 points) : la cible obéit à un ordre simple pendant 1 tour.

", + "notes": "

Vos notes…

", + "discipline": "masteryoftheway", + "hei": "" + }, + "_id": "k8L7j6H5g4F3d2S1", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Domination", + "type": "spell", + "img": "", + "system": { + "reference": "LdB p. 318", + "description": "

Exorcisme (Feu)

L'Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes – mais aussi d'interagir avec elles.

Domination (Feu)

Le PJ est capable de soumettre les créatures surnaturelles par sa volonté, les forçant à obéir ou à fuir.

", + "specialityname": "Domination", + "associatedelement": "fire", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 minute", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : paroles de pouvoir, prières à Zung Kwai

  • Gestes : tracer des symboles de soumission

  • État d'esprit : autorité spirituelle

  • Consommables : talisman, encens

  • Objets : sceau en jade, bâton d'encens

", + "effects": "

Effets

  • La créature surnaturelle est soumise à la volonté du PJ.

  • La durée et la puissance de la domination dépendent du nombre de dés de Puissance investis.

", + "examples": "

Exemples

Voici une liste non exhaustive de sorts de domination utiles, avec leur coût en Puissance :

  • Parole de soumission (4 points) : un jiugwaai de puissance modérée est contraint d'obéir pendant 1 scène.

", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "a0Z9x8W7v6U5t4R3", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Lily Chiu", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.YRIuWZJowkm0gJuc", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-maggie-jan-mJ3kL5pR7tX9vB2n.json b/sample_data/fvtt-Actor-maggie-jan-mJ3kL5pR7tX9vB2n.json new file mode 100644 index 0000000..039cc1a --- /dev/null +++ b/sample_data/fvtt-Actor-maggie-jan-mJ3kL5pR7tX9vB2n.json @@ -0,0 +1,1118 @@ +{ + "name": "Maggie Jan", + "type": "character", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/characters/maggie.png", + "system": { + "concept": "Sentinelle occulte", + "guardian": 5, + "initiative": 1, + "anti_initiative": 24, + "description": "

Maggie Jan est une fat si particulière – une

\n

sentinelle occulte, la gardienne des rouleaux de

\n

forge du royaume de Yue.

\n

Métisse anglo-chinoise née d’un père officier

\n

de la Marine de sa Très Grâcieuse Majesté et

\n

d’une mère chinoise issue des quartiers pauvres

\n

de Hong Kong ayant accédé à un poste de tra­

\n

ductrice grâce à son mari, Maggie porte ainsi en

\n

elle une part de l’identité de la ville de par ce

\n

double héritage. Cependant, son père disparut

\n

en mer alors qu’elle était encore très jeune et

\n

elle grandit avec sa mère dans le quartier de

\n

Sham Shui Po, où elles s’installèrent après ce

\n

tragique événement.

\n

Parfois délaissée par sa mère qui travaillait

\n

énormément pour subvenir à leurs besoins,

\n

Maggie abandonna très tôt le parcours scolaire

\n

classique et se forma à la mécanique dans un ga­

\n

rage du quartier – dont elle devint la mascotte

\n

en raison de sa passion pour la vitesse et parti­

\n

culièrement pour la moto.

\n

Ses fréquentations de l’époque regroupaient

\n

de jeunes adeptes de courses motorisées, me­

\n

nées de façon illégale dans les rues de Hong

\n

Kong la nuit. C’est lors de l’une de ces compéti­

\n

tions que certains de ses amis interférèrent avec

\n

le business d’une triade, en provoquant un ca­

\n

rambolage impliquant un véhicule transportant

\n

de la drogue. Bien que cet événement ait été le

\n

fruit de la malchance, une partie de la cargaison

\n

se volatilisa dans la pagaille et les participants

\n

à la course se virent tenus pour responsables

\n

par l’organisation criminelle – et donc traqués

\n

et éliminés un par un.

\n

Maggie n’échappa que de justesse aux re­

\n

présailles de la société noire en trouvant refuge

\n

dans une vielle aciérie désaffectée. Blessée au

\n

cours de sa fuite mais peu disposée à se lais­

\n

ser attraper, elle utilisa ses connaissances en

\n

mécanique pour défendre sa vie, mettant à pro­

\n

fit les ressources à sa disposition pour tenter de

\n

semer ses poursuivants. Cela n’aurait pourtant

\n

pas suffi si un vieillard – qui se révéla par la

\n

suite être un esprit ancestral – n’était finale­

\n

ment intervenu pour la sauver en usant de ses

\n

talents de maître du sabre.

\n

Devinant le potentiel de Maggie, le vieux

\n

maître la prit sous son aile et, à l’aide des an­

\n

tiques rouleaux contenant les secrets de forge

\n

du royaume de Yue, ils façonnèrent ensemble

\n

la première lame de cette tradition sacrée de­

\n

puis presque deux millénaires. Ayant enfin pu

\n

transmettre son savoir et former sa remplaçante

\n

en tant que gardienne des secrets de ces épées,

\n

l’esprit se libéra de ce qui le retenait sur Terre

\n

et disparut, mais non sans avoir au préalable

\n

imprégné l’arme d’une partie de son âme – ce

\n

qui la transforma en sanhei, son dernier présent

\n

à sa protégée.

\n

Depuis, Maggie se sert de son savoir pour

\n

réaliser divers ouvrages dont la vente lui permet

\n

de subvenir à ses besoins. Forte de sa lame et

\n

des connaissances du monde occulte acquises

\n

auprès de son maître, elle s’efforce de venir en

\n

aide aux habitants de Hong Kong confrontés à

\n

des menaces surnaturelles – telle une mou hap

\n

des temps modernes.

\n

Maggie dispose de nombreux contacts parmi

\n

les commerçants qui vendent des produits oc­

\n

cultes et elle loue parfois ses services d’experte

\n

à d’autres fat si, mais n’a pas pour autant perdu

\n

son goût pour la vitesse et les sports mécaniques.

\n

Il arrive à Maggie de prendre ses repas au

\n

restaurant Chez Lau, qui se trouve fréquenté par

\n

de nombreux autres fat si. Cet établissement est

\n

tenu par le père d’un de ses amis – Billy Lau –

\n

avec qui elle partage la passion de la course.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 2 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 3 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "Forge", + "value": 2 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 1 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Mythologie, Histoire", + "value": 2 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "Discrétion", + "value": 1 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "Moto", + "value": 2 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 0 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "Mécanique", + "value": 3 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "Épée", + "value": 3 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune, Commerces", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "La Rue, Commerces", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "", + "value": 0, + "debt": false + } + }, + "component": { + "one": { + "value": "Poignée de grains de riz" + }, + "two": { + "value": "Fiole de sel" + }, + "three": { + "value": "Fiole de sang" + }, + "four": { + "value": "Pilules de cinabre" + }, + "five": { + "value": "Décoction d'herbes" + }, + "six": { + "value": "Œuf" + }, + "seven": { + "value": "Talisman" + }, + "eight": { + "value": "Talisman" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 2, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": true + }, + "punishment": { + "check": false + }, + "domination": { + "check": true + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": false, + "value": 0, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 3, + "max": 3 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 5, + "max": 5, + "min": 0 + }, + "zing": { + "value": 7, + "max": 7, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 4, + "max": 4, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 2, + "max": 2, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "La Dernière Épée de Yue (épée traditionnelle sacrée)", + "type": "sanhei", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/regard_abyssal.png", + "system": { + "reference": "Sanhei de Maggie Jan", + "description": "

La Dernière Épée de Yue (épée traditionnelle sacrée) :

\n

• Affecte les créatures surnaturelles même intangibles.

\n

• Contre la dépense de 1 point de Hei Yin, ajoute la valeur de son Eau (3) aux dégâts.

\n

• Ajoute 1 dé supplémentaire à lancer à tous ses jets de Kung-fu (Épée).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "Y8AZOkLs7Ke04hfu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "L'Épée du Faîte suprême", + "type": "kungfu", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/kung-fu/pistolet.png", + "system": { + "reference": "Style de Maggie Jan", + "description": "

L'Épée du Faîte suprême

\n

Yin / Eau / Kung-fu (Épée)

\n

+ 1 dé en défense / 2 dés-néfastes si on tente de le désarmer

\n

Le souffle de Wudang

", + "orientation": "yin", + "aspect": "eau", + "skill": "kungfu", + "speciality": "Épée", + "style": "", + "techniques": { + "technique1": { + "check": false, + "name": "Le souffle de Wudang", + "activation": "action-attack-defense", + "technique": "

Le souffle de Wudang

Invoquant la puissance du mont Wudang, la pratiquante synchronise son souffle avec ses mouvements d'épée. Elle peut annuler 1 dé-néfaste sur son action de défense et gagne +1 dé supplémentaire sur son action d'attaque au corps-à-corps pour un round.

" + }, + "technique2": { + "check": false, + "name": "", + "activation": "", + "technique": "" + }, + "technique3": { + "check": false, + "name": "", + "activation": "", + "technique": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "G5mXYDoCyJ0dsQZv", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Combinaison de moto et casque à ses couleurs (rouge et or)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/polo-shirt.png", + "system": { + "reference": "", + "description": "

Combinaison de moto et casque à ses couleurs (rouge et or)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "t9DHIbr8EW4gsLWm", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Moto de compétition très haut de gamme de marque japonaise, avec modifications personnelles", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_transports_hong_kong/scooter.png", + "system": { + "reference": "", + "description": "

Moto de compétition très haut de gamme de marque japonaise, avec modifications personnelles

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "w8LXSYQ1eIygtlKV", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Téléphone avec un accès au Taonet", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/smartphone.png", + "system": { + "reference": "", + "description": "

Téléphone avec un accès au Taonet

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "valJXuTGGQN06znJ", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement modeste à l'arrière de la boutique où elle pratique son artisanat, à Sham Shui Po", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", + "system": { + "reference": "", + "description": "

Appartement modeste à l'arrière de la boutique où elle pratique son artisanat, à Sham Shui Po

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "9wc3h3l8bKRogDlD", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Outillage de mécanicienne (professionnel)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/pistol-gun.png", + "system": { + "reference": "", + "description": "

Outillage de mécanicienne (professionnel)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "W6uaY31VuCSetszi", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Matériel de forge (artisanal)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/pistol-gun.png", + "system": { + "reference": "", + "description": "

Matériel de forge (artisanal)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "Vyb7Whzy1z5yzoh9", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Protection", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "LdB p. 316", + "description": "

Exorcisme (Feu)

L’Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d’interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s’en protéger et même de les soumettre.

Il s’agit d’une magie qui fait un grand usage d’objets et d’armes. Un exorciste est souvent équipé d’une épée de saule et de talismans de protection, mais aussi de divers outils facilitant sa traque et son combat – boussole à esprits ou GPS à fantômes, entre autres.

Les sorts d’Exorcisme ne sont en général d’aucune utilité face à des mortels ou des créatures d’essence céleste.

Protection (Métal)

Le PJ est capable de canaliser son énergie Yang pour créer une barrière protectrice contre les attaques des créatures surnaturelles. En plaçant un talisman sur lui-même ou sur un allié, il forme une armure spirituelle qui absorbe une partie des dégâts infligés par les jiugwaai.

Cette protection s'avère également efficace contre les influences néfastes, les possessions et les malédictions lancées par des entités démoniaques. Plus l'exorciste maîtrise cette spécialité, plus sa protection devient résistante et durable.

", + "specialityname": "Protection", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière aux gardiens célestes, mantra de protection

  • Gestes : tracer des symboles protecteurs dans l'air, placer des talismans aux points cardinaux

  • État d'esprit : détermination, foi inébranlable

  • Consommables : cendres d'encens, eau bénite, talisman de papier vierge, poudre de jade

  • Objets : épée de bois de saule, miroir de bronze, clochette, sceau taoïste

", + "effects": "

Effets

  • L'Effet « Trois Trésors » indique la réduction des dégâts subis par la cible protégée face aux attaques des créatures d'essence Yin.

  • L'Effet « bonus » octroie des dés supplémentaires à lancer pour résister aux tentatives de possession ou d'influence mentale de la part des jiugwaai.

  • L'Effet « durée » définit le temps durant lequel la protection reste active.

", + "examples": "

Exemples

Voici une liste non exhaustive de protections utiles, avec leur coût en Puissance :

  • Armure de papier (2 points) : le PJ inscrit un mantra sur un talisman qu'il porte sur lui. Contre la prochaine attaque d'un jiugwaai, il réduit les dégâts subis de 2 points (+ 2 points par point de réduction supplémentaire au-delà du premier) (+ 2 points pour prolonger l'effet pour une scène).

  • Cercle de protection (3 points) : le PJ trace un cercle à l'aide de poudre de jade ou de cendres d'encens. Les jiugwaai ne peuvent pénétrer dans le cercle à moins de réussir un jet de Puissance opposé. Le cercle persiste pour une scène (+ 3 points par point de Puissance supplémentaire pour renforcer la barrière).

", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "lLWh4oHNXFbBXQSS", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Domination", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "LdB p. 316", + "description": "

Exorcisme (Feu)

L’Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d’interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s’en protéger et même de les soumettre.

Il s’agit d’une magie qui fait un grand usage d’objets et d’armes. Un exorciste est souvent équipé d’une épée de saule et de talismans de protection, mais aussi de divers outils facilitant sa traque et son combat – boussole à esprits ou GPS à fantômes, entre autres.

Les sorts d’Exorcisme ne sont en général d’aucune utilité face à des mortels ou des créatures d’essence céleste.

Domination (Feu)

Le PJ est capable d'imposer sa volonté à un jiugwaai et de le contraindre à obéir à ses ordres. En canalisant son énergie Yang à travers des gestes et des paroles de commandement, l'exorciste peut forcer un esprit, un démon ou un fantôme à exécuter ses ordres, à révéler des informations ou à cesser ses agissements.

Cette spécialité requiert une grande force de caractère : plus l'entité est puissante, plus il est difficile de la soumettre. Un esprit dominé peut tenter de briser l'emprise de l'exorciste si sa volonté fléchit.

", + "specialityname": "Domination", + "associatedelement": "fire", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : paroles de pouvoir, ordre impérieux au nom des Cinq Empereurs

  • Gestes : mudra de commandement, pointage de l'épée rituelle vers la cible

  • État d'esprit : autoritaire, inflexible, volonté de fer

  • Consommables : encens noir, cendres de papier brûlé, sang de coq, alcool de riz

  • Objets : clochette de bronze, épée en bois de pêcher, sceau d'exorciste, cordelette rouge

", + "effects": "

Effets

  • L'Effet « ampleur » indique le degré de contrôle exercé sur la créature : d'un simple ordre ponctuel à un asservissement prolongé.

  • L'Effet « durée » définit le temps durant lequel la créature reste sous le contrôle de l'exorciste.

  • L'Effet « Trois Trésors » indique la difficulté pour la créature de briser l'emprise de l'exorciste si elle tente de se libérer.

", + "examples": "

Exemples

Voici une liste non exhaustive de dominations utiles, avec leur coût en Puissance :

  • Ordre impérieux (2 points) : le PJ donne un ordre court et simple à un jiugwaai (cesser d'attaquer, révéler son nom, s'éloigner). L'ordre ne dure que quelques instants (+ 2 points par ordre supplémentaire ou pour prolonger l'obéissance d'une scène).

  • Sceau de soumission (4 points) : le PJ inscrit un sceau sur un talisman qu'il appose sur la créature ou son réceptacle. Celle-ci obéit aux ordres de l'exorciste pour une durée d'une scène (+ 3 points par scène supplémentaire) (+ 2 points pour étendre le contrôle à une créature supplémentaire).

", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "bcQuW5SfzQcClpdu", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Maggie Jan", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/characters/maggie.png", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.mJ3kL5pR7tX9vB2n", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-mallory-tin-We0fDm06Ua2msJte.json b/sample_data/fvtt-Actor-mallory-tin-We0fDm06Ua2msJte.json new file mode 100644 index 0000000..7dda0d3 --- /dev/null +++ b/sample_data/fvtt-Actor-mallory-tin-We0fDm06Ua2msJte.json @@ -0,0 +1,1160 @@ +{ + "name": "Mallory Tin", + "type": "character", + "img": "", + "system": { + "concept": "Prodige céleste", + "guardian": 6, + "initiative": 1, + "anti_initiative": 24, + "description": "

N.B. : vous pouvez changer le sexe de ce per­

\n

sonnage si vous le désirez – Mallory étant un

\n

prénom mixte – ou laisser planer l’ambiguïté. Ici,

\n

nous la genrons au féminin mais il est possible

\n

d’en faire un homme.

\n

Mallory est la fille de James Tin, un policier

\n

de Hong Kong, et d’une fée céleste (tinneoi)

\n

prénommée Mei. Comme dans les légendes, son

\n

père entra en possession du manteau de plume

\n

de sa mère qui dut ensuite l’épouser. Mallory ne

\n

connaît pas tous les détails de l’histoire, mais

\n

Mei resta sur Terre, même après avoir récupéré

\n

son manteau – ce qui prouve qu’elle était sincè­

\n

rement éprise de James, à qui elle donna cette

\n

enfant. Pourtant, Mei resta absente des pre­

\n

mières années de vie de Mallory jusqu’au milieu

\n

de son adolescence, pour des raisons qu’elle n’a

\n

jamais clairement expliquées (mais qui sont sans

\n

doute relatives à ses missions divines).

\n

Mallory est une fat si ayant reçu l’enseigne­

\n

ment des prêtres taoïstes du temple de Che

\n

Kung durant son enfance. En effet, son père la

\n

leur confiait chaque fois qu’il travaillait sur une

\n

mission dangereuse – ce qui s’avérait fréquent.

\n

Repérée très jeune du fait de son ascendance

\n

particulière, Mallory se montrait très douée

\n

dans ses études mystiques.

\n

Lors de ses ponctuels séjours sur Terre,

\n

Mei donnait des cours de danse traditionnelle

\n

à l’Académie des Arts et du Spectacle de Hong

\n

Kong. Mallory renoua des liens avec sa mère en

\n

fréquentant régulièrement sa classe durant son

\n

adolescence et jusqu’à l’âge adulte.

\n

Devenue une jeune femme, Mallory parcourut

\n

alors Hong Kong à la recherche de sifu capables

\n

de lui enseigner leurs secrets. Parallèlement,

\n

elle fit la connaissance de fat si et d’autres per­

\n

sonnalités du monde occulte, par l’intermédiaire

\n

de ses maîtres taoïstes et de ses parents.

\n

Entraînée par une experte dans l’art du lan­

\n

cer de dagues, elle apprit ainsi à projeter des

\n

plumes d’argent tranchantes comme des poi­

\n

gnards, qui décorent les manches de ses vête­

\n

ments et les bords de son chapeau. Ces armes

\n

sont spécialement conçues pour canaliser la

\n

puissance céleste de son héritage. Mallory dis­

\n

pose en outre de véritables poignards offerts

\n

par sa professeure, Dame Xiao, dont elle ne se

\n

sert qu’en cas de menace importante. Il lui ar­

\n

rive d’enduire ses plumes d’argent de poison à

\n

l’occasion, mais uniquement pour affronter les

\n

pires créatures surnaturelles.

\n

Le sanhei de Mallory est un pendentif repré­

\n

sentant une fiole scellée. Elle contient les larmes

\n

de la déesse lunaire Soeng Ngo et appartenait

\n

jadis à un fat si dont Dame Xiao était proche.

\n

L’objet a lui-même appelé Mallory, l’attirant à

\n

lui jusqu’à ce qu’elle le découvre dans la mai­

\n

son de son enseignante – qui décida alors de lui

\n

confier.

\n

Mallory s’est spécialisée dans la purification

\n

de lieux imprégnés d’énergie néfaste et dans

\n

le combat contre les jiugwaai qui cherchent à

\n

déstabiliser Hong Kong. Son esprit ardent et

\n

son élégance traditionnelle participent à sa ré­

\n

putation. Mallory affiche une fraîcheur, parfois

\n

même une candeur, qui se révèle trompeuse.

\n

Elle fait plus jeune que son âge et, malgré l’ap­

\n

parence délicate due à son ascendance céleste,

\n

elle possède un esprit aussi acéré que ses lames

\n

et une détermination qui force le respect.

\n

Même si son père a pris sa retraite de la

\n

Police de Hong Kong il y a peu, il dispose en­

\n

core de nombreux contacts parmi les forces de

\n

l’ordre auxquelles Mallory rend service de temps

\n

à autre. Elle fréquente régulièrement le restau­

\n

rant Chez Lau, repaire privilégié d’autres fat si

\n

de sa génération avec qui elle coopère souvent.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 2 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 4 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 2 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "Danse", + "value": 3 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 2 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "", + "value": 3 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 1 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 2 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 2 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 2 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 1 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 1 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "Poignards", + "value": 3 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Fortune", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Police", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "", + "value": 2, + "debt": false + } + }, + "component": { + "one": { + "value": "Talisman" + }, + "two": { + "value": "Fiole de sel" + }, + "three": { + "value": "Ginseng" + }, + "four": { + "value": "Radis noir" + }, + "five": { + "value": "Cinabre" + }, + "six": { + "value": "Cigüe" + }, + "seven": { + "value": "Soufre" + }, + "eight": { + "value": "Mélange d'herbes" + }, + "nine": { + "value": "Papier pour pliage" + }, + "zero": { + "value": "Bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": true, + "value": 2, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": true + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 3, + "speciality": { + "invocation": { + "check": true + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 2, + "speciality": { + "neutralization": { + "check": true + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 3, + "max": 3 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 6, + "max": 6, + "min": 0 + }, + "zing": { + "value": 6, + "max": 6, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 2, + "max": 2, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 4, + "max": 4, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Les Larmes de Soeng Ngo (pendentif en forme de fiole scellée)", + "type": "sanhei", + "img": "", + "system": { + "reference": "Sanhei de Mallory Tin", + "description": "

Les Larmes de Soeng Ngo (pendentif en forme de fiole scellée) :

\n

• Protection spirituelle d'une valeur égale à celle de sa Terre (2) contre 1 point de Hei Yang.

\n

• + 1 niveau de Puissance gratuit à tous ses jets de Géomancie (Neutralisation).

\n

• + 2 dés sur tout jet d'Enquête (Observation) à condition que la lumière de la lune puisse servir de guide. La lumière de la lune indiquera même quelque chose qui a été sciemment caché.

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "m3cUN1zuQI", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Les Poignards volants", + "type": "kungfu", + "img": "", + "system": { + "reference": "LdB p. ?", + "description": "

Les Poignards volants

\n

Yin ou Yang / Terre / Combat à distance (Poignard, Hachette)

\n

Distance médiane passe à longue / + 1 dégâts

\n

Assiéger la forteresse

", + "orientation": "yin", + "aspect": "earth", + "skill": "rangedcombat", + "speciality": "Poignards", + "style": "", + "techniques": { + "technique1": { + "check": false, + "name": "Assiéger la forteresse", + "activation": "dice", + "technique": "

Assiéger la forteresse

Technique de combat permettant de concentrer ses attaques sur un point faible.

" + }, + "technique2": { + "check": false, + "name": "", + "activation": "dice", + "technique": "" + }, + "technique3": { + "check": false, + "name": "", + "activation": "dice", + "technique": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "qLqgGotGoR", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Nombreux talismans et clochettes tout autour de son chapeau", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Nombreux talismans et clochettes tout autour de son chapeau

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "s2ydlmrAbE", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "7 poignards ornés d'or et de jade (dégâts 2+Eau(4) avec Hei Yin)", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

7 poignards ornés d'or et de jade (dégâts 2+Eau(4) avec Hei Yin)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "OllJUo8Qbq", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Plusieurs plumes tranchantes en argent", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Plusieurs plumes tranchantes en argent

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "4rAGTC6oAC", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Instruments d'alchimie modernes (fioles, tubes, balance, mortier)", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Instruments d'alchimie modernes (fioles, tubes, balance, mortier)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "t62cAS5Inq", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Appartement modeste avec bibliothèque, ordinateur Taonet et atelier d'alchimiste", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Appartement modeste avec bibliothèque, ordinateur Taonet et atelier d'alchimiste

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "VDxoxivQYO", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Bicyclette citadine dernier cri", + "type": "item", + "img": "", + "system": { + "reference": "", + "description": "

Bicyclette citadine dernier cri

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "MudkKppJbV", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Poisons", + "type": "spell", + "img": "", + "system": { + "reference": "", + "description": "

Alchimie (Eau)

L'Alchimie permet au fat si de manipuler la matière et les énergies par des procédés ésotériques.

Poisons (Métal)

Le PJ sait créer des poisons et des antidotes.

", + "specialityname": "Poisons", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "H1HiTXnTKY", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Invocation", + "type": "spell", + "img": "", + "system": { + "reference": "", + "description": "

Exorcisme (Feu)

L'Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai.

Invocation (Métal)

Le PJ est capable de canaliser son énergie Yang afin de se créer un arsenal transférable.

", + "specialityname": "Invocation", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "Pl9oK8iH2U", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Neutralisation", + "type": "spell", + "img": "", + "system": { + "reference": "", + "description": "

Géomancie (Bois)

La Géomancie recouvre la compréhension des flux d'énergie qui circulent à travers le cosmos.

Neutralisation (Métal)

Le PJ est capable d'analyser un nœud de flux néfastes, d'en bloquer les effets et de le détruire.

", + "specialityname": "Neutralisation", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "", + "realizationtimeaccelerated": "", + "flashback": "", + "components": "", + "effects": "", + "examples": "", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "jM6nB5vCxZ", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Mallory Tin", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.We0fDm06Ua2msJte", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-penny-woo-a1b2c3d4e5f6g7h8.json b/sample_data/fvtt-Actor-penny-woo-a1b2c3d4e5f6g7h8.json new file mode 100644 index 0000000..8cd7b3a --- /dev/null +++ b/sample_data/fvtt-Actor-penny-woo-a1b2c3d4e5f6g7h8.json @@ -0,0 +1,1123 @@ +{ + "name": "Penny Woo", + "type": "character", + "img": "icons/svg/mystery-man.svg", + "system": { + "concept": "Exorciste errante", + "guardian": 3, + "initiative": 1, + "anti_initiative": 24, + "description": "

Penelope Woo est l’héritière d’une lignée de

\n

fat si renommée dont elle se révèle aujourd’hui

\n

l’une des dernières descendantes – et la plus

\n

prometteuse. Toute son enfance tournait autour

\n

de l’apprentissage des techniques familiales, des

\n

principes qui régissent la magie et de la connais­

\n

sance du monde céleste. Cela pesa lourdement

\n

sur la petite fille qu’elle était, qui finit par déve­

\n

lopper un rejet de son héritage dynastique. Mais

\n

elle n’osa jamais s’en ouvrir à ses parents et se

\n

contenta d’assimiler tout ce qui lui était ensei­

\n

gné, non sans envier la vie banale menée par ses

\n

camarades de classe.

\n

Toute sa famille se montra aussi surprise que

\n

contrariée quand, le jour de sa majorité venu,

\n

Penny refusa finalement d’assumer son legs –

\n

qu’elle considérait comme trop lourd pour ses

\n

épaules. Elle fuit les siens, allant jusqu’à couper

\n

tout contact avec eux, et se retrouva à vivre

\n

dans les bas-fonds de Hong Kong auprès des

\n

marginaux et des sans-abri – ce qui lui permit

\n

de nouer de nombreux contacts dans la rue, loin

\n

du confort de son ancienne demeure. Bien que la

\n

solitude lui pesât durant ces années à arpenter

\n

les ombres de la ville, elle parvint à acquérir

\n

une indépendance qu’elle n’aurait jamais cru

\n

possible au sein de sa parentèle. Devenue une

\n

dure à cuire, elle se tailla une certaine réputa­

\n

tion dans la rue – au point que plusieurs gangs

\n

essayèrent de la recruter. Mais le sens de la jus­

\n

tice que lui avait inculqué ses maîtres l’empêcha

\n

toujours de sombrer du mauvais côté de la loi.

\n

Un jour, elle dut se confronter au gang des

\n

Cornes du Deijuk et – grâce à ses nombreuses

\n

connaissances occultes – elle perçut rapidement

\n

l’influence d’un démon derrière celui-ci. Ce jourlà, Penny comprit finalement la mission d’un fat

\n

si, mais aussi et surtout ses propres limites en

\n

tant que tel : il lui apparut impossible de lutter

\n

seule contre cette engeance maléfique. Elle qui

\n

avait tourné le dos à son destin devait à présent

\n

revendiquer son héritage afin de défendre ses

\n

nouveaux amis – les gens modestes soumis au

\n

joug d’un gang occulte aussi avide que violent.

\n

Ravalant sa fierté, elle se résolut donc à re­

\n

nouer contact avec son clan afin d’achever sa

\n

formation.

\n

Elle réapparut parmi les siens lors des funé­

\n

railles de son oncle – Paul Woo, l’homme qui lui

\n

avait tenu lieu de mentor –, s’affirmant en tant

\n

que fat si à part entière à ce moment. Comme

\n

un signe du Ciel, c’est à cette occasion qu’elle

\n

rencontra les fat si avec lesquels elle travaille

\n

encore aujourd’hui – eux aussi venus rendre

\n

hommage au vieil exorciste. Penny partage avec

\n

eux une vision commune du surnaturel ainsi que

\n

l’envie de protéger Hong Kong des démons. Le

\n

groupe se retrouve régulièrement au restaurant

\n

Chez Lau tenu par Josie et Eddy, des fat si à la

\n

retraite et vieux amis de ses parents.

\n

Bien que de retour au sein de son clan, Penny

\n

reste proche des populations les plus précaires

\n

de Hong Kong et des petits commerces de rue

\n

de la ville. Elle rend service à la police à l’occa­

\n

sion mais préfère passer ses nuits à arpenter les

\n

toits de la ville, son arc à la main, pour protéger

\n

les quartiers pauvres – comme Sham Shui Po –

\n

souvent délaissés par ses collègues plus renom­

\n

més. Elle use alors de sa magie pour traquer et

\n

purifier les créatures démoniaques. Après plu­

\n

sieurs années de ces activités nocturnes, Penny

\n

est devenue une athlète aussi rapide qu’agile.

\n

Tel un oiseau de proie, elle fond sur les jiugwaai

\n

agressifs depuis les hauteurs et les transperce

\n

de ses flèches. Experte en tir à l’arc, elle ne rate

\n

jamais sa cible.

\n

Cadeau offert par sa mère, son sanhei est

\n

une boucle de ceinture représentant un soleil à

\n

l’image des neuf astres surnuméraires qui brû­

\n

lèrent le monde et que l’antique héros Jik l’Ar­

\n

cher dut jadis abattre. L’objet affine encore ses

\n

talents de chasseresse urbaine, au point qu’une

\n

intense terreur s’empare de qui se sait sa proie.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 3 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 2 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 2 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 2 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 4 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "Surveillance", + "value": 2 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "", + "value": 2 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 2 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 3 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "Parkour", + "value": 3 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 0 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 0 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "", + "value": 1 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "Arc", + "value": 3 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Commerçants", + "value": 1, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "La Rue, Police", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "La Rue", + "value": 1, + "debt": false + } + }, + "component": { + "one": { + "value": "Pièce de monnaie" + }, + "two": { + "value": "Feuille de saule" + }, + "three": { + "value": "Fiole de sel" + }, + "four": { + "value": "Poudre de jade" + }, + "five": { + "value": "Œuf de poule" + }, + "six": { + "value": "Plume de bergeronnette" + }, + "seven": { + "value": "Plume de passereau" + }, + "eight": { + "value": "Fiole vide" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": false, + "value": 0, + "speciality": { + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": false, + "value": 0, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": true, + "value": 3, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": true + }, + "protection": { + "check": false + }, + "punishment": { + "check": true + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 2, + "speciality": { + "neutralization": { + "check": true + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 3, + "max": 3 + }, + "heiyin": { + "value": 5, + "max": 5 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 7, + "max": 7, + "min": 0 + }, + "zing": { + "value": 5, + "max": 5, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 2, + "max": 2, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 4, + "max": 4, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "La Morsure du Soleil (boucle de ceinture)", + "type": "sanhei", + "img": "icons/svg/item-bag.svg", + "system": { + "reference": "Sanhei de Penny Woo", + "description": "

La Morsure du Soleil (boucle de ceinture) :

\n

• Ajoute 1 niveau de Puissance gratuit à tous les jets d'Exorcisme (Punition) ou de Géomancie (Neutralisation).

\n

• En dépensant 1 point de Hei Yang, ajoute autant de dés-fastes que sa valeur de Feu (3) à un jet de Combat à distance (Arc).

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "sAnHeIiDsUn10001", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Les Éclairs de Leoi Gung", + "type": "kungfu", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/bow.png", + "system": { + "reference": "", + "description": "

Les Éclairs de Leoi Gung

\n

Yang / Bois / Combat à distance (Arc)

\n

Tire Métal (2) flèches avant de recharger / + 1 dégâts

\n

La flèche est la cible

\n

La pluie d'éclairs

", + "orientation": "yang", + "aspect": "bois", + "skill": "rangedcombat", + "speciality": "Arc", + "style": "Tire Métal(2) flèches avant de recharger / +1 dégâts", + "techniques": { + "technique1": { + "check": false, + "name": "La flèche est la cible", + "activation": "action-attack-defense", + "technique": "

La flèche est la cible

Le pratiquant ne fait qu'un avec son arc, devenant aussi précis que la flèche qu'il décoche. Il peut annuler sur son action d'attaque un nombre de dés-néfastes égal à sa valeur de Bois.

" + }, + "technique2": { + "check": false, + "name": "La pluie d'éclairs", + "activation": "action-attack", + "technique": "

La pluie d'éclairs

Décochant une volée de flèches en un instant, le personnage inflige des dégâts supplémentaires égaux à sa valeur de Métal sur une attaque réussie.

" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "kUnGfUeClAiRs01", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Lunettes à filtres mystiques (voit émanations Yang)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/sunglasses.png", + "system": { + "reference": "", + "description": "

Lunettes à filtres mystiques permettant de voir les émanations Yang.

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "lUnEtTeSfIlTr01", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Arc composite de très bonne qualité et 20 flèches artisanales (dégâts 2, distance longue)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_technologie/bow.png", + "system": { + "reference": "", + "description": "

Arc composite de très bonne qualité et 20 flèches artisanales (dégâts 2, distance longue)

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "aRcCoMpOsItE01", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Pilon et mortier", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_alchimie/molcajete.png", + "system": { + "reference": "", + "description": "

Pilon et mortier

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "pIlOnEtMoRtI01", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Amulette Taaigiktou (1x/jour, +1 Hei pour 1 Zing)", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_alchimie/amulet.png", + "system": { + "reference": "", + "description": "

Amulette Taaigiktou : 1 fois par jour, permet de convertir +1 Hei pour 1 Zing.

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "aMuLeTtEaAi101", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Squat dans un ancien gymnase désaffecté", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/house.png", + "system": { + "reference": "", + "description": "

Squat dans un ancien gymnase désaffecté

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "sQuAtGyMnAsE01", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Traque", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "", + "description": "

Exorcisme (Feu)

L'Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d'interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s'en protéger et même de les soumettre.

Traque (Eau)

Le PJ est capable de pister et de localiser les créatures surnaturelles, en suivant les traces d'énergie Yin qu'elles laissent derrière elles. Il peut utiliser divers outils comme une boussole à esprits ou un pendule pour affiner sa recherche.

", + "specialityname": "Traque", + "associatedelement": "eau", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : incantations de pistage, prière à Jilong

  • Gestes : suivre les traces d'énergie, utiliser une boussole à esprits

  • État d'esprit : concentré, méticuleux

  • Consommables : encens, poudre de jade

  • Objets : boussole à esprits, pendule, carte

", + "effects": "

Effets

  • L'Effet « ampleur » indique la précision des informations obtenues sur la cible pistée : distance, nature, puissance, etc.

  • L'Effet « bonus » octroie des dés supplémentaires sur les jets visant à traquer ou surprendre la créature.

  • L'Effet « durée » définit le temps durant lequel le personnage peut suivre la piste sans lancer un nouveau sort.

", + "examples": "

Exemples

  • Flair du chasseur (2 points) : le PJ perçoit la direction générale de la créature la plus proche dans un rayon de 1 km.

  • Œil de l'aigle (4 points) : le PJ visualise précisément l'emplacement et l'état de sa cible, où qu'elle se trouve dans la ville.

", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "sPeLlTrAqUe001", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Exorcisme (Feu) : Punition", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/FEU.gif", + "system": { + "reference": "", + "description": "

Exorcisme (Feu)

L'Exorcisme est la magie qui permet de lutter efficacement contre les jiugwaai – tels les esprits, démons, fantômes, etc. – mais aussi d'interagir avec elles. Un exorciste est capable de pister ces êtres, de les affronter, de s'en protéger et même de les soumettre.

Punition (Feu)

Le PJ peut canaliser son énergie Yang pour infliger des dégâts directs aux créatures surnaturelles. Il utilise généralement des armes imprégnées de Hei ou des projectiles sacrés pour punir les démons et esprits malfaisants.

", + "specialityname": "Punition", + "associatedelement": "feu", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 minute", + "realizationtimeaccelerated": "2 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, paroles de jugement

  • Gestes : pointer l'arme vers la cible, tracer un symbole de feu dans l'air

  • État d'esprit : courroucé, déterminé

  • Consommables : poudre de jade, encens, alcool de riz

  • Objets : arme consacrée, talisman de punition, clochette de bronze

", + "effects": "

Effets

  • L'Effet « Trois Trésors » indique les dégâts supplémentaires infligés par l'attaque punitives.

  • L'Effet « malus » impose des dés-néfastes à la cible sur ses actions.

  • L'Effet « durée » définit le temps durant lequel la punition affecte la cible.

", + "examples": "

Exemples

  • Flèche de feu purificateur (3 points) : le PJ imprègne une flèche de son Hei Yang, infligeant [Feu + 2] dégâts à un jiugwaai.

  • Sceau de damnation (5 points) : la cible subit 1 dé de malus sur toutes ses actions pour une scène.

", + "notes": "

Vos notes…

", + "discipline": "exorcism", + "hei": "" + }, + "_id": "sPeLlPuNiTi001", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Neutralisation", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "", + "description": "

Géomancie (Bois)

La Géomancie recouvre la compréhension qu'a le fat si des flux d'énergie qui circulent à travers le cosmos, ainsi que sa capacité à les manipuler. Elle permet de repérer et de détruire un nœud de flux néfastes afin de libérer un endroit de son influence délétère.

Neutralisation (Métal)

Grâce à son art de la géomancie, le PJ est capable d'analyser un nœud de flux néfastes, d'en bloquer les effets et même de le détruire.

", + "specialityname": "Neutralisation", + "associatedelement": "metal", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "5 minutes", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prière à Zung Kwai, citation du Dou Dak Ging

  • Gestes : gestes rituels de purification, manipulation des ingrédients

  • État d'esprit : apaisé, serein

  • Consommables : riz, œuf, sang, alcool

  • Objets : plumeau taoïste, collier de pièces, amulette de purification

", + "effects": "

Effets

  • L'Effet « ampleur » indique l'importance des informations apprises en analysant le nœud d'énergie Yin.

  • L'Effet « source de dégâts récurrents » permet de réduire la valeur du nœud d'énergies néfastes.

  • L'Effet « bonus » octroie des dés supplémentaires contre les effets du nœud néfaste.

", + "examples": "

Exemples

  • Rituel de purification des énergies (3 points) : diminuer de 1 la valeur d'un nœud d'énergies néfastes.

  • Protection spirituelle (5 points) : crée une protection spirituelle de 1 point pour 1 personne.

", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "sPeLlNeUtRa001", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Penny Woo", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "icons/svg/mystery-man.svg", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.a1b2c3d4e5f6g7h8", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/sample_data/fvtt-Actor-sam-song-JuY7qnjxuMvGo2Nu.json b/sample_data/fvtt-Actor-sam-song-JuY7qnjxuMvGo2Nu.json new file mode 100644 index 0000000..059df16 --- /dev/null +++ b/sample_data/fvtt-Actor-sam-song-JuY7qnjxuMvGo2Nu.json @@ -0,0 +1,1066 @@ +{ + "name": "Sam Song", + "type": "character", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/sam.png", + "system": { + "concept": "Mage taoïste", + "guardian": 4, + "initiative": 1, + "anti_initiative": 24, + "description": "

N.B. : vous pouvez changer le sexe de ce per­

\n

sonnage si vous le désirez – Sam pouvant être le

\n

diminutif de Samantha ou Samuel – ou laisser

\n

planer l’ambiguïté. Ici, nous la genrons au fémi­

\n

nin mais il est possible d’en faire un homme.

\n

Sans doute la plus religieuse de son groupe,

\n

Sam est une fat si traditionnelle issue d’une fa­

\n

mille ayant déjà compté de nombreux exorcistes

\n

par le passé. Formée au sein d’un temple taoïste

\n

dès son plus jeune âge, elle fréquente cepen­

\n

dant toutes les communautés religieuses de la

\n

ville – à qui elle vient en aide gratuitement, dans

\n

le respect de la religion populaire chinoise. En

\n

conséquence, elle est la bienvenue un peu par­

\n

tout dans les temples et monastères de Hong

\n

Kong et ne manque jamais de rien, bien qu’elle

\n

mène une stricte vie d’ascète. En effet, prêtres

\n

et moines se montrent toujours prêts à lui offrir

\n

le gîte et le couvert en échange de ses services.

\n

Sam se révèle singulièrement cultivée (tout

\n

spécialement en histoire et en théologie) et

\n

dispose de bonnes connaissances en médecine

\n

chinoise classique – ce qui inclue la connais­

\n

sance des méridiens, de l’énergétique et de

\n

l’acupuncture. Elle pratique régulièrement le

\n

heigung et maîtrise une forme ancestrale de

\n

Taaigik Kyun – sa frêle apparence dissimulant

\n

ainsi une combattante de bon niveau. Elle pro­

\n

digue de nombreux conseils à ses alliés et pos­

\n

sède la réputation d’être particulièrement sage

\n

et avisée pour son jeune âge.

\n

Sa spécialité mystique principale repose sur

\n

la Maîtrise climatique et la Magie d’or. Obtenu

\n

en offrande de la part d’un vénérable du temple

\n

de Tin Hau situé à Joss House Bay, son sceptre

\n

taoïste en jade constitue son sanhei et lui per­

\n

met de conjurer encore plus efficacement les

\n

éléments – et il peut servir d’arme à l’occa­

\n

sion. L’objet se nomme poétiquement Vent du

\n

Crépuscule et semble porter avec lui la bénédic­

\n

tion de la déesse tutélaire de Hong Kong.

\n

D’apparence austère, la tenue traditionnelle

\n

de Sam contraste avec son comportement cha­

\n

leureux et sa très grande empathie. Elle préfère

\n

la négociation à l’affrontement direct et se

\n

montre profondément attachée à l’ordre naturel

\n

des choses – n’hésitant pas à faire appel aux

\n

dieux si nécessaire pour l’aider à le rétablir. Du

\n

fait de son éducation tournée vers les anciens

\n

usages, elle se montre peu à l’aise avec certains

\n

aspects de la vie moderne. La familiarité des

\n

Hongkongais la met mal à l’aise et la techno­

\n

logie moderne lui apparaît trop compliquée. Sa

\n

grande confiance en elle lorsqu’elle se trouve

\n

dans son élément laisse place à une véritable

\n

réserve dès lors qu’elle se trouve confrontée aux

\n

affres du monde contemporain.

\n

Ancienne fat si, Josie est la tante de Sam. À

\n

la retraite, elle tient à présent avec son ami Eddy

\n

Lau un restaurant simplement baptisé Chez Lau

\n

où Sam a l’habitude de retrouver les membres

\n

de son groupe entre deux missions. Elle n’y paie

\n

jamais la note, contrairement à ses collègues

\n

qui aiment la taquiner au sujet de ce favoritisme

\n

familial. C’est aux funérailles de Paul Woo,

\n

un ancien partenaire occasionnel de sa tante,

\n

qu’elle rencontra ses frères et sœurs d’armes.

\n

Elle partage avec eux une vision commune du

\n

surnaturel et la volonté de protéger Hong Kong

\n

des forces du chaos.

\n

Sam déteste que la magie soit utilisée à des

\n

fins de profit personnel. Bien sûr, il lui arrive

\n

à l’occasion d’utiliser ses techniques mystiques

\n

pour accomplir des actes n’ayant rien à voir

\n

avec ses attributions de fat si  (comme sauver

\n

un temple d’un incendie grâce à une fortuite

\n

averse), mais jamais dans un but égoïste. Elle

\n

comprend toutefois que ses collègues aient

\n

besoin de gagner leur vie – mais il s’agit d’un

\n

autre des aspects de l’existence moderne qui lui

\n

déplaît fortement.

\n

les chroniques

\n

de l’étrange

", + "aspect": { + "fire": { + "chinese": "㊋", + "label": "CDE.Fire", + "value": 2 + }, + "earth": { + "chinese": "㊏", + "label": "CDE.Earth", + "value": 4 + }, + "metal": { + "chinese": "㊎", + "label": "CDE.Metal", + "value": 3 + }, + "water": { + "chinese": "㊌", + "label": "CDE.Water", + "value": 1 + }, + "wood": { + "chinese": "㊍", + "label": "CDE.Wood", + "value": 3 + } + }, + "skills": { + "art": { + "label": "CDE.Art", + "specialities": "", + "value": 0 + }, + "investigation": { + "label": "CDE.Investigation", + "specialities": "", + "value": 1 + }, + "erudition": { + "label": "CDE.Erudition", + "specialities": "Théologie", + "value": 3 + }, + "knavery": { + "label": "CDE.Knavery", + "specialities": "", + "value": 1 + }, + "wordliness": { + "label": "CDE.Wordliness", + "specialities": "", + "value": 1 + }, + "prowess": { + "label": "CDE.Prowess", + "specialities": "", + "value": 3 + }, + "sciences": { + "label": "CDE.Sciences", + "specialities": "", + "value": 2 + }, + "technologies": { + "label": "CDE.Technologies", + "specialities": "", + "value": 0 + }, + "kungfu": { + "label": "CDE.KungFu", + "specialities": "Mains Nues", + "value": 3 + }, + "rangedcombat": { + "label": "CDE.RangedCombat", + "specialities": "", + "value": 0 + } + }, + "resources": { + "supply": { + "label": "CDE.Supply", + "specialities": "Taoïstes, Bouddhistes", + "value": 2, + "debt": false + }, + "inquiry": { + "label": "CDE.Inquiry", + "specialities": "Taoïstes, Bouddhistes", + "value": 2, + "debt": false + }, + "influence": { + "label": "CDE.Influence", + "specialities": "Taoïstes", + "value": 2, + "debt": false + } + }, + "component": { + "one": { + "value": "Talisman taoïste" + }, + "two": { + "value": "Feuille de saule" + }, + "three": { + "value": "Fiole de sel" + }, + "four": { + "value": "Pétard traditionnel" + }, + "five": { + "value": "Pétard traditionnel" + }, + "six": { + "value": "Baguettes en bambou" + }, + "seven": { + "value": "Morceau de bougie" + }, + "eight": { + "value": "Morceau de bougie" + }, + "nine": { + "value": "Bâton d'encens" + }, + "zero": { + "value": "Bâton d'encens" + } + }, + "magics": { + "internalcinnabar": { + "visible": false, + "value": 0, + "speciality": { + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "alchemy": { + "visible": true, + "value": 2, + "speciality": { + "acupuncture": { + "check": true + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "masteryoftheway": { + "visible": true, + "value": 3, + "speciality": { + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": true + }, + "goldenmagic": { + "check": true + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "exorcism": { + "visible": false, + "value": 0, + "speciality": { + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": false + }, + "fungseoi": { + "check": false + } + } + }, + "geomancy": { + "visible": true, + "value": 3, + "speciality": { + "neutralization": { + "check": false + }, + "divination": { + "check": false + }, + "earthlyprayer": { + "check": false + }, + "heavenlyprayer": { + "check": true + }, + "fungseoi": { + "check": false + }, + "essence": { + "check": false + }, + "mind": { + "check": false + }, + "purification": { + "check": false + }, + "manipulation": { + "check": false + }, + "aura": { + "check": false + }, + "acupuncture": { + "check": false + }, + "elixirs": { + "check": false + }, + "poisons": { + "check": false + }, + "arsenal": { + "check": false + }, + "potions": { + "check": false + }, + "curse": { + "check": false + }, + "transfiguration": { + "check": false + }, + "necromancy": { + "check": false + }, + "climatecontrol": { + "check": false + }, + "goldenmagic": { + "check": false + }, + "invocation": { + "check": false + }, + "tracking": { + "check": false + }, + "protection": { + "check": false + }, + "punishment": { + "check": false + }, + "domination": { + "check": false + } + } + } + }, + "threetreasures": { + "heiyang": { + "value": 5, + "max": 5 + }, + "heiyin": { + "value": 5, + "max": 5 + }, + "dicelevel": { + "level0d": { + "san": { + "value": 6, + "max": 6, + "min": 0 + }, + "zing": { + "value": 4, + "max": 4, + "min": 0 + } + }, + "level1d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 1, + "max": 1, + "min": 0 + } + }, + "level2d": { + "san": { + "value": 3, + "max": 3, + "min": 0 + }, + "zing": { + "value": 3, + "max": 3, + "min": 0 + } + } + } + }, + "experience": { + "value": 6, + "max": 6, + "min": 0 + }, + "prefs": { + "typeofthrow": { + "check": true, + "choice": "0" + } + }, + "prompt": { + "typeofthrow": { + "check": true, + "choice": "0" + }, + "configure": { + "numberofdice": 0, + "aspect": 0, + "bonus": 0, + "bonusauspiciousdice": 0, + "typeofthrow": 0, + "aspectskill": 0, + "bonusmalusskill": 0, + "aspectspeciality": 0, + "rolldifficulty": 0, + "bonusmalusspeciality": 0 + } + } + }, + "items": [ + { + "name": "Vent du Crépuscule (jyuji de jade et de bois précieux)", + "type": "sanhei", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/sanhei/vent_du_crepuscule.png", + "system": { + "reference": "Sanhei de Sam Song", + "description": "

Vent du Crépuscule (jyuji de jade et de bois précieux) :

\n

• Lorsqu'il sert d'arme, affecte les créatures surnaturelles.

\n

• 1 point de Hei Yin = +2 dés à tous les jets de Géomancie (Prière céleste).

\n

• Difficulté des jets de Maîtrise de la Voie (Maîtrise climatique) - 1 concernant la réussite, mais garde sa valeur initiale pour calculer la Puissance du sort.

", + "heiType": "yin", + "properties": { + "prop1": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop2": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + }, + "prop3": { + "name": "", + "heiCost": 0, + "heiType": "yin", + "description": "" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "Sh1a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "La Boxe du Faîte suprême", + "type": "kungfu", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/kung-fu/mains_nues.png", + "system": { + "reference": "Style de combat de Sam Song", + "description": "

La Boxe du Faîte suprême

\n

Yin / Eau / Kung-fu (Mains Nues)

\n

+ 1 défense / + 1 dégâts

\n

La souplesse face à la force

", + "orientation": "yin", + "aspect": "eau", + "skill": "kungfu", + "speciality": "Mains Nues", + "style": "+1 défense / +1 dégâts", + "techniques": { + "technique1": { + "check": false, + "name": "La souplesse face à la force", + "activation": "defense", + "technique": "

La souplesse face à la force

Le pratiquant utilise l'élan et la force de son adversaire pour le déséquilibrer et le renverser. En cas de réussite d'une action de défense, le personnage peut immédiatement tenter de faire chuter son adversaire sans utiliser d'action supplémentaire, en effectuant un jet de Kung-fu opposé à la Prouesse (ou à l'Aptitude physique pour un PNJ) de la cible.

" + } + }, + "notes": "

Vos notes…

" + }, + "_id": "Kf1a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Ne possède que ses vêtements, sa sacoche d'ingrédients, des aiguilles d'acupuncture et son sanhei", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_mode_et_accessoires/sac.png", + "system": { + "reference": "", + "description": "

Sam ne possède que ses vêtements, sa sacoche d'ingrédients, des aiguilles d'acupuncture et son sanhei. Elle mène une vie simple et dépouillée, consacrée à son art.

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "Eq1a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Sam vit dans les temples et monastères qui l'accueillent gratuitement en échange de ses services", + "type": "item", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/jetons/aides_de_jeu/jetons_habitats/temple.png", + "system": { + "reference": "", + "description": "

Sam vit dans les temples et monastères qui l'accueillent gratuitement en échange de ses services. Elle rend visite régulièrement à sa tante Josie, propriétaire d'un restaurant local.

", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "_id": "Eq2a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Alchimie (Eau) : Acupuncture", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/EAU.gif", + "system": { + "reference": "Manuel de base", + "description": "

Alchimie (Eau)

L'Alchimie est l'art de manipuler le hei à travers des substances et des techniques corporelles. Elle permet au fat si de créer des élixirs, des potions, des poisons et d'utiliser l'acupuncture pour soigner ou influencer le corps et l'esprit.

Acupuncture (Eau)

Le PJ est capable d'utiliser des aiguilles d'acupuncture pour manipuler le flux de hei dans le corps d'une personne. Cette technique ancestrale permet de soigner les blessures, de purifier les énergies néfastes et de rétablir l'équilibre entre le Yin et le Yang chez le patient. L'acupuncture peut également être utilisée pour apaiser les esprits troublés ou pour induire des états de conscience modifiés.

", + "specialityname": "Acupuncture", + "associatedelement": "eau", + "heiType": "yin", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "15 minutes", + "realizationtimeaccelerated": "3 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prières taoïstes de guérison, incantations au dieu médecin

  • Gestes : insertion des aiguilles aux points d'acupuncture précis, palpation du pouls

  • État d'esprit : calme, concentré, compatissant

  • Consommables : aiguilles d'acupuncture, alcool de riz pour la stérilisation, huiles essentielles

  • Objets : trousse d'aiguilles, diagramme des méridiens, bougie

", + "effects": "

Effets

  • L'Effet « soin » permet de restaurer des points de San ou de Zing perdus par le patient.

  • L'Effet « bonus » octroie des dés supplémentaires sur les jets de résistance contre les maladies, les poisons ou les influences spirituelles néfastes.

  • L'Effet « durée » définit le temps pendant lequel les effets de l'acupuncture persistent.

", + "examples": "

Exemples

Voici une liste non exhaustive de soins utiles, avec leur coût en Puissance :

  • Harmonisation du hei (2 points) : restaure 1 point de San au patient (+ 2 points par point de San supplémentaire).

  • Revitalisation des méridiens (3 points) : restaure 1 point de Zing au patient (+ 3 points par point de Zing supplémentaire).

  • Purification des énergies néfastes (4 points) : annule les effets d'une malédiction ou d'une possession légère sur le patient (+ 4 points pour les cas les plus graves).

", + "notes": "

Vos notes…

", + "discipline": "alchemy", + "hei": "" + }, + "_id": "Sp1a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Maîtrise de la Voie (Terre) : Maîtrise climatique", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/TERRE.gif", + "system": { + "reference": "Manuel de base", + "description": "

Maîtrise de la Voie (Terre)

La Maîtrise de la Voie est l'art suprême du fat si, la compréhension intime du Tao qui permet d'agir directement sur la réalité. Cette discipline regroupe les pouvoirs les plus puissants et les plus subtils : contrôle des éléments, enchantement des métaux précieux, malédictions et bénédictions.

Maîtrise climatique (Terre)

Le PJ est capable d'influencer le climat local, d'apaiser une tempête ou de provoquer une pluie bienfaisante. Cette spécialité permet de modifier les conditions météorologiques sur une zone limitée, que ce soit pour favoriser les récoltes, disperser un brouillard maléfique ou créer un vent propice à la navigation. Les effets peuvent être subtils (brise légère) ou spectaculaires (orages soudains).

", + "specialityname": "Maîtrise climatique", + "associatedelement": "terre", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prières aux dieux du vent et de la pluie, incantations taoïstes

  • Gestes : mouvements de Taaigik imitant le vent et les vagues, manipulation d'un éventail rituel

  • État d'esprit : en phase avec les éléments, déterminé

  • Consommables : encens, papier de riz peint de symboles météorologiques

  • Objets : éventail taoïste, clochette de bronze, bannière de prière

", + "effects": "

Effets

  • L'Effet « ampleur » définit l'étendue de la zone climatique affectée et l'intensité du changement météorologique.

  • L'Effet « durée » indique le temps durant lequel les conditions climatiques modifiées persistent.

  • L'Effet « bonus » octroie des dés supplémentaires à lancer pour des actions bénéficiant des conditions climatiques créées.

  • L'Effet « Loksyu » permet d'étendre l'influence du sort sur l'ensemble du groupe.

", + "examples": "

Exemples

Voici une liste non exhaustive de manipulations climatiques, avec leur coût en Puissance :

  • Brise légère (2 points) : crée une brise rafraîchissante sur une zone de taille humaine pour une scène. Utile pour dissiper les odeurs, les gaz ou les nuages d'insectes (+ 2 points par extension de la zone).

  • Pluie bienfaisante (4 points) : provoque une pluie fine sur une zone de la taille d'un pâté de maisons pour une durée d'une heure. Apaise les esprits et favorise la croissance (+ 4 points par heure supplémentaire).

  • Appel de l'orage (6 points) : déclenche un orage violent avec vents forts, éclairs et pluie torrentielle sur une zone étendue pour une scène (+ 6 points pour prolonger d'une scène supplémentaire).

", + "notes": "

Vos notes…

", + "discipline": "masteryoftheway", + "hei": "" + }, + "_id": "Sp2a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Maîtrise de la Voie (Terre) : Magie d'or", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/TERRE.gif", + "system": { + "reference": "Manuel de base", + "description": "

Maîtrise de la Voie (Terre)

La Maîtrise de la Voie est l'art suprême du fat si, la compréhension intime du Tao qui permet d'agir directement sur la réalité. Cette discipline regroupe les pouvoirs les plus puissants et les plus subtils.

Magie d'or (Terre)

Le PJ est capable d'enchanter les métaux précieux et les objets d'or, d'argent et de jade. Cette spécialité permet de conférer des propriétés magiques aux bijoux, aux armes et aux armures, ou d'utiliser l'or comme catalyseur pour d'autres sorts. Les objets enchantés par la Magie d'or deviennent des talismans puissants, capables de protéger leur porteur ou de canaliser des énergies spirituelles.

", + "specialityname": "Magie d'or", + "associatedelement": "terre", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "1 heure", + "realizationtimeaccelerated": "6 crans d'initiative", + "flashback": "non", + "components": "

Composantes

  • Mots : prières aux divinités de la richesse et de la prospérité, incantations d'enchantement

  • Gestes : tracer des symboles sacrés sur l'objet avec de l'encre dorée, méditation

  • État d'esprit : concentré, dévoué, pieux

  • Consommables : feuille d'or, pigments précieux, encens de santal

  • Objets : objet à enchanter, pinceau rituel, sceau taoïste

", + "effects": "

Effets

  • L'Effet « protection » confère à l'objet enchanté la capacité de protéger son porteur contre les influences néfastes (bonus aux jets de résistance).

  • L'Effet « bonus » accorde des dés supplémentaires pour des actions spécifiques en rapport avec l'objet enchanté.

  • L'Effet « durée » détermine le temps pendant lequel l'enchantement reste actif.

  • L'Effet « puissance » renforce les autres sorts lancés par le fat si lorsqu'il utilise un objet enchanté par la Magie d'or comme focalisateur.

", + "examples": "

Exemples

Voici une liste non exhaustive d'enchantements, avec leur coût en Puissance :

  • Talisman protecteur (2 points) : un petit bijou en or ou en jade offre 1 dé-faste gratuit sur un jet de résistance contre une influence surnaturelle (+ 2 points par dé-faste supplémentaire).

  • Arme dorée (4 points) : une arme ornée d'or ou de jade inflige +1 dégât aux créatures surnaturelles pour une durée d'une scène (+ 3 points par point de dégât supplémentaire).

  • Armure de jade (5 points) : confère une protection spirituelle de 2 points au porteur pour une durée d'une scène contre les attaques des créatures Yin (+ 3 points par point de protection supplémentaire).

", + "notes": "

Vos notes…

", + "discipline": "masteryoftheway", + "hei": "" + }, + "_id": "Sp3a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + }, + { + "name": "Géomancie (Bois) : Prière céleste", + "type": "spell", + "img": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/aspects/BOIS.gif", + "system": { + "reference": "Manuel de base", + "description": "

Géomancie (Bois)

La Géomancie recouvre la compréhension qu'a le fat si des flux d'énergie qui circulent à travers le cosmos, ainsi que sa capacité à les manipuler dans une certaine mesure. Il voit ainsi la façon dont l'énergie du Tao baigne le monde et le relie au Ciel – mais aussi aux Dix Enfers.

Prière céleste (Feu)

Le PJ connaît les rituels et paroles permettant d'appeler la bénédiction d'une divinité céleste. En général, on sollicite les dieux pour qu'ils nous prêtent force et assistance durant une épreuve particulière et planifiée. Sam voue une dévotion particulière au Kirin Jaune, son gardien, et aux divinités de la Terre.

", + "specialityname": "Prière céleste", + "associatedelement": "feu", + "heiType": "yang", + "heiCost": 0, + "difficulty": 0, + "realizationtimeritual": "30 minutes", + "realizationtimeaccelerated": "non applicable", + "flashback": "oui", + "components": "

Composantes

  • Mots : prière à la divinité implorée, cantiques taoïstes

  • Gestes : danse rituelle, prosternations, offrandes

  • État d'esprit : lié à la divinité implorée, concentration, ferveur

  • Consommables : offrandes à la divinité implorée, encens, papier-monnaie rituel

  • Objets : statuette ou amulette de la divinité implorée, autel de prière, éventail rituel

", + "effects": "

Effets

  • L'Effet « bonus » octroie des dés-fastes ou des dés supplémentaires à lancer lors des épreuves en rapport avec la bénédiction demandée.

  • L'Effet « durée » permet de décider du temps durant lequel les dieux veillent sur le personnage et favorisent ses actions.

  • L'Effet « Loksyu » traduit une bénédiction s'étendant sur le groupe des PJ, signe qu'ils se trouvent sous la protection du dieu céleste prié.

", + "examples": "

Exemples

Voici une liste non exhaustive de prières utiles, avec leur coût en Puissance :

  • Faveur des Gardiens célestes (2 points) : accorde 1 dé-faste gratuit au lanceur sur un prochain jet en rapport avec la protection ou la guérison (+ 2 points par dé-faste supplémentaire) (+ 4 points pour étendre au groupe).

  • Bénédiction du Kirin Jaune (3 points) : le Gardien de la Terre accorde 1 dé supplémentaire à tous les jets de Géomancie pour une scène (+ 3 points par dé supplémentaire).

  • Appel céleste (5 points) : le lanceur reçoit une vision ou un présage clair d'une divinité pour le guider dans une quête importante (+ 5 points pour obtenir des détails supplémentaires).

", + "notes": "

Vos notes…

", + "discipline": "geomancy", + "hei": "" + }, + "_id": "Sp4a2b3c4d5e6f7g", + "effects": [], + "folder": null, + "sort": 0, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351490, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null + }, + "ownership": { + "default": 0 + } + } + ], + "prototypeToken": { + "name": "Sam Song", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "depth": 1, + "texture": { + "src": "https://assets.forge-vtt.com/630dd9fa56bd61d804eb1dec/systems/chroniquesdeletrange/images/fat_si/sam.png", + "anchorX": 0.5, + "anchorY": 0.5, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": -1, + "displayBars": 0, + "bar1": { + "attribute": "threetreasures.heiyang" + }, + "bar2": { + "attribute": "threetreasures.heiyin" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": false, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": {}, + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "14.361", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "createdTime": 1778096351490, + "modifiedTime": 1778096351493, + "lastModifiedBy": "yRsJfvQWHZ23lClm", + "compendiumSource": null, + "duplicateSource": null, + "exportSource": { + "worldId": "cde", + "uuid": "Actor.JuY7qnjxuMvGo2Nu", + "coreVersion": "14.363", + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "14.0.3" + } + }, + "ownership": { + "default": 0 + } +} \ No newline at end of file diff --git a/system.json b/system.json index b87750b..d3f3b63 100644 --- a/system.json +++ b/system.json @@ -126,6 +126,18 @@ "ASSISTANT": "OWNER" } }, + { + "name": "cde-pretires", + "label": "Prétirés", + "type": "Actor", + "path": "packs/cde-pretires", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { + "PLAYER": "NONE", + "ASSISTANT": "OWNER" + } + }, { "name": "cde-help", "label": "Aide en ligne",