@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/avl/index.js
CHANGED
|
@@ -10693,8 +10693,8 @@ var init_TraitFrame = __esm({
|
|
|
10693
10693
|
}
|
|
10694
10694
|
});
|
|
10695
10695
|
function HealthBar({
|
|
10696
|
-
current,
|
|
10697
|
-
max,
|
|
10696
|
+
current = 3,
|
|
10697
|
+
max = 5,
|
|
10698
10698
|
format = "hearts",
|
|
10699
10699
|
size = "md",
|
|
10700
10700
|
className,
|
|
@@ -10943,11 +10943,11 @@ var init_ControlButton = __esm({
|
|
|
10943
10943
|
});
|
|
10944
10944
|
function Sprite({
|
|
10945
10945
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
10946
|
-
frameWidth,
|
|
10947
|
-
frameHeight,
|
|
10948
|
-
frame,
|
|
10949
|
-
x,
|
|
10950
|
-
y,
|
|
10946
|
+
frameWidth = 64,
|
|
10947
|
+
frameHeight = 64,
|
|
10948
|
+
frame = 0,
|
|
10949
|
+
x = 0,
|
|
10950
|
+
y = 0,
|
|
10951
10951
|
scale = 1,
|
|
10952
10952
|
flipX = false,
|
|
10953
10953
|
flipY = false,
|
|
@@ -11017,7 +11017,7 @@ var init_Sprite = __esm({
|
|
|
11017
11017
|
}
|
|
11018
11018
|
});
|
|
11019
11019
|
function StateIndicator({
|
|
11020
|
-
state,
|
|
11020
|
+
state = "idle",
|
|
11021
11021
|
label,
|
|
11022
11022
|
size = "md",
|
|
11023
11023
|
animated = true,
|
|
@@ -11088,8 +11088,8 @@ function formatTime(seconds, format) {
|
|
|
11088
11088
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
11089
11089
|
}
|
|
11090
11090
|
function TimerDisplay({
|
|
11091
|
-
seconds,
|
|
11092
|
-
running,
|
|
11091
|
+
seconds = 90,
|
|
11092
|
+
running = true,
|
|
11093
11093
|
format = "mm:ss",
|
|
11094
11094
|
size = "md",
|
|
11095
11095
|
className,
|
|
@@ -11126,8 +11126,8 @@ var init_TimerDisplay = __esm({
|
|
|
11126
11126
|
});
|
|
11127
11127
|
function ResourceCounter({
|
|
11128
11128
|
icon,
|
|
11129
|
-
label,
|
|
11130
|
-
value,
|
|
11129
|
+
label = "Gold",
|
|
11130
|
+
value = 250,
|
|
11131
11131
|
max,
|
|
11132
11132
|
color,
|
|
11133
11133
|
size = "md",
|
|
@@ -11179,10 +11179,11 @@ var init_ResourceCounter = __esm({
|
|
|
11179
11179
|
}
|
|
11180
11180
|
});
|
|
11181
11181
|
function ItemSlot({
|
|
11182
|
-
|
|
11183
|
-
|
|
11182
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
11183
|
+
icon = "sword",
|
|
11184
|
+
label = "Iron Sword",
|
|
11184
11185
|
quantity,
|
|
11185
|
-
rarity = "
|
|
11186
|
+
rarity = "uncommon",
|
|
11186
11187
|
empty,
|
|
11187
11188
|
size = "md",
|
|
11188
11189
|
selected,
|
|
@@ -11190,6 +11191,7 @@ function ItemSlot({
|
|
|
11190
11191
|
className
|
|
11191
11192
|
}) {
|
|
11192
11193
|
const isClickable = onClick != null;
|
|
11194
|
+
const px = assetSizeMap[size];
|
|
11193
11195
|
return /* @__PURE__ */ jsx(
|
|
11194
11196
|
"button",
|
|
11195
11197
|
{
|
|
@@ -11210,7 +11212,17 @@ function ItemSlot({
|
|
|
11210
11212
|
className
|
|
11211
11213
|
),
|
|
11212
11214
|
children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11213
|
-
|
|
11215
|
+
assetUrl ? /* @__PURE__ */ jsx(
|
|
11216
|
+
"img",
|
|
11217
|
+
{
|
|
11218
|
+
src: assetUrl,
|
|
11219
|
+
alt: label,
|
|
11220
|
+
width: px,
|
|
11221
|
+
height: px,
|
|
11222
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
11223
|
+
className: "flex-shrink-0"
|
|
11224
|
+
}
|
|
11225
|
+
) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
|
|
11214
11226
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
|
|
11215
11227
|
"span",
|
|
11216
11228
|
{
|
|
@@ -11226,7 +11238,7 @@ function ItemSlot({
|
|
|
11226
11238
|
}
|
|
11227
11239
|
);
|
|
11228
11240
|
}
|
|
11229
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
11241
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
11230
11242
|
var init_ItemSlot = __esm({
|
|
11231
11243
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
11232
11244
|
"use client";
|
|
@@ -11251,11 +11263,17 @@ var init_ItemSlot = __esm({
|
|
|
11251
11263
|
epic: "shadow-lg",
|
|
11252
11264
|
legendary: "shadow-lg"
|
|
11253
11265
|
};
|
|
11266
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
11267
|
+
assetSizeMap = {
|
|
11268
|
+
sm: 28,
|
|
11269
|
+
md: 40,
|
|
11270
|
+
lg: 56
|
|
11271
|
+
};
|
|
11254
11272
|
ItemSlot.displayName = "ItemSlot";
|
|
11255
11273
|
}
|
|
11256
11274
|
});
|
|
11257
11275
|
function TurnIndicator({
|
|
11258
|
-
currentTurn,
|
|
11276
|
+
currentTurn = 1,
|
|
11259
11277
|
maxTurns,
|
|
11260
11278
|
activeTeam,
|
|
11261
11279
|
phase,
|
|
@@ -11318,7 +11336,7 @@ function getComboScale(combo) {
|
|
|
11318
11336
|
return "";
|
|
11319
11337
|
}
|
|
11320
11338
|
function ComboCounter({
|
|
11321
|
-
combo,
|
|
11339
|
+
combo = 5,
|
|
11322
11340
|
multiplier,
|
|
11323
11341
|
streak,
|
|
11324
11342
|
size = "md",
|
|
@@ -11364,10 +11382,10 @@ var init_ComboCounter = __esm({
|
|
|
11364
11382
|
}
|
|
11365
11383
|
});
|
|
11366
11384
|
function XPBar({
|
|
11367
|
-
current,
|
|
11368
|
-
max,
|
|
11369
|
-
level,
|
|
11370
|
-
showLabel =
|
|
11385
|
+
current = 350,
|
|
11386
|
+
max = 1e3,
|
|
11387
|
+
level = 5,
|
|
11388
|
+
showLabel = true,
|
|
11371
11389
|
size = "md",
|
|
11372
11390
|
animated = true,
|
|
11373
11391
|
className
|
|
@@ -11450,7 +11468,7 @@ var init_XPBar = __esm({
|
|
|
11450
11468
|
function WaypointMarker({
|
|
11451
11469
|
label,
|
|
11452
11470
|
icon,
|
|
11453
|
-
active =
|
|
11471
|
+
active = true,
|
|
11454
11472
|
completed = false,
|
|
11455
11473
|
size = "md",
|
|
11456
11474
|
className
|
|
@@ -11524,11 +11542,11 @@ function formatDuration(seconds) {
|
|
|
11524
11542
|
return `${Math.round(seconds)}s`;
|
|
11525
11543
|
}
|
|
11526
11544
|
function StatusEffect({
|
|
11527
|
-
icon,
|
|
11528
|
-
label,
|
|
11529
|
-
duration,
|
|
11545
|
+
icon = "shield",
|
|
11546
|
+
label = "Shield",
|
|
11547
|
+
duration = 30,
|
|
11530
11548
|
stacks,
|
|
11531
|
-
variant = "
|
|
11549
|
+
variant = "buff",
|
|
11532
11550
|
size = "md",
|
|
11533
11551
|
className
|
|
11534
11552
|
}) {
|
|
@@ -11590,7 +11608,7 @@ var init_StatusEffect = __esm({
|
|
|
11590
11608
|
}
|
|
11591
11609
|
});
|
|
11592
11610
|
function DamageNumber({
|
|
11593
|
-
value,
|
|
11611
|
+
value = 42,
|
|
11594
11612
|
type = "damage",
|
|
11595
11613
|
size = "md",
|
|
11596
11614
|
className
|
|
@@ -11639,8 +11657,8 @@ var init_DamageNumber = __esm({
|
|
|
11639
11657
|
}
|
|
11640
11658
|
});
|
|
11641
11659
|
function DialogueBubble({
|
|
11642
|
-
speaker,
|
|
11643
|
-
text,
|
|
11660
|
+
speaker = "Hero",
|
|
11661
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
11644
11662
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
11645
11663
|
position = "bottom",
|
|
11646
11664
|
className
|
|
@@ -11677,7 +11695,7 @@ var init_DialogueBubble = __esm({
|
|
|
11677
11695
|
}
|
|
11678
11696
|
});
|
|
11679
11697
|
function ChoiceButton({
|
|
11680
|
-
text,
|
|
11698
|
+
text = "Charge forward into the fray",
|
|
11681
11699
|
index,
|
|
11682
11700
|
disabled = false,
|
|
11683
11701
|
selected = false,
|
|
@@ -11723,7 +11741,7 @@ var init_ChoiceButton = __esm({
|
|
|
11723
11741
|
}
|
|
11724
11742
|
});
|
|
11725
11743
|
function ActionButton({
|
|
11726
|
-
label,
|
|
11744
|
+
label = "Attack",
|
|
11727
11745
|
icon,
|
|
11728
11746
|
cooldown = 0,
|
|
11729
11747
|
disabled = false,
|
|
@@ -11803,13 +11821,13 @@ var init_ActionButton = __esm({
|
|
|
11803
11821
|
}
|
|
11804
11822
|
});
|
|
11805
11823
|
function MiniMap({
|
|
11806
|
-
tiles =
|
|
11807
|
-
units =
|
|
11824
|
+
tiles = DEFAULT_TILES,
|
|
11825
|
+
units = DEFAULT_UNITS,
|
|
11808
11826
|
width = 150,
|
|
11809
11827
|
height = 150,
|
|
11810
11828
|
mapWidth = 100,
|
|
11811
11829
|
mapHeight = 100,
|
|
11812
|
-
viewportRect,
|
|
11830
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
11813
11831
|
className
|
|
11814
11832
|
}) {
|
|
11815
11833
|
const canvasRef = React91.useRef(null);
|
|
@@ -11888,10 +11906,25 @@ function MiniMap({
|
|
|
11888
11906
|
}
|
|
11889
11907
|
);
|
|
11890
11908
|
}
|
|
11909
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
11891
11910
|
var init_MiniMap = __esm({
|
|
11892
11911
|
"components/game/atoms/MiniMap.tsx"() {
|
|
11893
11912
|
"use client";
|
|
11894
11913
|
init_cn();
|
|
11914
|
+
DEFAULT_TILES = [
|
|
11915
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
11916
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
11917
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
11918
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
11919
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
11920
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
11921
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
11922
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
11923
|
+
];
|
|
11924
|
+
DEFAULT_UNITS = [
|
|
11925
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
11926
|
+
];
|
|
11927
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
11895
11928
|
MiniMap.displayName = "MiniMap";
|
|
11896
11929
|
}
|
|
11897
11930
|
});
|
|
@@ -13014,7 +13047,7 @@ var init_Accordion = __esm({
|
|
|
13014
13047
|
}
|
|
13015
13048
|
});
|
|
13016
13049
|
function ActionButtons({
|
|
13017
|
-
buttons,
|
|
13050
|
+
buttons = DEFAULT_BUTTONS,
|
|
13018
13051
|
onAction,
|
|
13019
13052
|
actionEvent,
|
|
13020
13053
|
layout = "horizontal",
|
|
@@ -13121,7 +13154,7 @@ function ActionButtons({
|
|
|
13121
13154
|
button.id
|
|
13122
13155
|
)) });
|
|
13123
13156
|
}
|
|
13124
|
-
var sizeMap14, layoutMap;
|
|
13157
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
13125
13158
|
var init_ActionButtons = __esm({
|
|
13126
13159
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
13127
13160
|
"use client";
|
|
@@ -13138,6 +13171,11 @@ var init_ActionButtons = __esm({
|
|
|
13138
13171
|
vertical: "flex flex-col gap-2",
|
|
13139
13172
|
diamond: "grid grid-cols-3 gap-1"
|
|
13140
13173
|
};
|
|
13174
|
+
DEFAULT_BUTTONS = [
|
|
13175
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
13176
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
13177
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
13178
|
+
];
|
|
13141
13179
|
ActionButtons.displayName = "ActionButtons";
|
|
13142
13180
|
}
|
|
13143
13181
|
});
|
|
@@ -14330,7 +14368,7 @@ function IsometricCanvas({
|
|
|
14330
14368
|
// Rendering options
|
|
14331
14369
|
scale = 0.4,
|
|
14332
14370
|
debug: debug2 = false,
|
|
14333
|
-
backgroundImage = "
|
|
14371
|
+
backgroundImage = "",
|
|
14334
14372
|
showMinimap = true,
|
|
14335
14373
|
enableCamera = true,
|
|
14336
14374
|
unitScale = 1,
|
|
@@ -15468,10 +15506,10 @@ function BattleTemplate({
|
|
|
15468
15506
|
entity,
|
|
15469
15507
|
scale = 0.45,
|
|
15470
15508
|
unitScale = 1,
|
|
15471
|
-
tiles,
|
|
15472
|
-
units,
|
|
15473
|
-
features,
|
|
15474
|
-
assetManifest,
|
|
15509
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
15510
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
15511
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
15512
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
15475
15513
|
className
|
|
15476
15514
|
}) {
|
|
15477
15515
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -15497,9 +15535,62 @@ function BattleTemplate({
|
|
|
15497
15535
|
}
|
|
15498
15536
|
);
|
|
15499
15537
|
}
|
|
15538
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
15500
15539
|
var init_BattleTemplate = __esm({
|
|
15501
15540
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
15502
15541
|
init_BattleBoard();
|
|
15542
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
15543
|
+
DEFAULT_BATTLE_TILES = [
|
|
15544
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15545
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15546
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15547
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15548
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15549
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15550
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15551
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15552
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15553
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15554
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15555
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15556
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15557
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15558
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15559
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15560
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15561
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15562
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15563
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15564
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15565
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15566
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15567
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15568
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
15569
|
+
];
|
|
15570
|
+
DEFAULT_BATTLE_UNITS = [
|
|
15571
|
+
{ 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` },
|
|
15572
|
+
{ 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` }
|
|
15573
|
+
];
|
|
15574
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
15575
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
15576
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
15577
|
+
];
|
|
15578
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
15579
|
+
baseUrl: CDN,
|
|
15580
|
+
terrains: {
|
|
15581
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
15582
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
15583
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
15584
|
+
},
|
|
15585
|
+
units: {
|
|
15586
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
15587
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
15588
|
+
},
|
|
15589
|
+
features: {
|
|
15590
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
15591
|
+
portal: "/world-map/portal_open.png"
|
|
15592
|
+
}
|
|
15593
|
+
};
|
|
15503
15594
|
BattleTemplate.displayName = "BattleTemplate";
|
|
15504
15595
|
}
|
|
15505
15596
|
});
|
|
@@ -22670,10 +22761,10 @@ var init_CastleBoard = __esm({
|
|
|
22670
22761
|
function CastleTemplate({
|
|
22671
22762
|
entity,
|
|
22672
22763
|
scale = 0.45,
|
|
22673
|
-
tiles,
|
|
22674
|
-
units,
|
|
22675
|
-
features,
|
|
22676
|
-
assetManifest,
|
|
22764
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
22765
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
22766
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
22767
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
22677
22768
|
className
|
|
22678
22769
|
}) {
|
|
22679
22770
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -22694,9 +22785,61 @@ function CastleTemplate({
|
|
|
22694
22785
|
}
|
|
22695
22786
|
);
|
|
22696
22787
|
}
|
|
22788
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
22697
22789
|
var init_CastleTemplate = __esm({
|
|
22698
22790
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
22699
22791
|
init_CastleBoard();
|
|
22792
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
22793
|
+
DEFAULT_CASTLE_TILES = [
|
|
22794
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22795
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22796
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22797
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22798
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22799
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22800
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22801
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22802
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22803
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22804
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22805
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22806
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
22807
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22808
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22809
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22810
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22811
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22812
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22813
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22814
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22815
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22816
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22817
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22818
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
22819
|
+
];
|
|
22820
|
+
DEFAULT_CASTLE_UNITS = [
|
|
22821
|
+
{ 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` },
|
|
22822
|
+
{ 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` }
|
|
22823
|
+
];
|
|
22824
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
22825
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
22826
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
22827
|
+
];
|
|
22828
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
22829
|
+
baseUrl: CDN2,
|
|
22830
|
+
terrains: {
|
|
22831
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
22832
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
22833
|
+
},
|
|
22834
|
+
units: {
|
|
22835
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
22836
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
22837
|
+
},
|
|
22838
|
+
features: {
|
|
22839
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
22840
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
22841
|
+
}
|
|
22842
|
+
};
|
|
22700
22843
|
CastleTemplate.displayName = "CastleTemplate";
|
|
22701
22844
|
}
|
|
22702
22845
|
});
|
|
@@ -23818,7 +23961,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
23818
23961
|
}
|
|
23819
23962
|
});
|
|
23820
23963
|
function CombatLog({
|
|
23821
|
-
events: events2,
|
|
23964
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
23822
23965
|
maxVisible = 50,
|
|
23823
23966
|
autoScroll = true,
|
|
23824
23967
|
showTimestamps = false,
|
|
@@ -23869,7 +24012,7 @@ function CombatLog({
|
|
|
23869
24012
|
}) }) })
|
|
23870
24013
|
] });
|
|
23871
24014
|
}
|
|
23872
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
24015
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
23873
24016
|
var init_CombatLog = __esm({
|
|
23874
24017
|
"components/game/molecules/CombatLog.tsx"() {
|
|
23875
24018
|
init_atoms2();
|
|
@@ -23901,6 +24044,13 @@ var init_CombatLog = __esm({
|
|
|
23901
24044
|
death: "secondary",
|
|
23902
24045
|
spawn: "secondary"
|
|
23903
24046
|
};
|
|
24047
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
24048
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
24049
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
24050
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
24051
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
24052
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
24053
|
+
];
|
|
23904
24054
|
CombatLog.displayName = "CombatLog";
|
|
23905
24055
|
}
|
|
23906
24056
|
});
|
|
@@ -24308,9 +24458,9 @@ function isValidRarity(value) {
|
|
|
24308
24458
|
return rarityValues.includes(value);
|
|
24309
24459
|
}
|
|
24310
24460
|
function CraftingRecipe({
|
|
24311
|
-
inputs,
|
|
24312
|
-
output,
|
|
24313
|
-
canCraft =
|
|
24461
|
+
inputs = DEFAULT_INPUTS,
|
|
24462
|
+
output = DEFAULT_OUTPUT,
|
|
24463
|
+
canCraft = true,
|
|
24314
24464
|
onCraft,
|
|
24315
24465
|
craftEvent,
|
|
24316
24466
|
className
|
|
@@ -24371,7 +24521,7 @@ function CraftingRecipe({
|
|
|
24371
24521
|
}
|
|
24372
24522
|
);
|
|
24373
24523
|
}
|
|
24374
|
-
var rarityValues;
|
|
24524
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
24375
24525
|
var init_CraftingRecipe = __esm({
|
|
24376
24526
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
24377
24527
|
"use client";
|
|
@@ -24383,6 +24533,15 @@ var init_CraftingRecipe = __esm({
|
|
|
24383
24533
|
init_Stack();
|
|
24384
24534
|
init_Icon();
|
|
24385
24535
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
24536
|
+
DEFAULT_INPUTS = [
|
|
24537
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
24538
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
24539
|
+
];
|
|
24540
|
+
DEFAULT_OUTPUT = {
|
|
24541
|
+
icon: "sword",
|
|
24542
|
+
label: "Iron Sword",
|
|
24543
|
+
rarity: "uncommon"
|
|
24544
|
+
};
|
|
24386
24545
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
24387
24546
|
}
|
|
24388
24547
|
});
|
|
@@ -29379,10 +29538,10 @@ var init_StatBadge = __esm({
|
|
|
29379
29538
|
}
|
|
29380
29539
|
});
|
|
29381
29540
|
function InventoryGrid({
|
|
29382
|
-
items,
|
|
29541
|
+
items = DEFAULT_GRID_ITEMS,
|
|
29383
29542
|
columns = 4,
|
|
29384
|
-
totalSlots,
|
|
29385
|
-
selectedId,
|
|
29543
|
+
totalSlots = 12,
|
|
29544
|
+
selectedId = "",
|
|
29386
29545
|
onSelect,
|
|
29387
29546
|
selectEvent,
|
|
29388
29547
|
size = "md",
|
|
@@ -29431,7 +29590,7 @@ function InventoryGrid({
|
|
|
29431
29590
|
}
|
|
29432
29591
|
);
|
|
29433
29592
|
}
|
|
29434
|
-
var columnMap;
|
|
29593
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
29435
29594
|
var init_InventoryGrid = __esm({
|
|
29436
29595
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
29437
29596
|
"use client";
|
|
@@ -29448,12 +29607,18 @@ var init_InventoryGrid = __esm({
|
|
|
29448
29607
|
7: "grid-cols-7",
|
|
29449
29608
|
8: "grid-cols-8"
|
|
29450
29609
|
};
|
|
29610
|
+
DEFAULT_GRID_ITEMS = [
|
|
29611
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
29612
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
29613
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
29614
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
29615
|
+
];
|
|
29451
29616
|
InventoryGrid.displayName = "InventoryGrid";
|
|
29452
29617
|
}
|
|
29453
29618
|
});
|
|
29454
29619
|
function QuestTracker({
|
|
29455
|
-
quests,
|
|
29456
|
-
activeQuestId,
|
|
29620
|
+
quests = DEFAULT_QUESTS,
|
|
29621
|
+
activeQuestId = "q2",
|
|
29457
29622
|
className
|
|
29458
29623
|
}) {
|
|
29459
29624
|
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -29519,6 +29684,7 @@ function QuestTracker({
|
|
|
29519
29684
|
);
|
|
29520
29685
|
}) });
|
|
29521
29686
|
}
|
|
29687
|
+
var DEFAULT_QUESTS;
|
|
29522
29688
|
var init_QuestTracker = __esm({
|
|
29523
29689
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
29524
29690
|
"use client";
|
|
@@ -29528,6 +29694,11 @@ var init_QuestTracker = __esm({
|
|
|
29528
29694
|
init_Typography();
|
|
29529
29695
|
init_Box();
|
|
29530
29696
|
init_Stack();
|
|
29697
|
+
DEFAULT_QUESTS = [
|
|
29698
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
29699
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
29700
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
29701
|
+
];
|
|
29531
29702
|
QuestTracker.displayName = "QuestTracker";
|
|
29532
29703
|
}
|
|
29533
29704
|
});
|
|
@@ -29540,7 +29711,7 @@ function formatTime2(seconds) {
|
|
|
29540
29711
|
return `${seconds}s`;
|
|
29541
29712
|
}
|
|
29542
29713
|
function PowerupSlots({
|
|
29543
|
-
active,
|
|
29714
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
29544
29715
|
maxSlots = 4,
|
|
29545
29716
|
className
|
|
29546
29717
|
}) {
|
|
@@ -29585,6 +29756,7 @@ function PowerupSlots({
|
|
|
29585
29756
|
))
|
|
29586
29757
|
] });
|
|
29587
29758
|
}
|
|
29759
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
29588
29760
|
var init_PowerupSlots = __esm({
|
|
29589
29761
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
29590
29762
|
"use client";
|
|
@@ -29593,6 +29765,10 @@ var init_PowerupSlots = __esm({
|
|
|
29593
29765
|
init_Box();
|
|
29594
29766
|
init_Stack();
|
|
29595
29767
|
init_Typography();
|
|
29768
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
29769
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
29770
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
29771
|
+
];
|
|
29596
29772
|
PowerupSlots.displayName = "PowerupSlots";
|
|
29597
29773
|
}
|
|
29598
29774
|
});
|
|
@@ -29604,7 +29780,7 @@ function GameCanvas2D({
|
|
|
29604
29780
|
tickEvent,
|
|
29605
29781
|
drawEvent,
|
|
29606
29782
|
fps = 60,
|
|
29607
|
-
backgroundImage = "
|
|
29783
|
+
backgroundImage = "",
|
|
29608
29784
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
29609
29785
|
className
|
|
29610
29786
|
}) {
|
|
@@ -29708,10 +29884,10 @@ var init_GameCanvas2D = __esm({
|
|
|
29708
29884
|
}
|
|
29709
29885
|
});
|
|
29710
29886
|
function HealthPanel({
|
|
29711
|
-
current,
|
|
29712
|
-
max,
|
|
29713
|
-
shield,
|
|
29714
|
-
label,
|
|
29887
|
+
current = 75,
|
|
29888
|
+
max = 100,
|
|
29889
|
+
shield = 20,
|
|
29890
|
+
label = "Player HP",
|
|
29715
29891
|
effects,
|
|
29716
29892
|
showNumbers = true,
|
|
29717
29893
|
size = "md",
|
|
@@ -29829,11 +30005,11 @@ var init_HealthPanel = __esm({
|
|
|
29829
30005
|
}
|
|
29830
30006
|
});
|
|
29831
30007
|
function ScoreBoard({
|
|
29832
|
-
score: rawScore,
|
|
29833
|
-
highScore: rawHighScore,
|
|
29834
|
-
combo: rawCombo,
|
|
29835
|
-
multiplier: rawMultiplier,
|
|
29836
|
-
level: rawLevel,
|
|
30008
|
+
score: rawScore = 4200,
|
|
30009
|
+
highScore: rawHighScore = 8750,
|
|
30010
|
+
combo: rawCombo = 3,
|
|
30011
|
+
multiplier: rawMultiplier = 2,
|
|
30012
|
+
level: rawLevel = 4,
|
|
29837
30013
|
className
|
|
29838
30014
|
}) {
|
|
29839
30015
|
const score = rawScore ?? 0;
|
|
@@ -29906,7 +30082,7 @@ var init_ScoreBoard = __esm({
|
|
|
29906
30082
|
}
|
|
29907
30083
|
});
|
|
29908
30084
|
function ResourceBar({
|
|
29909
|
-
resources,
|
|
30085
|
+
resources = DEFAULT_RESOURCES,
|
|
29910
30086
|
size = "md",
|
|
29911
30087
|
className
|
|
29912
30088
|
}) {
|
|
@@ -29932,21 +30108,27 @@ function ResourceBar({
|
|
|
29932
30108
|
}
|
|
29933
30109
|
);
|
|
29934
30110
|
}
|
|
30111
|
+
var DEFAULT_RESOURCES;
|
|
29935
30112
|
var init_ResourceBar = __esm({
|
|
29936
30113
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
29937
30114
|
"use client";
|
|
29938
30115
|
init_cn();
|
|
29939
30116
|
init_StatBadge();
|
|
29940
30117
|
init_Box();
|
|
30118
|
+
DEFAULT_RESOURCES = [
|
|
30119
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
30120
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
30121
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
30122
|
+
];
|
|
29941
30123
|
ResourceBar.displayName = "ResourceBar";
|
|
29942
30124
|
}
|
|
29943
30125
|
});
|
|
29944
30126
|
function TurnPanel({
|
|
29945
|
-
currentTurn,
|
|
29946
|
-
maxTurns,
|
|
29947
|
-
phase,
|
|
29948
|
-
activeTeam,
|
|
29949
|
-
actions,
|
|
30127
|
+
currentTurn = 3,
|
|
30128
|
+
maxTurns = 10,
|
|
30129
|
+
phase = "Attack",
|
|
30130
|
+
activeTeam = "Heroes",
|
|
30131
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
29950
30132
|
className
|
|
29951
30133
|
}) {
|
|
29952
30134
|
const eventBus = useEventBus();
|
|
@@ -29991,6 +30173,7 @@ function TurnPanel({
|
|
|
29991
30173
|
}
|
|
29992
30174
|
);
|
|
29993
30175
|
}
|
|
30176
|
+
var DEFAULT_TURN_ACTIONS;
|
|
29994
30177
|
var init_TurnPanel = __esm({
|
|
29995
30178
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
29996
30179
|
"use client";
|
|
@@ -29999,15 +30182,19 @@ var init_TurnPanel = __esm({
|
|
|
29999
30182
|
init_Button();
|
|
30000
30183
|
init_Box();
|
|
30001
30184
|
init_useEventBus();
|
|
30185
|
+
DEFAULT_TURN_ACTIONS = [
|
|
30186
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
30187
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
30188
|
+
];
|
|
30002
30189
|
TurnPanel.displayName = "TurnPanel";
|
|
30003
30190
|
}
|
|
30004
30191
|
});
|
|
30005
30192
|
function EnemyPlate({
|
|
30006
|
-
name,
|
|
30007
|
-
health,
|
|
30008
|
-
maxHealth,
|
|
30009
|
-
level,
|
|
30010
|
-
effects,
|
|
30193
|
+
name = "Shadow Guard",
|
|
30194
|
+
health = 80,
|
|
30195
|
+
maxHealth = 100,
|
|
30196
|
+
level = 5,
|
|
30197
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
30011
30198
|
className
|
|
30012
30199
|
}) {
|
|
30013
30200
|
return /* @__PURE__ */ jsxs(
|
|
@@ -30073,7 +30260,7 @@ function EnemyPlate({
|
|
|
30073
30260
|
}
|
|
30074
30261
|
);
|
|
30075
30262
|
}
|
|
30076
|
-
var effectVariantMap2;
|
|
30263
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
30077
30264
|
var init_EnemyPlate = __esm({
|
|
30078
30265
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
30079
30266
|
"use client";
|
|
@@ -30087,12 +30274,15 @@ var init_EnemyPlate = __esm({
|
|
|
30087
30274
|
debuff: "danger",
|
|
30088
30275
|
neutral: "neutral"
|
|
30089
30276
|
};
|
|
30277
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
30278
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
30279
|
+
];
|
|
30090
30280
|
EnemyPlate.displayName = "EnemyPlate";
|
|
30091
30281
|
}
|
|
30092
30282
|
});
|
|
30093
30283
|
function UnitCommandBar({
|
|
30094
|
-
commands,
|
|
30095
|
-
selectedUnitId,
|
|
30284
|
+
commands = DEFAULT_COMMANDS,
|
|
30285
|
+
selectedUnitId = "unit-1",
|
|
30096
30286
|
className
|
|
30097
30287
|
}) {
|
|
30098
30288
|
const eventBus = useEventBus();
|
|
@@ -30135,6 +30325,7 @@ function UnitCommandBar({
|
|
|
30135
30325
|
}
|
|
30136
30326
|
);
|
|
30137
30327
|
}
|
|
30328
|
+
var DEFAULT_COMMANDS;
|
|
30138
30329
|
var init_UnitCommandBar = __esm({
|
|
30139
30330
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
30140
30331
|
"use client";
|
|
@@ -30143,6 +30334,12 @@ var init_UnitCommandBar = __esm({
|
|
|
30143
30334
|
init_Box();
|
|
30144
30335
|
init_Typography();
|
|
30145
30336
|
init_useEventBus();
|
|
30337
|
+
DEFAULT_COMMANDS = [
|
|
30338
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
30339
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
30340
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
30341
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
30342
|
+
];
|
|
30146
30343
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
30147
30344
|
}
|
|
30148
30345
|
});
|
|
@@ -30176,7 +30373,7 @@ function GameHud({
|
|
|
30176
30373
|
className,
|
|
30177
30374
|
transparent = true
|
|
30178
30375
|
}) {
|
|
30179
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
30376
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
30180
30377
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
30181
30378
|
const position = propPosition ?? "corners";
|
|
30182
30379
|
if (position === "corners") {
|
|
@@ -30201,7 +30398,7 @@ function GameHud({
|
|
|
30201
30398
|
}
|
|
30202
30399
|
);
|
|
30203
30400
|
}
|
|
30204
|
-
var positionMap;
|
|
30401
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
30205
30402
|
var init_GameHud = __esm({
|
|
30206
30403
|
"components/game/molecules/GameHud.tsx"() {
|
|
30207
30404
|
init_cn();
|
|
@@ -30211,11 +30408,17 @@ var init_GameHud = __esm({
|
|
|
30211
30408
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
30212
30409
|
corners: "inset-0 pointer-events-none"
|
|
30213
30410
|
};
|
|
30411
|
+
DEFAULT_HUD_STATS = [
|
|
30412
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
30413
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
30414
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
30415
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
30416
|
+
];
|
|
30214
30417
|
GameHud.displayName = "GameHud";
|
|
30215
30418
|
}
|
|
30216
30419
|
});
|
|
30217
30420
|
function DialogueBox({
|
|
30218
|
-
dialogue,
|
|
30421
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
30219
30422
|
typewriterSpeed = 30,
|
|
30220
30423
|
position = "bottom",
|
|
30221
30424
|
onComplete,
|
|
@@ -30398,17 +30601,27 @@ function DialogueBox({
|
|
|
30398
30601
|
}
|
|
30399
30602
|
);
|
|
30400
30603
|
}
|
|
30604
|
+
var DEFAULT_DIALOGUE;
|
|
30401
30605
|
var init_DialogueBox = __esm({
|
|
30402
30606
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
30403
30607
|
"use client";
|
|
30404
30608
|
init_cn();
|
|
30405
30609
|
init_useEventBus();
|
|
30610
|
+
DEFAULT_DIALOGUE = {
|
|
30611
|
+
speaker: "Village Elder",
|
|
30612
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
30613
|
+
choices: [
|
|
30614
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
30615
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
30616
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
30617
|
+
]
|
|
30618
|
+
};
|
|
30406
30619
|
}
|
|
30407
30620
|
});
|
|
30408
30621
|
function InventoryPanel({
|
|
30409
|
-
items,
|
|
30410
|
-
slots,
|
|
30411
|
-
columns,
|
|
30622
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
30623
|
+
slots = 12,
|
|
30624
|
+
columns = 4,
|
|
30412
30625
|
selectedSlot,
|
|
30413
30626
|
onSelectSlot,
|
|
30414
30627
|
onUseItem,
|
|
@@ -30556,25 +30769,31 @@ function InventoryPanel({
|
|
|
30556
30769
|
)
|
|
30557
30770
|
] });
|
|
30558
30771
|
}
|
|
30772
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
30559
30773
|
var init_InventoryPanel = __esm({
|
|
30560
30774
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
30561
30775
|
"use client";
|
|
30562
30776
|
init_cn();
|
|
30563
30777
|
init_useEventBus();
|
|
30778
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
30779
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
30780
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
30781
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
30782
|
+
];
|
|
30564
30783
|
}
|
|
30565
30784
|
});
|
|
30566
30785
|
function GameMenu({
|
|
30567
|
-
title,
|
|
30786
|
+
title = "Epic Quest",
|
|
30568
30787
|
subtitle,
|
|
30569
30788
|
options,
|
|
30570
30789
|
menuItems,
|
|
30571
30790
|
onSelect,
|
|
30572
30791
|
eventBus: eventBusProp,
|
|
30573
30792
|
background,
|
|
30574
|
-
logo,
|
|
30793
|
+
logo = "",
|
|
30575
30794
|
className
|
|
30576
30795
|
}) {
|
|
30577
|
-
const resolvedOptions = options ?? menuItems ??
|
|
30796
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
30578
30797
|
let eventBusFromHook = null;
|
|
30579
30798
|
try {
|
|
30580
30799
|
eventBusFromHook = useEventBus();
|
|
@@ -30655,7 +30874,7 @@ function GameMenu({
|
|
|
30655
30874
|
}
|
|
30656
30875
|
);
|
|
30657
30876
|
}
|
|
30658
|
-
var variantMap3;
|
|
30877
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
30659
30878
|
var init_GameMenu = __esm({
|
|
30660
30879
|
"components/game/molecules/GameMenu.tsx"() {
|
|
30661
30880
|
"use client";
|
|
@@ -30666,6 +30885,11 @@ var init_GameMenu = __esm({
|
|
|
30666
30885
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30667
30886
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30668
30887
|
};
|
|
30888
|
+
DEFAULT_MENU_OPTIONS = [
|
|
30889
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
30890
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
30891
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
30892
|
+
];
|
|
30669
30893
|
GameMenu.displayName = "GameMenu";
|
|
30670
30894
|
}
|
|
30671
30895
|
});
|
|
@@ -30676,19 +30900,19 @@ function formatTime3(ms) {
|
|
|
30676
30900
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
30677
30901
|
}
|
|
30678
30902
|
function GameOverScreen({
|
|
30679
|
-
title,
|
|
30903
|
+
title = "Game Over",
|
|
30680
30904
|
message,
|
|
30681
|
-
stats =
|
|
30905
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
30682
30906
|
actions,
|
|
30683
30907
|
menuItems,
|
|
30684
30908
|
onAction,
|
|
30685
30909
|
eventBus: eventBusProp,
|
|
30686
|
-
variant = "
|
|
30687
|
-
highScore,
|
|
30688
|
-
currentScore,
|
|
30910
|
+
variant = "defeat",
|
|
30911
|
+
highScore = 2e3,
|
|
30912
|
+
currentScore = 1240,
|
|
30689
30913
|
className
|
|
30690
30914
|
}) {
|
|
30691
|
-
const resolvedActions = actions ?? menuItems ??
|
|
30915
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
30692
30916
|
let eventBusFromHook = null;
|
|
30693
30917
|
try {
|
|
30694
30918
|
eventBusFromHook = useEventBus();
|
|
@@ -30775,7 +30999,7 @@ function GameOverScreen({
|
|
|
30775
30999
|
}
|
|
30776
31000
|
);
|
|
30777
31001
|
}
|
|
30778
|
-
var variantColors, buttonVariants;
|
|
31002
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
30779
31003
|
var init_GameOverScreen = __esm({
|
|
30780
31004
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
30781
31005
|
"use client";
|
|
@@ -30804,21 +31028,35 @@ var init_GameOverScreen = __esm({
|
|
|
30804
31028
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30805
31029
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30806
31030
|
};
|
|
31031
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
31032
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
31033
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
31034
|
+
];
|
|
31035
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
31036
|
+
{ label: "Score", value: 1240 },
|
|
31037
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
31038
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
31039
|
+
];
|
|
30807
31040
|
GameOverScreen.displayName = "GameOverScreen";
|
|
30808
31041
|
}
|
|
30809
31042
|
});
|
|
30810
31043
|
function PlatformerCanvas({
|
|
30811
31044
|
player,
|
|
30812
|
-
platforms = [
|
|
31045
|
+
platforms = [
|
|
31046
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
31047
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
31048
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
31049
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
31050
|
+
],
|
|
30813
31051
|
worldWidth = 800,
|
|
30814
31052
|
worldHeight = 400,
|
|
30815
31053
|
canvasWidth = 800,
|
|
30816
31054
|
canvasHeight = 400,
|
|
30817
31055
|
followCamera = true,
|
|
30818
|
-
bgColor,
|
|
31056
|
+
bgColor = "#5c94fc",
|
|
30819
31057
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
30820
31058
|
tileSprites,
|
|
30821
|
-
backgroundImage = "
|
|
31059
|
+
backgroundImage = "",
|
|
30822
31060
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
30823
31061
|
leftEvent = "MOVE_LEFT",
|
|
30824
31062
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -30866,10 +31104,10 @@ function PlatformerCanvas({
|
|
|
30866
31104
|
};
|
|
30867
31105
|
}, []);
|
|
30868
31106
|
const resolvedPlayer = player ?? {
|
|
30869
|
-
x:
|
|
30870
|
-
y:
|
|
30871
|
-
width:
|
|
30872
|
-
height:
|
|
31107
|
+
x: 80,
|
|
31108
|
+
y: 336,
|
|
31109
|
+
width: 32,
|
|
31110
|
+
height: 48,
|
|
30873
31111
|
facingRight: true
|
|
30874
31112
|
};
|
|
30875
31113
|
const handleKeyDown = useCallback((e) => {
|
|
@@ -49158,12 +49396,12 @@ function WorldMapTemplate({
|
|
|
49158
49396
|
entity,
|
|
49159
49397
|
scale = 0.4,
|
|
49160
49398
|
unitScale = 2.5,
|
|
49161
|
-
diamondTopY,
|
|
49399
|
+
diamondTopY = 374,
|
|
49162
49400
|
allowMoveAllHeroes = false,
|
|
49163
|
-
tiles,
|
|
49164
|
-
units,
|
|
49165
|
-
features,
|
|
49166
|
-
assetManifest,
|
|
49401
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
49402
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
49403
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
49404
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
49167
49405
|
className
|
|
49168
49406
|
}) {
|
|
49169
49407
|
return /* @__PURE__ */ jsx(
|
|
@@ -49186,9 +49424,63 @@ function WorldMapTemplate({
|
|
|
49186
49424
|
}
|
|
49187
49425
|
);
|
|
49188
49426
|
}
|
|
49427
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
49189
49428
|
var init_WorldMapTemplate = __esm({
|
|
49190
49429
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
49191
49430
|
init_WorldMapBoard();
|
|
49431
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
49432
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
49433
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49434
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49435
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49436
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49437
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49438
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49439
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49440
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49441
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49442
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49443
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49444
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49445
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49446
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49447
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49448
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49449
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49450
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49451
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49452
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49453
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49454
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49455
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49456
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49457
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
49458
|
+
];
|
|
49459
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
49460
|
+
{ 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` },
|
|
49461
|
+
{ 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` }
|
|
49462
|
+
];
|
|
49463
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
49464
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
49465
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
49466
|
+
];
|
|
49467
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
49468
|
+
baseUrl: CDN3,
|
|
49469
|
+
terrains: {
|
|
49470
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
49471
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
49472
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
49473
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
49474
|
+
},
|
|
49475
|
+
units: {
|
|
49476
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
49477
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
49478
|
+
},
|
|
49479
|
+
features: {
|
|
49480
|
+
capital: "/scenes/world/capital.png",
|
|
49481
|
+
power_node: "/world-map/power_node.png"
|
|
49482
|
+
}
|
|
49483
|
+
};
|
|
49192
49484
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
49193
49485
|
}
|
|
49194
49486
|
});
|