@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.cjs
CHANGED
|
@@ -10739,8 +10739,8 @@ var init_TraitFrame = __esm({
|
|
|
10739
10739
|
}
|
|
10740
10740
|
});
|
|
10741
10741
|
function HealthBar({
|
|
10742
|
-
current,
|
|
10743
|
-
max,
|
|
10742
|
+
current = 3,
|
|
10743
|
+
max = 5,
|
|
10744
10744
|
format = "hearts",
|
|
10745
10745
|
size = "md",
|
|
10746
10746
|
className,
|
|
@@ -10989,11 +10989,11 @@ var init_ControlButton = __esm({
|
|
|
10989
10989
|
});
|
|
10990
10990
|
function Sprite({
|
|
10991
10991
|
spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
|
|
10992
|
-
frameWidth,
|
|
10993
|
-
frameHeight,
|
|
10994
|
-
frame,
|
|
10995
|
-
x,
|
|
10996
|
-
y,
|
|
10992
|
+
frameWidth = 64,
|
|
10993
|
+
frameHeight = 64,
|
|
10994
|
+
frame = 0,
|
|
10995
|
+
x = 0,
|
|
10996
|
+
y = 0,
|
|
10997
10997
|
scale = 1,
|
|
10998
10998
|
flipX = false,
|
|
10999
10999
|
flipY = false,
|
|
@@ -11063,7 +11063,7 @@ var init_Sprite = __esm({
|
|
|
11063
11063
|
}
|
|
11064
11064
|
});
|
|
11065
11065
|
function StateIndicator({
|
|
11066
|
-
state,
|
|
11066
|
+
state = "idle",
|
|
11067
11067
|
label,
|
|
11068
11068
|
size = "md",
|
|
11069
11069
|
animated = true,
|
|
@@ -11134,8 +11134,8 @@ function formatTime(seconds, format) {
|
|
|
11134
11134
|
return `${mins.toString().padStart(2, "0")}:${padded}`;
|
|
11135
11135
|
}
|
|
11136
11136
|
function TimerDisplay({
|
|
11137
|
-
seconds,
|
|
11138
|
-
running,
|
|
11137
|
+
seconds = 90,
|
|
11138
|
+
running = true,
|
|
11139
11139
|
format = "mm:ss",
|
|
11140
11140
|
size = "md",
|
|
11141
11141
|
className,
|
|
@@ -11172,8 +11172,8 @@ var init_TimerDisplay = __esm({
|
|
|
11172
11172
|
});
|
|
11173
11173
|
function ResourceCounter({
|
|
11174
11174
|
icon,
|
|
11175
|
-
label,
|
|
11176
|
-
value,
|
|
11175
|
+
label = "Gold",
|
|
11176
|
+
value = 250,
|
|
11177
11177
|
max,
|
|
11178
11178
|
color,
|
|
11179
11179
|
size = "md",
|
|
@@ -11225,10 +11225,11 @@ var init_ResourceCounter = __esm({
|
|
|
11225
11225
|
}
|
|
11226
11226
|
});
|
|
11227
11227
|
function ItemSlot({
|
|
11228
|
-
|
|
11229
|
-
|
|
11228
|
+
assetUrl = DEFAULT_ASSET_URL,
|
|
11229
|
+
icon = "sword",
|
|
11230
|
+
label = "Iron Sword",
|
|
11230
11231
|
quantity,
|
|
11231
|
-
rarity = "
|
|
11232
|
+
rarity = "uncommon",
|
|
11232
11233
|
empty,
|
|
11233
11234
|
size = "md",
|
|
11234
11235
|
selected,
|
|
@@ -11236,6 +11237,7 @@ function ItemSlot({
|
|
|
11236
11237
|
className
|
|
11237
11238
|
}) {
|
|
11238
11239
|
const isClickable = onClick != null;
|
|
11240
|
+
const px = assetSizeMap[size];
|
|
11239
11241
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11240
11242
|
"button",
|
|
11241
11243
|
{
|
|
@@ -11256,7 +11258,17 @@ function ItemSlot({
|
|
|
11256
11258
|
className
|
|
11257
11259
|
),
|
|
11258
11260
|
children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
11259
|
-
|
|
11261
|
+
assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
11262
|
+
"img",
|
|
11263
|
+
{
|
|
11264
|
+
src: assetUrl,
|
|
11265
|
+
alt: label,
|
|
11266
|
+
width: px,
|
|
11267
|
+
height: px,
|
|
11268
|
+
style: { imageRendering: "pixelated", objectFit: "contain" },
|
|
11269
|
+
className: "flex-shrink-0"
|
|
11270
|
+
}
|
|
11271
|
+
) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }) : null,
|
|
11260
11272
|
quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
11261
11273
|
"span",
|
|
11262
11274
|
{
|
|
@@ -11272,7 +11284,7 @@ function ItemSlot({
|
|
|
11272
11284
|
}
|
|
11273
11285
|
);
|
|
11274
11286
|
}
|
|
11275
|
-
var sizeMap6, rarityBorderMap, rarityGlowMap;
|
|
11287
|
+
var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
|
|
11276
11288
|
var init_ItemSlot = __esm({
|
|
11277
11289
|
"components/game/atoms/ItemSlot.tsx"() {
|
|
11278
11290
|
"use client";
|
|
@@ -11297,11 +11309,17 @@ var init_ItemSlot = __esm({
|
|
|
11297
11309
|
epic: "shadow-lg",
|
|
11298
11310
|
legendary: "shadow-lg"
|
|
11299
11311
|
};
|
|
11312
|
+
DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
|
|
11313
|
+
assetSizeMap = {
|
|
11314
|
+
sm: 28,
|
|
11315
|
+
md: 40,
|
|
11316
|
+
lg: 56
|
|
11317
|
+
};
|
|
11300
11318
|
ItemSlot.displayName = "ItemSlot";
|
|
11301
11319
|
}
|
|
11302
11320
|
});
|
|
11303
11321
|
function TurnIndicator({
|
|
11304
|
-
currentTurn,
|
|
11322
|
+
currentTurn = 1,
|
|
11305
11323
|
maxTurns,
|
|
11306
11324
|
activeTeam,
|
|
11307
11325
|
phase,
|
|
@@ -11364,7 +11382,7 @@ function getComboScale(combo) {
|
|
|
11364
11382
|
return "";
|
|
11365
11383
|
}
|
|
11366
11384
|
function ComboCounter({
|
|
11367
|
-
combo,
|
|
11385
|
+
combo = 5,
|
|
11368
11386
|
multiplier,
|
|
11369
11387
|
streak,
|
|
11370
11388
|
size = "md",
|
|
@@ -11410,10 +11428,10 @@ var init_ComboCounter = __esm({
|
|
|
11410
11428
|
}
|
|
11411
11429
|
});
|
|
11412
11430
|
function XPBar({
|
|
11413
|
-
current,
|
|
11414
|
-
max,
|
|
11415
|
-
level,
|
|
11416
|
-
showLabel =
|
|
11431
|
+
current = 350,
|
|
11432
|
+
max = 1e3,
|
|
11433
|
+
level = 5,
|
|
11434
|
+
showLabel = true,
|
|
11417
11435
|
size = "md",
|
|
11418
11436
|
animated = true,
|
|
11419
11437
|
className
|
|
@@ -11496,7 +11514,7 @@ var init_XPBar = __esm({
|
|
|
11496
11514
|
function WaypointMarker({
|
|
11497
11515
|
label,
|
|
11498
11516
|
icon,
|
|
11499
|
-
active =
|
|
11517
|
+
active = true,
|
|
11500
11518
|
completed = false,
|
|
11501
11519
|
size = "md",
|
|
11502
11520
|
className
|
|
@@ -11570,11 +11588,11 @@ function formatDuration(seconds) {
|
|
|
11570
11588
|
return `${Math.round(seconds)}s`;
|
|
11571
11589
|
}
|
|
11572
11590
|
function StatusEffect({
|
|
11573
|
-
icon,
|
|
11574
|
-
label,
|
|
11575
|
-
duration,
|
|
11591
|
+
icon = "shield",
|
|
11592
|
+
label = "Shield",
|
|
11593
|
+
duration = 30,
|
|
11576
11594
|
stacks,
|
|
11577
|
-
variant = "
|
|
11595
|
+
variant = "buff",
|
|
11578
11596
|
size = "md",
|
|
11579
11597
|
className
|
|
11580
11598
|
}) {
|
|
@@ -11636,7 +11654,7 @@ var init_StatusEffect = __esm({
|
|
|
11636
11654
|
}
|
|
11637
11655
|
});
|
|
11638
11656
|
function DamageNumber({
|
|
11639
|
-
value,
|
|
11657
|
+
value = 42,
|
|
11640
11658
|
type = "damage",
|
|
11641
11659
|
size = "md",
|
|
11642
11660
|
className
|
|
@@ -11685,8 +11703,8 @@ var init_DamageNumber = __esm({
|
|
|
11685
11703
|
}
|
|
11686
11704
|
});
|
|
11687
11705
|
function DialogueBubble({
|
|
11688
|
-
speaker,
|
|
11689
|
-
text,
|
|
11706
|
+
speaker = "Hero",
|
|
11707
|
+
text = "The dungeon awaits. Choose your path wisely.",
|
|
11690
11708
|
portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
|
|
11691
11709
|
position = "bottom",
|
|
11692
11710
|
className
|
|
@@ -11723,7 +11741,7 @@ var init_DialogueBubble = __esm({
|
|
|
11723
11741
|
}
|
|
11724
11742
|
});
|
|
11725
11743
|
function ChoiceButton({
|
|
11726
|
-
text,
|
|
11744
|
+
text = "Charge forward into the fray",
|
|
11727
11745
|
index,
|
|
11728
11746
|
disabled = false,
|
|
11729
11747
|
selected = false,
|
|
@@ -11769,7 +11787,7 @@ var init_ChoiceButton = __esm({
|
|
|
11769
11787
|
}
|
|
11770
11788
|
});
|
|
11771
11789
|
function ActionButton({
|
|
11772
|
-
label,
|
|
11790
|
+
label = "Attack",
|
|
11773
11791
|
icon,
|
|
11774
11792
|
cooldown = 0,
|
|
11775
11793
|
disabled = false,
|
|
@@ -11849,13 +11867,13 @@ var init_ActionButton = __esm({
|
|
|
11849
11867
|
}
|
|
11850
11868
|
});
|
|
11851
11869
|
function MiniMap({
|
|
11852
|
-
tiles =
|
|
11853
|
-
units =
|
|
11870
|
+
tiles = DEFAULT_TILES,
|
|
11871
|
+
units = DEFAULT_UNITS,
|
|
11854
11872
|
width = 150,
|
|
11855
11873
|
height = 150,
|
|
11856
11874
|
mapWidth = 100,
|
|
11857
11875
|
mapHeight = 100,
|
|
11858
|
-
viewportRect,
|
|
11876
|
+
viewportRect = DEFAULT_VIEWPORT,
|
|
11859
11877
|
className
|
|
11860
11878
|
}) {
|
|
11861
11879
|
const canvasRef = React91__namespace.useRef(null);
|
|
@@ -11934,10 +11952,25 @@ function MiniMap({
|
|
|
11934
11952
|
}
|
|
11935
11953
|
);
|
|
11936
11954
|
}
|
|
11955
|
+
var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
|
|
11937
11956
|
var init_MiniMap = __esm({
|
|
11938
11957
|
"components/game/atoms/MiniMap.tsx"() {
|
|
11939
11958
|
"use client";
|
|
11940
11959
|
init_cn();
|
|
11960
|
+
DEFAULT_TILES = [
|
|
11961
|
+
{ x: 10, y: 10, color: "#4ade80" },
|
|
11962
|
+
{ x: 20, y: 15, color: "#4ade80" },
|
|
11963
|
+
{ x: 30, y: 25, color: "#22c55e" },
|
|
11964
|
+
{ x: 50, y: 40, color: "#4ade80" },
|
|
11965
|
+
{ x: 60, y: 55, color: "#16a34a" },
|
|
11966
|
+
{ x: 40, y: 60, color: "#4ade80" },
|
|
11967
|
+
{ x: 70, y: 30, color: "#22c55e" },
|
|
11968
|
+
{ x: 80, y: 70, color: "#4ade80" }
|
|
11969
|
+
];
|
|
11970
|
+
DEFAULT_UNITS = [
|
|
11971
|
+
{ x: 30, y: 30, color: "#60a5fa", isPlayer: true }
|
|
11972
|
+
];
|
|
11973
|
+
DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
|
|
11941
11974
|
MiniMap.displayName = "MiniMap";
|
|
11942
11975
|
}
|
|
11943
11976
|
});
|
|
@@ -13060,7 +13093,7 @@ var init_Accordion = __esm({
|
|
|
13060
13093
|
}
|
|
13061
13094
|
});
|
|
13062
13095
|
function ActionButtons({
|
|
13063
|
-
buttons,
|
|
13096
|
+
buttons = DEFAULT_BUTTONS,
|
|
13064
13097
|
onAction,
|
|
13065
13098
|
actionEvent,
|
|
13066
13099
|
layout = "horizontal",
|
|
@@ -13167,7 +13200,7 @@ function ActionButtons({
|
|
|
13167
13200
|
button.id
|
|
13168
13201
|
)) });
|
|
13169
13202
|
}
|
|
13170
|
-
var sizeMap14, layoutMap;
|
|
13203
|
+
var sizeMap14, layoutMap, DEFAULT_BUTTONS;
|
|
13171
13204
|
var init_ActionButtons = __esm({
|
|
13172
13205
|
"components/game/molecules/ActionButtons.tsx"() {
|
|
13173
13206
|
"use client";
|
|
@@ -13184,6 +13217,11 @@ var init_ActionButtons = __esm({
|
|
|
13184
13217
|
vertical: "flex flex-col gap-2",
|
|
13185
13218
|
diamond: "grid grid-cols-3 gap-1"
|
|
13186
13219
|
};
|
|
13220
|
+
DEFAULT_BUTTONS = [
|
|
13221
|
+
{ id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
|
|
13222
|
+
{ id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
|
|
13223
|
+
{ id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
|
|
13224
|
+
];
|
|
13187
13225
|
ActionButtons.displayName = "ActionButtons";
|
|
13188
13226
|
}
|
|
13189
13227
|
});
|
|
@@ -14376,7 +14414,7 @@ function IsometricCanvas({
|
|
|
14376
14414
|
// Rendering options
|
|
14377
14415
|
scale = 0.4,
|
|
14378
14416
|
debug: debug2 = false,
|
|
14379
|
-
backgroundImage = "
|
|
14417
|
+
backgroundImage = "",
|
|
14380
14418
|
showMinimap = true,
|
|
14381
14419
|
enableCamera = true,
|
|
14382
14420
|
unitScale = 1,
|
|
@@ -15514,10 +15552,10 @@ function BattleTemplate({
|
|
|
15514
15552
|
entity,
|
|
15515
15553
|
scale = 0.45,
|
|
15516
15554
|
unitScale = 1,
|
|
15517
|
-
tiles,
|
|
15518
|
-
units,
|
|
15519
|
-
features,
|
|
15520
|
-
assetManifest,
|
|
15555
|
+
tiles = DEFAULT_BATTLE_TILES,
|
|
15556
|
+
units = DEFAULT_BATTLE_UNITS,
|
|
15557
|
+
features = DEFAULT_BATTLE_FEATURES,
|
|
15558
|
+
assetManifest = DEFAULT_BATTLE_MANIFEST,
|
|
15521
15559
|
className
|
|
15522
15560
|
}) {
|
|
15523
15561
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -15543,9 +15581,62 @@ function BattleTemplate({
|
|
|
15543
15581
|
}
|
|
15544
15582
|
);
|
|
15545
15583
|
}
|
|
15584
|
+
var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
|
|
15546
15585
|
var init_BattleTemplate = __esm({
|
|
15547
15586
|
"components/game/templates/BattleTemplate.tsx"() {
|
|
15548
15587
|
init_BattleBoard();
|
|
15588
|
+
CDN = "https://almadar-kflow-assets.web.app/shared";
|
|
15589
|
+
DEFAULT_BATTLE_TILES = [
|
|
15590
|
+
{ x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15591
|
+
{ x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15592
|
+
{ x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15593
|
+
{ x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15594
|
+
{ x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15595
|
+
{ x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15596
|
+
{ x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15597
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15598
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15599
|
+
{ x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15600
|
+
{ x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15601
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15602
|
+
{ x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15603
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15604
|
+
{ x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15605
|
+
{ x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15606
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15607
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
|
|
15608
|
+
{ x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
|
|
15609
|
+
{ x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15610
|
+
{ x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15611
|
+
{ x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15612
|
+
{ x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15613
|
+
{ x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
|
|
15614
|
+
{ x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
|
|
15615
|
+
];
|
|
15616
|
+
DEFAULT_BATTLE_UNITS = [
|
|
15617
|
+
{ 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` },
|
|
15618
|
+
{ 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` }
|
|
15619
|
+
];
|
|
15620
|
+
DEFAULT_BATTLE_FEATURES = [
|
|
15621
|
+
{ id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
|
|
15622
|
+
{ id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
|
|
15623
|
+
];
|
|
15624
|
+
DEFAULT_BATTLE_MANIFEST = {
|
|
15625
|
+
baseUrl: CDN,
|
|
15626
|
+
terrains: {
|
|
15627
|
+
stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
|
|
15628
|
+
dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
|
|
15629
|
+
grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
|
|
15630
|
+
},
|
|
15631
|
+
units: {
|
|
15632
|
+
worker: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
15633
|
+
guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
|
|
15634
|
+
},
|
|
15635
|
+
features: {
|
|
15636
|
+
gold_mine: "/world-map/gold_mine.png",
|
|
15637
|
+
portal: "/world-map/portal_open.png"
|
|
15638
|
+
}
|
|
15639
|
+
};
|
|
15549
15640
|
BattleTemplate.displayName = "BattleTemplate";
|
|
15550
15641
|
}
|
|
15551
15642
|
});
|
|
@@ -22716,10 +22807,10 @@ var init_CastleBoard = __esm({
|
|
|
22716
22807
|
function CastleTemplate({
|
|
22717
22808
|
entity,
|
|
22718
22809
|
scale = 0.45,
|
|
22719
|
-
tiles,
|
|
22720
|
-
units,
|
|
22721
|
-
features,
|
|
22722
|
-
assetManifest,
|
|
22810
|
+
tiles = DEFAULT_CASTLE_TILES,
|
|
22811
|
+
units = DEFAULT_CASTLE_UNITS,
|
|
22812
|
+
features = DEFAULT_CASTLE_FEATURES,
|
|
22813
|
+
assetManifest = DEFAULT_CASTLE_MANIFEST,
|
|
22723
22814
|
className
|
|
22724
22815
|
}) {
|
|
22725
22816
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
@@ -22740,9 +22831,61 @@ function CastleTemplate({
|
|
|
22740
22831
|
}
|
|
22741
22832
|
);
|
|
22742
22833
|
}
|
|
22834
|
+
var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
|
|
22743
22835
|
var init_CastleTemplate = __esm({
|
|
22744
22836
|
"components/game/templates/CastleTemplate.tsx"() {
|
|
22745
22837
|
init_CastleBoard();
|
|
22838
|
+
CDN2 = "https://almadar-kflow-assets.web.app/shared";
|
|
22839
|
+
DEFAULT_CASTLE_TILES = [
|
|
22840
|
+
{ x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22841
|
+
{ x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22842
|
+
{ x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22843
|
+
{ x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22844
|
+
{ x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22845
|
+
{ x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22846
|
+
{ x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22847
|
+
{ x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22848
|
+
{ x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22849
|
+
{ x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22850
|
+
{ x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22851
|
+
{ x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22852
|
+
{ x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
|
|
22853
|
+
{ x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22854
|
+
{ x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22855
|
+
{ x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22856
|
+
{ x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22857
|
+
{ x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22858
|
+
{ x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
22859
|
+
{ x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22860
|
+
{ x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22861
|
+
{ x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22862
|
+
{ x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22863
|
+
{ x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
|
|
22864
|
+
{ x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
|
|
22865
|
+
];
|
|
22866
|
+
DEFAULT_CASTLE_UNITS = [
|
|
22867
|
+
{ 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` },
|
|
22868
|
+
{ 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` }
|
|
22869
|
+
];
|
|
22870
|
+
DEFAULT_CASTLE_FEATURES = [
|
|
22871
|
+
{ id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
|
|
22872
|
+
{ id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
|
|
22873
|
+
];
|
|
22874
|
+
DEFAULT_CASTLE_MANIFEST = {
|
|
22875
|
+
baseUrl: CDN2,
|
|
22876
|
+
terrains: {
|
|
22877
|
+
wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
|
|
22878
|
+
floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
|
|
22879
|
+
},
|
|
22880
|
+
units: {
|
|
22881
|
+
worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
|
|
22882
|
+
guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
|
|
22883
|
+
},
|
|
22884
|
+
features: {
|
|
22885
|
+
chest: "/world-map/treasure_chest_closed.png",
|
|
22886
|
+
crystal: "/world-map/resonance_crystal.png"
|
|
22887
|
+
}
|
|
22888
|
+
};
|
|
22746
22889
|
CastleTemplate.displayName = "CastleTemplate";
|
|
22747
22890
|
}
|
|
22748
22891
|
});
|
|
@@ -23864,7 +24007,7 @@ var init_CodeRunnerPanel = __esm({
|
|
|
23864
24007
|
}
|
|
23865
24008
|
});
|
|
23866
24009
|
function CombatLog({
|
|
23867
|
-
events: events2,
|
|
24010
|
+
events: events2 = DEFAULT_COMBAT_EVENTS,
|
|
23868
24011
|
maxVisible = 50,
|
|
23869
24012
|
autoScroll = true,
|
|
23870
24013
|
showTimestamps = false,
|
|
@@ -23915,7 +24058,7 @@ function CombatLog({
|
|
|
23915
24058
|
}) }) })
|
|
23916
24059
|
] });
|
|
23917
24060
|
}
|
|
23918
|
-
var eventIcons, eventColors, eventBadgeVariants;
|
|
24061
|
+
var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
|
|
23919
24062
|
var init_CombatLog = __esm({
|
|
23920
24063
|
"components/game/molecules/CombatLog.tsx"() {
|
|
23921
24064
|
init_atoms2();
|
|
@@ -23947,6 +24090,13 @@ var init_CombatLog = __esm({
|
|
|
23947
24090
|
death: "secondary",
|
|
23948
24091
|
spawn: "secondary"
|
|
23949
24092
|
};
|
|
24093
|
+
DEFAULT_COMBAT_EVENTS = [
|
|
24094
|
+
{ id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
|
|
24095
|
+
{ id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
|
|
24096
|
+
{ id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
|
|
24097
|
+
{ id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
|
|
24098
|
+
{ id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
|
|
24099
|
+
];
|
|
23950
24100
|
CombatLog.displayName = "CombatLog";
|
|
23951
24101
|
}
|
|
23952
24102
|
});
|
|
@@ -24354,9 +24504,9 @@ function isValidRarity(value) {
|
|
|
24354
24504
|
return rarityValues.includes(value);
|
|
24355
24505
|
}
|
|
24356
24506
|
function CraftingRecipe({
|
|
24357
|
-
inputs,
|
|
24358
|
-
output,
|
|
24359
|
-
canCraft =
|
|
24507
|
+
inputs = DEFAULT_INPUTS,
|
|
24508
|
+
output = DEFAULT_OUTPUT,
|
|
24509
|
+
canCraft = true,
|
|
24360
24510
|
onCraft,
|
|
24361
24511
|
craftEvent,
|
|
24362
24512
|
className
|
|
@@ -24417,7 +24567,7 @@ function CraftingRecipe({
|
|
|
24417
24567
|
}
|
|
24418
24568
|
);
|
|
24419
24569
|
}
|
|
24420
|
-
var rarityValues;
|
|
24570
|
+
var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
|
|
24421
24571
|
var init_CraftingRecipe = __esm({
|
|
24422
24572
|
"components/game/molecules/CraftingRecipe.tsx"() {
|
|
24423
24573
|
"use client";
|
|
@@ -24429,6 +24579,15 @@ var init_CraftingRecipe = __esm({
|
|
|
24429
24579
|
init_Stack();
|
|
24430
24580
|
init_Icon();
|
|
24431
24581
|
rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
|
|
24582
|
+
DEFAULT_INPUTS = [
|
|
24583
|
+
{ icon: "gem", label: "Iron Ore", required: 2, available: 3 },
|
|
24584
|
+
{ icon: "flame", label: "Coal", required: 1, available: 1 }
|
|
24585
|
+
];
|
|
24586
|
+
DEFAULT_OUTPUT = {
|
|
24587
|
+
icon: "sword",
|
|
24588
|
+
label: "Iron Sword",
|
|
24589
|
+
rarity: "uncommon"
|
|
24590
|
+
};
|
|
24432
24591
|
CraftingRecipe.displayName = "CraftingRecipe";
|
|
24433
24592
|
}
|
|
24434
24593
|
});
|
|
@@ -29425,10 +29584,10 @@ var init_StatBadge = __esm({
|
|
|
29425
29584
|
}
|
|
29426
29585
|
});
|
|
29427
29586
|
function InventoryGrid({
|
|
29428
|
-
items,
|
|
29587
|
+
items = DEFAULT_GRID_ITEMS,
|
|
29429
29588
|
columns = 4,
|
|
29430
|
-
totalSlots,
|
|
29431
|
-
selectedId,
|
|
29589
|
+
totalSlots = 12,
|
|
29590
|
+
selectedId = "",
|
|
29432
29591
|
onSelect,
|
|
29433
29592
|
selectEvent,
|
|
29434
29593
|
size = "md",
|
|
@@ -29477,7 +29636,7 @@ function InventoryGrid({
|
|
|
29477
29636
|
}
|
|
29478
29637
|
);
|
|
29479
29638
|
}
|
|
29480
|
-
var columnMap;
|
|
29639
|
+
var columnMap, DEFAULT_GRID_ITEMS;
|
|
29481
29640
|
var init_InventoryGrid = __esm({
|
|
29482
29641
|
"components/game/molecules/InventoryGrid.tsx"() {
|
|
29483
29642
|
"use client";
|
|
@@ -29494,12 +29653,18 @@ var init_InventoryGrid = __esm({
|
|
|
29494
29653
|
7: "grid-cols-7",
|
|
29495
29654
|
8: "grid-cols-8"
|
|
29496
29655
|
};
|
|
29656
|
+
DEFAULT_GRID_ITEMS = [
|
|
29657
|
+
{ id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
|
|
29658
|
+
{ id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
|
|
29659
|
+
{ id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
|
|
29660
|
+
{ id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
|
|
29661
|
+
];
|
|
29497
29662
|
InventoryGrid.displayName = "InventoryGrid";
|
|
29498
29663
|
}
|
|
29499
29664
|
});
|
|
29500
29665
|
function QuestTracker({
|
|
29501
|
-
quests,
|
|
29502
|
-
activeQuestId,
|
|
29666
|
+
quests = DEFAULT_QUESTS,
|
|
29667
|
+
activeQuestId = "q2",
|
|
29503
29668
|
className
|
|
29504
29669
|
}) {
|
|
29505
29670
|
return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
|
|
@@ -29565,6 +29730,7 @@ function QuestTracker({
|
|
|
29565
29730
|
);
|
|
29566
29731
|
}) });
|
|
29567
29732
|
}
|
|
29733
|
+
var DEFAULT_QUESTS;
|
|
29568
29734
|
var init_QuestTracker = __esm({
|
|
29569
29735
|
"components/game/molecules/QuestTracker.tsx"() {
|
|
29570
29736
|
"use client";
|
|
@@ -29574,6 +29740,11 @@ var init_QuestTracker = __esm({
|
|
|
29574
29740
|
init_Typography();
|
|
29575
29741
|
init_Box();
|
|
29576
29742
|
init_Stack();
|
|
29743
|
+
DEFAULT_QUESTS = [
|
|
29744
|
+
{ id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
|
|
29745
|
+
{ id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
|
|
29746
|
+
{ id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
|
|
29747
|
+
];
|
|
29577
29748
|
QuestTracker.displayName = "QuestTracker";
|
|
29578
29749
|
}
|
|
29579
29750
|
});
|
|
@@ -29586,7 +29757,7 @@ function formatTime2(seconds) {
|
|
|
29586
29757
|
return `${seconds}s`;
|
|
29587
29758
|
}
|
|
29588
29759
|
function PowerupSlots({
|
|
29589
|
-
active,
|
|
29760
|
+
active = DEFAULT_ACTIVE_POWERUPS,
|
|
29590
29761
|
maxSlots = 4,
|
|
29591
29762
|
className
|
|
29592
29763
|
}) {
|
|
@@ -29631,6 +29802,7 @@ function PowerupSlots({
|
|
|
29631
29802
|
))
|
|
29632
29803
|
] });
|
|
29633
29804
|
}
|
|
29805
|
+
var DEFAULT_ACTIVE_POWERUPS;
|
|
29634
29806
|
var init_PowerupSlots = __esm({
|
|
29635
29807
|
"components/game/molecules/PowerupSlots.tsx"() {
|
|
29636
29808
|
"use client";
|
|
@@ -29639,6 +29811,10 @@ var init_PowerupSlots = __esm({
|
|
|
29639
29811
|
init_Box();
|
|
29640
29812
|
init_Stack();
|
|
29641
29813
|
init_Typography();
|
|
29814
|
+
DEFAULT_ACTIVE_POWERUPS = [
|
|
29815
|
+
{ id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
|
|
29816
|
+
{ id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
|
|
29817
|
+
];
|
|
29642
29818
|
PowerupSlots.displayName = "PowerupSlots";
|
|
29643
29819
|
}
|
|
29644
29820
|
});
|
|
@@ -29650,7 +29826,7 @@ function GameCanvas2D({
|
|
|
29650
29826
|
tickEvent,
|
|
29651
29827
|
drawEvent,
|
|
29652
29828
|
fps = 60,
|
|
29653
|
-
backgroundImage = "
|
|
29829
|
+
backgroundImage = "",
|
|
29654
29830
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
29655
29831
|
className
|
|
29656
29832
|
}) {
|
|
@@ -29754,10 +29930,10 @@ var init_GameCanvas2D = __esm({
|
|
|
29754
29930
|
}
|
|
29755
29931
|
});
|
|
29756
29932
|
function HealthPanel({
|
|
29757
|
-
current,
|
|
29758
|
-
max,
|
|
29759
|
-
shield,
|
|
29760
|
-
label,
|
|
29933
|
+
current = 75,
|
|
29934
|
+
max = 100,
|
|
29935
|
+
shield = 20,
|
|
29936
|
+
label = "Player HP",
|
|
29761
29937
|
effects,
|
|
29762
29938
|
showNumbers = true,
|
|
29763
29939
|
size = "md",
|
|
@@ -29875,11 +30051,11 @@ var init_HealthPanel = __esm({
|
|
|
29875
30051
|
}
|
|
29876
30052
|
});
|
|
29877
30053
|
function ScoreBoard({
|
|
29878
|
-
score: rawScore,
|
|
29879
|
-
highScore: rawHighScore,
|
|
29880
|
-
combo: rawCombo,
|
|
29881
|
-
multiplier: rawMultiplier,
|
|
29882
|
-
level: rawLevel,
|
|
30054
|
+
score: rawScore = 4200,
|
|
30055
|
+
highScore: rawHighScore = 8750,
|
|
30056
|
+
combo: rawCombo = 3,
|
|
30057
|
+
multiplier: rawMultiplier = 2,
|
|
30058
|
+
level: rawLevel = 4,
|
|
29883
30059
|
className
|
|
29884
30060
|
}) {
|
|
29885
30061
|
const score = rawScore ?? 0;
|
|
@@ -29952,7 +30128,7 @@ var init_ScoreBoard = __esm({
|
|
|
29952
30128
|
}
|
|
29953
30129
|
});
|
|
29954
30130
|
function ResourceBar({
|
|
29955
|
-
resources,
|
|
30131
|
+
resources = DEFAULT_RESOURCES,
|
|
29956
30132
|
size = "md",
|
|
29957
30133
|
className
|
|
29958
30134
|
}) {
|
|
@@ -29978,21 +30154,27 @@ function ResourceBar({
|
|
|
29978
30154
|
}
|
|
29979
30155
|
);
|
|
29980
30156
|
}
|
|
30157
|
+
var DEFAULT_RESOURCES;
|
|
29981
30158
|
var init_ResourceBar = __esm({
|
|
29982
30159
|
"components/game/molecules/ResourceBar.tsx"() {
|
|
29983
30160
|
"use client";
|
|
29984
30161
|
init_cn();
|
|
29985
30162
|
init_StatBadge();
|
|
29986
30163
|
init_Box();
|
|
30164
|
+
DEFAULT_RESOURCES = [
|
|
30165
|
+
{ icon: "coins", label: "Gold", value: 320 },
|
|
30166
|
+
{ icon: "zap", label: "Energy", value: 7, max: 10 },
|
|
30167
|
+
{ icon: "gem", label: "Crystals", value: 15 }
|
|
30168
|
+
];
|
|
29987
30169
|
ResourceBar.displayName = "ResourceBar";
|
|
29988
30170
|
}
|
|
29989
30171
|
});
|
|
29990
30172
|
function TurnPanel({
|
|
29991
|
-
currentTurn,
|
|
29992
|
-
maxTurns,
|
|
29993
|
-
phase,
|
|
29994
|
-
activeTeam,
|
|
29995
|
-
actions,
|
|
30173
|
+
currentTurn = 3,
|
|
30174
|
+
maxTurns = 10,
|
|
30175
|
+
phase = "Attack",
|
|
30176
|
+
activeTeam = "Heroes",
|
|
30177
|
+
actions = DEFAULT_TURN_ACTIONS,
|
|
29996
30178
|
className
|
|
29997
30179
|
}) {
|
|
29998
30180
|
const eventBus = useEventBus();
|
|
@@ -30037,6 +30219,7 @@ function TurnPanel({
|
|
|
30037
30219
|
}
|
|
30038
30220
|
);
|
|
30039
30221
|
}
|
|
30222
|
+
var DEFAULT_TURN_ACTIONS;
|
|
30040
30223
|
var init_TurnPanel = __esm({
|
|
30041
30224
|
"components/game/molecules/TurnPanel.tsx"() {
|
|
30042
30225
|
"use client";
|
|
@@ -30045,15 +30228,19 @@ var init_TurnPanel = __esm({
|
|
|
30045
30228
|
init_Button();
|
|
30046
30229
|
init_Box();
|
|
30047
30230
|
init_useEventBus();
|
|
30231
|
+
DEFAULT_TURN_ACTIONS = [
|
|
30232
|
+
{ label: "End Turn", icon: "skip-forward", event: "END_TURN" },
|
|
30233
|
+
{ label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
|
|
30234
|
+
];
|
|
30048
30235
|
TurnPanel.displayName = "TurnPanel";
|
|
30049
30236
|
}
|
|
30050
30237
|
});
|
|
30051
30238
|
function EnemyPlate({
|
|
30052
|
-
name,
|
|
30053
|
-
health,
|
|
30054
|
-
maxHealth,
|
|
30055
|
-
level,
|
|
30056
|
-
effects,
|
|
30239
|
+
name = "Shadow Guard",
|
|
30240
|
+
health = 80,
|
|
30241
|
+
maxHealth = 100,
|
|
30242
|
+
level = 5,
|
|
30243
|
+
effects = DEFAULT_ENEMY_EFFECTS,
|
|
30057
30244
|
className
|
|
30058
30245
|
}) {
|
|
30059
30246
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -30119,7 +30306,7 @@ function EnemyPlate({
|
|
|
30119
30306
|
}
|
|
30120
30307
|
);
|
|
30121
30308
|
}
|
|
30122
|
-
var effectVariantMap2;
|
|
30309
|
+
var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
|
|
30123
30310
|
var init_EnemyPlate = __esm({
|
|
30124
30311
|
"components/game/molecules/EnemyPlate.tsx"() {
|
|
30125
30312
|
"use client";
|
|
@@ -30133,12 +30320,15 @@ var init_EnemyPlate = __esm({
|
|
|
30133
30320
|
debuff: "danger",
|
|
30134
30321
|
neutral: "neutral"
|
|
30135
30322
|
};
|
|
30323
|
+
DEFAULT_ENEMY_EFFECTS = [
|
|
30324
|
+
{ icon: "flame", label: "Burn", variant: "debuff" }
|
|
30325
|
+
];
|
|
30136
30326
|
EnemyPlate.displayName = "EnemyPlate";
|
|
30137
30327
|
}
|
|
30138
30328
|
});
|
|
30139
30329
|
function UnitCommandBar({
|
|
30140
|
-
commands,
|
|
30141
|
-
selectedUnitId,
|
|
30330
|
+
commands = DEFAULT_COMMANDS,
|
|
30331
|
+
selectedUnitId = "unit-1",
|
|
30142
30332
|
className
|
|
30143
30333
|
}) {
|
|
30144
30334
|
const eventBus = useEventBus();
|
|
@@ -30181,6 +30371,7 @@ function UnitCommandBar({
|
|
|
30181
30371
|
}
|
|
30182
30372
|
);
|
|
30183
30373
|
}
|
|
30374
|
+
var DEFAULT_COMMANDS;
|
|
30184
30375
|
var init_UnitCommandBar = __esm({
|
|
30185
30376
|
"components/game/molecules/UnitCommandBar.tsx"() {
|
|
30186
30377
|
"use client";
|
|
@@ -30189,6 +30380,12 @@ var init_UnitCommandBar = __esm({
|
|
|
30189
30380
|
init_Box();
|
|
30190
30381
|
init_Typography();
|
|
30191
30382
|
init_useEventBus();
|
|
30383
|
+
DEFAULT_COMMANDS = [
|
|
30384
|
+
{ label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
|
|
30385
|
+
{ label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
|
|
30386
|
+
{ label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
|
|
30387
|
+
{ label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
|
|
30388
|
+
];
|
|
30192
30389
|
UnitCommandBar.displayName = "UnitCommandBar";
|
|
30193
30390
|
}
|
|
30194
30391
|
});
|
|
@@ -30222,7 +30419,7 @@ function GameHud({
|
|
|
30222
30419
|
className,
|
|
30223
30420
|
transparent = true
|
|
30224
30421
|
}) {
|
|
30225
|
-
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) :
|
|
30422
|
+
const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
|
|
30226
30423
|
const stats = Array.isArray(rawStats) ? rawStats : [];
|
|
30227
30424
|
const position = propPosition ?? "corners";
|
|
30228
30425
|
if (position === "corners") {
|
|
@@ -30247,7 +30444,7 @@ function GameHud({
|
|
|
30247
30444
|
}
|
|
30248
30445
|
);
|
|
30249
30446
|
}
|
|
30250
|
-
var positionMap;
|
|
30447
|
+
var positionMap, DEFAULT_HUD_STATS;
|
|
30251
30448
|
var init_GameHud = __esm({
|
|
30252
30449
|
"components/game/molecules/GameHud.tsx"() {
|
|
30253
30450
|
init_cn();
|
|
@@ -30257,11 +30454,17 @@ var init_GameHud = __esm({
|
|
|
30257
30454
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
30258
30455
|
corners: "inset-0 pointer-events-none"
|
|
30259
30456
|
};
|
|
30457
|
+
DEFAULT_HUD_STATS = [
|
|
30458
|
+
{ label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
|
|
30459
|
+
{ label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
|
|
30460
|
+
{ label: "Score", value: 4200, format: "number", variant: "warning" },
|
|
30461
|
+
{ label: "Level", value: 4, format: "number", variant: "default" }
|
|
30462
|
+
];
|
|
30260
30463
|
GameHud.displayName = "GameHud";
|
|
30261
30464
|
}
|
|
30262
30465
|
});
|
|
30263
30466
|
function DialogueBox({
|
|
30264
|
-
dialogue,
|
|
30467
|
+
dialogue = DEFAULT_DIALOGUE,
|
|
30265
30468
|
typewriterSpeed = 30,
|
|
30266
30469
|
position = "bottom",
|
|
30267
30470
|
onComplete,
|
|
@@ -30444,17 +30647,27 @@ function DialogueBox({
|
|
|
30444
30647
|
}
|
|
30445
30648
|
);
|
|
30446
30649
|
}
|
|
30650
|
+
var DEFAULT_DIALOGUE;
|
|
30447
30651
|
var init_DialogueBox = __esm({
|
|
30448
30652
|
"components/game/molecules/DialogueBox.tsx"() {
|
|
30449
30653
|
"use client";
|
|
30450
30654
|
init_cn();
|
|
30451
30655
|
init_useEventBus();
|
|
30656
|
+
DEFAULT_DIALOGUE = {
|
|
30657
|
+
speaker: "Village Elder",
|
|
30658
|
+
text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
|
|
30659
|
+
choices: [
|
|
30660
|
+
{ text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
|
|
30661
|
+
{ text: "Tell me more about the ruins.", action: "ASK_LORE" },
|
|
30662
|
+
{ text: "Perhaps another time.", action: "DECLINE" }
|
|
30663
|
+
]
|
|
30664
|
+
};
|
|
30452
30665
|
}
|
|
30453
30666
|
});
|
|
30454
30667
|
function InventoryPanel({
|
|
30455
|
-
items,
|
|
30456
|
-
slots,
|
|
30457
|
-
columns,
|
|
30668
|
+
items = DEFAULT_INVENTORY_ITEMS,
|
|
30669
|
+
slots = 12,
|
|
30670
|
+
columns = 4,
|
|
30458
30671
|
selectedSlot,
|
|
30459
30672
|
onSelectSlot,
|
|
30460
30673
|
onUseItem,
|
|
@@ -30602,25 +30815,31 @@ function InventoryPanel({
|
|
|
30602
30815
|
)
|
|
30603
30816
|
] });
|
|
30604
30817
|
}
|
|
30818
|
+
var DEFAULT_INVENTORY_ITEMS;
|
|
30605
30819
|
var init_InventoryPanel = __esm({
|
|
30606
30820
|
"components/game/molecules/InventoryPanel.tsx"() {
|
|
30607
30821
|
"use client";
|
|
30608
30822
|
init_cn();
|
|
30609
30823
|
init_useEventBus();
|
|
30824
|
+
DEFAULT_INVENTORY_ITEMS = [
|
|
30825
|
+
{ id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
|
|
30826
|
+
{ id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
|
|
30827
|
+
{ id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
|
|
30828
|
+
];
|
|
30610
30829
|
}
|
|
30611
30830
|
});
|
|
30612
30831
|
function GameMenu({
|
|
30613
|
-
title,
|
|
30832
|
+
title = "Epic Quest",
|
|
30614
30833
|
subtitle,
|
|
30615
30834
|
options,
|
|
30616
30835
|
menuItems,
|
|
30617
30836
|
onSelect,
|
|
30618
30837
|
eventBus: eventBusProp,
|
|
30619
30838
|
background,
|
|
30620
|
-
logo,
|
|
30839
|
+
logo = "",
|
|
30621
30840
|
className
|
|
30622
30841
|
}) {
|
|
30623
|
-
const resolvedOptions = options ?? menuItems ??
|
|
30842
|
+
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
30624
30843
|
let eventBusFromHook = null;
|
|
30625
30844
|
try {
|
|
30626
30845
|
eventBusFromHook = useEventBus();
|
|
@@ -30701,7 +30920,7 @@ function GameMenu({
|
|
|
30701
30920
|
}
|
|
30702
30921
|
);
|
|
30703
30922
|
}
|
|
30704
|
-
var variantMap3;
|
|
30923
|
+
var variantMap3, DEFAULT_MENU_OPTIONS;
|
|
30705
30924
|
var init_GameMenu = __esm({
|
|
30706
30925
|
"components/game/molecules/GameMenu.tsx"() {
|
|
30707
30926
|
"use client";
|
|
@@ -30712,6 +30931,11 @@ var init_GameMenu = __esm({
|
|
|
30712
30931
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30713
30932
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30714
30933
|
};
|
|
30934
|
+
DEFAULT_MENU_OPTIONS = [
|
|
30935
|
+
{ label: "New Game", event: "NEW_GAME", variant: "primary" },
|
|
30936
|
+
{ label: "Continue", event: "CONTINUE", variant: "secondary" },
|
|
30937
|
+
{ label: "Settings", event: "SETTINGS", variant: "ghost" }
|
|
30938
|
+
];
|
|
30715
30939
|
GameMenu.displayName = "GameMenu";
|
|
30716
30940
|
}
|
|
30717
30941
|
});
|
|
@@ -30722,19 +30946,19 @@ function formatTime3(ms) {
|
|
|
30722
30946
|
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
30723
30947
|
}
|
|
30724
30948
|
function GameOverScreen({
|
|
30725
|
-
title,
|
|
30949
|
+
title = "Game Over",
|
|
30726
30950
|
message,
|
|
30727
|
-
stats =
|
|
30951
|
+
stats = DEFAULT_GAME_OVER_STATS,
|
|
30728
30952
|
actions,
|
|
30729
30953
|
menuItems,
|
|
30730
30954
|
onAction,
|
|
30731
30955
|
eventBus: eventBusProp,
|
|
30732
|
-
variant = "
|
|
30733
|
-
highScore,
|
|
30734
|
-
currentScore,
|
|
30956
|
+
variant = "defeat",
|
|
30957
|
+
highScore = 2e3,
|
|
30958
|
+
currentScore = 1240,
|
|
30735
30959
|
className
|
|
30736
30960
|
}) {
|
|
30737
|
-
const resolvedActions = actions ?? menuItems ??
|
|
30961
|
+
const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
|
|
30738
30962
|
let eventBusFromHook = null;
|
|
30739
30963
|
try {
|
|
30740
30964
|
eventBusFromHook = useEventBus();
|
|
@@ -30821,7 +31045,7 @@ function GameOverScreen({
|
|
|
30821
31045
|
}
|
|
30822
31046
|
);
|
|
30823
31047
|
}
|
|
30824
|
-
var variantColors, buttonVariants;
|
|
31048
|
+
var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
|
|
30825
31049
|
var init_GameOverScreen = __esm({
|
|
30826
31050
|
"components/game/molecules/GameOverScreen.tsx"() {
|
|
30827
31051
|
"use client";
|
|
@@ -30850,21 +31074,35 @@ var init_GameOverScreen = __esm({
|
|
|
30850
31074
|
secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
|
|
30851
31075
|
ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
|
|
30852
31076
|
};
|
|
31077
|
+
DEFAULT_GAME_OVER_ACTIONS = [
|
|
31078
|
+
{ label: "Play Again", event: "RESTART", variant: "primary" },
|
|
31079
|
+
{ label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
|
|
31080
|
+
];
|
|
31081
|
+
DEFAULT_GAME_OVER_STATS = [
|
|
31082
|
+
{ label: "Score", value: 1240 },
|
|
31083
|
+
{ label: "Enemies Defeated", value: 8 },
|
|
31084
|
+
{ label: "Time", value: 93e3, format: "time" }
|
|
31085
|
+
];
|
|
30853
31086
|
GameOverScreen.displayName = "GameOverScreen";
|
|
30854
31087
|
}
|
|
30855
31088
|
});
|
|
30856
31089
|
function PlatformerCanvas({
|
|
30857
31090
|
player,
|
|
30858
|
-
platforms = [
|
|
31091
|
+
platforms = [
|
|
31092
|
+
{ x: 0, y: 368, width: 800, height: 32, type: "ground" },
|
|
31093
|
+
{ x: 150, y: 280, width: 160, height: 16, type: "platform" },
|
|
31094
|
+
{ x: 420, y: 220, width: 160, height: 16, type: "platform" },
|
|
31095
|
+
{ x: 620, y: 300, width: 140, height: 16, type: "platform" }
|
|
31096
|
+
],
|
|
30859
31097
|
worldWidth = 800,
|
|
30860
31098
|
worldHeight = 400,
|
|
30861
31099
|
canvasWidth = 800,
|
|
30862
31100
|
canvasHeight = 400,
|
|
30863
31101
|
followCamera = true,
|
|
30864
|
-
bgColor,
|
|
31102
|
+
bgColor = "#5c94fc",
|
|
30865
31103
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
30866
31104
|
tileSprites,
|
|
30867
|
-
backgroundImage = "
|
|
31105
|
+
backgroundImage = "",
|
|
30868
31106
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
30869
31107
|
leftEvent = "MOVE_LEFT",
|
|
30870
31108
|
rightEvent = "MOVE_RIGHT",
|
|
@@ -30912,10 +31150,10 @@ function PlatformerCanvas({
|
|
|
30912
31150
|
};
|
|
30913
31151
|
}, []);
|
|
30914
31152
|
const resolvedPlayer = player ?? {
|
|
30915
|
-
x:
|
|
30916
|
-
y:
|
|
30917
|
-
width:
|
|
30918
|
-
height:
|
|
31153
|
+
x: 80,
|
|
31154
|
+
y: 336,
|
|
31155
|
+
width: 32,
|
|
31156
|
+
height: 48,
|
|
30919
31157
|
facingRight: true
|
|
30920
31158
|
};
|
|
30921
31159
|
const handleKeyDown = React91.useCallback((e) => {
|
|
@@ -49204,12 +49442,12 @@ function WorldMapTemplate({
|
|
|
49204
49442
|
entity,
|
|
49205
49443
|
scale = 0.4,
|
|
49206
49444
|
unitScale = 2.5,
|
|
49207
|
-
diamondTopY,
|
|
49445
|
+
diamondTopY = 374,
|
|
49208
49446
|
allowMoveAllHeroes = false,
|
|
49209
|
-
tiles,
|
|
49210
|
-
units,
|
|
49211
|
-
features,
|
|
49212
|
-
assetManifest,
|
|
49447
|
+
tiles = DEFAULT_WORLDMAP_TILES,
|
|
49448
|
+
units = DEFAULT_WORLDMAP_UNITS,
|
|
49449
|
+
features = DEFAULT_WORLDMAP_FEATURES,
|
|
49450
|
+
assetManifest = DEFAULT_WORLDMAP_MANIFEST,
|
|
49213
49451
|
className
|
|
49214
49452
|
}) {
|
|
49215
49453
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -49232,9 +49470,63 @@ function WorldMapTemplate({
|
|
|
49232
49470
|
}
|
|
49233
49471
|
);
|
|
49234
49472
|
}
|
|
49473
|
+
var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
|
|
49235
49474
|
var init_WorldMapTemplate = __esm({
|
|
49236
49475
|
"components/game/templates/WorldMapTemplate.tsx"() {
|
|
49237
49476
|
init_WorldMapBoard();
|
|
49477
|
+
CDN3 = "https://almadar-kflow-assets.web.app/shared";
|
|
49478
|
+
DEFAULT_WORLDMAP_TILES = [
|
|
49479
|
+
{ x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49480
|
+
{ x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49481
|
+
{ x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49482
|
+
{ x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49483
|
+
{ x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49484
|
+
{ x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49485
|
+
{ x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49486
|
+
{ x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49487
|
+
{ x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49488
|
+
{ x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49489
|
+
{ x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49490
|
+
{ x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49491
|
+
{ x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49492
|
+
{ x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49493
|
+
{ x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49494
|
+
{ x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49495
|
+
{ x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49496
|
+
{ x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49497
|
+
{ x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
|
|
49498
|
+
{ x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49499
|
+
{ x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49500
|
+
{ x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
|
|
49501
|
+
{ x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
|
|
49502
|
+
{ x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
|
|
49503
|
+
{ x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
|
|
49504
|
+
];
|
|
49505
|
+
DEFAULT_WORLDMAP_UNITS = [
|
|
49506
|
+
{ 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` },
|
|
49507
|
+
{ 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` }
|
|
49508
|
+
];
|
|
49509
|
+
DEFAULT_WORLDMAP_FEATURES = [
|
|
49510
|
+
{ id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
|
|
49511
|
+
{ id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
|
|
49512
|
+
];
|
|
49513
|
+
DEFAULT_WORLDMAP_MANIFEST = {
|
|
49514
|
+
baseUrl: CDN3,
|
|
49515
|
+
terrains: {
|
|
49516
|
+
grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
|
|
49517
|
+
water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
|
|
49518
|
+
mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
|
|
49519
|
+
road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
|
|
49520
|
+
},
|
|
49521
|
+
units: {
|
|
49522
|
+
hero: "/sprite-sheets/amir-sprite-sheet-se.png",
|
|
49523
|
+
scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
|
|
49524
|
+
},
|
|
49525
|
+
features: {
|
|
49526
|
+
capital: "/scenes/world/capital.png",
|
|
49527
|
+
power_node: "/world-map/power_node.png"
|
|
49528
|
+
}
|
|
49529
|
+
};
|
|
49238
49530
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
49239
49531
|
}
|
|
49240
49532
|
});
|