@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/runtime/index.js
CHANGED
|
@@ -6954,8 +6954,8 @@ var init_TraitFrame = __esm({
|
|
|
6954
6954
|
}
|
|
6955
6955
|
});
|
|
6956
6956
|
function HealthBar({
|
|
6957
|
-
current,
|
|
6958
|
-
max,
|
|
6957
|
+
current = 3,
|
|
6958
|
+
max = 5,
|
|
6959
6959
|
format = "hearts",
|
|
6960
6960
|
size = "md",
|
|
6961
6961
|
className,
|
|
@@ -7204,11 +7204,11 @@ var init_ControlButton = __esm({
|
|
|
7204
7204
|
});
|
|
7205
7205
|
function Sprite({
|
|
7206
7206
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
7207
|
-
frameWidth,
|
|
7208
|
-
frameHeight,
|
|
7209
|
-
frame,
|
|
7210
|
-
x,
|
|
7211
|
-
y,
|
|
7207
|
+
frameWidth = 64,
|
|
7208
|
+
frameHeight = 64,
|
|
7209
|
+
frame = 0,
|
|
7210
|
+
x = 0,
|
|
7211
|
+
y = 0,
|
|
7212
7212
|
scale = 1,
|
|
7213
7213
|
flipX = false,
|
|
7214
7214
|
flipY = false,
|
|
@@ -7278,7 +7278,7 @@ var init_Sprite = __esm({
|
|
|
7278
7278
|
}
|
|
7279
7279
|
});
|
|
7280
7280
|
function StateIndicator({
|
|
7281
|
-
state,
|
|
7281
|
+
state = "idle",
|
|
7282
7282
|
label,
|
|
7283
7283
|
size = "md",
|
|
7284
7284
|
animated = true,
|
|
@@ -7349,8 +7349,8 @@ function formatTime(seconds, format) {
|
|
|
7349
7349
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
7350
7350
|
}
|
|
7351
7351
|
function TimerDisplay({
|
|
7352
|
-
seconds,
|
|
7353
|
-
running,
|
|
7352
|
+
seconds = 90,
|
|
7353
|
+
running = true,
|
|
7354
7354
|
format = "mm:ss",
|
|
7355
7355
|
size = "md",
|
|
7356
7356
|
className,
|
|
@@ -7387,8 +7387,8 @@ var init_TimerDisplay = __esm({
|
|
|
7387
7387
|
});
|
|
7388
7388
|
function ResourceCounter({
|
|
7389
7389
|
icon,
|
|
7390
|
-
label,
|
|
7391
|
-
value,
|
|
7390
|
+
label = "Gold",
|
|
7391
|
+
value = 250,
|
|
7392
7392
|
max,
|
|
7393
7393
|
color,
|
|
7394
7394
|
size = "md",
|
|
@@ -7440,10 +7440,11 @@ var init_ResourceCounter = __esm({
|
|
|
7440
7440
|
}
|
|
7441
7441
|
});
|
|
7442
7442
|
function ItemSlot({
|
|
7443
|
-
|
|
7444
|
-
|
|
7443
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
7444
|
+
icon = "sword",
|
|
7445
|
+
label = "Iron Sword",
|
|
7445
7446
|
quantity,
|
|
7446
|
-
rarity = "
|
|
7447
|
+
rarity = "uncommon",
|
|
7447
7448
|
empty,
|
|
7448
7449
|
size = "md",
|
|
7449
7450
|
selected,
|
|
@@ -7451,6 +7452,7 @@ function ItemSlot({
|
|
|
7451
7452
|
className
|
|
7452
7453
|
}) {
|
|
7453
7454
|
const isClickable = onClick != null;
|
|
7455
|
+
const px = assetSizeMap[size];
|
|
7454
7456
|
return /* @__PURE__ */ jsx(
|
|
7455
7457
|
"button",
|
|
7456
7458
|
{
|
|
@@ -7471,7 +7473,17 @@ function ItemSlot({
|
|
|
7471
7473
|
className
|
|
7472
7474
|
),
|
|
7473
7475
|
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7474
|
-
|
|
7476
|
+
assetUrl ? /* @__PURE__ */ jsx(
|
|
7477
|
+
"img",
|
|
7478
|
+
{
|
|
7479
|
+
src: assetUrl,
|
|
7480
|
+
alt: label,
|
|
7481
|
+
width: px,
|
|
7482
|
+
height: px,
|
|
7483
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
7484
|
+
className: "flex-shrink-0"
|
|
7485
|
+
}
|
|
7486
|
+
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
7475
7487
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
7476
7488
|
"span",
|
|
7477
7489
|
{
|
|
@@ -7487,7 +7499,7 @@ function ItemSlot({
|
|
|
7487
7499
|
}
|
|
7488
7500
|
);
|
|
7489
7501
|
}
|
|
7490
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
7502
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
7491
7503
|
var init_ItemSlot = __esm({
|
|
7492
7504
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
7493
7505
|
"use client";
|
|
@@ -7512,11 +7524,17 @@ var init_ItemSlot = __esm({
|
|
|
7512
7524
|
epic: "shadow-lg",
|
|
7513
7525
|
legendary: "shadow-lg"
|
|
7514
7526
|
};
|
|
7527
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
7528
|
+
assetSizeMap = {
|
|
7529
|
+
sm: 28,
|
|
7530
|
+
md: 40,
|
|
7531
|
+
lg: 56
|
|
7532
|
+
};
|
|
7515
7533
|
ItemSlot.displayName = "ItemSlot";
|
|
7516
7534
|
}
|
|
7517
7535
|
});
|
|
7518
7536
|
function TurnIndicator({
|
|
7519
|
-
currentTurn,
|
|
7537
|
+
currentTurn = 1,
|
|
7520
7538
|
maxTurns,
|
|
7521
7539
|
activeTeam,
|
|
7522
7540
|
phase,
|
|
@@ -7579,7 +7597,7 @@ function getComboScale(combo) {
|
|
|
7579
7597
|
return "";
|
|
7580
7598
|
}
|
|
7581
7599
|
function ComboCounter({
|
|
7582
|
-
combo,
|
|
7600
|
+
combo = 5,
|
|
7583
7601
|
multiplier,
|
|
7584
7602
|
streak,
|
|
7585
7603
|
size = "md",
|
|
@@ -7625,10 +7643,10 @@ var init_ComboCounter = __esm({
|
|
|
7625
7643
|
}
|
|
7626
7644
|
});
|
|
7627
7645
|
function XPBar({
|
|
7628
|
-
current,
|
|
7629
|
-
max,
|
|
7630
|
-
level,
|
|
7631
|
-
showLabel =
|
|
7646
|
+
current = 350,
|
|
7647
|
+
max = 1e3,
|
|
7648
|
+
level = 5,
|
|
7649
|
+
showLabel = true,
|
|
7632
7650
|
size = "md",
|
|
7633
7651
|
animated = true,
|
|
7634
7652
|
className
|
|
@@ -7711,7 +7729,7 @@ var init_XPBar = __esm({
|
|
|
7711
7729
|
function WaypointMarker({
|
|
7712
7730
|
label,
|
|
7713
7731
|
icon,
|
|
7714
|
-
active =
|
|
7732
|
+
active = true,
|
|
7715
7733
|
completed = false,
|
|
7716
7734
|
size = "md",
|
|
7717
7735
|
className
|
|
@@ -7785,11 +7803,11 @@ function formatDuration(seconds) {
|
|
|
7785
7803
|
return `${Math.round(seconds)}s`;
|
|
7786
7804
|
}
|
|
7787
7805
|
function StatusEffect({
|
|
7788
|
-
icon,
|
|
7789
|
-
label,
|
|
7790
|
-
duration,
|
|
7806
|
+
icon = "shield",
|
|
7807
|
+
label = "Shield",
|
|
7808
|
+
duration = 30,
|
|
7791
7809
|
stacks,
|
|
7792
|
-
variant = "
|
|
7810
|
+
variant = "buff",
|
|
7793
7811
|
size = "md",
|
|
7794
7812
|
className
|
|
7795
7813
|
}) {
|
|
@@ -7851,7 +7869,7 @@ var init_StatusEffect = __esm({
|
|
|
7851
7869
|
}
|
|
7852
7870
|
});
|
|
7853
7871
|
function DamageNumber({
|
|
7854
|
-
value,
|
|
7872
|
+
value = 42,
|
|
7855
7873
|
type = "damage",
|
|
7856
7874
|
size = "md",
|
|
7857
7875
|
className
|
|
@@ -7900,8 +7918,8 @@ var init_DamageNumber = __esm({
|
|
|
7900
7918
|
}
|
|
7901
7919
|
});
|
|
7902
7920
|
function DialogueBubble({
|
|
7903
|
-
speaker,
|
|
7904
|
-
text,
|
|
7921
|
+
speaker = "Hero",
|
|
7922
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
7905
7923
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
7906
7924
|
position = "bottom",
|
|
7907
7925
|
className
|
|
@@ -7938,7 +7956,7 @@ var init_DialogueBubble = __esm({
|
|
|
7938
7956
|
}
|
|
7939
7957
|
});
|
|
7940
7958
|
function ChoiceButton({
|
|
7941
|
-
text,
|
|
7959
|
+
text = "Charge forward into the fray",
|
|
7942
7960
|
index,
|
|
7943
7961
|
disabled = false,
|
|
7944
7962
|
selected = false,
|
|
@@ -7984,7 +8002,7 @@ var init_ChoiceButton = __esm({
|
|
|
7984
8002
|
}
|
|
7985
8003
|
});
|
|
7986
8004
|
function ActionButton({
|
|
7987
|
-
label,
|
|
8005
|
+
label = "Attack",
|
|
7988
8006
|
icon,
|
|
7989
8007
|
cooldown = 0,
|
|
7990
8008
|
disabled = false,
|
|
@@ -8064,13 +8082,13 @@ var init_ActionButton = __esm({
|
|
|
8064
8082
|
}
|
|
8065
8083
|
});
|
|
8066
8084
|
function MiniMap({
|
|
8067
|
-
tiles =
|
|
8068
|
-
units =
|
|
8085
|
+
tiles = DEFAULT_TILES,
|
|
8086
|
+
units = DEFAULT_UNITS,
|
|
8069
8087
|
width = 150,
|
|
8070
8088
|
height = 150,
|
|
8071
8089
|
mapWidth = 100,
|
|
8072
8090
|
mapHeight = 100,
|
|
8073
|
-
viewportRect,
|
|
8091
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
8074
8092
|
className
|
|
8075
8093
|
}) {
|
|
8076
8094
|
const canvasRef = React82.useRef(null);
|
|
@@ -8149,10 +8167,25 @@ function MiniMap({
|
|
|
8149
8167
|
}
|
|
8150
8168
|
);
|
|
8151
8169
|
}
|
|
8170
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
8152
8171
|
var init_MiniMap = __esm({
|
|
8153
8172
|
"components/game/atoms/MiniMap.tsx"() {
|
|
8154
8173
|
"use client";
|
|
8155
8174
|
init_cn();
|
|
8175
|
+
DEFAULT_TILES = [
|
|
8176
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
8177
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
8178
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
8179
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
8180
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
8181
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
8182
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
8183
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
8184
|
+
];
|
|
8185
|
+
DEFAULT_UNITS = [
|
|
8186
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
8187
|
+
];
|
|
8188
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
8156
8189
|
MiniMap.displayName = "MiniMap";
|
|
8157
8190
|
}
|
|
8158
8191
|
});
|
|
@@ -9275,7 +9308,7 @@ var init_Accordion = __esm({
|
|
|
9275
9308
|
}
|
|
9276
9309
|
});
|
|
9277
9310
|
function ActionButtons({
|
|
9278
|
-
buttons,
|
|
9311
|
+
buttons = DEFAULT_BUTTONS,
|
|
9279
9312
|
onAction,
|
|
9280
9313
|
actionEvent,
|
|
9281
9314
|
layout = "horizontal",
|
|
@@ -9382,7 +9415,7 @@ function ActionButtons({
|
|
|
9382
9415
|
button.id
|
|
9383
9416
|
)) });
|
|
9384
9417
|
}
|
|
9385
|
-
var sizeMap14, layoutMap;
|
|
9418
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
9386
9419
|
var init_ActionButtons = __esm({
|
|
9387
9420
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
9388
9421
|
"use client";
|
|
@@ -9399,6 +9432,11 @@ var init_ActionButtons = __esm({
|
|
|
9399
9432
|
vertical: "flex flex-col gap-2",
|
|
9400
9433
|
diamond: "grid grid-cols-3 gap-1"
|
|
9401
9434
|
};
|
|
9435
|
+
DEFAULT_BUTTONS = [
|
|
9436
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
9437
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
9438
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
9439
|
+
];
|
|
9402
9440
|
ActionButtons.displayName = "ActionButtons";
|
|
9403
9441
|
}
|
|
9404
9442
|
});
|
|
@@ -10591,7 +10629,7 @@ function IsometricCanvas({
|
|
|
10591
10629
|
// Rendering options
|
|
10592
10630
|
scale = 0.4,
|
|
10593
10631
|
debug: debug2 = false,
|
|
10594
|
-
backgroundImage = "
|
|
10632
|
+
backgroundImage = "",
|
|
10595
10633
|
showMinimap = true,
|
|
10596
10634
|
enableCamera = true,
|
|
10597
10635
|
unitScale = 1,
|
|
@@ -11729,10 +11767,10 @@ function BattleTemplate({
|
|
|
11729
11767
|
entity,
|
|
11730
11768
|
scale = 0.45,
|
|
11731
11769
|
unitScale = 1,
|
|
11732
|
-
tiles,
|
|
11733
|
-
units,
|
|
11734
|
-
features,
|
|
11735
|
-
assetManifest,
|
|
11770
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
11771
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
11772
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
11773
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
11736
11774
|
className
|
|
11737
11775
|
}) {
|
|
11738
11776
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -11758,9 +11796,62 @@ function BattleTemplate({
|
|
|
11758
11796
|
}
|
|
11759
11797
|
);
|
|
11760
11798
|
}
|
|
11799
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
11761
11800
|
var init_BattleTemplate = __esm({
|
|
11762
11801
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
11763
11802
|
init_BattleBoard();
|
|
11803
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
11804
|
+
DEFAULT_BATTLE_TILES = [
|
|
11805
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11806
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11807
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11808
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11809
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11810
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11811
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11812
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11813
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11814
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11815
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11816
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11817
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11818
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11819
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11820
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11821
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11822
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11823
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11824
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11825
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11826
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11827
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11828
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11829
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
11830
|
+
];
|
|
11831
|
+
DEFAULT_BATTLE_UNITS = [
|
|
11832
|
+
{ 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` },
|
|
11833
|
+
{ 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` }
|
|
11834
|
+
];
|
|
11835
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
11836
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
11837
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
11838
|
+
];
|
|
11839
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
11840
|
+
baseUrl: CDN,
|
|
11841
|
+
terrains: {
|
|
11842
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
11843
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
11844
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
11845
|
+
},
|
|
11846
|
+
units: {
|
|
11847
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
11848
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
11849
|
+
},
|
|
11850
|
+
features: {
|
|
11851
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
11852
|
+
portal: "/world-map/portal_open.png"
|
|
11853
|
+
}
|
|
11854
|
+
};
|
|
11764
11855
|
BattleTemplate.displayName = "BattleTemplate";
|
|
11765
11856
|
}
|
|
11766
11857
|
});
|
|
@@ -19760,10 +19851,10 @@ var init_CastleBoard = __esm({
|
|
|
19760
19851
|
function CastleTemplate({
|
|
19761
19852
|
entity,
|
|
19762
19853
|
scale = 0.45,
|
|
19763
|
-
tiles,
|
|
19764
|
-
units,
|
|
19765
|
-
features,
|
|
19766
|
-
assetManifest,
|
|
19854
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
19855
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
19856
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
19857
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
19767
19858
|
className
|
|
19768
19859
|
}) {
|
|
19769
19860
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -19784,9 +19875,61 @@ function CastleTemplate({
|
|
|
19784
19875
|
}
|
|
19785
19876
|
);
|
|
19786
19877
|
}
|
|
19878
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
19787
19879
|
var init_CastleTemplate = __esm({
|
|
19788
19880
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
19789
19881
|
init_CastleBoard();
|
|
19882
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
19883
|
+
DEFAULT_CASTLE_TILES = [
|
|
19884
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19885
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19886
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19887
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19888
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19889
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19890
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19891
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19892
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19893
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19894
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19895
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19896
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
19897
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19898
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19899
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19900
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19901
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19902
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19903
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19904
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19905
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19906
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19907
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19908
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
19909
|
+
];
|
|
19910
|
+
DEFAULT_CASTLE_UNITS = [
|
|
19911
|
+
{ 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` },
|
|
19912
|
+
{ 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` }
|
|
19913
|
+
];
|
|
19914
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
19915
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
19916
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
19917
|
+
];
|
|
19918
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
19919
|
+
baseUrl: CDN2,
|
|
19920
|
+
terrains: {
|
|
19921
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
19922
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
19923
|
+
},
|
|
19924
|
+
units: {
|
|
19925
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
19926
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
19927
|
+
},
|
|
19928
|
+
features: {
|
|
19929
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
19930
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
19931
|
+
}
|
|
19932
|
+
};
|
|
19790
19933
|
CastleTemplate.displayName = "CastleTemplate";
|
|
19791
19934
|
}
|
|
19792
19935
|
});
|
|
@@ -20908,7 +21051,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
20908
21051
|
}
|
|
20909
21052
|
});
|
|
20910
21053
|
function CombatLog({
|
|
20911
|
-
events: events2,
|
|
21054
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
20912
21055
|
maxVisible = 50,
|
|
20913
21056
|
autoScroll = true,
|
|
20914
21057
|
showTimestamps = false,
|
|
@@ -20959,7 +21102,7 @@ function CombatLog({
|
|
|
20959
21102
|
}) }) })
|
|
20960
21103
|
] });
|
|
20961
21104
|
}
|
|
20962
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
21105
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
20963
21106
|
var init_CombatLog = __esm({
|
|
20964
21107
|
"components/game/molecules/CombatLog.tsx"() {
|
|
20965
21108
|
init_atoms2();
|
|
@@ -20991,6 +21134,13 @@ var init_CombatLog = __esm({
|
|
|
20991
21134
|
death: "secondary",
|
|
20992
21135
|
spawn: "secondary"
|
|
20993
21136
|
};
|
|
21137
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
21138
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
21139
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
21140
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
21141
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
21142
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
21143
|
+
];
|
|
20994
21144
|
CombatLog.displayName = "CombatLog";
|
|
20995
21145
|
}
|
|
20996
21146
|
});
|
|
@@ -21398,9 +21548,9 @@ function isValidRarity(value) {
|
|
|
21398
21548
|
return rarityValues.includes(value);
|
|
21399
21549
|
}
|
|
21400
21550
|
function CraftingRecipe({
|
|
21401
|
-
inputs,
|
|
21402
|
-
output,
|
|
21403
|
-
canCraft =
|
|
21551
|
+
inputs = DEFAULT_INPUTS,
|
|
21552
|
+
output = DEFAULT_OUTPUT,
|
|
21553
|
+
canCraft = true,
|
|
21404
21554
|
onCraft,
|
|
21405
21555
|
craftEvent,
|
|
21406
21556
|
className
|
|
@@ -21461,7 +21611,7 @@ function CraftingRecipe({
|
|
|
21461
21611
|
}
|
|
21462
21612
|
);
|
|
21463
21613
|
}
|
|
21464
|
-
var rarityValues;
|
|
21614
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
21465
21615
|
var init_CraftingRecipe = __esm({
|
|
21466
21616
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
21467
21617
|
"use client";
|
|
@@ -21473,6 +21623,15 @@ var init_CraftingRecipe = __esm({
|
|
|
21473
21623
|
init_Stack();
|
|
21474
21624
|
init_Icon();
|
|
21475
21625
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
21626
|
+
DEFAULT_INPUTS = [
|
|
21627
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
21628
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
21629
|
+
];
|
|
21630
|
+
DEFAULT_OUTPUT = {
|
|
21631
|
+
icon: "sword",
|
|
21632
|
+
label: "Iron Sword",
|
|
21633
|
+
rarity: "uncommon"
|
|
21634
|
+
};
|
|
21476
21635
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
21477
21636
|
}
|
|
21478
21637
|
});
|
|
@@ -26469,10 +26628,10 @@ var init_StatBadge = __esm({
|
|
|
26469
26628
|
}
|
|
26470
26629
|
});
|
|
26471
26630
|
function InventoryGrid({
|
|
26472
|
-
items,
|
|
26631
|
+
items = DEFAULT_GRID_ITEMS,
|
|
26473
26632
|
columns = 4,
|
|
26474
|
-
totalSlots,
|
|
26475
|
-
selectedId,
|
|
26633
|
+
totalSlots = 12,
|
|
26634
|
+
selectedId = "",
|
|
26476
26635
|
onSelect,
|
|
26477
26636
|
selectEvent,
|
|
26478
26637
|
size = "md",
|
|
@@ -26521,7 +26680,7 @@ function InventoryGrid({
|
|
|
26521
26680
|
}
|
|
26522
26681
|
);
|
|
26523
26682
|
}
|
|
26524
|
-
var columnMap;
|
|
26683
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
26525
26684
|
var init_InventoryGrid = __esm({
|
|
26526
26685
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
26527
26686
|
"use client";
|
|
@@ -26538,12 +26697,18 @@ var init_InventoryGrid = __esm({
|
|
|
26538
26697
|
7: "grid-cols-7",
|
|
26539
26698
|
8: "grid-cols-8"
|
|
26540
26699
|
};
|
|
26700
|
+
DEFAULT_GRID_ITEMS = [
|
|
26701
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
26702
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
26703
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
26704
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
26705
|
+
];
|
|
26541
26706
|
InventoryGrid.displayName = "InventoryGrid";
|
|
26542
26707
|
}
|
|
26543
26708
|
});
|
|
26544
26709
|
function QuestTracker({
|
|
26545
|
-
quests,
|
|
26546
|
-
activeQuestId,
|
|
26710
|
+
quests = DEFAULT_QUESTS,
|
|
26711
|
+
activeQuestId = "q2",
|
|
26547
26712
|
className
|
|
26548
26713
|
}) {
|
|
26549
26714
|
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -26609,6 +26774,7 @@ function QuestTracker({
|
|
|
26609
26774
|
);
|
|
26610
26775
|
}) });
|
|
26611
26776
|
}
|
|
26777
|
+
var DEFAULT_QUESTS;
|
|
26612
26778
|
var init_QuestTracker = __esm({
|
|
26613
26779
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
26614
26780
|
"use client";
|
|
@@ -26618,6 +26784,11 @@ var init_QuestTracker = __esm({
|
|
|
26618
26784
|
init_Typography();
|
|
26619
26785
|
init_Box();
|
|
26620
26786
|
init_Stack();
|
|
26787
|
+
DEFAULT_QUESTS = [
|
|
26788
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
26789
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
26790
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
26791
|
+
];
|
|
26621
26792
|
QuestTracker.displayName = "QuestTracker";
|
|
26622
26793
|
}
|
|
26623
26794
|
});
|
|
@@ -26630,7 +26801,7 @@ function formatTime2(seconds) {
|
|
|
26630
26801
|
return `${seconds}s`;
|
|
26631
26802
|
}
|
|
26632
26803
|
function PowerupSlots({
|
|
26633
|
-
active,
|
|
26804
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
26634
26805
|
maxSlots = 4,
|
|
26635
26806
|
className
|
|
26636
26807
|
}) {
|
|
@@ -26675,6 +26846,7 @@ function PowerupSlots({
|
|
|
26675
26846
|
))
|
|
26676
26847
|
] });
|
|
26677
26848
|
}
|
|
26849
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
26678
26850
|
var init_PowerupSlots = __esm({
|
|
26679
26851
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
26680
26852
|
"use client";
|
|
@@ -26683,6 +26855,10 @@ var init_PowerupSlots = __esm({
|
|
|
26683
26855
|
init_Box();
|
|
26684
26856
|
init_Stack();
|
|
26685
26857
|
init_Typography();
|
|
26858
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
26859
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
26860
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
26861
|
+
];
|
|
26686
26862
|
PowerupSlots.displayName = "PowerupSlots";
|
|
26687
26863
|
}
|
|
26688
26864
|
});
|
|
@@ -26694,7 +26870,7 @@ function GameCanvas2D({
|
|
|
26694
26870
|
tickEvent,
|
|
26695
26871
|
drawEvent,
|
|
26696
26872
|
fps = 60,
|
|
26697
|
-
backgroundImage = "
|
|
26873
|
+
backgroundImage = "",
|
|
26698
26874
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
26699
26875
|
className
|
|
26700
26876
|
}) {
|
|
@@ -26798,10 +26974,10 @@ var init_GameCanvas2D = __esm({
|
|
|
26798
26974
|
}
|
|
26799
26975
|
});
|
|
26800
26976
|
function HealthPanel({
|
|
26801
|
-
current,
|
|
26802
|
-
max,
|
|
26803
|
-
shield,
|
|
26804
|
-
label,
|
|
26977
|
+
current = 75,
|
|
26978
|
+
max = 100,
|
|
26979
|
+
shield = 20,
|
|
26980
|
+
label = "Player HP",
|
|
26805
26981
|
effects,
|
|
26806
26982
|
showNumbers = true,
|
|
26807
26983
|
size = "md",
|
|
@@ -26919,11 +27095,11 @@ var init_HealthPanel = __esm({
|
|
|
26919
27095
|
}
|
|
26920
27096
|
});
|
|
26921
27097
|
function ScoreBoard({
|
|
26922
|
-
score: rawScore,
|
|
26923
|
-
highScore: rawHighScore,
|
|
26924
|
-
combo: rawCombo,
|
|
26925
|
-
multiplier: rawMultiplier,
|
|
26926
|
-
level: rawLevel,
|
|
27098
|
+
score: rawScore = 4200,
|
|
27099
|
+
highScore: rawHighScore = 8750,
|
|
27100
|
+
combo: rawCombo = 3,
|
|
27101
|
+
multiplier: rawMultiplier = 2,
|
|
27102
|
+
level: rawLevel = 4,
|
|
26927
27103
|
className
|
|
26928
27104
|
}) {
|
|
26929
27105
|
const score = rawScore ?? 0;
|
|
@@ -26996,7 +27172,7 @@ var init_ScoreBoard = __esm({
|
|
|
26996
27172
|
}
|
|
26997
27173
|
});
|
|
26998
27174
|
function ResourceBar({
|
|
26999
|
-
resources,
|
|
27175
|
+
resources = DEFAULT_RESOURCES,
|
|
27000
27176
|
size = "md",
|
|
27001
27177
|
className
|
|
27002
27178
|
}) {
|
|
@@ -27022,21 +27198,27 @@ function ResourceBar({
|
|
|
27022
27198
|
}
|
|
27023
27199
|
);
|
|
27024
27200
|
}
|
|
27201
|
+
var DEFAULT_RESOURCES;
|
|
27025
27202
|
var init_ResourceBar = __esm({
|
|
27026
27203
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
27027
27204
|
"use client";
|
|
27028
27205
|
init_cn();
|
|
27029
27206
|
init_StatBadge();
|
|
27030
27207
|
init_Box();
|
|
27208
|
+
DEFAULT_RESOURCES = [
|
|
27209
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
27210
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
27211
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
27212
|
+
];
|
|
27031
27213
|
ResourceBar.displayName = "ResourceBar";
|
|
27032
27214
|
}
|
|
27033
27215
|
});
|
|
27034
27216
|
function TurnPanel({
|
|
27035
|
-
currentTurn,
|
|
27036
|
-
maxTurns,
|
|
27037
|
-
phase,
|
|
27038
|
-
activeTeam,
|
|
27039
|
-
actions,
|
|
27217
|
+
currentTurn = 3,
|
|
27218
|
+
maxTurns = 10,
|
|
27219
|
+
phase = "Attack",
|
|
27220
|
+
activeTeam = "Heroes",
|
|
27221
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
27040
27222
|
className
|
|
27041
27223
|
}) {
|
|
27042
27224
|
const eventBus = useEventBus();
|
|
@@ -27081,6 +27263,7 @@ function TurnPanel({
|
|
|
27081
27263
|
}
|
|
27082
27264
|
);
|
|
27083
27265
|
}
|
|
27266
|
+
var DEFAULT_TURN_ACTIONS;
|
|
27084
27267
|
var init_TurnPanel = __esm({
|
|
27085
27268
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
27086
27269
|
"use client";
|
|
@@ -27089,15 +27272,19 @@ var init_TurnPanel = __esm({
|
|
|
27089
27272
|
init_Button();
|
|
27090
27273
|
init_Box();
|
|
27091
27274
|
init_useEventBus();
|
|
27275
|
+
DEFAULT_TURN_ACTIONS = [
|
|
27276
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
27277
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
27278
|
+
];
|
|
27092
27279
|
TurnPanel.displayName = "TurnPanel";
|
|
27093
27280
|
}
|
|
27094
27281
|
});
|
|
27095
27282
|
function EnemyPlate({
|
|
27096
|
-
name,
|
|
27097
|
-
health,
|
|
27098
|
-
maxHealth,
|
|
27099
|
-
level,
|
|
27100
|
-
effects,
|
|
27283
|
+
name = "Shadow Guard",
|
|
27284
|
+
health = 80,
|
|
27285
|
+
maxHealth = 100,
|
|
27286
|
+
level = 5,
|
|
27287
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
27101
27288
|
className
|
|
27102
27289
|
}) {
|
|
27103
27290
|
return /* @__PURE__ */ jsxs(
|
|
@@ -27163,7 +27350,7 @@ function EnemyPlate({
|
|
|
27163
27350
|
}
|
|
27164
27351
|
);
|
|
27165
27352
|
}
|
|
27166
|
-
var effectVariantMap2;
|
|
27353
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
27167
27354
|
var init_EnemyPlate = __esm({
|
|
27168
27355
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
27169
27356
|
"use client";
|
|
@@ -27177,12 +27364,15 @@ var init_EnemyPlate = __esm({
|
|
|
27177
27364
|
debuff: "danger",
|
|
27178
27365
|
neutral: "neutral"
|
|
27179
27366
|
};
|
|
27367
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
27368
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
27369
|
+
];
|
|
27180
27370
|
EnemyPlate.displayName = "EnemyPlate";
|
|
27181
27371
|
}
|
|
27182
27372
|
});
|
|
27183
27373
|
function UnitCommandBar({
|
|
27184
|
-
commands,
|
|
27185
|
-
selectedUnitId,
|
|
27374
|
+
commands = DEFAULT_COMMANDS,
|
|
27375
|
+
selectedUnitId = "unit-1",
|
|
27186
27376
|
className
|
|
27187
27377
|
}) {
|
|
27188
27378
|
const eventBus = useEventBus();
|
|
@@ -27225,6 +27415,7 @@ function UnitCommandBar({
|
|
|
27225
27415
|
}
|
|
27226
27416
|
);
|
|
27227
27417
|
}
|
|
27418
|
+
var DEFAULT_COMMANDS;
|
|
27228
27419
|
var init_UnitCommandBar = __esm({
|
|
27229
27420
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
27230
27421
|
"use client";
|
|
@@ -27233,6 +27424,12 @@ var init_UnitCommandBar = __esm({
|
|
|
27233
27424
|
init_Box();
|
|
27234
27425
|
init_Typography();
|
|
27235
27426
|
init_useEventBus();
|
|
27427
|
+
DEFAULT_COMMANDS = [
|
|
27428
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
27429
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
27430
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
27431
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
27432
|
+
];
|
|
27236
27433
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
27237
27434
|
}
|
|
27238
27435
|
});
|
|
@@ -27266,7 +27463,7 @@ function GameHud({
|
|
|
27266
27463
|
className,
|
|
27267
27464
|
transparent = true
|
|
27268
27465
|
}) {
|
|
27269
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
27466
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
27270
27467
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
27271
27468
|
const position = propPosition ?? "corners";
|
|
27272
27469
|
if (position === "corners") {
|
|
@@ -27291,7 +27488,7 @@ function GameHud({
|
|
|
27291
27488
|
}
|
|
27292
27489
|
);
|
|
27293
27490
|
}
|
|
27294
|
-
var positionMap;
|
|
27491
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
27295
27492
|
var init_GameHud = __esm({
|
|
27296
27493
|
"components/game/molecules/GameHud.tsx"() {
|
|
27297
27494
|
init_cn();
|
|
@@ -27301,11 +27498,17 @@ var init_GameHud = __esm({
|
|
|
27301
27498
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
27302
27499
|
corners: "inset-0 pointer-events-none"
|
|
27303
27500
|
};
|
|
27501
|
+
DEFAULT_HUD_STATS = [
|
|
27502
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
27503
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
27504
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
27505
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
27506
|
+
];
|
|
27304
27507
|
GameHud.displayName = "GameHud";
|
|
27305
27508
|
}
|
|
27306
27509
|
});
|
|
27307
27510
|
function DialogueBox({
|
|
27308
|
-
dialogue,
|
|
27511
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
27309
27512
|
typewriterSpeed = 30,
|
|
27310
27513
|
position = "bottom",
|
|
27311
27514
|
onComplete,
|
|
@@ -27488,17 +27691,27 @@ function DialogueBox({
|
|
|
27488
27691
|
}
|
|
27489
27692
|
);
|
|
27490
27693
|
}
|
|
27694
|
+
var DEFAULT_DIALOGUE;
|
|
27491
27695
|
var init_DialogueBox = __esm({
|
|
27492
27696
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
27493
27697
|
"use client";
|
|
27494
27698
|
init_cn();
|
|
27495
27699
|
init_useEventBus();
|
|
27700
|
+
DEFAULT_DIALOGUE = {
|
|
27701
|
+
speaker: "Village Elder",
|
|
27702
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
27703
|
+
choices: [
|
|
27704
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
27705
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
27706
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
27707
|
+
]
|
|
27708
|
+
};
|
|
27496
27709
|
}
|
|
27497
27710
|
});
|
|
27498
27711
|
function InventoryPanel({
|
|
27499
|
-
items,
|
|
27500
|
-
slots,
|
|
27501
|
-
columns,
|
|
27712
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
27713
|
+
slots = 12,
|
|
27714
|
+
columns = 4,
|
|
27502
27715
|
selectedSlot,
|
|
27503
27716
|
onSelectSlot,
|
|
27504
27717
|
onUseItem,
|
|
@@ -27646,25 +27859,31 @@ function InventoryPanel({
|
|
|
27646
27859
|
)
|
|
27647
27860
|
] });
|
|
27648
27861
|
}
|
|
27862
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
27649
27863
|
var init_InventoryPanel = __esm({
|
|
27650
27864
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
27651
27865
|
"use client";
|
|
27652
27866
|
init_cn();
|
|
27653
27867
|
init_useEventBus();
|
|
27868
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
27869
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
27870
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
27871
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
27872
|
+
];
|
|
27654
27873
|
}
|
|
27655
27874
|
});
|
|
27656
27875
|
function GameMenu({
|
|
27657
|
-
title,
|
|
27876
|
+
title = "Epic Quest",
|
|
27658
27877
|
subtitle,
|
|
27659
27878
|
options,
|
|
27660
27879
|
menuItems,
|
|
27661
27880
|
onSelect,
|
|
27662
27881
|
eventBus: eventBusProp,
|
|
27663
27882
|
background,
|
|
27664
|
-
logo,
|
|
27883
|
+
logo = "",
|
|
27665
27884
|
className
|
|
27666
27885
|
}) {
|
|
27667
|
-
const resolvedOptions = options ?? menuItems ??
|
|
27886
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
27668
27887
|
let eventBusFromHook = null;
|
|
27669
27888
|
try {
|
|
27670
27889
|
eventBusFromHook = useEventBus();
|
|
@@ -27745,7 +27964,7 @@ function GameMenu({
|
|
|
27745
27964
|
}
|
|
27746
27965
|
);
|
|
27747
27966
|
}
|
|
27748
|
-
var variantMap3;
|
|
27967
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
27749
27968
|
var init_GameMenu = __esm({
|
|
27750
27969
|
"components/game/molecules/GameMenu.tsx"() {
|
|
27751
27970
|
"use client";
|
|
@@ -27756,6 +27975,11 @@ var init_GameMenu = __esm({
|
|
|
27756
27975
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27757
27976
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27758
27977
|
};
|
|
27978
|
+
DEFAULT_MENU_OPTIONS = [
|
|
27979
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
27980
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
27981
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
27982
|
+
];
|
|
27759
27983
|
GameMenu.displayName = "GameMenu";
|
|
27760
27984
|
}
|
|
27761
27985
|
});
|
|
@@ -27766,19 +27990,19 @@ function formatTime3(ms) {
|
|
|
27766
27990
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
27767
27991
|
}
|
|
27768
27992
|
function GameOverScreen({
|
|
27769
|
-
title,
|
|
27993
|
+
title = "Game Over",
|
|
27770
27994
|
message,
|
|
27771
|
-
stats =
|
|
27995
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
27772
27996
|
actions,
|
|
27773
27997
|
menuItems,
|
|
27774
27998
|
onAction,
|
|
27775
27999
|
eventBus: eventBusProp,
|
|
27776
|
-
variant = "
|
|
27777
|
-
highScore,
|
|
27778
|
-
currentScore,
|
|
28000
|
+
variant = "defeat",
|
|
28001
|
+
highScore = 2e3,
|
|
28002
|
+
currentScore = 1240,
|
|
27779
28003
|
className
|
|
27780
28004
|
}) {
|
|
27781
|
-
const resolvedActions = actions ?? menuItems ??
|
|
28005
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
27782
28006
|
let eventBusFromHook = null;
|
|
27783
28007
|
try {
|
|
27784
28008
|
eventBusFromHook = useEventBus();
|
|
@@ -27865,7 +28089,7 @@ function GameOverScreen({
|
|
|
27865
28089
|
}
|
|
27866
28090
|
);
|
|
27867
28091
|
}
|
|
27868
|
-
var variantColors, buttonVariants;
|
|
28092
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
27869
28093
|
var init_GameOverScreen = __esm({
|
|
27870
28094
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
27871
28095
|
"use client";
|
|
@@ -27894,21 +28118,35 @@ var init_GameOverScreen = __esm({
|
|
|
27894
28118
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27895
28119
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27896
28120
|
};
|
|
28121
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
28122
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
28123
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
28124
|
+
];
|
|
28125
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
28126
|
+
{ label: "Score", value: 1240 },
|
|
28127
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
28128
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
28129
|
+
];
|
|
27897
28130
|
GameOverScreen.displayName = "GameOverScreen";
|
|
27898
28131
|
}
|
|
27899
28132
|
});
|
|
27900
28133
|
function PlatformerCanvas({
|
|
27901
28134
|
player,
|
|
27902
|
-
platforms = [
|
|
28135
|
+
platforms = [
|
|
28136
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
28137
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
28138
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
28139
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
28140
|
+
],
|
|
27903
28141
|
worldWidth = 800,
|
|
27904
28142
|
worldHeight = 400,
|
|
27905
28143
|
canvasWidth = 800,
|
|
27906
28144
|
canvasHeight = 400,
|
|
27907
28145
|
followCamera = true,
|
|
27908
|
-
bgColor,
|
|
28146
|
+
bgColor = "#5c94fc",
|
|
27909
28147
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
27910
28148
|
tileSprites,
|
|
27911
|
-
backgroundImage = "
|
|
28149
|
+
backgroundImage = "",
|
|
27912
28150
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
27913
28151
|
leftEvent = "MOVE_LEFT",
|
|
27914
28152
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -27956,10 +28194,10 @@ function PlatformerCanvas({
|
|
|
27956
28194
|
};
|
|
27957
28195
|
}, []);
|
|
27958
28196
|
const resolvedPlayer = player ?? {
|
|
27959
|
-
x:
|
|
27960
|
-
y:
|
|
27961
|
-
width:
|
|
27962
|
-
height:
|
|
28197
|
+
x: 80,
|
|
28198
|
+
y: 336,
|
|
28199
|
+
width: 32,
|
|
28200
|
+
height: 48,
|
|
27963
28201
|
facingRight: true
|
|
27964
28202
|
};
|
|
27965
28203
|
const handleKeyDown = useCallback((e) => {
|
|
@@ -46657,12 +46895,12 @@ function WorldMapTemplate({
|
|
|
46657
46895
|
entity,
|
|
46658
46896
|
scale = 0.4,
|
|
46659
46897
|
unitScale = 2.5,
|
|
46660
|
-
diamondTopY,
|
|
46898
|
+
diamondTopY = 374,
|
|
46661
46899
|
allowMoveAllHeroes = false,
|
|
46662
|
-
tiles,
|
|
46663
|
-
units,
|
|
46664
|
-
features,
|
|
46665
|
-
assetManifest,
|
|
46900
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
46901
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
46902
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
46903
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
46666
46904
|
className
|
|
46667
46905
|
}) {
|
|
46668
46906
|
return /* @__PURE__ */ jsx(
|
|
@@ -46685,9 +46923,63 @@ function WorldMapTemplate({
|
|
|
46685
46923
|
}
|
|
46686
46924
|
);
|
|
46687
46925
|
}
|
|
46926
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
46688
46927
|
var init_WorldMapTemplate = __esm({
|
|
46689
46928
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
46690
46929
|
init_WorldMapBoard();
|
|
46930
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
46931
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
46932
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46933
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46934
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46935
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46936
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46937
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46938
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46939
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46940
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46941
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46942
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46943
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46944
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
46945
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46946
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46947
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46948
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46949
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46950
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
46951
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46952
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46953
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46954
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46955
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46956
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
46957
|
+
];
|
|
46958
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
46959
|
+
{ 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` },
|
|
46960
|
+
{ 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` }
|
|
46961
|
+
];
|
|
46962
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
46963
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
46964
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
46965
|
+
];
|
|
46966
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
46967
|
+
baseUrl: CDN3,
|
|
46968
|
+
terrains: {
|
|
46969
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
46970
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
46971
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
46972
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
46973
|
+
},
|
|
46974
|
+
units: {
|
|
46975
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
46976
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
46977
|
+
},
|
|
46978
|
+
features: {
|
|
46979
|
+
capital: "/scenes/world/capital.png",
|
|
46980
|
+
power_node: "/world-map/power_node.png"
|
|
46981
|
+
}
|
|
46982
|
+
};
|
|
46691
46983
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
46692
46984
|
}
|
|
46693
46985
|
});
|