@almadar/ui 5.38.0 → 5.40.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.
@@ -7089,8 +7089,8 @@ var init_TraitFrame = __esm({
7089
7089
  }
7090
7090
  });
7091
7091
  function HealthBar({
7092
- current,
7093
- max,
7092
+ current = 3,
7093
+ max = 5,
7094
7094
  format = "hearts",
7095
7095
  size = "md",
7096
7096
  className,
@@ -7339,11 +7339,11 @@ var init_ControlButton = __esm({
7339
7339
  });
7340
7340
  function Sprite({
7341
7341
  spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
7342
- frameWidth,
7343
- frameHeight,
7344
- frame,
7345
- x,
7346
- y,
7342
+ frameWidth = 64,
7343
+ frameHeight = 64,
7344
+ frame = 0,
7345
+ x = 0,
7346
+ y = 0,
7347
7347
  scale = 1,
7348
7348
  flipX = false,
7349
7349
  flipY = false,
@@ -7413,7 +7413,7 @@ var init_Sprite = __esm({
7413
7413
  }
7414
7414
  });
7415
7415
  function StateIndicator({
7416
- state,
7416
+ state = "idle",
7417
7417
  label,
7418
7418
  size = "md",
7419
7419
  animated = true,
@@ -7484,8 +7484,8 @@ function formatTime(seconds, format) {
7484
7484
  return `${mins.toString().padStart(2, "0")}:${padded}`;
7485
7485
  }
7486
7486
  function TimerDisplay({
7487
- seconds,
7488
- running,
7487
+ seconds = 90,
7488
+ running = true,
7489
7489
  format = "mm:ss",
7490
7490
  size = "md",
7491
7491
  className,
@@ -7522,8 +7522,8 @@ var init_TimerDisplay = __esm({
7522
7522
  });
7523
7523
  function ResourceCounter({
7524
7524
  icon,
7525
- label,
7526
- value,
7525
+ label = "Gold",
7526
+ value = 250,
7527
7527
  max,
7528
7528
  color,
7529
7529
  size = "md",
@@ -7575,10 +7575,10 @@ var init_ResourceCounter = __esm({
7575
7575
  }
7576
7576
  });
7577
7577
  function ItemSlot({
7578
- icon,
7579
- label,
7578
+ icon = "sword",
7579
+ label = "Iron Sword",
7580
7580
  quantity,
7581
- rarity = "common",
7581
+ rarity = "uncommon",
7582
7582
  empty,
7583
7583
  size = "md",
7584
7584
  selected,
@@ -7651,7 +7651,7 @@ var init_ItemSlot = __esm({
7651
7651
  }
7652
7652
  });
7653
7653
  function TurnIndicator({
7654
- currentTurn,
7654
+ currentTurn = 1,
7655
7655
  maxTurns,
7656
7656
  activeTeam,
7657
7657
  phase,
@@ -7714,7 +7714,7 @@ function getComboScale(combo) {
7714
7714
  return "";
7715
7715
  }
7716
7716
  function ComboCounter({
7717
- combo,
7717
+ combo = 5,
7718
7718
  multiplier,
7719
7719
  streak,
7720
7720
  size = "md",
@@ -7760,10 +7760,10 @@ var init_ComboCounter = __esm({
7760
7760
  }
7761
7761
  });
7762
7762
  function XPBar({
7763
- current,
7764
- max,
7765
- level,
7766
- showLabel = false,
7763
+ current = 350,
7764
+ max = 1e3,
7765
+ level = 5,
7766
+ showLabel = true,
7767
7767
  size = "md",
7768
7768
  animated = true,
7769
7769
  className
@@ -7846,7 +7846,7 @@ var init_XPBar = __esm({
7846
7846
  function WaypointMarker({
7847
7847
  label,
7848
7848
  icon,
7849
- active = false,
7849
+ active = true,
7850
7850
  completed = false,
7851
7851
  size = "md",
7852
7852
  className
@@ -7920,11 +7920,11 @@ function formatDuration(seconds) {
7920
7920
  return `${Math.round(seconds)}s`;
7921
7921
  }
7922
7922
  function StatusEffect({
7923
- icon,
7924
- label,
7925
- duration,
7923
+ icon = "shield",
7924
+ label = "Shield",
7925
+ duration = 30,
7926
7926
  stacks,
7927
- variant = "neutral",
7927
+ variant = "buff",
7928
7928
  size = "md",
7929
7929
  className
7930
7930
  }) {
@@ -7986,7 +7986,7 @@ var init_StatusEffect = __esm({
7986
7986
  }
7987
7987
  });
7988
7988
  function DamageNumber({
7989
- value,
7989
+ value = 42,
7990
7990
  type = "damage",
7991
7991
  size = "md",
7992
7992
  className
@@ -8035,8 +8035,8 @@ var init_DamageNumber = __esm({
8035
8035
  }
8036
8036
  });
8037
8037
  function DialogueBubble({
8038
- speaker,
8039
- text,
8038
+ speaker = "Hero",
8039
+ text = "The dungeon awaits. Choose your path wisely.",
8040
8040
  portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
8041
8041
  position = "bottom",
8042
8042
  className
@@ -8073,7 +8073,7 @@ var init_DialogueBubble = __esm({
8073
8073
  }
8074
8074
  });
8075
8075
  function ChoiceButton({
8076
- text,
8076
+ text = "Charge forward into the fray",
8077
8077
  index,
8078
8078
  disabled = false,
8079
8079
  selected = false,
@@ -8119,7 +8119,7 @@ var init_ChoiceButton = __esm({
8119
8119
  }
8120
8120
  });
8121
8121
  function ActionButton({
8122
- label,
8122
+ label = "Attack",
8123
8123
  icon,
8124
8124
  cooldown = 0,
8125
8125
  disabled = false,
@@ -8199,13 +8199,13 @@ var init_ActionButton = __esm({
8199
8199
  }
8200
8200
  });
8201
8201
  function MiniMap({
8202
- tiles = [],
8203
- units = [],
8202
+ tiles = DEFAULT_TILES,
8203
+ units = DEFAULT_UNITS,
8204
8204
  width = 150,
8205
8205
  height = 150,
8206
8206
  mapWidth = 100,
8207
8207
  mapHeight = 100,
8208
- viewportRect,
8208
+ viewportRect = DEFAULT_VIEWPORT,
8209
8209
  className
8210
8210
  }) {
8211
8211
  const canvasRef = React83__namespace.useRef(null);
@@ -8284,10 +8284,25 @@ function MiniMap({
8284
8284
  }
8285
8285
  );
8286
8286
  }
8287
+ var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
8287
8288
  var init_MiniMap = __esm({
8288
8289
  "components/game/atoms/MiniMap.tsx"() {
8289
8290
  "use client";
8290
8291
  init_cn();
8292
+ DEFAULT_TILES = [
8293
+ { x: 10, y: 10, color: "#4ade80" },
8294
+ { x: 20, y: 15, color: "#4ade80" },
8295
+ { x: 30, y: 25, color: "#22c55e" },
8296
+ { x: 50, y: 40, color: "#4ade80" },
8297
+ { x: 60, y: 55, color: "#16a34a" },
8298
+ { x: 40, y: 60, color: "#4ade80" },
8299
+ { x: 70, y: 30, color: "#22c55e" },
8300
+ { x: 80, y: 70, color: "#4ade80" }
8301
+ ];
8302
+ DEFAULT_UNITS = [
8303
+ { x: 30, y: 30, color: "#60a5fa", isPlayer: true }
8304
+ ];
8305
+ DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
8291
8306
  MiniMap.displayName = "MiniMap";
8292
8307
  }
8293
8308
  });
@@ -9766,7 +9781,7 @@ var init_Accordion = __esm({
9766
9781
  }
9767
9782
  });
9768
9783
  function ActionButtons({
9769
- buttons,
9784
+ buttons = DEFAULT_BUTTONS,
9770
9785
  onAction,
9771
9786
  actionEvent,
9772
9787
  layout = "horizontal",
@@ -9873,7 +9888,7 @@ function ActionButtons({
9873
9888
  button.id
9874
9889
  )) });
9875
9890
  }
9876
- var sizeMap14, layoutMap;
9891
+ var sizeMap14, layoutMap, DEFAULT_BUTTONS;
9877
9892
  var init_ActionButtons = __esm({
9878
9893
  "components/game/molecules/ActionButtons.tsx"() {
9879
9894
  "use client";
@@ -9890,6 +9905,11 @@ var init_ActionButtons = __esm({
9890
9905
  vertical: "flex flex-col gap-2",
9891
9906
  diamond: "grid grid-cols-3 gap-1"
9892
9907
  };
9908
+ DEFAULT_BUTTONS = [
9909
+ { id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
9910
+ { id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
9911
+ { id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
9912
+ ];
9893
9913
  ActionButtons.displayName = "ActionButtons";
9894
9914
  }
9895
9915
  });
@@ -11070,7 +11090,7 @@ function IsometricCanvas({
11070
11090
  // Rendering options
11071
11091
  scale = 0.4,
11072
11092
  debug: debug2 = false,
11073
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
11093
+ backgroundImage = "",
11074
11094
  showMinimap = true,
11075
11095
  enableCamera = true,
11076
11096
  unitScale = 1,
@@ -12208,10 +12228,10 @@ function BattleTemplate({
12208
12228
  entity,
12209
12229
  scale = 0.45,
12210
12230
  unitScale = 1,
12211
- tiles,
12212
- units,
12213
- features,
12214
- assetManifest,
12231
+ tiles = DEFAULT_BATTLE_TILES,
12232
+ units = DEFAULT_BATTLE_UNITS,
12233
+ features = DEFAULT_BATTLE_FEATURES,
12234
+ assetManifest = DEFAULT_BATTLE_MANIFEST,
12215
12235
  className
12216
12236
  }) {
12217
12237
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -12237,9 +12257,62 @@ function BattleTemplate({
12237
12257
  }
12238
12258
  );
12239
12259
  }
12260
+ var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
12240
12261
  var init_BattleTemplate = __esm({
12241
12262
  "components/game/templates/BattleTemplate.tsx"() {
12242
12263
  init_BattleBoard();
12264
+ CDN = "https://almadar-kflow-assets.web.app/shared";
12265
+ DEFAULT_BATTLE_TILES = [
12266
+ { x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12267
+ { x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12268
+ { x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12269
+ { x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12270
+ { x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12271
+ { x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12272
+ { x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
12273
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12274
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12275
+ { x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12276
+ { x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12277
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12278
+ { x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
12279
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12280
+ { x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12281
+ { x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12282
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12283
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
12284
+ { x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
12285
+ { x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12286
+ { x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12287
+ { x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12288
+ { x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12289
+ { x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
12290
+ { x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
12291
+ ];
12292
+ DEFAULT_BATTLE_UNITS = [
12293
+ { 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` },
12294
+ { 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` }
12295
+ ];
12296
+ DEFAULT_BATTLE_FEATURES = [
12297
+ { id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
12298
+ { id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
12299
+ ];
12300
+ DEFAULT_BATTLE_MANIFEST = {
12301
+ baseUrl: CDN,
12302
+ terrains: {
12303
+ stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
12304
+ dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
12305
+ grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
12306
+ },
12307
+ units: {
12308
+ worker: "/sprite-sheets/amir-sprite-sheet-se.png",
12309
+ guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
12310
+ },
12311
+ features: {
12312
+ gold_mine: "/world-map/gold_mine.png",
12313
+ portal: "/world-map/portal_open.png"
12314
+ }
12315
+ };
12243
12316
  BattleTemplate.displayName = "BattleTemplate";
12244
12317
  }
12245
12318
  });
@@ -20239,10 +20312,10 @@ var init_CastleBoard = __esm({
20239
20312
  function CastleTemplate({
20240
20313
  entity,
20241
20314
  scale = 0.45,
20242
- tiles,
20243
- units,
20244
- features,
20245
- assetManifest,
20315
+ tiles = DEFAULT_CASTLE_TILES,
20316
+ units = DEFAULT_CASTLE_UNITS,
20317
+ features = DEFAULT_CASTLE_FEATURES,
20318
+ assetManifest = DEFAULT_CASTLE_MANIFEST,
20246
20319
  className
20247
20320
  }) {
20248
20321
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -20263,9 +20336,61 @@ function CastleTemplate({
20263
20336
  }
20264
20337
  );
20265
20338
  }
20339
+ var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
20266
20340
  var init_CastleTemplate = __esm({
20267
20341
  "components/game/templates/CastleTemplate.tsx"() {
20268
20342
  init_CastleBoard();
20343
+ CDN2 = "https://almadar-kflow-assets.web.app/shared";
20344
+ DEFAULT_CASTLE_TILES = [
20345
+ { x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20346
+ { x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20347
+ { x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20348
+ { x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20349
+ { x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20350
+ { x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20351
+ { x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20352
+ { x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20353
+ { x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20354
+ { x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20355
+ { x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20356
+ { x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20357
+ { x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
20358
+ { x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20359
+ { x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20360
+ { x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20361
+ { x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20362
+ { x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20363
+ { x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
20364
+ { x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20365
+ { x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20366
+ { x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20367
+ { x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20368
+ { x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
20369
+ { x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
20370
+ ];
20371
+ DEFAULT_CASTLE_UNITS = [
20372
+ { 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` },
20373
+ { 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` }
20374
+ ];
20375
+ DEFAULT_CASTLE_FEATURES = [
20376
+ { id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
20377
+ { id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
20378
+ ];
20379
+ DEFAULT_CASTLE_MANIFEST = {
20380
+ baseUrl: CDN2,
20381
+ terrains: {
20382
+ wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
20383
+ floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
20384
+ },
20385
+ units: {
20386
+ worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
20387
+ guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
20388
+ },
20389
+ features: {
20390
+ chest: "/world-map/treasure_chest_closed.png",
20391
+ crystal: "/world-map/resonance_crystal.png"
20392
+ }
20393
+ };
20269
20394
  CastleTemplate.displayName = "CastleTemplate";
20270
20395
  }
20271
20396
  });
@@ -21387,7 +21512,7 @@ var init_CodeRunnerPanel = __esm({
21387
21512
  }
21388
21513
  });
21389
21514
  function CombatLog({
21390
- events: events2,
21515
+ events: events2 = DEFAULT_COMBAT_EVENTS,
21391
21516
  maxVisible = 50,
21392
21517
  autoScroll = true,
21393
21518
  showTimestamps = false,
@@ -21438,7 +21563,7 @@ function CombatLog({
21438
21563
  }) }) })
21439
21564
  ] });
21440
21565
  }
21441
- var eventIcons, eventColors, eventBadgeVariants;
21566
+ var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
21442
21567
  var init_CombatLog = __esm({
21443
21568
  "components/game/molecules/CombatLog.tsx"() {
21444
21569
  init_atoms2();
@@ -21470,6 +21595,13 @@ var init_CombatLog = __esm({
21470
21595
  death: "secondary",
21471
21596
  spawn: "secondary"
21472
21597
  };
21598
+ DEFAULT_COMBAT_EVENTS = [
21599
+ { id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
21600
+ { id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
21601
+ { id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
21602
+ { id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
21603
+ { id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
21604
+ ];
21473
21605
  CombatLog.displayName = "CombatLog";
21474
21606
  }
21475
21607
  });
@@ -21877,9 +22009,9 @@ function isValidRarity(value) {
21877
22009
  return rarityValues.includes(value);
21878
22010
  }
21879
22011
  function CraftingRecipe({
21880
- inputs,
21881
- output,
21882
- canCraft = false,
22012
+ inputs = DEFAULT_INPUTS,
22013
+ output = DEFAULT_OUTPUT,
22014
+ canCraft = true,
21883
22015
  onCraft,
21884
22016
  craftEvent,
21885
22017
  className
@@ -21940,7 +22072,7 @@ function CraftingRecipe({
21940
22072
  }
21941
22073
  );
21942
22074
  }
21943
- var rarityValues;
22075
+ var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
21944
22076
  var init_CraftingRecipe = __esm({
21945
22077
  "components/game/molecules/CraftingRecipe.tsx"() {
21946
22078
  "use client";
@@ -21952,6 +22084,15 @@ var init_CraftingRecipe = __esm({
21952
22084
  init_Stack();
21953
22085
  init_Icon();
21954
22086
  rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
22087
+ DEFAULT_INPUTS = [
22088
+ { icon: "gem", label: "Iron Ore", required: 2, available: 3 },
22089
+ { icon: "flame", label: "Coal", required: 1, available: 1 }
22090
+ ];
22091
+ DEFAULT_OUTPUT = {
22092
+ icon: "sword",
22093
+ label: "Iron Sword",
22094
+ rarity: "uncommon"
22095
+ };
21955
22096
  CraftingRecipe.displayName = "CraftingRecipe";
21956
22097
  }
21957
22098
  });
@@ -26948,10 +27089,10 @@ var init_StatBadge = __esm({
26948
27089
  }
26949
27090
  });
26950
27091
  function InventoryGrid({
26951
- items,
27092
+ items = DEFAULT_GRID_ITEMS,
26952
27093
  columns = 4,
26953
- totalSlots,
26954
- selectedId,
27094
+ totalSlots = 12,
27095
+ selectedId = "",
26955
27096
  onSelect,
26956
27097
  selectEvent,
26957
27098
  size = "md",
@@ -27000,7 +27141,7 @@ function InventoryGrid({
27000
27141
  }
27001
27142
  );
27002
27143
  }
27003
- var columnMap;
27144
+ var columnMap, DEFAULT_GRID_ITEMS;
27004
27145
  var init_InventoryGrid = __esm({
27005
27146
  "components/game/molecules/InventoryGrid.tsx"() {
27006
27147
  "use client";
@@ -27017,12 +27158,18 @@ var init_InventoryGrid = __esm({
27017
27158
  7: "grid-cols-7",
27018
27159
  8: "grid-cols-8"
27019
27160
  };
27161
+ DEFAULT_GRID_ITEMS = [
27162
+ { id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
27163
+ { id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
27164
+ { id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
27165
+ { id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
27166
+ ];
27020
27167
  InventoryGrid.displayName = "InventoryGrid";
27021
27168
  }
27022
27169
  });
27023
27170
  function QuestTracker({
27024
- quests,
27025
- activeQuestId,
27171
+ quests = DEFAULT_QUESTS,
27172
+ activeQuestId = "q2",
27026
27173
  className
27027
27174
  }) {
27028
27175
  return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
@@ -27088,6 +27235,7 @@ function QuestTracker({
27088
27235
  );
27089
27236
  }) });
27090
27237
  }
27238
+ var DEFAULT_QUESTS;
27091
27239
  var init_QuestTracker = __esm({
27092
27240
  "components/game/molecules/QuestTracker.tsx"() {
27093
27241
  "use client";
@@ -27097,6 +27245,11 @@ var init_QuestTracker = __esm({
27097
27245
  init_Typography();
27098
27246
  init_Box();
27099
27247
  init_Stack();
27248
+ DEFAULT_QUESTS = [
27249
+ { id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
27250
+ { id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
27251
+ { id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
27252
+ ];
27100
27253
  QuestTracker.displayName = "QuestTracker";
27101
27254
  }
27102
27255
  });
@@ -27109,7 +27262,7 @@ function formatTime2(seconds) {
27109
27262
  return `${seconds}s`;
27110
27263
  }
27111
27264
  function PowerupSlots({
27112
- active,
27265
+ active = DEFAULT_ACTIVE_POWERUPS,
27113
27266
  maxSlots = 4,
27114
27267
  className
27115
27268
  }) {
@@ -27154,6 +27307,7 @@ function PowerupSlots({
27154
27307
  ))
27155
27308
  ] });
27156
27309
  }
27310
+ var DEFAULT_ACTIVE_POWERUPS;
27157
27311
  var init_PowerupSlots = __esm({
27158
27312
  "components/game/molecules/PowerupSlots.tsx"() {
27159
27313
  "use client";
@@ -27162,6 +27316,10 @@ var init_PowerupSlots = __esm({
27162
27316
  init_Box();
27163
27317
  init_Stack();
27164
27318
  init_Typography();
27319
+ DEFAULT_ACTIVE_POWERUPS = [
27320
+ { id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
27321
+ { id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
27322
+ ];
27165
27323
  PowerupSlots.displayName = "PowerupSlots";
27166
27324
  }
27167
27325
  });
@@ -27173,7 +27331,7 @@ function GameCanvas2D({
27173
27331
  tickEvent,
27174
27332
  drawEvent,
27175
27333
  fps = 60,
27176
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
27334
+ backgroundImage = "",
27177
27335
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
27178
27336
  className
27179
27337
  }) {
@@ -27277,10 +27435,10 @@ var init_GameCanvas2D = __esm({
27277
27435
  }
27278
27436
  });
27279
27437
  function HealthPanel({
27280
- current,
27281
- max,
27282
- shield,
27283
- label,
27438
+ current = 75,
27439
+ max = 100,
27440
+ shield = 20,
27441
+ label = "Player HP",
27284
27442
  effects,
27285
27443
  showNumbers = true,
27286
27444
  size = "md",
@@ -27398,11 +27556,11 @@ var init_HealthPanel = __esm({
27398
27556
  }
27399
27557
  });
27400
27558
  function ScoreBoard({
27401
- score: rawScore,
27402
- highScore: rawHighScore,
27403
- combo: rawCombo,
27404
- multiplier: rawMultiplier,
27405
- level: rawLevel,
27559
+ score: rawScore = 4200,
27560
+ highScore: rawHighScore = 8750,
27561
+ combo: rawCombo = 3,
27562
+ multiplier: rawMultiplier = 2,
27563
+ level: rawLevel = 4,
27406
27564
  className
27407
27565
  }) {
27408
27566
  const score = rawScore ?? 0;
@@ -27475,7 +27633,7 @@ var init_ScoreBoard = __esm({
27475
27633
  }
27476
27634
  });
27477
27635
  function ResourceBar({
27478
- resources,
27636
+ resources = DEFAULT_RESOURCES,
27479
27637
  size = "md",
27480
27638
  className
27481
27639
  }) {
@@ -27501,21 +27659,27 @@ function ResourceBar({
27501
27659
  }
27502
27660
  );
27503
27661
  }
27662
+ var DEFAULT_RESOURCES;
27504
27663
  var init_ResourceBar = __esm({
27505
27664
  "components/game/molecules/ResourceBar.tsx"() {
27506
27665
  "use client";
27507
27666
  init_cn();
27508
27667
  init_StatBadge();
27509
27668
  init_Box();
27669
+ DEFAULT_RESOURCES = [
27670
+ { icon: "coins", label: "Gold", value: 320 },
27671
+ { icon: "zap", label: "Energy", value: 7, max: 10 },
27672
+ { icon: "gem", label: "Crystals", value: 15 }
27673
+ ];
27510
27674
  ResourceBar.displayName = "ResourceBar";
27511
27675
  }
27512
27676
  });
27513
27677
  function TurnPanel({
27514
- currentTurn,
27515
- maxTurns,
27516
- phase,
27517
- activeTeam,
27518
- actions,
27678
+ currentTurn = 3,
27679
+ maxTurns = 10,
27680
+ phase = "Attack",
27681
+ activeTeam = "Heroes",
27682
+ actions = DEFAULT_TURN_ACTIONS,
27519
27683
  className
27520
27684
  }) {
27521
27685
  const eventBus = useEventBus();
@@ -27560,6 +27724,7 @@ function TurnPanel({
27560
27724
  }
27561
27725
  );
27562
27726
  }
27727
+ var DEFAULT_TURN_ACTIONS;
27563
27728
  var init_TurnPanel = __esm({
27564
27729
  "components/game/molecules/TurnPanel.tsx"() {
27565
27730
  "use client";
@@ -27568,15 +27733,19 @@ var init_TurnPanel = __esm({
27568
27733
  init_Button();
27569
27734
  init_Box();
27570
27735
  init_useEventBus();
27736
+ DEFAULT_TURN_ACTIONS = [
27737
+ { label: "End Turn", icon: "skip-forward", event: "END_TURN" },
27738
+ { label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
27739
+ ];
27571
27740
  TurnPanel.displayName = "TurnPanel";
27572
27741
  }
27573
27742
  });
27574
27743
  function EnemyPlate({
27575
- name,
27576
- health,
27577
- maxHealth,
27578
- level,
27579
- effects,
27744
+ name = "Shadow Guard",
27745
+ health = 80,
27746
+ maxHealth = 100,
27747
+ level = 5,
27748
+ effects = DEFAULT_ENEMY_EFFECTS,
27580
27749
  className
27581
27750
  }) {
27582
27751
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -27642,7 +27811,7 @@ function EnemyPlate({
27642
27811
  }
27643
27812
  );
27644
27813
  }
27645
- var effectVariantMap2;
27814
+ var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
27646
27815
  var init_EnemyPlate = __esm({
27647
27816
  "components/game/molecules/EnemyPlate.tsx"() {
27648
27817
  "use client";
@@ -27656,12 +27825,15 @@ var init_EnemyPlate = __esm({
27656
27825
  debuff: "danger",
27657
27826
  neutral: "neutral"
27658
27827
  };
27828
+ DEFAULT_ENEMY_EFFECTS = [
27829
+ { icon: "flame", label: "Burn", variant: "debuff" }
27830
+ ];
27659
27831
  EnemyPlate.displayName = "EnemyPlate";
27660
27832
  }
27661
27833
  });
27662
27834
  function UnitCommandBar({
27663
- commands,
27664
- selectedUnitId,
27835
+ commands = DEFAULT_COMMANDS,
27836
+ selectedUnitId = "unit-1",
27665
27837
  className
27666
27838
  }) {
27667
27839
  const eventBus = useEventBus();
@@ -27704,6 +27876,7 @@ function UnitCommandBar({
27704
27876
  }
27705
27877
  );
27706
27878
  }
27879
+ var DEFAULT_COMMANDS;
27707
27880
  var init_UnitCommandBar = __esm({
27708
27881
  "components/game/molecules/UnitCommandBar.tsx"() {
27709
27882
  "use client";
@@ -27712,6 +27885,12 @@ var init_UnitCommandBar = __esm({
27712
27885
  init_Box();
27713
27886
  init_Typography();
27714
27887
  init_useEventBus();
27888
+ DEFAULT_COMMANDS = [
27889
+ { label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
27890
+ { label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
27891
+ { label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
27892
+ { label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
27893
+ ];
27715
27894
  UnitCommandBar.displayName = "UnitCommandBar";
27716
27895
  }
27717
27896
  });
@@ -27745,7 +27924,7 @@ function GameHud({
27745
27924
  className,
27746
27925
  transparent = true
27747
27926
  }) {
27748
- const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : []);
27927
+ const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
27749
27928
  const stats = Array.isArray(rawStats) ? rawStats : [];
27750
27929
  const position = propPosition ?? "corners";
27751
27930
  if (position === "corners") {
@@ -27770,7 +27949,7 @@ function GameHud({
27770
27949
  }
27771
27950
  );
27772
27951
  }
27773
- var positionMap;
27952
+ var positionMap, DEFAULT_HUD_STATS;
27774
27953
  var init_GameHud = __esm({
27775
27954
  "components/game/molecules/GameHud.tsx"() {
27776
27955
  init_cn();
@@ -27780,11 +27959,17 @@ var init_GameHud = __esm({
27780
27959
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
27781
27960
  corners: "inset-0 pointer-events-none"
27782
27961
  };
27962
+ DEFAULT_HUD_STATS = [
27963
+ { label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
27964
+ { label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
27965
+ { label: "Score", value: 4200, format: "number", variant: "warning" },
27966
+ { label: "Level", value: 4, format: "number", variant: "default" }
27967
+ ];
27783
27968
  GameHud.displayName = "GameHud";
27784
27969
  }
27785
27970
  });
27786
27971
  function DialogueBox({
27787
- dialogue,
27972
+ dialogue = DEFAULT_DIALOGUE,
27788
27973
  typewriterSpeed = 30,
27789
27974
  position = "bottom",
27790
27975
  onComplete,
@@ -27967,17 +28152,27 @@ function DialogueBox({
27967
28152
  }
27968
28153
  );
27969
28154
  }
28155
+ var DEFAULT_DIALOGUE;
27970
28156
  var init_DialogueBox = __esm({
27971
28157
  "components/game/molecules/DialogueBox.tsx"() {
27972
28158
  "use client";
27973
28159
  init_cn();
27974
28160
  init_useEventBus();
28161
+ DEFAULT_DIALOGUE = {
28162
+ speaker: "Village Elder",
28163
+ text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
28164
+ choices: [
28165
+ { text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
28166
+ { text: "Tell me more about the ruins.", action: "ASK_LORE" },
28167
+ { text: "Perhaps another time.", action: "DECLINE" }
28168
+ ]
28169
+ };
27975
28170
  }
27976
28171
  });
27977
28172
  function InventoryPanel({
27978
- items,
27979
- slots,
27980
- columns,
28173
+ items = DEFAULT_INVENTORY_ITEMS,
28174
+ slots = 12,
28175
+ columns = 4,
27981
28176
  selectedSlot,
27982
28177
  onSelectSlot,
27983
28178
  onUseItem,
@@ -28125,25 +28320,31 @@ function InventoryPanel({
28125
28320
  )
28126
28321
  ] });
28127
28322
  }
28323
+ var DEFAULT_INVENTORY_ITEMS;
28128
28324
  var init_InventoryPanel = __esm({
28129
28325
  "components/game/molecules/InventoryPanel.tsx"() {
28130
28326
  "use client";
28131
28327
  init_cn();
28132
28328
  init_useEventBus();
28329
+ DEFAULT_INVENTORY_ITEMS = [
28330
+ { id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
28331
+ { id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
28332
+ { id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
28333
+ ];
28133
28334
  }
28134
28335
  });
28135
28336
  function GameMenu({
28136
- title,
28337
+ title = "Epic Quest",
28137
28338
  subtitle,
28138
28339
  options,
28139
28340
  menuItems,
28140
28341
  onSelect,
28141
28342
  eventBus: eventBusProp,
28142
28343
  background,
28143
- logo,
28344
+ logo = "",
28144
28345
  className
28145
28346
  }) {
28146
- const resolvedOptions = options ?? menuItems ?? [];
28347
+ const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
28147
28348
  let eventBusFromHook = null;
28148
28349
  try {
28149
28350
  eventBusFromHook = useEventBus();
@@ -28224,7 +28425,7 @@ function GameMenu({
28224
28425
  }
28225
28426
  );
28226
28427
  }
28227
- var variantMap3;
28428
+ var variantMap3, DEFAULT_MENU_OPTIONS;
28228
28429
  var init_GameMenu = __esm({
28229
28430
  "components/game/molecules/GameMenu.tsx"() {
28230
28431
  "use client";
@@ -28235,6 +28436,11 @@ var init_GameMenu = __esm({
28235
28436
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
28236
28437
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
28237
28438
  };
28439
+ DEFAULT_MENU_OPTIONS = [
28440
+ { label: "New Game", event: "NEW_GAME", variant: "primary" },
28441
+ { label: "Continue", event: "CONTINUE", variant: "secondary" },
28442
+ { label: "Settings", event: "SETTINGS", variant: "ghost" }
28443
+ ];
28238
28444
  GameMenu.displayName = "GameMenu";
28239
28445
  }
28240
28446
  });
@@ -28245,19 +28451,19 @@ function formatTime3(ms) {
28245
28451
  return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
28246
28452
  }
28247
28453
  function GameOverScreen({
28248
- title,
28454
+ title = "Game Over",
28249
28455
  message,
28250
- stats = [],
28456
+ stats = DEFAULT_GAME_OVER_STATS,
28251
28457
  actions,
28252
28458
  menuItems,
28253
28459
  onAction,
28254
28460
  eventBus: eventBusProp,
28255
- variant = "neutral",
28256
- highScore,
28257
- currentScore,
28461
+ variant = "defeat",
28462
+ highScore = 2e3,
28463
+ currentScore = 1240,
28258
28464
  className
28259
28465
  }) {
28260
- const resolvedActions = actions ?? menuItems ?? [];
28466
+ const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
28261
28467
  let eventBusFromHook = null;
28262
28468
  try {
28263
28469
  eventBusFromHook = useEventBus();
@@ -28344,7 +28550,7 @@ function GameOverScreen({
28344
28550
  }
28345
28551
  );
28346
28552
  }
28347
- var variantColors, buttonVariants;
28553
+ var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
28348
28554
  var init_GameOverScreen = __esm({
28349
28555
  "components/game/molecules/GameOverScreen.tsx"() {
28350
28556
  "use client";
@@ -28373,21 +28579,35 @@ var init_GameOverScreen = __esm({
28373
28579
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
28374
28580
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
28375
28581
  };
28582
+ DEFAULT_GAME_OVER_ACTIONS = [
28583
+ { label: "Play Again", event: "RESTART", variant: "primary" },
28584
+ { label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
28585
+ ];
28586
+ DEFAULT_GAME_OVER_STATS = [
28587
+ { label: "Score", value: 1240 },
28588
+ { label: "Enemies Defeated", value: 8 },
28589
+ { label: "Time", value: 93e3, format: "time" }
28590
+ ];
28376
28591
  GameOverScreen.displayName = "GameOverScreen";
28377
28592
  }
28378
28593
  });
28379
28594
  function PlatformerCanvas({
28380
28595
  player,
28381
- platforms = [],
28596
+ platforms = [
28597
+ { x: 0, y: 368, width: 800, height: 32, type: "ground" },
28598
+ { x: 150, y: 280, width: 160, height: 16, type: "platform" },
28599
+ { x: 420, y: 220, width: 160, height: 16, type: "platform" },
28600
+ { x: 620, y: 300, width: 140, height: 16, type: "platform" }
28601
+ ],
28382
28602
  worldWidth = 800,
28383
28603
  worldHeight = 400,
28384
28604
  canvasWidth = 800,
28385
28605
  canvasHeight = 400,
28386
28606
  followCamera = true,
28387
- bgColor,
28607
+ bgColor = "#5c94fc",
28388
28608
  playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
28389
28609
  tileSprites,
28390
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
28610
+ backgroundImage = "",
28391
28611
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
28392
28612
  leftEvent = "MOVE_LEFT",
28393
28613
  rightEvent = "MOVE_RIGHT",
@@ -28435,10 +28655,10 @@ function PlatformerCanvas({
28435
28655
  };
28436
28656
  }, []);
28437
28657
  const resolvedPlayer = player ?? {
28438
- x: 50,
28439
- y: 300,
28440
- width: 24,
28441
- height: 32,
28658
+ x: 80,
28659
+ y: 336,
28660
+ width: 32,
28661
+ height: 48,
28442
28662
  facingRight: true
28443
28663
  };
28444
28664
  const handleKeyDown = React83.useCallback((e) => {
@@ -47117,12 +47337,12 @@ function WorldMapTemplate({
47117
47337
  entity,
47118
47338
  scale = 0.4,
47119
47339
  unitScale = 2.5,
47120
- diamondTopY,
47340
+ diamondTopY = 374,
47121
47341
  allowMoveAllHeroes = false,
47122
- tiles,
47123
- units,
47124
- features,
47125
- assetManifest,
47342
+ tiles = DEFAULT_WORLDMAP_TILES,
47343
+ units = DEFAULT_WORLDMAP_UNITS,
47344
+ features = DEFAULT_WORLDMAP_FEATURES,
47345
+ assetManifest = DEFAULT_WORLDMAP_MANIFEST,
47126
47346
  className
47127
47347
  }) {
47128
47348
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -47145,9 +47365,63 @@ function WorldMapTemplate({
47145
47365
  }
47146
47366
  );
47147
47367
  }
47368
+ var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
47148
47369
  var init_WorldMapTemplate = __esm({
47149
47370
  "components/game/templates/WorldMapTemplate.tsx"() {
47150
47371
  init_WorldMapBoard();
47372
+ CDN3 = "https://almadar-kflow-assets.web.app/shared";
47373
+ DEFAULT_WORLDMAP_TILES = [
47374
+ { x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47375
+ { x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47376
+ { x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
47377
+ { x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47378
+ { x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47379
+ { x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47380
+ { x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47381
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47382
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47383
+ { x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
47384
+ { x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
47385
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47386
+ { x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
47387
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47388
+ { x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47389
+ { x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47390
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47391
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47392
+ { x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
47393
+ { x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47394
+ { x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47395
+ { x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
47396
+ { x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
47397
+ { x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
47398
+ { x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
47399
+ ];
47400
+ DEFAULT_WORLDMAP_UNITS = [
47401
+ { 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` },
47402
+ { 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` }
47403
+ ];
47404
+ DEFAULT_WORLDMAP_FEATURES = [
47405
+ { id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
47406
+ { id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
47407
+ ];
47408
+ DEFAULT_WORLDMAP_MANIFEST = {
47409
+ baseUrl: CDN3,
47410
+ terrains: {
47411
+ grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
47412
+ water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
47413
+ mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
47414
+ road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
47415
+ },
47416
+ units: {
47417
+ hero: "/sprite-sheets/amir-sprite-sheet-se.png",
47418
+ scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
47419
+ },
47420
+ features: {
47421
+ capital: "/scenes/world/capital.png",
47422
+ power_node: "/world-map/power_node.png"
47423
+ }
47424
+ };
47151
47425
  WorldMapTemplate.displayName = "WorldMapTemplate";
47152
47426
  }
47153
47427
  });