From 3d4db636a0d3def44b22720edafa5844b719c18f Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Fri, 17 Apr 2026 16:39:17 +0200 Subject: [PATCH] =?UTF-8?q?Suppression=20=C3=A9lements=20inutiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/copilot-instructions.md | 93 --------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md deleted file mode 100644 index c3999bf..0000000 --- a/.github/copilot-instructions.md +++ /dev/null @@ -1,93 +0,0 @@ -# Copilot Instructions - -## What this repository is - -A **FoundryVTT content module** for the MGT2 (Mongoose Traveller 2nd edition) system. It is a pure data module — there is no JavaScript, CSS, or HTML. All content is in **French**. - -Compatible with FoundryVTT v11–v13, requiring the `mgt2` game system. - -## Architecture - -``` -module.json ← FoundryVTT module manifest (single source of truth for module metadata) -packs/ ← Compendium packs stored as LevelDB databases (binary .ldb files) -assets/icons/ ← SVG icons, named in French (with accented characters) -``` - -### Packs - -Each subdirectory under `packs/` is a LevelDB database managed by FoundryVTT. **Never edit `.ldb` files directly** — pack content is modified through the FoundryVTT UI and exported via its built-in compendium tools. - -Current packs and their document types: - -| Pack folder | Label | Type | -|---|---|---| -| `armures` | Armures | Item | -| `armes` | Armes | Item | -| `competences` | Compétences | Item | -| `carrieres` | Carrières | Item | -| `talents-psioniques` | Talents psioniques | Item | -| `maladie-poison-and-blessure` | Maladie, Poison & Blessure | Item | -| `equipement` | Équipement | Item | -| `ordinateur` | Ordinateur | Item | -| `contenant-sac-coffre` | Contenant (sac, coffre) | Item | -| `espece` | Espèce | Item | -| `objet` | Objets | Item | -| `journal` | Journal Psioniques | JournalEntry | - -> The folders `arme`, `carriere`, and `talent-psy` appear to be legacy/deprecated predecessors of `armes`, `carrieres`, and `talents-psioniques`. - -## JavaScript module architecture - -The module now includes a `/commerce` chat command that opens a trade workflow dialog. Entry point: `scripts/commerce.js` (ES module, declared under `"esmodules"` in `module.json`). - -``` -scripts/ - commerce.js ← entry point; registers /commerce via Hooks.on("chatMessage") - CommerceDialog.js ← FormApplication with 3 tabs (passengers / cargo / speculative trade) - tradeHelper.js ← business logic: dice rolls (Foundry Roll API), price calculations - uwpParser.js ← parses UWP strings (e.g. A788899-C) → trade codes (Ag, In, Ri…) - data/ - tradeTables.js ← all data tables: goods (D66), passenger/cargo traffic, prices -templates/ - commerce-dialog.hbs ← Handlebars template for the dialog (3-tab form) - commerce-result.hbs ← Handlebars template for the chat result card -styles/ - commerce.css ← dialog and chat card styles -``` - -### Key patterns -- **Dice rolls** use `await new Roll(formula).evaluate()` — always async. -- **UWP parsing** via `parseUWP(uwp, zone)` in `uwpParser.js`; trade codes are derived automatically. -- **Trade code modifiers**: only the highest applicable modifier from each column (buy/sell) is used per the rules (not cumulative). -- **Goods table (D66)**: all 30 entries (D66 11–66) are implemented in `tradeTables.js`, including illegal goods (D66 61–65) and the free-form Exotics entry (D66 66). Illegal goods have `illegal: true` and are only surfaced when `blackMarket: true` is passed to `findAvailableGoods()`. -- **Template helpers** (`formatCredits`, `join`, `gt`, `gte`, `eq`) are registered lazily in `CommerceDialog.js` on first use. -- **FormApplication tabs** use the built-in Foundry tab system (`navSelector`, `contentSelector`, `initial`). - -## Key conventions - -### module.json - -Every pack **must** be declared in `module.json` under `"packs"`. The standard ownership for all packs is: - -```json -"ownership": { - "PLAYER": "OBSERVER", - "ASSISTANT": "OWNER" -} -``` - -All packs use `"system": "mgt2"`. - -When adding a new pack, add its entry to `module.json` **and** create the corresponding directory under `packs/` (FoundryVTT will initialise the LevelDB files on first use). - -### Icons - -- Stored in `assets/icons/` as SVG files -- File names are in French and may contain accented characters (e.g., `mécanique.svg`, `éclaireur.svg`) -- Referenced in item data as relative module paths, e.g.: - `modules/mgt2-compendium-amiral-denisov/assets/icons/.svg` - -### Version bumps - -Version is defined once in `module.json` under `"version"`. There is no separate changelog file.