@almadar/ui 5.39.0 → 5.41.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 +405 -113
- package/dist/avl/index.js +405 -113
- package/dist/components/game/atoms/ItemSlot.d.ts +5 -2
- 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 +405 -113
- package/dist/components/index.js +405 -113
- package/dist/providers/index.cjs +405 -113
- package/dist/providers/index.js +405 -113
- package/dist/runtime/index.cjs +405 -113
- package/dist/runtime/index.js +405 -113
- package/package.json +1 -1
package/dist/providers/index.cjs
CHANGED
|
@@ -7089,8 +7089,8 @@ var init_TraitFrame = __esm({
|
|
|
7089
7089
|
}
|
|
7090
7090
|
});
|
|
7091
7091
|
function HealthBar({
|
|
7092
|
-
current,
|
|
7093
|
-
max,
|
|
7092
|
+
current = 3,
|
|
7093
|
+
max = 5,
|
|
7094
7094
|
format = "hearts",
|
|
7095
7095
|
size = "md",
|
|
7096
7096
|
className,
|
|
@@ -7339,11 +7339,11 @@ var init_ControlButton = __esm({
|
|
|
7339
7339
|
});
|
|
7340
7340
|
function Sprite({
|
|
7341
7341
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
7342
|
-
frameWidth,
|
|
7343
|
-
frameHeight,
|
|
7344
|
-
frame,
|
|
7345
|
-
x,
|
|
7346
|
-
y,
|
|
7342
|
+
frameWidth = 64,
|
|
7343
|
+
frameHeight = 64,
|
|
7344
|
+
frame = 0,
|
|
7345
|
+
x = 0,
|
|
7346
|
+
y = 0,
|
|
7347
7347
|
scale = 1,
|
|
7348
7348
|
flipX = false,
|
|
7349
7349
|
flipY = false,
|
|
@@ -7413,7 +7413,7 @@ var init_Sprite = __esm({
|
|
|
7413
7413
|
}
|
|
7414
7414
|
});
|
|
7415
7415
|
function StateIndicator({
|
|
7416
|
-
state,
|
|
7416
|
+
state = "idle",
|
|
7417
7417
|
label,
|
|
7418
7418
|
size = "md",
|
|
7419
7419
|
animated = true,
|
|
@@ -7484,8 +7484,8 @@ function formatTime(seconds, format) {
|
|
|
7484
7484
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
7485
7485
|
}
|
|
7486
7486
|
function TimerDisplay({
|
|
7487
|
-
seconds,
|
|
7488
|
-
running,
|
|
7487
|
+
seconds = 90,
|
|
7488
|
+
running = true,
|
|
7489
7489
|
format = "mm:ss",
|
|
7490
7490
|
size = "md",
|
|
7491
7491
|
className,
|
|
@@ -7522,8 +7522,8 @@ var init_TimerDisplay = __esm({
|
|
|
7522
7522
|
});
|
|
7523
7523
|
function ResourceCounter({
|
|
7524
7524
|
icon,
|
|
7525
|
-
label,
|
|
7526
|
-
value,
|
|
7525
|
+
label = "Gold",
|
|
7526
|
+
value = 250,
|
|
7527
7527
|
max,
|
|
7528
7528
|
color,
|
|
7529
7529
|
size = "md",
|
|
@@ -7575,10 +7575,11 @@ var init_ResourceCounter = __esm({
|
|
|
7575
7575
|
}
|
|
7576
7576
|
});
|
|
7577
7577
|
function ItemSlot({
|
|
7578
|
-
|
|
7579
|
-
|
|
7578
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
7579
|
+
icon = "sword",
|
|
7580
|
+
label = "Iron Sword",
|
|
7580
7581
|
quantity,
|
|
7581
|
-
rarity = "
|
|
7582
|
+
rarity = "uncommon",
|
|
7582
7583
|
empty,
|
|
7583
7584
|
size = "md",
|
|
7584
7585
|
selected,
|
|
@@ -7586,6 +7587,7 @@ function ItemSlot({
|
|
|
7586
7587
|
className
|
|
7587
7588
|
}) {
|
|
7588
7589
|
const isClickable = onClick != null;
|
|
7590
|
+
const px = assetSizeMap[size];
|
|
7589
7591
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7590
7592
|
"button",
|
|
7591
7593
|
{
|
|
@@ -7606,7 +7608,17 @@ function ItemSlot({
|
|
|
7606
7608
|
className
|
|
7607
7609
|
),
|
|
7608
7610
|
children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7609
|
-
|
|
7611
|
+
assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7612
|
+
"img",
|
|
7613
|
+
{
|
|
7614
|
+
src: assetUrl,
|
|
7615
|
+
alt: label,
|
|
7616
|
+
width: px,
|
|
7617
|
+
height: px,
|
|
7618
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
7619
|
+
className: "flex-shrink-0"
|
|
7620
|
+
}
|
|
7621
|
+
) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }) : null,
|
|
7610
7622
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7611
7623
|
"span",
|
|
7612
7624
|
{
|
|
@@ -7622,7 +7634,7 @@ function ItemSlot({
|
|
|
7622
7634
|
}
|
|
7623
7635
|
);
|
|
7624
7636
|
}
|
|
7625
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
7637
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
7626
7638
|
var init_ItemSlot = __esm({
|
|
7627
7639
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
7628
7640
|
"use client";
|
|
@@ -7647,11 +7659,17 @@ var init_ItemSlot = __esm({
|
|
|
7647
7659
|
epic: "shadow-lg",
|
|
7648
7660
|
legendary: "shadow-lg"
|
|
7649
7661
|
};
|
|
7662
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
7663
|
+
assetSizeMap = {
|
|
7664
|
+
sm: 28,
|
|
7665
|
+
md: 40,
|
|
7666
|
+
lg: 56
|
|
7667
|
+
};
|
|
7650
7668
|
ItemSlot.displayName = "ItemSlot";
|
|
7651
7669
|
}
|
|
7652
7670
|
});
|
|
7653
7671
|
function TurnIndicator({
|
|
7654
|
-
currentTurn,
|
|
7672
|
+
currentTurn = 1,
|
|
7655
7673
|
maxTurns,
|
|
7656
7674
|
activeTeam,
|
|
7657
7675
|
phase,
|
|
@@ -7714,7 +7732,7 @@ function getComboScale(combo) {
|
|
|
7714
7732
|
return "";
|
|
7715
7733
|
}
|
|
7716
7734
|
function ComboCounter({
|
|
7717
|
-
combo,
|
|
7735
|
+
combo = 5,
|
|
7718
7736
|
multiplier,
|
|
7719
7737
|
streak,
|
|
7720
7738
|
size = "md",
|
|
@@ -7760,10 +7778,10 @@ var init_ComboCounter = __esm({
|
|
|
7760
7778
|
}
|
|
7761
7779
|
});
|
|
7762
7780
|
function XPBar({
|
|
7763
|
-
current,
|
|
7764
|
-
max,
|
|
7765
|
-
level,
|
|
7766
|
-
showLabel =
|
|
7781
|
+
current = 350,
|
|
7782
|
+
max = 1e3,
|
|
7783
|
+
level = 5,
|
|
7784
|
+
showLabel = true,
|
|
7767
7785
|
size = "md",
|
|
7768
7786
|
animated = true,
|
|
7769
7787
|
className
|
|
@@ -7846,7 +7864,7 @@ var init_XPBar = __esm({
|
|
|
7846
7864
|
function WaypointMarker({
|
|
7847
7865
|
label,
|
|
7848
7866
|
icon,
|
|
7849
|
-
active =
|
|
7867
|
+
active = true,
|
|
7850
7868
|
completed = false,
|
|
7851
7869
|
size = "md",
|
|
7852
7870
|
className
|
|
@@ -7920,11 +7938,11 @@ function formatDuration(seconds) {
|
|
|
7920
7938
|
return `${Math.round(seconds)}s`;
|
|
7921
7939
|
}
|
|
7922
7940
|
function StatusEffect({
|
|
7923
|
-
icon,
|
|
7924
|
-
label,
|
|
7925
|
-
duration,
|
|
7941
|
+
icon = "shield",
|
|
7942
|
+
label = "Shield",
|
|
7943
|
+
duration = 30,
|
|
7926
7944
|
stacks,
|
|
7927
|
-
variant = "
|
|
7945
|
+
variant = "buff",
|
|
7928
7946
|
size = "md",
|
|
7929
7947
|
className
|
|
7930
7948
|
}) {
|
|
@@ -7986,7 +8004,7 @@ var init_StatusEffect = __esm({
|
|
|
7986
8004
|
}
|
|
7987
8005
|
});
|
|
7988
8006
|
function DamageNumber({
|
|
7989
|
-
value,
|
|
8007
|
+
value = 42,
|
|
7990
8008
|
type = "damage",
|
|
7991
8009
|
size = "md",
|
|
7992
8010
|
className
|
|
@@ -8035,8 +8053,8 @@ var init_DamageNumber = __esm({
|
|
|
8035
8053
|
}
|
|
8036
8054
|
});
|
|
8037
8055
|
function DialogueBubble({
|
|
8038
|
-
speaker,
|
|
8039
|
-
text,
|
|
8056
|
+
speaker = "Hero",
|
|
8057
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
8040
8058
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
8041
8059
|
position = "bottom",
|
|
8042
8060
|
className
|
|
@@ -8073,7 +8091,7 @@ var init_DialogueBubble = __esm({
|
|
|
8073
8091
|
}
|
|
8074
8092
|
});
|
|
8075
8093
|
function ChoiceButton({
|
|
8076
|
-
text,
|
|
8094
|
+
text = "Charge forward into the fray",
|
|
8077
8095
|
index,
|
|
8078
8096
|
disabled = false,
|
|
8079
8097
|
selected = false,
|
|
@@ -8119,7 +8137,7 @@ var init_ChoiceButton = __esm({
|
|
|
8119
8137
|
}
|
|
8120
8138
|
});
|
|
8121
8139
|
function ActionButton({
|
|
8122
|
-
label,
|
|
8140
|
+
label = "Attack",
|
|
8123
8141
|
icon,
|
|
8124
8142
|
cooldown = 0,
|
|
8125
8143
|
disabled = false,
|
|
@@ -8199,13 +8217,13 @@ var init_ActionButton = __esm({
|
|
|
8199
8217
|
}
|
|
8200
8218
|
});
|
|
8201
8219
|
function MiniMap({
|
|
8202
|
-
tiles =
|
|
8203
|
-
units =
|
|
8220
|
+
tiles = DEFAULT_TILES,
|
|
8221
|
+
units = DEFAULT_UNITS,
|
|
8204
8222
|
width = 150,
|
|
8205
8223
|
height = 150,
|
|
8206
8224
|
mapWidth = 100,
|
|
8207
8225
|
mapHeight = 100,
|
|
8208
|
-
viewportRect,
|
|
8226
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
8209
8227
|
className
|
|
8210
8228
|
}) {
|
|
8211
8229
|
const canvasRef = React83__namespace.useRef(null);
|
|
@@ -8284,10 +8302,25 @@ function MiniMap({
|
|
|
8284
8302
|
}
|
|
8285
8303
|
);
|
|
8286
8304
|
}
|
|
8305
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
8287
8306
|
var init_MiniMap = __esm({
|
|
8288
8307
|
"components/game/atoms/MiniMap.tsx"() {
|
|
8289
8308
|
"use client";
|
|
8290
8309
|
init_cn();
|
|
8310
|
+
DEFAULT_TILES = [
|
|
8311
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
8312
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
8313
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
8314
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
8315
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
8316
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
8317
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
8318
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
8319
|
+
];
|
|
8320
|
+
DEFAULT_UNITS = [
|
|
8321
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
8322
|
+
];
|
|
8323
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
8291
8324
|
MiniMap.displayName = "MiniMap";
|
|
8292
8325
|
}
|
|
8293
8326
|
});
|
|
@@ -9766,7 +9799,7 @@ var init_Accordion = __esm({
|
|
|
9766
9799
|
}
|
|
9767
9800
|
});
|
|
9768
9801
|
function ActionButtons({
|
|
9769
|
-
buttons,
|
|
9802
|
+
buttons = DEFAULT_BUTTONS,
|
|
9770
9803
|
onAction,
|
|
9771
9804
|
actionEvent,
|
|
9772
9805
|
layout = "horizontal",
|
|
@@ -9873,7 +9906,7 @@ function ActionButtons({
|
|
|
9873
9906
|
button.id
|
|
9874
9907
|
)) });
|
|
9875
9908
|
}
|
|
9876
|
-
var sizeMap14, layoutMap;
|
|
9909
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
9877
9910
|
var init_ActionButtons = __esm({
|
|
9878
9911
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
9879
9912
|
"use client";
|
|
@@ -9890,6 +9923,11 @@ var init_ActionButtons = __esm({
|
|
|
9890
9923
|
vertical: "flex flex-col gap-2",
|
|
9891
9924
|
diamond: "grid grid-cols-3 gap-1"
|
|
9892
9925
|
};
|
|
9926
|
+
DEFAULT_BUTTONS = [
|
|
9927
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
9928
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
9929
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
9930
|
+
];
|
|
9893
9931
|
ActionButtons.displayName = "ActionButtons";
|
|
9894
9932
|
}
|
|
9895
9933
|
});
|
|
@@ -11070,7 +11108,7 @@ function IsometricCanvas({
|
|
|
11070
11108
|
// Rendering options
|
|
11071
11109
|
scale = 0.4,
|
|
11072
11110
|
debug: debug2 = false,
|
|
11073
|
-
backgroundImage = "
|
|
11111
|
+
backgroundImage = "",
|
|
11074
11112
|
showMinimap = true,
|
|
11075
11113
|
enableCamera = true,
|
|
11076
11114
|
unitScale = 1,
|
|
@@ -12208,10 +12246,10 @@ function BattleTemplate({
|
|
|
12208
12246
|
entity,
|
|
12209
12247
|
scale = 0.45,
|
|
12210
12248
|
unitScale = 1,
|
|
12211
|
-
tiles,
|
|
12212
|
-
units,
|
|
12213
|
-
features,
|
|
12214
|
-
assetManifest,
|
|
12249
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
12250
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
12251
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
12252
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
12215
12253
|
className
|
|
12216
12254
|
}) {
|
|
12217
12255
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -12237,9 +12275,62 @@ function BattleTemplate({
|
|
|
12237
12275
|
}
|
|
12238
12276
|
);
|
|
12239
12277
|
}
|
|
12278
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
12240
12279
|
var init_BattleTemplate = __esm({
|
|
12241
12280
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
12242
12281
|
init_BattleBoard();
|
|
12282
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
12283
|
+
DEFAULT_BATTLE_TILES = [
|
|
12284
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12285
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12286
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12287
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12288
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12289
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12290
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12291
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12292
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12293
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12294
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12295
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12296
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12297
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12298
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12299
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12300
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12301
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12302
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12303
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12304
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12305
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12306
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12307
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12308
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
12309
|
+
];
|
|
12310
|
+
DEFAULT_BATTLE_UNITS = [
|
|
12311
|
+
{ 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` },
|
|
12312
|
+
{ 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` }
|
|
12313
|
+
];
|
|
12314
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
12315
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
12316
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
12317
|
+
];
|
|
12318
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
12319
|
+
baseUrl: CDN,
|
|
12320
|
+
terrains: {
|
|
12321
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
12322
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
12323
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
12324
|
+
},
|
|
12325
|
+
units: {
|
|
12326
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
12327
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
12328
|
+
},
|
|
12329
|
+
features: {
|
|
12330
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
12331
|
+
portal: "/world-map/portal_open.png"
|
|
12332
|
+
}
|
|
12333
|
+
};
|
|
12243
12334
|
BattleTemplate.displayName = "BattleTemplate";
|
|
12244
12335
|
}
|
|
12245
12336
|
});
|
|
@@ -20239,10 +20330,10 @@ var init_CastleBoard = __esm({
|
|
|
20239
20330
|
function CastleTemplate({
|
|
20240
20331
|
entity,
|
|
20241
20332
|
scale = 0.45,
|
|
20242
|
-
tiles,
|
|
20243
|
-
units,
|
|
20244
|
-
features,
|
|
20245
|
-
assetManifest,
|
|
20333
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
20334
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
20335
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
20336
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
20246
20337
|
className
|
|
20247
20338
|
}) {
|
|
20248
20339
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -20263,9 +20354,61 @@ function CastleTemplate({
|
|
|
20263
20354
|
}
|
|
20264
20355
|
);
|
|
20265
20356
|
}
|
|
20357
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
20266
20358
|
var init_CastleTemplate = __esm({
|
|
20267
20359
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
20268
20360
|
init_CastleBoard();
|
|
20361
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
20362
|
+
DEFAULT_CASTLE_TILES = [
|
|
20363
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20364
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20365
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20366
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20367
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20368
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20369
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20370
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20371
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20372
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20373
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20374
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20375
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
20376
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20377
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20378
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20379
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20380
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20381
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20382
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20383
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20384
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20385
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20386
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20387
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
20388
|
+
];
|
|
20389
|
+
DEFAULT_CASTLE_UNITS = [
|
|
20390
|
+
{ 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` },
|
|
20391
|
+
{ 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` }
|
|
20392
|
+
];
|
|
20393
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
20394
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
20395
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
20396
|
+
];
|
|
20397
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
20398
|
+
baseUrl: CDN2,
|
|
20399
|
+
terrains: {
|
|
20400
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
20401
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
20402
|
+
},
|
|
20403
|
+
units: {
|
|
20404
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
20405
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
20406
|
+
},
|
|
20407
|
+
features: {
|
|
20408
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
20409
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
20410
|
+
}
|
|
20411
|
+
};
|
|
20269
20412
|
CastleTemplate.displayName = "CastleTemplate";
|
|
20270
20413
|
}
|
|
20271
20414
|
});
|
|
@@ -21387,7 +21530,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
21387
21530
|
}
|
|
21388
21531
|
});
|
|
21389
21532
|
function CombatLog({
|
|
21390
|
-
events: events2,
|
|
21533
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
21391
21534
|
maxVisible = 50,
|
|
21392
21535
|
autoScroll = true,
|
|
21393
21536
|
showTimestamps = false,
|
|
@@ -21438,7 +21581,7 @@ function CombatLog({
|
|
|
21438
21581
|
}) }) })
|
|
21439
21582
|
] });
|
|
21440
21583
|
}
|
|
21441
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
21584
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
21442
21585
|
var init_CombatLog = __esm({
|
|
21443
21586
|
"components/game/molecules/CombatLog.tsx"() {
|
|
21444
21587
|
init_atoms2();
|
|
@@ -21470,6 +21613,13 @@ var init_CombatLog = __esm({
|
|
|
21470
21613
|
death: "secondary",
|
|
21471
21614
|
spawn: "secondary"
|
|
21472
21615
|
};
|
|
21616
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
21617
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
21618
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
21619
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
21620
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
21621
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
21622
|
+
];
|
|
21473
21623
|
CombatLog.displayName = "CombatLog";
|
|
21474
21624
|
}
|
|
21475
21625
|
});
|
|
@@ -21877,9 +22027,9 @@ function isValidRarity(value) {
|
|
|
21877
22027
|
return rarityValues.includes(value);
|
|
21878
22028
|
}
|
|
21879
22029
|
function CraftingRecipe({
|
|
21880
|
-
inputs,
|
|
21881
|
-
output,
|
|
21882
|
-
canCraft =
|
|
22030
|
+
inputs = DEFAULT_INPUTS,
|
|
22031
|
+
output = DEFAULT_OUTPUT,
|
|
22032
|
+
canCraft = true,
|
|
21883
22033
|
onCraft,
|
|
21884
22034
|
craftEvent,
|
|
21885
22035
|
className
|
|
@@ -21940,7 +22090,7 @@ function CraftingRecipe({
|
|
|
21940
22090
|
}
|
|
21941
22091
|
);
|
|
21942
22092
|
}
|
|
21943
|
-
var rarityValues;
|
|
22093
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
21944
22094
|
var init_CraftingRecipe = __esm({
|
|
21945
22095
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
21946
22096
|
"use client";
|
|
@@ -21952,6 +22102,15 @@ var init_CraftingRecipe = __esm({
|
|
|
21952
22102
|
init_Stack();
|
|
21953
22103
|
init_Icon();
|
|
21954
22104
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
22105
|
+
DEFAULT_INPUTS = [
|
|
22106
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
22107
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
22108
|
+
];
|
|
22109
|
+
DEFAULT_OUTPUT = {
|
|
22110
|
+
icon: "sword",
|
|
22111
|
+
label: "Iron Sword",
|
|
22112
|
+
rarity: "uncommon"
|
|
22113
|
+
};
|
|
21955
22114
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
21956
22115
|
}
|
|
21957
22116
|
});
|
|
@@ -26948,10 +27107,10 @@ var init_StatBadge = __esm({
|
|
|
26948
27107
|
}
|
|
26949
27108
|
});
|
|
26950
27109
|
function InventoryGrid({
|
|
26951
|
-
items,
|
|
27110
|
+
items = DEFAULT_GRID_ITEMS,
|
|
26952
27111
|
columns = 4,
|
|
26953
|
-
totalSlots,
|
|
26954
|
-
selectedId,
|
|
27112
|
+
totalSlots = 12,
|
|
27113
|
+
selectedId = "",
|
|
26955
27114
|
onSelect,
|
|
26956
27115
|
selectEvent,
|
|
26957
27116
|
size = "md",
|
|
@@ -27000,7 +27159,7 @@ function InventoryGrid({
|
|
|
27000
27159
|
}
|
|
27001
27160
|
);
|
|
27002
27161
|
}
|
|
27003
|
-
var columnMap;
|
|
27162
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
27004
27163
|
var init_InventoryGrid = __esm({
|
|
27005
27164
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
27006
27165
|
"use client";
|
|
@@ -27017,12 +27176,18 @@ var init_InventoryGrid = __esm({
|
|
|
27017
27176
|
7: "grid-cols-7",
|
|
27018
27177
|
8: "grid-cols-8"
|
|
27019
27178
|
};
|
|
27179
|
+
DEFAULT_GRID_ITEMS = [
|
|
27180
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
27181
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
27182
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
27183
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
27184
|
+
];
|
|
27020
27185
|
InventoryGrid.displayName = "InventoryGrid";
|
|
27021
27186
|
}
|
|
27022
27187
|
});
|
|
27023
27188
|
function QuestTracker({
|
|
27024
|
-
quests,
|
|
27025
|
-
activeQuestId,
|
|
27189
|
+
quests = DEFAULT_QUESTS,
|
|
27190
|
+
activeQuestId = "q2",
|
|
27026
27191
|
className
|
|
27027
27192
|
}) {
|
|
27028
27193
|
return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -27088,6 +27253,7 @@ function QuestTracker({
|
|
|
27088
27253
|
);
|
|
27089
27254
|
}) });
|
|
27090
27255
|
}
|
|
27256
|
+
var DEFAULT_QUESTS;
|
|
27091
27257
|
var init_QuestTracker = __esm({
|
|
27092
27258
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
27093
27259
|
"use client";
|
|
@@ -27097,6 +27263,11 @@ var init_QuestTracker = __esm({
|
|
|
27097
27263
|
init_Typography();
|
|
27098
27264
|
init_Box();
|
|
27099
27265
|
init_Stack();
|
|
27266
|
+
DEFAULT_QUESTS = [
|
|
27267
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
27268
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
27269
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
27270
|
+
];
|
|
27100
27271
|
QuestTracker.displayName = "QuestTracker";
|
|
27101
27272
|
}
|
|
27102
27273
|
});
|
|
@@ -27109,7 +27280,7 @@ function formatTime2(seconds) {
|
|
|
27109
27280
|
return `${seconds}s`;
|
|
27110
27281
|
}
|
|
27111
27282
|
function PowerupSlots({
|
|
27112
|
-
active,
|
|
27283
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
27113
27284
|
maxSlots = 4,
|
|
27114
27285
|
className
|
|
27115
27286
|
}) {
|
|
@@ -27154,6 +27325,7 @@ function PowerupSlots({
|
|
|
27154
27325
|
))
|
|
27155
27326
|
] });
|
|
27156
27327
|
}
|
|
27328
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
27157
27329
|
var init_PowerupSlots = __esm({
|
|
27158
27330
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
27159
27331
|
"use client";
|
|
@@ -27162,6 +27334,10 @@ var init_PowerupSlots = __esm({
|
|
|
27162
27334
|
init_Box();
|
|
27163
27335
|
init_Stack();
|
|
27164
27336
|
init_Typography();
|
|
27337
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
27338
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
27339
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
27340
|
+
];
|
|
27165
27341
|
PowerupSlots.displayName = "PowerupSlots";
|
|
27166
27342
|
}
|
|
27167
27343
|
});
|
|
@@ -27173,7 +27349,7 @@ function GameCanvas2D({
|
|
|
27173
27349
|
tickEvent,
|
|
27174
27350
|
drawEvent,
|
|
27175
27351
|
fps = 60,
|
|
27176
|
-
backgroundImage = "
|
|
27352
|
+
backgroundImage = "",
|
|
27177
27353
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
27178
27354
|
className
|
|
27179
27355
|
}) {
|
|
@@ -27277,10 +27453,10 @@ var init_GameCanvas2D = __esm({
|
|
|
27277
27453
|
}
|
|
27278
27454
|
});
|
|
27279
27455
|
function HealthPanel({
|
|
27280
|
-
current,
|
|
27281
|
-
max,
|
|
27282
|
-
shield,
|
|
27283
|
-
label,
|
|
27456
|
+
current = 75,
|
|
27457
|
+
max = 100,
|
|
27458
|
+
shield = 20,
|
|
27459
|
+
label = "Player HP",
|
|
27284
27460
|
effects,
|
|
27285
27461
|
showNumbers = true,
|
|
27286
27462
|
size = "md",
|
|
@@ -27398,11 +27574,11 @@ var init_HealthPanel = __esm({
|
|
|
27398
27574
|
}
|
|
27399
27575
|
});
|
|
27400
27576
|
function ScoreBoard({
|
|
27401
|
-
score: rawScore,
|
|
27402
|
-
highScore: rawHighScore,
|
|
27403
|
-
combo: rawCombo,
|
|
27404
|
-
multiplier: rawMultiplier,
|
|
27405
|
-
level: rawLevel,
|
|
27577
|
+
score: rawScore = 4200,
|
|
27578
|
+
highScore: rawHighScore = 8750,
|
|
27579
|
+
combo: rawCombo = 3,
|
|
27580
|
+
multiplier: rawMultiplier = 2,
|
|
27581
|
+
level: rawLevel = 4,
|
|
27406
27582
|
className
|
|
27407
27583
|
}) {
|
|
27408
27584
|
const score = rawScore ?? 0;
|
|
@@ -27475,7 +27651,7 @@ var init_ScoreBoard = __esm({
|
|
|
27475
27651
|
}
|
|
27476
27652
|
});
|
|
27477
27653
|
function ResourceBar({
|
|
27478
|
-
resources,
|
|
27654
|
+
resources = DEFAULT_RESOURCES,
|
|
27479
27655
|
size = "md",
|
|
27480
27656
|
className
|
|
27481
27657
|
}) {
|
|
@@ -27501,21 +27677,27 @@ function ResourceBar({
|
|
|
27501
27677
|
}
|
|
27502
27678
|
);
|
|
27503
27679
|
}
|
|
27680
|
+
var DEFAULT_RESOURCES;
|
|
27504
27681
|
var init_ResourceBar = __esm({
|
|
27505
27682
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
27506
27683
|
"use client";
|
|
27507
27684
|
init_cn();
|
|
27508
27685
|
init_StatBadge();
|
|
27509
27686
|
init_Box();
|
|
27687
|
+
DEFAULT_RESOURCES = [
|
|
27688
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
27689
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
27690
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
27691
|
+
];
|
|
27510
27692
|
ResourceBar.displayName = "ResourceBar";
|
|
27511
27693
|
}
|
|
27512
27694
|
});
|
|
27513
27695
|
function TurnPanel({
|
|
27514
|
-
currentTurn,
|
|
27515
|
-
maxTurns,
|
|
27516
|
-
phase,
|
|
27517
|
-
activeTeam,
|
|
27518
|
-
actions,
|
|
27696
|
+
currentTurn = 3,
|
|
27697
|
+
maxTurns = 10,
|
|
27698
|
+
phase = "Attack",
|
|
27699
|
+
activeTeam = "Heroes",
|
|
27700
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
27519
27701
|
className
|
|
27520
27702
|
}) {
|
|
27521
27703
|
const eventBus = useEventBus();
|
|
@@ -27560,6 +27742,7 @@ function TurnPanel({
|
|
|
27560
27742
|
}
|
|
27561
27743
|
);
|
|
27562
27744
|
}
|
|
27745
|
+
var DEFAULT_TURN_ACTIONS;
|
|
27563
27746
|
var init_TurnPanel = __esm({
|
|
27564
27747
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
27565
27748
|
"use client";
|
|
@@ -27568,15 +27751,19 @@ var init_TurnPanel = __esm({
|
|
|
27568
27751
|
init_Button();
|
|
27569
27752
|
init_Box();
|
|
27570
27753
|
init_useEventBus();
|
|
27754
|
+
DEFAULT_TURN_ACTIONS = [
|
|
27755
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
27756
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
27757
|
+
];
|
|
27571
27758
|
TurnPanel.displayName = "TurnPanel";
|
|
27572
27759
|
}
|
|
27573
27760
|
});
|
|
27574
27761
|
function EnemyPlate({
|
|
27575
|
-
name,
|
|
27576
|
-
health,
|
|
27577
|
-
maxHealth,
|
|
27578
|
-
level,
|
|
27579
|
-
effects,
|
|
27762
|
+
name = "Shadow Guard",
|
|
27763
|
+
health = 80,
|
|
27764
|
+
maxHealth = 100,
|
|
27765
|
+
level = 5,
|
|
27766
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
27580
27767
|
className
|
|
27581
27768
|
}) {
|
|
27582
27769
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -27642,7 +27829,7 @@ function EnemyPlate({
|
|
|
27642
27829
|
}
|
|
27643
27830
|
);
|
|
27644
27831
|
}
|
|
27645
|
-
var effectVariantMap2;
|
|
27832
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
27646
27833
|
var init_EnemyPlate = __esm({
|
|
27647
27834
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
27648
27835
|
"use client";
|
|
@@ -27656,12 +27843,15 @@ var init_EnemyPlate = __esm({
|
|
|
27656
27843
|
debuff: "danger",
|
|
27657
27844
|
neutral: "neutral"
|
|
27658
27845
|
};
|
|
27846
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
27847
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
27848
|
+
];
|
|
27659
27849
|
EnemyPlate.displayName = "EnemyPlate";
|
|
27660
27850
|
}
|
|
27661
27851
|
});
|
|
27662
27852
|
function UnitCommandBar({
|
|
27663
|
-
commands,
|
|
27664
|
-
selectedUnitId,
|
|
27853
|
+
commands = DEFAULT_COMMANDS,
|
|
27854
|
+
selectedUnitId = "unit-1",
|
|
27665
27855
|
className
|
|
27666
27856
|
}) {
|
|
27667
27857
|
const eventBus = useEventBus();
|
|
@@ -27704,6 +27894,7 @@ function UnitCommandBar({
|
|
|
27704
27894
|
}
|
|
27705
27895
|
);
|
|
27706
27896
|
}
|
|
27897
|
+
var DEFAULT_COMMANDS;
|
|
27707
27898
|
var init_UnitCommandBar = __esm({
|
|
27708
27899
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
27709
27900
|
"use client";
|
|
@@ -27712,6 +27903,12 @@ var init_UnitCommandBar = __esm({
|
|
|
27712
27903
|
init_Box();
|
|
27713
27904
|
init_Typography();
|
|
27714
27905
|
init_useEventBus();
|
|
27906
|
+
DEFAULT_COMMANDS = [
|
|
27907
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
27908
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
27909
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
27910
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
27911
|
+
];
|
|
27715
27912
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
27716
27913
|
}
|
|
27717
27914
|
});
|
|
@@ -27745,7 +27942,7 @@ function GameHud({
|
|
|
27745
27942
|
className,
|
|
27746
27943
|
transparent = true
|
|
27747
27944
|
}) {
|
|
27748
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
27945
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
27749
27946
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
27750
27947
|
const position = propPosition ?? "corners";
|
|
27751
27948
|
if (position === "corners") {
|
|
@@ -27770,7 +27967,7 @@ function GameHud({
|
|
|
27770
27967
|
}
|
|
27771
27968
|
);
|
|
27772
27969
|
}
|
|
27773
|
-
var positionMap;
|
|
27970
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
27774
27971
|
var init_GameHud = __esm({
|
|
27775
27972
|
"components/game/molecules/GameHud.tsx"() {
|
|
27776
27973
|
init_cn();
|
|
@@ -27780,11 +27977,17 @@ var init_GameHud = __esm({
|
|
|
27780
27977
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
27781
27978
|
corners: "inset-0 pointer-events-none"
|
|
27782
27979
|
};
|
|
27980
|
+
DEFAULT_HUD_STATS = [
|
|
27981
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
27982
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
27983
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
27984
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
27985
|
+
];
|
|
27783
27986
|
GameHud.displayName = "GameHud";
|
|
27784
27987
|
}
|
|
27785
27988
|
});
|
|
27786
27989
|
function DialogueBox({
|
|
27787
|
-
dialogue,
|
|
27990
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
27788
27991
|
typewriterSpeed = 30,
|
|
27789
27992
|
position = "bottom",
|
|
27790
27993
|
onComplete,
|
|
@@ -27967,17 +28170,27 @@ function DialogueBox({
|
|
|
27967
28170
|
}
|
|
27968
28171
|
);
|
|
27969
28172
|
}
|
|
28173
|
+
var DEFAULT_DIALOGUE;
|
|
27970
28174
|
var init_DialogueBox = __esm({
|
|
27971
28175
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
27972
28176
|
"use client";
|
|
27973
28177
|
init_cn();
|
|
27974
28178
|
init_useEventBus();
|
|
28179
|
+
DEFAULT_DIALOGUE = {
|
|
28180
|
+
speaker: "Village Elder",
|
|
28181
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
28182
|
+
choices: [
|
|
28183
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
28184
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
28185
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
28186
|
+
]
|
|
28187
|
+
};
|
|
27975
28188
|
}
|
|
27976
28189
|
});
|
|
27977
28190
|
function InventoryPanel({
|
|
27978
|
-
items,
|
|
27979
|
-
slots,
|
|
27980
|
-
columns,
|
|
28191
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
28192
|
+
slots = 12,
|
|
28193
|
+
columns = 4,
|
|
27981
28194
|
selectedSlot,
|
|
27982
28195
|
onSelectSlot,
|
|
27983
28196
|
onUseItem,
|
|
@@ -28125,25 +28338,31 @@ function InventoryPanel({
|
|
|
28125
28338
|
)
|
|
28126
28339
|
] });
|
|
28127
28340
|
}
|
|
28341
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
28128
28342
|
var init_InventoryPanel = __esm({
|
|
28129
28343
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
28130
28344
|
"use client";
|
|
28131
28345
|
init_cn();
|
|
28132
28346
|
init_useEventBus();
|
|
28347
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
28348
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
28349
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
28350
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
28351
|
+
];
|
|
28133
28352
|
}
|
|
28134
28353
|
});
|
|
28135
28354
|
function GameMenu({
|
|
28136
|
-
title,
|
|
28355
|
+
title = "Epic Quest",
|
|
28137
28356
|
subtitle,
|
|
28138
28357
|
options,
|
|
28139
28358
|
menuItems,
|
|
28140
28359
|
onSelect,
|
|
28141
28360
|
eventBus: eventBusProp,
|
|
28142
28361
|
background,
|
|
28143
|
-
logo,
|
|
28362
|
+
logo = "",
|
|
28144
28363
|
className
|
|
28145
28364
|
}) {
|
|
28146
|
-
const resolvedOptions = options ?? menuItems ??
|
|
28365
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
28147
28366
|
let eventBusFromHook = null;
|
|
28148
28367
|
try {
|
|
28149
28368
|
eventBusFromHook = useEventBus();
|
|
@@ -28224,7 +28443,7 @@ function GameMenu({
|
|
|
28224
28443
|
}
|
|
28225
28444
|
);
|
|
28226
28445
|
}
|
|
28227
|
-
var variantMap3;
|
|
28446
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
28228
28447
|
var init_GameMenu = __esm({
|
|
28229
28448
|
"components/game/molecules/GameMenu.tsx"() {
|
|
28230
28449
|
"use client";
|
|
@@ -28235,6 +28454,11 @@ var init_GameMenu = __esm({
|
|
|
28235
28454
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28236
28455
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28237
28456
|
};
|
|
28457
|
+
DEFAULT_MENU_OPTIONS = [
|
|
28458
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
28459
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
28460
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
28461
|
+
];
|
|
28238
28462
|
GameMenu.displayName = "GameMenu";
|
|
28239
28463
|
}
|
|
28240
28464
|
});
|
|
@@ -28245,19 +28469,19 @@ function formatTime3(ms) {
|
|
|
28245
28469
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
28246
28470
|
}
|
|
28247
28471
|
function GameOverScreen({
|
|
28248
|
-
title,
|
|
28472
|
+
title = "Game Over",
|
|
28249
28473
|
message,
|
|
28250
|
-
stats =
|
|
28474
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
28251
28475
|
actions,
|
|
28252
28476
|
menuItems,
|
|
28253
28477
|
onAction,
|
|
28254
28478
|
eventBus: eventBusProp,
|
|
28255
|
-
variant = "
|
|
28256
|
-
highScore,
|
|
28257
|
-
currentScore,
|
|
28479
|
+
variant = "defeat",
|
|
28480
|
+
highScore = 2e3,
|
|
28481
|
+
currentScore = 1240,
|
|
28258
28482
|
className
|
|
28259
28483
|
}) {
|
|
28260
|
-
const resolvedActions = actions ?? menuItems ??
|
|
28484
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
28261
28485
|
let eventBusFromHook = null;
|
|
28262
28486
|
try {
|
|
28263
28487
|
eventBusFromHook = useEventBus();
|
|
@@ -28344,7 +28568,7 @@ function GameOverScreen({
|
|
|
28344
28568
|
}
|
|
28345
28569
|
);
|
|
28346
28570
|
}
|
|
28347
|
-
var variantColors, buttonVariants;
|
|
28571
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
28348
28572
|
var init_GameOverScreen = __esm({
|
|
28349
28573
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
28350
28574
|
"use client";
|
|
@@ -28373,21 +28597,35 @@ var init_GameOverScreen = __esm({
|
|
|
28373
28597
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28374
28598
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28375
28599
|
};
|
|
28600
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
28601
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
28602
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
28603
|
+
];
|
|
28604
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
28605
|
+
{ label: "Score", value: 1240 },
|
|
28606
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
28607
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
28608
|
+
];
|
|
28376
28609
|
GameOverScreen.displayName = "GameOverScreen";
|
|
28377
28610
|
}
|
|
28378
28611
|
});
|
|
28379
28612
|
function PlatformerCanvas({
|
|
28380
28613
|
player,
|
|
28381
|
-
platforms = [
|
|
28614
|
+
platforms = [
|
|
28615
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
28616
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
28617
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
28618
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
28619
|
+
],
|
|
28382
28620
|
worldWidth = 800,
|
|
28383
28621
|
worldHeight = 400,
|
|
28384
28622
|
canvasWidth = 800,
|
|
28385
28623
|
canvasHeight = 400,
|
|
28386
28624
|
followCamera = true,
|
|
28387
|
-
bgColor,
|
|
28625
|
+
bgColor = "#5c94fc",
|
|
28388
28626
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
28389
28627
|
tileSprites,
|
|
28390
|
-
backgroundImage = "
|
|
28628
|
+
backgroundImage = "",
|
|
28391
28629
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
28392
28630
|
leftEvent = "MOVE_LEFT",
|
|
28393
28631
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -28435,10 +28673,10 @@ function PlatformerCanvas({
|
|
|
28435
28673
|
};
|
|
28436
28674
|
}, []);
|
|
28437
28675
|
const resolvedPlayer = player ?? {
|
|
28438
|
-
x:
|
|
28439
|
-
y:
|
|
28440
|
-
width:
|
|
28441
|
-
height:
|
|
28676
|
+
x: 80,
|
|
28677
|
+
y: 336,
|
|
28678
|
+
width: 32,
|
|
28679
|
+
height: 48,
|
|
28442
28680
|
facingRight: true
|
|
28443
28681
|
};
|
|
28444
28682
|
const handleKeyDown = React83.useCallback((e) => {
|
|
@@ -47117,12 +47355,12 @@ function WorldMapTemplate({
|
|
|
47117
47355
|
entity,
|
|
47118
47356
|
scale = 0.4,
|
|
47119
47357
|
unitScale = 2.5,
|
|
47120
|
-
diamondTopY,
|
|
47358
|
+
diamondTopY = 374,
|
|
47121
47359
|
allowMoveAllHeroes = false,
|
|
47122
|
-
tiles,
|
|
47123
|
-
units,
|
|
47124
|
-
features,
|
|
47125
|
-
assetManifest,
|
|
47360
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
47361
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
47362
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
47363
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
47126
47364
|
className
|
|
47127
47365
|
}) {
|
|
47128
47366
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -47145,9 +47383,63 @@ function WorldMapTemplate({
|
|
|
47145
47383
|
}
|
|
47146
47384
|
);
|
|
47147
47385
|
}
|
|
47386
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
47148
47387
|
var init_WorldMapTemplate = __esm({
|
|
47149
47388
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
47150
47389
|
init_WorldMapBoard();
|
|
47390
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
47391
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
47392
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47393
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47394
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47395
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47396
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47397
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47398
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47399
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47400
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47401
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47402
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47403
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47404
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
47405
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47406
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47407
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47408
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47409
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47410
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
47411
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47412
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47413
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47414
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47415
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47416
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
47417
|
+
];
|
|
47418
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
47419
|
+
{ 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` },
|
|
47420
|
+
{ 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` }
|
|
47421
|
+
];
|
|
47422
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
47423
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
47424
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
47425
|
+
];
|
|
47426
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
47427
|
+
baseUrl: CDN3,
|
|
47428
|
+
terrains: {
|
|
47429
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
47430
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
47431
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
47432
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
47433
|
+
},
|
|
47434
|
+
units: {
|
|
47435
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
47436
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
47437
|
+
},
|
|
47438
|
+
features: {
|
|
47439
|
+
capital: "/scenes/world/capital.png",
|
|
47440
|
+
power_node: "/world-map/power_node.png"
|
|
47441
|
+
}
|
|
47442
|
+
};
|
|
47151
47443
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
47152
47444
|
}
|
|
47153
47445
|
});
|