@datamoc/mw_games 0.1.1 → 0.2.0
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/README.md +57 -32
- package/dist/actors/Appearances.js +1 -1
- package/dist/actors/Aura.d.ts +29 -0
- package/dist/actors/Aura.d.ts.map +1 -0
- package/dist/actors/Aura.js +69 -0
- package/dist/actors/Aura.js.map +1 -0
- package/dist/actors/ItemStatusEffect.d.ts +27 -0
- package/dist/actors/ItemStatusEffect.d.ts.map +1 -0
- package/dist/actors/ItemStatusEffect.js +35 -0
- package/dist/actors/ItemStatusEffect.js.map +1 -0
- package/dist/actors/Resource.d.ts.map +1 -1
- package/dist/actors/Resource.js +13 -5
- package/dist/actors/Resource.js.map +1 -1
- package/dist/actors/Support.d.ts +32 -0
- package/dist/actors/Support.d.ts.map +1 -0
- package/dist/actors/Support.js +60 -0
- package/dist/actors/Support.js.map +1 -0
- package/dist/actors/Traits.d.ts +29 -0
- package/dist/actors/Traits.d.ts.map +1 -0
- package/dist/actors/Traits.js +21 -0
- package/dist/actors/Traits.js.map +1 -0
- package/dist/actors/craft.d.ts.map +1 -1
- package/dist/actors/craft.js +6 -2
- package/dist/actors/craft.js.map +1 -1
- package/dist/actors/index.d.ts +8 -0
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/actors/index.js +4 -0
- package/dist/actors/index.js.map +1 -1
- package/dist/assets/Streaming.d.ts +40 -0
- package/dist/assets/Streaming.d.ts.map +1 -0
- package/dist/assets/Streaming.js +79 -0
- package/dist/assets/Streaming.js.map +1 -0
- package/dist/assets/index.d.ts +14 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +19 -0
- package/dist/assets/index.js.map +1 -1
- package/dist/audio/Captions.d.ts +15 -0
- package/dist/audio/Captions.d.ts.map +1 -0
- package/dist/audio/Captions.js +4 -0
- package/dist/audio/Captions.js.map +1 -0
- package/dist/audio/Midi.d.ts +75 -0
- package/dist/audio/Midi.d.ts.map +1 -0
- package/dist/audio/Midi.js +186 -0
- package/dist/audio/Midi.js.map +1 -0
- package/dist/audio/Orchestrator.d.ts +40 -0
- package/dist/audio/Orchestrator.d.ts.map +1 -0
- package/dist/audio/Orchestrator.js +48 -0
- package/dist/audio/Orchestrator.js.map +1 -0
- package/dist/audio/Sound.d.ts +3 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +4 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/Synth.d.ts +35 -0
- package/dist/audio/Synth.d.ts.map +1 -0
- package/dist/audio/Synth.js +96 -0
- package/dist/audio/Synth.js.map +1 -0
- package/dist/audio/index.d.ts +8 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +4 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/battle/Party.d.ts.map +1 -1
- package/dist/battle/Party.js +2 -0
- package/dist/battle/Party.js.map +1 -1
- package/dist/board/Army.d.ts +17 -0
- package/dist/board/Army.d.ts.map +1 -0
- package/dist/board/Army.js +48 -0
- package/dist/board/Army.js.map +1 -0
- package/dist/board/Classics.d.ts.map +1 -1
- package/dist/board/Classics.js +14 -6
- package/dist/board/Classics.js.map +1 -1
- package/dist/board/FogOfWar.d.ts +23 -0
- package/dist/board/FogOfWar.d.ts.map +1 -0
- package/dist/board/FogOfWar.js +40 -0
- package/dist/board/FogOfWar.js.map +1 -0
- package/dist/board/Tactics.d.ts +2 -0
- package/dist/board/Tactics.d.ts.map +1 -1
- package/dist/board/Tactics.js +36 -8
- package/dist/board/Tactics.js.map +1 -1
- package/dist/board/index.d.ts +5 -1
- package/dist/board/index.d.ts.map +1 -1
- package/dist/board/index.js +3 -1
- package/dist/board/index.js.map +1 -1
- package/dist/core/Feedback.d.ts +23 -0
- package/dist/core/Feedback.d.ts.map +1 -0
- package/dist/core/Feedback.js +35 -0
- package/dist/core/Feedback.js.map +1 -0
- package/dist/core/Game.d.ts +27 -1
- package/dist/core/Game.d.ts.map +1 -1
- package/dist/core/Game.js +61 -5
- package/dist/core/Game.js.map +1 -1
- package/dist/core/Input.d.ts +59 -1
- package/dist/core/Input.d.ts.map +1 -1
- package/dist/core/Input.js +135 -0
- package/dist/core/Input.js.map +1 -1
- package/dist/core/Loading.d.ts +48 -0
- package/dist/core/Loading.d.ts.map +1 -0
- package/dist/core/Loading.js +102 -0
- package/dist/core/Loading.js.map +1 -0
- package/dist/core/News.d.ts +46 -0
- package/dist/core/News.d.ts.map +1 -0
- package/dist/core/News.js +79 -0
- package/dist/core/News.js.map +1 -0
- package/dist/core/PlayerInput.d.ts +38 -0
- package/dist/core/PlayerInput.d.ts.map +1 -0
- package/dist/core/PlayerInput.js +57 -0
- package/dist/core/PlayerInput.js.map +1 -0
- package/dist/core/Random.d.ts +2 -2
- package/dist/core/Random.js +2 -2
- package/dist/core/RunHistory.d.ts +43 -0
- package/dist/core/RunHistory.d.ts.map +1 -0
- package/dist/core/RunHistory.js +41 -0
- package/dist/core/RunHistory.js.map +1 -0
- package/dist/core/Sanitize.d.ts +56 -0
- package/dist/core/Sanitize.d.ts.map +1 -0
- package/dist/core/Sanitize.js +87 -0
- package/dist/core/Sanitize.js.map +1 -0
- package/dist/core/Save.d.ts +31 -7
- package/dist/core/Save.d.ts.map +1 -1
- package/dist/core/Save.js +56 -0
- package/dist/core/Save.js.map +1 -1
- package/dist/core/SaveSync.d.ts +26 -0
- package/dist/core/SaveSync.d.ts.map +1 -0
- package/dist/core/SaveSync.js +52 -0
- package/dist/core/SaveSync.js.map +1 -0
- package/dist/core/Scramble.d.ts +13 -0
- package/dist/core/Scramble.d.ts.map +1 -0
- package/dist/core/Scramble.js +44 -0
- package/dist/core/Scramble.js.map +1 -0
- package/dist/core/Session.d.ts +21 -0
- package/dist/core/Session.d.ts.map +1 -0
- package/dist/core/Session.js +11 -0
- package/dist/core/Session.js.map +1 -0
- package/dist/core/Spawner.d.ts +48 -0
- package/dist/core/Spawner.d.ts.map +1 -0
- package/dist/core/Spawner.js +65 -0
- package/dist/core/Spawner.js.map +1 -0
- package/dist/core/Tween.d.ts +25 -0
- package/dist/core/Tween.d.ts.map +1 -0
- package/dist/core/Tween.js +60 -0
- package/dist/core/Tween.js.map +1 -0
- package/dist/core/UndoHistory.d.ts +37 -0
- package/dist/core/UndoHistory.d.ts.map +1 -0
- package/dist/core/UndoHistory.js +49 -0
- package/dist/core/UndoHistory.js.map +1 -0
- package/dist/core/index.d.ts +22 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/Fluent.d.ts +7 -0
- package/dist/i18n/Fluent.d.ts.map +1 -0
- package/dist/i18n/Fluent.js +86 -0
- package/dist/i18n/Fluent.js.map +1 -0
- package/dist/i18n/index.d.ts +15 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +17 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mw_games.global.js +351 -79
- package/dist/render/Camera.d.ts +32 -4
- package/dist/render/Camera.d.ts.map +1 -1
- package/dist/render/Camera.js +58 -23
- package/dist/render/Camera.js.map +1 -1
- package/dist/render/Capabilities.d.ts +51 -0
- package/dist/render/Capabilities.d.ts.map +1 -0
- package/dist/render/Capabilities.js +56 -0
- package/dist/render/Capabilities.js.map +1 -0
- package/dist/render/ColorBlindness.d.ts +16 -0
- package/dist/render/ColorBlindness.d.ts.map +1 -0
- package/dist/render/ColorBlindness.js +41 -0
- package/dist/render/ColorBlindness.js.map +1 -0
- package/dist/render/ColorTransformBatcher.d.ts +9 -0
- package/dist/render/ColorTransformBatcher.d.ts.map +1 -1
- package/dist/render/ColorTransformBatcher.js +131 -19
- package/dist/render/ColorTransformBatcher.js.map +1 -1
- package/dist/render/Minimap.d.ts +52 -0
- package/dist/render/Minimap.d.ts.map +1 -0
- package/dist/render/Minimap.js +95 -0
- package/dist/render/Minimap.js.map +1 -0
- package/dist/render/TileMap.d.ts +2 -2
- package/dist/render/TileMap.d.ts.map +1 -1
- package/dist/render/TileMap.js +12 -12
- package/dist/render/TileMap.js.map +1 -1
- package/dist/render/TintedSprite.d.ts +1 -8
- package/dist/render/TintedSprite.d.ts.map +1 -1
- package/dist/render/TintedSprite.js +3 -111
- package/dist/render/TintedSprite.js.map +1 -1
- package/dist/render/Viewport.d.ts +46 -0
- package/dist/render/Viewport.d.ts.map +1 -0
- package/dist/render/Viewport.js +52 -0
- package/dist/render/Viewport.js.map +1 -0
- package/dist/render/index.d.ts +9 -1
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +5 -1
- package/dist/render/index.js.map +1 -1
- package/dist/roguelike/FieldOfView.d.ts +1 -1
- package/dist/roguelike/Level.d.ts +2 -2
- package/dist/roguelike/Level.d.ts.map +1 -1
- package/dist/roguelike/Level.js +1 -1
- package/dist/roguelike/Level.js.map +1 -1
- package/dist/roguelike/Pathfinder.d.ts +3 -3
- package/dist/roguelike/Pathfinder.js +2 -2
- package/dist/roguelike/Scheduler.d.ts +1 -1
- package/dist/roguelike/Scheduler.js +1 -1
- package/dist/roguelike/Stealth.d.ts +34 -0
- package/dist/roguelike/Stealth.d.ts.map +1 -0
- package/dist/roguelike/Stealth.js +35 -0
- package/dist/roguelike/Stealth.js.map +1 -0
- package/dist/roguelike/generate.d.ts +3 -3
- package/dist/roguelike/generate.js +1 -1
- package/dist/roguelike/generate.js.map +1 -1
- package/dist/roguelike/index.d.ts +2 -0
- 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/rpg/Collision.d.ts +42 -0
- package/dist/rpg/Collision.d.ts.map +1 -0
- package/dist/rpg/Collision.js +77 -0
- package/dist/rpg/Collision.js.map +1 -0
- package/dist/rpg/FreeMover.d.ts +45 -0
- package/dist/rpg/FreeMover.d.ts.map +1 -0
- package/dist/rpg/FreeMover.js +68 -0
- package/dist/rpg/FreeMover.js.map +1 -0
- package/dist/rpg/Marshal.d.ts +65 -0
- package/dist/rpg/Marshal.d.ts.map +1 -0
- package/dist/rpg/Marshal.js +393 -0
- package/dist/rpg/Marshal.js.map +1 -0
- package/dist/rpg/Quest.d.ts +41 -0
- package/dist/rpg/Quest.d.ts.map +1 -1
- package/dist/rpg/Quest.js +39 -6
- package/dist/rpg/Quest.js.map +1 -1
- package/dist/rpg/index.d.ts +7 -1
- package/dist/rpg/index.d.ts.map +1 -1
- package/dist/rpg/index.js +3 -0
- package/dist/rpg/index.js.map +1 -1
- package/dist/stage/DialogueStage.d.ts +2 -3
- package/dist/stage/DialogueStage.d.ts.map +1 -1
- package/dist/stage/DialogueStage.js +21 -30
- package/dist/stage/DialogueStage.js.map +1 -1
- package/dist/stage/index.d.ts +1 -1
- package/dist/stage/index.d.ts.map +1 -1
- package/dist/stage/script.d.ts +32 -3
- package/dist/stage/script.d.ts.map +1 -1
- package/dist/stage/script.js +0 -0
- package/dist/stage/script.js.map +1 -1
- package/dist/three-d/Character3D.d.ts +48 -0
- package/dist/three-d/Character3D.d.ts.map +1 -0
- package/dist/three-d/Character3D.js +96 -0
- package/dist/three-d/Character3D.js.map +1 -0
- package/dist/three-d/Engine3D.d.ts +23 -0
- package/dist/three-d/Engine3D.d.ts.map +1 -0
- package/dist/three-d/Engine3D.js +45 -0
- package/dist/three-d/Engine3D.js.map +1 -0
- package/dist/three-d/Grid.d.ts +14 -0
- package/dist/three-d/Grid.d.ts.map +1 -0
- package/dist/three-d/Grid.js +13 -0
- package/dist/three-d/Grid.js.map +1 -0
- package/dist/three-d/Heightmap.d.ts +35 -0
- package/dist/three-d/Heightmap.d.ts.map +1 -0
- package/dist/three-d/Heightmap.js +29 -0
- package/dist/three-d/Heightmap.js.map +1 -0
- package/dist/three-d/Models.d.ts +12 -0
- package/dist/three-d/Models.d.ts.map +1 -0
- package/dist/three-d/Models.js +14 -0
- package/dist/three-d/Models.js.map +1 -0
- package/dist/three-d/TileGrid3D.d.ts +21 -0
- package/dist/three-d/TileGrid3D.d.ts.map +1 -0
- package/dist/three-d/TileGrid3D.js +65 -0
- package/dist/three-d/TileGrid3D.js.map +1 -0
- package/dist/three-d/Vox.d.ts +24 -0
- package/dist/three-d/Vox.d.ts.map +1 -0
- package/dist/three-d/Vox.js +93 -0
- package/dist/three-d/Vox.js.map +1 -0
- package/dist/three-d/index.d.ts +13 -0
- package/dist/three-d/index.d.ts.map +1 -0
- package/dist/three-d/index.js +7 -0
- package/dist/three-d/index.js.map +1 -0
- package/dist/ui/Bar.d.ts +49 -0
- package/dist/ui/Bar.d.ts.map +1 -0
- package/dist/ui/Bar.js +70 -0
- package/dist/ui/Bar.js.map +1 -0
- package/dist/ui/BitmapLabel.d.ts +42 -0
- package/dist/ui/BitmapLabel.d.ts.map +1 -0
- package/dist/ui/BitmapLabel.js +59 -0
- package/dist/ui/BitmapLabel.js.map +1 -0
- package/dist/ui/Button.d.ts +52 -0
- package/dist/ui/Button.d.ts.map +1 -0
- package/dist/ui/Button.js +147 -0
- package/dist/ui/Button.js.map +1 -0
- package/dist/ui/FloatingText.d.ts +28 -0
- package/dist/ui/FloatingText.d.ts.map +1 -0
- package/dist/ui/FloatingText.js +39 -0
- package/dist/ui/FloatingText.js.map +1 -0
- package/dist/ui/HelpScreen.d.ts +29 -0
- package/dist/ui/HelpScreen.d.ts.map +1 -0
- package/dist/ui/HelpScreen.js +39 -0
- package/dist/ui/HelpScreen.js.map +1 -0
- package/dist/ui/IconGrid.d.ts +8 -0
- package/dist/ui/IconGrid.d.ts.map +1 -1
- package/dist/ui/IconGrid.js +27 -1
- package/dist/ui/IconGrid.js.map +1 -1
- package/dist/ui/Label.d.ts +10 -1
- package/dist/ui/Label.d.ts.map +1 -1
- package/dist/ui/Label.js +25 -2
- package/dist/ui/Label.js.map +1 -1
- package/dist/ui/ListView.d.ts +12 -1
- package/dist/ui/ListView.d.ts.map +1 -1
- package/dist/ui/ListView.js +56 -2
- package/dist/ui/ListView.js.map +1 -1
- package/dist/ui/LoadingScreen.d.ts +31 -0
- package/dist/ui/LoadingScreen.d.ts.map +1 -0
- package/dist/ui/LoadingScreen.js +60 -0
- package/dist/ui/LoadingScreen.js.map +1 -0
- package/dist/ui/MessageBox.d.ts +27 -1
- package/dist/ui/MessageBox.d.ts.map +1 -1
- package/dist/ui/MessageBox.js +63 -14
- package/dist/ui/MessageBox.js.map +1 -1
- package/dist/ui/RebindScreen.d.ts +55 -0
- package/dist/ui/RebindScreen.d.ts.map +1 -0
- package/dist/ui/RebindScreen.js +114 -0
- package/dist/ui/RebindScreen.js.map +1 -0
- package/dist/ui/Toast.d.ts +44 -0
- package/dist/ui/Toast.d.ts.map +1 -0
- package/dist/ui/Toast.js +89 -0
- package/dist/ui/Toast.js.map +1 -0
- package/dist/ui/VerticalLabel.d.ts +5 -0
- package/dist/ui/VerticalLabel.d.ts.map +1 -1
- package/dist/ui/VerticalLabel.js +18 -7
- package/dist/ui/VerticalLabel.js.map +1 -1
- package/dist/ui/Window.d.ts +6 -0
- package/dist/ui/Window.d.ts.map +1 -1
- package/dist/ui/Window.js +16 -1
- package/dist/ui/Window.js.map +1 -1
- package/dist/ui/WindowStack.d.ts +1 -0
- package/dist/ui/WindowStack.d.ts.map +1 -1
- package/dist/ui/WindowStack.js +4 -1
- package/dist/ui/WindowStack.js.map +1 -1
- package/dist/ui/index.d.ts +17 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +9 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/theme.d.ts +21 -0
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +42 -0
- package/dist/ui/theme.js.map +1 -1
- package/dist/version.d.ts +13 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/dist/world/Environment.d.ts +35 -0
- package/dist/world/Environment.d.ts.map +1 -0
- package/dist/world/Environment.js +55 -0
- package/dist/world/Environment.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 +40 -4
package/dist/ui/theme.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Signal } from '../core/Signal.js';
|
|
1
2
|
export const defaultTheme = {
|
|
2
3
|
panelBorder: 4,
|
|
3
4
|
padding: 8,
|
|
@@ -20,10 +21,50 @@ export const defaultTheme = {
|
|
|
20
21
|
},
|
|
21
22
|
overlayAlpha: 0.5,
|
|
22
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* A ready-made high-contrast preset: pure white text on black panels, a thicker border, and
|
|
26
|
+
* a near-opaque modal overlay. Not new capability - `setTheme` already replaces the whole
|
|
27
|
+
* palette a game reads from, so any high-contrast theme was always a second `Theme` object
|
|
28
|
+
* away - but a game wanting one should not have to compose it from scratch, the same recipe
|
|
29
|
+
* `ui.HelpScreen` already is over `Window`/`ListView`/`Label`. `setTheme(highContrastTheme)`
|
|
30
|
+
* applies it; a game with its own colours can still start from this and override just what
|
|
31
|
+
* it wants to keep, the same as any partial object `setTheme` accepts.
|
|
32
|
+
*/
|
|
33
|
+
export const highContrastTheme = {
|
|
34
|
+
panelBorder: 6,
|
|
35
|
+
padding: 10,
|
|
36
|
+
spacing: 4,
|
|
37
|
+
direction: 'ltr',
|
|
38
|
+
font: {
|
|
39
|
+
family: defaultTheme.font.family,
|
|
40
|
+
size: 14,
|
|
41
|
+
lineHeight: 1.5,
|
|
42
|
+
},
|
|
43
|
+
color: {
|
|
44
|
+
text: 0xffffff,
|
|
45
|
+
textDim: 0xcccccc,
|
|
46
|
+
textHighlight: 0xffff00,
|
|
47
|
+
panelFill: 0x000000,
|
|
48
|
+
panelBorder: 0xffffff,
|
|
49
|
+
selection: 0xffff00,
|
|
50
|
+
overlay: 0x000000,
|
|
51
|
+
},
|
|
52
|
+
overlayAlpha: 0.85,
|
|
53
|
+
};
|
|
23
54
|
let current = defaultTheme;
|
|
24
55
|
export function theme() {
|
|
25
56
|
return current;
|
|
26
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Fired with the new theme every time `setTheme` runs.
|
|
60
|
+
*
|
|
61
|
+
* `theme()` is read once, at construction, by every built-in widget - calling `setTheme`
|
|
62
|
+
* changes nothing about what is already on screen. A widget that wants to restyle itself for
|
|
63
|
+
* a day/night palette swap or a light/dark toggle subscribes here and reapplies its own style
|
|
64
|
+
* from the value passed in, the same shape `i18n`'s `direction` already flows into
|
|
65
|
+
* `theme.direction` from a game's own glue code. Every built-in widget already does this.
|
|
66
|
+
*/
|
|
67
|
+
export const themeChanged = new Signal();
|
|
27
68
|
/** replaces the theme; partial objects are merged over the default */
|
|
28
69
|
export function setTheme(next) {
|
|
29
70
|
current = {
|
|
@@ -32,5 +73,6 @@ export function setTheme(next) {
|
|
|
32
73
|
font: { ...defaultTheme.font, ...next.font },
|
|
33
74
|
color: { ...defaultTheme.color, ...next.color },
|
|
34
75
|
};
|
|
76
|
+
themeChanged.dispatch(current);
|
|
35
77
|
}
|
|
36
78
|
//# sourceMappingURL=theme.js.map
|
package/dist/ui/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAqD3C,MAAM,CAAC,MAAM,YAAY,GAAU;IAClC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE;QACL,kFAAkF;QAClF,MAAM,EAAE,uDAAuD;QAC/D,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,GAAG;KACf;IACD,KAAK,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,QAAQ;KACjB;IACD,YAAY,EAAE,GAAG;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAU;IACvC,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE;QACL,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;QAChC,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,GAAG;KACf;IACD,KAAK,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,QAAQ;KACjB;IACD,YAAY,EAAE,IAAI;CAClB,CAAC;AAEF,IAAI,OAAO,GAAU,YAAY,CAAC;AAElC,MAAM,UAAU,KAAK;IACpB,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,EAAS,CAAC;AAEhD,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,IAAoB;IAC5C,OAAO,GAAG;QACT,GAAG,YAAY;QACf,GAAG,IAAI;QACP,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;QAC5C,KAAK,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;KAC/C,CAAC;IACF,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mwg`'s own version, readable without grepping source or diffing a checkout - the
|
|
3
|
+
* discoverability gap named directly: a consuming project (a port, a reference game built
|
|
4
|
+
* against an older `mwg`) had claimed "mwg doesn't have X" three times for a capability
|
|
5
|
+
* that had since shipped, caught only by manually diffing the current checkout each time.
|
|
6
|
+
*
|
|
7
|
+
* Kept in sync with `package.json`'s own `version` field by `tests/version.test.ts`, which
|
|
8
|
+
* fails the moment the two disagree - the cheap alternative to a build step that injects
|
|
9
|
+
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
|
+
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
|
+
*/
|
|
12
|
+
export declare const version = "0.2.0";
|
|
13
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mwg`'s own version, readable without grepping source or diffing a checkout - the
|
|
3
|
+
* discoverability gap named directly: a consuming project (a port, a reference game built
|
|
4
|
+
* against an older `mwg`) had claimed "mwg doesn't have X" three times for a capability
|
|
5
|
+
* that had since shipped, caught only by manually diffing the current checkout each time.
|
|
6
|
+
*
|
|
7
|
+
* Kept in sync with `package.json`'s own `version` field by `tests/version.test.ts`, which
|
|
8
|
+
* fails the moment the two disagree - the cheap alternative to a build step that injects
|
|
9
|
+
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
|
+
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
|
+
*/
|
|
12
|
+
export const version = '0.2.0';
|
|
13
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Signal } from '../core/Signal.ts';
|
|
2
|
+
export type DayPhase = 'dawn' | 'day' | 'dusk' | 'night';
|
|
3
|
+
export interface EnvironmentSnapshot {
|
|
4
|
+
day: number;
|
|
5
|
+
seconds: number;
|
|
6
|
+
phase: DayPhase;
|
|
7
|
+
weather: string;
|
|
8
|
+
}
|
|
9
|
+
export interface EnvironmentOptions {
|
|
10
|
+
/** Length of one day in seconds. */
|
|
11
|
+
dayLength?: number;
|
|
12
|
+
startSeconds?: number;
|
|
13
|
+
startWeather?: string;
|
|
14
|
+
/** Four phase boundaries as fractions of a day, in dawn/day/dusk/night order. */
|
|
15
|
+
phaseBoundaries?: readonly [number, number, number];
|
|
16
|
+
}
|
|
17
|
+
/** A continuous world clock that maps elapsed time to day phase and weather. */
|
|
18
|
+
export declare class EnvironmentClock {
|
|
19
|
+
readonly changed: Signal<EnvironmentSnapshot>;
|
|
20
|
+
readonly dayLength: number;
|
|
21
|
+
private seconds_;
|
|
22
|
+
private weather_;
|
|
23
|
+
private boundaries;
|
|
24
|
+
constructor(options?: EnvironmentOptions);
|
|
25
|
+
get day(): number;
|
|
26
|
+
get seconds(): number;
|
|
27
|
+
get weather(): string;
|
|
28
|
+
get phase(): DayPhase;
|
|
29
|
+
get night(): boolean;
|
|
30
|
+
advance(seconds: number): EnvironmentSnapshot;
|
|
31
|
+
setWeather(weather: string): EnvironmentSnapshot;
|
|
32
|
+
snapshot(): EnvironmentSnapshot;
|
|
33
|
+
static restore(options: EnvironmentOptions, snapshot: EnvironmentSnapshot): EnvironmentClock;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=Environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Environment.d.ts","sourceRoot":"","sources":["../../src/world/Environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAClC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACpD;AAED,gFAAgF;AAChF,qBAAa,gBAAgB;IAC5B,QAAQ,CAAC,OAAO,8BAAqC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAoC;IAEtD,YAAY,OAAO,GAAE,kBAAuB,EAU3C;IAED,IAAI,GAAG,IAAI,MAAM,CAAuD;IACxE,IAAI,OAAO,IAAI,MAAM,CAA0B;IAC/C,IAAI,OAAO,IAAI,MAAM,CAA0B;IAC/C,IAAI,KAAK,IAAI,QAAQ,CAMpB;IACD,IAAI,KAAK,IAAI,OAAO,CAAmC;IAEvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAM5C;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAM/C;IAED,QAAQ,IAAI,mBAAmB,CAE9B;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,gBAAgB,CAE3F;CACD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Signal } from '../core/Signal.js';
|
|
2
|
+
/** A continuous world clock that maps elapsed time to day phase and weather. */
|
|
3
|
+
export class EnvironmentClock {
|
|
4
|
+
constructor(options = {}) {
|
|
5
|
+
this.changed = new Signal();
|
|
6
|
+
this.dayLength = options.dayLength ?? 120;
|
|
7
|
+
if (!(this.dayLength > 0))
|
|
8
|
+
throw new Error('an environment day must be longer than zero seconds');
|
|
9
|
+
this.boundaries = options.phaseBoundaries ?? [0.2, 0.7, 0.8];
|
|
10
|
+
if (this.boundaries[0] <= 0 || this.boundaries[0] >= this.boundaries[1] || this.boundaries[1] >= this.boundaries[2] || this.boundaries[2] >= 1) {
|
|
11
|
+
throw new Error('environment phase boundaries must be ascending fractions strictly between 0 and 1');
|
|
12
|
+
}
|
|
13
|
+
this.seconds_ = options.startSeconds ?? 0;
|
|
14
|
+
this.weather_ = options.startWeather ?? 'clear';
|
|
15
|
+
if (!Number.isFinite(this.seconds_))
|
|
16
|
+
throw new Error('environment startSeconds must be finite');
|
|
17
|
+
}
|
|
18
|
+
get day() { return Math.floor(this.seconds_ / this.dayLength); }
|
|
19
|
+
get seconds() { return this.seconds_; }
|
|
20
|
+
get weather() { return this.weather_; }
|
|
21
|
+
get phase() {
|
|
22
|
+
const fraction = ((this.seconds_ % this.dayLength) + this.dayLength) % this.dayLength / this.dayLength;
|
|
23
|
+
if (fraction < this.boundaries[0])
|
|
24
|
+
return 'dawn';
|
|
25
|
+
if (fraction < this.boundaries[1])
|
|
26
|
+
return 'day';
|
|
27
|
+
if (fraction < this.boundaries[2])
|
|
28
|
+
return 'dusk';
|
|
29
|
+
return 'night';
|
|
30
|
+
}
|
|
31
|
+
get night() { return this.phase === 'night'; }
|
|
32
|
+
advance(seconds) {
|
|
33
|
+
if (!Number.isFinite(seconds) || seconds < 0)
|
|
34
|
+
throw new Error(`environment advance must be non-negative, got ${seconds}`);
|
|
35
|
+
this.seconds_ += seconds;
|
|
36
|
+
const snapshot = this.snapshot();
|
|
37
|
+
this.changed.dispatch(snapshot);
|
|
38
|
+
return snapshot;
|
|
39
|
+
}
|
|
40
|
+
setWeather(weather) {
|
|
41
|
+
if (!weather)
|
|
42
|
+
throw new Error('weather needs a non-empty id');
|
|
43
|
+
this.weather_ = weather;
|
|
44
|
+
const snapshot = this.snapshot();
|
|
45
|
+
this.changed.dispatch(snapshot);
|
|
46
|
+
return snapshot;
|
|
47
|
+
}
|
|
48
|
+
snapshot() {
|
|
49
|
+
return { day: this.day, seconds: this.seconds_, phase: this.phase, weather: this.weather_ };
|
|
50
|
+
}
|
|
51
|
+
static restore(options, snapshot) {
|
|
52
|
+
return new EnvironmentClock({ ...options, startSeconds: snapshot.seconds, startWeather: snapshot.weather });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=Environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Environment.js","sourceRoot":"","sources":["../../src/world/Environment.ts"],"names":[],"mappings":"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"}
|
package/dist/world/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { TurnClock } from './TurnClock.ts';
|
|
|
5
5
|
export type { TimedEffect } from './TurnClock.ts';
|
|
6
6
|
export { rollEncounter } from './Encounters.ts';
|
|
7
7
|
export type { EncounterEntry, EncounterTable } from './Encounters.ts';
|
|
8
|
+
export { EnvironmentClock } from './Environment.ts';
|
|
9
|
+
export type { DayPhase, EnvironmentSnapshot, EnvironmentOptions } from './Environment.ts';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/world/index.js
CHANGED
package/dist/world/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/world/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/world/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datamoc/mw_games",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A framework for
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "A local-file game framework for 2D top-down games, with optional 3D, mobile, and desktop packaging.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -32,13 +32,16 @@
|
|
|
32
32
|
"./rpg": "./dist/rpg/index.js",
|
|
33
33
|
"./battle": "./dist/battle/index.js",
|
|
34
34
|
"./board": "./dist/board/index.js",
|
|
35
|
-
"./audio": "./dist/audio/index.js"
|
|
35
|
+
"./audio": "./dist/audio/index.js",
|
|
36
|
+
"./3d": "./dist/three-d/index.js",
|
|
37
|
+
"./3d/models": "./dist/three-d/Models.js"
|
|
36
38
|
},
|
|
37
39
|
"scripts": {
|
|
38
40
|
"build": "npm run build:pkg && npm run build:global",
|
|
39
41
|
"build:pkg": "tsc -p tsconfig.build.json",
|
|
40
42
|
"build:global": "vite build --config vite.lib.config.ts",
|
|
41
43
|
"check": "tsc --noEmit",
|
|
44
|
+
"audit": "npm audit --audit-level=high",
|
|
42
45
|
"example": "vite --config examples/colour-transform/vite.config.ts",
|
|
43
46
|
"example:build": "vite build --config examples/colour-transform/vite.config.ts && node tools/emit-page.mjs examples/colour-transform",
|
|
44
47
|
"test": "node --test \"tests/**/*.test.ts\"",
|
|
@@ -58,15 +61,48 @@
|
|
|
58
61
|
"example:minigame:build": "vite build --config examples/minigame/vite.config.ts && node tools/emit-page.mjs examples/minigame",
|
|
59
62
|
"example:chess": "vite --config examples/chess/vite.config.ts",
|
|
60
63
|
"example:chess:build": "vite build --config examples/chess/vite.config.ts && node tools/emit-page.mjs examples/chess",
|
|
64
|
+
"example:tower-defense": "vite --config examples/tower-defense/vite.config.ts",
|
|
65
|
+
"example:tower-defense:build": "vite build --config examples/tower-defense/vite.config.ts && node tools/emit-page.mjs examples/tower-defense",
|
|
66
|
+
"example:3d": "vite --config examples/three-d/vite.config.ts",
|
|
67
|
+
"example:3d:build": "vite build --config examples/three-d/vite.config.ts && node tools/emit-page.mjs examples/three-d",
|
|
68
|
+
"example:loading": "vite --config examples/loading/vite.config.ts",
|
|
69
|
+
"example:loading:build": "vite build --config examples/loading/vite.config.ts && node tools/emit-page.mjs examples/loading",
|
|
70
|
+
"benchmark:browser": "npm run example:dungeon:build && node tools/benchmark-browser.mjs",
|
|
71
|
+
"benchmark:3d": "npm run example:3d:build && node tools/benchmark-browser.mjs examples/three-d/dist/index.html",
|
|
72
|
+
"graphics:capabilities": "node tools/graphics-capabilities.mjs",
|
|
61
73
|
"webpage:examples": "node tools/build-webpage-examples.mjs",
|
|
62
|
-
"webpage:docs": "node tools/build-webpage-docs.mjs"
|
|
74
|
+
"webpage:docs": "node tools/build-webpage-docs.mjs",
|
|
75
|
+
"mobile:build": "npm run example:tower-defense:build",
|
|
76
|
+
"cap:cli": "node --require ./tools/capacitor-node-workaround.cjs ./node_modules/@capacitor/cli/bin/capacitor",
|
|
77
|
+
"cap:add:android": "npm run mobile:build && npm run cap:cli -- add android",
|
|
78
|
+
"cap:add:ios": "npm run mobile:build && npm run cap:cli -- add ios",
|
|
79
|
+
"cap:sync": "npm run mobile:build && npm run cap:cli -- sync",
|
|
80
|
+
"cap:open:android": "npm run cap:cli -- open android",
|
|
81
|
+
"cap:open:ios": "npm run cap:cli -- open ios"
|
|
63
82
|
},
|
|
64
83
|
"dependencies": {
|
|
65
84
|
"pixi.js": "^8.20.1",
|
|
66
85
|
"rot-js": "^2.2.1"
|
|
67
86
|
},
|
|
87
|
+
"peerDependencies": {
|
|
88
|
+
"@babylonjs/core": "^9.25.0",
|
|
89
|
+
"@babylonjs/loaders": "^9.25.0",
|
|
90
|
+
"@capacitor/core": "^7.4.4"
|
|
91
|
+
},
|
|
92
|
+
"peerDependenciesMeta": {
|
|
93
|
+
"@babylonjs/core": { "optional": true },
|
|
94
|
+
"@babylonjs/loaders": { "optional": true },
|
|
95
|
+
"@capacitor/core": { "optional": true }
|
|
96
|
+
},
|
|
68
97
|
"devDependencies": {
|
|
98
|
+
"@babylonjs/core": "^9.25.0",
|
|
99
|
+
"@babylonjs/loaders": "^9.25.0",
|
|
100
|
+
"@capacitor/android": "^7.4.4",
|
|
101
|
+
"@capacitor/cli": "^7.4.4",
|
|
102
|
+
"@capacitor/core": "^7.4.4",
|
|
103
|
+
"@capacitor/ios": "^7.4.4",
|
|
69
104
|
"@types/node": "^26.4.1",
|
|
105
|
+
"playwright-core": "^1.62.1",
|
|
70
106
|
"typescript": "^7.0.2",
|
|
71
107
|
"vite": "^8.2.2"
|
|
72
108
|
},
|