@almadar/ui 5.38.0 → 5.40.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 +385 -111
- package/dist/avl/index.js +385 -111
- package/dist/components/game/molecules/DialogueBox.d.ts +0 -21
- package/dist/components/game/molecules/InventoryPanel.d.ts +0 -16
- package/dist/components/index.cjs +385 -111
- package/dist/components/index.js +385 -111
- package/dist/providers/index.cjs +385 -111
- package/dist/providers/index.js +385 -111
- package/dist/runtime/index.cjs +385 -111
- package/dist/runtime/index.js +385 -111
- package/package.json +1 -1
package/dist/avl/index.js
CHANGED
|
@@ -10693,8 +10693,8 @@ var init_TraitFrame = __esm({
|
|
|
10693
10693
|
}
|
|
10694
10694
|
});
|
|
10695
10695
|
function HealthBar({
|
|
10696
|
-
current,
|
|
10697
|
-
max,
|
|
10696
|
+
current = 3,
|
|
10697
|
+
max = 5,
|
|
10698
10698
|
format = "hearts",
|
|
10699
10699
|
size = "md",
|
|
10700
10700
|
className,
|
|
@@ -10943,11 +10943,11 @@ var init_ControlButton = __esm({
|
|
|
10943
10943
|
});
|
|
10944
10944
|
function Sprite({
|
|
10945
10945
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
10946
|
-
frameWidth,
|
|
10947
|
-
frameHeight,
|
|
10948
|
-
frame,
|
|
10949
|
-
x,
|
|
10950
|
-
y,
|
|
10946
|
+
frameWidth = 64,
|
|
10947
|
+
frameHeight = 64,
|
|
10948
|
+
frame = 0,
|
|
10949
|
+
x = 0,
|
|
10950
|
+
y = 0,
|
|
10951
10951
|
scale = 1,
|
|
10952
10952
|
flipX = false,
|
|
10953
10953
|
flipY = false,
|
|
@@ -11017,7 +11017,7 @@ var init_Sprite = __esm({
|
|
|
11017
11017
|
}
|
|
11018
11018
|
});
|
|
11019
11019
|
function StateIndicator({
|
|
11020
|
-
state,
|
|
11020
|
+
state = "idle",
|
|
11021
11021
|
label,
|
|
11022
11022
|
size = "md",
|
|
11023
11023
|
animated = true,
|
|
@@ -11088,8 +11088,8 @@ function formatTime(seconds, format) {
|
|
|
11088
11088
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
11089
11089
|
}
|
|
11090
11090
|
function TimerDisplay({
|
|
11091
|
-
seconds,
|
|
11092
|
-
running,
|
|
11091
|
+
seconds = 90,
|
|
11092
|
+
running = true,
|
|
11093
11093
|
format = "mm:ss",
|
|
11094
11094
|
size = "md",
|
|
11095
11095
|
className,
|
|
@@ -11126,8 +11126,8 @@ var init_TimerDisplay = __esm({
|
|
|
11126
11126
|
});
|
|
11127
11127
|
function ResourceCounter({
|
|
11128
11128
|
icon,
|
|
11129
|
-
label,
|
|
11130
|
-
value,
|
|
11129
|
+
label = "Gold",
|
|
11130
|
+
value = 250,
|
|
11131
11131
|
max,
|
|
11132
11132
|
color,
|
|
11133
11133
|
size = "md",
|
|
@@ -11179,10 +11179,10 @@ var init_ResourceCounter = __esm({
|
|
|
11179
11179
|
}
|
|
11180
11180
|
});
|
|
11181
11181
|
function ItemSlot({
|
|
11182
|
-
icon,
|
|
11183
|
-
label,
|
|
11182
|
+
icon = "sword",
|
|
11183
|
+
label = "Iron Sword",
|
|
11184
11184
|
quantity,
|
|
11185
|
-
rarity = "
|
|
11185
|
+
rarity = "uncommon",
|
|
11186
11186
|
empty,
|
|
11187
11187
|
size = "md",
|
|
11188
11188
|
selected,
|
|
@@ -11255,7 +11255,7 @@ var init_ItemSlot = __esm({
|
|
|
11255
11255
|
}
|
|
11256
11256
|
});
|
|
11257
11257
|
function TurnIndicator({
|
|
11258
|
-
currentTurn,
|
|
11258
|
+
currentTurn = 1,
|
|
11259
11259
|
maxTurns,
|
|
11260
11260
|
activeTeam,
|
|
11261
11261
|
phase,
|
|
@@ -11318,7 +11318,7 @@ function getComboScale(combo) {
|
|
|
11318
11318
|
return "";
|
|
11319
11319
|
}
|
|
11320
11320
|
function ComboCounter({
|
|
11321
|
-
combo,
|
|
11321
|
+
combo = 5,
|
|
11322
11322
|
multiplier,
|
|
11323
11323
|
streak,
|
|
11324
11324
|
size = "md",
|
|
@@ -11364,10 +11364,10 @@ var init_ComboCounter = __esm({
|
|
|
11364
11364
|
}
|
|
11365
11365
|
});
|
|
11366
11366
|
function XPBar({
|
|
11367
|
-
current,
|
|
11368
|
-
max,
|
|
11369
|
-
level,
|
|
11370
|
-
showLabel =
|
|
11367
|
+
current = 350,
|
|
11368
|
+
max = 1e3,
|
|
11369
|
+
level = 5,
|
|
11370
|
+
showLabel = true,
|
|
11371
11371
|
size = "md",
|
|
11372
11372
|
animated = true,
|
|
11373
11373
|
className
|
|
@@ -11450,7 +11450,7 @@ var init_XPBar = __esm({
|
|
|
11450
11450
|
function WaypointMarker({
|
|
11451
11451
|
label,
|
|
11452
11452
|
icon,
|
|
11453
|
-
active =
|
|
11453
|
+
active = true,
|
|
11454
11454
|
completed = false,
|
|
11455
11455
|
size = "md",
|
|
11456
11456
|
className
|
|
@@ -11524,11 +11524,11 @@ function formatDuration(seconds) {
|
|
|
11524
11524
|
return `${Math.round(seconds)}s`;
|
|
11525
11525
|
}
|
|
11526
11526
|
function StatusEffect({
|
|
11527
|
-
icon,
|
|
11528
|
-
label,
|
|
11529
|
-
duration,
|
|
11527
|
+
icon = "shield",
|
|
11528
|
+
label = "Shield",
|
|
11529
|
+
duration = 30,
|
|
11530
11530
|
stacks,
|
|
11531
|
-
variant = "
|
|
11531
|
+
variant = "buff",
|
|
11532
11532
|
size = "md",
|
|
11533
11533
|
className
|
|
11534
11534
|
}) {
|
|
@@ -11590,7 +11590,7 @@ var init_StatusEffect = __esm({
|
|
|
11590
11590
|
}
|
|
11591
11591
|
});
|
|
11592
11592
|
function DamageNumber({
|
|
11593
|
-
value,
|
|
11593
|
+
value = 42,
|
|
11594
11594
|
type = "damage",
|
|
11595
11595
|
size = "md",
|
|
11596
11596
|
className
|
|
@@ -11639,8 +11639,8 @@ var init_DamageNumber = __esm({
|
|
|
11639
11639
|
}
|
|
11640
11640
|
});
|
|
11641
11641
|
function DialogueBubble({
|
|
11642
|
-
speaker,
|
|
11643
|
-
text,
|
|
11642
|
+
speaker = "Hero",
|
|
11643
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
11644
11644
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
11645
11645
|
position = "bottom",
|
|
11646
11646
|
className
|
|
@@ -11677,7 +11677,7 @@ var init_DialogueBubble = __esm({
|
|
|
11677
11677
|
}
|
|
11678
11678
|
});
|
|
11679
11679
|
function ChoiceButton({
|
|
11680
|
-
text,
|
|
11680
|
+
text = "Charge forward into the fray",
|
|
11681
11681
|
index,
|
|
11682
11682
|
disabled = false,
|
|
11683
11683
|
selected = false,
|
|
@@ -11723,7 +11723,7 @@ var init_ChoiceButton = __esm({
|
|
|
11723
11723
|
}
|
|
11724
11724
|
});
|
|
11725
11725
|
function ActionButton({
|
|
11726
|
-
label,
|
|
11726
|
+
label = "Attack",
|
|
11727
11727
|
icon,
|
|
11728
11728
|
cooldown = 0,
|
|
11729
11729
|
disabled = false,
|
|
@@ -11803,13 +11803,13 @@ var init_ActionButton = __esm({
|
|
|
11803
11803
|
}
|
|
11804
11804
|
});
|
|
11805
11805
|
function MiniMap({
|
|
11806
|
-
tiles =
|
|
11807
|
-
units =
|
|
11806
|
+
tiles = DEFAULT_TILES,
|
|
11807
|
+
units = DEFAULT_UNITS,
|
|
11808
11808
|
width = 150,
|
|
11809
11809
|
height = 150,
|
|
11810
11810
|
mapWidth = 100,
|
|
11811
11811
|
mapHeight = 100,
|
|
11812
|
-
viewportRect,
|
|
11812
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
11813
11813
|
className
|
|
11814
11814
|
}) {
|
|
11815
11815
|
const canvasRef = React91.useRef(null);
|
|
@@ -11888,10 +11888,25 @@ function MiniMap({
|
|
|
11888
11888
|
}
|
|
11889
11889
|
);
|
|
11890
11890
|
}
|
|
11891
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
11891
11892
|
var init_MiniMap = __esm({
|
|
11892
11893
|
"components/game/atoms/MiniMap.tsx"() {
|
|
11893
11894
|
"use client";
|
|
11894
11895
|
init_cn();
|
|
11896
|
+
DEFAULT_TILES = [
|
|
11897
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
11898
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
11899
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
11900
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
11901
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
11902
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
11903
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
11904
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
11905
|
+
];
|
|
11906
|
+
DEFAULT_UNITS = [
|
|
11907
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
11908
|
+
];
|
|
11909
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
11895
11910
|
MiniMap.displayName = "MiniMap";
|
|
11896
11911
|
}
|
|
11897
11912
|
});
|
|
@@ -13014,7 +13029,7 @@ var init_Accordion = __esm({
|
|
|
13014
13029
|
}
|
|
13015
13030
|
});
|
|
13016
13031
|
function ActionButtons({
|
|
13017
|
-
buttons,
|
|
13032
|
+
buttons = DEFAULT_BUTTONS,
|
|
13018
13033
|
onAction,
|
|
13019
13034
|
actionEvent,
|
|
13020
13035
|
layout = "horizontal",
|
|
@@ -13121,7 +13136,7 @@ function ActionButtons({
|
|
|
13121
13136
|
button.id
|
|
13122
13137
|
)) });
|
|
13123
13138
|
}
|
|
13124
|
-
var sizeMap14, layoutMap;
|
|
13139
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
13125
13140
|
var init_ActionButtons = __esm({
|
|
13126
13141
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
13127
13142
|
"use client";
|
|
@@ -13138,6 +13153,11 @@ var init_ActionButtons = __esm({
|
|
|
13138
13153
|
vertical: "flex flex-col gap-2",
|
|
13139
13154
|
diamond: "grid grid-cols-3 gap-1"
|
|
13140
13155
|
};
|
|
13156
|
+
DEFAULT_BUTTONS = [
|
|
13157
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
13158
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
13159
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
13160
|
+
];
|
|
13141
13161
|
ActionButtons.displayName = "ActionButtons";
|
|
13142
13162
|
}
|
|
13143
13163
|
});
|
|
@@ -14330,7 +14350,7 @@ function IsometricCanvas({
|
|
|
14330
14350
|
// Rendering options
|
|
14331
14351
|
scale = 0.4,
|
|
14332
14352
|
debug: debug2 = false,
|
|
14333
|
-
backgroundImage = "
|
|
14353
|
+
backgroundImage = "",
|
|
14334
14354
|
showMinimap = true,
|
|
14335
14355
|
enableCamera = true,
|
|
14336
14356
|
unitScale = 1,
|
|
@@ -15468,10 +15488,10 @@ function BattleTemplate({
|
|
|
15468
15488
|
entity,
|
|
15469
15489
|
scale = 0.45,
|
|
15470
15490
|
unitScale = 1,
|
|
15471
|
-
tiles,
|
|
15472
|
-
units,
|
|
15473
|
-
features,
|
|
15474
|
-
assetManifest,
|
|
15491
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
15492
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
15493
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
15494
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
15475
15495
|
className
|
|
15476
15496
|
}) {
|
|
15477
15497
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -15497,9 +15517,62 @@ function BattleTemplate({
|
|
|
15497
15517
|
}
|
|
15498
15518
|
);
|
|
15499
15519
|
}
|
|
15520
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
15500
15521
|
var init_BattleTemplate = __esm({
|
|
15501
15522
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
15502
15523
|
init_BattleBoard();
|
|
15524
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
15525
|
+
DEFAULT_BATTLE_TILES = [
|
|
15526
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15527
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15528
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15529
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15530
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15531
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15532
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15533
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15534
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15535
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15536
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15537
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15538
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15539
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15540
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15541
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15542
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15543
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15544
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15545
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15546
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15547
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15548
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15549
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15550
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
15551
|
+
];
|
|
15552
|
+
DEFAULT_BATTLE_UNITS = [
|
|
15553
|
+
{ id: "u1", position: { x: 1, y: 1 }, unitType: "worker", name: "Worker", team: "player", health: 10, maxHealth: 10, sprite: `${CDN}/sprite-sheets/amir-sprite-sheet-se.png` },
|
|
15554
|
+
{ id: "u2", position: { x: 3, y: 3 }, unitType: "guardian", name: "Guardian", team: "enemy", health: 8, maxHealth: 10, sprite: `${CDN}/sprite-sheets/destroyer-sprite-sheet-sw.png` }
|
|
15555
|
+
];
|
|
15556
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
15557
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
15558
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
15559
|
+
];
|
|
15560
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
15561
|
+
baseUrl: CDN,
|
|
15562
|
+
terrains: {
|
|
15563
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
15564
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
15565
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
15566
|
+
},
|
|
15567
|
+
units: {
|
|
15568
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
15569
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
15570
|
+
},
|
|
15571
|
+
features: {
|
|
15572
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
15573
|
+
portal: "/world-map/portal_open.png"
|
|
15574
|
+
}
|
|
15575
|
+
};
|
|
15503
15576
|
BattleTemplate.displayName = "BattleTemplate";
|
|
15504
15577
|
}
|
|
15505
15578
|
});
|
|
@@ -22670,10 +22743,10 @@ var init_CastleBoard = __esm({
|
|
|
22670
22743
|
function CastleTemplate({
|
|
22671
22744
|
entity,
|
|
22672
22745
|
scale = 0.45,
|
|
22673
|
-
tiles,
|
|
22674
|
-
units,
|
|
22675
|
-
features,
|
|
22676
|
-
assetManifest,
|
|
22746
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
22747
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
22748
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
22749
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
22677
22750
|
className
|
|
22678
22751
|
}) {
|
|
22679
22752
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -22694,9 +22767,61 @@ function CastleTemplate({
|
|
|
22694
22767
|
}
|
|
22695
22768
|
);
|
|
22696
22769
|
}
|
|
22770
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
22697
22771
|
var init_CastleTemplate = __esm({
|
|
22698
22772
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
22699
22773
|
init_CastleBoard();
|
|
22774
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
22775
|
+
DEFAULT_CASTLE_TILES = [
|
|
22776
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22777
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22778
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22779
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22780
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22781
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22782
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22783
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22784
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22785
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22786
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22787
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22788
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
22789
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22790
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22791
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22792
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22793
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22794
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22795
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22796
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22797
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22798
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22799
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22800
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
22801
|
+
];
|
|
22802
|
+
DEFAULT_CASTLE_UNITS = [
|
|
22803
|
+
{ id: "u1", position: { x: 1, y: 1 }, unitType: "worker", name: "Worker", team: "player", health: 10, maxHealth: 10, sprite: `${CDN2}/sprite-sheets/coordinator-sprite-sheet-se.png` },
|
|
22804
|
+
{ id: "u2", position: { x: 3, y: 3 }, unitType: "guardian", name: "Guardian", team: "player", health: 10, maxHealth: 10, sprite: `${CDN2}/sprite-sheets/forger-sprite-sheet-se.png` }
|
|
22805
|
+
];
|
|
22806
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
22807
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
22808
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
22809
|
+
];
|
|
22810
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
22811
|
+
baseUrl: CDN2,
|
|
22812
|
+
terrains: {
|
|
22813
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
22814
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
22815
|
+
},
|
|
22816
|
+
units: {
|
|
22817
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
22818
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
22819
|
+
},
|
|
22820
|
+
features: {
|
|
22821
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
22822
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
22823
|
+
}
|
|
22824
|
+
};
|
|
22700
22825
|
CastleTemplate.displayName = "CastleTemplate";
|
|
22701
22826
|
}
|
|
22702
22827
|
});
|
|
@@ -23818,7 +23943,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
23818
23943
|
}
|
|
23819
23944
|
});
|
|
23820
23945
|
function CombatLog({
|
|
23821
|
-
events: events2,
|
|
23946
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
23822
23947
|
maxVisible = 50,
|
|
23823
23948
|
autoScroll = true,
|
|
23824
23949
|
showTimestamps = false,
|
|
@@ -23869,7 +23994,7 @@ function CombatLog({
|
|
|
23869
23994
|
}) }) })
|
|
23870
23995
|
] });
|
|
23871
23996
|
}
|
|
23872
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
23997
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
23873
23998
|
var init_CombatLog = __esm({
|
|
23874
23999
|
"components/game/molecules/CombatLog.tsx"() {
|
|
23875
24000
|
init_atoms2();
|
|
@@ -23901,6 +24026,13 @@ var init_CombatLog = __esm({
|
|
|
23901
24026
|
death: "secondary",
|
|
23902
24027
|
spawn: "secondary"
|
|
23903
24028
|
};
|
|
24029
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
24030
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
24031
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
24032
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
24033
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
24034
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
24035
|
+
];
|
|
23904
24036
|
CombatLog.displayName = "CombatLog";
|
|
23905
24037
|
}
|
|
23906
24038
|
});
|
|
@@ -24308,9 +24440,9 @@ function isValidRarity(value) {
|
|
|
24308
24440
|
return rarityValues.includes(value);
|
|
24309
24441
|
}
|
|
24310
24442
|
function CraftingRecipe({
|
|
24311
|
-
inputs,
|
|
24312
|
-
output,
|
|
24313
|
-
canCraft =
|
|
24443
|
+
inputs = DEFAULT_INPUTS,
|
|
24444
|
+
output = DEFAULT_OUTPUT,
|
|
24445
|
+
canCraft = true,
|
|
24314
24446
|
onCraft,
|
|
24315
24447
|
craftEvent,
|
|
24316
24448
|
className
|
|
@@ -24371,7 +24503,7 @@ function CraftingRecipe({
|
|
|
24371
24503
|
}
|
|
24372
24504
|
);
|
|
24373
24505
|
}
|
|
24374
|
-
var rarityValues;
|
|
24506
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
24375
24507
|
var init_CraftingRecipe = __esm({
|
|
24376
24508
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
24377
24509
|
"use client";
|
|
@@ -24383,6 +24515,15 @@ var init_CraftingRecipe = __esm({
|
|
|
24383
24515
|
init_Stack();
|
|
24384
24516
|
init_Icon();
|
|
24385
24517
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
24518
|
+
DEFAULT_INPUTS = [
|
|
24519
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
24520
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
24521
|
+
];
|
|
24522
|
+
DEFAULT_OUTPUT = {
|
|
24523
|
+
icon: "sword",
|
|
24524
|
+
label: "Iron Sword",
|
|
24525
|
+
rarity: "uncommon"
|
|
24526
|
+
};
|
|
24386
24527
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
24387
24528
|
}
|
|
24388
24529
|
});
|
|
@@ -29379,10 +29520,10 @@ var init_StatBadge = __esm({
|
|
|
29379
29520
|
}
|
|
29380
29521
|
});
|
|
29381
29522
|
function InventoryGrid({
|
|
29382
|
-
items,
|
|
29523
|
+
items = DEFAULT_GRID_ITEMS,
|
|
29383
29524
|
columns = 4,
|
|
29384
|
-
totalSlots,
|
|
29385
|
-
selectedId,
|
|
29525
|
+
totalSlots = 12,
|
|
29526
|
+
selectedId = "",
|
|
29386
29527
|
onSelect,
|
|
29387
29528
|
selectEvent,
|
|
29388
29529
|
size = "md",
|
|
@@ -29431,7 +29572,7 @@ function InventoryGrid({
|
|
|
29431
29572
|
}
|
|
29432
29573
|
);
|
|
29433
29574
|
}
|
|
29434
|
-
var columnMap;
|
|
29575
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
29435
29576
|
var init_InventoryGrid = __esm({
|
|
29436
29577
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
29437
29578
|
"use client";
|
|
@@ -29448,12 +29589,18 @@ var init_InventoryGrid = __esm({
|
|
|
29448
29589
|
7: "grid-cols-7",
|
|
29449
29590
|
8: "grid-cols-8"
|
|
29450
29591
|
};
|
|
29592
|
+
DEFAULT_GRID_ITEMS = [
|
|
29593
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
29594
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
29595
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
29596
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
29597
|
+
];
|
|
29451
29598
|
InventoryGrid.displayName = "InventoryGrid";
|
|
29452
29599
|
}
|
|
29453
29600
|
});
|
|
29454
29601
|
function QuestTracker({
|
|
29455
|
-
quests,
|
|
29456
|
-
activeQuestId,
|
|
29602
|
+
quests = DEFAULT_QUESTS,
|
|
29603
|
+
activeQuestId = "q2",
|
|
29457
29604
|
className
|
|
29458
29605
|
}) {
|
|
29459
29606
|
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -29519,6 +29666,7 @@ function QuestTracker({
|
|
|
29519
29666
|
);
|
|
29520
29667
|
}) });
|
|
29521
29668
|
}
|
|
29669
|
+
var DEFAULT_QUESTS;
|
|
29522
29670
|
var init_QuestTracker = __esm({
|
|
29523
29671
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
29524
29672
|
"use client";
|
|
@@ -29528,6 +29676,11 @@ var init_QuestTracker = __esm({
|
|
|
29528
29676
|
init_Typography();
|
|
29529
29677
|
init_Box();
|
|
29530
29678
|
init_Stack();
|
|
29679
|
+
DEFAULT_QUESTS = [
|
|
29680
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
29681
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
29682
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
29683
|
+
];
|
|
29531
29684
|
QuestTracker.displayName = "QuestTracker";
|
|
29532
29685
|
}
|
|
29533
29686
|
});
|
|
@@ -29540,7 +29693,7 @@ function formatTime2(seconds) {
|
|
|
29540
29693
|
return `${seconds}s`;
|
|
29541
29694
|
}
|
|
29542
29695
|
function PowerupSlots({
|
|
29543
|
-
active,
|
|
29696
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
29544
29697
|
maxSlots = 4,
|
|
29545
29698
|
className
|
|
29546
29699
|
}) {
|
|
@@ -29585,6 +29738,7 @@ function PowerupSlots({
|
|
|
29585
29738
|
))
|
|
29586
29739
|
] });
|
|
29587
29740
|
}
|
|
29741
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
29588
29742
|
var init_PowerupSlots = __esm({
|
|
29589
29743
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
29590
29744
|
"use client";
|
|
@@ -29593,6 +29747,10 @@ var init_PowerupSlots = __esm({
|
|
|
29593
29747
|
init_Box();
|
|
29594
29748
|
init_Stack();
|
|
29595
29749
|
init_Typography();
|
|
29750
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
29751
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
29752
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
29753
|
+
];
|
|
29596
29754
|
PowerupSlots.displayName = "PowerupSlots";
|
|
29597
29755
|
}
|
|
29598
29756
|
});
|
|
@@ -29604,7 +29762,7 @@ function GameCanvas2D({
|
|
|
29604
29762
|
tickEvent,
|
|
29605
29763
|
drawEvent,
|
|
29606
29764
|
fps = 60,
|
|
29607
|
-
backgroundImage = "
|
|
29765
|
+
backgroundImage = "",
|
|
29608
29766
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
29609
29767
|
className
|
|
29610
29768
|
}) {
|
|
@@ -29708,10 +29866,10 @@ var init_GameCanvas2D = __esm({
|
|
|
29708
29866
|
}
|
|
29709
29867
|
});
|
|
29710
29868
|
function HealthPanel({
|
|
29711
|
-
current,
|
|
29712
|
-
max,
|
|
29713
|
-
shield,
|
|
29714
|
-
label,
|
|
29869
|
+
current = 75,
|
|
29870
|
+
max = 100,
|
|
29871
|
+
shield = 20,
|
|
29872
|
+
label = "Player HP",
|
|
29715
29873
|
effects,
|
|
29716
29874
|
showNumbers = true,
|
|
29717
29875
|
size = "md",
|
|
@@ -29829,11 +29987,11 @@ var init_HealthPanel = __esm({
|
|
|
29829
29987
|
}
|
|
29830
29988
|
});
|
|
29831
29989
|
function ScoreBoard({
|
|
29832
|
-
score: rawScore,
|
|
29833
|
-
highScore: rawHighScore,
|
|
29834
|
-
combo: rawCombo,
|
|
29835
|
-
multiplier: rawMultiplier,
|
|
29836
|
-
level: rawLevel,
|
|
29990
|
+
score: rawScore = 4200,
|
|
29991
|
+
highScore: rawHighScore = 8750,
|
|
29992
|
+
combo: rawCombo = 3,
|
|
29993
|
+
multiplier: rawMultiplier = 2,
|
|
29994
|
+
level: rawLevel = 4,
|
|
29837
29995
|
className
|
|
29838
29996
|
}) {
|
|
29839
29997
|
const score = rawScore ?? 0;
|
|
@@ -29906,7 +30064,7 @@ var init_ScoreBoard = __esm({
|
|
|
29906
30064
|
}
|
|
29907
30065
|
});
|
|
29908
30066
|
function ResourceBar({
|
|
29909
|
-
resources,
|
|
30067
|
+
resources = DEFAULT_RESOURCES,
|
|
29910
30068
|
size = "md",
|
|
29911
30069
|
className
|
|
29912
30070
|
}) {
|
|
@@ -29932,21 +30090,27 @@ function ResourceBar({
|
|
|
29932
30090
|
}
|
|
29933
30091
|
);
|
|
29934
30092
|
}
|
|
30093
|
+
var DEFAULT_RESOURCES;
|
|
29935
30094
|
var init_ResourceBar = __esm({
|
|
29936
30095
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
29937
30096
|
"use client";
|
|
29938
30097
|
init_cn();
|
|
29939
30098
|
init_StatBadge();
|
|
29940
30099
|
init_Box();
|
|
30100
|
+
DEFAULT_RESOURCES = [
|
|
30101
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
30102
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
30103
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
30104
|
+
];
|
|
29941
30105
|
ResourceBar.displayName = "ResourceBar";
|
|
29942
30106
|
}
|
|
29943
30107
|
});
|
|
29944
30108
|
function TurnPanel({
|
|
29945
|
-
currentTurn,
|
|
29946
|
-
maxTurns,
|
|
29947
|
-
phase,
|
|
29948
|
-
activeTeam,
|
|
29949
|
-
actions,
|
|
30109
|
+
currentTurn = 3,
|
|
30110
|
+
maxTurns = 10,
|
|
30111
|
+
phase = "Attack",
|
|
30112
|
+
activeTeam = "Heroes",
|
|
30113
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
29950
30114
|
className
|
|
29951
30115
|
}) {
|
|
29952
30116
|
const eventBus = useEventBus();
|
|
@@ -29991,6 +30155,7 @@ function TurnPanel({
|
|
|
29991
30155
|
}
|
|
29992
30156
|
);
|
|
29993
30157
|
}
|
|
30158
|
+
var DEFAULT_TURN_ACTIONS;
|
|
29994
30159
|
var init_TurnPanel = __esm({
|
|
29995
30160
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
29996
30161
|
"use client";
|
|
@@ -29999,15 +30164,19 @@ var init_TurnPanel = __esm({
|
|
|
29999
30164
|
init_Button();
|
|
30000
30165
|
init_Box();
|
|
30001
30166
|
init_useEventBus();
|
|
30167
|
+
DEFAULT_TURN_ACTIONS = [
|
|
30168
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
30169
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
30170
|
+
];
|
|
30002
30171
|
TurnPanel.displayName = "TurnPanel";
|
|
30003
30172
|
}
|
|
30004
30173
|
});
|
|
30005
30174
|
function EnemyPlate({
|
|
30006
|
-
name,
|
|
30007
|
-
health,
|
|
30008
|
-
maxHealth,
|
|
30009
|
-
level,
|
|
30010
|
-
effects,
|
|
30175
|
+
name = "Shadow Guard",
|
|
30176
|
+
health = 80,
|
|
30177
|
+
maxHealth = 100,
|
|
30178
|
+
level = 5,
|
|
30179
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
30011
30180
|
className
|
|
30012
30181
|
}) {
|
|
30013
30182
|
return /* @__PURE__ */ jsxs(
|
|
@@ -30073,7 +30242,7 @@ function EnemyPlate({
|
|
|
30073
30242
|
}
|
|
30074
30243
|
);
|
|
30075
30244
|
}
|
|
30076
|
-
var effectVariantMap2;
|
|
30245
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
30077
30246
|
var init_EnemyPlate = __esm({
|
|
30078
30247
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
30079
30248
|
"use client";
|
|
@@ -30087,12 +30256,15 @@ var init_EnemyPlate = __esm({
|
|
|
30087
30256
|
debuff: "danger",
|
|
30088
30257
|
neutral: "neutral"
|
|
30089
30258
|
};
|
|
30259
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
30260
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
30261
|
+
];
|
|
30090
30262
|
EnemyPlate.displayName = "EnemyPlate";
|
|
30091
30263
|
}
|
|
30092
30264
|
});
|
|
30093
30265
|
function UnitCommandBar({
|
|
30094
|
-
commands,
|
|
30095
|
-
selectedUnitId,
|
|
30266
|
+
commands = DEFAULT_COMMANDS,
|
|
30267
|
+
selectedUnitId = "unit-1",
|
|
30096
30268
|
className
|
|
30097
30269
|
}) {
|
|
30098
30270
|
const eventBus = useEventBus();
|
|
@@ -30135,6 +30307,7 @@ function UnitCommandBar({
|
|
|
30135
30307
|
}
|
|
30136
30308
|
);
|
|
30137
30309
|
}
|
|
30310
|
+
var DEFAULT_COMMANDS;
|
|
30138
30311
|
var init_UnitCommandBar = __esm({
|
|
30139
30312
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
30140
30313
|
"use client";
|
|
@@ -30143,6 +30316,12 @@ var init_UnitCommandBar = __esm({
|
|
|
30143
30316
|
init_Box();
|
|
30144
30317
|
init_Typography();
|
|
30145
30318
|
init_useEventBus();
|
|
30319
|
+
DEFAULT_COMMANDS = [
|
|
30320
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
30321
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
30322
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
30323
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
30324
|
+
];
|
|
30146
30325
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
30147
30326
|
}
|
|
30148
30327
|
});
|
|
@@ -30176,7 +30355,7 @@ function GameHud({
|
|
|
30176
30355
|
className,
|
|
30177
30356
|
transparent = true
|
|
30178
30357
|
}) {
|
|
30179
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
30358
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
30180
30359
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
30181
30360
|
const position = propPosition ?? "corners";
|
|
30182
30361
|
if (position === "corners") {
|
|
@@ -30201,7 +30380,7 @@ function GameHud({
|
|
|
30201
30380
|
}
|
|
30202
30381
|
);
|
|
30203
30382
|
}
|
|
30204
|
-
var positionMap;
|
|
30383
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
30205
30384
|
var init_GameHud = __esm({
|
|
30206
30385
|
"components/game/molecules/GameHud.tsx"() {
|
|
30207
30386
|
init_cn();
|
|
@@ -30211,11 +30390,17 @@ var init_GameHud = __esm({
|
|
|
30211
30390
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
30212
30391
|
corners: "inset-0 pointer-events-none"
|
|
30213
30392
|
};
|
|
30393
|
+
DEFAULT_HUD_STATS = [
|
|
30394
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
30395
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
30396
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
30397
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
30398
|
+
];
|
|
30214
30399
|
GameHud.displayName = "GameHud";
|
|
30215
30400
|
}
|
|
30216
30401
|
});
|
|
30217
30402
|
function DialogueBox({
|
|
30218
|
-
dialogue,
|
|
30403
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
30219
30404
|
typewriterSpeed = 30,
|
|
30220
30405
|
position = "bottom",
|
|
30221
30406
|
onComplete,
|
|
@@ -30398,17 +30583,27 @@ function DialogueBox({
|
|
|
30398
30583
|
}
|
|
30399
30584
|
);
|
|
30400
30585
|
}
|
|
30586
|
+
var DEFAULT_DIALOGUE;
|
|
30401
30587
|
var init_DialogueBox = __esm({
|
|
30402
30588
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
30403
30589
|
"use client";
|
|
30404
30590
|
init_cn();
|
|
30405
30591
|
init_useEventBus();
|
|
30592
|
+
DEFAULT_DIALOGUE = {
|
|
30593
|
+
speaker: "Village Elder",
|
|
30594
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
30595
|
+
choices: [
|
|
30596
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
30597
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
30598
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
30599
|
+
]
|
|
30600
|
+
};
|
|
30406
30601
|
}
|
|
30407
30602
|
});
|
|
30408
30603
|
function InventoryPanel({
|
|
30409
|
-
items,
|
|
30410
|
-
slots,
|
|
30411
|
-
columns,
|
|
30604
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
30605
|
+
slots = 12,
|
|
30606
|
+
columns = 4,
|
|
30412
30607
|
selectedSlot,
|
|
30413
30608
|
onSelectSlot,
|
|
30414
30609
|
onUseItem,
|
|
@@ -30556,25 +30751,31 @@ function InventoryPanel({
|
|
|
30556
30751
|
)
|
|
30557
30752
|
] });
|
|
30558
30753
|
}
|
|
30754
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
30559
30755
|
var init_InventoryPanel = __esm({
|
|
30560
30756
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
30561
30757
|
"use client";
|
|
30562
30758
|
init_cn();
|
|
30563
30759
|
init_useEventBus();
|
|
30760
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
30761
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
30762
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
30763
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
30764
|
+
];
|
|
30564
30765
|
}
|
|
30565
30766
|
});
|
|
30566
30767
|
function GameMenu({
|
|
30567
|
-
title,
|
|
30768
|
+
title = "Epic Quest",
|
|
30568
30769
|
subtitle,
|
|
30569
30770
|
options,
|
|
30570
30771
|
menuItems,
|
|
30571
30772
|
onSelect,
|
|
30572
30773
|
eventBus: eventBusProp,
|
|
30573
30774
|
background,
|
|
30574
|
-
logo,
|
|
30775
|
+
logo = "",
|
|
30575
30776
|
className
|
|
30576
30777
|
}) {
|
|
30577
|
-
const resolvedOptions = options ?? menuItems ??
|
|
30778
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
30578
30779
|
let eventBusFromHook = null;
|
|
30579
30780
|
try {
|
|
30580
30781
|
eventBusFromHook = useEventBus();
|
|
@@ -30655,7 +30856,7 @@ function GameMenu({
|
|
|
30655
30856
|
}
|
|
30656
30857
|
);
|
|
30657
30858
|
}
|
|
30658
|
-
var variantMap3;
|
|
30859
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
30659
30860
|
var init_GameMenu = __esm({
|
|
30660
30861
|
"components/game/molecules/GameMenu.tsx"() {
|
|
30661
30862
|
"use client";
|
|
@@ -30666,6 +30867,11 @@ var init_GameMenu = __esm({
|
|
|
30666
30867
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30667
30868
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30668
30869
|
};
|
|
30870
|
+
DEFAULT_MENU_OPTIONS = [
|
|
30871
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
30872
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
30873
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
30874
|
+
];
|
|
30669
30875
|
GameMenu.displayName = "GameMenu";
|
|
30670
30876
|
}
|
|
30671
30877
|
});
|
|
@@ -30676,19 +30882,19 @@ function formatTime3(ms) {
|
|
|
30676
30882
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
30677
30883
|
}
|
|
30678
30884
|
function GameOverScreen({
|
|
30679
|
-
title,
|
|
30885
|
+
title = "Game Over",
|
|
30680
30886
|
message,
|
|
30681
|
-
stats =
|
|
30887
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
30682
30888
|
actions,
|
|
30683
30889
|
menuItems,
|
|
30684
30890
|
onAction,
|
|
30685
30891
|
eventBus: eventBusProp,
|
|
30686
|
-
variant = "
|
|
30687
|
-
highScore,
|
|
30688
|
-
currentScore,
|
|
30892
|
+
variant = "defeat",
|
|
30893
|
+
highScore = 2e3,
|
|
30894
|
+
currentScore = 1240,
|
|
30689
30895
|
className
|
|
30690
30896
|
}) {
|
|
30691
|
-
const resolvedActions = actions ?? menuItems ??
|
|
30897
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
30692
30898
|
let eventBusFromHook = null;
|
|
30693
30899
|
try {
|
|
30694
30900
|
eventBusFromHook = useEventBus();
|
|
@@ -30775,7 +30981,7 @@ function GameOverScreen({
|
|
|
30775
30981
|
}
|
|
30776
30982
|
);
|
|
30777
30983
|
}
|
|
30778
|
-
var variantColors, buttonVariants;
|
|
30984
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
30779
30985
|
var init_GameOverScreen = __esm({
|
|
30780
30986
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
30781
30987
|
"use client";
|
|
@@ -30804,21 +31010,35 @@ var init_GameOverScreen = __esm({
|
|
|
30804
31010
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30805
31011
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30806
31012
|
};
|
|
31013
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
31014
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
31015
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
31016
|
+
];
|
|
31017
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
31018
|
+
{ label: "Score", value: 1240 },
|
|
31019
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
31020
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
31021
|
+
];
|
|
30807
31022
|
GameOverScreen.displayName = "GameOverScreen";
|
|
30808
31023
|
}
|
|
30809
31024
|
});
|
|
30810
31025
|
function PlatformerCanvas({
|
|
30811
31026
|
player,
|
|
30812
|
-
platforms = [
|
|
31027
|
+
platforms = [
|
|
31028
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
31029
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
31030
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
31031
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
31032
|
+
],
|
|
30813
31033
|
worldWidth = 800,
|
|
30814
31034
|
worldHeight = 400,
|
|
30815
31035
|
canvasWidth = 800,
|
|
30816
31036
|
canvasHeight = 400,
|
|
30817
31037
|
followCamera = true,
|
|
30818
|
-
bgColor,
|
|
31038
|
+
bgColor = "#5c94fc",
|
|
30819
31039
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
30820
31040
|
tileSprites,
|
|
30821
|
-
backgroundImage = "
|
|
31041
|
+
backgroundImage = "",
|
|
30822
31042
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
30823
31043
|
leftEvent = "MOVE_LEFT",
|
|
30824
31044
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -30866,10 +31086,10 @@ function PlatformerCanvas({
|
|
|
30866
31086
|
};
|
|
30867
31087
|
}, []);
|
|
30868
31088
|
const resolvedPlayer = player ?? {
|
|
30869
|
-
x:
|
|
30870
|
-
y:
|
|
30871
|
-
width:
|
|
30872
|
-
height:
|
|
31089
|
+
x: 80,
|
|
31090
|
+
y: 336,
|
|
31091
|
+
width: 32,
|
|
31092
|
+
height: 48,
|
|
30873
31093
|
facingRight: true
|
|
30874
31094
|
};
|
|
30875
31095
|
const handleKeyDown = useCallback((e) => {
|
|
@@ -49158,12 +49378,12 @@ function WorldMapTemplate({
|
|
|
49158
49378
|
entity,
|
|
49159
49379
|
scale = 0.4,
|
|
49160
49380
|
unitScale = 2.5,
|
|
49161
|
-
diamondTopY,
|
|
49381
|
+
diamondTopY = 374,
|
|
49162
49382
|
allowMoveAllHeroes = false,
|
|
49163
|
-
tiles,
|
|
49164
|
-
units,
|
|
49165
|
-
features,
|
|
49166
|
-
assetManifest,
|
|
49383
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
49384
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
49385
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
49386
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
49167
49387
|
className
|
|
49168
49388
|
}) {
|
|
49169
49389
|
return /* @__PURE__ */ jsx(
|
|
@@ -49186,9 +49406,63 @@ function WorldMapTemplate({
|
|
|
49186
49406
|
}
|
|
49187
49407
|
);
|
|
49188
49408
|
}
|
|
49409
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
49189
49410
|
var init_WorldMapTemplate = __esm({
|
|
49190
49411
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
49191
49412
|
init_WorldMapBoard();
|
|
49413
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
49414
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
49415
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49416
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49417
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49418
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49419
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49420
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49421
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49422
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49423
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49424
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49425
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49426
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49427
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49428
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49429
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49430
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49431
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49432
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49433
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49434
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49435
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49436
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49437
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49438
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49439
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
49440
|
+
];
|
|
49441
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
49442
|
+
{ id: "h1", position: { x: 1, y: 1 }, unitType: "hero", name: "Amir", team: "player", health: 10, maxHealth: 10, sprite: `${CDN3}/sprite-sheets/amir-sprite-sheet-se.png` },
|
|
49443
|
+
{ id: "h2", position: { x: 3, y: 3 }, unitType: "scout", name: "Archivist", team: "player", health: 10, maxHealth: 10, sprite: `${CDN3}/sprite-sheets/archivist-sprite-sheet-se.png` }
|
|
49444
|
+
];
|
|
49445
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
49446
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
49447
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
49448
|
+
];
|
|
49449
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
49450
|
+
baseUrl: CDN3,
|
|
49451
|
+
terrains: {
|
|
49452
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
49453
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
49454
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
49455
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
49456
|
+
},
|
|
49457
|
+
units: {
|
|
49458
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
49459
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
49460
|
+
},
|
|
49461
|
+
features: {
|
|
49462
|
+
capital: "/scenes/world/capital.png",
|
|
49463
|
+
power_node: "/world-map/power_node.png"
|
|
49464
|
+
}
|
|
49465
|
+
};
|
|
49192
49466
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
49193
49467
|
}
|
|
49194
49468
|
});
|