@almadar/ui 5.81.0 → 5.83.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/dist/avl/index.cjs +1716 -5789
- package/dist/avl/index.js +684 -4757
- package/dist/components/core/atoms/Badge.d.ts +3 -0
- package/dist/components/core/atoms/Button.d.ts +3 -1
- package/dist/components/core/molecules/Tabs.d.ts +3 -1
- package/dist/components/core/templates/index.d.ts +0 -10
- package/dist/components/game/2d/atoms/GameCard.d.ts +3 -1
- package/dist/components/game/2d/molecules/Canvas2D.d.ts +6 -5
- package/dist/components/game/2d/molecules/ControlGrid.d.ts +6 -1
- package/dist/components/game/2d/molecules/index.d.ts +0 -34
- package/dist/components/game/3d/index.cjs +3 -1
- package/dist/components/game/3d/index.js +3 -1
- package/dist/components/index.cjs +8353 -12451
- package/dist/components/index.js +4667 -8731
- package/dist/marketing/index.cjs +6 -3
- package/dist/marketing/index.d.cts +5 -1
- package/dist/marketing/index.js +7 -4
- package/dist/providers/index.cjs +1583 -5656
- package/dist/providers/index.js +660 -4733
- package/dist/runtime/index.cjs +1577 -5650
- package/dist/runtime/index.js +664 -4737
- package/package.json +1 -1
- package/dist/components/game/2d/organisms/BattleBoard.d.ts +0 -132
- package/dist/components/game/2d/organisms/BoardgameBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/CastleBoard.d.ts +0 -107
- package/dist/components/game/2d/organisms/CityBuilderBoard.d.ts +0 -64
- package/dist/components/game/2d/organisms/FishingBoard.d.ts +0 -41
- package/dist/components/game/2d/organisms/HexStrategyBoard.d.ts +0 -44
- package/dist/components/game/2d/organisms/HolidayRunnerBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/MatchPuzzleBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/MinigolfBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/PinballBoard.d.ts +0 -43
- package/dist/components/game/2d/organisms/PirateBoard.d.ts +0 -44
- package/dist/components/game/2d/organisms/PlatformerBoard.d.ts +0 -48
- package/dist/components/game/2d/organisms/RacingBoard.d.ts +0 -44
- package/dist/components/game/2d/organisms/RoguelikeBoard.d.ts +0 -62
- package/dist/components/game/2d/organisms/SokobanBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/SpaceShmupBoard.d.ts +0 -44
- package/dist/components/game/2d/organisms/SpaceStationBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/SportsBoard.d.ts +0 -37
- package/dist/components/game/2d/organisms/TanksBoard.d.ts +0 -39
- package/dist/components/game/2d/organisms/TopDownShooterBoard.d.ts +0 -65
- package/dist/components/game/2d/organisms/TowerDefenseBoard.d.ts +0 -87
- package/dist/components/game/2d/organisms/UncontrolledBattleBoard.d.ts +0 -43
- package/dist/components/game/2d/organisms/WorldMapBoard.d.ts +0 -155
- package/dist/components/game/2d/templates/BattleTemplate.d.ts +0 -34
- package/dist/components/game/2d/templates/CardBattlerTemplate.d.ts +0 -35
- package/dist/components/game/2d/templates/CastleTemplate.d.ts +0 -32
- package/dist/components/game/2d/templates/CityBuilderTemplate.d.ts +0 -40
- package/dist/components/game/2d/templates/PlatformerTemplate.d.ts +0 -27
- package/dist/components/game/2d/templates/RoguelikeTemplate.d.ts +0 -23
- package/dist/components/game/2d/templates/TopDownShooterTemplate.d.ts +0 -42
- package/dist/components/game/2d/templates/TowerDefenseTemplate.d.ts +0 -43
- package/dist/components/game/2d/templates/VisualNovelTemplate.d.ts +0 -28
- package/dist/components/game/2d/templates/WorldMapTemplate.d.ts +0 -38
- package/dist/components/game/shared/hooks/useBattleState.d.ts +0 -47
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import type { Asset, EventEmit, EntityRow } from '@almadar/core';
|
|
3
|
-
import type { Platform, SidePlayer } from '../molecules/Canvas2D';
|
|
4
|
-
export interface PlatformerBoardProps {
|
|
5
|
-
/** Entity containing all board state (result, lives, score, level, player, platforms) */
|
|
6
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
7
|
-
/** Direct player state — takes priority over entity-derived player */
|
|
8
|
-
player?: SidePlayer;
|
|
9
|
-
/** Direct platform data — takes priority over entity-derived platforms */
|
|
10
|
-
platforms?: Platform[];
|
|
11
|
-
/** Game result read from entity */
|
|
12
|
-
result?: 'none' | 'won' | 'lost';
|
|
13
|
-
/** Lives remaining */
|
|
14
|
-
lives?: number;
|
|
15
|
-
/** Current score */
|
|
16
|
-
score?: number;
|
|
17
|
-
/** Current level */
|
|
18
|
-
level?: number;
|
|
19
|
-
/** World/canvas dimensions (kept for entity resolution; not forwarded to Canvas2D) */
|
|
20
|
-
worldWidth?: number;
|
|
21
|
-
worldHeight?: number;
|
|
22
|
-
canvasWidth?: number;
|
|
23
|
-
canvasHeight?: number;
|
|
24
|
-
/** Player sprite */
|
|
25
|
-
playerSprite?: Asset;
|
|
26
|
-
/** Map of platform type to tile sprite */
|
|
27
|
-
tileSprites?: Record<string, Asset>;
|
|
28
|
-
/** HUD chrome assets (panel backgrounds, stat icons, etc.) keyed by role. */
|
|
29
|
-
ui?: Record<string, Asset>;
|
|
30
|
-
/** Canvas background color (not supported by Canvas2D; kept for API compat) */
|
|
31
|
-
bgColor?: string;
|
|
32
|
-
/** Emits UI:{keyEvent} with { key } on keydown (replaces per-direction events) */
|
|
33
|
-
keyEvent?: EventEmit<{
|
|
34
|
-
key: string;
|
|
35
|
-
}>;
|
|
36
|
-
/** Emits UI:{playAgainEvent} on restart */
|
|
37
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
38
|
-
/** Emits UI:{gameEndEvent} with { result } when result becomes won/lost */
|
|
39
|
-
gameEndEvent?: EventEmit<{
|
|
40
|
-
result: 'won' | 'lost';
|
|
41
|
-
}>;
|
|
42
|
-
className?: string;
|
|
43
|
-
}
|
|
44
|
-
export declare function PlatformerBoard({ entity, player: propPlayer, platforms: propPlatforms, result: propResult, lives: propLives, score: propScore, level: propLevel, worldWidth, worldHeight, canvasWidth: _canvasWidth, canvasHeight: _canvasHeight, playerSprite, tileSprites, ui: _ui, bgColor: _bgColor, keyEvent, playAgainEvent, gameEndEvent, className, }: PlatformerBoardProps): React.JSX.Element;
|
|
45
|
-
export declare namespace PlatformerBoard {
|
|
46
|
-
var displayName: string;
|
|
47
|
-
}
|
|
48
|
-
export default PlatformerBoard;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Asset, AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
/** Asset manifest shape for RacingBoard. */
|
|
6
|
-
type RacingAssetManifest = {
|
|
7
|
-
terrains?: Record<string, Asset>;
|
|
8
|
-
units?: Record<string, Asset>;
|
|
9
|
-
features?: Record<string, Asset>;
|
|
10
|
-
effects?: Record<string, Asset>;
|
|
11
|
-
ui?: Record<string, Asset>;
|
|
12
|
-
};
|
|
13
|
-
export interface RacingBoardProps extends DisplayStateProps {
|
|
14
|
-
/** Road + grass terrain tiles forming the race circuit */
|
|
15
|
-
tiles?: IsometricTile[];
|
|
16
|
-
/** Car units on the track */
|
|
17
|
-
units?: IsometricUnit[];
|
|
18
|
-
/** Track features (pit lane markers, start/finish line, etc.) */
|
|
19
|
-
features?: IsometricFeature[];
|
|
20
|
-
/** Asset sprite manifest */
|
|
21
|
-
assetManifest?: RacingAssetManifest;
|
|
22
|
-
/** Base URL prepended to manifest sprite paths */
|
|
23
|
-
assetBaseUrl?: AssetUrl;
|
|
24
|
-
/** Render scale */
|
|
25
|
-
scale?: number;
|
|
26
|
-
/** Show minimap overlay */
|
|
27
|
-
showMinimap?: boolean;
|
|
28
|
-
/** Enable camera pan/zoom controls */
|
|
29
|
-
enableCamera?: boolean;
|
|
30
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
31
|
-
tileClickEvent?: EventEmit<{
|
|
32
|
-
x: number;
|
|
33
|
-
y: number;
|
|
34
|
-
}>;
|
|
35
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
36
|
-
unitClickEvent?: EventEmit<{
|
|
37
|
-
unitId: string;
|
|
38
|
-
}>;
|
|
39
|
-
}
|
|
40
|
-
export declare function RacingBoard({ tiles, units, features, assetManifest, assetBaseUrl, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: RacingBoardProps): React.ReactElement;
|
|
41
|
-
export declare namespace RacingBoard {
|
|
42
|
-
var displayName: string;
|
|
43
|
-
}
|
|
44
|
-
export default RacingBoard;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Asset, EventEmit, EntityRow } from '@almadar/core';
|
|
3
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
4
|
-
import type { IsometricTile } from '../../shared/isometricTypes';
|
|
5
|
-
type PlayerPos = {
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
};
|
|
9
|
-
type EnemyRow = {
|
|
10
|
-
id: string;
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
hp: number;
|
|
14
|
-
attack: number;
|
|
15
|
-
};
|
|
16
|
-
type ItemRow = {
|
|
17
|
-
id: string;
|
|
18
|
-
x: number;
|
|
19
|
-
y: number;
|
|
20
|
-
kind: 'health_potion' | 'sword' | 'shield';
|
|
21
|
-
};
|
|
22
|
-
type RoguelikeAssetManifest = {
|
|
23
|
-
terrains?: Record<string, Asset>;
|
|
24
|
-
units?: Record<string, Asset>;
|
|
25
|
-
features?: Record<string, Asset>;
|
|
26
|
-
/** HUD chrome assets (panel backgrounds, stat icons, etc.) keyed by role. */
|
|
27
|
-
ui?: Record<string, Asset>;
|
|
28
|
-
};
|
|
29
|
-
export interface RoguelikeBoardProps extends DisplayStateProps {
|
|
30
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
31
|
-
tiles?: IsometricTile[];
|
|
32
|
-
enemies?: EnemyRow[];
|
|
33
|
-
items?: ItemRow[];
|
|
34
|
-
player?: PlayerPos;
|
|
35
|
-
playerHp?: number;
|
|
36
|
-
playerMaxHp?: number;
|
|
37
|
-
playerAttack?: number;
|
|
38
|
-
depth?: number;
|
|
39
|
-
result?: 'none' | 'won' | 'lost';
|
|
40
|
-
phase?: string;
|
|
41
|
-
stairsX?: number;
|
|
42
|
-
stairsY?: number;
|
|
43
|
-
assetManifest?: RoguelikeAssetManifest;
|
|
44
|
-
scale?: number;
|
|
45
|
-
unitScale?: number;
|
|
46
|
-
spriteHeightRatio?: number;
|
|
47
|
-
spriteMaxWidthRatio?: number;
|
|
48
|
-
moveEvent?: EventEmit<{
|
|
49
|
-
dx: number;
|
|
50
|
-
dy: number;
|
|
51
|
-
}>;
|
|
52
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
53
|
-
gameEndEvent?: EventEmit<{
|
|
54
|
-
result: string;
|
|
55
|
-
}>;
|
|
56
|
-
className?: string;
|
|
57
|
-
}
|
|
58
|
-
export declare function RoguelikeBoard({ entity, tiles: propTiles, enemies: propEnemies, items: propItems, player: propPlayer, playerHp: propPlayerHp, playerMaxHp: propPlayerMaxHp, playerAttack: propPlayerAttack, depth: propDepth, result: propResult, phase: propPhase, stairsX: propStairsX, stairsY: propStairsY, assetManifest: propAssetManifest, scale, unitScale, spriteHeightRatio, spriteMaxWidthRatio, moveEvent, playAgainEvent, gameEndEvent, className, }: RoguelikeBoardProps): React.JSX.Element;
|
|
59
|
-
export declare namespace RoguelikeBoard {
|
|
60
|
-
var displayName: string;
|
|
61
|
-
}
|
|
62
|
-
export default RoguelikeBoard;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
import type { Canvas2DProps } from '../molecules/Canvas2D';
|
|
6
|
-
export interface SokobanBoardProps extends DisplayStateProps {
|
|
7
|
-
/** Grid tiles (floor, wall, target) */
|
|
8
|
-
tiles?: IsometricTile[];
|
|
9
|
-
/** Units on the board (the pusher character) */
|
|
10
|
-
units?: IsometricUnit[];
|
|
11
|
-
/** Features (crates) on the board */
|
|
12
|
-
features?: IsometricFeature[];
|
|
13
|
-
/** Asset sprite manifest (same shape as Canvas2D.assetManifest) */
|
|
14
|
-
assetManifest?: Canvas2DProps['assetManifest'];
|
|
15
|
-
/** Base URL prepended to manifest sprite paths */
|
|
16
|
-
assetBaseUrl?: AssetUrl;
|
|
17
|
-
/** Render scale */
|
|
18
|
-
scale?: number;
|
|
19
|
-
/** Show minimap overlay */
|
|
20
|
-
showMinimap?: boolean;
|
|
21
|
-
/** Enable camera pan/zoom controls */
|
|
22
|
-
enableCamera?: boolean;
|
|
23
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
24
|
-
tileClickEvent?: EventEmit<{
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
}>;
|
|
28
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
29
|
-
unitClickEvent?: EventEmit<{
|
|
30
|
-
unitId: string;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
33
|
-
export declare function SokobanBoard({ tiles, units, features, assetManifest, assetBaseUrl, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: SokobanBoardProps): React.ReactElement;
|
|
34
|
-
export declare namespace SokobanBoard {
|
|
35
|
-
var displayName: string;
|
|
36
|
-
}
|
|
37
|
-
export default SokobanBoard;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Asset, AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
/** Asset manifest shape for SpaceShmupBoard. */
|
|
6
|
-
type SpaceShmupAssetManifest = {
|
|
7
|
-
terrains?: Record<string, Asset>;
|
|
8
|
-
units?: Record<string, Asset>;
|
|
9
|
-
features?: Record<string, Asset>;
|
|
10
|
-
effects?: Record<string, Asset>;
|
|
11
|
-
ui?: Record<string, Asset>;
|
|
12
|
-
};
|
|
13
|
-
export interface SpaceShmupBoardProps extends DisplayStateProps {
|
|
14
|
-
/** Space terrain tiles filling the grid */
|
|
15
|
-
tiles?: IsometricTile[];
|
|
16
|
-
/** Player ship and enemy ships on the board */
|
|
17
|
-
units?: IsometricUnit[];
|
|
18
|
-
/** Features (asteroids, power-ups, etc.) on the board */
|
|
19
|
-
features?: IsometricFeature[];
|
|
20
|
-
/** Asset sprite manifest */
|
|
21
|
-
assetManifest?: SpaceShmupAssetManifest;
|
|
22
|
-
/** Base URL prepended to manifest sprite paths */
|
|
23
|
-
assetBaseUrl?: AssetUrl;
|
|
24
|
-
/** Render scale */
|
|
25
|
-
scale?: number;
|
|
26
|
-
/** Show minimap overlay */
|
|
27
|
-
showMinimap?: boolean;
|
|
28
|
-
/** Enable camera pan/zoom controls */
|
|
29
|
-
enableCamera?: boolean;
|
|
30
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
31
|
-
tileClickEvent?: EventEmit<{
|
|
32
|
-
x: number;
|
|
33
|
-
y: number;
|
|
34
|
-
}>;
|
|
35
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
36
|
-
unitClickEvent?: EventEmit<{
|
|
37
|
-
unitId: string;
|
|
38
|
-
}>;
|
|
39
|
-
}
|
|
40
|
-
export declare function SpaceShmupBoard({ tiles, units, features, assetManifest, assetBaseUrl, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: SpaceShmupBoardProps): React.ReactElement;
|
|
41
|
-
export declare namespace SpaceShmupBoard {
|
|
42
|
-
var displayName: string;
|
|
43
|
-
}
|
|
44
|
-
export default SpaceShmupBoard;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
import type { Canvas2DProps } from '../molecules/Canvas2D';
|
|
6
|
-
export interface SpaceStationBoardProps extends DisplayStateProps {
|
|
7
|
-
/** Isometric grid tiles */
|
|
8
|
-
tiles?: IsometricTile[];
|
|
9
|
-
/** Units on the board */
|
|
10
|
-
units?: IsometricUnit[];
|
|
11
|
-
/** Features (consoles, airlocks, etc.) on the board */
|
|
12
|
-
features?: IsometricFeature[];
|
|
13
|
-
/** Asset sprite manifest (same shape as Canvas2D.assetManifest) */
|
|
14
|
-
assetManifest?: Canvas2DProps['assetManifest'];
|
|
15
|
-
/** Base URL prepended to manifest sprite paths */
|
|
16
|
-
assetBaseUrl?: AssetUrl;
|
|
17
|
-
/** Render scale */
|
|
18
|
-
scale?: number;
|
|
19
|
-
/** Show minimap overlay */
|
|
20
|
-
showMinimap?: boolean;
|
|
21
|
-
/** Enable camera pan/zoom controls */
|
|
22
|
-
enableCamera?: boolean;
|
|
23
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
24
|
-
tileClickEvent?: EventEmit<{
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
}>;
|
|
28
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
29
|
-
unitClickEvent?: EventEmit<{
|
|
30
|
-
unitId: string;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
33
|
-
export declare function SpaceStationBoard({ tiles, units, features, assetManifest, assetBaseUrl, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: SpaceStationBoardProps): React.ReactElement;
|
|
34
|
-
export declare namespace SpaceStationBoard {
|
|
35
|
-
var displayName: string;
|
|
36
|
-
}
|
|
37
|
-
export default SpaceStationBoard;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
import type { Canvas2DProps } from '../molecules/Canvas2D';
|
|
6
|
-
export interface SportsBoardProps extends DisplayStateProps {
|
|
7
|
-
/** Court/field terrain tiles */
|
|
8
|
-
tiles?: IsometricTile[];
|
|
9
|
-
/** Player units on the board */
|
|
10
|
-
units?: IsometricUnit[];
|
|
11
|
-
/** Features (goals, markers, etc.) on the board */
|
|
12
|
-
features?: IsometricFeature[];
|
|
13
|
-
/** Asset sprite manifest (same shape as Canvas2D.assetManifest) */
|
|
14
|
-
assetManifest?: Canvas2DProps['assetManifest'];
|
|
15
|
-
/** Base URL prepended to asset paths */
|
|
16
|
-
assetBaseUrl?: AssetUrl;
|
|
17
|
-
/** Render scale */
|
|
18
|
-
scale?: number;
|
|
19
|
-
/** Show minimap overlay */
|
|
20
|
-
showMinimap?: boolean;
|
|
21
|
-
/** Enable camera pan/zoom controls */
|
|
22
|
-
enableCamera?: boolean;
|
|
23
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
24
|
-
tileClickEvent?: EventEmit<{
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
}>;
|
|
28
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
29
|
-
unitClickEvent?: EventEmit<{
|
|
30
|
-
unitId: string;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
33
|
-
export declare function SportsBoard({ tiles, units, features, assetManifest, assetBaseUrl, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: SportsBoardProps): React.ReactElement;
|
|
34
|
-
export declare namespace SportsBoard {
|
|
35
|
-
var displayName: string;
|
|
36
|
-
}
|
|
37
|
-
export default SportsBoard;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Asset, AssetUrl, EventEmit } from '@almadar/core';
|
|
3
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
4
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
5
|
-
import type { Canvas2DProps } from '../molecules/Canvas2D';
|
|
6
|
-
export interface TanksBoardProps extends DisplayStateProps {
|
|
7
|
-
/** Ground/sand terrain tiles */
|
|
8
|
-
tiles?: IsometricTile[];
|
|
9
|
-
/** Tank units on the board */
|
|
10
|
-
units?: IsometricUnit[];
|
|
11
|
-
/** Features (obstacles, structures, etc.) on the board */
|
|
12
|
-
features?: IsometricFeature[];
|
|
13
|
-
/** Asset sprite manifest (same shape as Canvas2D.assetManifest) */
|
|
14
|
-
assetManifest?: Canvas2DProps['assetManifest'];
|
|
15
|
-
/** Base URL prepended to manifest sprite paths */
|
|
16
|
-
assetBaseUrl?: AssetUrl;
|
|
17
|
-
/** HUD chrome assets (panel backgrounds, stat icons, etc.) keyed by role. */
|
|
18
|
-
ui?: Record<string, Asset>;
|
|
19
|
-
/** Render scale */
|
|
20
|
-
scale?: number;
|
|
21
|
-
/** Show minimap overlay */
|
|
22
|
-
showMinimap?: boolean;
|
|
23
|
-
/** Enable camera pan/zoom controls */
|
|
24
|
-
enableCamera?: boolean;
|
|
25
|
-
/** Declarative event: emits UI:{tileClickEvent} with { x, y } on tile click */
|
|
26
|
-
tileClickEvent?: EventEmit<{
|
|
27
|
-
x: number;
|
|
28
|
-
y: number;
|
|
29
|
-
}>;
|
|
30
|
-
/** Declarative event: emits UI:{unitClickEvent} with { unitId } on unit click */
|
|
31
|
-
unitClickEvent?: EventEmit<{
|
|
32
|
-
unitId: string;
|
|
33
|
-
}>;
|
|
34
|
-
}
|
|
35
|
-
export declare function TanksBoard({ tiles, units, features, assetManifest, assetBaseUrl, ui: _ui, scale, showMinimap, enableCamera, tileClickEvent, unitClickEvent, isLoading, error, className, }: TanksBoardProps): React.ReactElement;
|
|
36
|
-
export declare namespace TanksBoard {
|
|
37
|
-
var displayName: string;
|
|
38
|
-
}
|
|
39
|
-
export default TanksBoard;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import type { Asset, EventEmit, EntityRow } from '@almadar/core';
|
|
3
|
-
/** Per-kind sprite maps (organism owns asset choice; UI value DTO). */
|
|
4
|
-
type ShooterAssetManifest = {
|
|
5
|
-
units?: Record<string, Asset>;
|
|
6
|
-
features?: Record<string, Asset>;
|
|
7
|
-
background?: Asset;
|
|
8
|
-
/** HUD chrome assets (panel backgrounds, stat icons, etc.) keyed by role. */
|
|
9
|
-
ui?: Record<string, Asset>;
|
|
10
|
-
};
|
|
11
|
-
export interface ShooterPlayer {
|
|
12
|
-
x: number;
|
|
13
|
-
y: number;
|
|
14
|
-
}
|
|
15
|
-
export interface ShooterEnemy {
|
|
16
|
-
id: string;
|
|
17
|
-
x: number;
|
|
18
|
-
y: number;
|
|
19
|
-
hp: number;
|
|
20
|
-
}
|
|
21
|
-
export interface ShooterProjectile {
|
|
22
|
-
id: string;
|
|
23
|
-
x: number;
|
|
24
|
-
y: number;
|
|
25
|
-
vx: number;
|
|
26
|
-
vy: number;
|
|
27
|
-
}
|
|
28
|
-
export interface TopDownShooterBoardProps {
|
|
29
|
-
/** Entity carrying all board state (player, enemies, projectiles, score, wave, lives, result). */
|
|
30
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
31
|
-
/** Direct state — each takes priority over its entity-derived value. */
|
|
32
|
-
player?: ShooterPlayer;
|
|
33
|
-
enemies?: ShooterEnemy[];
|
|
34
|
-
projectiles?: ShooterProjectile[];
|
|
35
|
-
score?: number;
|
|
36
|
-
wave?: number;
|
|
37
|
-
lives?: number;
|
|
38
|
-
result?: 'none' | 'won' | 'lost';
|
|
39
|
-
/** Asset base-url + unit/feature sprite maps + background. */
|
|
40
|
-
assetManifest?: ShooterAssetManifest;
|
|
41
|
-
/** Canvas / arena dimensions in pixels. */
|
|
42
|
-
width?: number;
|
|
43
|
-
height?: number;
|
|
44
|
-
/** Pixel draw-size of sprites. */
|
|
45
|
-
spriteSize?: number;
|
|
46
|
-
/** Closed-circuit event emits (UI:{event}). */
|
|
47
|
-
moveEvent?: EventEmit<{
|
|
48
|
-
dx: number;
|
|
49
|
-
dy: number;
|
|
50
|
-
}>;
|
|
51
|
-
fireEvent?: EventEmit<{
|
|
52
|
-
tx: number;
|
|
53
|
-
ty: number;
|
|
54
|
-
}>;
|
|
55
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
56
|
-
gameEndEvent?: EventEmit<{
|
|
57
|
-
result: 'won' | 'lost';
|
|
58
|
-
}>;
|
|
59
|
-
className?: string;
|
|
60
|
-
}
|
|
61
|
-
export declare function TopDownShooterBoard({ entity, player: propPlayer, enemies: propEnemies, projectiles: propProjectiles, score: propScore, wave: propWave, lives: propLives, result: propResult, assetManifest: propAssetManifest, width, height, spriteSize, moveEvent, fireEvent, playAgainEvent, gameEndEvent, className, }: TopDownShooterBoardProps): React.JSX.Element;
|
|
62
|
-
export declare namespace TopDownShooterBoard {
|
|
63
|
-
var displayName: string;
|
|
64
|
-
}
|
|
65
|
-
export default TopDownShooterBoard;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Asset, AssetUrl, EventEmit, EntityRow } from '@almadar/core';
|
|
3
|
-
import type { DisplayStateProps } from '../../../core/organisms/types';
|
|
4
|
-
/** Manifest of per-kind sprite maps (UI value DTO). */
|
|
5
|
-
type TowerDefenseAssetManifest = {
|
|
6
|
-
terrains?: Record<string, Asset>;
|
|
7
|
-
units?: Record<string, Asset>;
|
|
8
|
-
features?: Record<string, Asset>;
|
|
9
|
-
/** HUD chrome assets (panel backgrounds, stat icons, etc.) keyed by role. */
|
|
10
|
-
ui?: Record<string, Asset>;
|
|
11
|
-
};
|
|
12
|
-
export interface TowerDefenseTile {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
terrain?: string;
|
|
16
|
-
terrainSprite?: AssetUrl;
|
|
17
|
-
passable?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface TowerDefensePathPoint {
|
|
20
|
-
x: number;
|
|
21
|
-
y: number;
|
|
22
|
-
}
|
|
23
|
-
export interface TowerDefenseTower {
|
|
24
|
-
id: string;
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
range: number;
|
|
28
|
-
damage: number;
|
|
29
|
-
cooldown: number;
|
|
30
|
-
lastFiredAt?: number;
|
|
31
|
-
}
|
|
32
|
-
export interface TowerDefenseCreep {
|
|
33
|
-
id: string;
|
|
34
|
-
x: number;
|
|
35
|
-
y: number;
|
|
36
|
-
hp: number;
|
|
37
|
-
maxHp: number;
|
|
38
|
-
pathIndex: number;
|
|
39
|
-
speed: number;
|
|
40
|
-
}
|
|
41
|
-
export interface TowerDefenseHero {
|
|
42
|
-
id: string;
|
|
43
|
-
x: number;
|
|
44
|
-
y: number;
|
|
45
|
-
}
|
|
46
|
-
export interface TowerDefenseBoardProps extends DisplayStateProps {
|
|
47
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
48
|
-
tiles?: TowerDefenseTile[];
|
|
49
|
-
path?: TowerDefensePathPoint[];
|
|
50
|
-
towers?: TowerDefenseTower[];
|
|
51
|
-
creeps?: TowerDefenseCreep[];
|
|
52
|
-
/** Asset base-url + terrain/unit/feature sprite maps (organism owns asset choice). */
|
|
53
|
-
assetManifest?: TowerDefenseAssetManifest;
|
|
54
|
-
gold?: number;
|
|
55
|
-
lives?: number;
|
|
56
|
-
wave?: number;
|
|
57
|
-
maxWaves?: number;
|
|
58
|
-
result?: 'none' | 'won' | 'lost';
|
|
59
|
-
waveActive?: boolean;
|
|
60
|
-
hero?: TowerDefenseHero;
|
|
61
|
-
towerCost?: number;
|
|
62
|
-
scale?: number;
|
|
63
|
-
unitScale?: number;
|
|
64
|
-
spriteHeightRatio?: number;
|
|
65
|
-
spriteMaxWidthRatio?: number;
|
|
66
|
-
placeTowerEvent?: EventEmit<{
|
|
67
|
-
x: number;
|
|
68
|
-
y: number;
|
|
69
|
-
}>;
|
|
70
|
-
startWaveEvent?: EventEmit<{
|
|
71
|
-
wave: number;
|
|
72
|
-
}>;
|
|
73
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
74
|
-
gameEndEvent?: EventEmit<{
|
|
75
|
-
result: 'won' | 'lost';
|
|
76
|
-
}>;
|
|
77
|
-
moveHeroEvent?: EventEmit<{
|
|
78
|
-
dx: number;
|
|
79
|
-
dy: number;
|
|
80
|
-
}>;
|
|
81
|
-
className?: string;
|
|
82
|
-
}
|
|
83
|
-
export declare function TowerDefenseBoard({ entity, tiles: propTiles, path: propPath, towers: propTowers, creeps: propCreeps, assetManifest: propAssetManifest, hero: propHero, gold: propGold, lives: propLives, wave: propWave, maxWaves: propMaxWaves, result: propResult, waveActive: propWaveActive, towerCost, scale, unitScale, spriteHeightRatio, spriteMaxWidthRatio, placeTowerEvent, startWaveEvent, playAgainEvent, gameEndEvent, moveHeroEvent, className, }: TowerDefenseBoardProps): React.JSX.Element;
|
|
84
|
-
export declare namespace TowerDefenseBoard {
|
|
85
|
-
var displayName: string;
|
|
86
|
-
}
|
|
87
|
-
export default TowerDefenseBoard;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* UncontrolledBattleBoard
|
|
3
|
-
*
|
|
4
|
-
* Thin wrapper that composes `useBattleState` + `BattleBoard` for
|
|
5
|
-
* self-managing game state. Accepts `initialUnits` instead of the
|
|
6
|
-
* controlled-mode fields and manages units, phase, turn, gameResult,
|
|
7
|
-
* and selectedUnitId internally via the hook.
|
|
8
|
-
*
|
|
9
|
-
* Use this component when you want the BattleBoard to manage its own
|
|
10
|
-
* game logic (e.g. in Storybook, prototypes, or simple integrations).
|
|
11
|
-
* For Orbital trait integration, use `BattleBoard` directly in
|
|
12
|
-
* controlled mode.
|
|
13
|
-
*
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import * as React from 'react';
|
|
17
|
-
import type { EntityRow, EventEmit } from '@almadar/core';
|
|
18
|
-
import { type BattleBoardProps } from './BattleBoard';
|
|
19
|
-
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../shared/isometricTypes';
|
|
20
|
-
export interface UncontrolledBattleBoardProps extends Omit<BattleBoardProps, 'entity'> {
|
|
21
|
-
entity?: EntityRow | readonly EntityRow[];
|
|
22
|
-
/** Direct tile data — takes priority over entity-derived tiles. */
|
|
23
|
-
tiles?: IsometricTile[];
|
|
24
|
-
/** Direct unit data — takes priority over entity-derived units. */
|
|
25
|
-
units?: IsometricUnit[];
|
|
26
|
-
/** Direct feature data — takes priority over entity-derived features. */
|
|
27
|
-
features?: IsometricFeature[];
|
|
28
|
-
/** Direct asset manifest — takes priority over entity-derived manifest. */
|
|
29
|
-
assetManifest?: BattleBoardProps['assetManifest'];
|
|
30
|
-
/** Emits UI:{stepEvent} with { attackerId, targetId, damage } each battle round */
|
|
31
|
-
stepEvent?: EventEmit<{
|
|
32
|
-
attackerId: string;
|
|
33
|
-
targetId: string;
|
|
34
|
-
damage: number;
|
|
35
|
-
}>;
|
|
36
|
-
/** Emits UI:{playAgainEvent} with {} on restart */
|
|
37
|
-
playAgainEvent?: EventEmit<Record<string, never>>;
|
|
38
|
-
}
|
|
39
|
-
export declare function UncontrolledBattleBoard({ entity, tiles, units, features, assetManifest, ...rest }: UncontrolledBattleBoardProps): React.JSX.Element | null;
|
|
40
|
-
export declare namespace UncontrolledBattleBoard {
|
|
41
|
-
var displayName: string;
|
|
42
|
-
}
|
|
43
|
-
export default UncontrolledBattleBoard;
|