@almadar/ui 5.39.0 → 5.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +405 -113
- package/dist/avl/index.js +405 -113
- package/dist/components/game/atoms/ItemSlot.d.ts +5 -2
- package/dist/components/game/molecules/DialogueBox.d.ts +0 -21
- package/dist/components/game/molecules/InventoryPanel.d.ts +0 -16
- package/dist/components/index.cjs +405 -113
- package/dist/components/index.js +405 -113
- package/dist/providers/index.cjs +405 -113
- package/dist/providers/index.js +405 -113
- package/dist/runtime/index.cjs +405 -113
- package/dist/runtime/index.js +405 -113
- package/package.json +1 -1
package/dist/providers/index.js
CHANGED
|
@@ -7043,8 +7043,8 @@ var init_TraitFrame = __esm({
|
|
|
7043
7043
|
}
|
|
7044
7044
|
});
|
|
7045
7045
|
function HealthBar({
|
|
7046
|
-
current,
|
|
7047
|
-
max,
|
|
7046
|
+
current = 3,
|
|
7047
|
+
max = 5,
|
|
7048
7048
|
format = "hearts",
|
|
7049
7049
|
size = "md",
|
|
7050
7050
|
className,
|
|
@@ -7293,11 +7293,11 @@ var init_ControlButton = __esm({
|
|
|
7293
7293
|
});
|
|
7294
7294
|
function Sprite({
|
|
7295
7295
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
7296
|
-
frameWidth,
|
|
7297
|
-
frameHeight,
|
|
7298
|
-
frame,
|
|
7299
|
-
x,
|
|
7300
|
-
y,
|
|
7296
|
+
frameWidth = 64,
|
|
7297
|
+
frameHeight = 64,
|
|
7298
|
+
frame = 0,
|
|
7299
|
+
x = 0,
|
|
7300
|
+
y = 0,
|
|
7301
7301
|
scale = 1,
|
|
7302
7302
|
flipX = false,
|
|
7303
7303
|
flipY = false,
|
|
@@ -7367,7 +7367,7 @@ var init_Sprite = __esm({
|
|
|
7367
7367
|
}
|
|
7368
7368
|
});
|
|
7369
7369
|
function StateIndicator({
|
|
7370
|
-
state,
|
|
7370
|
+
state = "idle",
|
|
7371
7371
|
label,
|
|
7372
7372
|
size = "md",
|
|
7373
7373
|
animated = true,
|
|
@@ -7438,8 +7438,8 @@ function formatTime(seconds, format) {
|
|
|
7438
7438
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
7439
7439
|
}
|
|
7440
7440
|
function TimerDisplay({
|
|
7441
|
-
seconds,
|
|
7442
|
-
running,
|
|
7441
|
+
seconds = 90,
|
|
7442
|
+
running = true,
|
|
7443
7443
|
format = "mm:ss",
|
|
7444
7444
|
size = "md",
|
|
7445
7445
|
className,
|
|
@@ -7476,8 +7476,8 @@ var init_TimerDisplay = __esm({
|
|
|
7476
7476
|
});
|
|
7477
7477
|
function ResourceCounter({
|
|
7478
7478
|
icon,
|
|
7479
|
-
label,
|
|
7480
|
-
value,
|
|
7479
|
+
label = "Gold",
|
|
7480
|
+
value = 250,
|
|
7481
7481
|
max,
|
|
7482
7482
|
color,
|
|
7483
7483
|
size = "md",
|
|
@@ -7529,10 +7529,11 @@ var init_ResourceCounter = __esm({
|
|
|
7529
7529
|
}
|
|
7530
7530
|
});
|
|
7531
7531
|
function ItemSlot({
|
|
7532
|
-
|
|
7533
|
-
|
|
7532
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
7533
|
+
icon = "sword",
|
|
7534
|
+
label = "Iron Sword",
|
|
7534
7535
|
quantity,
|
|
7535
|
-
rarity = "
|
|
7536
|
+
rarity = "uncommon",
|
|
7536
7537
|
empty,
|
|
7537
7538
|
size = "md",
|
|
7538
7539
|
selected,
|
|
@@ -7540,6 +7541,7 @@ function ItemSlot({
|
|
|
7540
7541
|
className
|
|
7541
7542
|
}) {
|
|
7542
7543
|
const isClickable = onClick != null;
|
|
7544
|
+
const px = assetSizeMap[size];
|
|
7543
7545
|
return /* @__PURE__ */ jsx(
|
|
7544
7546
|
"button",
|
|
7545
7547
|
{
|
|
@@ -7560,7 +7562,17 @@ function ItemSlot({
|
|
|
7560
7562
|
className
|
|
7561
7563
|
),
|
|
7562
7564
|
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7563
|
-
|
|
7565
|
+
assetUrl ? /* @__PURE__ */ jsx(
|
|
7566
|
+
"img",
|
|
7567
|
+
{
|
|
7568
|
+
src: assetUrl,
|
|
7569
|
+
alt: label,
|
|
7570
|
+
width: px,
|
|
7571
|
+
height: px,
|
|
7572
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
7573
|
+
className: "flex-shrink-0"
|
|
7574
|
+
}
|
|
7575
|
+
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
7564
7576
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
7565
7577
|
"span",
|
|
7566
7578
|
{
|
|
@@ -7576,7 +7588,7 @@ function ItemSlot({
|
|
|
7576
7588
|
}
|
|
7577
7589
|
);
|
|
7578
7590
|
}
|
|
7579
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
7591
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
7580
7592
|
var init_ItemSlot = __esm({
|
|
7581
7593
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
7582
7594
|
"use client";
|
|
@@ -7601,11 +7613,17 @@ var init_ItemSlot = __esm({
|
|
|
7601
7613
|
epic: "shadow-lg",
|
|
7602
7614
|
legendary: "shadow-lg"
|
|
7603
7615
|
};
|
|
7616
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
7617
|
+
assetSizeMap = {
|
|
7618
|
+
sm: 28,
|
|
7619
|
+
md: 40,
|
|
7620
|
+
lg: 56
|
|
7621
|
+
};
|
|
7604
7622
|
ItemSlot.displayName = "ItemSlot";
|
|
7605
7623
|
}
|
|
7606
7624
|
});
|
|
7607
7625
|
function TurnIndicator({
|
|
7608
|
-
currentTurn,
|
|
7626
|
+
currentTurn = 1,
|
|
7609
7627
|
maxTurns,
|
|
7610
7628
|
activeTeam,
|
|
7611
7629
|
phase,
|
|
@@ -7668,7 +7686,7 @@ function getComboScale(combo) {
|
|
|
7668
7686
|
return "";
|
|
7669
7687
|
}
|
|
7670
7688
|
function ComboCounter({
|
|
7671
|
-
combo,
|
|
7689
|
+
combo = 5,
|
|
7672
7690
|
multiplier,
|
|
7673
7691
|
streak,
|
|
7674
7692
|
size = "md",
|
|
@@ -7714,10 +7732,10 @@ var init_ComboCounter = __esm({
|
|
|
7714
7732
|
}
|
|
7715
7733
|
});
|
|
7716
7734
|
function XPBar({
|
|
7717
|
-
current,
|
|
7718
|
-
max,
|
|
7719
|
-
level,
|
|
7720
|
-
showLabel =
|
|
7735
|
+
current = 350,
|
|
7736
|
+
max = 1e3,
|
|
7737
|
+
level = 5,
|
|
7738
|
+
showLabel = true,
|
|
7721
7739
|
size = "md",
|
|
7722
7740
|
animated = true,
|
|
7723
7741
|
className
|
|
@@ -7800,7 +7818,7 @@ var init_XPBar = __esm({
|
|
|
7800
7818
|
function WaypointMarker({
|
|
7801
7819
|
label,
|
|
7802
7820
|
icon,
|
|
7803
|
-
active =
|
|
7821
|
+
active = true,
|
|
7804
7822
|
completed = false,
|
|
7805
7823
|
size = "md",
|
|
7806
7824
|
className
|
|
@@ -7874,11 +7892,11 @@ function formatDuration(seconds) {
|
|
|
7874
7892
|
return `${Math.round(seconds)}s`;
|
|
7875
7893
|
}
|
|
7876
7894
|
function StatusEffect({
|
|
7877
|
-
icon,
|
|
7878
|
-
label,
|
|
7879
|
-
duration,
|
|
7895
|
+
icon = "shield",
|
|
7896
|
+
label = "Shield",
|
|
7897
|
+
duration = 30,
|
|
7880
7898
|
stacks,
|
|
7881
|
-
variant = "
|
|
7899
|
+
variant = "buff",
|
|
7882
7900
|
size = "md",
|
|
7883
7901
|
className
|
|
7884
7902
|
}) {
|
|
@@ -7940,7 +7958,7 @@ var init_StatusEffect = __esm({
|
|
|
7940
7958
|
}
|
|
7941
7959
|
});
|
|
7942
7960
|
function DamageNumber({
|
|
7943
|
-
value,
|
|
7961
|
+
value = 42,
|
|
7944
7962
|
type = "damage",
|
|
7945
7963
|
size = "md",
|
|
7946
7964
|
className
|
|
@@ -7989,8 +8007,8 @@ var init_DamageNumber = __esm({
|
|
|
7989
8007
|
}
|
|
7990
8008
|
});
|
|
7991
8009
|
function DialogueBubble({
|
|
7992
|
-
speaker,
|
|
7993
|
-
text,
|
|
8010
|
+
speaker = "Hero",
|
|
8011
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
7994
8012
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
7995
8013
|
position = "bottom",
|
|
7996
8014
|
className
|
|
@@ -8027,7 +8045,7 @@ var init_DialogueBubble = __esm({
|
|
|
8027
8045
|
}
|
|
8028
8046
|
});
|
|
8029
8047
|
function ChoiceButton({
|
|
8030
|
-
text,
|
|
8048
|
+
text = "Charge forward into the fray",
|
|
8031
8049
|
index,
|
|
8032
8050
|
disabled = false,
|
|
8033
8051
|
selected = false,
|
|
@@ -8073,7 +8091,7 @@ var init_ChoiceButton = __esm({
|
|
|
8073
8091
|
}
|
|
8074
8092
|
});
|
|
8075
8093
|
function ActionButton({
|
|
8076
|
-
label,
|
|
8094
|
+
label = "Attack",
|
|
8077
8095
|
icon,
|
|
8078
8096
|
cooldown = 0,
|
|
8079
8097
|
disabled = false,
|
|
@@ -8153,13 +8171,13 @@ var init_ActionButton = __esm({
|
|
|
8153
8171
|
}
|
|
8154
8172
|
});
|
|
8155
8173
|
function MiniMap({
|
|
8156
|
-
tiles =
|
|
8157
|
-
units =
|
|
8174
|
+
tiles = DEFAULT_TILES,
|
|
8175
|
+
units = DEFAULT_UNITS,
|
|
8158
8176
|
width = 150,
|
|
8159
8177
|
height = 150,
|
|
8160
8178
|
mapWidth = 100,
|
|
8161
8179
|
mapHeight = 100,
|
|
8162
|
-
viewportRect,
|
|
8180
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
8163
8181
|
className
|
|
8164
8182
|
}) {
|
|
8165
8183
|
const canvasRef = React83.useRef(null);
|
|
@@ -8238,10 +8256,25 @@ function MiniMap({
|
|
|
8238
8256
|
}
|
|
8239
8257
|
);
|
|
8240
8258
|
}
|
|
8259
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
8241
8260
|
var init_MiniMap = __esm({
|
|
8242
8261
|
"components/game/atoms/MiniMap.tsx"() {
|
|
8243
8262
|
"use client";
|
|
8244
8263
|
init_cn();
|
|
8264
|
+
DEFAULT_TILES = [
|
|
8265
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
8266
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
8267
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
8268
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
8269
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
8270
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
8271
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
8272
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
8273
|
+
];
|
|
8274
|
+
DEFAULT_UNITS = [
|
|
8275
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
8276
|
+
];
|
|
8277
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
8245
8278
|
MiniMap.displayName = "MiniMap";
|
|
8246
8279
|
}
|
|
8247
8280
|
});
|
|
@@ -9720,7 +9753,7 @@ var init_Accordion = __esm({
|
|
|
9720
9753
|
}
|
|
9721
9754
|
});
|
|
9722
9755
|
function ActionButtons({
|
|
9723
|
-
buttons,
|
|
9756
|
+
buttons = DEFAULT_BUTTONS,
|
|
9724
9757
|
onAction,
|
|
9725
9758
|
actionEvent,
|
|
9726
9759
|
layout = "horizontal",
|
|
@@ -9827,7 +9860,7 @@ function ActionButtons({
|
|
|
9827
9860
|
button.id
|
|
9828
9861
|
)) });
|
|
9829
9862
|
}
|
|
9830
|
-
var sizeMap14, layoutMap;
|
|
9863
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
9831
9864
|
var init_ActionButtons = __esm({
|
|
9832
9865
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
9833
9866
|
"use client";
|
|
@@ -9844,6 +9877,11 @@ var init_ActionButtons = __esm({
|
|
|
9844
9877
|
vertical: "flex flex-col gap-2",
|
|
9845
9878
|
diamond: "grid grid-cols-3 gap-1"
|
|
9846
9879
|
};
|
|
9880
|
+
DEFAULT_BUTTONS = [
|
|
9881
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
9882
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
9883
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
9884
|
+
];
|
|
9847
9885
|
ActionButtons.displayName = "ActionButtons";
|
|
9848
9886
|
}
|
|
9849
9887
|
});
|
|
@@ -11024,7 +11062,7 @@ function IsometricCanvas({
|
|
|
11024
11062
|
// Rendering options
|
|
11025
11063
|
scale = 0.4,
|
|
11026
11064
|
debug: debug2 = false,
|
|
11027
|
-
backgroundImage = "
|
|
11065
|
+
backgroundImage = "",
|
|
11028
11066
|
showMinimap = true,
|
|
11029
11067
|
enableCamera = true,
|
|
11030
11068
|
unitScale = 1,
|
|
@@ -12162,10 +12200,10 @@ function BattleTemplate({
|
|
|
12162
12200
|
entity,
|
|
12163
12201
|
scale = 0.45,
|
|
12164
12202
|
unitScale = 1,
|
|
12165
|
-
tiles,
|
|
12166
|
-
units,
|
|
12167
|
-
features,
|
|
12168
|
-
assetManifest,
|
|
12203
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
12204
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
12205
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
12206
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
12169
12207
|
className
|
|
12170
12208
|
}) {
|
|
12171
12209
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -12191,9 +12229,62 @@ function BattleTemplate({
|
|
|
12191
12229
|
}
|
|
12192
12230
|
);
|
|
12193
12231
|
}
|
|
12232
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
12194
12233
|
var init_BattleTemplate = __esm({
|
|
12195
12234
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
12196
12235
|
init_BattleBoard();
|
|
12236
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
12237
|
+
DEFAULT_BATTLE_TILES = [
|
|
12238
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12239
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12240
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12241
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12242
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12243
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12244
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12245
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12246
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12247
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12248
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12249
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12250
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12251
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12252
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12253
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12254
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12255
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
12256
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
12257
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12258
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12259
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12260
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12261
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
12262
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
12263
|
+
];
|
|
12264
|
+
DEFAULT_BATTLE_UNITS = [
|
|
12265
|
+
{ 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` },
|
|
12266
|
+
{ 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` }
|
|
12267
|
+
];
|
|
12268
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
12269
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
12270
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
12271
|
+
];
|
|
12272
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
12273
|
+
baseUrl: CDN,
|
|
12274
|
+
terrains: {
|
|
12275
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
12276
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
12277
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
12278
|
+
},
|
|
12279
|
+
units: {
|
|
12280
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
12281
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
12282
|
+
},
|
|
12283
|
+
features: {
|
|
12284
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
12285
|
+
portal: "/world-map/portal_open.png"
|
|
12286
|
+
}
|
|
12287
|
+
};
|
|
12197
12288
|
BattleTemplate.displayName = "BattleTemplate";
|
|
12198
12289
|
}
|
|
12199
12290
|
});
|
|
@@ -20193,10 +20284,10 @@ var init_CastleBoard = __esm({
|
|
|
20193
20284
|
function CastleTemplate({
|
|
20194
20285
|
entity,
|
|
20195
20286
|
scale = 0.45,
|
|
20196
|
-
tiles,
|
|
20197
|
-
units,
|
|
20198
|
-
features,
|
|
20199
|
-
assetManifest,
|
|
20287
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
20288
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
20289
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
20290
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
20200
20291
|
className
|
|
20201
20292
|
}) {
|
|
20202
20293
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -20217,9 +20308,61 @@ function CastleTemplate({
|
|
|
20217
20308
|
}
|
|
20218
20309
|
);
|
|
20219
20310
|
}
|
|
20311
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
20220
20312
|
var init_CastleTemplate = __esm({
|
|
20221
20313
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
20222
20314
|
init_CastleBoard();
|
|
20315
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
20316
|
+
DEFAULT_CASTLE_TILES = [
|
|
20317
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20318
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20319
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20320
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20321
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20322
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20323
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20324
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20325
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20326
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20327
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20328
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20329
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
20330
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20331
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20332
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20333
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20334
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20335
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
20336
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20337
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20338
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20339
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20340
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
20341
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
20342
|
+
];
|
|
20343
|
+
DEFAULT_CASTLE_UNITS = [
|
|
20344
|
+
{ 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` },
|
|
20345
|
+
{ 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` }
|
|
20346
|
+
];
|
|
20347
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
20348
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
20349
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
20350
|
+
];
|
|
20351
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
20352
|
+
baseUrl: CDN2,
|
|
20353
|
+
terrains: {
|
|
20354
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
20355
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
20356
|
+
},
|
|
20357
|
+
units: {
|
|
20358
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
20359
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
20360
|
+
},
|
|
20361
|
+
features: {
|
|
20362
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
20363
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
20364
|
+
}
|
|
20365
|
+
};
|
|
20223
20366
|
CastleTemplate.displayName = "CastleTemplate";
|
|
20224
20367
|
}
|
|
20225
20368
|
});
|
|
@@ -21341,7 +21484,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
21341
21484
|
}
|
|
21342
21485
|
});
|
|
21343
21486
|
function CombatLog({
|
|
21344
|
-
events: events2,
|
|
21487
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
21345
21488
|
maxVisible = 50,
|
|
21346
21489
|
autoScroll = true,
|
|
21347
21490
|
showTimestamps = false,
|
|
@@ -21392,7 +21535,7 @@ function CombatLog({
|
|
|
21392
21535
|
}) }) })
|
|
21393
21536
|
] });
|
|
21394
21537
|
}
|
|
21395
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
21538
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
21396
21539
|
var init_CombatLog = __esm({
|
|
21397
21540
|
"components/game/molecules/CombatLog.tsx"() {
|
|
21398
21541
|
init_atoms2();
|
|
@@ -21424,6 +21567,13 @@ var init_CombatLog = __esm({
|
|
|
21424
21567
|
death: "secondary",
|
|
21425
21568
|
spawn: "secondary"
|
|
21426
21569
|
};
|
|
21570
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
21571
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
21572
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
21573
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
21574
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
21575
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
21576
|
+
];
|
|
21427
21577
|
CombatLog.displayName = "CombatLog";
|
|
21428
21578
|
}
|
|
21429
21579
|
});
|
|
@@ -21831,9 +21981,9 @@ function isValidRarity(value) {
|
|
|
21831
21981
|
return rarityValues.includes(value);
|
|
21832
21982
|
}
|
|
21833
21983
|
function CraftingRecipe({
|
|
21834
|
-
inputs,
|
|
21835
|
-
output,
|
|
21836
|
-
canCraft =
|
|
21984
|
+
inputs = DEFAULT_INPUTS,
|
|
21985
|
+
output = DEFAULT_OUTPUT,
|
|
21986
|
+
canCraft = true,
|
|
21837
21987
|
onCraft,
|
|
21838
21988
|
craftEvent,
|
|
21839
21989
|
className
|
|
@@ -21894,7 +22044,7 @@ function CraftingRecipe({
|
|
|
21894
22044
|
}
|
|
21895
22045
|
);
|
|
21896
22046
|
}
|
|
21897
|
-
var rarityValues;
|
|
22047
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
21898
22048
|
var init_CraftingRecipe = __esm({
|
|
21899
22049
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
21900
22050
|
"use client";
|
|
@@ -21906,6 +22056,15 @@ var init_CraftingRecipe = __esm({
|
|
|
21906
22056
|
init_Stack();
|
|
21907
22057
|
init_Icon();
|
|
21908
22058
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
22059
|
+
DEFAULT_INPUTS = [
|
|
22060
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
22061
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
22062
|
+
];
|
|
22063
|
+
DEFAULT_OUTPUT = {
|
|
22064
|
+
icon: "sword",
|
|
22065
|
+
label: "Iron Sword",
|
|
22066
|
+
rarity: "uncommon"
|
|
22067
|
+
};
|
|
21909
22068
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
21910
22069
|
}
|
|
21911
22070
|
});
|
|
@@ -26902,10 +27061,10 @@ var init_StatBadge = __esm({
|
|
|
26902
27061
|
}
|
|
26903
27062
|
});
|
|
26904
27063
|
function InventoryGrid({
|
|
26905
|
-
items,
|
|
27064
|
+
items = DEFAULT_GRID_ITEMS,
|
|
26906
27065
|
columns = 4,
|
|
26907
|
-
totalSlots,
|
|
26908
|
-
selectedId,
|
|
27066
|
+
totalSlots = 12,
|
|
27067
|
+
selectedId = "",
|
|
26909
27068
|
onSelect,
|
|
26910
27069
|
selectEvent,
|
|
26911
27070
|
size = "md",
|
|
@@ -26954,7 +27113,7 @@ function InventoryGrid({
|
|
|
26954
27113
|
}
|
|
26955
27114
|
);
|
|
26956
27115
|
}
|
|
26957
|
-
var columnMap;
|
|
27116
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
26958
27117
|
var init_InventoryGrid = __esm({
|
|
26959
27118
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
26960
27119
|
"use client";
|
|
@@ -26971,12 +27130,18 @@ var init_InventoryGrid = __esm({
|
|
|
26971
27130
|
7: "grid-cols-7",
|
|
26972
27131
|
8: "grid-cols-8"
|
|
26973
27132
|
};
|
|
27133
|
+
DEFAULT_GRID_ITEMS = [
|
|
27134
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
27135
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
27136
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
27137
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
27138
|
+
];
|
|
26974
27139
|
InventoryGrid.displayName = "InventoryGrid";
|
|
26975
27140
|
}
|
|
26976
27141
|
});
|
|
26977
27142
|
function QuestTracker({
|
|
26978
|
-
quests,
|
|
26979
|
-
activeQuestId,
|
|
27143
|
+
quests = DEFAULT_QUESTS,
|
|
27144
|
+
activeQuestId = "q2",
|
|
26980
27145
|
className
|
|
26981
27146
|
}) {
|
|
26982
27147
|
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -27042,6 +27207,7 @@ function QuestTracker({
|
|
|
27042
27207
|
);
|
|
27043
27208
|
}) });
|
|
27044
27209
|
}
|
|
27210
|
+
var DEFAULT_QUESTS;
|
|
27045
27211
|
var init_QuestTracker = __esm({
|
|
27046
27212
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
27047
27213
|
"use client";
|
|
@@ -27051,6 +27217,11 @@ var init_QuestTracker = __esm({
|
|
|
27051
27217
|
init_Typography();
|
|
27052
27218
|
init_Box();
|
|
27053
27219
|
init_Stack();
|
|
27220
|
+
DEFAULT_QUESTS = [
|
|
27221
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
27222
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
27223
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
27224
|
+
];
|
|
27054
27225
|
QuestTracker.displayName = "QuestTracker";
|
|
27055
27226
|
}
|
|
27056
27227
|
});
|
|
@@ -27063,7 +27234,7 @@ function formatTime2(seconds) {
|
|
|
27063
27234
|
return `${seconds}s`;
|
|
27064
27235
|
}
|
|
27065
27236
|
function PowerupSlots({
|
|
27066
|
-
active,
|
|
27237
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
27067
27238
|
maxSlots = 4,
|
|
27068
27239
|
className
|
|
27069
27240
|
}) {
|
|
@@ -27108,6 +27279,7 @@ function PowerupSlots({
|
|
|
27108
27279
|
))
|
|
27109
27280
|
] });
|
|
27110
27281
|
}
|
|
27282
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
27111
27283
|
var init_PowerupSlots = __esm({
|
|
27112
27284
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
27113
27285
|
"use client";
|
|
@@ -27116,6 +27288,10 @@ var init_PowerupSlots = __esm({
|
|
|
27116
27288
|
init_Box();
|
|
27117
27289
|
init_Stack();
|
|
27118
27290
|
init_Typography();
|
|
27291
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
27292
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
27293
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
27294
|
+
];
|
|
27119
27295
|
PowerupSlots.displayName = "PowerupSlots";
|
|
27120
27296
|
}
|
|
27121
27297
|
});
|
|
@@ -27127,7 +27303,7 @@ function GameCanvas2D({
|
|
|
27127
27303
|
tickEvent,
|
|
27128
27304
|
drawEvent,
|
|
27129
27305
|
fps = 60,
|
|
27130
|
-
backgroundImage = "
|
|
27306
|
+
backgroundImage = "",
|
|
27131
27307
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
27132
27308
|
className
|
|
27133
27309
|
}) {
|
|
@@ -27231,10 +27407,10 @@ var init_GameCanvas2D = __esm({
|
|
|
27231
27407
|
}
|
|
27232
27408
|
});
|
|
27233
27409
|
function HealthPanel({
|
|
27234
|
-
current,
|
|
27235
|
-
max,
|
|
27236
|
-
shield,
|
|
27237
|
-
label,
|
|
27410
|
+
current = 75,
|
|
27411
|
+
max = 100,
|
|
27412
|
+
shield = 20,
|
|
27413
|
+
label = "Player HP",
|
|
27238
27414
|
effects,
|
|
27239
27415
|
showNumbers = true,
|
|
27240
27416
|
size = "md",
|
|
@@ -27352,11 +27528,11 @@ var init_HealthPanel = __esm({
|
|
|
27352
27528
|
}
|
|
27353
27529
|
});
|
|
27354
27530
|
function ScoreBoard({
|
|
27355
|
-
score: rawScore,
|
|
27356
|
-
highScore: rawHighScore,
|
|
27357
|
-
combo: rawCombo,
|
|
27358
|
-
multiplier: rawMultiplier,
|
|
27359
|
-
level: rawLevel,
|
|
27531
|
+
score: rawScore = 4200,
|
|
27532
|
+
highScore: rawHighScore = 8750,
|
|
27533
|
+
combo: rawCombo = 3,
|
|
27534
|
+
multiplier: rawMultiplier = 2,
|
|
27535
|
+
level: rawLevel = 4,
|
|
27360
27536
|
className
|
|
27361
27537
|
}) {
|
|
27362
27538
|
const score = rawScore ?? 0;
|
|
@@ -27429,7 +27605,7 @@ var init_ScoreBoard = __esm({
|
|
|
27429
27605
|
}
|
|
27430
27606
|
});
|
|
27431
27607
|
function ResourceBar({
|
|
27432
|
-
resources,
|
|
27608
|
+
resources = DEFAULT_RESOURCES,
|
|
27433
27609
|
size = "md",
|
|
27434
27610
|
className
|
|
27435
27611
|
}) {
|
|
@@ -27455,21 +27631,27 @@ function ResourceBar({
|
|
|
27455
27631
|
}
|
|
27456
27632
|
);
|
|
27457
27633
|
}
|
|
27634
|
+
var DEFAULT_RESOURCES;
|
|
27458
27635
|
var init_ResourceBar = __esm({
|
|
27459
27636
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
27460
27637
|
"use client";
|
|
27461
27638
|
init_cn();
|
|
27462
27639
|
init_StatBadge();
|
|
27463
27640
|
init_Box();
|
|
27641
|
+
DEFAULT_RESOURCES = [
|
|
27642
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
27643
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
27644
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
27645
|
+
];
|
|
27464
27646
|
ResourceBar.displayName = "ResourceBar";
|
|
27465
27647
|
}
|
|
27466
27648
|
});
|
|
27467
27649
|
function TurnPanel({
|
|
27468
|
-
currentTurn,
|
|
27469
|
-
maxTurns,
|
|
27470
|
-
phase,
|
|
27471
|
-
activeTeam,
|
|
27472
|
-
actions,
|
|
27650
|
+
currentTurn = 3,
|
|
27651
|
+
maxTurns = 10,
|
|
27652
|
+
phase = "Attack",
|
|
27653
|
+
activeTeam = "Heroes",
|
|
27654
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
27473
27655
|
className
|
|
27474
27656
|
}) {
|
|
27475
27657
|
const eventBus = useEventBus();
|
|
@@ -27514,6 +27696,7 @@ function TurnPanel({
|
|
|
27514
27696
|
}
|
|
27515
27697
|
);
|
|
27516
27698
|
}
|
|
27699
|
+
var DEFAULT_TURN_ACTIONS;
|
|
27517
27700
|
var init_TurnPanel = __esm({
|
|
27518
27701
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
27519
27702
|
"use client";
|
|
@@ -27522,15 +27705,19 @@ var init_TurnPanel = __esm({
|
|
|
27522
27705
|
init_Button();
|
|
27523
27706
|
init_Box();
|
|
27524
27707
|
init_useEventBus();
|
|
27708
|
+
DEFAULT_TURN_ACTIONS = [
|
|
27709
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
27710
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
27711
|
+
];
|
|
27525
27712
|
TurnPanel.displayName = "TurnPanel";
|
|
27526
27713
|
}
|
|
27527
27714
|
});
|
|
27528
27715
|
function EnemyPlate({
|
|
27529
|
-
name,
|
|
27530
|
-
health,
|
|
27531
|
-
maxHealth,
|
|
27532
|
-
level,
|
|
27533
|
-
effects,
|
|
27716
|
+
name = "Shadow Guard",
|
|
27717
|
+
health = 80,
|
|
27718
|
+
maxHealth = 100,
|
|
27719
|
+
level = 5,
|
|
27720
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
27534
27721
|
className
|
|
27535
27722
|
}) {
|
|
27536
27723
|
return /* @__PURE__ */ jsxs(
|
|
@@ -27596,7 +27783,7 @@ function EnemyPlate({
|
|
|
27596
27783
|
}
|
|
27597
27784
|
);
|
|
27598
27785
|
}
|
|
27599
|
-
var effectVariantMap2;
|
|
27786
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
27600
27787
|
var init_EnemyPlate = __esm({
|
|
27601
27788
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
27602
27789
|
"use client";
|
|
@@ -27610,12 +27797,15 @@ var init_EnemyPlate = __esm({
|
|
|
27610
27797
|
debuff: "danger",
|
|
27611
27798
|
neutral: "neutral"
|
|
27612
27799
|
};
|
|
27800
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
27801
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
27802
|
+
];
|
|
27613
27803
|
EnemyPlate.displayName = "EnemyPlate";
|
|
27614
27804
|
}
|
|
27615
27805
|
});
|
|
27616
27806
|
function UnitCommandBar({
|
|
27617
|
-
commands,
|
|
27618
|
-
selectedUnitId,
|
|
27807
|
+
commands = DEFAULT_COMMANDS,
|
|
27808
|
+
selectedUnitId = "unit-1",
|
|
27619
27809
|
className
|
|
27620
27810
|
}) {
|
|
27621
27811
|
const eventBus = useEventBus();
|
|
@@ -27658,6 +27848,7 @@ function UnitCommandBar({
|
|
|
27658
27848
|
}
|
|
27659
27849
|
);
|
|
27660
27850
|
}
|
|
27851
|
+
var DEFAULT_COMMANDS;
|
|
27661
27852
|
var init_UnitCommandBar = __esm({
|
|
27662
27853
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
27663
27854
|
"use client";
|
|
@@ -27666,6 +27857,12 @@ var init_UnitCommandBar = __esm({
|
|
|
27666
27857
|
init_Box();
|
|
27667
27858
|
init_Typography();
|
|
27668
27859
|
init_useEventBus();
|
|
27860
|
+
DEFAULT_COMMANDS = [
|
|
27861
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
27862
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
27863
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
27864
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
27865
|
+
];
|
|
27669
27866
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
27670
27867
|
}
|
|
27671
27868
|
});
|
|
@@ -27699,7 +27896,7 @@ function GameHud({
|
|
|
27699
27896
|
className,
|
|
27700
27897
|
transparent = true
|
|
27701
27898
|
}) {
|
|
27702
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
27899
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
27703
27900
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
27704
27901
|
const position = propPosition ?? "corners";
|
|
27705
27902
|
if (position === "corners") {
|
|
@@ -27724,7 +27921,7 @@ function GameHud({
|
|
|
27724
27921
|
}
|
|
27725
27922
|
);
|
|
27726
27923
|
}
|
|
27727
|
-
var positionMap;
|
|
27924
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
27728
27925
|
var init_GameHud = __esm({
|
|
27729
27926
|
"components/game/molecules/GameHud.tsx"() {
|
|
27730
27927
|
init_cn();
|
|
@@ -27734,11 +27931,17 @@ var init_GameHud = __esm({
|
|
|
27734
27931
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
27735
27932
|
corners: "inset-0 pointer-events-none"
|
|
27736
27933
|
};
|
|
27934
|
+
DEFAULT_HUD_STATS = [
|
|
27935
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
27936
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
27937
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
27938
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
27939
|
+
];
|
|
27737
27940
|
GameHud.displayName = "GameHud";
|
|
27738
27941
|
}
|
|
27739
27942
|
});
|
|
27740
27943
|
function DialogueBox({
|
|
27741
|
-
dialogue,
|
|
27944
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
27742
27945
|
typewriterSpeed = 30,
|
|
27743
27946
|
position = "bottom",
|
|
27744
27947
|
onComplete,
|
|
@@ -27921,17 +28124,27 @@ function DialogueBox({
|
|
|
27921
28124
|
}
|
|
27922
28125
|
);
|
|
27923
28126
|
}
|
|
28127
|
+
var DEFAULT_DIALOGUE;
|
|
27924
28128
|
var init_DialogueBox = __esm({
|
|
27925
28129
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
27926
28130
|
"use client";
|
|
27927
28131
|
init_cn();
|
|
27928
28132
|
init_useEventBus();
|
|
28133
|
+
DEFAULT_DIALOGUE = {
|
|
28134
|
+
speaker: "Village Elder",
|
|
28135
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
28136
|
+
choices: [
|
|
28137
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
28138
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
28139
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
28140
|
+
]
|
|
28141
|
+
};
|
|
27929
28142
|
}
|
|
27930
28143
|
});
|
|
27931
28144
|
function InventoryPanel({
|
|
27932
|
-
items,
|
|
27933
|
-
slots,
|
|
27934
|
-
columns,
|
|
28145
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
28146
|
+
slots = 12,
|
|
28147
|
+
columns = 4,
|
|
27935
28148
|
selectedSlot,
|
|
27936
28149
|
onSelectSlot,
|
|
27937
28150
|
onUseItem,
|
|
@@ -28079,25 +28292,31 @@ function InventoryPanel({
|
|
|
28079
28292
|
)
|
|
28080
28293
|
] });
|
|
28081
28294
|
}
|
|
28295
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
28082
28296
|
var init_InventoryPanel = __esm({
|
|
28083
28297
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
28084
28298
|
"use client";
|
|
28085
28299
|
init_cn();
|
|
28086
28300
|
init_useEventBus();
|
|
28301
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
28302
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
28303
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
28304
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
28305
|
+
];
|
|
28087
28306
|
}
|
|
28088
28307
|
});
|
|
28089
28308
|
function GameMenu({
|
|
28090
|
-
title,
|
|
28309
|
+
title = "Epic Quest",
|
|
28091
28310
|
subtitle,
|
|
28092
28311
|
options,
|
|
28093
28312
|
menuItems,
|
|
28094
28313
|
onSelect,
|
|
28095
28314
|
eventBus: eventBusProp,
|
|
28096
28315
|
background,
|
|
28097
|
-
logo,
|
|
28316
|
+
logo = "",
|
|
28098
28317
|
className
|
|
28099
28318
|
}) {
|
|
28100
|
-
const resolvedOptions = options ?? menuItems ??
|
|
28319
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
28101
28320
|
let eventBusFromHook = null;
|
|
28102
28321
|
try {
|
|
28103
28322
|
eventBusFromHook = useEventBus();
|
|
@@ -28178,7 +28397,7 @@ function GameMenu({
|
|
|
28178
28397
|
}
|
|
28179
28398
|
);
|
|
28180
28399
|
}
|
|
28181
|
-
var variantMap3;
|
|
28400
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
28182
28401
|
var init_GameMenu = __esm({
|
|
28183
28402
|
"components/game/molecules/GameMenu.tsx"() {
|
|
28184
28403
|
"use client";
|
|
@@ -28189,6 +28408,11 @@ var init_GameMenu = __esm({
|
|
|
28189
28408
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28190
28409
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28191
28410
|
};
|
|
28411
|
+
DEFAULT_MENU_OPTIONS = [
|
|
28412
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
28413
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
28414
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
28415
|
+
];
|
|
28192
28416
|
GameMenu.displayName = "GameMenu";
|
|
28193
28417
|
}
|
|
28194
28418
|
});
|
|
@@ -28199,19 +28423,19 @@ function formatTime3(ms) {
|
|
|
28199
28423
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
28200
28424
|
}
|
|
28201
28425
|
function GameOverScreen({
|
|
28202
|
-
title,
|
|
28426
|
+
title = "Game Over",
|
|
28203
28427
|
message,
|
|
28204
|
-
stats =
|
|
28428
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
28205
28429
|
actions,
|
|
28206
28430
|
menuItems,
|
|
28207
28431
|
onAction,
|
|
28208
28432
|
eventBus: eventBusProp,
|
|
28209
|
-
variant = "
|
|
28210
|
-
highScore,
|
|
28211
|
-
currentScore,
|
|
28433
|
+
variant = "defeat",
|
|
28434
|
+
highScore = 2e3,
|
|
28435
|
+
currentScore = 1240,
|
|
28212
28436
|
className
|
|
28213
28437
|
}) {
|
|
28214
|
-
const resolvedActions = actions ?? menuItems ??
|
|
28438
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
28215
28439
|
let eventBusFromHook = null;
|
|
28216
28440
|
try {
|
|
28217
28441
|
eventBusFromHook = useEventBus();
|
|
@@ -28298,7 +28522,7 @@ function GameOverScreen({
|
|
|
28298
28522
|
}
|
|
28299
28523
|
);
|
|
28300
28524
|
}
|
|
28301
|
-
var variantColors, buttonVariants;
|
|
28525
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
28302
28526
|
var init_GameOverScreen = __esm({
|
|
28303
28527
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
28304
28528
|
"use client";
|
|
@@ -28327,21 +28551,35 @@ var init_GameOverScreen = __esm({
|
|
|
28327
28551
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
28328
28552
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
28329
28553
|
};
|
|
28554
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
28555
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
28556
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
28557
|
+
];
|
|
28558
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
28559
|
+
{ label: "Score", value: 1240 },
|
|
28560
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
28561
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
28562
|
+
];
|
|
28330
28563
|
GameOverScreen.displayName = "GameOverScreen";
|
|
28331
28564
|
}
|
|
28332
28565
|
});
|
|
28333
28566
|
function PlatformerCanvas({
|
|
28334
28567
|
player,
|
|
28335
|
-
platforms = [
|
|
28568
|
+
platforms = [
|
|
28569
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
28570
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
28571
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
28572
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
28573
|
+
],
|
|
28336
28574
|
worldWidth = 800,
|
|
28337
28575
|
worldHeight = 400,
|
|
28338
28576
|
canvasWidth = 800,
|
|
28339
28577
|
canvasHeight = 400,
|
|
28340
28578
|
followCamera = true,
|
|
28341
|
-
bgColor,
|
|
28579
|
+
bgColor = "#5c94fc",
|
|
28342
28580
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
28343
28581
|
tileSprites,
|
|
28344
|
-
backgroundImage = "
|
|
28582
|
+
backgroundImage = "",
|
|
28345
28583
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
28346
28584
|
leftEvent = "MOVE_LEFT",
|
|
28347
28585
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -28389,10 +28627,10 @@ function PlatformerCanvas({
|
|
|
28389
28627
|
};
|
|
28390
28628
|
}, []);
|
|
28391
28629
|
const resolvedPlayer = player ?? {
|
|
28392
|
-
x:
|
|
28393
|
-
y:
|
|
28394
|
-
width:
|
|
28395
|
-
height:
|
|
28630
|
+
x: 80,
|
|
28631
|
+
y: 336,
|
|
28632
|
+
width: 32,
|
|
28633
|
+
height: 48,
|
|
28396
28634
|
facingRight: true
|
|
28397
28635
|
};
|
|
28398
28636
|
const handleKeyDown = useCallback((e) => {
|
|
@@ -47071,12 +47309,12 @@ function WorldMapTemplate({
|
|
|
47071
47309
|
entity,
|
|
47072
47310
|
scale = 0.4,
|
|
47073
47311
|
unitScale = 2.5,
|
|
47074
|
-
diamondTopY,
|
|
47312
|
+
diamondTopY = 374,
|
|
47075
47313
|
allowMoveAllHeroes = false,
|
|
47076
|
-
tiles,
|
|
47077
|
-
units,
|
|
47078
|
-
features,
|
|
47079
|
-
assetManifest,
|
|
47314
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
47315
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
47316
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
47317
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
47080
47318
|
className
|
|
47081
47319
|
}) {
|
|
47082
47320
|
return /* @__PURE__ */ jsx(
|
|
@@ -47099,9 +47337,63 @@ function WorldMapTemplate({
|
|
|
47099
47337
|
}
|
|
47100
47338
|
);
|
|
47101
47339
|
}
|
|
47340
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
47102
47341
|
var init_WorldMapTemplate = __esm({
|
|
47103
47342
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
47104
47343
|
init_WorldMapBoard();
|
|
47344
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
47345
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
47346
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47347
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47348
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47349
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47350
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47351
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47352
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47353
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47354
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47355
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47356
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47357
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47358
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
47359
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47360
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47361
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47362
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47363
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47364
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
47365
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47366
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47367
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
47368
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
47369
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
47370
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
47371
|
+
];
|
|
47372
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
47373
|
+
{ 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` },
|
|
47374
|
+
{ 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` }
|
|
47375
|
+
];
|
|
47376
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
47377
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
47378
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
47379
|
+
];
|
|
47380
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
47381
|
+
baseUrl: CDN3,
|
|
47382
|
+
terrains: {
|
|
47383
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
47384
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
47385
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
47386
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
47387
|
+
},
|
|
47388
|
+
units: {
|
|
47389
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
47390
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
47391
|
+
},
|
|
47392
|
+
features: {
|
|
47393
|
+
capital: "/scenes/world/capital.png",
|
|
47394
|
+
power_node: "/world-map/power_node.png"
|
|
47395
|
+
}
|
|
47396
|
+
};
|
|
47105
47397
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
47106
47398
|
}
|
|
47107
47399
|
});
|