frontend/mario/Maps/World42.js
2023-05-21 22:06:04 -04:00

199 lines
6.8 KiB
JavaScript

map.locs = [
new Location(0, walkToPipe),
new Location(1),
new Location(1, exitPipeVert),
new Location(2),
new Location(3, exitPipeVert),
new Location(4, enterCloudWorld)
];
map.areas = [
new Area("Overworld", function() { // entrance - loc 0
setLocationGeneration(0);
pushPreCastle();
pushPrePattern("backcloud", 0, 4, 1);
pushPreFloor(0, 0, 24);
pushPreThing(PipeSide, 80, 16, 1);
pushPrePipe(96, 0, 32);
}),
new Area("Underworld", function() { // main underworld - locs 1 (entryNormal), 2 (exitPipeVert)
setLocationGeneration(1);
fillPreThing(Brick, 0, 8, 1, 11, 8, 8);
pushPreFloor(0, 0, 11);
makeCeiling(48, 51);
pushPreFloor(104, 0, 2);
pushPreFloor(136, 0, 1);
fillPreThing(Brick, 160, 64, 23, 3, 8, 8);
pushPreFloor(168, 0, 36);
fillPreThing(Brick, 176, 16, 5, 3, 8, 8);
pushPreThing(Brick, 216, 32);
fillPreThing(Coin, 217, 7, 3, 1, 8);
pushPreThing(Brick, 224, 32, Mushroom);
fillPreThing(Brick, 240, 8, 18, 4, 8, 8);
fillPreThing(Goomba, 344, 40, 3, 1, 12);
pushPreThing(Brick, 344, 64);
pushPreThing(Brick, 344, 72, Coin);
pushPreThing(Brick, 344, 80);
fillPreThing(Brick, 352, jumplev2, 4, 3, 8, 8);
fillPreThing(Block, 400, jumplev1, 2, 2, 8, 32);
fillPreThing(Block, 432, jumplev1, 2, 1, 16);
pushPreThing(Block, 440, jumplev1, Mushroom);
pushPrePlatformGenerator(470, 6, 1);
// pushPreThing(PlatformGenerator, 470, ceilmax, 6, 1);
pushPreFloor(504, 0, 42);
pushPreThing(Block, 504, 40, Coin, true);
pushPreThing(Block, 512, 48, Coin, true);
pushPreThing(Brick, 512, 64, [Vine, 5]); // goes to bonus overworld
pushPreThing(Block, 520, 40, Coin, true);
fillPreThing(Brick, 520, 64, 2, 1, 8);
pushPreThing(Block, 528, 32, Coin, true);
makeCeiling(536, 45);
pushPrePipe(576, 0, 24, true);
pushPreThing(Brick, 608, jumplev1);
pushPreThing(Koopa, 616, 12);
pushPreThing(Brick, 616, jumplev1, Coin);
pushPrePipe(624, 0, 56, true);
pushPreThing(Brick, 640, jumplev1);
pushPreThing(Brick, 648, jumplev1, Star);
pushPreThing(Beetle, 664, 8.5);
pushPrePipe(672, 0, 24, true, 3); // goes to second underworld
pushPreThing(Brick, 696, 40);
pushPreThing(Beetle, 704, 8.5);
pushPrePipe(712, 0, 24);
fillPreThing(Koopa, 800, 12, 2, 1, 12);
pushPreThing(Stone, 824, 16, 1, 2);
pushPreThing(Stone, 832, 24, 1, 3);
pushPreFloor(856, 0, 2);
pushPrePipe(856, 0, 32, true, false, 2);
pushPreFloor(888, 0, 2);
pushPreThing(Stone, 888, 24, 2, 3);
pushPrePlatformGenerator(918, 6, 1);
// pushPreThing(PlatformGenerator, 918, ceilmax, 6, 1);
pushPreFloor(952, 0, 4);
fillPreThing(Brick, 952, 32, 4, 1, 8);
pushPreThing(Brick, 952, 64);
fillPreThing(Brick, 952, 88, 4, 1, 8);
pushPreThing(Brick, 960, 64, Mushroom);
pushPreThing(Brick, 968, 64);
pushPrePlatformGenerator(992, 6, -1);
// pushPreThing(PlatformGenerator, 992, ceilmax, 6, -1);
makeCeiling(1024, 27);
pushPreFloor(1032, 0, 15);
pushPrePipe(1048, 0, 16, false, false, 2); // exit of second underworld
pushPreThing(Koopa, 1096, 12);
pushPrePipe(1104, 0, 24, true);
pushPrePipe(1136, 0, 32, true);
pushPreFloor(1168, 0, 9);
pushPreThing(Stone, 1216, 8);
pushPreThing(Stone, 1224, 16, 1, 2);
pushPreThing(Stone, 1232, 24, 1, 3);
pushPreThing(Beetle, 1232, 32.5);
pushPrePlatformGenerator(1246, 6, 1);
// pushPreThing(PlatformGenerator, 1246, ceilmax, 6, 1);
pushPreFloor(1280, 0, 23);
fillPreThing(Brick, 1280, 48, 1, 2, 8, 8);
fillPreThing(Brick, 1280, 64, 16, 3, 8, 8);
makeCeiling(1280, 29);
pushPreThing(Brick, 1288, jumplev1, Mushroom);
fillPreThing(Brick, 1296, jumplev1, 10, 1, 8);
fillPreThing(Coin, 1297, 39, 10, 1, 8);
fillPreThing(Koopa, 1344, 12, 2, 1, 12);
pushPreThing(Stone, 1384, 8);
pushPreThing(Stone, 1392, 16, 1, 2);
pushPreThing(Stone, 1400, 24, 1, 3);
pushPreThing(Stone, 1408, 32, 1, 4);
pushPreThing(Beetle, 1432, 8.5);
pushPrePipe(1440, 0, 56, true);
pushPreThing(Floor, 1480, 0, 39);
fillPreThing(Brick, 1480, 8, 24, 3, 8, 8);
pushPreThing(PipeSide, 1496, 40, 4);
pushPreThing(PipeVertical, 1512, 88, 64);
fillPreThing(Brick, 1528, 32, 18, 7, 8, 8);
makeCeiling(1528, 28);
fillPreThing(Brick, 1616, 32, 7, 7, 8, 8);
pushPreThing(ScrollEnabler, 1610, ceilmax);
makeCeiling(1616, 17);
pushPreWarpWorld(1670, 0, [[5,1]], 0, true);
fillPreThing(Brick, 1776, 8, 2, 11, 8, 8);
}),
new Area("Underworld", function() { // secondary underworld - loc 3
setLocationGeneration(3);
makeCeiling(32, 7);
pushPreFloor(0, 0, 17);
fillPreThing(Brick, 0, 8, 1, 11, 8, 8);
fillPreThing(Brick, 32, 48, 7, 1, 8);
pushPreThing(Brick, 32, 56);
fillPreThing(Coin, 42, 55, 5, 2, 8, 8);
fillPreThing(Brick, 80, 56, 1, 4, 8, 8);
fillPreThing(Brick, 88, 56, 2, 1, 8);
pushPreThing(Brick, 112, 48, Coin);
pushPreThing(PipeSide, 104, 16, 2);
pushPreThing(PipeVertical, 120, 88, 88);
}),
new Area("Overworld", function() { // regular exit - loc 4
setLocationGeneration(4);
pushPrePattern("backreg", 104, 0, 1);
pushPreFloor(0, 0, 58);
pushPrePipe(0, 0, 16, true, false, 4);
pushPreThing(Stone, 16, 8, 1, 1);
pushPreThing(Stone, 24, 16, 1, 2);
pushPreThing(Stone, 32, 24, 1, 3);
pushPreThing(Stone, 40, 32, 1, 4);
pushPreThing(Stone, 48, 40, 1, 5);
pushPreThing(Stone, 56, 48, 1, 6);
pushPreThing(Stone, 64, 56, 1, 7);
pushPreThing(Stone, 72, 64, 2, 8);
endCastleOutside(148);
}),
new Area("Overworld", function() { // bonus world! - loc 5
setLocationGeneration(5);
pushPrePattern("backcloud", -384, 4, 3);
pushPreFloor(0, 0, 4);
pushPreFloor(40, 0, 59);
pushPreShroom(96, 32, 3);
fillPreThing(Coin, 97, 39, 3, 1, 8);
pushPreShroom(128, 64, 3);
fillPreThing(Coin, 129, 71, 3, 1, 8);
pushPreShroom(144, 16, 3);
pushPreShroom(176, 16, 5);
pushPreShroom(176, 64, 3);
fillPreThing(Coin, 177, 71, 3, 1, 8);
pushPreShroom(208, 48, 3);
fillPreThing(Coin, 209, 55, 3, 1, 8);
pushPreShroom(240, 72, 5);
fillPreThing(Coin, 241, 79, 5, 1, 8);
pushPreShroom(248, 24, 7);
fillPreThing(Coin, 281, 31, 2, 1, 8);
pushPreThing(Stone, 320, 8);
pushPreThing(Stone, 328, 16, 1, 2);
pushPreThing(Stone, 336, 24, 1, 3);
pushPreThing(Stone, 344, 32, 1, 4);
pushPreThing(Stone, 352, 40, 1, 5);
pushPreThing(Stone, 360, 48, 1, 6);
pushPreThing(Stone, 368, 56, 1, 7);
pushPreThing(Stone, 376, 64, 1, 8);
pushPreThing(Stone, 384, 72, 1, 9);
pushPreThing(Stone, 392, 72, 11);
pushPreWarpWorld(390, 0, [[8,1],[7,1],[6,1]]);
pushPreThing(Stone, 496, 88, 2, 11);
pushPreThing(ScrollBlocker, 512, 88);
})
];