@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.cjs
CHANGED
|
@@ -7000,8 +7000,8 @@ var init_TraitFrame = __esm({
|
|
|
7000
7000
|
}
|
|
7001
7001
|
});
|
|
7002
7002
|
function HealthBar({
|
|
7003
|
-
current,
|
|
7004
|
-
max,
|
|
7003
|
+
current = 3,
|
|
7004
|
+
max = 5,
|
|
7005
7005
|
format = "hearts",
|
|
7006
7006
|
size = "md",
|
|
7007
7007
|
className,
|
|
@@ -7250,11 +7250,11 @@ var init_ControlButton = __esm({
|
|
|
7250
7250
|
});
|
|
7251
7251
|
function Sprite({
|
|
7252
7252
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
7253
|
-
frameWidth,
|
|
7254
|
-
frameHeight,
|
|
7255
|
-
frame,
|
|
7256
|
-
x,
|
|
7257
|
-
y,
|
|
7253
|
+
frameWidth = 64,
|
|
7254
|
+
frameHeight = 64,
|
|
7255
|
+
frame = 0,
|
|
7256
|
+
x = 0,
|
|
7257
|
+
y = 0,
|
|
7258
7258
|
scale = 1,
|
|
7259
7259
|
flipX = false,
|
|
7260
7260
|
flipY = false,
|
|
@@ -7324,7 +7324,7 @@ var init_Sprite = __esm({
|
|
|
7324
7324
|
}
|
|
7325
7325
|
});
|
|
7326
7326
|
function StateIndicator({
|
|
7327
|
-
state,
|
|
7327
|
+
state = "idle",
|
|
7328
7328
|
label,
|
|
7329
7329
|
size = "md",
|
|
7330
7330
|
animated = true,
|
|
@@ -7395,8 +7395,8 @@ function formatTime(seconds, format) {
|
|
|
7395
7395
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
7396
7396
|
}
|
|
7397
7397
|
function TimerDisplay({
|
|
7398
|
-
seconds,
|
|
7399
|
-
running,
|
|
7398
|
+
seconds = 90,
|
|
7399
|
+
running = true,
|
|
7400
7400
|
format = "mm:ss",
|
|
7401
7401
|
size = "md",
|
|
7402
7402
|
className,
|
|
@@ -7433,8 +7433,8 @@ var init_TimerDisplay = __esm({
|
|
|
7433
7433
|
});
|
|
7434
7434
|
function ResourceCounter({
|
|
7435
7435
|
icon,
|
|
7436
|
-
label,
|
|
7437
|
-
value,
|
|
7436
|
+
label = "Gold",
|
|
7437
|
+
value = 250,
|
|
7438
7438
|
max,
|
|
7439
7439
|
color,
|
|
7440
7440
|
size = "md",
|
|
@@ -7486,10 +7486,11 @@ var init_ResourceCounter = __esm({
|
|
|
7486
7486
|
}
|
|
7487
7487
|
});
|
|
7488
7488
|
function ItemSlot({
|
|
7489
|
-
|
|
7490
|
-
|
|
7489
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
7490
|
+
icon = "sword",
|
|
7491
|
+
label = "Iron Sword",
|
|
7491
7492
|
quantity,
|
|
7492
|
-
rarity = "
|
|
7493
|
+
rarity = "uncommon",
|
|
7493
7494
|
empty,
|
|
7494
7495
|
size = "md",
|
|
7495
7496
|
selected,
|
|
@@ -7497,6 +7498,7 @@ function ItemSlot({
|
|
|
7497
7498
|
className
|
|
7498
7499
|
}) {
|
|
7499
7500
|
const isClickable = onClick != null;
|
|
7501
|
+
const px = assetSizeMap[size];
|
|
7500
7502
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7501
7503
|
"button",
|
|
7502
7504
|
{
|
|
@@ -7517,7 +7519,17 @@ function ItemSlot({
|
|
|
7517
7519
|
className
|
|
7518
7520
|
),
|
|
7519
7521
|
children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7520
|
-
|
|
7522
|
+
assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7523
|
+
"img",
|
|
7524
|
+
{
|
|
7525
|
+
src: assetUrl,
|
|
7526
|
+
alt: label,
|
|
7527
|
+
width: px,
|
|
7528
|
+
height: px,
|
|
7529
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
7530
|
+
className: "flex-shrink-0"
|
|
7531
|
+
}
|
|
7532
|
+
) : 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,
|
|
7521
7533
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7522
7534
|
"span",
|
|
7523
7535
|
{
|
|
@@ -7533,7 +7545,7 @@ function ItemSlot({
|
|
|
7533
7545
|
}
|
|
7534
7546
|
);
|
|
7535
7547
|
}
|
|
7536
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
7548
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
7537
7549
|
var init_ItemSlot = __esm({
|
|
7538
7550
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
7539
7551
|
"use client";
|
|
@@ -7558,11 +7570,17 @@ var init_ItemSlot = __esm({
|
|
|
7558
7570
|
epic: "shadow-lg",
|
|
7559
7571
|
legendary: "shadow-lg"
|
|
7560
7572
|
};
|
|
7573
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
7574
|
+
assetSizeMap = {
|
|
7575
|
+
sm: 28,
|
|
7576
|
+
md: 40,
|
|
7577
|
+
lg: 56
|
|
7578
|
+
};
|
|
7561
7579
|
ItemSlot.displayName = "ItemSlot";
|
|
7562
7580
|
}
|
|
7563
7581
|
});
|
|
7564
7582
|
function TurnIndicator({
|
|
7565
|
-
currentTurn,
|
|
7583
|
+
currentTurn = 1,
|
|
7566
7584
|
maxTurns,
|
|
7567
7585
|
activeTeam,
|
|
7568
7586
|
phase,
|
|
@@ -7625,7 +7643,7 @@ function getComboScale(combo) {
|
|
|
7625
7643
|
return "";
|
|
7626
7644
|
}
|
|
7627
7645
|
function ComboCounter({
|
|
7628
|
-
combo,
|
|
7646
|
+
combo = 5,
|
|
7629
7647
|
multiplier,
|
|
7630
7648
|
streak,
|
|
7631
7649
|
size = "md",
|
|
@@ -7671,10 +7689,10 @@ var init_ComboCounter = __esm({
|
|
|
7671
7689
|
}
|
|
7672
7690
|
});
|
|
7673
7691
|
function XPBar({
|
|
7674
|
-
current,
|
|
7675
|
-
max,
|
|
7676
|
-
level,
|
|
7677
|
-
showLabel =
|
|
7692
|
+
current = 350,
|
|
7693
|
+
max = 1e3,
|
|
7694
|
+
level = 5,
|
|
7695
|
+
showLabel = true,
|
|
7678
7696
|
size = "md",
|
|
7679
7697
|
animated = true,
|
|
7680
7698
|
className
|
|
@@ -7757,7 +7775,7 @@ var init_XPBar = __esm({
|
|
|
7757
7775
|
function WaypointMarker({
|
|
7758
7776
|
label,
|
|
7759
7777
|
icon,
|
|
7760
|
-
active =
|
|
7778
|
+
active = true,
|
|
7761
7779
|
completed = false,
|
|
7762
7780
|
size = "md",
|
|
7763
7781
|
className
|
|
@@ -7831,11 +7849,11 @@ function formatDuration(seconds) {
|
|
|
7831
7849
|
return `${Math.round(seconds)}s`;
|
|
7832
7850
|
}
|
|
7833
7851
|
function StatusEffect({
|
|
7834
|
-
icon,
|
|
7835
|
-
label,
|
|
7836
|
-
duration,
|
|
7852
|
+
icon = "shield",
|
|
7853
|
+
label = "Shield",
|
|
7854
|
+
duration = 30,
|
|
7837
7855
|
stacks,
|
|
7838
|
-
variant = "
|
|
7856
|
+
variant = "buff",
|
|
7839
7857
|
size = "md",
|
|
7840
7858
|
className
|
|
7841
7859
|
}) {
|
|
@@ -7897,7 +7915,7 @@ var init_StatusEffect = __esm({
|
|
|
7897
7915
|
}
|
|
7898
7916
|
});
|
|
7899
7917
|
function DamageNumber({
|
|
7900
|
-
value,
|
|
7918
|
+
value = 42,
|
|
7901
7919
|
type = "damage",
|
|
7902
7920
|
size = "md",
|
|
7903
7921
|
className
|
|
@@ -7946,8 +7964,8 @@ var init_DamageNumber = __esm({
|
|
|
7946
7964
|
}
|
|
7947
7965
|
});
|
|
7948
7966
|
function DialogueBubble({
|
|
7949
|
-
speaker,
|
|
7950
|
-
text,
|
|
7967
|
+
speaker = "Hero",
|
|
7968
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
7951
7969
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
7952
7970
|
position = "bottom",
|
|
7953
7971
|
className
|
|
@@ -7984,7 +8002,7 @@ var init_DialogueBubble = __esm({
|
|
|
7984
8002
|
}
|
|
7985
8003
|
});
|
|
7986
8004
|
function ChoiceButton({
|
|
7987
|
-
text,
|
|
8005
|
+
text = "Charge forward into the fray",
|
|
7988
8006
|
index,
|
|
7989
8007
|
disabled = false,
|
|
7990
8008
|
selected = false,
|
|
@@ -8030,7 +8048,7 @@ var init_ChoiceButton = __esm({
|
|
|
8030
8048
|
}
|
|
8031
8049
|
});
|
|
8032
8050
|
function ActionButton({
|
|
8033
|
-
label,
|
|
8051
|
+
label = "Attack",
|
|
8034
8052
|
icon,
|
|
8035
8053
|
cooldown = 0,
|
|
8036
8054
|
disabled = false,
|
|
@@ -8110,13 +8128,13 @@ var init_ActionButton = __esm({
|
|
|
8110
8128
|
}
|
|
8111
8129
|
});
|
|
8112
8130
|
function MiniMap({
|
|
8113
|
-
tiles =
|
|
8114
|
-
units =
|
|
8131
|
+
tiles = DEFAULT_TILES,
|
|
8132
|
+
units = DEFAULT_UNITS,
|
|
8115
8133
|
width = 150,
|
|
8116
8134
|
height = 150,
|
|
8117
8135
|
mapWidth = 100,
|
|
8118
8136
|
mapHeight = 100,
|
|
8119
|
-
viewportRect,
|
|
8137
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
8120
8138
|
className
|
|
8121
8139
|
}) {
|
|
8122
8140
|
const canvasRef = React82__namespace.useRef(null);
|
|
@@ -8195,10 +8213,25 @@ function MiniMap({
|
|
|
8195
8213
|
}
|
|
8196
8214
|
);
|
|
8197
8215
|
}
|
|
8216
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
8198
8217
|
var init_MiniMap = __esm({
|
|
8199
8218
|
"components/game/atoms/MiniMap.tsx"() {
|
|
8200
8219
|
"use client";
|
|
8201
8220
|
init_cn();
|
|
8221
|
+
DEFAULT_TILES = [
|
|
8222
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
8223
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
8224
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
8225
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
8226
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
8227
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
8228
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
8229
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
8230
|
+
];
|
|
8231
|
+
DEFAULT_UNITS = [
|
|
8232
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
8233
|
+
];
|
|
8234
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
8202
8235
|
MiniMap.displayName = "MiniMap";
|
|
8203
8236
|
}
|
|
8204
8237
|
});
|
|
@@ -9321,7 +9354,7 @@ var init_Accordion = __esm({
|
|
|
9321
9354
|
}
|
|
9322
9355
|
});
|
|
9323
9356
|
function ActionButtons({
|
|
9324
|
-
buttons,
|
|
9357
|
+
buttons = DEFAULT_BUTTONS,
|
|
9325
9358
|
onAction,
|
|
9326
9359
|
actionEvent,
|
|
9327
9360
|
layout = "horizontal",
|
|
@@ -9428,7 +9461,7 @@ function ActionButtons({
|
|
|
9428
9461
|
button.id
|
|
9429
9462
|
)) });
|
|
9430
9463
|
}
|
|
9431
|
-
var sizeMap14, layoutMap;
|
|
9464
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
9432
9465
|
var init_ActionButtons = __esm({
|
|
9433
9466
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
9434
9467
|
"use client";
|
|
@@ -9445,6 +9478,11 @@ var init_ActionButtons = __esm({
|
|
|
9445
9478
|
vertical: "flex flex-col gap-2",
|
|
9446
9479
|
diamond: "grid grid-cols-3 gap-1"
|
|
9447
9480
|
};
|
|
9481
|
+
DEFAULT_BUTTONS = [
|
|
9482
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
9483
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
9484
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
9485
|
+
];
|
|
9448
9486
|
ActionButtons.displayName = "ActionButtons";
|
|
9449
9487
|
}
|
|
9450
9488
|
});
|
|
@@ -10637,7 +10675,7 @@ function IsometricCanvas({
|
|
|
10637
10675
|
// Rendering options
|
|
10638
10676
|
scale = 0.4,
|
|
10639
10677
|
debug: debug2 = false,
|
|
10640
|
-
backgroundImage = "
|
|
10678
|
+
backgroundImage = "",
|
|
10641
10679
|
showMinimap = true,
|
|
10642
10680
|
enableCamera = true,
|
|
10643
10681
|
unitScale = 1,
|
|
@@ -11775,10 +11813,10 @@ function BattleTemplate({
|
|
|
11775
11813
|
entity,
|
|
11776
11814
|
scale = 0.45,
|
|
11777
11815
|
unitScale = 1,
|
|
11778
|
-
tiles,
|
|
11779
|
-
units,
|
|
11780
|
-
features,
|
|
11781
|
-
assetManifest,
|
|
11816
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
11817
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
11818
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
11819
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
11782
11820
|
className
|
|
11783
11821
|
}) {
|
|
11784
11822
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -11804,9 +11842,62 @@ function BattleTemplate({
|
|
|
11804
11842
|
}
|
|
11805
11843
|
);
|
|
11806
11844
|
}
|
|
11845
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
11807
11846
|
var init_BattleTemplate = __esm({
|
|
11808
11847
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
11809
11848
|
init_BattleBoard();
|
|
11849
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
11850
|
+
DEFAULT_BATTLE_TILES = [
|
|
11851
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11852
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11853
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11854
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11855
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11856
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11857
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11858
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11859
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11860
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11861
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11862
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11863
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11864
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11865
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11866
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11867
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11868
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
11869
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
11870
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11871
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11872
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11873
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11874
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
11875
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
11876
|
+
];
|
|
11877
|
+
DEFAULT_BATTLE_UNITS = [
|
|
11878
|
+
{ 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` },
|
|
11879
|
+
{ 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` }
|
|
11880
|
+
];
|
|
11881
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
11882
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
11883
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
11884
|
+
];
|
|
11885
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
11886
|
+
baseUrl: CDN,
|
|
11887
|
+
terrains: {
|
|
11888
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
11889
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
11890
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
11891
|
+
},
|
|
11892
|
+
units: {
|
|
11893
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
11894
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
11895
|
+
},
|
|
11896
|
+
features: {
|
|
11897
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
11898
|
+
portal: "/world-map/portal_open.png"
|
|
11899
|
+
}
|
|
11900
|
+
};
|
|
11810
11901
|
BattleTemplate.displayName = "BattleTemplate";
|
|
11811
11902
|
}
|
|
11812
11903
|
});
|
|
@@ -19806,10 +19897,10 @@ var init_CastleBoard = __esm({
|
|
|
19806
19897
|
function CastleTemplate({
|
|
19807
19898
|
entity,
|
|
19808
19899
|
scale = 0.45,
|
|
19809
|
-
tiles,
|
|
19810
|
-
units,
|
|
19811
|
-
features,
|
|
19812
|
-
assetManifest,
|
|
19900
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
19901
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
19902
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
19903
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
19813
19904
|
className
|
|
19814
19905
|
}) {
|
|
19815
19906
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -19830,9 +19921,61 @@ function CastleTemplate({
|
|
|
19830
19921
|
}
|
|
19831
19922
|
);
|
|
19832
19923
|
}
|
|
19924
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
19833
19925
|
var init_CastleTemplate = __esm({
|
|
19834
19926
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
19835
19927
|
init_CastleBoard();
|
|
19928
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
19929
|
+
DEFAULT_CASTLE_TILES = [
|
|
19930
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19931
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19932
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19933
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19934
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19935
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19936
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19937
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19938
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19939
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19940
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19941
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19942
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
19943
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19944
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19945
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19946
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19947
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19948
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
19949
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19950
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19951
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19952
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19953
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
19954
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
19955
|
+
];
|
|
19956
|
+
DEFAULT_CASTLE_UNITS = [
|
|
19957
|
+
{ 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` },
|
|
19958
|
+
{ 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` }
|
|
19959
|
+
];
|
|
19960
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
19961
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
19962
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
19963
|
+
];
|
|
19964
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
19965
|
+
baseUrl: CDN2,
|
|
19966
|
+
terrains: {
|
|
19967
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
19968
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
19969
|
+
},
|
|
19970
|
+
units: {
|
|
19971
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
19972
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
19973
|
+
},
|
|
19974
|
+
features: {
|
|
19975
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
19976
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
19977
|
+
}
|
|
19978
|
+
};
|
|
19836
19979
|
CastleTemplate.displayName = "CastleTemplate";
|
|
19837
19980
|
}
|
|
19838
19981
|
});
|
|
@@ -20954,7 +21097,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
20954
21097
|
}
|
|
20955
21098
|
});
|
|
20956
21099
|
function CombatLog({
|
|
20957
|
-
events: events2,
|
|
21100
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
20958
21101
|
maxVisible = 50,
|
|
20959
21102
|
autoScroll = true,
|
|
20960
21103
|
showTimestamps = false,
|
|
@@ -21005,7 +21148,7 @@ function CombatLog({
|
|
|
21005
21148
|
}) }) })
|
|
21006
21149
|
] });
|
|
21007
21150
|
}
|
|
21008
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
21151
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
21009
21152
|
var init_CombatLog = __esm({
|
|
21010
21153
|
"components/game/molecules/CombatLog.tsx"() {
|
|
21011
21154
|
init_atoms2();
|
|
@@ -21037,6 +21180,13 @@ var init_CombatLog = __esm({
|
|
|
21037
21180
|
death: "secondary",
|
|
21038
21181
|
spawn: "secondary"
|
|
21039
21182
|
};
|
|
21183
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
21184
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
21185
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
21186
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
21187
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
21188
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
21189
|
+
];
|
|
21040
21190
|
CombatLog.displayName = "CombatLog";
|
|
21041
21191
|
}
|
|
21042
21192
|
});
|
|
@@ -21444,9 +21594,9 @@ function isValidRarity(value) {
|
|
|
21444
21594
|
return rarityValues.includes(value);
|
|
21445
21595
|
}
|
|
21446
21596
|
function CraftingRecipe({
|
|
21447
|
-
inputs,
|
|
21448
|
-
output,
|
|
21449
|
-
canCraft =
|
|
21597
|
+
inputs = DEFAULT_INPUTS,
|
|
21598
|
+
output = DEFAULT_OUTPUT,
|
|
21599
|
+
canCraft = true,
|
|
21450
21600
|
onCraft,
|
|
21451
21601
|
craftEvent,
|
|
21452
21602
|
className
|
|
@@ -21507,7 +21657,7 @@ function CraftingRecipe({
|
|
|
21507
21657
|
}
|
|
21508
21658
|
);
|
|
21509
21659
|
}
|
|
21510
|
-
var rarityValues;
|
|
21660
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
21511
21661
|
var init_CraftingRecipe = __esm({
|
|
21512
21662
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
21513
21663
|
"use client";
|
|
@@ -21519,6 +21669,15 @@ var init_CraftingRecipe = __esm({
|
|
|
21519
21669
|
init_Stack();
|
|
21520
21670
|
init_Icon();
|
|
21521
21671
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
21672
|
+
DEFAULT_INPUTS = [
|
|
21673
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
21674
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
21675
|
+
];
|
|
21676
|
+
DEFAULT_OUTPUT = {
|
|
21677
|
+
icon: "sword",
|
|
21678
|
+
label: "Iron Sword",
|
|
21679
|
+
rarity: "uncommon"
|
|
21680
|
+
};
|
|
21522
21681
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
21523
21682
|
}
|
|
21524
21683
|
});
|
|
@@ -26515,10 +26674,10 @@ var init_StatBadge = __esm({
|
|
|
26515
26674
|
}
|
|
26516
26675
|
});
|
|
26517
26676
|
function InventoryGrid({
|
|
26518
|
-
items,
|
|
26677
|
+
items = DEFAULT_GRID_ITEMS,
|
|
26519
26678
|
columns = 4,
|
|
26520
|
-
totalSlots,
|
|
26521
|
-
selectedId,
|
|
26679
|
+
totalSlots = 12,
|
|
26680
|
+
selectedId = "",
|
|
26522
26681
|
onSelect,
|
|
26523
26682
|
selectEvent,
|
|
26524
26683
|
size = "md",
|
|
@@ -26567,7 +26726,7 @@ function InventoryGrid({
|
|
|
26567
26726
|
}
|
|
26568
26727
|
);
|
|
26569
26728
|
}
|
|
26570
|
-
var columnMap;
|
|
26729
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
26571
26730
|
var init_InventoryGrid = __esm({
|
|
26572
26731
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
26573
26732
|
"use client";
|
|
@@ -26584,12 +26743,18 @@ var init_InventoryGrid = __esm({
|
|
|
26584
26743
|
7: "grid-cols-7",
|
|
26585
26744
|
8: "grid-cols-8"
|
|
26586
26745
|
};
|
|
26746
|
+
DEFAULT_GRID_ITEMS = [
|
|
26747
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
26748
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
26749
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
26750
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
26751
|
+
];
|
|
26587
26752
|
InventoryGrid.displayName = "InventoryGrid";
|
|
26588
26753
|
}
|
|
26589
26754
|
});
|
|
26590
26755
|
function QuestTracker({
|
|
26591
|
-
quests,
|
|
26592
|
-
activeQuestId,
|
|
26756
|
+
quests = DEFAULT_QUESTS,
|
|
26757
|
+
activeQuestId = "q2",
|
|
26593
26758
|
className
|
|
26594
26759
|
}) {
|
|
26595
26760
|
return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -26655,6 +26820,7 @@ function QuestTracker({
|
|
|
26655
26820
|
);
|
|
26656
26821
|
}) });
|
|
26657
26822
|
}
|
|
26823
|
+
var DEFAULT_QUESTS;
|
|
26658
26824
|
var init_QuestTracker = __esm({
|
|
26659
26825
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
26660
26826
|
"use client";
|
|
@@ -26664,6 +26830,11 @@ var init_QuestTracker = __esm({
|
|
|
26664
26830
|
init_Typography();
|
|
26665
26831
|
init_Box();
|
|
26666
26832
|
init_Stack();
|
|
26833
|
+
DEFAULT_QUESTS = [
|
|
26834
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
26835
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
26836
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
26837
|
+
];
|
|
26667
26838
|
QuestTracker.displayName = "QuestTracker";
|
|
26668
26839
|
}
|
|
26669
26840
|
});
|
|
@@ -26676,7 +26847,7 @@ function formatTime2(seconds) {
|
|
|
26676
26847
|
return `${seconds}s`;
|
|
26677
26848
|
}
|
|
26678
26849
|
function PowerupSlots({
|
|
26679
|
-
active,
|
|
26850
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
26680
26851
|
maxSlots = 4,
|
|
26681
26852
|
className
|
|
26682
26853
|
}) {
|
|
@@ -26721,6 +26892,7 @@ function PowerupSlots({
|
|
|
26721
26892
|
))
|
|
26722
26893
|
] });
|
|
26723
26894
|
}
|
|
26895
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
26724
26896
|
var init_PowerupSlots = __esm({
|
|
26725
26897
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
26726
26898
|
"use client";
|
|
@@ -26729,6 +26901,10 @@ var init_PowerupSlots = __esm({
|
|
|
26729
26901
|
init_Box();
|
|
26730
26902
|
init_Stack();
|
|
26731
26903
|
init_Typography();
|
|
26904
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
26905
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
26906
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
26907
|
+
];
|
|
26732
26908
|
PowerupSlots.displayName = "PowerupSlots";
|
|
26733
26909
|
}
|
|
26734
26910
|
});
|
|
@@ -26740,7 +26916,7 @@ function GameCanvas2D({
|
|
|
26740
26916
|
tickEvent,
|
|
26741
26917
|
drawEvent,
|
|
26742
26918
|
fps = 60,
|
|
26743
|
-
backgroundImage = "
|
|
26919
|
+
backgroundImage = "",
|
|
26744
26920
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
26745
26921
|
className
|
|
26746
26922
|
}) {
|
|
@@ -26844,10 +27020,10 @@ var init_GameCanvas2D = __esm({
|
|
|
26844
27020
|
}
|
|
26845
27021
|
});
|
|
26846
27022
|
function HealthPanel({
|
|
26847
|
-
current,
|
|
26848
|
-
max,
|
|
26849
|
-
shield,
|
|
26850
|
-
label,
|
|
27023
|
+
current = 75,
|
|
27024
|
+
max = 100,
|
|
27025
|
+
shield = 20,
|
|
27026
|
+
label = "Player HP",
|
|
26851
27027
|
effects,
|
|
26852
27028
|
showNumbers = true,
|
|
26853
27029
|
size = "md",
|
|
@@ -26965,11 +27141,11 @@ var init_HealthPanel = __esm({
|
|
|
26965
27141
|
}
|
|
26966
27142
|
});
|
|
26967
27143
|
function ScoreBoard({
|
|
26968
|
-
score: rawScore,
|
|
26969
|
-
highScore: rawHighScore,
|
|
26970
|
-
combo: rawCombo,
|
|
26971
|
-
multiplier: rawMultiplier,
|
|
26972
|
-
level: rawLevel,
|
|
27144
|
+
score: rawScore = 4200,
|
|
27145
|
+
highScore: rawHighScore = 8750,
|
|
27146
|
+
combo: rawCombo = 3,
|
|
27147
|
+
multiplier: rawMultiplier = 2,
|
|
27148
|
+
level: rawLevel = 4,
|
|
26973
27149
|
className
|
|
26974
27150
|
}) {
|
|
26975
27151
|
const score = rawScore ?? 0;
|
|
@@ -27042,7 +27218,7 @@ var init_ScoreBoard = __esm({
|
|
|
27042
27218
|
}
|
|
27043
27219
|
});
|
|
27044
27220
|
function ResourceBar({
|
|
27045
|
-
resources,
|
|
27221
|
+
resources = DEFAULT_RESOURCES,
|
|
27046
27222
|
size = "md",
|
|
27047
27223
|
className
|
|
27048
27224
|
}) {
|
|
@@ -27068,21 +27244,27 @@ function ResourceBar({
|
|
|
27068
27244
|
}
|
|
27069
27245
|
);
|
|
27070
27246
|
}
|
|
27247
|
+
var DEFAULT_RESOURCES;
|
|
27071
27248
|
var init_ResourceBar = __esm({
|
|
27072
27249
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
27073
27250
|
"use client";
|
|
27074
27251
|
init_cn();
|
|
27075
27252
|
init_StatBadge();
|
|
27076
27253
|
init_Box();
|
|
27254
|
+
DEFAULT_RESOURCES = [
|
|
27255
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
27256
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
27257
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
27258
|
+
];
|
|
27077
27259
|
ResourceBar.displayName = "ResourceBar";
|
|
27078
27260
|
}
|
|
27079
27261
|
});
|
|
27080
27262
|
function TurnPanel({
|
|
27081
|
-
currentTurn,
|
|
27082
|
-
maxTurns,
|
|
27083
|
-
phase,
|
|
27084
|
-
activeTeam,
|
|
27085
|
-
actions,
|
|
27263
|
+
currentTurn = 3,
|
|
27264
|
+
maxTurns = 10,
|
|
27265
|
+
phase = "Attack",
|
|
27266
|
+
activeTeam = "Heroes",
|
|
27267
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
27086
27268
|
className
|
|
27087
27269
|
}) {
|
|
27088
27270
|
const eventBus = useEventBus();
|
|
@@ -27127,6 +27309,7 @@ function TurnPanel({
|
|
|
27127
27309
|
}
|
|
27128
27310
|
);
|
|
27129
27311
|
}
|
|
27312
|
+
var DEFAULT_TURN_ACTIONS;
|
|
27130
27313
|
var init_TurnPanel = __esm({
|
|
27131
27314
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
27132
27315
|
"use client";
|
|
@@ -27135,15 +27318,19 @@ var init_TurnPanel = __esm({
|
|
|
27135
27318
|
init_Button();
|
|
27136
27319
|
init_Box();
|
|
27137
27320
|
init_useEventBus();
|
|
27321
|
+
DEFAULT_TURN_ACTIONS = [
|
|
27322
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
27323
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
27324
|
+
];
|
|
27138
27325
|
TurnPanel.displayName = "TurnPanel";
|
|
27139
27326
|
}
|
|
27140
27327
|
});
|
|
27141
27328
|
function EnemyPlate({
|
|
27142
|
-
name,
|
|
27143
|
-
health,
|
|
27144
|
-
maxHealth,
|
|
27145
|
-
level,
|
|
27146
|
-
effects,
|
|
27329
|
+
name = "Shadow Guard",
|
|
27330
|
+
health = 80,
|
|
27331
|
+
maxHealth = 100,
|
|
27332
|
+
level = 5,
|
|
27333
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
27147
27334
|
className
|
|
27148
27335
|
}) {
|
|
27149
27336
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -27209,7 +27396,7 @@ function EnemyPlate({
|
|
|
27209
27396
|
}
|
|
27210
27397
|
);
|
|
27211
27398
|
}
|
|
27212
|
-
var effectVariantMap2;
|
|
27399
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
27213
27400
|
var init_EnemyPlate = __esm({
|
|
27214
27401
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
27215
27402
|
"use client";
|
|
@@ -27223,12 +27410,15 @@ var init_EnemyPlate = __esm({
|
|
|
27223
27410
|
debuff: "danger",
|
|
27224
27411
|
neutral: "neutral"
|
|
27225
27412
|
};
|
|
27413
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
27414
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
27415
|
+
];
|
|
27226
27416
|
EnemyPlate.displayName = "EnemyPlate";
|
|
27227
27417
|
}
|
|
27228
27418
|
});
|
|
27229
27419
|
function UnitCommandBar({
|
|
27230
|
-
commands,
|
|
27231
|
-
selectedUnitId,
|
|
27420
|
+
commands = DEFAULT_COMMANDS,
|
|
27421
|
+
selectedUnitId = "unit-1",
|
|
27232
27422
|
className
|
|
27233
27423
|
}) {
|
|
27234
27424
|
const eventBus = useEventBus();
|
|
@@ -27271,6 +27461,7 @@ function UnitCommandBar({
|
|
|
27271
27461
|
}
|
|
27272
27462
|
);
|
|
27273
27463
|
}
|
|
27464
|
+
var DEFAULT_COMMANDS;
|
|
27274
27465
|
var init_UnitCommandBar = __esm({
|
|
27275
27466
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
27276
27467
|
"use client";
|
|
@@ -27279,6 +27470,12 @@ var init_UnitCommandBar = __esm({
|
|
|
27279
27470
|
init_Box();
|
|
27280
27471
|
init_Typography();
|
|
27281
27472
|
init_useEventBus();
|
|
27473
|
+
DEFAULT_COMMANDS = [
|
|
27474
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
27475
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
27476
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
27477
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
27478
|
+
];
|
|
27282
27479
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
27283
27480
|
}
|
|
27284
27481
|
});
|
|
@@ -27312,7 +27509,7 @@ function GameHud({
|
|
|
27312
27509
|
className,
|
|
27313
27510
|
transparent = true
|
|
27314
27511
|
}) {
|
|
27315
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
27512
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
27316
27513
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
27317
27514
|
const position = propPosition ?? "corners";
|
|
27318
27515
|
if (position === "corners") {
|
|
@@ -27337,7 +27534,7 @@ function GameHud({
|
|
|
27337
27534
|
}
|
|
27338
27535
|
);
|
|
27339
27536
|
}
|
|
27340
|
-
var positionMap;
|
|
27537
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
27341
27538
|
var init_GameHud = __esm({
|
|
27342
27539
|
"components/game/molecules/GameHud.tsx"() {
|
|
27343
27540
|
init_cn();
|
|
@@ -27347,11 +27544,17 @@ var init_GameHud = __esm({
|
|
|
27347
27544
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
27348
27545
|
corners: "inset-0 pointer-events-none"
|
|
27349
27546
|
};
|
|
27547
|
+
DEFAULT_HUD_STATS = [
|
|
27548
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
27549
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
27550
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
27551
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
27552
|
+
];
|
|
27350
27553
|
GameHud.displayName = "GameHud";
|
|
27351
27554
|
}
|
|
27352
27555
|
});
|
|
27353
27556
|
function DialogueBox({
|
|
27354
|
-
dialogue,
|
|
27557
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
27355
27558
|
typewriterSpeed = 30,
|
|
27356
27559
|
position = "bottom",
|
|
27357
27560
|
onComplete,
|
|
@@ -27534,17 +27737,27 @@ function DialogueBox({
|
|
|
27534
27737
|
}
|
|
27535
27738
|
);
|
|
27536
27739
|
}
|
|
27740
|
+
var DEFAULT_DIALOGUE;
|
|
27537
27741
|
var init_DialogueBox = __esm({
|
|
27538
27742
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
27539
27743
|
"use client";
|
|
27540
27744
|
init_cn();
|
|
27541
27745
|
init_useEventBus();
|
|
27746
|
+
DEFAULT_DIALOGUE = {
|
|
27747
|
+
speaker: "Village Elder",
|
|
27748
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
27749
|
+
choices: [
|
|
27750
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
27751
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
27752
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
27753
|
+
]
|
|
27754
|
+
};
|
|
27542
27755
|
}
|
|
27543
27756
|
});
|
|
27544
27757
|
function InventoryPanel({
|
|
27545
|
-
items,
|
|
27546
|
-
slots,
|
|
27547
|
-
columns,
|
|
27758
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
27759
|
+
slots = 12,
|
|
27760
|
+
columns = 4,
|
|
27548
27761
|
selectedSlot,
|
|
27549
27762
|
onSelectSlot,
|
|
27550
27763
|
onUseItem,
|
|
@@ -27692,25 +27905,31 @@ function InventoryPanel({
|
|
|
27692
27905
|
)
|
|
27693
27906
|
] });
|
|
27694
27907
|
}
|
|
27908
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
27695
27909
|
var init_InventoryPanel = __esm({
|
|
27696
27910
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
27697
27911
|
"use client";
|
|
27698
27912
|
init_cn();
|
|
27699
27913
|
init_useEventBus();
|
|
27914
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
27915
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
27916
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
27917
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
27918
|
+
];
|
|
27700
27919
|
}
|
|
27701
27920
|
});
|
|
27702
27921
|
function GameMenu({
|
|
27703
|
-
title,
|
|
27922
|
+
title = "Epic Quest",
|
|
27704
27923
|
subtitle,
|
|
27705
27924
|
options,
|
|
27706
27925
|
menuItems,
|
|
27707
27926
|
onSelect,
|
|
27708
27927
|
eventBus: eventBusProp,
|
|
27709
27928
|
background,
|
|
27710
|
-
logo,
|
|
27929
|
+
logo = "",
|
|
27711
27930
|
className
|
|
27712
27931
|
}) {
|
|
27713
|
-
const resolvedOptions = options ?? menuItems ??
|
|
27932
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
27714
27933
|
let eventBusFromHook = null;
|
|
27715
27934
|
try {
|
|
27716
27935
|
eventBusFromHook = useEventBus();
|
|
@@ -27791,7 +28010,7 @@ function GameMenu({
|
|
|
27791
28010
|
}
|
|
27792
28011
|
);
|
|
27793
28012
|
}
|
|
27794
|
-
var variantMap3;
|
|
28013
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
27795
28014
|
var init_GameMenu = __esm({
|
|
27796
28015
|
"components/game/molecules/GameMenu.tsx"() {
|
|
27797
28016
|
"use client";
|
|
@@ -27802,6 +28021,11 @@ var init_GameMenu = __esm({
|
|
|
27802
28021
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27803
28022
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27804
28023
|
};
|
|
28024
|
+
DEFAULT_MENU_OPTIONS = [
|
|
28025
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
28026
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
28027
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
28028
|
+
];
|
|
27805
28029
|
GameMenu.displayName = "GameMenu";
|
|
27806
28030
|
}
|
|
27807
28031
|
});
|
|
@@ -27812,19 +28036,19 @@ function formatTime3(ms) {
|
|
|
27812
28036
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
27813
28037
|
}
|
|
27814
28038
|
function GameOverScreen({
|
|
27815
|
-
title,
|
|
28039
|
+
title = "Game Over",
|
|
27816
28040
|
message,
|
|
27817
|
-
stats =
|
|
28041
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
27818
28042
|
actions,
|
|
27819
28043
|
menuItems,
|
|
27820
28044
|
onAction,
|
|
27821
28045
|
eventBus: eventBusProp,
|
|
27822
|
-
variant = "
|
|
27823
|
-
highScore,
|
|
27824
|
-
currentScore,
|
|
28046
|
+
variant = "defeat",
|
|
28047
|
+
highScore = 2e3,
|
|
28048
|
+
currentScore = 1240,
|
|
27825
28049
|
className
|
|
27826
28050
|
}) {
|
|
27827
|
-
const resolvedActions = actions ?? menuItems ??
|
|
28051
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
27828
28052
|
let eventBusFromHook = null;
|
|
27829
28053
|
try {
|
|
27830
28054
|
eventBusFromHook = useEventBus();
|
|
@@ -27911,7 +28135,7 @@ function GameOverScreen({
|
|
|
27911
28135
|
}
|
|
27912
28136
|
);
|
|
27913
28137
|
}
|
|
27914
|
-
var variantColors, buttonVariants;
|
|
28138
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
27915
28139
|
var init_GameOverScreen = __esm({
|
|
27916
28140
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
27917
28141
|
"use client";
|
|
@@ -27940,21 +28164,35 @@ var init_GameOverScreen = __esm({
|
|
|
27940
28164
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
27941
28165
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
27942
28166
|
};
|
|
28167
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
28168
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
28169
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
28170
|
+
];
|
|
28171
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
28172
|
+
{ label: "Score", value: 1240 },
|
|
28173
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
28174
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
28175
|
+
];
|
|
27943
28176
|
GameOverScreen.displayName = "GameOverScreen";
|
|
27944
28177
|
}
|
|
27945
28178
|
});
|
|
27946
28179
|
function PlatformerCanvas({
|
|
27947
28180
|
player,
|
|
27948
|
-
platforms = [
|
|
28181
|
+
platforms = [
|
|
28182
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
28183
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
28184
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
28185
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
28186
|
+
],
|
|
27949
28187
|
worldWidth = 800,
|
|
27950
28188
|
worldHeight = 400,
|
|
27951
28189
|
canvasWidth = 800,
|
|
27952
28190
|
canvasHeight = 400,
|
|
27953
28191
|
followCamera = true,
|
|
27954
|
-
bgColor,
|
|
28192
|
+
bgColor = "#5c94fc",
|
|
27955
28193
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
27956
28194
|
tileSprites,
|
|
27957
|
-
backgroundImage = "
|
|
28195
|
+
backgroundImage = "",
|
|
27958
28196
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
27959
28197
|
leftEvent = "MOVE_LEFT",
|
|
27960
28198
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -28002,10 +28240,10 @@ function PlatformerCanvas({
|
|
|
28002
28240
|
};
|
|
28003
28241
|
}, []);
|
|
28004
28242
|
const resolvedPlayer = player ?? {
|
|
28005
|
-
x:
|
|
28006
|
-
y:
|
|
28007
|
-
width:
|
|
28008
|
-
height:
|
|
28243
|
+
x: 80,
|
|
28244
|
+
y: 336,
|
|
28245
|
+
width: 32,
|
|
28246
|
+
height: 48,
|
|
28009
28247
|
facingRight: true
|
|
28010
28248
|
};
|
|
28011
28249
|
const handleKeyDown = React82.useCallback((e) => {
|
|
@@ -46703,12 +46941,12 @@ function WorldMapTemplate({
|
|
|
46703
46941
|
entity,
|
|
46704
46942
|
scale = 0.4,
|
|
46705
46943
|
unitScale = 2.5,
|
|
46706
|
-
diamondTopY,
|
|
46944
|
+
diamondTopY = 374,
|
|
46707
46945
|
allowMoveAllHeroes = false,
|
|
46708
|
-
tiles,
|
|
46709
|
-
units,
|
|
46710
|
-
features,
|
|
46711
|
-
assetManifest,
|
|
46946
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
46947
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
46948
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
46949
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
46712
46950
|
className
|
|
46713
46951
|
}) {
|
|
46714
46952
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -46731,9 +46969,63 @@ function WorldMapTemplate({
|
|
|
46731
46969
|
}
|
|
46732
46970
|
);
|
|
46733
46971
|
}
|
|
46972
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
46734
46973
|
var init_WorldMapTemplate = __esm({
|
|
46735
46974
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
46736
46975
|
init_WorldMapBoard();
|
|
46976
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
46977
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
46978
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46979
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46980
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46981
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46982
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46983
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46984
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46985
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46986
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46987
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46988
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
46989
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46990
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
46991
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46992
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46993
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46994
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46995
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
46996
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
46997
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46998
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
46999
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47000
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47001
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47002
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
47003
|
+
];
|
|
47004
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
47005
|
+
{ 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` },
|
|
47006
|
+
{ 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` }
|
|
47007
|
+
];
|
|
47008
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
47009
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
47010
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
47011
|
+
];
|
|
47012
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
47013
|
+
baseUrl: CDN3,
|
|
47014
|
+
terrains: {
|
|
47015
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
47016
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
47017
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
47018
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
47019
|
+
},
|
|
47020
|
+
units: {
|
|
47021
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
47022
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
47023
|
+
},
|
|
47024
|
+
features: {
|
|
47025
|
+
capital: "/scenes/world/capital.png",
|
|
47026
|
+
power_node: "/world-map/power_node.png"
|
|
47027
|
+
}
|
|
47028
|
+
};
|
|
46737
47029
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
46738
47030
|
}
|
|
46739
47031
|
});
|