@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/components/index.js
CHANGED
|
@@ -8179,7 +8179,7 @@ var init_Accordion = __esm({
|
|
|
8179
8179
|
}
|
|
8180
8180
|
});
|
|
8181
8181
|
function ActionButton({
|
|
8182
|
-
label,
|
|
8182
|
+
label = "Attack",
|
|
8183
8183
|
icon,
|
|
8184
8184
|
cooldown = 0,
|
|
8185
8185
|
disabled = false,
|
|
@@ -8366,7 +8366,7 @@ var init_ControlButton = __esm({
|
|
|
8366
8366
|
}
|
|
8367
8367
|
});
|
|
8368
8368
|
function ActionButtons({
|
|
8369
|
-
buttons,
|
|
8369
|
+
buttons = DEFAULT_BUTTONS,
|
|
8370
8370
|
onAction,
|
|
8371
8371
|
actionEvent,
|
|
8372
8372
|
layout = "horizontal",
|
|
@@ -8473,7 +8473,7 @@ function ActionButtons({
|
|
|
8473
8473
|
button.id
|
|
8474
8474
|
)) });
|
|
8475
8475
|
}
|
|
8476
|
-
var sizeMap3, layoutMap;
|
|
8476
|
+
var sizeMap3, layoutMap, DEFAULT_BUTTONS;
|
|
8477
8477
|
var init_ActionButtons = __esm({
|
|
8478
8478
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
8479
8479
|
"use client";
|
|
@@ -8490,6 +8490,11 @@ var init_ActionButtons = __esm({
|
|
|
8490
8490
|
vertical: "flex flex-col gap-2",
|
|
8491
8491
|
diamond: "grid grid-cols-3 gap-1"
|
|
8492
8492
|
};
|
|
8493
|
+
DEFAULT_BUTTONS = [
|
|
8494
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
8495
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
8496
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
8497
|
+
];
|
|
8493
8498
|
ActionButtons.displayName = "ActionButtons";
|
|
8494
8499
|
}
|
|
8495
8500
|
});
|
|
@@ -9580,7 +9585,7 @@ function IsometricCanvas({
|
|
|
9580
9585
|
// Rendering options
|
|
9581
9586
|
scale = 0.4,
|
|
9582
9587
|
debug: debug2 = false,
|
|
9583
|
-
backgroundImage = "
|
|
9588
|
+
backgroundImage = "",
|
|
9584
9589
|
showMinimap = true,
|
|
9585
9590
|
enableCamera = true,
|
|
9586
9591
|
unitScale = 1,
|
|
@@ -10719,10 +10724,10 @@ function BattleTemplate({
|
|
|
10719
10724
|
entity,
|
|
10720
10725
|
scale = 0.45,
|
|
10721
10726
|
unitScale = 1,
|
|
10722
|
-
tiles,
|
|
10723
|
-
units,
|
|
10724
|
-
features,
|
|
10725
|
-
assetManifest,
|
|
10727
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
10728
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
10729
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
10730
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
10726
10731
|
className
|
|
10727
10732
|
}) {
|
|
10728
10733
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -10748,9 +10753,62 @@ function BattleTemplate({
|
|
|
10748
10753
|
}
|
|
10749
10754
|
);
|
|
10750
10755
|
}
|
|
10756
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
10751
10757
|
var init_BattleTemplate = __esm({
|
|
10752
10758
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
10753
10759
|
init_BattleBoard();
|
|
10760
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
10761
|
+
DEFAULT_BATTLE_TILES = [
|
|
10762
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10763
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10764
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10765
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10766
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10767
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10768
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
10769
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10770
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10771
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10772
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10773
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10774
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
10775
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10776
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10777
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10778
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10779
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
10780
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
10781
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10782
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10783
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10784
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10785
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
10786
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
10787
|
+
];
|
|
10788
|
+
DEFAULT_BATTLE_UNITS = [
|
|
10789
|
+
{ 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` },
|
|
10790
|
+
{ 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` }
|
|
10791
|
+
];
|
|
10792
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
10793
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
10794
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
10795
|
+
];
|
|
10796
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
10797
|
+
baseUrl: CDN,
|
|
10798
|
+
terrains: {
|
|
10799
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
10800
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
10801
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
10802
|
+
},
|
|
10803
|
+
units: {
|
|
10804
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
10805
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
10806
|
+
},
|
|
10807
|
+
features: {
|
|
10808
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
10809
|
+
portal: "/world-map/portal_open.png"
|
|
10810
|
+
}
|
|
10811
|
+
};
|
|
10754
10812
|
BattleTemplate.displayName = "BattleTemplate";
|
|
10755
10813
|
}
|
|
10756
10814
|
});
|
|
@@ -18750,10 +18808,10 @@ var init_CastleBoard = __esm({
|
|
|
18750
18808
|
function CastleTemplate({
|
|
18751
18809
|
entity,
|
|
18752
18810
|
scale = 0.45,
|
|
18753
|
-
tiles,
|
|
18754
|
-
units,
|
|
18755
|
-
features,
|
|
18756
|
-
assetManifest,
|
|
18811
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
18812
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
18813
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
18814
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
18757
18815
|
className
|
|
18758
18816
|
}) {
|
|
18759
18817
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -18774,9 +18832,61 @@ function CastleTemplate({
|
|
|
18774
18832
|
}
|
|
18775
18833
|
);
|
|
18776
18834
|
}
|
|
18835
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
18777
18836
|
var init_CastleTemplate = __esm({
|
|
18778
18837
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
18779
18838
|
init_CastleBoard();
|
|
18839
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
18840
|
+
DEFAULT_CASTLE_TILES = [
|
|
18841
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18842
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18843
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18844
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18845
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18846
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18847
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18848
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18849
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18850
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18851
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18852
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18853
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
18854
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18855
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18856
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18857
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18858
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18859
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
18860
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18861
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18862
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18863
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18864
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
18865
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
18866
|
+
];
|
|
18867
|
+
DEFAULT_CASTLE_UNITS = [
|
|
18868
|
+
{ 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` },
|
|
18869
|
+
{ 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` }
|
|
18870
|
+
];
|
|
18871
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
18872
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
18873
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
18874
|
+
];
|
|
18875
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
18876
|
+
baseUrl: CDN2,
|
|
18877
|
+
terrains: {
|
|
18878
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
18879
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
18880
|
+
},
|
|
18881
|
+
units: {
|
|
18882
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
18883
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
18884
|
+
},
|
|
18885
|
+
features: {
|
|
18886
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
18887
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
18888
|
+
}
|
|
18889
|
+
};
|
|
18780
18890
|
CastleTemplate.displayName = "CastleTemplate";
|
|
18781
18891
|
}
|
|
18782
18892
|
});
|
|
@@ -19555,7 +19665,7 @@ var init_ChartLegend = __esm({
|
|
|
19555
19665
|
}
|
|
19556
19666
|
});
|
|
19557
19667
|
function ChoiceButton({
|
|
19558
|
-
text,
|
|
19668
|
+
text = "Charge forward into the fray",
|
|
19559
19669
|
index,
|
|
19560
19670
|
disabled = false,
|
|
19561
19671
|
selected = false,
|
|
@@ -19944,7 +20054,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
19944
20054
|
}
|
|
19945
20055
|
});
|
|
19946
20056
|
function CombatLog({
|
|
19947
|
-
events: events2,
|
|
20057
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
19948
20058
|
maxVisible = 50,
|
|
19949
20059
|
autoScroll = true,
|
|
19950
20060
|
showTimestamps = false,
|
|
@@ -19995,7 +20105,7 @@ function CombatLog({
|
|
|
19995
20105
|
}) }) })
|
|
19996
20106
|
] });
|
|
19997
20107
|
}
|
|
19998
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
20108
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
19999
20109
|
var init_CombatLog = __esm({
|
|
20000
20110
|
"components/game/molecules/CombatLog.tsx"() {
|
|
20001
20111
|
init_atoms2();
|
|
@@ -20027,6 +20137,13 @@ var init_CombatLog = __esm({
|
|
|
20027
20137
|
death: "secondary",
|
|
20028
20138
|
spawn: "secondary"
|
|
20029
20139
|
};
|
|
20140
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
20141
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
20142
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
20143
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
20144
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
20145
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
20146
|
+
];
|
|
20030
20147
|
CombatLog.displayName = "CombatLog";
|
|
20031
20148
|
}
|
|
20032
20149
|
});
|
|
@@ -20042,7 +20159,7 @@ function getComboScale(combo) {
|
|
|
20042
20159
|
return "";
|
|
20043
20160
|
}
|
|
20044
20161
|
function ComboCounter({
|
|
20045
|
-
combo,
|
|
20162
|
+
combo = 5,
|
|
20046
20163
|
multiplier,
|
|
20047
20164
|
streak,
|
|
20048
20165
|
size = "md",
|
|
@@ -20487,10 +20604,10 @@ var init_CounterTemplate = __esm({
|
|
|
20487
20604
|
}
|
|
20488
20605
|
});
|
|
20489
20606
|
function ItemSlot({
|
|
20490
|
-
icon,
|
|
20491
|
-
label,
|
|
20607
|
+
icon = "sword",
|
|
20608
|
+
label = "Iron Sword",
|
|
20492
20609
|
quantity,
|
|
20493
|
-
rarity = "
|
|
20610
|
+
rarity = "uncommon",
|
|
20494
20611
|
empty,
|
|
20495
20612
|
size = "md",
|
|
20496
20613
|
selected,
|
|
@@ -20567,9 +20684,9 @@ function isValidRarity(value) {
|
|
|
20567
20684
|
return rarityValues.includes(value);
|
|
20568
20685
|
}
|
|
20569
20686
|
function CraftingRecipe({
|
|
20570
|
-
inputs,
|
|
20571
|
-
output,
|
|
20572
|
-
canCraft =
|
|
20687
|
+
inputs = DEFAULT_INPUTS,
|
|
20688
|
+
output = DEFAULT_OUTPUT,
|
|
20689
|
+
canCraft = true,
|
|
20573
20690
|
onCraft,
|
|
20574
20691
|
craftEvent,
|
|
20575
20692
|
className
|
|
@@ -20630,7 +20747,7 @@ function CraftingRecipe({
|
|
|
20630
20747
|
}
|
|
20631
20748
|
);
|
|
20632
20749
|
}
|
|
20633
|
-
var rarityValues;
|
|
20750
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
20634
20751
|
var init_CraftingRecipe = __esm({
|
|
20635
20752
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
20636
20753
|
"use client";
|
|
@@ -20642,6 +20759,15 @@ var init_CraftingRecipe = __esm({
|
|
|
20642
20759
|
init_Stack();
|
|
20643
20760
|
init_Icon();
|
|
20644
20761
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
20762
|
+
DEFAULT_INPUTS = [
|
|
20763
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
20764
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
20765
|
+
];
|
|
20766
|
+
DEFAULT_OUTPUT = {
|
|
20767
|
+
icon: "sword",
|
|
20768
|
+
label: "Iron Sword",
|
|
20769
|
+
rarity: "uncommon"
|
|
20770
|
+
};
|
|
20645
20771
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
20646
20772
|
}
|
|
20647
20773
|
});
|
|
@@ -20723,7 +20849,7 @@ var init_DPad = __esm({
|
|
|
20723
20849
|
}
|
|
20724
20850
|
});
|
|
20725
20851
|
function DamageNumber({
|
|
20726
|
-
value,
|
|
20852
|
+
value = 42,
|
|
20727
20853
|
type = "damage",
|
|
20728
20854
|
size = "md",
|
|
20729
20855
|
className
|
|
@@ -26800,8 +26926,8 @@ var init_ProgressDots = __esm({
|
|
|
26800
26926
|
}
|
|
26801
26927
|
});
|
|
26802
26928
|
function HealthBar({
|
|
26803
|
-
current,
|
|
26804
|
-
max,
|
|
26929
|
+
current = 3,
|
|
26930
|
+
max = 5,
|
|
26805
26931
|
format = "hearts",
|
|
26806
26932
|
size = "md",
|
|
26807
26933
|
className,
|
|
@@ -27021,10 +27147,10 @@ var init_StatBadge = __esm({
|
|
|
27021
27147
|
}
|
|
27022
27148
|
});
|
|
27023
27149
|
function InventoryGrid({
|
|
27024
|
-
items,
|
|
27150
|
+
items = DEFAULT_GRID_ITEMS,
|
|
27025
27151
|
columns = 4,
|
|
27026
|
-
totalSlots,
|
|
27027
|
-
selectedId,
|
|
27152
|
+
totalSlots = 12,
|
|
27153
|
+
selectedId = "",
|
|
27028
27154
|
onSelect,
|
|
27029
27155
|
selectEvent,
|
|
27030
27156
|
size = "md",
|
|
@@ -27073,7 +27199,7 @@ function InventoryGrid({
|
|
|
27073
27199
|
}
|
|
27074
27200
|
);
|
|
27075
27201
|
}
|
|
27076
|
-
var columnMap;
|
|
27202
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
27077
27203
|
var init_InventoryGrid = __esm({
|
|
27078
27204
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
27079
27205
|
"use client";
|
|
@@ -27090,13 +27216,19 @@ var init_InventoryGrid = __esm({
|
|
|
27090
27216
|
7: "grid-cols-7",
|
|
27091
27217
|
8: "grid-cols-8"
|
|
27092
27218
|
};
|
|
27219
|
+
DEFAULT_GRID_ITEMS = [
|
|
27220
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
27221
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
27222
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
27223
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
27224
|
+
];
|
|
27093
27225
|
InventoryGrid.displayName = "InventoryGrid";
|
|
27094
27226
|
}
|
|
27095
27227
|
});
|
|
27096
27228
|
function WaypointMarker({
|
|
27097
27229
|
label,
|
|
27098
27230
|
icon,
|
|
27099
|
-
active =
|
|
27231
|
+
active = true,
|
|
27100
27232
|
completed = false,
|
|
27101
27233
|
size = "md",
|
|
27102
27234
|
className
|
|
@@ -27164,8 +27296,8 @@ var init_WaypointMarker = __esm({
|
|
|
27164
27296
|
}
|
|
27165
27297
|
});
|
|
27166
27298
|
function QuestTracker({
|
|
27167
|
-
quests,
|
|
27168
|
-
activeQuestId,
|
|
27299
|
+
quests = DEFAULT_QUESTS,
|
|
27300
|
+
activeQuestId = "q2",
|
|
27169
27301
|
className
|
|
27170
27302
|
}) {
|
|
27171
27303
|
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -27231,6 +27363,7 @@ function QuestTracker({
|
|
|
27231
27363
|
);
|
|
27232
27364
|
}) });
|
|
27233
27365
|
}
|
|
27366
|
+
var DEFAULT_QUESTS;
|
|
27234
27367
|
var init_QuestTracker = __esm({
|
|
27235
27368
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
27236
27369
|
"use client";
|
|
@@ -27240,6 +27373,11 @@ var init_QuestTracker = __esm({
|
|
|
27240
27373
|
init_Typography();
|
|
27241
27374
|
init_Box();
|
|
27242
27375
|
init_Stack();
|
|
27376
|
+
DEFAULT_QUESTS = [
|
|
27377
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
27378
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
27379
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
27380
|
+
];
|
|
27243
27381
|
QuestTracker.displayName = "QuestTracker";
|
|
27244
27382
|
}
|
|
27245
27383
|
});
|
|
@@ -27252,7 +27390,7 @@ function formatTime(seconds) {
|
|
|
27252
27390
|
return `${seconds}s`;
|
|
27253
27391
|
}
|
|
27254
27392
|
function PowerupSlots({
|
|
27255
|
-
active,
|
|
27393
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
27256
27394
|
maxSlots = 4,
|
|
27257
27395
|
className
|
|
27258
27396
|
}) {
|
|
@@ -27297,6 +27435,7 @@ function PowerupSlots({
|
|
|
27297
27435
|
))
|
|
27298
27436
|
] });
|
|
27299
27437
|
}
|
|
27438
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
27300
27439
|
var init_PowerupSlots = __esm({
|
|
27301
27440
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
27302
27441
|
"use client";
|
|
@@ -27305,6 +27444,10 @@ var init_PowerupSlots = __esm({
|
|
|
27305
27444
|
init_Box();
|
|
27306
27445
|
init_Stack();
|
|
27307
27446
|
init_Typography();
|
|
27447
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
27448
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
27449
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
27450
|
+
];
|
|
27308
27451
|
PowerupSlots.displayName = "PowerupSlots";
|
|
27309
27452
|
}
|
|
27310
27453
|
});
|
|
@@ -27316,7 +27459,7 @@ function GameCanvas2D({
|
|
|
27316
27459
|
tickEvent,
|
|
27317
27460
|
drawEvent,
|
|
27318
27461
|
fps = 60,
|
|
27319
|
-
backgroundImage = "
|
|
27462
|
+
backgroundImage = "",
|
|
27320
27463
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
27321
27464
|
className
|
|
27322
27465
|
}) {
|
|
@@ -27420,10 +27563,10 @@ var init_GameCanvas2D = __esm({
|
|
|
27420
27563
|
}
|
|
27421
27564
|
});
|
|
27422
27565
|
function HealthPanel({
|
|
27423
|
-
current,
|
|
27424
|
-
max,
|
|
27425
|
-
shield,
|
|
27426
|
-
label,
|
|
27566
|
+
current = 75,
|
|
27567
|
+
max = 100,
|
|
27568
|
+
shield = 20,
|
|
27569
|
+
label = "Player HP",
|
|
27427
27570
|
effects,
|
|
27428
27571
|
showNumbers = true,
|
|
27429
27572
|
size = "md",
|
|
@@ -27541,11 +27684,11 @@ var init_HealthPanel = __esm({
|
|
|
27541
27684
|
}
|
|
27542
27685
|
});
|
|
27543
27686
|
function ScoreBoard({
|
|
27544
|
-
score: rawScore,
|
|
27545
|
-
highScore: rawHighScore,
|
|
27546
|
-
combo: rawCombo,
|
|
27547
|
-
multiplier: rawMultiplier,
|
|
27548
|
-
level: rawLevel,
|
|
27687
|
+
score: rawScore = 4200,
|
|
27688
|
+
highScore: rawHighScore = 8750,
|
|
27689
|
+
combo: rawCombo = 3,
|
|
27690
|
+
multiplier: rawMultiplier = 2,
|
|
27691
|
+
level: rawLevel = 4,
|
|
27549
27692
|
className
|
|
27550
27693
|
}) {
|
|
27551
27694
|
const score = rawScore ?? 0;
|
|
@@ -27618,7 +27761,7 @@ var init_ScoreBoard = __esm({
|
|
|
27618
27761
|
}
|
|
27619
27762
|
});
|
|
27620
27763
|
function ResourceBar({
|
|
27621
|
-
resources,
|
|
27764
|
+
resources = DEFAULT_RESOURCES,
|
|
27622
27765
|
size = "md",
|
|
27623
27766
|
className
|
|
27624
27767
|
}) {
|
|
@@ -27644,17 +27787,23 @@ function ResourceBar({
|
|
|
27644
27787
|
}
|
|
27645
27788
|
);
|
|
27646
27789
|
}
|
|
27790
|
+
var DEFAULT_RESOURCES;
|
|
27647
27791
|
var init_ResourceBar = __esm({
|
|
27648
27792
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
27649
27793
|
"use client";
|
|
27650
27794
|
init_cn();
|
|
27651
27795
|
init_StatBadge();
|
|
27652
27796
|
init_Box();
|
|
27797
|
+
DEFAULT_RESOURCES = [
|
|
27798
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
27799
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
27800
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
27801
|
+
];
|
|
27653
27802
|
ResourceBar.displayName = "ResourceBar";
|
|
27654
27803
|
}
|
|
27655
27804
|
});
|
|
27656
27805
|
function TurnIndicator({
|
|
27657
|
-
currentTurn,
|
|
27806
|
+
currentTurn = 1,
|
|
27658
27807
|
maxTurns,
|
|
27659
27808
|
activeTeam,
|
|
27660
27809
|
phase,
|
|
@@ -27706,11 +27855,11 @@ var init_TurnIndicator = __esm({
|
|
|
27706
27855
|
}
|
|
27707
27856
|
});
|
|
27708
27857
|
function TurnPanel({
|
|
27709
|
-
currentTurn,
|
|
27710
|
-
maxTurns,
|
|
27711
|
-
phase,
|
|
27712
|
-
activeTeam,
|
|
27713
|
-
actions,
|
|
27858
|
+
currentTurn = 3,
|
|
27859
|
+
maxTurns = 10,
|
|
27860
|
+
phase = "Attack",
|
|
27861
|
+
activeTeam = "Heroes",
|
|
27862
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
27714
27863
|
className
|
|
27715
27864
|
}) {
|
|
27716
27865
|
const eventBus = useEventBus();
|
|
@@ -27755,6 +27904,7 @@ function TurnPanel({
|
|
|
27755
27904
|
}
|
|
27756
27905
|
);
|
|
27757
27906
|
}
|
|
27907
|
+
var DEFAULT_TURN_ACTIONS;
|
|
27758
27908
|
var init_TurnPanel = __esm({
|
|
27759
27909
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
27760
27910
|
"use client";
|
|
@@ -27763,15 +27913,19 @@ var init_TurnPanel = __esm({
|
|
|
27763
27913
|
init_Button();
|
|
27764
27914
|
init_Box();
|
|
27765
27915
|
init_useEventBus();
|
|
27916
|
+
DEFAULT_TURN_ACTIONS = [
|
|
27917
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
27918
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
27919
|
+
];
|
|
27766
27920
|
TurnPanel.displayName = "TurnPanel";
|
|
27767
27921
|
}
|
|
27768
27922
|
});
|
|
27769
27923
|
function EnemyPlate({
|
|
27770
|
-
name,
|
|
27771
|
-
health,
|
|
27772
|
-
maxHealth,
|
|
27773
|
-
level,
|
|
27774
|
-
effects,
|
|
27924
|
+
name = "Shadow Guard",
|
|
27925
|
+
health = 80,
|
|
27926
|
+
maxHealth = 100,
|
|
27927
|
+
level = 5,
|
|
27928
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
27775
27929
|
className
|
|
27776
27930
|
}) {
|
|
27777
27931
|
return /* @__PURE__ */ jsxs(
|
|
@@ -27837,7 +27991,7 @@ function EnemyPlate({
|
|
|
27837
27991
|
}
|
|
27838
27992
|
);
|
|
27839
27993
|
}
|
|
27840
|
-
var effectVariantMap2;
|
|
27994
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
27841
27995
|
var init_EnemyPlate = __esm({
|
|
27842
27996
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
27843
27997
|
"use client";
|
|
@@ -27851,12 +28005,15 @@ var init_EnemyPlate = __esm({
|
|
|
27851
28005
|
debuff: "danger",
|
|
27852
28006
|
neutral: "neutral"
|
|
27853
28007
|
};
|
|
28008
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
28009
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
28010
|
+
];
|
|
27854
28011
|
EnemyPlate.displayName = "EnemyPlate";
|
|
27855
28012
|
}
|
|
27856
28013
|
});
|
|
27857
28014
|
function UnitCommandBar({
|
|
27858
|
-
commands,
|
|
27859
|
-
selectedUnitId,
|
|
28015
|
+
commands = DEFAULT_COMMANDS,
|
|
28016
|
+
selectedUnitId = "unit-1",
|
|
27860
28017
|
className
|
|
27861
28018
|
}) {
|
|
27862
28019
|
const eventBus = useEventBus();
|
|
@@ -27899,6 +28056,7 @@ function UnitCommandBar({
|
|
|
27899
28056
|
}
|
|
27900
28057
|
);
|
|
27901
28058
|
}
|
|
28059
|
+
var DEFAULT_COMMANDS;
|
|
27902
28060
|
var init_UnitCommandBar = __esm({
|
|
27903
28061
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
27904
28062
|
"use client";
|
|
@@ -27907,6 +28065,12 @@ var init_UnitCommandBar = __esm({
|
|
|
27907
28065
|
init_Box();
|
|
27908
28066
|
init_Typography();
|
|
27909
28067
|
init_useEventBus();
|
|
28068
|
+
DEFAULT_COMMANDS = [
|
|
28069
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
28070
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
28071
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
28072
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
28073
|
+
];
|
|
27910
28074
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
27911
28075
|
}
|
|
27912
28076
|
});
|
|
@@ -27940,7 +28104,7 @@ function GameHud({
|
|
|
27940
28104
|
className,
|
|
27941
28105
|
transparent = true
|
|
27942
28106
|
}) {
|
|
27943
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
28107
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
27944
28108
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
27945
28109
|
const position = propPosition ?? "corners";
|
|
27946
28110
|
if (position === "corners") {
|
|
@@ -27965,7 +28129,7 @@ function GameHud({
|
|
|
27965
28129
|
}
|
|
27966
28130
|
);
|
|
27967
28131
|
}
|
|
27968
|
-
var positionMap;
|
|
28132
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
27969
28133
|
var init_GameHud = __esm({
|
|
27970
28134
|
"components/game/molecules/GameHud.tsx"() {
|
|
27971
28135
|
init_cn();
|
|
@@ -27975,11 +28139,17 @@ var init_GameHud = __esm({
|
|
|
27975
28139
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
27976
28140
|
corners: "inset-0 pointer-events-none"
|
|
27977
28141
|
};
|
|
28142
|
+
DEFAULT_HUD_STATS = [
|
|
28143
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
28144
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
28145
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
28146
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
28147
|
+
];
|
|
27978
28148
|
GameHud.displayName = "GameHud";
|
|
27979
28149
|
}
|
|
27980
28150
|
});
|
|
27981
28151
|
function DialogueBox({
|
|
27982
|
-
dialogue,
|
|
28152
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
27983
28153
|
typewriterSpeed = 30,
|
|
27984
28154
|
position = "bottom",
|
|
27985
28155
|
onComplete,
|
|
@@ -28162,17 +28332,27 @@ function DialogueBox({
|
|
|
28162
28332
|
}
|
|
28163
28333
|
);
|
|
28164
28334
|
}
|
|
28335
|
+
var DEFAULT_DIALOGUE;
|
|
28165
28336
|
var init_DialogueBox = __esm({
|
|
28166
28337
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
28167
28338
|
"use client";
|
|
28168
28339
|
init_cn();
|
|
28169
28340
|
init_useEventBus();
|
|
28341
|
+
DEFAULT_DIALOGUE = {
|
|
28342
|
+
speaker: "Village Elder",
|
|
28343
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
28344
|
+
choices: [
|
|
28345
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
28346
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
28347
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
28348
|
+
]
|
|
28349
|
+
};
|
|
28170
28350
|
}
|
|
28171
28351
|
});
|
|
28172
28352
|
function InventoryPanel({
|
|
28173
|
-
items,
|
|
28174
|
-
slots,
|
|
28175
|
-
columns,
|
|
28353
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
28354
|
+
slots = 12,
|
|
28355
|
+
columns = 4,
|
|
28176
28356
|
selectedSlot,
|
|
28177
28357
|
onSelectSlot,
|
|
28178
28358
|
onUseItem,
|
|
@@ -28320,25 +28500,31 @@ function InventoryPanel({
|
|
|
28320
28500
|
)
|
|
28321
28501
|
] });
|
|
28322
28502
|
}
|
|
28503
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
28323
28504
|
var init_InventoryPanel = __esm({
|
|
28324
28505
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
28325
28506
|
"use client";
|
|
28326
28507
|
init_cn();
|
|
28327
28508
|
init_useEventBus();
|
|
28509
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
28510
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
28511
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
28512
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
28513
|
+
];
|
|
28328
28514
|
}
|
|
28329
28515
|
});
|
|
28330
28516
|
function GameMenu({
|
|
28331
|
-
title,
|
|
28517
|
+
title = "Epic Quest",
|
|
28332
28518
|
subtitle,
|
|
28333
28519
|
options,
|
|
28334
28520
|
menuItems,
|
|
28335
28521
|
onSelect,
|
|
28336
28522
|
eventBus: eventBusProp,
|
|
28337
28523
|
background,
|
|
28338
|
-
logo,
|
|
28524
|
+
logo = "",
|
|
28339
28525
|
className
|
|
28340
28526
|
}) {
|
|
28341
|
-
const resolvedOptions = options ?? menuItems ??
|
|
28527
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
28342
28528
|
let eventBusFromHook = null;
|
|
28343
28529
|
try {
|
|
28344
28530
|
eventBusFromHook = useEventBus();
|
|
@@ -28419,7 +28605,7 @@ function GameMenu({
|
|
|
28419
28605
|
}
|
|
28420
28606
|
);
|
|
28421
28607
|
}
|
|
28422
|
-
var variantMap3;
|
|
28608
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
28423
28609
|
var init_GameMenu = __esm({
|
|
28424
28610
|
"components/game/molecules/GameMenu.tsx"() {
|
|
28425
28611
|
"use client";
|
|
@@ -28430,6 +28616,11 @@ var init_GameMenu = __esm({
|
|
|
28430
28616
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28431
28617
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28432
28618
|
};
|
|
28619
|
+
DEFAULT_MENU_OPTIONS = [
|
|
28620
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
28621
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
28622
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
28623
|
+
];
|
|
28433
28624
|
GameMenu.displayName = "GameMenu";
|
|
28434
28625
|
}
|
|
28435
28626
|
});
|
|
@@ -28440,19 +28631,19 @@ function formatTime2(ms) {
|
|
|
28440
28631
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
28441
28632
|
}
|
|
28442
28633
|
function GameOverScreen({
|
|
28443
|
-
title,
|
|
28634
|
+
title = "Game Over",
|
|
28444
28635
|
message,
|
|
28445
|
-
stats =
|
|
28636
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
28446
28637
|
actions,
|
|
28447
28638
|
menuItems,
|
|
28448
28639
|
onAction,
|
|
28449
28640
|
eventBus: eventBusProp,
|
|
28450
|
-
variant = "
|
|
28451
|
-
highScore,
|
|
28452
|
-
currentScore,
|
|
28641
|
+
variant = "defeat",
|
|
28642
|
+
highScore = 2e3,
|
|
28643
|
+
currentScore = 1240,
|
|
28453
28644
|
className
|
|
28454
28645
|
}) {
|
|
28455
|
-
const resolvedActions = actions ?? menuItems ??
|
|
28646
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
28456
28647
|
let eventBusFromHook = null;
|
|
28457
28648
|
try {
|
|
28458
28649
|
eventBusFromHook = useEventBus();
|
|
@@ -28539,7 +28730,7 @@ function GameOverScreen({
|
|
|
28539
28730
|
}
|
|
28540
28731
|
);
|
|
28541
28732
|
}
|
|
28542
|
-
var variantColors, buttonVariants;
|
|
28733
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
28543
28734
|
var init_GameOverScreen = __esm({
|
|
28544
28735
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
28545
28736
|
"use client";
|
|
@@ -28568,21 +28759,35 @@ var init_GameOverScreen = __esm({
|
|
|
28568
28759
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28569
28760
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28570
28761
|
};
|
|
28762
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
28763
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
28764
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
28765
|
+
];
|
|
28766
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
28767
|
+
{ label: "Score", value: 1240 },
|
|
28768
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
28769
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
28770
|
+
];
|
|
28571
28771
|
GameOverScreen.displayName = "GameOverScreen";
|
|
28572
28772
|
}
|
|
28573
28773
|
});
|
|
28574
28774
|
function PlatformerCanvas({
|
|
28575
28775
|
player,
|
|
28576
|
-
platforms = [
|
|
28776
|
+
platforms = [
|
|
28777
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
28778
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
28779
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
28780
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
28781
|
+
],
|
|
28577
28782
|
worldWidth = 800,
|
|
28578
28783
|
worldHeight = 400,
|
|
28579
28784
|
canvasWidth = 800,
|
|
28580
28785
|
canvasHeight = 400,
|
|
28581
28786
|
followCamera = true,
|
|
28582
|
-
bgColor,
|
|
28787
|
+
bgColor = "#5c94fc",
|
|
28583
28788
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
28584
28789
|
tileSprites,
|
|
28585
|
-
backgroundImage = "
|
|
28790
|
+
backgroundImage = "",
|
|
28586
28791
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
28587
28792
|
leftEvent = "MOVE_LEFT",
|
|
28588
28793
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -28630,10 +28835,10 @@ function PlatformerCanvas({
|
|
|
28630
28835
|
};
|
|
28631
28836
|
}, []);
|
|
28632
28837
|
const resolvedPlayer = player ?? {
|
|
28633
|
-
x:
|
|
28634
|
-
y:
|
|
28635
|
-
width:
|
|
28636
|
-
height:
|
|
28838
|
+
x: 80,
|
|
28839
|
+
y: 336,
|
|
28840
|
+
width: 32,
|
|
28841
|
+
height: 48,
|
|
28637
28842
|
facingRight: true
|
|
28638
28843
|
};
|
|
28639
28844
|
const handleKeyDown = useCallback((e) => {
|
|
@@ -39343,8 +39548,8 @@ var init_DetailPanel = __esm({
|
|
|
39343
39548
|
}
|
|
39344
39549
|
});
|
|
39345
39550
|
function DialogueBubble({
|
|
39346
|
-
speaker,
|
|
39347
|
-
text,
|
|
39551
|
+
speaker = "Hero",
|
|
39552
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
39348
39553
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
39349
39554
|
position = "bottom",
|
|
39350
39555
|
className
|
|
@@ -39426,7 +39631,7 @@ var init_DrawerSlot = __esm({
|
|
|
39426
39631
|
}
|
|
39427
39632
|
});
|
|
39428
39633
|
function StateIndicator({
|
|
39429
|
-
state,
|
|
39634
|
+
state = "idle",
|
|
39430
39635
|
label,
|
|
39431
39636
|
size = "md",
|
|
39432
39637
|
animated = true,
|
|
@@ -42639,13 +42844,13 @@ var init_MediaGallery = __esm({
|
|
|
42639
42844
|
}
|
|
42640
42845
|
});
|
|
42641
42846
|
function MiniMap({
|
|
42642
|
-
tiles =
|
|
42643
|
-
units =
|
|
42847
|
+
tiles = DEFAULT_TILES,
|
|
42848
|
+
units = DEFAULT_UNITS,
|
|
42644
42849
|
width = 150,
|
|
42645
42850
|
height = 150,
|
|
42646
42851
|
mapWidth = 100,
|
|
42647
42852
|
mapHeight = 100,
|
|
42648
|
-
viewportRect,
|
|
42853
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
42649
42854
|
className
|
|
42650
42855
|
}) {
|
|
42651
42856
|
const canvasRef = React77.useRef(null);
|
|
@@ -42724,10 +42929,25 @@ function MiniMap({
|
|
|
42724
42929
|
}
|
|
42725
42930
|
);
|
|
42726
42931
|
}
|
|
42932
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
42727
42933
|
var init_MiniMap = __esm({
|
|
42728
42934
|
"components/game/atoms/MiniMap.tsx"() {
|
|
42729
42935
|
"use client";
|
|
42730
42936
|
init_cn();
|
|
42937
|
+
DEFAULT_TILES = [
|
|
42938
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
42939
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
42940
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
42941
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
42942
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
42943
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
42944
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
42945
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
42946
|
+
];
|
|
42947
|
+
DEFAULT_UNITS = [
|
|
42948
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
42949
|
+
];
|
|
42950
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
42731
42951
|
MiniMap.displayName = "MiniMap";
|
|
42732
42952
|
}
|
|
42733
42953
|
});
|
|
@@ -43079,8 +43299,8 @@ var init_PricingPageTemplate = __esm({
|
|
|
43079
43299
|
});
|
|
43080
43300
|
function ResourceCounter({
|
|
43081
43301
|
icon,
|
|
43082
|
-
label,
|
|
43083
|
-
value,
|
|
43302
|
+
label = "Gold",
|
|
43303
|
+
value = 250,
|
|
43084
43304
|
max,
|
|
43085
43305
|
color,
|
|
43086
43306
|
size = "md",
|
|
@@ -46093,11 +46313,11 @@ var init_SplitPane = __esm({
|
|
|
46093
46313
|
});
|
|
46094
46314
|
function Sprite({
|
|
46095
46315
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
46096
|
-
frameWidth,
|
|
46097
|
-
frameHeight,
|
|
46098
|
-
frame,
|
|
46099
|
-
x,
|
|
46100
|
-
y,
|
|
46316
|
+
frameWidth = 64,
|
|
46317
|
+
frameHeight = 64,
|
|
46318
|
+
frame = 0,
|
|
46319
|
+
x = 0,
|
|
46320
|
+
y = 0,
|
|
46101
46321
|
scale = 1,
|
|
46102
46322
|
flipX = false,
|
|
46103
46323
|
flipY = false,
|
|
@@ -46998,11 +47218,11 @@ function formatDuration(seconds) {
|
|
|
46998
47218
|
return `${Math.round(seconds)}s`;
|
|
46999
47219
|
}
|
|
47000
47220
|
function StatusEffect({
|
|
47001
|
-
icon,
|
|
47002
|
-
label,
|
|
47003
|
-
duration,
|
|
47221
|
+
icon = "shield",
|
|
47222
|
+
label = "Shield",
|
|
47223
|
+
duration = 30,
|
|
47004
47224
|
stacks,
|
|
47005
|
-
variant = "
|
|
47225
|
+
variant = "buff",
|
|
47006
47226
|
size = "md",
|
|
47007
47227
|
className
|
|
47008
47228
|
}) {
|
|
@@ -47455,8 +47675,8 @@ function formatTime3(seconds, format) {
|
|
|
47455
47675
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
47456
47676
|
}
|
|
47457
47677
|
function TimerDisplay({
|
|
47458
|
-
seconds,
|
|
47459
|
-
running,
|
|
47678
|
+
seconds = 90,
|
|
47679
|
+
running = true,
|
|
47460
47680
|
format = "mm:ss",
|
|
47461
47681
|
size = "md",
|
|
47462
47682
|
className,
|
|
@@ -48029,12 +48249,12 @@ function WorldMapTemplate({
|
|
|
48029
48249
|
entity,
|
|
48030
48250
|
scale = 0.4,
|
|
48031
48251
|
unitScale = 2.5,
|
|
48032
|
-
diamondTopY,
|
|
48252
|
+
diamondTopY = 374,
|
|
48033
48253
|
allowMoveAllHeroes = false,
|
|
48034
|
-
tiles,
|
|
48035
|
-
units,
|
|
48036
|
-
features,
|
|
48037
|
-
assetManifest,
|
|
48254
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
48255
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
48256
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
48257
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
48038
48258
|
className
|
|
48039
48259
|
}) {
|
|
48040
48260
|
return /* @__PURE__ */ jsx(
|
|
@@ -48057,17 +48277,71 @@ function WorldMapTemplate({
|
|
|
48057
48277
|
}
|
|
48058
48278
|
);
|
|
48059
48279
|
}
|
|
48280
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
48060
48281
|
var init_WorldMapTemplate = __esm({
|
|
48061
48282
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
48062
48283
|
init_WorldMapBoard();
|
|
48284
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
48285
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
48286
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48287
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48288
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
48289
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48290
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48291
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48292
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48293
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48294
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48295
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
48296
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
48297
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48298
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
48299
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48300
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48301
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48302
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48303
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48304
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
48305
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48306
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48307
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
48308
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
48309
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
48310
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
48311
|
+
];
|
|
48312
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
48313
|
+
{ 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` },
|
|
48314
|
+
{ 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` }
|
|
48315
|
+
];
|
|
48316
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
48317
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
48318
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
48319
|
+
];
|
|
48320
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
48321
|
+
baseUrl: CDN3,
|
|
48322
|
+
terrains: {
|
|
48323
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
48324
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
48325
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
48326
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
48327
|
+
},
|
|
48328
|
+
units: {
|
|
48329
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
48330
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
48331
|
+
},
|
|
48332
|
+
features: {
|
|
48333
|
+
capital: "/scenes/world/capital.png",
|
|
48334
|
+
power_node: "/world-map/power_node.png"
|
|
48335
|
+
}
|
|
48336
|
+
};
|
|
48063
48337
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
48064
48338
|
}
|
|
48065
48339
|
});
|
|
48066
48340
|
function XPBar({
|
|
48067
|
-
current,
|
|
48068
|
-
max,
|
|
48069
|
-
level,
|
|
48070
|
-
showLabel =
|
|
48341
|
+
current = 350,
|
|
48342
|
+
max = 1e3,
|
|
48343
|
+
level = 5,
|
|
48344
|
+
showLabel = true,
|
|
48071
48345
|
size = "md",
|
|
48072
48346
|
animated = true,
|
|
48073
48347
|
className
|