@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.
package/dist/avl/index.js CHANGED
@@ -10693,8 +10693,8 @@ var init_TraitFrame = __esm({
10693
10693
  }
10694
10694
  });
10695
10695
  function HealthBar({
10696
- current,
10697
- max,
10696
+ current = 3,
10697
+ max = 5,
10698
10698
  format = "hearts",
10699
10699
  size = "md",
10700
10700
  className,
@@ -10943,11 +10943,11 @@ var init_ControlButton = __esm({
10943
10943
  });
10944
10944
  function Sprite({
10945
10945
  spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
10946
- frameWidth,
10947
- frameHeight,
10948
- frame,
10949
- x,
10950
- y,
10946
+ frameWidth = 64,
10947
+ frameHeight = 64,
10948
+ frame = 0,
10949
+ x = 0,
10950
+ y = 0,
10951
10951
  scale = 1,
10952
10952
  flipX = false,
10953
10953
  flipY = false,
@@ -11017,7 +11017,7 @@ var init_Sprite = __esm({
11017
11017
  }
11018
11018
  });
11019
11019
  function StateIndicator({
11020
- state,
11020
+ state = "idle",
11021
11021
  label,
11022
11022
  size = "md",
11023
11023
  animated = true,
@@ -11088,8 +11088,8 @@ function formatTime(seconds, format) {
11088
11088
  return `${mins.toString().padStart(2, "0")}:${padded}`;
11089
11089
  }
11090
11090
  function TimerDisplay({
11091
- seconds,
11092
- running,
11091
+ seconds = 90,
11092
+ running = true,
11093
11093
  format = "mm:ss",
11094
11094
  size = "md",
11095
11095
  className,
@@ -11126,8 +11126,8 @@ var init_TimerDisplay = __esm({
11126
11126
  });
11127
11127
  function ResourceCounter({
11128
11128
  icon,
11129
- label,
11130
- value,
11129
+ label = "Gold",
11130
+ value = 250,
11131
11131
  max,
11132
11132
  color,
11133
11133
  size = "md",
@@ -11179,10 +11179,10 @@ var init_ResourceCounter = __esm({
11179
11179
  }
11180
11180
  });
11181
11181
  function ItemSlot({
11182
- icon,
11183
- label,
11182
+ icon = "sword",
11183
+ label = "Iron Sword",
11184
11184
  quantity,
11185
- rarity = "common",
11185
+ rarity = "uncommon",
11186
11186
  empty,
11187
11187
  size = "md",
11188
11188
  selected,
@@ -11255,7 +11255,7 @@ var init_ItemSlot = __esm({
11255
11255
  }
11256
11256
  });
11257
11257
  function TurnIndicator({
11258
- currentTurn,
11258
+ currentTurn = 1,
11259
11259
  maxTurns,
11260
11260
  activeTeam,
11261
11261
  phase,
@@ -11318,7 +11318,7 @@ function getComboScale(combo) {
11318
11318
  return "";
11319
11319
  }
11320
11320
  function ComboCounter({
11321
- combo,
11321
+ combo = 5,
11322
11322
  multiplier,
11323
11323
  streak,
11324
11324
  size = "md",
@@ -11364,10 +11364,10 @@ var init_ComboCounter = __esm({
11364
11364
  }
11365
11365
  });
11366
11366
  function XPBar({
11367
- current,
11368
- max,
11369
- level,
11370
- showLabel = false,
11367
+ current = 350,
11368
+ max = 1e3,
11369
+ level = 5,
11370
+ showLabel = true,
11371
11371
  size = "md",
11372
11372
  animated = true,
11373
11373
  className
@@ -11450,7 +11450,7 @@ var init_XPBar = __esm({
11450
11450
  function WaypointMarker({
11451
11451
  label,
11452
11452
  icon,
11453
- active = false,
11453
+ active = true,
11454
11454
  completed = false,
11455
11455
  size = "md",
11456
11456
  className
@@ -11524,11 +11524,11 @@ function formatDuration(seconds) {
11524
11524
  return `${Math.round(seconds)}s`;
11525
11525
  }
11526
11526
  function StatusEffect({
11527
- icon,
11528
- label,
11529
- duration,
11527
+ icon = "shield",
11528
+ label = "Shield",
11529
+ duration = 30,
11530
11530
  stacks,
11531
- variant = "neutral",
11531
+ variant = "buff",
11532
11532
  size = "md",
11533
11533
  className
11534
11534
  }) {
@@ -11590,7 +11590,7 @@ var init_StatusEffect = __esm({
11590
11590
  }
11591
11591
  });
11592
11592
  function DamageNumber({
11593
- value,
11593
+ value = 42,
11594
11594
  type = "damage",
11595
11595
  size = "md",
11596
11596
  className
@@ -11639,8 +11639,8 @@ var init_DamageNumber = __esm({
11639
11639
  }
11640
11640
  });
11641
11641
  function DialogueBubble({
11642
- speaker,
11643
- text,
11642
+ speaker = "Hero",
11643
+ text = "The dungeon awaits. Choose your path wisely.",
11644
11644
  portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
11645
11645
  position = "bottom",
11646
11646
  className
@@ -11677,7 +11677,7 @@ var init_DialogueBubble = __esm({
11677
11677
  }
11678
11678
  });
11679
11679
  function ChoiceButton({
11680
- text,
11680
+ text = "Charge forward into the fray",
11681
11681
  index,
11682
11682
  disabled = false,
11683
11683
  selected = false,
@@ -11723,7 +11723,7 @@ var init_ChoiceButton = __esm({
11723
11723
  }
11724
11724
  });
11725
11725
  function ActionButton({
11726
- label,
11726
+ label = "Attack",
11727
11727
  icon,
11728
11728
  cooldown = 0,
11729
11729
  disabled = false,
@@ -11803,13 +11803,13 @@ var init_ActionButton = __esm({
11803
11803
  }
11804
11804
  });
11805
11805
  function MiniMap({
11806
- tiles = [],
11807
- units = [],
11806
+ tiles = DEFAULT_TILES,
11807
+ units = DEFAULT_UNITS,
11808
11808
  width = 150,
11809
11809
  height = 150,
11810
11810
  mapWidth = 100,
11811
11811
  mapHeight = 100,
11812
- viewportRect,
11812
+ viewportRect = DEFAULT_VIEWPORT,
11813
11813
  className
11814
11814
  }) {
11815
11815
  const canvasRef = React91.useRef(null);
@@ -11888,10 +11888,25 @@ function MiniMap({
11888
11888
  }
11889
11889
  );
11890
11890
  }
11891
+ var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
11891
11892
  var init_MiniMap = __esm({
11892
11893
  "components/game/atoms/MiniMap.tsx"() {
11893
11894
  "use client";
11894
11895
  init_cn();
11896
+ DEFAULT_TILES = [
11897
+ { x: 10, y: 10, color: "#4ade80" },
11898
+ { x: 20, y: 15, color: "#4ade80" },
11899
+ { x: 30, y: 25, color: "#22c55e" },
11900
+ { x: 50, y: 40, color: "#4ade80" },
11901
+ { x: 60, y: 55, color: "#16a34a" },
11902
+ { x: 40, y: 60, color: "#4ade80" },
11903
+ { x: 70, y: 30, color: "#22c55e" },
11904
+ { x: 80, y: 70, color: "#4ade80" }
11905
+ ];
11906
+ DEFAULT_UNITS = [
11907
+ { x: 30, y: 30, color: "#60a5fa", isPlayer: true }
11908
+ ];
11909
+ DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
11895
11910
  MiniMap.displayName = "MiniMap";
11896
11911
  }
11897
11912
  });
@@ -13014,7 +13029,7 @@ var init_Accordion = __esm({
13014
13029
  }
13015
13030
  });
13016
13031
  function ActionButtons({
13017
- buttons,
13032
+ buttons = DEFAULT_BUTTONS,
13018
13033
  onAction,
13019
13034
  actionEvent,
13020
13035
  layout = "horizontal",
@@ -13121,7 +13136,7 @@ function ActionButtons({
13121
13136
  button.id
13122
13137
  )) });
13123
13138
  }
13124
- var sizeMap14, layoutMap;
13139
+ var sizeMap14, layoutMap, DEFAULT_BUTTONS;
13125
13140
  var init_ActionButtons = __esm({
13126
13141
  "components/game/molecules/ActionButtons.tsx"() {
13127
13142
  "use client";
@@ -13138,6 +13153,11 @@ var init_ActionButtons = __esm({
13138
13153
  vertical: "flex flex-col gap-2",
13139
13154
  diamond: "grid grid-cols-3 gap-1"
13140
13155
  };
13156
+ DEFAULT_BUTTONS = [
13157
+ { id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
13158
+ { id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
13159
+ { id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
13160
+ ];
13141
13161
  ActionButtons.displayName = "ActionButtons";
13142
13162
  }
13143
13163
  });
@@ -14330,7 +14350,7 @@ function IsometricCanvas({
14330
14350
  // Rendering options
14331
14351
  scale = 0.4,
14332
14352
  debug: debug2 = false,
14333
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
14353
+ backgroundImage = "",
14334
14354
  showMinimap = true,
14335
14355
  enableCamera = true,
14336
14356
  unitScale = 1,
@@ -15468,10 +15488,10 @@ function BattleTemplate({
15468
15488
  entity,
15469
15489
  scale = 0.45,
15470
15490
  unitScale = 1,
15471
- tiles,
15472
- units,
15473
- features,
15474
- assetManifest,
15491
+ tiles = DEFAULT_BATTLE_TILES,
15492
+ units = DEFAULT_BATTLE_UNITS,
15493
+ features = DEFAULT_BATTLE_FEATURES,
15494
+ assetManifest = DEFAULT_BATTLE_MANIFEST,
15475
15495
  className
15476
15496
  }) {
15477
15497
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -15497,9 +15517,62 @@ function BattleTemplate({
15497
15517
  }
15498
15518
  );
15499
15519
  }
15520
+ var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
15500
15521
  var init_BattleTemplate = __esm({
15501
15522
  "components/game/templates/BattleTemplate.tsx"() {
15502
15523
  init_BattleBoard();
15524
+ CDN = "https://almadar-kflow-assets.web.app/shared";
15525
+ DEFAULT_BATTLE_TILES = [
15526
+ { x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15527
+ { x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15528
+ { x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15529
+ { x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15530
+ { x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15531
+ { x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15532
+ { x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
15533
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15534
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15535
+ { x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15536
+ { x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15537
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15538
+ { x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
15539
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15540
+ { x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15541
+ { x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15542
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15543
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
15544
+ { x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
15545
+ { x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15546
+ { x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15547
+ { x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15548
+ { x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15549
+ { x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
15550
+ { x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
15551
+ ];
15552
+ DEFAULT_BATTLE_UNITS = [
15553
+ { 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` },
15554
+ { 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` }
15555
+ ];
15556
+ DEFAULT_BATTLE_FEATURES = [
15557
+ { id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
15558
+ { id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
15559
+ ];
15560
+ DEFAULT_BATTLE_MANIFEST = {
15561
+ baseUrl: CDN,
15562
+ terrains: {
15563
+ stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
15564
+ dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
15565
+ grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
15566
+ },
15567
+ units: {
15568
+ worker: "/sprite-sheets/amir-sprite-sheet-se.png",
15569
+ guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
15570
+ },
15571
+ features: {
15572
+ gold_mine: "/world-map/gold_mine.png",
15573
+ portal: "/world-map/portal_open.png"
15574
+ }
15575
+ };
15503
15576
  BattleTemplate.displayName = "BattleTemplate";
15504
15577
  }
15505
15578
  });
@@ -22670,10 +22743,10 @@ var init_CastleBoard = __esm({
22670
22743
  function CastleTemplate({
22671
22744
  entity,
22672
22745
  scale = 0.45,
22673
- tiles,
22674
- units,
22675
- features,
22676
- assetManifest,
22746
+ tiles = DEFAULT_CASTLE_TILES,
22747
+ units = DEFAULT_CASTLE_UNITS,
22748
+ features = DEFAULT_CASTLE_FEATURES,
22749
+ assetManifest = DEFAULT_CASTLE_MANIFEST,
22677
22750
  className
22678
22751
  }) {
22679
22752
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -22694,9 +22767,61 @@ function CastleTemplate({
22694
22767
  }
22695
22768
  );
22696
22769
  }
22770
+ var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
22697
22771
  var init_CastleTemplate = __esm({
22698
22772
  "components/game/templates/CastleTemplate.tsx"() {
22699
22773
  init_CastleBoard();
22774
+ CDN2 = "https://almadar-kflow-assets.web.app/shared";
22775
+ DEFAULT_CASTLE_TILES = [
22776
+ { x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22777
+ { x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22778
+ { x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22779
+ { x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22780
+ { x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22781
+ { x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22782
+ { x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22783
+ { x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22784
+ { x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22785
+ { x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22786
+ { x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22787
+ { x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22788
+ { x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
22789
+ { x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22790
+ { x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22791
+ { x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22792
+ { x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22793
+ { x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22794
+ { x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
22795
+ { x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22796
+ { x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22797
+ { x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22798
+ { x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22799
+ { x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
22800
+ { x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
22801
+ ];
22802
+ DEFAULT_CASTLE_UNITS = [
22803
+ { 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` },
22804
+ { 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` }
22805
+ ];
22806
+ DEFAULT_CASTLE_FEATURES = [
22807
+ { id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
22808
+ { id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
22809
+ ];
22810
+ DEFAULT_CASTLE_MANIFEST = {
22811
+ baseUrl: CDN2,
22812
+ terrains: {
22813
+ wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
22814
+ floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
22815
+ },
22816
+ units: {
22817
+ worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
22818
+ guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
22819
+ },
22820
+ features: {
22821
+ chest: "/world-map/treasure_chest_closed.png",
22822
+ crystal: "/world-map/resonance_crystal.png"
22823
+ }
22824
+ };
22700
22825
  CastleTemplate.displayName = "CastleTemplate";
22701
22826
  }
22702
22827
  });
@@ -23818,7 +23943,7 @@ var init_CodeRunnerPanel = __esm({
23818
23943
  }
23819
23944
  });
23820
23945
  function CombatLog({
23821
- events: events2,
23946
+ events: events2 = DEFAULT_COMBAT_EVENTS,
23822
23947
  maxVisible = 50,
23823
23948
  autoScroll = true,
23824
23949
  showTimestamps = false,
@@ -23869,7 +23994,7 @@ function CombatLog({
23869
23994
  }) }) })
23870
23995
  ] });
23871
23996
  }
23872
- var eventIcons, eventColors, eventBadgeVariants;
23997
+ var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
23873
23998
  var init_CombatLog = __esm({
23874
23999
  "components/game/molecules/CombatLog.tsx"() {
23875
24000
  init_atoms2();
@@ -23901,6 +24026,13 @@ var init_CombatLog = __esm({
23901
24026
  death: "secondary",
23902
24027
  spawn: "secondary"
23903
24028
  };
24029
+ DEFAULT_COMBAT_EVENTS = [
24030
+ { id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
24031
+ { id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
24032
+ { id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
24033
+ { id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
24034
+ { id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
24035
+ ];
23904
24036
  CombatLog.displayName = "CombatLog";
23905
24037
  }
23906
24038
  });
@@ -24308,9 +24440,9 @@ function isValidRarity(value) {
24308
24440
  return rarityValues.includes(value);
24309
24441
  }
24310
24442
  function CraftingRecipe({
24311
- inputs,
24312
- output,
24313
- canCraft = false,
24443
+ inputs = DEFAULT_INPUTS,
24444
+ output = DEFAULT_OUTPUT,
24445
+ canCraft = true,
24314
24446
  onCraft,
24315
24447
  craftEvent,
24316
24448
  className
@@ -24371,7 +24503,7 @@ function CraftingRecipe({
24371
24503
  }
24372
24504
  );
24373
24505
  }
24374
- var rarityValues;
24506
+ var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
24375
24507
  var init_CraftingRecipe = __esm({
24376
24508
  "components/game/molecules/CraftingRecipe.tsx"() {
24377
24509
  "use client";
@@ -24383,6 +24515,15 @@ var init_CraftingRecipe = __esm({
24383
24515
  init_Stack();
24384
24516
  init_Icon();
24385
24517
  rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
24518
+ DEFAULT_INPUTS = [
24519
+ { icon: "gem", label: "Iron Ore", required: 2, available: 3 },
24520
+ { icon: "flame", label: "Coal", required: 1, available: 1 }
24521
+ ];
24522
+ DEFAULT_OUTPUT = {
24523
+ icon: "sword",
24524
+ label: "Iron Sword",
24525
+ rarity: "uncommon"
24526
+ };
24386
24527
  CraftingRecipe.displayName = "CraftingRecipe";
24387
24528
  }
24388
24529
  });
@@ -29379,10 +29520,10 @@ var init_StatBadge = __esm({
29379
29520
  }
29380
29521
  });
29381
29522
  function InventoryGrid({
29382
- items,
29523
+ items = DEFAULT_GRID_ITEMS,
29383
29524
  columns = 4,
29384
- totalSlots,
29385
- selectedId,
29525
+ totalSlots = 12,
29526
+ selectedId = "",
29386
29527
  onSelect,
29387
29528
  selectEvent,
29388
29529
  size = "md",
@@ -29431,7 +29572,7 @@ function InventoryGrid({
29431
29572
  }
29432
29573
  );
29433
29574
  }
29434
- var columnMap;
29575
+ var columnMap, DEFAULT_GRID_ITEMS;
29435
29576
  var init_InventoryGrid = __esm({
29436
29577
  "components/game/molecules/InventoryGrid.tsx"() {
29437
29578
  "use client";
@@ -29448,12 +29589,18 @@ var init_InventoryGrid = __esm({
29448
29589
  7: "grid-cols-7",
29449
29590
  8: "grid-cols-8"
29450
29591
  };
29592
+ DEFAULT_GRID_ITEMS = [
29593
+ { id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
29594
+ { id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
29595
+ { id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
29596
+ { id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
29597
+ ];
29451
29598
  InventoryGrid.displayName = "InventoryGrid";
29452
29599
  }
29453
29600
  });
29454
29601
  function QuestTracker({
29455
- quests,
29456
- activeQuestId,
29602
+ quests = DEFAULT_QUESTS,
29603
+ activeQuestId = "q2",
29457
29604
  className
29458
29605
  }) {
29459
29606
  return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
@@ -29519,6 +29666,7 @@ function QuestTracker({
29519
29666
  );
29520
29667
  }) });
29521
29668
  }
29669
+ var DEFAULT_QUESTS;
29522
29670
  var init_QuestTracker = __esm({
29523
29671
  "components/game/molecules/QuestTracker.tsx"() {
29524
29672
  "use client";
@@ -29528,6 +29676,11 @@ var init_QuestTracker = __esm({
29528
29676
  init_Typography();
29529
29677
  init_Box();
29530
29678
  init_Stack();
29679
+ DEFAULT_QUESTS = [
29680
+ { id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
29681
+ { id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
29682
+ { id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
29683
+ ];
29531
29684
  QuestTracker.displayName = "QuestTracker";
29532
29685
  }
29533
29686
  });
@@ -29540,7 +29693,7 @@ function formatTime2(seconds) {
29540
29693
  return `${seconds}s`;
29541
29694
  }
29542
29695
  function PowerupSlots({
29543
- active,
29696
+ active = DEFAULT_ACTIVE_POWERUPS,
29544
29697
  maxSlots = 4,
29545
29698
  className
29546
29699
  }) {
@@ -29585,6 +29738,7 @@ function PowerupSlots({
29585
29738
  ))
29586
29739
  ] });
29587
29740
  }
29741
+ var DEFAULT_ACTIVE_POWERUPS;
29588
29742
  var init_PowerupSlots = __esm({
29589
29743
  "components/game/molecules/PowerupSlots.tsx"() {
29590
29744
  "use client";
@@ -29593,6 +29747,10 @@ var init_PowerupSlots = __esm({
29593
29747
  init_Box();
29594
29748
  init_Stack();
29595
29749
  init_Typography();
29750
+ DEFAULT_ACTIVE_POWERUPS = [
29751
+ { id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
29752
+ { id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
29753
+ ];
29596
29754
  PowerupSlots.displayName = "PowerupSlots";
29597
29755
  }
29598
29756
  });
@@ -29604,7 +29762,7 @@ function GameCanvas2D({
29604
29762
  tickEvent,
29605
29763
  drawEvent,
29606
29764
  fps = 60,
29607
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
29765
+ backgroundImage = "",
29608
29766
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
29609
29767
  className
29610
29768
  }) {
@@ -29708,10 +29866,10 @@ var init_GameCanvas2D = __esm({
29708
29866
  }
29709
29867
  });
29710
29868
  function HealthPanel({
29711
- current,
29712
- max,
29713
- shield,
29714
- label,
29869
+ current = 75,
29870
+ max = 100,
29871
+ shield = 20,
29872
+ label = "Player HP",
29715
29873
  effects,
29716
29874
  showNumbers = true,
29717
29875
  size = "md",
@@ -29829,11 +29987,11 @@ var init_HealthPanel = __esm({
29829
29987
  }
29830
29988
  });
29831
29989
  function ScoreBoard({
29832
- score: rawScore,
29833
- highScore: rawHighScore,
29834
- combo: rawCombo,
29835
- multiplier: rawMultiplier,
29836
- level: rawLevel,
29990
+ score: rawScore = 4200,
29991
+ highScore: rawHighScore = 8750,
29992
+ combo: rawCombo = 3,
29993
+ multiplier: rawMultiplier = 2,
29994
+ level: rawLevel = 4,
29837
29995
  className
29838
29996
  }) {
29839
29997
  const score = rawScore ?? 0;
@@ -29906,7 +30064,7 @@ var init_ScoreBoard = __esm({
29906
30064
  }
29907
30065
  });
29908
30066
  function ResourceBar({
29909
- resources,
30067
+ resources = DEFAULT_RESOURCES,
29910
30068
  size = "md",
29911
30069
  className
29912
30070
  }) {
@@ -29932,21 +30090,27 @@ function ResourceBar({
29932
30090
  }
29933
30091
  );
29934
30092
  }
30093
+ var DEFAULT_RESOURCES;
29935
30094
  var init_ResourceBar = __esm({
29936
30095
  "components/game/molecules/ResourceBar.tsx"() {
29937
30096
  "use client";
29938
30097
  init_cn();
29939
30098
  init_StatBadge();
29940
30099
  init_Box();
30100
+ DEFAULT_RESOURCES = [
30101
+ { icon: "coins", label: "Gold", value: 320 },
30102
+ { icon: "zap", label: "Energy", value: 7, max: 10 },
30103
+ { icon: "gem", label: "Crystals", value: 15 }
30104
+ ];
29941
30105
  ResourceBar.displayName = "ResourceBar";
29942
30106
  }
29943
30107
  });
29944
30108
  function TurnPanel({
29945
- currentTurn,
29946
- maxTurns,
29947
- phase,
29948
- activeTeam,
29949
- actions,
30109
+ currentTurn = 3,
30110
+ maxTurns = 10,
30111
+ phase = "Attack",
30112
+ activeTeam = "Heroes",
30113
+ actions = DEFAULT_TURN_ACTIONS,
29950
30114
  className
29951
30115
  }) {
29952
30116
  const eventBus = useEventBus();
@@ -29991,6 +30155,7 @@ function TurnPanel({
29991
30155
  }
29992
30156
  );
29993
30157
  }
30158
+ var DEFAULT_TURN_ACTIONS;
29994
30159
  var init_TurnPanel = __esm({
29995
30160
  "components/game/molecules/TurnPanel.tsx"() {
29996
30161
  "use client";
@@ -29999,15 +30164,19 @@ var init_TurnPanel = __esm({
29999
30164
  init_Button();
30000
30165
  init_Box();
30001
30166
  init_useEventBus();
30167
+ DEFAULT_TURN_ACTIONS = [
30168
+ { label: "End Turn", icon: "skip-forward", event: "END_TURN" },
30169
+ { label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
30170
+ ];
30002
30171
  TurnPanel.displayName = "TurnPanel";
30003
30172
  }
30004
30173
  });
30005
30174
  function EnemyPlate({
30006
- name,
30007
- health,
30008
- maxHealth,
30009
- level,
30010
- effects,
30175
+ name = "Shadow Guard",
30176
+ health = 80,
30177
+ maxHealth = 100,
30178
+ level = 5,
30179
+ effects = DEFAULT_ENEMY_EFFECTS,
30011
30180
  className
30012
30181
  }) {
30013
30182
  return /* @__PURE__ */ jsxs(
@@ -30073,7 +30242,7 @@ function EnemyPlate({
30073
30242
  }
30074
30243
  );
30075
30244
  }
30076
- var effectVariantMap2;
30245
+ var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
30077
30246
  var init_EnemyPlate = __esm({
30078
30247
  "components/game/molecules/EnemyPlate.tsx"() {
30079
30248
  "use client";
@@ -30087,12 +30256,15 @@ var init_EnemyPlate = __esm({
30087
30256
  debuff: "danger",
30088
30257
  neutral: "neutral"
30089
30258
  };
30259
+ DEFAULT_ENEMY_EFFECTS = [
30260
+ { icon: "flame", label: "Burn", variant: "debuff" }
30261
+ ];
30090
30262
  EnemyPlate.displayName = "EnemyPlate";
30091
30263
  }
30092
30264
  });
30093
30265
  function UnitCommandBar({
30094
- commands,
30095
- selectedUnitId,
30266
+ commands = DEFAULT_COMMANDS,
30267
+ selectedUnitId = "unit-1",
30096
30268
  className
30097
30269
  }) {
30098
30270
  const eventBus = useEventBus();
@@ -30135,6 +30307,7 @@ function UnitCommandBar({
30135
30307
  }
30136
30308
  );
30137
30309
  }
30310
+ var DEFAULT_COMMANDS;
30138
30311
  var init_UnitCommandBar = __esm({
30139
30312
  "components/game/molecules/UnitCommandBar.tsx"() {
30140
30313
  "use client";
@@ -30143,6 +30316,12 @@ var init_UnitCommandBar = __esm({
30143
30316
  init_Box();
30144
30317
  init_Typography();
30145
30318
  init_useEventBus();
30319
+ DEFAULT_COMMANDS = [
30320
+ { label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
30321
+ { label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
30322
+ { label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
30323
+ { label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
30324
+ ];
30146
30325
  UnitCommandBar.displayName = "UnitCommandBar";
30147
30326
  }
30148
30327
  });
@@ -30176,7 +30355,7 @@ function GameHud({
30176
30355
  className,
30177
30356
  transparent = true
30178
30357
  }) {
30179
- const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : []);
30358
+ const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
30180
30359
  const stats = Array.isArray(rawStats) ? rawStats : [];
30181
30360
  const position = propPosition ?? "corners";
30182
30361
  if (position === "corners") {
@@ -30201,7 +30380,7 @@ function GameHud({
30201
30380
  }
30202
30381
  );
30203
30382
  }
30204
- var positionMap;
30383
+ var positionMap, DEFAULT_HUD_STATS;
30205
30384
  var init_GameHud = __esm({
30206
30385
  "components/game/molecules/GameHud.tsx"() {
30207
30386
  init_cn();
@@ -30211,11 +30390,17 @@ var init_GameHud = __esm({
30211
30390
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
30212
30391
  corners: "inset-0 pointer-events-none"
30213
30392
  };
30393
+ DEFAULT_HUD_STATS = [
30394
+ { label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
30395
+ { label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
30396
+ { label: "Score", value: 4200, format: "number", variant: "warning" },
30397
+ { label: "Level", value: 4, format: "number", variant: "default" }
30398
+ ];
30214
30399
  GameHud.displayName = "GameHud";
30215
30400
  }
30216
30401
  });
30217
30402
  function DialogueBox({
30218
- dialogue,
30403
+ dialogue = DEFAULT_DIALOGUE,
30219
30404
  typewriterSpeed = 30,
30220
30405
  position = "bottom",
30221
30406
  onComplete,
@@ -30398,17 +30583,27 @@ function DialogueBox({
30398
30583
  }
30399
30584
  );
30400
30585
  }
30586
+ var DEFAULT_DIALOGUE;
30401
30587
  var init_DialogueBox = __esm({
30402
30588
  "components/game/molecules/DialogueBox.tsx"() {
30403
30589
  "use client";
30404
30590
  init_cn();
30405
30591
  init_useEventBus();
30592
+ DEFAULT_DIALOGUE = {
30593
+ speaker: "Village Elder",
30594
+ text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
30595
+ choices: [
30596
+ { text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
30597
+ { text: "Tell me more about the ruins.", action: "ASK_LORE" },
30598
+ { text: "Perhaps another time.", action: "DECLINE" }
30599
+ ]
30600
+ };
30406
30601
  }
30407
30602
  });
30408
30603
  function InventoryPanel({
30409
- items,
30410
- slots,
30411
- columns,
30604
+ items = DEFAULT_INVENTORY_ITEMS,
30605
+ slots = 12,
30606
+ columns = 4,
30412
30607
  selectedSlot,
30413
30608
  onSelectSlot,
30414
30609
  onUseItem,
@@ -30556,25 +30751,31 @@ function InventoryPanel({
30556
30751
  )
30557
30752
  ] });
30558
30753
  }
30754
+ var DEFAULT_INVENTORY_ITEMS;
30559
30755
  var init_InventoryPanel = __esm({
30560
30756
  "components/game/molecules/InventoryPanel.tsx"() {
30561
30757
  "use client";
30562
30758
  init_cn();
30563
30759
  init_useEventBus();
30760
+ DEFAULT_INVENTORY_ITEMS = [
30761
+ { id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
30762
+ { id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
30763
+ { id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
30764
+ ];
30564
30765
  }
30565
30766
  });
30566
30767
  function GameMenu({
30567
- title,
30768
+ title = "Epic Quest",
30568
30769
  subtitle,
30569
30770
  options,
30570
30771
  menuItems,
30571
30772
  onSelect,
30572
30773
  eventBus: eventBusProp,
30573
30774
  background,
30574
- logo,
30775
+ logo = "",
30575
30776
  className
30576
30777
  }) {
30577
- const resolvedOptions = options ?? menuItems ?? [];
30778
+ const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
30578
30779
  let eventBusFromHook = null;
30579
30780
  try {
30580
30781
  eventBusFromHook = useEventBus();
@@ -30655,7 +30856,7 @@ function GameMenu({
30655
30856
  }
30656
30857
  );
30657
30858
  }
30658
- var variantMap3;
30859
+ var variantMap3, DEFAULT_MENU_OPTIONS;
30659
30860
  var init_GameMenu = __esm({
30660
30861
  "components/game/molecules/GameMenu.tsx"() {
30661
30862
  "use client";
@@ -30666,6 +30867,11 @@ var init_GameMenu = __esm({
30666
30867
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
30667
30868
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
30668
30869
  };
30870
+ DEFAULT_MENU_OPTIONS = [
30871
+ { label: "New Game", event: "NEW_GAME", variant: "primary" },
30872
+ { label: "Continue", event: "CONTINUE", variant: "secondary" },
30873
+ { label: "Settings", event: "SETTINGS", variant: "ghost" }
30874
+ ];
30669
30875
  GameMenu.displayName = "GameMenu";
30670
30876
  }
30671
30877
  });
@@ -30676,19 +30882,19 @@ function formatTime3(ms) {
30676
30882
  return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
30677
30883
  }
30678
30884
  function GameOverScreen({
30679
- title,
30885
+ title = "Game Over",
30680
30886
  message,
30681
- stats = [],
30887
+ stats = DEFAULT_GAME_OVER_STATS,
30682
30888
  actions,
30683
30889
  menuItems,
30684
30890
  onAction,
30685
30891
  eventBus: eventBusProp,
30686
- variant = "neutral",
30687
- highScore,
30688
- currentScore,
30892
+ variant = "defeat",
30893
+ highScore = 2e3,
30894
+ currentScore = 1240,
30689
30895
  className
30690
30896
  }) {
30691
- const resolvedActions = actions ?? menuItems ?? [];
30897
+ const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
30692
30898
  let eventBusFromHook = null;
30693
30899
  try {
30694
30900
  eventBusFromHook = useEventBus();
@@ -30775,7 +30981,7 @@ function GameOverScreen({
30775
30981
  }
30776
30982
  );
30777
30983
  }
30778
- var variantColors, buttonVariants;
30984
+ var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
30779
30985
  var init_GameOverScreen = __esm({
30780
30986
  "components/game/molecules/GameOverScreen.tsx"() {
30781
30987
  "use client";
@@ -30804,21 +31010,35 @@ var init_GameOverScreen = __esm({
30804
31010
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
30805
31011
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
30806
31012
  };
31013
+ DEFAULT_GAME_OVER_ACTIONS = [
31014
+ { label: "Play Again", event: "RESTART", variant: "primary" },
31015
+ { label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
31016
+ ];
31017
+ DEFAULT_GAME_OVER_STATS = [
31018
+ { label: "Score", value: 1240 },
31019
+ { label: "Enemies Defeated", value: 8 },
31020
+ { label: "Time", value: 93e3, format: "time" }
31021
+ ];
30807
31022
  GameOverScreen.displayName = "GameOverScreen";
30808
31023
  }
30809
31024
  });
30810
31025
  function PlatformerCanvas({
30811
31026
  player,
30812
- platforms = [],
31027
+ platforms = [
31028
+ { x: 0, y: 368, width: 800, height: 32, type: "ground" },
31029
+ { x: 150, y: 280, width: 160, height: 16, type: "platform" },
31030
+ { x: 420, y: 220, width: 160, height: 16, type: "platform" },
31031
+ { x: 620, y: 300, width: 140, height: 16, type: "platform" }
31032
+ ],
30813
31033
  worldWidth = 800,
30814
31034
  worldHeight = 400,
30815
31035
  canvasWidth = 800,
30816
31036
  canvasHeight = 400,
30817
31037
  followCamera = true,
30818
- bgColor,
31038
+ bgColor = "#5c94fc",
30819
31039
  playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
30820
31040
  tileSprites,
30821
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
31041
+ backgroundImage = "",
30822
31042
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
30823
31043
  leftEvent = "MOVE_LEFT",
30824
31044
  rightEvent = "MOVE_RIGHT",
@@ -30866,10 +31086,10 @@ function PlatformerCanvas({
30866
31086
  };
30867
31087
  }, []);
30868
31088
  const resolvedPlayer = player ?? {
30869
- x: 50,
30870
- y: 300,
30871
- width: 24,
30872
- height: 32,
31089
+ x: 80,
31090
+ y: 336,
31091
+ width: 32,
31092
+ height: 48,
30873
31093
  facingRight: true
30874
31094
  };
30875
31095
  const handleKeyDown = useCallback((e) => {
@@ -49158,12 +49378,12 @@ function WorldMapTemplate({
49158
49378
  entity,
49159
49379
  scale = 0.4,
49160
49380
  unitScale = 2.5,
49161
- diamondTopY,
49381
+ diamondTopY = 374,
49162
49382
  allowMoveAllHeroes = false,
49163
- tiles,
49164
- units,
49165
- features,
49166
- assetManifest,
49383
+ tiles = DEFAULT_WORLDMAP_TILES,
49384
+ units = DEFAULT_WORLDMAP_UNITS,
49385
+ features = DEFAULT_WORLDMAP_FEATURES,
49386
+ assetManifest = DEFAULT_WORLDMAP_MANIFEST,
49167
49387
  className
49168
49388
  }) {
49169
49389
  return /* @__PURE__ */ jsx(
@@ -49186,9 +49406,63 @@ function WorldMapTemplate({
49186
49406
  }
49187
49407
  );
49188
49408
  }
49409
+ var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
49189
49410
  var init_WorldMapTemplate = __esm({
49190
49411
  "components/game/templates/WorldMapTemplate.tsx"() {
49191
49412
  init_WorldMapBoard();
49413
+ CDN3 = "https://almadar-kflow-assets.web.app/shared";
49414
+ DEFAULT_WORLDMAP_TILES = [
49415
+ { x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49416
+ { x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49417
+ { x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
49418
+ { x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49419
+ { x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49420
+ { x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49421
+ { x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49422
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49423
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49424
+ { x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
49425
+ { x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
49426
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49427
+ { x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
49428
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49429
+ { x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49430
+ { x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49431
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49432
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49433
+ { x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
49434
+ { x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49435
+ { x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49436
+ { x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
49437
+ { x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
49438
+ { x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
49439
+ { x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
49440
+ ];
49441
+ DEFAULT_WORLDMAP_UNITS = [
49442
+ { 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` },
49443
+ { 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` }
49444
+ ];
49445
+ DEFAULT_WORLDMAP_FEATURES = [
49446
+ { id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
49447
+ { id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
49448
+ ];
49449
+ DEFAULT_WORLDMAP_MANIFEST = {
49450
+ baseUrl: CDN3,
49451
+ terrains: {
49452
+ grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
49453
+ water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
49454
+ mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
49455
+ road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
49456
+ },
49457
+ units: {
49458
+ hero: "/sprite-sheets/amir-sprite-sheet-se.png",
49459
+ scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
49460
+ },
49461
+ features: {
49462
+ capital: "/scenes/world/capital.png",
49463
+ power_node: "/world-map/power_node.png"
49464
+ }
49465
+ };
49192
49466
  WorldMapTemplate.displayName = "WorldMapTemplate";
49193
49467
  }
49194
49468
  });