@datamoc/mw_games 0.7.4 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +287 -2
- package/README.md +15 -2
- package/dist/actors/Inventory.d.ts +7 -1
- package/dist/actors/Inventory.d.ts.map +1 -1
- package/dist/actors/Inventory.js.map +1 -1
- package/dist/actors/craft.d.ts +35 -14
- package/dist/actors/craft.d.ts.map +1 -1
- package/dist/actors/craft.js +56 -24
- package/dist/actors/craft.js.map +1 -1
- package/dist/actors/index.d.ts +1 -1
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/ai/Heuristics.d.ts +232 -0
- package/dist/ai/Heuristics.d.ts.map +1 -0
- package/dist/ai/Heuristics.js +298 -0
- package/dist/ai/Heuristics.js.map +1 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/score.d.ts +126 -0
- package/dist/ai/score.d.ts.map +1 -0
- package/dist/ai/score.js +121 -0
- package/dist/ai/score.js.map +1 -0
- package/dist/assets/loader.d.ts +18 -4
- package/dist/assets/loader.d.ts.map +1 -1
- package/dist/assets/loader.js +40 -11
- package/dist/assets/loader.js.map +1 -1
- package/dist/audio/Positional.d.ts +125 -0
- package/dist/audio/Positional.d.ts.map +1 -0
- package/dist/audio/Positional.js +135 -0
- package/dist/audio/Positional.js.map +1 -0
- package/dist/audio/Sound.d.ts +7 -1
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +8 -2
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +1 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/battle/AttackDialog.d.ts +75 -0
- package/dist/battle/AttackDialog.d.ts.map +1 -0
- package/dist/battle/AttackDialog.js +115 -0
- package/dist/battle/AttackDialog.js.map +1 -0
- package/dist/battle/AttackPreview.d.ts +70 -0
- package/dist/battle/AttackPreview.d.ts.map +1 -0
- package/dist/battle/AttackPreview.js +78 -0
- package/dist/battle/AttackPreview.js.map +1 -0
- package/dist/battle/BattleStats.d.ts +45 -0
- package/dist/battle/BattleStats.d.ts.map +1 -0
- package/dist/battle/BattleStats.js +63 -0
- package/dist/battle/BattleStats.js.map +1 -0
- package/dist/battle/UnitSelector.d.ts +72 -0
- package/dist/battle/UnitSelector.d.ts.map +1 -0
- package/dist/battle/UnitSelector.js +117 -0
- package/dist/battle/UnitSelector.js.map +1 -0
- package/dist/battle/Whiteboard.d.ts +50 -0
- package/dist/battle/Whiteboard.d.ts.map +1 -0
- package/dist/battle/Whiteboard.js +94 -0
- package/dist/battle/Whiteboard.js.map +1 -0
- package/dist/battle/index.d.ts +10 -0
- package/dist/battle/index.d.ts.map +1 -1
- package/dist/battle/index.js +5 -0
- package/dist/battle/index.js.map +1 -1
- package/dist/board/FogOfWar.d.ts +32 -2
- package/dist/board/FogOfWar.d.ts.map +1 -1
- package/dist/board/FogOfWar.js +70 -6
- package/dist/board/FogOfWar.js.map +1 -1
- package/dist/core/Achievements.d.ts +40 -7
- package/dist/core/Achievements.d.ts.map +1 -1
- package/dist/core/Achievements.js +51 -7
- package/dist/core/Achievements.js.map +1 -1
- package/dist/core/Blob.d.ts +13 -2
- package/dist/core/Blob.d.ts.map +1 -1
- package/dist/core/Blob.js +16 -2
- package/dist/core/Blob.js.map +1 -1
- package/dist/core/Hex.d.ts +26 -6
- package/dist/core/Hex.d.ts.map +1 -1
- package/dist/core/Hex.js +40 -13
- package/dist/core/Hex.js.map +1 -1
- package/dist/core/Input.d.ts +36 -0
- package/dist/core/Input.d.ts.map +1 -1
- package/dist/core/Input.js +63 -1
- package/dist/core/Input.js.map +1 -1
- package/dist/core/Random.d.ts +93 -0
- package/dist/core/Random.d.ts.map +1 -1
- package/dist/core/Random.js +177 -0
- package/dist/core/Random.js.map +1 -1
- package/dist/core/SyncGuard.d.ts +57 -0
- package/dist/core/SyncGuard.d.ts.map +1 -0
- package/dist/core/SyncGuard.js +116 -0
- package/dist/core/SyncGuard.js.map +1 -0
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/Po.d.ts +51 -0
- package/dist/i18n/Po.d.ts.map +1 -0
- package/dist/i18n/Po.js +176 -0
- package/dist/i18n/Po.js.map +1 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +1 -0
- package/dist/i18n/index.js.map +1 -1
- package/dist/mw_games.global.js +104 -98
- package/dist/mwl/MapFile.d.ts +41 -0
- package/dist/mwl/MapFile.d.ts.map +1 -0
- package/dist/mwl/MapFile.js +43 -0
- package/dist/mwl/MapFile.js.map +1 -0
- package/dist/mwl/campaign.d.ts +51 -0
- package/dist/mwl/campaign.d.ts.map +1 -0
- package/dist/mwl/campaign.js +58 -0
- package/dist/mwl/campaign.js.map +1 -0
- package/dist/mwl/carryover.d.ts +79 -0
- package/dist/mwl/carryover.d.ts.map +1 -0
- package/dist/mwl/carryover.js +63 -0
- package/dist/mwl/carryover.js.map +1 -0
- package/dist/mwl/content.d.ts +10 -0
- package/dist/mwl/content.d.ts.map +1 -1
- package/dist/mwl/content.js +8 -0
- package/dist/mwl/content.js.map +1 -1
- package/dist/mwl/hooks.d.ts +6 -5
- package/dist/mwl/hooks.d.ts.map +1 -1
- package/dist/mwl/hooks.js.map +1 -1
- package/dist/mwl/index.d.ts +8 -2
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +4 -1
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/runtime.d.ts +140 -7
- package/dist/mwl/runtime.d.ts.map +1 -1
- package/dist/mwl/runtime.js +427 -33
- package/dist/mwl/runtime.js.map +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/schema.js +97 -18
- package/dist/mwl/schema.js.map +1 -1
- package/dist/roguelike/MultiTurnBeam.d.ts +50 -12
- package/dist/roguelike/MultiTurnBeam.d.ts.map +1 -1
- package/dist/roguelike/MultiTurnBeam.js +100 -53
- package/dist/roguelike/MultiTurnBeam.js.map +1 -1
- package/dist/roguelike/Targeting.d.ts +94 -0
- package/dist/roguelike/Targeting.d.ts.map +1 -1
- package/dist/roguelike/Targeting.js +123 -0
- package/dist/roguelike/Targeting.js.map +1 -1
- package/dist/roguelike/index.d.ts +3 -1
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +1 -0
- package/dist/roguelike/index.js.map +1 -1
- package/dist/simulation/CampaignSave.d.ts +68 -0
- package/dist/simulation/CampaignSave.d.ts.map +1 -0
- package/dist/simulation/CampaignSave.js +54 -0
- package/dist/simulation/CampaignSave.js.map +1 -0
- package/dist/simulation/EventPresentation.d.ts +111 -0
- package/dist/simulation/EventPresentation.d.ts.map +1 -0
- package/dist/simulation/EventPresentation.js +120 -0
- package/dist/simulation/EventPresentation.js.map +1 -0
- package/dist/simulation/index.d.ts +4 -0
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +2 -0
- package/dist/simulation/index.js.map +1 -1
- package/dist/two-d/pixi-interop.d.ts +18 -6
- package/dist/two-d/pixi-interop.d.ts.map +1 -1
- package/dist/two-d/pixi-interop.js +18 -6
- package/dist/two-d/pixi-interop.js.map +1 -1
- package/dist/two-d/render/AnimatedSprite.d.ts +74 -7
- package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
- package/dist/two-d/render/AnimatedSprite.js +88 -26
- package/dist/two-d/render/AnimatedSprite.js.map +1 -1
- package/dist/two-d/render/Camera.d.ts +64 -4
- package/dist/two-d/render/Camera.d.ts.map +1 -1
- package/dist/two-d/render/Camera.js +132 -11
- package/dist/two-d/render/Camera.js.map +1 -1
- package/dist/two-d/render/Halo.d.ts +58 -0
- package/dist/two-d/render/Halo.d.ts.map +1 -0
- package/dist/two-d/render/Halo.js +48 -0
- package/dist/two-d/render/Halo.js.map +1 -0
- package/dist/two-d/render/ImageModifiers.d.ts +174 -0
- package/dist/two-d/render/ImageModifiers.d.ts.map +1 -1
- package/dist/two-d/render/ImageModifiers.js +438 -1
- package/dist/two-d/render/ImageModifiers.js.map +1 -1
- package/dist/two-d/render/LightningArc.d.ts +57 -0
- package/dist/two-d/render/LightningArc.d.ts.map +1 -0
- package/dist/two-d/render/LightningArc.js +91 -0
- package/dist/two-d/render/LightningArc.js.map +1 -0
- package/dist/two-d/render/PaletteRemap.d.ts +135 -0
- package/dist/two-d/render/PaletteRemap.d.ts.map +1 -0
- package/dist/two-d/render/PaletteRemap.js +181 -0
- package/dist/two-d/render/PaletteRemap.js.map +1 -0
- package/dist/two-d/render/Particles.d.ts +26 -0
- package/dist/two-d/render/Particles.d.ts.map +1 -1
- package/dist/two-d/render/Particles.js +23 -2
- package/dist/two-d/render/Particles.js.map +1 -1
- package/dist/two-d/render/SpriteAttachment.d.ts +55 -0
- package/dist/two-d/render/SpriteAttachment.d.ts.map +1 -0
- package/dist/two-d/render/SpriteAttachment.js +60 -0
- package/dist/two-d/render/SpriteAttachment.js.map +1 -0
- package/dist/two-d/render/TerrainGraphics.d.ts +142 -0
- package/dist/two-d/render/TerrainGraphics.d.ts.map +1 -0
- package/dist/two-d/render/TerrainGraphics.js +161 -0
- package/dist/two-d/render/TerrainGraphics.js.map +1 -0
- package/dist/two-d/render/index.d.ts +13 -3
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +6 -1
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/stage/StoryScreen.d.ts +110 -0
- package/dist/two-d/stage/StoryScreen.d.ts.map +1 -0
- package/dist/two-d/stage/StoryScreen.js +178 -0
- package/dist/two-d/stage/StoryScreen.js.map +1 -0
- package/dist/two-d/stage/index.d.ts +2 -0
- package/dist/two-d/stage/index.d.ts.map +1 -1
- package/dist/two-d/stage/index.js +1 -0
- package/dist/two-d/stage/index.js.map +1 -1
- package/dist/two-d/ui/Checkbox.d.ts +44 -0
- package/dist/two-d/ui/Checkbox.d.ts.map +1 -0
- package/dist/two-d/ui/Checkbox.js +89 -0
- package/dist/two-d/ui/Checkbox.js.map +1 -0
- package/dist/two-d/ui/DataTable.d.ts +79 -0
- package/dist/two-d/ui/DataTable.d.ts.map +1 -0
- package/dist/two-d/ui/DataTable.js +164 -0
- package/dist/two-d/ui/DataTable.js.map +1 -0
- package/dist/two-d/ui/Dropdown.d.ts +72 -0
- package/dist/two-d/ui/Dropdown.d.ts.map +1 -0
- package/dist/two-d/ui/Dropdown.js +126 -0
- package/dist/two-d/ui/Dropdown.js.map +1 -0
- package/dist/two-d/ui/FloatingText.d.ts +43 -4
- package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
- package/dist/two-d/ui/FloatingText.js +52 -5
- package/dist/two-d/ui/FloatingText.js.map +1 -1
- package/dist/two-d/ui/FloatingTextStack.d.ts +86 -13
- package/dist/two-d/ui/FloatingTextStack.d.ts.map +1 -1
- package/dist/two-d/ui/FloatingTextStack.js +89 -18
- package/dist/two-d/ui/FloatingTextStack.js.map +1 -1
- package/dist/two-d/ui/Layout.d.ts +105 -0
- package/dist/two-d/ui/Layout.d.ts.map +1 -0
- package/dist/two-d/ui/Layout.js +174 -0
- package/dist/two-d/ui/Layout.js.map +1 -0
- package/dist/two-d/ui/ScrollBox.d.ts +67 -0
- package/dist/two-d/ui/ScrollBox.d.ts.map +1 -0
- package/dist/two-d/ui/ScrollBox.js +127 -0
- package/dist/two-d/ui/ScrollBox.js.map +1 -0
- package/dist/two-d/ui/Skins.d.ts +59 -0
- package/dist/two-d/ui/Skins.d.ts.map +1 -0
- package/dist/two-d/ui/Skins.js +77 -0
- package/dist/two-d/ui/Skins.js.map +1 -0
- package/dist/two-d/ui/Slider.d.ts +91 -0
- package/dist/two-d/ui/Slider.d.ts.map +1 -0
- package/dist/two-d/ui/Slider.js +170 -0
- package/dist/two-d/ui/Slider.js.map +1 -0
- package/dist/two-d/ui/Spinner.d.ts +67 -0
- package/dist/two-d/ui/Spinner.d.ts.map +1 -0
- package/dist/two-d/ui/Spinner.js +137 -0
- package/dist/two-d/ui/Spinner.js.map +1 -0
- package/dist/two-d/ui/TabbedList.d.ts +118 -0
- package/dist/two-d/ui/TabbedList.d.ts.map +1 -0
- package/dist/two-d/ui/TabbedList.js +221 -0
- package/dist/two-d/ui/TabbedList.js.map +1 -0
- package/dist/two-d/ui/TextModel.d.ts +65 -0
- package/dist/two-d/ui/TextModel.d.ts.map +1 -0
- package/dist/two-d/ui/TextModel.js +126 -0
- package/dist/two-d/ui/TextModel.js.map +1 -0
- package/dist/two-d/ui/TreeView.d.ts +68 -0
- package/dist/two-d/ui/TreeView.d.ts.map +1 -0
- package/dist/two-d/ui/TreeView.js +133 -0
- package/dist/two-d/ui/TreeView.js.map +1 -0
- package/dist/two-d/ui/Window.d.ts +13 -0
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +23 -0
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/WindowStack.d.ts.map +1 -1
- package/dist/two-d/ui/WindowStack.js +2 -0
- package/dist/two-d/ui/WindowStack.js.map +1 -1
- package/dist/two-d/ui/index.d.ts +27 -3
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +14 -2
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/two-d/ui/markup.d.ts +127 -0
- package/dist/two-d/ui/markup.d.ts.map +1 -0
- package/dist/two-d/ui/markup.js +322 -0
- package/dist/two-d/ui/markup.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/world/SideTurns.d.ts +115 -0
- package/dist/world/SideTurns.d.ts.map +1 -0
- package/dist/world/SideTurns.js +138 -0
- package/dist/world/SideTurns.js.map +1 -0
- package/dist/world/index.d.ts +2 -0
- package/dist/world/index.d.ts.map +1 -1
- package/dist/world/index.js +1 -0
- package/dist/world/index.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A loaded `.map`: the header keys the file declared, the grid `parseTerrain` already produces,
|
|
3
|
+
* and the same start markers an inline `[map] terrain=` string carries.
|
|
4
|
+
*/
|
|
5
|
+
export interface MwlMapFile {
|
|
6
|
+
/** the `key=value` lines before the grid, in the order written (`border_size`, `usage`, ...) */
|
|
7
|
+
readonly header: Readonly<Record<string, string>>;
|
|
8
|
+
readonly width: number;
|
|
9
|
+
readonly height: number;
|
|
10
|
+
/** row-major terrain codes, `width * height` of them */
|
|
11
|
+
readonly codes: string[];
|
|
12
|
+
/** side number -> the hexes its `[side] start` came from, when the grid marks them */
|
|
13
|
+
readonly starts: Record<number, {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}[]>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Reads a Wesnoth-shaped `.map` file: `key=value` header lines (`border_size=1`, `usage=map`,
|
|
20
|
+
* and anything else the file carries), then one comma-separated row of terrain codes per line.
|
|
21
|
+
* The header is split off and kept, and the grid goes through the same `parseTerrain` an inline
|
|
22
|
+
* `[map] terrain=` string does, so a cell is `base^overlay` exactly as it is there and a
|
|
23
|
+
* `<side> <code>` token still marks that side's start.
|
|
24
|
+
*
|
|
25
|
+
* A file with no header is a bare grid, and the header keys are not interpreted here: what
|
|
26
|
+
* `usage` or `border_size` means to a game is the game's business, the same way this framework
|
|
27
|
+
* leaves `[terrain_graphics]` rules to content.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { parseMapFile } from '@datamoc/mw_games/mwl';
|
|
32
|
+
*
|
|
33
|
+
* const map = parseMapFile('border_size=1\nusage=map\n\nGg, Gg, Gg\nGg, Gg^Vh, Gg\n');
|
|
34
|
+
* map.header.usage; // 'map'
|
|
35
|
+
* map.width; // 3
|
|
36
|
+
* map.height; // 2
|
|
37
|
+
* map.codes; // ['Gg', 'Gg', 'Gg', 'Gg', 'Gg^Vh', 'Gg'] - overlays kept as written
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseMapFile(text: string): MwlMapFile;
|
|
41
|
+
//# sourceMappingURL=MapFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapFile.d.ts","sourceRoot":"","sources":["../../src/mwl/MapFile.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,gGAAgG;IAChG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CAC5D;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAiBrD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { parseTerrain } from './runtime.js';
|
|
2
|
+
const HEADER_LINE = /^\s*([A-Za-z_][\w]*)\s*=\s*(.*?)\s*$/;
|
|
3
|
+
/**
|
|
4
|
+
* Reads a Wesnoth-shaped `.map` file: `key=value` header lines (`border_size=1`, `usage=map`,
|
|
5
|
+
* and anything else the file carries), then one comma-separated row of terrain codes per line.
|
|
6
|
+
* The header is split off and kept, and the grid goes through the same `parseTerrain` an inline
|
|
7
|
+
* `[map] terrain=` string does, so a cell is `base^overlay` exactly as it is there and a
|
|
8
|
+
* `<side> <code>` token still marks that side's start.
|
|
9
|
+
*
|
|
10
|
+
* A file with no header is a bare grid, and the header keys are not interpreted here: what
|
|
11
|
+
* `usage` or `border_size` means to a game is the game's business, the same way this framework
|
|
12
|
+
* leaves `[terrain_graphics]` rules to content.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { parseMapFile } from '@datamoc/mw_games/mwl';
|
|
17
|
+
*
|
|
18
|
+
* const map = parseMapFile('border_size=1\nusage=map\n\nGg, Gg, Gg\nGg, Gg^Vh, Gg\n');
|
|
19
|
+
* map.header.usage; // 'map'
|
|
20
|
+
* map.width; // 3
|
|
21
|
+
* map.height; // 2
|
|
22
|
+
* map.codes; // ['Gg', 'Gg', 'Gg', 'Gg', 'Gg^Vh', 'Gg'] - overlays kept as written
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function parseMapFile(text) {
|
|
26
|
+
const lines = text.split(/\r?\n/);
|
|
27
|
+
const header = {};
|
|
28
|
+
let index = 0;
|
|
29
|
+
for (; index < lines.length; index++) {
|
|
30
|
+
const line = lines[index];
|
|
31
|
+
if (line.trim() === '')
|
|
32
|
+
continue;
|
|
33
|
+
const match = HEADER_LINE.exec(line);
|
|
34
|
+
if (!match)
|
|
35
|
+
break;
|
|
36
|
+
header[match[1]] = match[2];
|
|
37
|
+
}
|
|
38
|
+
//a trailing separator or stray spaces would otherwise become an empty cell
|
|
39
|
+
const grid = lines.slice(index).map((line) => line.replace(/[,\s]+$/, ''));
|
|
40
|
+
const parsed = parseTerrain(grid.join('\n'));
|
|
41
|
+
return { header, ...parsed };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=MapFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapFile.js","sourceRoot":"","sources":["../../src/mwl/MapFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAiB5C,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,2EAA2E;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { StateValue } from '../core/State.ts';
|
|
2
|
+
import type { CampaignLevel, CampaignLevelResult } from '../simulation/Campaign.ts';
|
|
3
|
+
import type { MwlCampaignDefinition, MwlScenarioLink } from './content.ts';
|
|
4
|
+
/** What playing one scenario means, which only the game can say. */
|
|
5
|
+
export type MwlScenarioRunner<State extends StateValue, Result extends StateValue = StateValue> = (scenario: MwlScenarioLink, state: State, context: {
|
|
6
|
+
readonly levelId: string;
|
|
7
|
+
}) => CampaignLevelResult<State, Result>;
|
|
8
|
+
/** A campaign's chain, shaped for `simulation.Campaign`: where it opens, and one level per scenario. */
|
|
9
|
+
export interface MwlCampaignChain<State extends StateValue, Result extends StateValue = StateValue> {
|
|
10
|
+
readonly start: string;
|
|
11
|
+
readonly levels: readonly CampaignLevel<State, Result>[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Points a `[campaign]` at `simulation.Campaign`: the order comes out of the content, the playing
|
|
15
|
+
* stays the game's.
|
|
16
|
+
*
|
|
17
|
+
* `first_scenario` opens the campaign, and the first declared scenario opens it when the attribute
|
|
18
|
+
* is not set. Each scenario's `next_scenario` is where it goes when it is won, and a scenario that
|
|
19
|
+
* ends the chain leaves it: the campaign finishes. A scenario that decides for itself keeps its
|
|
20
|
+
* decision, because a result carrying `next` is passed through untouched - which is exactly what a
|
|
21
|
+
* runtime `[endlevel]` does when it overrides the authored chain.
|
|
22
|
+
*
|
|
23
|
+
* Malformed chains throw by name rather than being guessed at: no scenarios, the same id twice, or
|
|
24
|
+
* a `first_scenario` naming something the campaign does not have.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { campaignChain } from '@datamoc/mw_games/mwl';
|
|
29
|
+
* import { Campaign } from '@datamoc/mw_games/simulation';
|
|
30
|
+
*
|
|
31
|
+
* const definition = {
|
|
32
|
+
* id: 'prologue',
|
|
33
|
+
* firstScenario: 'opening',
|
|
34
|
+
* scenarios: [{ id: 'opening', nextScenario: 'siege' }, { id: 'siege' }],
|
|
35
|
+
* };
|
|
36
|
+
*
|
|
37
|
+
* const chain = campaignChain(definition, {
|
|
38
|
+
* run: (scenario, state) => ({ outcome: 'completed', state, result: scenario.id }),
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* const campaign = new Campaign({ levels: chain.levels, start: chain.start, state: { gold: 100 } });
|
|
42
|
+
* campaign.playCurrent();
|
|
43
|
+
* console.log(campaign.currentLevel); // 'siege'
|
|
44
|
+
* campaign.playCurrent();
|
|
45
|
+
* console.log(campaign.currentLevel); // null - the chain is done
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function campaignChain<State extends StateValue, Result extends StateValue = StateValue>(definition: MwlCampaignDefinition, options: {
|
|
49
|
+
readonly run: MwlScenarioRunner<State, Result>;
|
|
50
|
+
}): MwlCampaignChain<State, Result>;
|
|
51
|
+
//# sourceMappingURL=campaign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../src/mwl/campaign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3E,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,UAAU,EAAE,MAAM,SAAS,UAAU,GAAG,UAAU,IAAI,CACjG,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KACjC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAExC,wGAAwG;AACxG,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,UAAU,EAAE,MAAM,SAAS,UAAU,GAAG,UAAU;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,aAAa,CAAC,KAAK,SAAS,UAAU,EAAE,MAAM,SAAS,UAAU,GAAG,UAAU,EAC7F,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GACzD,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAqBjC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Points a `[campaign]` at `simulation.Campaign`: the order comes out of the content, the playing
|
|
3
|
+
* stays the game's.
|
|
4
|
+
*
|
|
5
|
+
* `first_scenario` opens the campaign, and the first declared scenario opens it when the attribute
|
|
6
|
+
* is not set. Each scenario's `next_scenario` is where it goes when it is won, and a scenario that
|
|
7
|
+
* ends the chain leaves it: the campaign finishes. A scenario that decides for itself keeps its
|
|
8
|
+
* decision, because a result carrying `next` is passed through untouched - which is exactly what a
|
|
9
|
+
* runtime `[endlevel]` does when it overrides the authored chain.
|
|
10
|
+
*
|
|
11
|
+
* Malformed chains throw by name rather than being guessed at: no scenarios, the same id twice, or
|
|
12
|
+
* a `first_scenario` naming something the campaign does not have.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { campaignChain } from '@datamoc/mw_games/mwl';
|
|
17
|
+
* import { Campaign } from '@datamoc/mw_games/simulation';
|
|
18
|
+
*
|
|
19
|
+
* const definition = {
|
|
20
|
+
* id: 'prologue',
|
|
21
|
+
* firstScenario: 'opening',
|
|
22
|
+
* scenarios: [{ id: 'opening', nextScenario: 'siege' }, { id: 'siege' }],
|
|
23
|
+
* };
|
|
24
|
+
*
|
|
25
|
+
* const chain = campaignChain(definition, {
|
|
26
|
+
* run: (scenario, state) => ({ outcome: 'completed', state, result: scenario.id }),
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* const campaign = new Campaign({ levels: chain.levels, start: chain.start, state: { gold: 100 } });
|
|
30
|
+
* campaign.playCurrent();
|
|
31
|
+
* console.log(campaign.currentLevel); // 'siege'
|
|
32
|
+
* campaign.playCurrent();
|
|
33
|
+
* console.log(campaign.currentLevel); // null - the chain is done
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export function campaignChain(definition, options) {
|
|
37
|
+
const scenarios = definition.scenarios;
|
|
38
|
+
if (scenarios.length === 0)
|
|
39
|
+
throw new Error(`campaign ${definition.id} declares no scenarios`);
|
|
40
|
+
const known = new Set(scenarios.map((scenario) => scenario.id));
|
|
41
|
+
if (known.size !== scenarios.length)
|
|
42
|
+
throw new Error(`campaign ${definition.id} declares a scenario twice`);
|
|
43
|
+
const start = definition.firstScenario || scenarios[0].id;
|
|
44
|
+
if (!known.has(start))
|
|
45
|
+
throw new Error(`campaign ${definition.id} starts on an unknown scenario: ${start}`);
|
|
46
|
+
return {
|
|
47
|
+
start,
|
|
48
|
+
levels: scenarios.map((scenario) => ({
|
|
49
|
+
id: scenario.id,
|
|
50
|
+
run: (state, context) => {
|
|
51
|
+
const result = options.run(scenario, state, context);
|
|
52
|
+
//the authored chain answers "where next" unless the scenario answered for itself
|
|
53
|
+
return result.next === undefined ? { ...result, next: scenario.nextScenario ?? null } : result;
|
|
54
|
+
},
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=campaign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../src/mwl/campaign.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,aAAa,CAC5B,UAAiC,EACjC,OAA2D;IAE3D,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAE/F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,CAAC,EAAE,4BAA4B,CAAC,CAAC;IAE5G,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,CAAC,EAAE,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAE5G,OAAO;QACN,KAAK;QACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrD,iFAAiF;gBACjF,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAChG,CAAC;SACD,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { MwlWorld } from './runtime.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Wesnoth's default: the share of a side's gold that survives into the next scenario, unless
|
|
4
|
+
* `[endlevel] carryover_percentage` says otherwise. Its engine carries the winner's gold at 80%,
|
|
5
|
+
* which is the number this mirrors rather than one invented here.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MWL_DEFAULT_CARRYOVER_PERCENTAGE = 80;
|
|
8
|
+
/**
|
|
9
|
+
* Which side an ending scenario hands on: the id `[side]` declared, which is the one identity the
|
|
10
|
+
* world uses, keying `world.sides` and `world.gold` and carried by `unit.side` alike (item 277).
|
|
11
|
+
*/
|
|
12
|
+
export interface MwlSideRef {
|
|
13
|
+
/** the id `[side]` declared, the key `world.sides` and `world.gold` use, and `unit.side` holds */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
}
|
|
16
|
+
/** What `[endlevel]` says when a scenario ends. */
|
|
17
|
+
export interface MwlEndLevel {
|
|
18
|
+
readonly result: 'victory' | 'defeat';
|
|
19
|
+
/** `bonus`: gold added on top of the share, not a share of it */
|
|
20
|
+
readonly bonus?: number;
|
|
21
|
+
/** `carryover_percentage`: the share of the side's gold kept, 80 when unset */
|
|
22
|
+
readonly carryoverPercentage?: number;
|
|
23
|
+
/** `carryover_add`: add the share to the next scenario's gold rather than take the larger of them */
|
|
24
|
+
readonly carryoverAdd?: boolean;
|
|
25
|
+
/** `next_scenario`: where the campaign goes instead of the authored chain, null to end it */
|
|
26
|
+
readonly nextScenario?: string | null;
|
|
27
|
+
}
|
|
28
|
+
/** What one scenario hands to the next. Plain data, so it survives a save. */
|
|
29
|
+
export interface MwlCarryover {
|
|
30
|
+
readonly result: 'victory' | 'defeat';
|
|
31
|
+
/** the gold handed on: the side's share, plus the bonus */
|
|
32
|
+
readonly gold: number;
|
|
33
|
+
/** whether the share is added to the next scenario's gold or taken as a floor under it */
|
|
34
|
+
readonly add: boolean;
|
|
35
|
+
/** ids of the side's units still standing, which become the recall list */
|
|
36
|
+
readonly recall: readonly string[];
|
|
37
|
+
/** where the campaign goes next; null ends it */
|
|
38
|
+
readonly nextScenario: string | null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Works out what a finished scenario hands on: `bonus` plus `carryover_percentage` of the side's
|
|
42
|
+
* gold, the units of that side still standing, and where the campaign goes next.
|
|
43
|
+
*
|
|
44
|
+
* A side of `null` is a scenario that ended without one (no `[side]`, nothing human-controlled):
|
|
45
|
+
* the result and the next scenario are still recorded, with no gold and nobody to recall.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* import { endLevelCarryover, carryoverIntoScenario } from '@datamoc/mw_games/mwl';
|
|
50
|
+
*
|
|
51
|
+
* const world = {
|
|
52
|
+
* variables: {},
|
|
53
|
+
* gold: { '1': 200 },
|
|
54
|
+
* sides: { '1': { gold: 0, income: 2, controller: 'human' } },
|
|
55
|
+
* units: { hero: { hp: 30, x: 1, y: 1, alive: true, side: '1' } },
|
|
56
|
+
* maps: {},
|
|
57
|
+
* turn: 1,
|
|
58
|
+
* status: 'playing' as const,
|
|
59
|
+
* };
|
|
60
|
+
*
|
|
61
|
+
* const carried = endLevelCarryover(world, { id: '1' }, {
|
|
62
|
+
* result: 'victory',
|
|
63
|
+
* bonus: 50,
|
|
64
|
+
* nextScenario: 'siege',
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* console.log(carried.gold); // 210 - 50 bonus plus 80% of 200
|
|
68
|
+
* console.log(carried.recall); // ['hero'] - still standing, so it comes back
|
|
69
|
+
* console.log(carryoverIntoScenario(carried, 100)); // 210 - the larger of the two, not the sum
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function endLevelCarryover(world: MwlWorld, side: MwlSideRef | null, end: MwlEndLevel): MwlCarryover;
|
|
73
|
+
/**
|
|
74
|
+
* What the next scenario starts with, given what it declares and what was carried: the two added
|
|
75
|
+
* when the ending asked for that (`carryover_add`), and otherwise the larger of them, so a share
|
|
76
|
+
* never drags a side below the gold its own scenario gives it.
|
|
77
|
+
*/
|
|
78
|
+
export declare function carryoverIntoScenario(carryover: MwlCarryover, declaredGold: number): number;
|
|
79
|
+
//# sourceMappingURL=carryover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carryover.d.ts","sourceRoot":"","sources":["../../src/mwl/carryover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACpB;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEtC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAEtC,qGAAqG;IACrG,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEhC,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEtC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0FAA0F;IAC1F,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAEtB,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,YAAY,CAgB1G;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3F"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wesnoth's default: the share of a side's gold that survives into the next scenario, unless
|
|
3
|
+
* `[endlevel] carryover_percentage` says otherwise. Its engine carries the winner's gold at 80%,
|
|
4
|
+
* which is the number this mirrors rather than one invented here.
|
|
5
|
+
*/
|
|
6
|
+
export const MWL_DEFAULT_CARRYOVER_PERCENTAGE = 80;
|
|
7
|
+
/**
|
|
8
|
+
* Works out what a finished scenario hands on: `bonus` plus `carryover_percentage` of the side's
|
|
9
|
+
* gold, the units of that side still standing, and where the campaign goes next.
|
|
10
|
+
*
|
|
11
|
+
* A side of `null` is a scenario that ended without one (no `[side]`, nothing human-controlled):
|
|
12
|
+
* the result and the next scenario are still recorded, with no gold and nobody to recall.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { endLevelCarryover, carryoverIntoScenario } from '@datamoc/mw_games/mwl';
|
|
17
|
+
*
|
|
18
|
+
* const world = {
|
|
19
|
+
* variables: {},
|
|
20
|
+
* gold: { '1': 200 },
|
|
21
|
+
* sides: { '1': { gold: 0, income: 2, controller: 'human' } },
|
|
22
|
+
* units: { hero: { hp: 30, x: 1, y: 1, alive: true, side: '1' } },
|
|
23
|
+
* maps: {},
|
|
24
|
+
* turn: 1,
|
|
25
|
+
* status: 'playing' as const,
|
|
26
|
+
* };
|
|
27
|
+
*
|
|
28
|
+
* const carried = endLevelCarryover(world, { id: '1' }, {
|
|
29
|
+
* result: 'victory',
|
|
30
|
+
* bonus: 50,
|
|
31
|
+
* nextScenario: 'siege',
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* console.log(carried.gold); // 210 - 50 bonus plus 80% of 200
|
|
35
|
+
* console.log(carried.recall); // ['hero'] - still standing, so it comes back
|
|
36
|
+
* console.log(carryoverIntoScenario(carried, 100)); // 210 - the larger of the two, not the sum
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function endLevelCarryover(world, side, end) {
|
|
40
|
+
const percentage = end.carryoverPercentage ?? MWL_DEFAULT_CARRYOVER_PERCENTAGE;
|
|
41
|
+
const held = side ? (world.gold[side.id] ?? world.sides[side.id]?.gold ?? 0) : 0;
|
|
42
|
+
return {
|
|
43
|
+
result: end.result,
|
|
44
|
+
gold: Math.floor((held * percentage) / 100) + (end.bonus ?? 0),
|
|
45
|
+
add: end.carryoverAdd ?? false,
|
|
46
|
+
recall: side
|
|
47
|
+
? Object.entries(world.units)
|
|
48
|
+
.filter(([, unit]) => unit.alive && unit.side === side.id)
|
|
49
|
+
.map(([id]) => id)
|
|
50
|
+
.sort()
|
|
51
|
+
: [],
|
|
52
|
+
nextScenario: end.nextScenario ?? null,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* What the next scenario starts with, given what it declares and what was carried: the two added
|
|
57
|
+
* when the ending asked for that (`carryover_add`), and otherwise the larger of them, so a share
|
|
58
|
+
* never drags a side below the gold its own scenario gives it.
|
|
59
|
+
*/
|
|
60
|
+
export function carryoverIntoScenario(carryover, declaredGold) {
|
|
61
|
+
return carryover.add ? declaredGold + carryover.gold : Math.max(declaredGold, carryover.gold);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=carryover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carryover.js","sourceRoot":"","sources":["../../src/mwl/carryover.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AA6CnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAe,EAAE,IAAuB,EAAE,GAAgB;IAC3F,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,IAAI,gCAAgC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,OAAO;QACN,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9D,GAAG,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;QAC9B,MAAM,EAAE,IAAI;YACX,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;iBACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;iBACjB,IAAI,EAAE;YACT,CAAC,CAAC,EAAE;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;KACtC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAuB,EAAE,YAAoB;IAClF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC"}
|
package/dist/mwl/content.d.ts
CHANGED
|
@@ -11,12 +11,22 @@ export interface MwlTableDefinition {
|
|
|
11
11
|
readonly columns: readonly MwlTableColumn[];
|
|
12
12
|
readonly rows: readonly Readonly<Record<string, unknown>>[];
|
|
13
13
|
}
|
|
14
|
+
/** One scenario in a campaign's chain: where it goes when it is won. */
|
|
15
|
+
export interface MwlScenarioLink {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
/** the scenario that follows, `next_scenario`; absent means this one ends the campaign */
|
|
18
|
+
readonly nextScenario?: string;
|
|
19
|
+
}
|
|
14
20
|
export interface MwlCampaignDefinition {
|
|
15
21
|
readonly id: string;
|
|
16
22
|
readonly name?: string;
|
|
17
23
|
readonly title?: string;
|
|
18
24
|
readonly description?: string;
|
|
19
25
|
readonly startScene?: string;
|
|
26
|
+
/** the scenario the campaign opens on, `first_scenario`; the first declared one when unset */
|
|
27
|
+
readonly firstScenario?: string;
|
|
28
|
+
/** the campaign's scenarios in declared order, each with the one that follows it */
|
|
29
|
+
readonly scenarios: readonly MwlScenarioLink[];
|
|
20
30
|
}
|
|
21
31
|
export interface MwlItemDefinition {
|
|
22
32
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/mwl/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAuC,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAgBvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CAC5D;AACD,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/mwl/content.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/content.js
CHANGED
|
@@ -16,6 +16,14 @@ export function contentCatalog(game) {
|
|
|
16
16
|
title: node.attributes.title,
|
|
17
17
|
description: node.attributes.description,
|
|
18
18
|
startScene: node.attributes.start_scene,
|
|
19
|
+
firstScenario: node.attributes.first_scenario,
|
|
20
|
+
scenarios: node.children
|
|
21
|
+
.filter((child) => child.tag === 'scenario')
|
|
22
|
+
.map((child) => ({
|
|
23
|
+
id: required(child, 'id'),
|
|
24
|
+
//an empty `next_scenario` is the same as none: the campaign ends there
|
|
25
|
+
nextScenario: child.attributes.next_scenario || undefined,
|
|
26
|
+
})),
|
|
19
27
|
})),
|
|
20
28
|
items: nodes
|
|
21
29
|
.filter((node) => node.tag === 'item')
|
package/dist/mwl/content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/mwl/content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AACvF,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AACnC,MAAM,GAAG,GAAG,eAAe,CAAC;AAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC;AACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,SAAS,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/mwl/content.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/hooks.d.ts
CHANGED
|
@@ -18,7 +18,8 @@ export interface HookWorld {
|
|
|
18
18
|
readonly y: number;
|
|
19
19
|
readonly alive: boolean;
|
|
20
20
|
readonly type?: string;
|
|
21
|
-
|
|
21
|
+
/** the id `[side]` declared, the same key `world.sides` and `world.gold` use */
|
|
22
|
+
readonly side?: string;
|
|
22
23
|
}>>;
|
|
23
24
|
readonly sides: Readonly<Record<string, {
|
|
24
25
|
readonly gold: number;
|
|
@@ -30,14 +31,14 @@ export interface HookWorld {
|
|
|
30
31
|
export interface Emit {
|
|
31
32
|
move(unit: string, x: number, y: number): void;
|
|
32
33
|
attack(attacker: string, defender: string, weapon?: string): void;
|
|
33
|
-
spawn(type: string, side:
|
|
34
|
+
spawn(type: string, side: string, x: number, y: number): void;
|
|
34
35
|
kill(unit: string): void;
|
|
35
|
-
gold(side:
|
|
36
|
+
gold(side: string, delta: number): void;
|
|
36
37
|
setVariable(name: string, value: MwlValue): void;
|
|
37
38
|
message(speaker: string, text: string): void;
|
|
38
39
|
endTurn(): void;
|
|
39
|
-
win(side:
|
|
40
|
-
lose(side:
|
|
40
|
+
win(side: string): void;
|
|
41
|
+
lose(side: string): void;
|
|
41
42
|
}
|
|
42
43
|
export type HookContext = Readonly<Record<string, string>>;
|
|
43
44
|
export type PredicateHook = (world: HookWorld, context: HookContext) => boolean;
|
package/dist/mwl/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/mwl/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/mwl/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC;AAE/F,eAAO,MAAM,SAAS,EAAE,SAAS,QAAQ,EAAyE,CAAC;AAEnH,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CACvB,MAAM,CACL,MAAM,EACN;QACC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,gFAAgF;QAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACvB,CACD,CACD,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,IAAI;IACpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;IAChB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;AAC7F,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;AAClF,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOzF;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,EAAE,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GACzB,aAAa,EAAE,CAajB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAejF"}
|
package/dist/mwl/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/mwl/hooks.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/mwl/hooks.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AA4DnH,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAa,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,kDAAkD;AAClD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,IAAqB,EAAQ,EAAE;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,mDAAmD;YACnD,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;gBAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,QAAsB,EAAQ,EAAE;QAC3D,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,UAAoC,EACpC,SAA2B;IAE3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,WAAW,GAAoB,EAAE,CAAC;IACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,QAAQ,EAAE,qBAAqB;gBACxC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACtE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAoC;IACxE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CACT,8HAA8H,CAC9H,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/mwl/index.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
export { MwlSyntaxError, isGettext, parse, parseValue, preprocess } from './grammar.ts';
|
|
2
2
|
export type { MwlDiagnostic, MwlLocation, MwlNode, MwlPreprocessOptions } from './grammar.ts';
|
|
3
|
+
export { parseMapFile } from './MapFile.ts';
|
|
4
|
+
export type { MwlMapFile } from './MapFile.ts';
|
|
3
5
|
export { coerceTableValue, parseTableColumns, schema01, validate } from './schema.ts';
|
|
4
6
|
export type { MwlTableColumn, MwlTagSchema, MwlValueType } from './schema.ts';
|
|
5
7
|
export { compile, compileAndEmitSources, compileNodes, compileSources, emitArtifacts, emitModule, extractCatalog, } from './compiler.ts';
|
|
6
8
|
export type { MwlArtifact, MwlCatalog, MwlCatalogOptions, MwlCompileOptions, MwlCompiledGame, MwlCompiledNode, MwlEmitOptions, MwlSourceFile, } from './compiler.ts';
|
|
7
9
|
export { collectHookReferences, emitHooksDeclaration, hookTypes, parseHookReference, validateHookReferences, } from './hooks.ts';
|
|
8
10
|
export type { AiHook, CommandHook, Emit, GeneratorHook, HookContext, HookReference, HookType, HookTypeMap, HookWorld, MigrationHook, ModifierHook, PredicateHook, } from './hooks.ts';
|
|
9
|
-
export { createWorld, execute, MwlRuntime, parseTerrain } from './runtime.ts';
|
|
11
|
+
export { createWorld, execute, MwlRuntime, parseTerrain, sideVisionGroups } from './runtime.ts';
|
|
10
12
|
export type { MwlCommand, MwlDialogueChoice, MwlHookRegistry, MwlMap, MwlMapStart, MwlMessage, MwlRuntimeOptions, MwlTraceEvent, MwlWorld, } from './runtime.ts';
|
|
13
|
+
export { carryoverIntoScenario, endLevelCarryover, MWL_DEFAULT_CARRYOVER_PERCENTAGE } from './carryover.ts';
|
|
14
|
+
export type { MwlCarryover, MwlEndLevel, MwlSideRef } from './carryover.ts';
|
|
15
|
+
export { campaignChain } from './campaign.ts';
|
|
16
|
+
export type { MwlCampaignChain, MwlScenarioRunner } from './campaign.ts';
|
|
11
17
|
export { contentCatalog } from './content.ts';
|
|
12
|
-
export type { MwlCampaignDefinition } from './content.ts';
|
|
18
|
+
export type { MwlCampaignDefinition, MwlScenarioLink } from './content.ts';
|
|
13
19
|
export type { MwlContentCatalog, MwlEffectDefinition, MwlAiDefinition, MwlBehaviorDefinition, MwlItemDefinition, MwlLootDefinition, MwlMonsterDefinition, MwlStatusDefinition, MwlTableDefinition, MwlTurnClockDefinition, } from './content.ts';
|
|
14
20
|
export { evaluateExpression, parseExpression } from './expression.ts';
|
|
15
21
|
export type { MwlExpression, MwlExpressionContext } from './expression.ts';
|
package/dist/mwl/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mwl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACN,OAAO,EACP,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,MAAM,EACN,WAAW,EACX,IAAI,EACJ,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,aAAa,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mwl/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export { MwlSyntaxError, isGettext, parse, parseValue, preprocess } from './grammar.js';
|
|
2
|
+
export { parseMapFile } from './MapFile.js';
|
|
2
3
|
export { coerceTableValue, parseTableColumns, schema01, validate } from './schema.js';
|
|
3
4
|
export { compile, compileAndEmitSources, compileNodes, compileSources, emitArtifacts, emitModule, extractCatalog, } from './compiler.js';
|
|
4
5
|
export { collectHookReferences, emitHooksDeclaration, hookTypes, parseHookReference, validateHookReferences, } from './hooks.js';
|
|
5
|
-
export { createWorld, execute, MwlRuntime, parseTerrain } from './runtime.js';
|
|
6
|
+
export { createWorld, execute, MwlRuntime, parseTerrain, sideVisionGroups } from './runtime.js';
|
|
7
|
+
export { carryoverIntoScenario, endLevelCarryover, MWL_DEFAULT_CARRYOVER_PERCENTAGE } from './carryover.js';
|
|
8
|
+
export { campaignChain } from './campaign.js';
|
|
6
9
|
export { contentCatalog } from './content.js';
|
|
7
10
|
export { evaluateExpression, parseExpression } from './expression.js';
|
|
8
11
|
export { composeEffects, effectToModifier, inventoryItem, itemDefinition } from './actors.js';
|
package/dist/mwl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mwl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EACN,OAAO,EACP,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,GACd,MAAM,eAAe,CAAC;AAWvB,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mwl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EACN,OAAO,EACP,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,GACd,MAAM,eAAe,CAAC;AAWvB,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYhG,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAc9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|