working draft
This commit is contained in:
@@ -1,81 +1,441 @@
|
||||
// level config will be in one array
|
||||
// index 0 = level 1, etc
|
||||
// edit level change calculations here
|
||||
// x,y = center position. w, h = width and height of the platform
|
||||
// level config — one entry per level
|
||||
// x,y = center w,h = dimensions
|
||||
// fragment colors match the level color (updated hex values)
|
||||
// bg → put your PNG in public/backgrounds/levelN.png
|
||||
// playerImg → put your PNG in public/assets/player_levelN.png
|
||||
|
||||
export const LEVELS = [
|
||||
|
||||
// ── LEVEL 1: CRIMSON ──────────────────────────────────────────────────────
|
||||
// platforms and enemies unchanged from original design
|
||||
{
|
||||
id: 1,
|
||||
name: 'The Gray Beginning',
|
||||
color: '#FF4136',
|
||||
//bgFar: '/backgrounds/level1_far/png',
|
||||
//bgMid: '/backgrounds/level1_mid.png',
|
||||
spawnX: 80,
|
||||
spawnY: 380,
|
||||
|
||||
// each platform: {x,y,w,h}
|
||||
id: 1,
|
||||
name: 'Eruption',
|
||||
color: '#970505',
|
||||
bg: '/backgrounds/level1.png',
|
||||
playerImg: '/assets/player_level1.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{x: 400, y: 440, w: 800, h: 20}, // ground
|
||||
{x: 220, y: 360, w: 160, h: 16},
|
||||
{x: 430, y: 300, w: 140, h: 16 },
|
||||
{x: 640, y: 240, w: 160, h: 16 },
|
||||
{x: 320, y: 210, w: 120, h: 16 },
|
||||
{ x: 400, y: 440, w: 800, h: 12 }, // ground
|
||||
{ x: 170, y: 370, w: 160, h: 14 }, // left starter
|
||||
{ x: 390, y: 308, w: 150, h: 14 }, // middle step
|
||||
{ x: 610, y: 248, w: 150, h: 14 }, // upper right
|
||||
{ x: 395, y: 188, w: 140, h: 14 }, // top center
|
||||
],
|
||||
|
||||
// each fragment: {x,y,color}
|
||||
fragments: [
|
||||
{x: 220, y: 330, color: '#FF4136'},
|
||||
{x: 430, y: 270, color: '#FF4136'},
|
||||
{x: 640, y: 210, color: '#FF4136'},
|
||||
{ x: 170, y: 338, color: '#970505' },
|
||||
{ x: 390, y: 278, color: '#970505' },
|
||||
{ x: 610, y: 216, color: '#970505' },
|
||||
{ x: 395, y: 156, color: '#970505' },
|
||||
],
|
||||
|
||||
// each enemy: {x,y, patrol}
|
||||
enemies: [
|
||||
{x: 430, y: 280, patrol: 50},
|
||||
{ x: 390, y: 283, patrol: 50 },
|
||||
],
|
||||
|
||||
// each puddle: {x, y}
|
||||
tar: [],
|
||||
},
|
||||
|
||||
// ── LEVEL 2: AMBER ────────────────────────────────────────────────────────
|
||||
// platforms and enemies unchanged from original design
|
||||
{
|
||||
id: 2,
|
||||
name: 'Warmer skies',
|
||||
color: '#FF851B',
|
||||
bgFar: '/backgrounds/level2_far.png',
|
||||
bgMid: '/backgrounds/level2_mid.png',
|
||||
spawnX: 80,
|
||||
spawnY: 380,
|
||||
|
||||
name: 'Sunset',
|
||||
color: '#CF8917',
|
||||
bg: '/backgrounds/level2.png',
|
||||
playerImg: '/assets/player_level2.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 20 },
|
||||
{ x: 180, y: 370, w: 140, h: 16 },
|
||||
{ x: 380, y: 310, w: 120, h: 16 },
|
||||
{ x: 560, y: 250, w: 120, h: 16 },
|
||||
{ x: 700, y: 330, w: 100, h: 16 },
|
||||
{ x: 300, y: 200, w: 100, h: 16 },
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 160, y: 375, w: 150, h: 14 }, // left low
|
||||
{ x: 360, y: 318, w: 140, h: 14 }, // center
|
||||
{ x: 560, y: 260, w: 130, h: 14 }, // right mid
|
||||
{ x: 710, y: 330, w: 110, h: 14 }, // right island
|
||||
{ x: 280, y: 238, w: 110, h: 14 }, // upper left — backtrack
|
||||
{ x: 478, y: 188, w: 110, h: 14 }, // top center
|
||||
],
|
||||
|
||||
fragments: [
|
||||
{ x: 180, y: 340, color: '#FF851B' },
|
||||
{ x: 380, y: 280, color: '#FF851B' },
|
||||
{ x: 300, y: 170, color: '#FF851B' },
|
||||
{ x: 700, y: 300, color: '#FF851B' },
|
||||
{ x: 160, y: 343, color: '#CF8917' },
|
||||
{ x: 710, y: 298, color: '#CF8917' },
|
||||
{ x: 280, y: 206, color: '#CF8917' },
|
||||
{ x: 478, y: 156, color: '#CF8917' },
|
||||
],
|
||||
|
||||
enemies: [
|
||||
{ x: 380, y: 290, patrol: 45 },
|
||||
{ x: 560, y: 230, patrol: 40 },
|
||||
{ x: 360, y: 293, patrol: 45 },
|
||||
{ x: 560, y: 235, patrol: 40 },
|
||||
],
|
||||
|
||||
tar: [
|
||||
{ x: 150, y: 432 },
|
||||
{ x: 490, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 3: YELLOW ───────────────────────────────────────────────────────
|
||||
// two wide wings — left and right — converging at the upper center
|
||||
{
|
||||
id: 3,
|
||||
name: 'Golden',
|
||||
color: '#E3D214',
|
||||
bg: '/backgrounds/level3.png',
|
||||
playerImg: '/assets/player_level3.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 140, y: 372, w: 150, h: 14 }, // left start
|
||||
{ x: 575, y: 365, w: 150, h: 14 }, // right start (enemy guards)
|
||||
{ x: 280, y: 302, w: 120, h: 14 }, // left mid
|
||||
{ x: 510, y: 295, w: 120, h: 14 }, // right mid
|
||||
{ x: 155, y: 238, w: 110, h: 14 }, // upper left
|
||||
{ x: 420, y: 228, w: 130, h: 14 }, // upper center (wider, enemy)
|
||||
{ x: 660, y: 220, w: 110, h: 14 }, // upper right
|
||||
],
|
||||
fragments: [
|
||||
{ x: 280, y: 270, color: '#E3D214' }, // left mid — easy
|
||||
{ x: 660, y: 188, color: '#E3D214' }, // upper right
|
||||
{ x: 155, y: 206, color: '#E3D214' }, // upper left
|
||||
{ x: 420, y: 196, color: '#E3D214' }, // upper center — guarded
|
||||
],
|
||||
enemies: [
|
||||
{ x: 575, y: 340, patrol: 52 },
|
||||
{ x: 420, y: 203, patrol: 45 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 370, y: 432 },
|
||||
{ x: 700, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 4: GREEN ────────────────────────────────────────────────────────
|
||||
// two vertical columns with connecting bridges — forest canopy feel
|
||||
{
|
||||
id: 4,
|
||||
name: 'Greenery',
|
||||
color: '#39BD1C',
|
||||
bg: '/backgrounds/level4.png',
|
||||
playerImg: '/assets/player_level4.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 140, y: 372, w: 130, h: 14 }, // left start (enemy guards)
|
||||
{ x: 665, y: 365, w: 130, h: 14 }, // right — separated by tar
|
||||
{ x: 270, y: 305, w: 120, h: 14 }, // center-left mid (enemy guards)
|
||||
{ x: 510, y: 298, w: 120, h: 14 }, // center-right mid
|
||||
{ x: 165, y: 242, w: 110, h: 14 }, // upper left
|
||||
{ x: 380, y: 232, w: 120, h: 14 }, // upper center
|
||||
{ x: 610, y: 225, w: 110, h: 14 }, // upper right (enemy guards)
|
||||
{ x: 290, y: 175, w: 95, h: 14 }, // top left
|
||||
{ x: 520, y: 168, w: 95, h: 14 }, // top right — hardest
|
||||
],
|
||||
fragments: [
|
||||
{ x: 270, y: 273, color: '#39BD1C' }, // center-left mid
|
||||
{ x: 510, y: 266, color: '#39BD1C' }, // center-right mid
|
||||
{ x: 380, y: 200, color: '#39BD1C' }, // upper center
|
||||
{ x: 520, y: 136, color: '#39BD1C' }, // top right — hardest
|
||||
],
|
||||
enemies: [
|
||||
{ x: 140, y: 347, patrol: 40 },
|
||||
{ x: 270, y: 280, patrol: 38 },
|
||||
{ x: 610, y: 200, patrol: 36 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 395, y: 432 },
|
||||
{ x: 610, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 5: CYAN ─────────────────────────────────────────────────────────
|
||||
// zigzag flow — dips and rises like tide pools
|
||||
{
|
||||
id: 5,
|
||||
name: 'Tidal',
|
||||
color: '#12B6C8',
|
||||
bg: '/backgrounds/level5.png',
|
||||
playerImg: '/assets/player_level5.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 145, y: 378, w: 140, h: 14 }, // left start
|
||||
{ x: 355, y: 395, w: 115, h: 14 }, // dips down — zigzag
|
||||
{ x: 540, y: 368, w: 125, h: 14 }, // center right
|
||||
{ x: 705, y: 348, w: 115, h: 14 }, // far right
|
||||
{ x: 235, y: 308, w: 110, h: 14 }, // upper left
|
||||
{ x: 445, y: 295, w: 110, h: 14 }, // upper center (enemy)
|
||||
{ x: 640, y: 278, w: 115, h: 14 }, // upper right
|
||||
{ x: 125, y: 248, w: 95, h: 14 }, // high far left — isolated
|
||||
{ x: 365, y: 235, w: 90, h: 14 }, // high center
|
||||
{ x: 590, y: 220, w: 90, h: 14 }, // high right (enemy)
|
||||
{ x: 755, y: 202, w: 80, h: 14 }, // top far right — narrow
|
||||
],
|
||||
fragments: [
|
||||
{ x: 235, y: 276, color: '#12B6C8' }, // upper left
|
||||
{ x: 640, y: 246, color: '#12B6C8' }, // upper right
|
||||
{ x: 125, y: 216, color: '#12B6C8' }, // high far left — isolated
|
||||
{ x: 365, y: 203, color: '#12B6C8' }, // high center
|
||||
{ x: 755, y: 170, color: '#12B6C8' }, // top far right — hardest
|
||||
],
|
||||
enemies: [
|
||||
{ x: 355, y: 370, patrol: 35 },
|
||||
{ x: 445, y: 270, patrol: 35 },
|
||||
{ x: 590, y: 195, patrol: 28 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 265, y: 432 },
|
||||
{ x: 480, y: 432 },
|
||||
{ x: 680, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 6: DEEP BLUE ────────────────────────────────────────────────────
|
||||
// cold, sparse — wider gaps, deliberate platform placement
|
||||
{
|
||||
id: 6,
|
||||
name: 'The Abyss',
|
||||
color: '#170CB7',
|
||||
bg: '/backgrounds/level6.png',
|
||||
playerImg: '/assets/player_level6.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 130, y: 382, w: 125, h: 14 }, // left start
|
||||
{ x: 675, y: 370, w: 130, h: 14 }, // far right — requires commitment
|
||||
{ x: 308, y: 355, w: 108, h: 14 }, // center step
|
||||
{ x: 510, y: 385, w: 105, h: 14 }, // dip right
|
||||
{ x: 220, y: 302, w: 100, h: 14 }, // upper left
|
||||
{ x: 455, y: 290, w: 100, h: 14 }, // upper center
|
||||
{ x: 660, y: 275, w: 110, h: 14 }, // upper right (enemy)
|
||||
{ x: 105, y: 245, w: 88, h: 14 }, // high far left — isolated
|
||||
{ x: 358, y: 232, w: 85, h: 14 }, // high center
|
||||
{ x: 580, y: 215, w: 85, h: 14 }, // high right
|
||||
{ x: 745, y: 198, w: 80, h: 14 }, // narrow top right
|
||||
{ x: 268, y: 175, w: 80, h: 14 }, // top left
|
||||
{ x: 480, y: 165, w: 80, h: 14 }, // very top — hardest
|
||||
],
|
||||
fragments: [
|
||||
{ x: 308, y: 323, color: '#170CB7' }, // center step — warmup
|
||||
{ x: 220, y: 270, color: '#170CB7' }, // upper left
|
||||
{ x: 660, y: 243, color: '#170CB7' }, // upper right
|
||||
{ x: 358, y: 200, color: '#170CB7' }, // high center
|
||||
{ x: 480, y: 133, color: '#170CB7' }, // very top — hardest
|
||||
],
|
||||
enemies: [
|
||||
{ x: 510, y: 360, patrol: 33 },
|
||||
{ x: 455, y: 265, patrol: 30 },
|
||||
{ x: 660, y: 250, patrol: 37 },
|
||||
{ x: 358, y: 207, patrol: 25 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 230, y: 432 },
|
||||
{ x: 460, y: 432 },
|
||||
{ x: 640, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 7: PURPLE ───────────────────────────────────────────────────────
|
||||
// narrow platforms spiraling up — precision required
|
||||
{
|
||||
id: 7,
|
||||
name: 'Twilight Spire',
|
||||
color: '#6613BA',
|
||||
bg: '/backgrounds/level7.png',
|
||||
playerImg: '/assets/player_level7.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 130, y: 385, w: 115, h: 14 }, // left start
|
||||
{ x: 308, y: 365, w: 100, h: 14 }, // small step
|
||||
{ x: 483, y: 390, w: 100, h: 14 }, // dip
|
||||
{ x: 652, y: 358, w: 115, h: 14 }, // right mid
|
||||
{ x: 768, y: 300, w: 75, h: 14 }, // narrow far right
|
||||
{ x: 578, y: 272, w: 88, h: 14 }, // upper right
|
||||
{ x: 400, y: 295, w: 85, h: 14 }, // upper center
|
||||
{ x: 220, y: 285, w: 90, h: 14 }, // upper left
|
||||
{ x: 90, y: 248, w: 80, h: 14 }, // narrow far left
|
||||
{ x: 320, y: 232, w: 80, h: 14 }, // high center
|
||||
{ x: 518, y: 215, w: 80, h: 14 }, // high right
|
||||
{ x: 698, y: 190, w: 78, h: 14 }, // top right — narrow
|
||||
],
|
||||
fragments: [
|
||||
{ x: 652, y: 326, color: '#6613BA' }, // right mid
|
||||
{ x: 220, y: 253, color: '#6613BA' }, // upper left
|
||||
{ x: 320, y: 200, color: '#6613BA' }, // high center
|
||||
{ x: 518, y: 183, color: '#6613BA' }, // high right
|
||||
{ x: 698, y: 158, color: '#6613BA' }, // top right — hardest
|
||||
],
|
||||
enemies: [
|
||||
{ x: 308, y: 340, patrol: 28 },
|
||||
{ x: 400, y: 270, patrol: 25 },
|
||||
{ x: 578, y: 247, patrol: 26 },
|
||||
{ x: 90, y: 223, patrol: 22 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 200, y: 432 },
|
||||
{ x: 408, y: 432 },
|
||||
{ x: 618, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 8: MAGENTA ──────────────────────────────────────────────────────
|
||||
// energetic grid-like layout with strategic gaps
|
||||
{
|
||||
id: 8,
|
||||
name: 'Neon Bloom',
|
||||
color: '#C71287',
|
||||
bg: '/backgrounds/level8.png',
|
||||
playerImg: '/assets/player_level8.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 155, y: 380, w: 130, h: 14 },
|
||||
{ x: 338, y: 360, w: 118, h: 14 },
|
||||
{ x: 513, y: 380, w: 110, h: 14 }, // dip
|
||||
{ x: 688, y: 358, w: 120, h: 14 },
|
||||
{ x: 165, y: 308, w: 100, h: 14 }, // upper left
|
||||
{ x: 365, y: 300, w: 90, h: 14 }, // upper center
|
||||
{ x: 553, y: 308, w: 100, h: 14 }, // upper right
|
||||
{ x: 728, y: 278, w: 78, h: 14 }, // narrow far right
|
||||
{ x: 260, y: 248, w: 90, h: 14 }, // high left
|
||||
{ x: 448, y: 238, w: 90, h: 14 }, // high center
|
||||
{ x: 636, y: 222, w: 90, h: 14 }, // high right
|
||||
{ x: 368, y: 178, w: 80, h: 14 }, // near top
|
||||
{ x: 553, y: 165, w: 80, h: 14 }, // top — hardest
|
||||
],
|
||||
fragments: [
|
||||
{ x: 165, y: 276, color: '#C71287' }, // upper left
|
||||
{ x: 728, y: 246, color: '#C71287' }, // narrow far right
|
||||
{ x: 448, y: 206, color: '#C71287' }, // high center
|
||||
{ x: 368, y: 146, color: '#C71287' }, // near top
|
||||
{ x: 553, y: 133, color: '#C71287' }, // top — hardest
|
||||
],
|
||||
enemies: [
|
||||
{ x: 338, y: 335, patrol: 38 },
|
||||
{ x: 688, y: 333, patrol: 40 },
|
||||
{ x: 553, y: 283, patrol: 32 },
|
||||
{ x: 365, y: 275, patrol: 25 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 178, y: 432 },
|
||||
{ x: 378, y: 432 },
|
||||
{ x: 558, y: 432 },
|
||||
{ x: 738, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 9: BROWN ────────────────────────────────────────────────────────
|
||||
// dense cave — most enemies, hardest single-color level
|
||||
{
|
||||
id: 9,
|
||||
name: 'Deep Caves',
|
||||
color: '#753F16',
|
||||
bg: '/backgrounds/level9.png',
|
||||
playerImg: '/assets/player_level9.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
{ x: 135, y: 382, w: 128, h: 14 },
|
||||
{ x: 315, y: 365, w: 112, h: 14 },
|
||||
{ x: 496, y: 388, w: 108, h: 14 }, // dip
|
||||
{ x: 660, y: 358, w: 118, h: 14 },
|
||||
{ x: 200, y: 322, w: 100, h: 14 },
|
||||
{ x: 400, y: 312, w: 93, h: 14 },
|
||||
{ x: 578, y: 305, w: 100, h: 14 },
|
||||
{ x: 738, y: 288, w: 78, h: 14 }, // narrow
|
||||
{ x: 118, y: 262, w: 88, h: 14 },
|
||||
{ x: 310, y: 255, w: 88, h: 14 },
|
||||
{ x: 492, y: 245, w: 88, h: 14 },
|
||||
{ x: 658, y: 232, w: 88, h: 14 },
|
||||
{ x: 232, y: 195, w: 78, h: 14 },
|
||||
{ x: 425, y: 185, w: 78, h: 14 },
|
||||
{ x: 608, y: 178, w: 78, h: 14 },
|
||||
],
|
||||
fragments: [
|
||||
{ x: 578, y: 273, color: '#753F16' },
|
||||
{ x: 310, y: 223, color: '#753F16' },
|
||||
{ x: 658, y: 200, color: '#753F16' },
|
||||
{ x: 425, y: 153, color: '#753F16' },
|
||||
{ x: 608, y: 146, color: '#753F16' },
|
||||
],
|
||||
enemies: [
|
||||
{ x: 315, y: 340, patrol: 35 },
|
||||
{ x: 660, y: 333, patrol: 40 },
|
||||
{ x: 400, y: 287, patrol: 28 },
|
||||
{ x: 492, y: 220, patrol: 28 },
|
||||
{ x: 738, y: 263, patrol: 22 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 152, y: 432 },
|
||||
{ x: 348, y: 432 },
|
||||
{ x: 540, y: 432 },
|
||||
{ x: 712, y: 432 },
|
||||
],
|
||||
},
|
||||
|
||||
// ── LEVEL 10: THE COLOR REALM — final ────────────────────────────────────
|
||||
// one fragment per level color — completing this leads to the win screen
|
||||
{
|
||||
id: 10,
|
||||
name: 'The Color Realm',
|
||||
color: '#FFD700',
|
||||
bg: '/backgrounds/level10.png',
|
||||
playerImg: '/assets/player_level10.png',
|
||||
spawnX: 60,
|
||||
spawnY: 400,
|
||||
platforms: [
|
||||
{ x: 400, y: 440, w: 800, h: 12 },
|
||||
// row 1 — low
|
||||
{ x: 120, y: 380, w: 140, h: 14 },
|
||||
{ x: 310, y: 362, w: 120, h: 14 },
|
||||
{ x: 510, y: 382, w: 120, h: 14 },
|
||||
{ x: 700, y: 365, w: 130, h: 14 },
|
||||
// row 2 — mid
|
||||
{ x: 210, y: 305, w: 120, h: 14 },
|
||||
{ x: 420, y: 298, w: 110, h: 14 },
|
||||
{ x: 628, y: 288, w: 120, h: 14 },
|
||||
// row 3 — high
|
||||
{ x: 115, y: 248, w: 100, h: 14 },
|
||||
{ x: 315, y: 238, w: 95, h: 14 },
|
||||
{ x: 515, y: 228, w: 95, h: 14 },
|
||||
{ x: 715, y: 215, w: 90, h: 14 },
|
||||
// row 4 — top
|
||||
{ x: 215, y: 178, w: 90, h: 14 },
|
||||
{ x: 415, y: 168, w: 90, h: 14 },
|
||||
{ x: 615, y: 160, w: 90, h: 14 },
|
||||
// row 5 — very top (brown fragment)
|
||||
{ x: 415, y: 128, w: 80, h: 14 },
|
||||
],
|
||||
fragments: [
|
||||
{ x: 310, y: 330, color: '#970505' }, // crimson
|
||||
{ x: 700, y: 333, color: '#CF8917' }, // amber
|
||||
{ x: 210, y: 273, color: '#E3D214' }, // yellow
|
||||
{ x: 628, y: 256, color: '#39BD1C' }, // green
|
||||
{ x: 315, y: 206, color: '#12B6C8' }, // cyan
|
||||
{ x: 715, y: 183, color: '#170CB7' }, // deep blue
|
||||
{ x: 215, y: 146, color: '#6613BA' }, // purple
|
||||
{ x: 615, y: 128, color: '#C71287' }, // magenta
|
||||
{ x: 415, y: 96, color: '#753F16' }, // brown — very top
|
||||
],
|
||||
enemies: [
|
||||
{ x: 120, y: 355, patrol: 45 },
|
||||
{ x: 510, y: 357, patrol: 40 },
|
||||
{ x: 420, y: 273, patrol: 35 },
|
||||
{ x: 628, y: 263, patrol: 42 },
|
||||
{ x: 515, y: 203, patrol: 30 },
|
||||
],
|
||||
tar: [
|
||||
{ x: 225, y: 432 },
|
||||
{ x: 390, y: 432 },
|
||||
{ x: 540, y: 432 },
|
||||
{ x: 665, y: 432 },
|
||||
{ x: 760, y: 432 },
|
||||
],
|
||||
},
|
||||
// Levels 3–5 will follow the same pattern
|
||||
];
|
||||
|
||||
|
||||
// get level by ID (indexed)
|
||||
export function getLevel(id){
|
||||
return LEVELS.find(level => level.id === id)
|
||||
}
|
||||
export function getLevel(id) {
|
||||
return LEVELS.find(level => level.id === id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user