159 lines
4.5 KiB
JavaScript
159 lines
4.5 KiB
JavaScript
|
|
/* ISLE SLINGERS — levels.js
|
||
|
|
* Original level layouts. Coordinates are world pixels; (x,y) = block CENTER.
|
||
|
|
* World: width 2400, ground surface at y=900.
|
||
|
|
*/
|
||
|
|
(function (root, factory) {
|
||
|
|
var api = factory();
|
||
|
|
if (typeof module !== 'undefined' && module.exports) module.exports = api;
|
||
|
|
else root.ISLE_LEVELS = api;
|
||
|
|
})(typeof globalThis !== 'undefined' ? globalThis : this, function () {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
// helpers to keep the data below readable
|
||
|
|
function wood(x, y, w, h) { return { x: x, y: y, w: w, h: h, mat: 'wood' }; }
|
||
|
|
function ice(x, y, w, h) { return { x: x, y: y, w: w, h: h, mat: 'ice' }; }
|
||
|
|
function stone(x, y, w, h) { return { x: x, y: y, w: w, h: h, mat: 'stone' }; }
|
||
|
|
function mogg(x, y) { return { x: x, y: y, kind: 'mogg' }; }
|
||
|
|
function grum(x, y) { return { x: x, y: y, kind: 'grum' }; }
|
||
|
|
function king(x, y) { return { x: x, y: y, kind: 'king' }; }
|
||
|
|
|
||
|
|
var SLING = { x: 260, y: 745 };
|
||
|
|
|
||
|
|
var LEVELS = [
|
||
|
|
{
|
||
|
|
id: 1,
|
||
|
|
name: 'First Perch',
|
||
|
|
birds: ['wren', 'wren', 'zippy'],
|
||
|
|
sling: SLING,
|
||
|
|
stars: [12000, 24000, 36000],
|
||
|
|
decor: { palms: [950, 2150, 2350], flowers: [700, 1200, 2050] },
|
||
|
|
blocks: [
|
||
|
|
// simple hut
|
||
|
|
wood(1500, 830, 30, 140),
|
||
|
|
wood(1640, 830, 30, 140),
|
||
|
|
wood(1570, 745, 200, 30)
|
||
|
|
],
|
||
|
|
enemies: [
|
||
|
|
mogg(1570, 876),
|
||
|
|
mogg(1770, 876)
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 2,
|
||
|
|
name: 'Crate Caves',
|
||
|
|
birds: ['wren', 'zippy', 'wren'],
|
||
|
|
sling: SLING,
|
||
|
|
stars: [15000, 28000, 42000],
|
||
|
|
decor: { palms: [1000, 2200], flowers: [800, 1350, 2000] },
|
||
|
|
blocks: [
|
||
|
|
// left tower: stone base + wood post
|
||
|
|
stone(1420, 865, 70, 70),
|
||
|
|
wood(1420, 760, 30, 140),
|
||
|
|
// right tower: ice base + ice post
|
||
|
|
ice(1660, 860, 80, 80),
|
||
|
|
ice(1660, 765, 30, 110),
|
||
|
|
// side crates
|
||
|
|
wood(1300, 860, 80, 80),
|
||
|
|
wood(1790, 860, 80, 80)
|
||
|
|
],
|
||
|
|
enemies: [
|
||
|
|
mogg(1420, 666),
|
||
|
|
mogg(1660, 686),
|
||
|
|
mogg(1540, 876)
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 3,
|
||
|
|
name: 'Glass Works',
|
||
|
|
birds: ['wren', 'zippy', 'boulder'],
|
||
|
|
sling: SLING,
|
||
|
|
stars: [18000, 34000, 50000],
|
||
|
|
decor: { palms: [900, 2250], flowers: [750, 1300, 2100] },
|
||
|
|
blocks: [
|
||
|
|
// ice workshop: two-storey
|
||
|
|
ice(1500, 840, 30, 120),
|
||
|
|
ice(1640, 840, 30, 120),
|
||
|
|
wood(1570, 765, 200, 30),
|
||
|
|
ice(1520, 700, 30, 100),
|
||
|
|
ice(1620, 700, 30, 100),
|
||
|
|
ice(1570, 635, 170, 30),
|
||
|
|
// wood hut
|
||
|
|
wood(1850, 830, 30, 140),
|
||
|
|
wood(1950, 830, 30, 140),
|
||
|
|
wood(1900, 745, 160, 30)
|
||
|
|
],
|
||
|
|
enemies: [
|
||
|
|
mogg(1570, 876),
|
||
|
|
mogg(1570, 596),
|
||
|
|
grum(1900, 868),
|
||
|
|
mogg(1900, 706)
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 4,
|
||
|
|
name: 'Stone Keep',
|
||
|
|
birds: ['wren', 'zippy', 'boulder', 'wren'],
|
||
|
|
sling: SLING,
|
||
|
|
stars: [22000, 40000, 58000],
|
||
|
|
decor: { palms: [1050, 2300], flowers: [850, 1400, 2150] },
|
||
|
|
blocks: [
|
||
|
|
// stone wall (three cubes)
|
||
|
|
stone(1600, 865, 70, 70),
|
||
|
|
stone(1750, 865, 70, 70),
|
||
|
|
stone(1900, 865, 70, 70),
|
||
|
|
wood(1750, 815, 400, 30),
|
||
|
|
// second floor
|
||
|
|
wood(1650, 740, 30, 120),
|
||
|
|
wood(1850, 740, 30, 120),
|
||
|
|
wood(1750, 665, 260, 30),
|
||
|
|
// left ice watchtower
|
||
|
|
ice(1450, 840, 30, 120),
|
||
|
|
// right crate
|
||
|
|
stone(2050, 865, 70, 70)
|
||
|
|
],
|
||
|
|
enemies: [
|
||
|
|
mogg(1675, 876),
|
||
|
|
mogg(1825, 876),
|
||
|
|
grum(1750, 618),
|
||
|
|
mogg(2050, 806),
|
||
|
|
mogg(1500, 876)
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 5,
|
||
|
|
name: 'Mog Fortress',
|
||
|
|
birds: ['wren', 'zippy', 'boulder', 'boulder'],
|
||
|
|
sling: SLING,
|
||
|
|
stars: [28000, 48000, 70000],
|
||
|
|
decor: { palms: [980, 2320], flowers: [780, 1300, 2180] },
|
||
|
|
blocks: [
|
||
|
|
// left stone tower (2 stories + ice cap)
|
||
|
|
stone(1450, 865, 70, 70),
|
||
|
|
stone(1450, 760, 70, 70),
|
||
|
|
ice(1450, 710, 30, 30),
|
||
|
|
// center keep
|
||
|
|
stone(1700, 865, 70, 70),
|
||
|
|
stone(1850, 865, 70, 70),
|
||
|
|
wood(1775, 815, 260, 30),
|
||
|
|
wood(1700, 740, 30, 120),
|
||
|
|
wood(1850, 740, 30, 120),
|
||
|
|
wood(1775, 665, 220, 30),
|
||
|
|
ice(1775, 635, 260, 30),
|
||
|
|
// right post
|
||
|
|
stone(2050, 865, 70, 70),
|
||
|
|
wood(2050, 760, 30, 120)
|
||
|
|
],
|
||
|
|
enemies: [
|
||
|
|
king(1775, 862),
|
||
|
|
mogg(1450, 671),
|
||
|
|
mogg(1775, 626),
|
||
|
|
mogg(2050, 676),
|
||
|
|
mogg(1575, 876),
|
||
|
|
mogg(1975, 876)
|
||
|
|
]
|
||
|
|
}
|
||
|
|
];
|
||
|
|
|
||
|
|
return { LEVELS: LEVELS, SLING: SLING };
|
||
|
|
});
|