@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.
@@ -6954,8 +6954,8 @@ var init_TraitFrame = __esm({
6954
6954
  }
6955
6955
  });
6956
6956
  function HealthBar({
6957
- current,
6958
- max,
6957
+ current = 3,
6958
+ max = 5,
6959
6959
  format = "hearts",
6960
6960
  size = "md",
6961
6961
  className,
@@ -7204,11 +7204,11 @@ var init_ControlButton = __esm({
7204
7204
  });
7205
7205
  function Sprite({
7206
7206
  spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
7207
- frameWidth,
7208
- frameHeight,
7209
- frame,
7210
- x,
7211
- y,
7207
+ frameWidth = 64,
7208
+ frameHeight = 64,
7209
+ frame = 0,
7210
+ x = 0,
7211
+ y = 0,
7212
7212
  scale = 1,
7213
7213
  flipX = false,
7214
7214
  flipY = false,
@@ -7278,7 +7278,7 @@ var init_Sprite = __esm({
7278
7278
  }
7279
7279
  });
7280
7280
  function StateIndicator({
7281
- state,
7281
+ state = "idle",
7282
7282
  label,
7283
7283
  size = "md",
7284
7284
  animated = true,
@@ -7349,8 +7349,8 @@ function formatTime(seconds, format) {
7349
7349
  return `${mins.toString().padStart(2, "0")}:${padded}`;
7350
7350
  }
7351
7351
  function TimerDisplay({
7352
- seconds,
7353
- running,
7352
+ seconds = 90,
7353
+ running = true,
7354
7354
  format = "mm:ss",
7355
7355
  size = "md",
7356
7356
  className,
@@ -7387,8 +7387,8 @@ var init_TimerDisplay = __esm({
7387
7387
  });
7388
7388
  function ResourceCounter({
7389
7389
  icon,
7390
- label,
7391
- value,
7390
+ label = "Gold",
7391
+ value = 250,
7392
7392
  max,
7393
7393
  color,
7394
7394
  size = "md",
@@ -7440,10 +7440,10 @@ var init_ResourceCounter = __esm({
7440
7440
  }
7441
7441
  });
7442
7442
  function ItemSlot({
7443
- icon,
7444
- label,
7443
+ icon = "sword",
7444
+ label = "Iron Sword",
7445
7445
  quantity,
7446
- rarity = "common",
7446
+ rarity = "uncommon",
7447
7447
  empty,
7448
7448
  size = "md",
7449
7449
  selected,
@@ -7516,7 +7516,7 @@ var init_ItemSlot = __esm({
7516
7516
  }
7517
7517
  });
7518
7518
  function TurnIndicator({
7519
- currentTurn,
7519
+ currentTurn = 1,
7520
7520
  maxTurns,
7521
7521
  activeTeam,
7522
7522
  phase,
@@ -7579,7 +7579,7 @@ function getComboScale(combo) {
7579
7579
  return "";
7580
7580
  }
7581
7581
  function ComboCounter({
7582
- combo,
7582
+ combo = 5,
7583
7583
  multiplier,
7584
7584
  streak,
7585
7585
  size = "md",
@@ -7625,10 +7625,10 @@ var init_ComboCounter = __esm({
7625
7625
  }
7626
7626
  });
7627
7627
  function XPBar({
7628
- current,
7629
- max,
7630
- level,
7631
- showLabel = false,
7628
+ current = 350,
7629
+ max = 1e3,
7630
+ level = 5,
7631
+ showLabel = true,
7632
7632
  size = "md",
7633
7633
  animated = true,
7634
7634
  className
@@ -7711,7 +7711,7 @@ var init_XPBar = __esm({
7711
7711
  function WaypointMarker({
7712
7712
  label,
7713
7713
  icon,
7714
- active = false,
7714
+ active = true,
7715
7715
  completed = false,
7716
7716
  size = "md",
7717
7717
  className
@@ -7785,11 +7785,11 @@ function formatDuration(seconds) {
7785
7785
  return `${Math.round(seconds)}s`;
7786
7786
  }
7787
7787
  function StatusEffect({
7788
- icon,
7789
- label,
7790
- duration,
7788
+ icon = "shield",
7789
+ label = "Shield",
7790
+ duration = 30,
7791
7791
  stacks,
7792
- variant = "neutral",
7792
+ variant = "buff",
7793
7793
  size = "md",
7794
7794
  className
7795
7795
  }) {
@@ -7851,7 +7851,7 @@ var init_StatusEffect = __esm({
7851
7851
  }
7852
7852
  });
7853
7853
  function DamageNumber({
7854
- value,
7854
+ value = 42,
7855
7855
  type = "damage",
7856
7856
  size = "md",
7857
7857
  className
@@ -7900,8 +7900,8 @@ var init_DamageNumber = __esm({
7900
7900
  }
7901
7901
  });
7902
7902
  function DialogueBubble({
7903
- speaker,
7904
- text,
7903
+ speaker = "Hero",
7904
+ text = "The dungeon awaits. Choose your path wisely.",
7905
7905
  portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
7906
7906
  position = "bottom",
7907
7907
  className
@@ -7938,7 +7938,7 @@ var init_DialogueBubble = __esm({
7938
7938
  }
7939
7939
  });
7940
7940
  function ChoiceButton({
7941
- text,
7941
+ text = "Charge forward into the fray",
7942
7942
  index,
7943
7943
  disabled = false,
7944
7944
  selected = false,
@@ -7984,7 +7984,7 @@ var init_ChoiceButton = __esm({
7984
7984
  }
7985
7985
  });
7986
7986
  function ActionButton({
7987
- label,
7987
+ label = "Attack",
7988
7988
  icon,
7989
7989
  cooldown = 0,
7990
7990
  disabled = false,
@@ -8064,13 +8064,13 @@ var init_ActionButton = __esm({
8064
8064
  }
8065
8065
  });
8066
8066
  function MiniMap({
8067
- tiles = [],
8068
- units = [],
8067
+ tiles = DEFAULT_TILES,
8068
+ units = DEFAULT_UNITS,
8069
8069
  width = 150,
8070
8070
  height = 150,
8071
8071
  mapWidth = 100,
8072
8072
  mapHeight = 100,
8073
- viewportRect,
8073
+ viewportRect = DEFAULT_VIEWPORT,
8074
8074
  className
8075
8075
  }) {
8076
8076
  const canvasRef = React82.useRef(null);
@@ -8149,10 +8149,25 @@ function MiniMap({
8149
8149
  }
8150
8150
  );
8151
8151
  }
8152
+ var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
8152
8153
  var init_MiniMap = __esm({
8153
8154
  "components/game/atoms/MiniMap.tsx"() {
8154
8155
  "use client";
8155
8156
  init_cn();
8157
+ DEFAULT_TILES = [
8158
+ { x: 10, y: 10, color: "#4ade80" },
8159
+ { x: 20, y: 15, color: "#4ade80" },
8160
+ { x: 30, y: 25, color: "#22c55e" },
8161
+ { x: 50, y: 40, color: "#4ade80" },
8162
+ { x: 60, y: 55, color: "#16a34a" },
8163
+ { x: 40, y: 60, color: "#4ade80" },
8164
+ { x: 70, y: 30, color: "#22c55e" },
8165
+ { x: 80, y: 70, color: "#4ade80" }
8166
+ ];
8167
+ DEFAULT_UNITS = [
8168
+ { x: 30, y: 30, color: "#60a5fa", isPlayer: true }
8169
+ ];
8170
+ DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
8156
8171
  MiniMap.displayName = "MiniMap";
8157
8172
  }
8158
8173
  });
@@ -9275,7 +9290,7 @@ var init_Accordion = __esm({
9275
9290
  }
9276
9291
  });
9277
9292
  function ActionButtons({
9278
- buttons,
9293
+ buttons = DEFAULT_BUTTONS,
9279
9294
  onAction,
9280
9295
  actionEvent,
9281
9296
  layout = "horizontal",
@@ -9382,7 +9397,7 @@ function ActionButtons({
9382
9397
  button.id
9383
9398
  )) });
9384
9399
  }
9385
- var sizeMap14, layoutMap;
9400
+ var sizeMap14, layoutMap, DEFAULT_BUTTONS;
9386
9401
  var init_ActionButtons = __esm({
9387
9402
  "components/game/molecules/ActionButtons.tsx"() {
9388
9403
  "use client";
@@ -9399,6 +9414,11 @@ var init_ActionButtons = __esm({
9399
9414
  vertical: "flex flex-col gap-2",
9400
9415
  diamond: "grid grid-cols-3 gap-1"
9401
9416
  };
9417
+ DEFAULT_BUTTONS = [
9418
+ { id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
9419
+ { id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
9420
+ { id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
9421
+ ];
9402
9422
  ActionButtons.displayName = "ActionButtons";
9403
9423
  }
9404
9424
  });
@@ -10591,7 +10611,7 @@ function IsometricCanvas({
10591
10611
  // Rendering options
10592
10612
  scale = 0.4,
10593
10613
  debug: debug2 = false,
10594
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
10614
+ backgroundImage = "",
10595
10615
  showMinimap = true,
10596
10616
  enableCamera = true,
10597
10617
  unitScale = 1,
@@ -11729,10 +11749,10 @@ function BattleTemplate({
11729
11749
  entity,
11730
11750
  scale = 0.45,
11731
11751
  unitScale = 1,
11732
- tiles,
11733
- units,
11734
- features,
11735
- assetManifest,
11752
+ tiles = DEFAULT_BATTLE_TILES,
11753
+ units = DEFAULT_BATTLE_UNITS,
11754
+ features = DEFAULT_BATTLE_FEATURES,
11755
+ assetManifest = DEFAULT_BATTLE_MANIFEST,
11736
11756
  className
11737
11757
  }) {
11738
11758
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -11758,9 +11778,62 @@ function BattleTemplate({
11758
11778
  }
11759
11779
  );
11760
11780
  }
11781
+ var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
11761
11782
  var init_BattleTemplate = __esm({
11762
11783
  "components/game/templates/BattleTemplate.tsx"() {
11763
11784
  init_BattleBoard();
11785
+ CDN = "https://almadar-kflow-assets.web.app/shared";
11786
+ DEFAULT_BATTLE_TILES = [
11787
+ { x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11788
+ { x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11789
+ { x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11790
+ { x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11791
+ { x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11792
+ { x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11793
+ { x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
11794
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11795
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11796
+ { x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11797
+ { x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11798
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11799
+ { x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
11800
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11801
+ { x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11802
+ { x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11803
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11804
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
11805
+ { x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
11806
+ { x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11807
+ { x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11808
+ { x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11809
+ { x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11810
+ { x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
11811
+ { x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
11812
+ ];
11813
+ DEFAULT_BATTLE_UNITS = [
11814
+ { 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` },
11815
+ { 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` }
11816
+ ];
11817
+ DEFAULT_BATTLE_FEATURES = [
11818
+ { id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
11819
+ { id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
11820
+ ];
11821
+ DEFAULT_BATTLE_MANIFEST = {
11822
+ baseUrl: CDN,
11823
+ terrains: {
11824
+ stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
11825
+ dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
11826
+ grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
11827
+ },
11828
+ units: {
11829
+ worker: "/sprite-sheets/amir-sprite-sheet-se.png",
11830
+ guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
11831
+ },
11832
+ features: {
11833
+ gold_mine: "/world-map/gold_mine.png",
11834
+ portal: "/world-map/portal_open.png"
11835
+ }
11836
+ };
11764
11837
  BattleTemplate.displayName = "BattleTemplate";
11765
11838
  }
11766
11839
  });
@@ -19760,10 +19833,10 @@ var init_CastleBoard = __esm({
19760
19833
  function CastleTemplate({
19761
19834
  entity,
19762
19835
  scale = 0.45,
19763
- tiles,
19764
- units,
19765
- features,
19766
- assetManifest,
19836
+ tiles = DEFAULT_CASTLE_TILES,
19837
+ units = DEFAULT_CASTLE_UNITS,
19838
+ features = DEFAULT_CASTLE_FEATURES,
19839
+ assetManifest = DEFAULT_CASTLE_MANIFEST,
19767
19840
  className
19768
19841
  }) {
19769
19842
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -19784,9 +19857,61 @@ function CastleTemplate({
19784
19857
  }
19785
19858
  );
19786
19859
  }
19860
+ var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
19787
19861
  var init_CastleTemplate = __esm({
19788
19862
  "components/game/templates/CastleTemplate.tsx"() {
19789
19863
  init_CastleBoard();
19864
+ CDN2 = "https://almadar-kflow-assets.web.app/shared";
19865
+ DEFAULT_CASTLE_TILES = [
19866
+ { x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19867
+ { x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19868
+ { x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19869
+ { x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19870
+ { x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19871
+ { x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19872
+ { x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19873
+ { x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19874
+ { x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19875
+ { x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19876
+ { x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19877
+ { x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19878
+ { x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
19879
+ { x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19880
+ { x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19881
+ { x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19882
+ { x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19883
+ { x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19884
+ { x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
19885
+ { x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19886
+ { x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19887
+ { x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19888
+ { x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19889
+ { x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
19890
+ { x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
19891
+ ];
19892
+ DEFAULT_CASTLE_UNITS = [
19893
+ { 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` },
19894
+ { 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` }
19895
+ ];
19896
+ DEFAULT_CASTLE_FEATURES = [
19897
+ { id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
19898
+ { id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
19899
+ ];
19900
+ DEFAULT_CASTLE_MANIFEST = {
19901
+ baseUrl: CDN2,
19902
+ terrains: {
19903
+ wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
19904
+ floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
19905
+ },
19906
+ units: {
19907
+ worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
19908
+ guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
19909
+ },
19910
+ features: {
19911
+ chest: "/world-map/treasure_chest_closed.png",
19912
+ crystal: "/world-map/resonance_crystal.png"
19913
+ }
19914
+ };
19790
19915
  CastleTemplate.displayName = "CastleTemplate";
19791
19916
  }
19792
19917
  });
@@ -20908,7 +21033,7 @@ var init_CodeRunnerPanel = __esm({
20908
21033
  }
20909
21034
  });
20910
21035
  function CombatLog({
20911
- events: events2,
21036
+ events: events2 = DEFAULT_COMBAT_EVENTS,
20912
21037
  maxVisible = 50,
20913
21038
  autoScroll = true,
20914
21039
  showTimestamps = false,
@@ -20959,7 +21084,7 @@ function CombatLog({
20959
21084
  }) }) })
20960
21085
  ] });
20961
21086
  }
20962
- var eventIcons, eventColors, eventBadgeVariants;
21087
+ var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
20963
21088
  var init_CombatLog = __esm({
20964
21089
  "components/game/molecules/CombatLog.tsx"() {
20965
21090
  init_atoms2();
@@ -20991,6 +21116,13 @@ var init_CombatLog = __esm({
20991
21116
  death: "secondary",
20992
21117
  spawn: "secondary"
20993
21118
  };
21119
+ DEFAULT_COMBAT_EVENTS = [
21120
+ { id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
21121
+ { id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
21122
+ { id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
21123
+ { id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
21124
+ { id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
21125
+ ];
20994
21126
  CombatLog.displayName = "CombatLog";
20995
21127
  }
20996
21128
  });
@@ -21398,9 +21530,9 @@ function isValidRarity(value) {
21398
21530
  return rarityValues.includes(value);
21399
21531
  }
21400
21532
  function CraftingRecipe({
21401
- inputs,
21402
- output,
21403
- canCraft = false,
21533
+ inputs = DEFAULT_INPUTS,
21534
+ output = DEFAULT_OUTPUT,
21535
+ canCraft = true,
21404
21536
  onCraft,
21405
21537
  craftEvent,
21406
21538
  className
@@ -21461,7 +21593,7 @@ function CraftingRecipe({
21461
21593
  }
21462
21594
  );
21463
21595
  }
21464
- var rarityValues;
21596
+ var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
21465
21597
  var init_CraftingRecipe = __esm({
21466
21598
  "components/game/molecules/CraftingRecipe.tsx"() {
21467
21599
  "use client";
@@ -21473,6 +21605,15 @@ var init_CraftingRecipe = __esm({
21473
21605
  init_Stack();
21474
21606
  init_Icon();
21475
21607
  rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
21608
+ DEFAULT_INPUTS = [
21609
+ { icon: "gem", label: "Iron Ore", required: 2, available: 3 },
21610
+ { icon: "flame", label: "Coal", required: 1, available: 1 }
21611
+ ];
21612
+ DEFAULT_OUTPUT = {
21613
+ icon: "sword",
21614
+ label: "Iron Sword",
21615
+ rarity: "uncommon"
21616
+ };
21476
21617
  CraftingRecipe.displayName = "CraftingRecipe";
21477
21618
  }
21478
21619
  });
@@ -26469,10 +26610,10 @@ var init_StatBadge = __esm({
26469
26610
  }
26470
26611
  });
26471
26612
  function InventoryGrid({
26472
- items,
26613
+ items = DEFAULT_GRID_ITEMS,
26473
26614
  columns = 4,
26474
- totalSlots,
26475
- selectedId,
26615
+ totalSlots = 12,
26616
+ selectedId = "",
26476
26617
  onSelect,
26477
26618
  selectEvent,
26478
26619
  size = "md",
@@ -26521,7 +26662,7 @@ function InventoryGrid({
26521
26662
  }
26522
26663
  );
26523
26664
  }
26524
- var columnMap;
26665
+ var columnMap, DEFAULT_GRID_ITEMS;
26525
26666
  var init_InventoryGrid = __esm({
26526
26667
  "components/game/molecules/InventoryGrid.tsx"() {
26527
26668
  "use client";
@@ -26538,12 +26679,18 @@ var init_InventoryGrid = __esm({
26538
26679
  7: "grid-cols-7",
26539
26680
  8: "grid-cols-8"
26540
26681
  };
26682
+ DEFAULT_GRID_ITEMS = [
26683
+ { id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
26684
+ { id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
26685
+ { id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
26686
+ { id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
26687
+ ];
26541
26688
  InventoryGrid.displayName = "InventoryGrid";
26542
26689
  }
26543
26690
  });
26544
26691
  function QuestTracker({
26545
- quests,
26546
- activeQuestId,
26692
+ quests = DEFAULT_QUESTS,
26693
+ activeQuestId = "q2",
26547
26694
  className
26548
26695
  }) {
26549
26696
  return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
@@ -26609,6 +26756,7 @@ function QuestTracker({
26609
26756
  );
26610
26757
  }) });
26611
26758
  }
26759
+ var DEFAULT_QUESTS;
26612
26760
  var init_QuestTracker = __esm({
26613
26761
  "components/game/molecules/QuestTracker.tsx"() {
26614
26762
  "use client";
@@ -26618,6 +26766,11 @@ var init_QuestTracker = __esm({
26618
26766
  init_Typography();
26619
26767
  init_Box();
26620
26768
  init_Stack();
26769
+ DEFAULT_QUESTS = [
26770
+ { id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
26771
+ { id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
26772
+ { id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
26773
+ ];
26621
26774
  QuestTracker.displayName = "QuestTracker";
26622
26775
  }
26623
26776
  });
@@ -26630,7 +26783,7 @@ function formatTime2(seconds) {
26630
26783
  return `${seconds}s`;
26631
26784
  }
26632
26785
  function PowerupSlots({
26633
- active,
26786
+ active = DEFAULT_ACTIVE_POWERUPS,
26634
26787
  maxSlots = 4,
26635
26788
  className
26636
26789
  }) {
@@ -26675,6 +26828,7 @@ function PowerupSlots({
26675
26828
  ))
26676
26829
  ] });
26677
26830
  }
26831
+ var DEFAULT_ACTIVE_POWERUPS;
26678
26832
  var init_PowerupSlots = __esm({
26679
26833
  "components/game/molecules/PowerupSlots.tsx"() {
26680
26834
  "use client";
@@ -26683,6 +26837,10 @@ var init_PowerupSlots = __esm({
26683
26837
  init_Box();
26684
26838
  init_Stack();
26685
26839
  init_Typography();
26840
+ DEFAULT_ACTIVE_POWERUPS = [
26841
+ { id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
26842
+ { id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
26843
+ ];
26686
26844
  PowerupSlots.displayName = "PowerupSlots";
26687
26845
  }
26688
26846
  });
@@ -26694,7 +26852,7 @@ function GameCanvas2D({
26694
26852
  tickEvent,
26695
26853
  drawEvent,
26696
26854
  fps = 60,
26697
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
26855
+ backgroundImage = "",
26698
26856
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
26699
26857
  className
26700
26858
  }) {
@@ -26798,10 +26956,10 @@ var init_GameCanvas2D = __esm({
26798
26956
  }
26799
26957
  });
26800
26958
  function HealthPanel({
26801
- current,
26802
- max,
26803
- shield,
26804
- label,
26959
+ current = 75,
26960
+ max = 100,
26961
+ shield = 20,
26962
+ label = "Player HP",
26805
26963
  effects,
26806
26964
  showNumbers = true,
26807
26965
  size = "md",
@@ -26919,11 +27077,11 @@ var init_HealthPanel = __esm({
26919
27077
  }
26920
27078
  });
26921
27079
  function ScoreBoard({
26922
- score: rawScore,
26923
- highScore: rawHighScore,
26924
- combo: rawCombo,
26925
- multiplier: rawMultiplier,
26926
- level: rawLevel,
27080
+ score: rawScore = 4200,
27081
+ highScore: rawHighScore = 8750,
27082
+ combo: rawCombo = 3,
27083
+ multiplier: rawMultiplier = 2,
27084
+ level: rawLevel = 4,
26927
27085
  className
26928
27086
  }) {
26929
27087
  const score = rawScore ?? 0;
@@ -26996,7 +27154,7 @@ var init_ScoreBoard = __esm({
26996
27154
  }
26997
27155
  });
26998
27156
  function ResourceBar({
26999
- resources,
27157
+ resources = DEFAULT_RESOURCES,
27000
27158
  size = "md",
27001
27159
  className
27002
27160
  }) {
@@ -27022,21 +27180,27 @@ function ResourceBar({
27022
27180
  }
27023
27181
  );
27024
27182
  }
27183
+ var DEFAULT_RESOURCES;
27025
27184
  var init_ResourceBar = __esm({
27026
27185
  "components/game/molecules/ResourceBar.tsx"() {
27027
27186
  "use client";
27028
27187
  init_cn();
27029
27188
  init_StatBadge();
27030
27189
  init_Box();
27190
+ DEFAULT_RESOURCES = [
27191
+ { icon: "coins", label: "Gold", value: 320 },
27192
+ { icon: "zap", label: "Energy", value: 7, max: 10 },
27193
+ { icon: "gem", label: "Crystals", value: 15 }
27194
+ ];
27031
27195
  ResourceBar.displayName = "ResourceBar";
27032
27196
  }
27033
27197
  });
27034
27198
  function TurnPanel({
27035
- currentTurn,
27036
- maxTurns,
27037
- phase,
27038
- activeTeam,
27039
- actions,
27199
+ currentTurn = 3,
27200
+ maxTurns = 10,
27201
+ phase = "Attack",
27202
+ activeTeam = "Heroes",
27203
+ actions = DEFAULT_TURN_ACTIONS,
27040
27204
  className
27041
27205
  }) {
27042
27206
  const eventBus = useEventBus();
@@ -27081,6 +27245,7 @@ function TurnPanel({
27081
27245
  }
27082
27246
  );
27083
27247
  }
27248
+ var DEFAULT_TURN_ACTIONS;
27084
27249
  var init_TurnPanel = __esm({
27085
27250
  "components/game/molecules/TurnPanel.tsx"() {
27086
27251
  "use client";
@@ -27089,15 +27254,19 @@ var init_TurnPanel = __esm({
27089
27254
  init_Button();
27090
27255
  init_Box();
27091
27256
  init_useEventBus();
27257
+ DEFAULT_TURN_ACTIONS = [
27258
+ { label: "End Turn", icon: "skip-forward", event: "END_TURN" },
27259
+ { label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
27260
+ ];
27092
27261
  TurnPanel.displayName = "TurnPanel";
27093
27262
  }
27094
27263
  });
27095
27264
  function EnemyPlate({
27096
- name,
27097
- health,
27098
- maxHealth,
27099
- level,
27100
- effects,
27265
+ name = "Shadow Guard",
27266
+ health = 80,
27267
+ maxHealth = 100,
27268
+ level = 5,
27269
+ effects = DEFAULT_ENEMY_EFFECTS,
27101
27270
  className
27102
27271
  }) {
27103
27272
  return /* @__PURE__ */ jsxs(
@@ -27163,7 +27332,7 @@ function EnemyPlate({
27163
27332
  }
27164
27333
  );
27165
27334
  }
27166
- var effectVariantMap2;
27335
+ var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
27167
27336
  var init_EnemyPlate = __esm({
27168
27337
  "components/game/molecules/EnemyPlate.tsx"() {
27169
27338
  "use client";
@@ -27177,12 +27346,15 @@ var init_EnemyPlate = __esm({
27177
27346
  debuff: "danger",
27178
27347
  neutral: "neutral"
27179
27348
  };
27349
+ DEFAULT_ENEMY_EFFECTS = [
27350
+ { icon: "flame", label: "Burn", variant: "debuff" }
27351
+ ];
27180
27352
  EnemyPlate.displayName = "EnemyPlate";
27181
27353
  }
27182
27354
  });
27183
27355
  function UnitCommandBar({
27184
- commands,
27185
- selectedUnitId,
27356
+ commands = DEFAULT_COMMANDS,
27357
+ selectedUnitId = "unit-1",
27186
27358
  className
27187
27359
  }) {
27188
27360
  const eventBus = useEventBus();
@@ -27225,6 +27397,7 @@ function UnitCommandBar({
27225
27397
  }
27226
27398
  );
27227
27399
  }
27400
+ var DEFAULT_COMMANDS;
27228
27401
  var init_UnitCommandBar = __esm({
27229
27402
  "components/game/molecules/UnitCommandBar.tsx"() {
27230
27403
  "use client";
@@ -27233,6 +27406,12 @@ var init_UnitCommandBar = __esm({
27233
27406
  init_Box();
27234
27407
  init_Typography();
27235
27408
  init_useEventBus();
27409
+ DEFAULT_COMMANDS = [
27410
+ { label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
27411
+ { label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
27412
+ { label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
27413
+ { label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
27414
+ ];
27236
27415
  UnitCommandBar.displayName = "UnitCommandBar";
27237
27416
  }
27238
27417
  });
@@ -27266,7 +27445,7 @@ function GameHud({
27266
27445
  className,
27267
27446
  transparent = true
27268
27447
  }) {
27269
- const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : []);
27448
+ const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
27270
27449
  const stats = Array.isArray(rawStats) ? rawStats : [];
27271
27450
  const position = propPosition ?? "corners";
27272
27451
  if (position === "corners") {
@@ -27291,7 +27470,7 @@ function GameHud({
27291
27470
  }
27292
27471
  );
27293
27472
  }
27294
- var positionMap;
27473
+ var positionMap, DEFAULT_HUD_STATS;
27295
27474
  var init_GameHud = __esm({
27296
27475
  "components/game/molecules/GameHud.tsx"() {
27297
27476
  init_cn();
@@ -27301,11 +27480,17 @@ var init_GameHud = __esm({
27301
27480
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
27302
27481
  corners: "inset-0 pointer-events-none"
27303
27482
  };
27483
+ DEFAULT_HUD_STATS = [
27484
+ { label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
27485
+ { label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
27486
+ { label: "Score", value: 4200, format: "number", variant: "warning" },
27487
+ { label: "Level", value: 4, format: "number", variant: "default" }
27488
+ ];
27304
27489
  GameHud.displayName = "GameHud";
27305
27490
  }
27306
27491
  });
27307
27492
  function DialogueBox({
27308
- dialogue,
27493
+ dialogue = DEFAULT_DIALOGUE,
27309
27494
  typewriterSpeed = 30,
27310
27495
  position = "bottom",
27311
27496
  onComplete,
@@ -27488,17 +27673,27 @@ function DialogueBox({
27488
27673
  }
27489
27674
  );
27490
27675
  }
27676
+ var DEFAULT_DIALOGUE;
27491
27677
  var init_DialogueBox = __esm({
27492
27678
  "components/game/molecules/DialogueBox.tsx"() {
27493
27679
  "use client";
27494
27680
  init_cn();
27495
27681
  init_useEventBus();
27682
+ DEFAULT_DIALOGUE = {
27683
+ speaker: "Village Elder",
27684
+ text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
27685
+ choices: [
27686
+ { text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
27687
+ { text: "Tell me more about the ruins.", action: "ASK_LORE" },
27688
+ { text: "Perhaps another time.", action: "DECLINE" }
27689
+ ]
27690
+ };
27496
27691
  }
27497
27692
  });
27498
27693
  function InventoryPanel({
27499
- items,
27500
- slots,
27501
- columns,
27694
+ items = DEFAULT_INVENTORY_ITEMS,
27695
+ slots = 12,
27696
+ columns = 4,
27502
27697
  selectedSlot,
27503
27698
  onSelectSlot,
27504
27699
  onUseItem,
@@ -27646,25 +27841,31 @@ function InventoryPanel({
27646
27841
  )
27647
27842
  ] });
27648
27843
  }
27844
+ var DEFAULT_INVENTORY_ITEMS;
27649
27845
  var init_InventoryPanel = __esm({
27650
27846
  "components/game/molecules/InventoryPanel.tsx"() {
27651
27847
  "use client";
27652
27848
  init_cn();
27653
27849
  init_useEventBus();
27850
+ DEFAULT_INVENTORY_ITEMS = [
27851
+ { id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
27852
+ { id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
27853
+ { id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
27854
+ ];
27654
27855
  }
27655
27856
  });
27656
27857
  function GameMenu({
27657
- title,
27858
+ title = "Epic Quest",
27658
27859
  subtitle,
27659
27860
  options,
27660
27861
  menuItems,
27661
27862
  onSelect,
27662
27863
  eventBus: eventBusProp,
27663
27864
  background,
27664
- logo,
27865
+ logo = "",
27665
27866
  className
27666
27867
  }) {
27667
- const resolvedOptions = options ?? menuItems ?? [];
27868
+ const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
27668
27869
  let eventBusFromHook = null;
27669
27870
  try {
27670
27871
  eventBusFromHook = useEventBus();
@@ -27745,7 +27946,7 @@ function GameMenu({
27745
27946
  }
27746
27947
  );
27747
27948
  }
27748
- var variantMap3;
27949
+ var variantMap3, DEFAULT_MENU_OPTIONS;
27749
27950
  var init_GameMenu = __esm({
27750
27951
  "components/game/molecules/GameMenu.tsx"() {
27751
27952
  "use client";
@@ -27756,6 +27957,11 @@ var init_GameMenu = __esm({
27756
27957
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27757
27958
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27758
27959
  };
27960
+ DEFAULT_MENU_OPTIONS = [
27961
+ { label: "New Game", event: "NEW_GAME", variant: "primary" },
27962
+ { label: "Continue", event: "CONTINUE", variant: "secondary" },
27963
+ { label: "Settings", event: "SETTINGS", variant: "ghost" }
27964
+ ];
27759
27965
  GameMenu.displayName = "GameMenu";
27760
27966
  }
27761
27967
  });
@@ -27766,19 +27972,19 @@ function formatTime3(ms) {
27766
27972
  return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
27767
27973
  }
27768
27974
  function GameOverScreen({
27769
- title,
27975
+ title = "Game Over",
27770
27976
  message,
27771
- stats = [],
27977
+ stats = DEFAULT_GAME_OVER_STATS,
27772
27978
  actions,
27773
27979
  menuItems,
27774
27980
  onAction,
27775
27981
  eventBus: eventBusProp,
27776
- variant = "neutral",
27777
- highScore,
27778
- currentScore,
27982
+ variant = "defeat",
27983
+ highScore = 2e3,
27984
+ currentScore = 1240,
27779
27985
  className
27780
27986
  }) {
27781
- const resolvedActions = actions ?? menuItems ?? [];
27987
+ const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
27782
27988
  let eventBusFromHook = null;
27783
27989
  try {
27784
27990
  eventBusFromHook = useEventBus();
@@ -27865,7 +28071,7 @@ function GameOverScreen({
27865
28071
  }
27866
28072
  );
27867
28073
  }
27868
- var variantColors, buttonVariants;
28074
+ var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
27869
28075
  var init_GameOverScreen = __esm({
27870
28076
  "components/game/molecules/GameOverScreen.tsx"() {
27871
28077
  "use client";
@@ -27894,21 +28100,35 @@ var init_GameOverScreen = __esm({
27894
28100
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
27895
28101
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
27896
28102
  };
28103
+ DEFAULT_GAME_OVER_ACTIONS = [
28104
+ { label: "Play Again", event: "RESTART", variant: "primary" },
28105
+ { label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
28106
+ ];
28107
+ DEFAULT_GAME_OVER_STATS = [
28108
+ { label: "Score", value: 1240 },
28109
+ { label: "Enemies Defeated", value: 8 },
28110
+ { label: "Time", value: 93e3, format: "time" }
28111
+ ];
27897
28112
  GameOverScreen.displayName = "GameOverScreen";
27898
28113
  }
27899
28114
  });
27900
28115
  function PlatformerCanvas({
27901
28116
  player,
27902
- platforms = [],
28117
+ platforms = [
28118
+ { x: 0, y: 368, width: 800, height: 32, type: "ground" },
28119
+ { x: 150, y: 280, width: 160, height: 16, type: "platform" },
28120
+ { x: 420, y: 220, width: 160, height: 16, type: "platform" },
28121
+ { x: 620, y: 300, width: 140, height: 16, type: "platform" }
28122
+ ],
27903
28123
  worldWidth = 800,
27904
28124
  worldHeight = 400,
27905
28125
  canvasWidth = 800,
27906
28126
  canvasHeight = 400,
27907
28127
  followCamera = true,
27908
- bgColor,
28128
+ bgColor = "#5c94fc",
27909
28129
  playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
27910
28130
  tileSprites,
27911
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
28131
+ backgroundImage = "",
27912
28132
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
27913
28133
  leftEvent = "MOVE_LEFT",
27914
28134
  rightEvent = "MOVE_RIGHT",
@@ -27956,10 +28176,10 @@ function PlatformerCanvas({
27956
28176
  };
27957
28177
  }, []);
27958
28178
  const resolvedPlayer = player ?? {
27959
- x: 50,
27960
- y: 300,
27961
- width: 24,
27962
- height: 32,
28179
+ x: 80,
28180
+ y: 336,
28181
+ width: 32,
28182
+ height: 48,
27963
28183
  facingRight: true
27964
28184
  };
27965
28185
  const handleKeyDown = useCallback((e) => {
@@ -46657,12 +46877,12 @@ function WorldMapTemplate({
46657
46877
  entity,
46658
46878
  scale = 0.4,
46659
46879
  unitScale = 2.5,
46660
- diamondTopY,
46880
+ diamondTopY = 374,
46661
46881
  allowMoveAllHeroes = false,
46662
- tiles,
46663
- units,
46664
- features,
46665
- assetManifest,
46882
+ tiles = DEFAULT_WORLDMAP_TILES,
46883
+ units = DEFAULT_WORLDMAP_UNITS,
46884
+ features = DEFAULT_WORLDMAP_FEATURES,
46885
+ assetManifest = DEFAULT_WORLDMAP_MANIFEST,
46666
46886
  className
46667
46887
  }) {
46668
46888
  return /* @__PURE__ */ jsx(
@@ -46685,9 +46905,63 @@ function WorldMapTemplate({
46685
46905
  }
46686
46906
  );
46687
46907
  }
46908
+ var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
46688
46909
  var init_WorldMapTemplate = __esm({
46689
46910
  "components/game/templates/WorldMapTemplate.tsx"() {
46690
46911
  init_WorldMapBoard();
46912
+ CDN3 = "https://almadar-kflow-assets.web.app/shared";
46913
+ DEFAULT_WORLDMAP_TILES = [
46914
+ { x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46915
+ { x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46916
+ { x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
46917
+ { x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46918
+ { x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46919
+ { x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46920
+ { x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46921
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46922
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46923
+ { x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
46924
+ { x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
46925
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46926
+ { x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
46927
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46928
+ { x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46929
+ { x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46930
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46931
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46932
+ { x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
46933
+ { x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46934
+ { x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46935
+ { x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
46936
+ { x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
46937
+ { x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
46938
+ { x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
46939
+ ];
46940
+ DEFAULT_WORLDMAP_UNITS = [
46941
+ { 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` },
46942
+ { 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` }
46943
+ ];
46944
+ DEFAULT_WORLDMAP_FEATURES = [
46945
+ { id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
46946
+ { id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
46947
+ ];
46948
+ DEFAULT_WORLDMAP_MANIFEST = {
46949
+ baseUrl: CDN3,
46950
+ terrains: {
46951
+ grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
46952
+ water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
46953
+ mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
46954
+ road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
46955
+ },
46956
+ units: {
46957
+ hero: "/sprite-sheets/amir-sprite-sheet-se.png",
46958
+ scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
46959
+ },
46960
+ features: {
46961
+ capital: "/scenes/world/capital.png",
46962
+ power_node: "/world-map/power_node.png"
46963
+ }
46964
+ };
46691
46965
  WorldMapTemplate.displayName = "WorldMapTemplate";
46692
46966
  }
46693
46967
  });