Cube Land
namespace projectImages {
export const Gate_H = img`
. . f f f . . . . . . f f f . .
. f f f f f f f f f f f f f f .
f f f . . f f . . f f . . f f f
f f . . . . f f f f . . . . f f
f . . f f . . f f . . f f . . f
f f f f f f . . . . f f f f f f
f . f f . . f f f f . . f f . f
f . . . . . . . . . . . . . . f
f . . . . . . . . . . . . . . f
f . f f . . f f f f . . f f . f
f f f f f f . . . . f f f f f f
f . . f f . . f f . . f f . . f
f f . . . . f f f f . . . . f f
f f f . . f f . . f f . . f f f
. f f f f f f f f f f f f f f .
. . f f f . . . . . . f f f . .
`;
export const House = img`
0 0 0 0 0 f f f f f f f f f f f f f f f f f f 0 0 0 0 0 0 0 0 0
0 0 0 0 f f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f f 0 0 0 0 0 0 0 0
0 0 0 f f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f f 0 0 0 0 0 0 0
0 0 f f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f f 0 0 0 0 0 0
0 f f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f f 0 0 0 0 0
f f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f f 0 0 0 0
f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f 0 0 0 0
f f e e e e e e e e e e e e e e e e e e e e e e e e f f 0 0 0 0
0 f e e f f f f e e e f f f f f f e e e f f f f e e f 0 0 0 0 0
0 f e e f 1 1 f e e e f 2 2 2 2 f e e e f 1 1 f e e f 0 0 0 0 0
0 f e e f 1 1 f e e e f 2 2 2 2 f e e e f 1 1 f e e f 0 0 0 0 0
0 f e e f 1 1 f e e e f 2 2 2 2 f e e e f 1 1 f e e f 0 0 0 0 0
0 f e e f f f f e e e f 2 2 2 7 f e e e f f f f e e f 0 0 0 0 0
0 f e e e e e e e e e f 2 2 2 2 f e e e e e e e e e f 0 0 0 0 0
0 f e e e e e e e e e f 2 2 2 2 f e e e e e e e e e f 0 0 0 0 0
0 f f f f f f f f f f f f f f f f f f f f f f f f f f 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
`;
export const Boss_2 = img`
. . . . . . . . . . . . . . . .
. . . . . f f f f f f . . . . .
. . . f f f 2 2 2 2 f f f . . .
. . f f 2 2 2 2 2 2 2 2 f f . .
. . f 2 2 2 1 1 1 1 2 2 2 f . .
. . f 2 2 2 1 1 f f 2 2 2 f . .
. . f 2 2 2 1 f f f 2 2 2 f . .
. . f 2 2 2 1 1 1 1 2 2 2 f . .
. . f 2 2 2 2 2 2 2 2 2 2 f . .
. f f f 2 2 2 2 2 2 2 2 f f f .
. f 7 7 7 7 7 7 7 7 7 7 7 7 f .
. f 7 7 7 7 7 7 7 7 7 7 7 7 f .
. f f f f 7 7 7 7 7 7 f f f f .
. . . f 2 2 2 2 2 2 2 2 f . . .
. . . f f 2 2 2 2 2 2 f f . . .
. . . . f f 2 2 2 2 f f . . . .
`;
export const Boss_Final = img`
f 5 f . . . . . . . . . . f 5 f
5 5 f f . . . . . . . . f f 5 5
f f 5 5 f . . f f . . f 5 5 f f
. f 5 5 f f f 5 5 f f f 5 5 f .
. . f f 5 5 f 5 5 f 5 5 f f . .
. . f 5 5 5 5 5 5 5 5 5 5 f . .
. . f 5 5 f f 5 5 f f 5 5 f . .
. . f 5 5 f f 5 5 f f 5 5 f . .
. . f 5 5 1 1 5 5 1 1 5 5 f . .
. . f 5 5 5 5 5 5 5 5 5 5 f . .
. . f f f f 5 5 5 5 f f f f . .
. . . . . f f f f f f . . . . .
. . . f f f f f f f f f f . . .
. . . f f f f . . f f f f . . .
. . . f f f . . . . f f f . . .
. . . f f . . . . . . f f . . .
`;
export const Boy = img`
. . . f f f f f f f f f f . . .
. . . f c c c c c c c c f . . .
. . . f c f f c c f f c f . . .
. . . f c 1 f c c f 1 c f . . .
. . . f c c c c c c c c f . . .
. . . f c c c c c c c c f . . .
. . . f f c c c c c c f f . . .
. f f f f f c c c c f f f f f .
f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
f f 6 6 6 6 6 6 6 6 6 6 6 6 f f
. f f f f 6 6 6 6 6 6 f f f f .
. . . . f 6 6 6 6 6 6 f . . . .
. . . . f 6 6 6 6 6 6 f . . . .
. . . . f f 6 6 6 6 f f . . . .
. . . . . f f f f f f . . . . .
`
export const Chest_1 = img`
f f f f f f f f f f f f f f f f
f e e e e e e e e e e e e e e f
f e e c e e e c e e e c e e e f
f e e c e e e c e e e c e e e f
f e e c e f f f f f f e c e e f
f e e c f 5 5 5 5 5 5 f c e e f
f f f f f 5 5 5 5 5 5 f f f f f
f e e e f 5 f f f f 5 f c e e f
f e e e f 5 5 f f 5 5 f e e e f
f e c e e f 5 5 5 5 f e e e e f
f e c c e e f 5 5 f e e e c e f
f e e c c e e f f c e e e c e f
f e e e c e e e c e e e e c e f
f e e e e e e e c e e e e c e f
f e e e e e e e c e e e c e e f
f f f f f f f f f f f f f f f f
`;
export const Chest = img`
f f f f f f f f f f f f f f f f
f e e e e e e e e e e e e e e f
f e e e e e e e e e e e e e e f
f e e e e e e e e e e e e e e f
f e e e e f f f f f f e e e e f
f e e e f 7 7 7 7 7 7 f e e e f
f f f f f 7 7 7 7 7 7 f f f f f
f e e e f 7 f f f f 7 f e e e f
f e e e f 7 7 f f 7 7 f e e e f
f e e e e f 7 7 7 7 f e e e e f
f e e e e e f 7 7 f e e e e e f
f e e e e e e f f e e e e e e f
f e e e e e e e e e e e e e e f
f e e e e e e e e e e e e e e f
f e e e e e e e e e e e e e e f
f f f f f f f f f f f f f f f f
`;
export const Flag = img`
0 0 0 f f f f 0 0 0 0 0 0 0 0 0
0 0 0 f 7 7 f f f 0 0 0 0 0 0 0
0 0 0 f 7 7 7 7 f f f f 0 0 0 0
0 0 0 f 7 7 7 7 7 7 7 f f f 0 0
0 0 0 f 7 7 7 7 7 7 7 7 7 f f 0
0 0 0 f 7 7 7 7 7 7 7 7 7 7 f 0
0 0 0 f 7 7 7 7 7 7 2 2 f f f 0
0 0 0 f 7 7 7 7 2 2 f f 0 0 0 0
0 0 0 f 7 7 2 f f f f 0 0 0 0 0
0 0 0 f 7 7 f f 0 0 0 0 0 0 0 0
0 0 0 f 7 7 f 0 0 0 0 0 0 0 0 0
0 0 0 f 7 7 f 0 0 0 0 0 0 0 0 0
f f f f 7 7 f f f f f f f f 0 0
f 7 7 7 7 7 7 7 7 7 7 7 2 f 0 0
f 7 7 7 7 7 7 7 7 7 7 2 2 f 0 0
f f f f f f f f f f f f f f 0 0
`;
export const Flower = img`
. . . . f f f 5 5 f f f . . . .
. . . . f 5 3 3 3 5 5 f f . . .
f f f f f 5 3 7 7 3 3 5 f . . .
5 5 5 f f f 5 3 3 7 3 5 f . . .
5 3 3 5 f f f 5 3 5 f f f f f f
5 3 7 5 f f 5 3 5 3 f f f 5 5 f
f 5 5 4 f f 4 5 4 f f 5 3 3 7 f
f f 4 4 4 f 4 4 f f 5 3 5 3 3 5
. f f f 4 4 f 4 4 f 4 5 3 5 3 f
. . f f 4 4 f 4 4 f 4 4 f 5 5 f
. . . f f 4 4 4 f 4 4 f f f f f
. . . . f f 4 4 f 4 f f . . . .
. . . . . f 4 f 4 4 f . . . . .
. . . . . f 4 4 4 f f . . . . .
. . . . . f f 4 f f . . . . . .
. . . . . . f f f . . . . . . .
`;
export const Gate = img`
0 0 f f f f f f f f f f f f 0 0
0 f f f 0 f 0 0 0 0 f 0 f f f 0
f f f 0 0 f f 0 0 f f 0 0 f f f
f f 0 0 f f f 0 0 f f f 0 0 f f
f f 0 0 f f 0 0 0 0 f f 0 0 f f
0 f f 0 0 f 0 0 0 0 f 0 0 f f 0
0 f f f 0 0 f 0 0 f 0 0 f f f 0
0 f 0 f f 0 f 0 0 f 0 f f 0 f 0
0 f 0 f f 0 f 0 0 f 0 f f 0 f 0
0 f f f 0 0 f 0 0 f 0 0 f f f 0
0 f f 0 0 f 0 0 0 0 f 0 0 f f 0
f f 0 0 f f 0 0 0 0 f f 0 0 f f
f f 0 0 f f f 0 0 f f f 0 0 f f
f f f 0 0 f f 0 0 f f 0 0 f f f
0 f f f 0 f 0 0 0 0 f 0 f f f 0
0 0 f f f f f f f f f f f f 0 0
`
export const Girl = img`
0 0 0 f f f f f f f f f f 0 0 0
0 0 0 f c c c c c c c c f 0 0 0
0 0 0 f c f f c c f f c f 0 0 0
0 0 0 f c 1 f c c f 1 c f 0 0 0
0 0 0 f c c c c c c c c f 0 0 0
0 0 0 f c c c c c c c c f 0 0 0
0 0 0 f f c c c c c c f f 0 0 0
0 f f f f f c c c c f f f f f 0
f 3 3 3 3 3 3 3 3 3 3 3 3 3 3 f
f 3 3 3 3 3 3 3 3 3 3 3 3 3 3 f
f f 3 3 3 3 3 3 3 3 3 3 3 3 f f
0 f f f f 3 3 3 3 3 3 f f f f 0
0 0 0 0 f 3 3 3 3 3 3 f 0 0 0 0
0 0 0 0 f 3 3 3 3 3 3 f 0 0 0 0
0 0 0 0 f f 3 3 3 3 f f 0 0 0 0
0 0 0 0 0 f f f f f f 0 0 0 0 0
`;
export const Grass = img`
0 0 0 0 0 f f f f f 0 0 0 0 0 0
0 0 0 0 0 f f 6 6 f 0 0 0 0 0 0
0 0 0 0 0 f 6 6 d f 0 0 0 0 0 0
0 0 0 0 f f 6 d f f 0 0 0 0 0 0
0 0 0 0 f 6 6 d f 0 0 f f f f 0
f f f f f 6 6 f f 0 f f 6 6 f 0
f 6 6 6 f 6 f f f f f 6 6 d f 0
f f f 6 6 6 f f f 6 6 6 f f f 0
0 0 f 6 6 6 f f 6 6 6 f f 0 0 0
0 0 f f d 6 6 f 6 6 f f 0 0 0 0
0 0 0 f f d 6 f 6 f f 0 0 0 0 0
0 0 0 0 f f 6 6 6 f 0 0 0 0 0 0
0 0 0 0 0 f 6 f f f 0 0 0 0 0 0
0 0 0 0 0 f 6 f 0 0 0 0 0 0 0 0
0 0 0 0 0 f f f 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
`;
export const Stone_1 = img`
0 0 0 f f f f f f f f f f 0 0 0
0 0 f f b b b b b b b b f f 0 0
0 f f b b f b b b b f b b f f 0
f f b b b f f b b b f b b b f f
f b b b b f b b b b b f f b b f
f b b f f f b b f b b b f f b f
f b b b b b b b b f b b b f b f
f b f b b b b b b f b b b f b f
f f f b b f b b b f f b b b b f
f b b b b f b b b b b b b b b f
f b b f f f f f b b b f b b b f
f b b b b b b f b b b b f b b f
f f b b b b b b b f f f b b f f
0 f f b f f b b b f b b b f f 0
0 0 f f b f f b b b b b f f 0 0
0 0 0 f f f f f f f f f f 0 0 0
`;
export const Stone = img`
0 0 f f f f f f f f f f f f 0 0
0 f f d d 8 d d d 8 d d d f f 0
f f d d d d f d d d f 8 d d f f
f d d 8 d 8 d d d d 8 d f d d f
f d 8 f 8 d f 8 d d 8 d 8 d d f
f d d d 8 d d d d d d d d f d f
f d 8 d f d d d d d d d d d d f
f d d d 8 d d 8 d d 8 f d 8 d f
f d 8 d d d d f f d f 8 d 8 d f
f d d f d d d d d d d 8 d d d f
f d d d 8 d d 8 d d d d f d d f
f d 8 d d d d d d 8 d d f 8 d f
f d d 8 d d f d f d 8 d d d d f
f f d d f d 8 d 8 f d d d d f f
0 f f d d d d d d d d d d f f 0
0 0 f f f f f f f f f f f f 0 0
`;
export const Boss_1 = img`
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 f f f f 0 0 0 0 0 0
0 0 0 0 f f b b b b f f 0 0 0 0
0 0 0 f b b b b b b b b f 0 0 0
0 0 f b f f f b b f f f b f 0 0
0 0 f b 1 f f b b f f 1 b f 0 0
0 0 f b b b b b b b b b b f 0 0
0 0 f b b b b b b b b b b f 0 0
0 0 f b b b b b b b b b b f 0 0
0 0 0 f b f 1 1 1 1 f b f 0 0 0
0 0 0 0 f b f 1 1 f b f 0 0 0 0
0 0 0 0 f b f f f f b f 0 0 0 0
0 0 0 0 f b f 0 0 f b f 0 0 0 0
0 0 0 0 f f f 0 0 f f f 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
`;
export const Flower_2 = img`
0 0 0 0 0 0 f 7 f f f 0 0 0 0 0
0 0 0 0 0 f f 7 7 7 f 0 0 0 0 0
0 0 0 0 0 f 7 6 6 7 f f 0 0 0 0
0 f f f 0 f 7 7 6 7 7 f f f f 0
f f 7 f f f f 7 7 7 f f f 7 f f
f 7 7 7 f f 4 4 4 f f f 7 6 7 f
7 7 6 6 f f 4 4 f f 0 f 7 6 6 f
f 7 6 7 4 f 4 f f f f f 4 7 7 f
f f 7 f 4 4 4 f f f 4 4 4 f f f
0 f f f 4 4 4 f f 4 4 4 f f 0 0
0 0 0 f f 4 4 4 f 4 4 f f 0 0 0
0 0 0 0 f f 4 4 f 4 f f 0 0 0 0
0 0 0 0 0 f f 4 4 4 f 0 0 0 0 0
0 0 0 0 0 0 f 4 f f f 0 0 0 0 0
0 0 0 0 0 0 f 4 f 0 0 0 0 0 0
0 0 0 0 0 0 f f f 0 0 0 0 0 0 0
`;
}
namespace palettes {
export const palettehex = hex`
000000
ffffff
d67a23
d278bc
33a554
b84949
648dc5
f7be12
7b7676
aed68d
000000
b695c9
eacdb7
d8d4d4
917155
000000`;
}
namespace SpriteKind {
export const Girl = SpriteKind.create();
export const Boss = SpriteKind.create();
export const Chest = SpriteKind.create();
export const Boy = SpriteKind.create();
}
function introSequence() {
game.showLongText("In a cube land far far away...", DialogLayout.Center);
game.showLongText("There was a cubed lad and a cubed lady, living happily ever after.", DialogLayout.Center);
let girl = sprites.create(projectImages.Girl.doubled());
let boy = sprites.create(projectImages.Boy.doubled());
let house = sprites.create(projectImages.House.doubled());
scene.setBackgroundColor(9);
music.baDing.play();
girl.setPosition(50, 80);
boy.setPosition(110, 80);
house.setPosition(45, 40);
game.waitAnyButton();
game.showLongText("But everything changed when the cube lord attacked.", DialogLayout.Center);
let boss = sprites.create(projectImages.Boss_Final.doubled());
boss.setPosition(120, 47);
let melody = new music.Melody("F#4:1 D#4:1 D#4:1 F#4:1 D4:1 D4:1");
melody.loop();
game.waitAnyButton();
boss.vx = 25;
boy.vx = 25;
boss.vy = -25;
boy.vy = -25;
girl.say("No! Leave him alone!");
game.waitAnyButton();
melody.stop();
music.baDing.play();
game.splash("I have to find him!");
girl.destroy();
house.destroy();
boy.destroy();
boss.destroy();
}
function level1Setup() {
scene.setBackgroundColor(9);
scene.setTileMap(img`
. . . . . . . . . . . . . . . . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
. . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . 9
. . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . 2 . . . . . . . . . . . 1 . . . . . 9 . . . . . . 9
. . . . . . . . . . . . . . . . 9 . . 9 9 9 9 9 9 9 9 9 . . . . . 9 9 9 9 9 9 9 . . . . . 2 . . 9 . . . 2 . . 9
. 2 . . . . . 1 . . . . . . . . 9 . 2 . . . . . . . . 9 . . . . . 9 . . . . . . . . . . . . . . . . . . . . . 9
. . . . . . . . . . . . . . . . 9 . . . . . . . . . . 9 . 1 . . . 9 . . . . . . . . . . . . . . . . . 9 9 9 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . 9 . . . . . 9 . . . 9 9 9 9 9 9 9 9 . . . . . . 9 . . . 9
9 . . . 9 . . . . . . . 9 . . . . . . . . . . 9 . . . . . . . . . 9 . . . 9 . . . . . . . . . . . . . 9 . . . 9
9 . . . 9 . . . 2 . . . 9 . . 2 . . . . . . . 9 . . . . . . . 2 . 9 . . . 9 . . . 1 . . . . . . . . . 9 . . . 9
9 . . . 9 . . . . . . . 9 . . . 9 9 9 9 . . 9 9 . . . 9 . . . . . 9 . . . 9 . . . . . . . . . . . . . 9 . . . 9
9 . 2 . 9 9 9 9 9 9 . . . . . . . . . . . . . 6 . 1 . 9 . . . . . 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . 2 . 9 . . . 9
9 . . . . . . . . . . . . . . . . . . . . . . 6 . . . 9 . . . . . 9 . . . . . . . . . . . 9 9 . . . . 9 . . . 9
9 . . . . . 2 . . . . 1 . . 9 . . 9 . . . . 9 9 . . . 9 . . 1 . . 9 . 1 . . . . . . . . . 6 . . . . . . . . . 9
9 . 1 . . . . . . . . . . . 9 . . 9 . . . . . 9 . . . 9 . . . . . 9 . . 9 9 9 9 9 9 9 . . 6 . . . . . . . . . 9
9 . . . 9 . . 9 . . . . . . 9 . . 9 . . . 2 . 9 9 9 9 9 9 9 9 9 9 9 . . . . . . . . . . . 9 9 9 9 9 9 9 9 9 9 9
9 . . . 9 . . 9 9 9 9 9 . . 9 . . 9 9 9 . . . 9 . . 9 4 . . . . . 9 . . . . 2 . . . . . . . . . . . . . . . . 9
9 . 2 . 9 . . . . . . . . . 9 . . . . . . . . 9 . . 6 . . . . . . 9 . . . . . . . . . . . . . . 1 . . . . . . 9
9 . . . 9 . . . . . 2 . . . 9 . . 1 . . . . . 9 . . 6 . . . . . . 9 . . . . 9 9 9 9 9 9 9 9 9 . . . . 9 . . . 9
9 . . . 9 . . . . . . . . . 9 . . . . . . . . 9 9 9 9 4 . . . . . 9 . 1 . . . . . . . . . . 9 . . . . 9 . . . 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . . . . 2 . . 9 . . . . . . . . . . . . 9 . . 2 . 9 . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . 1 . . . . . . . 9 . . 9 9 9 9 9 9 9 9 9 9 9 . . . . 9 . . . 9
. . 1 . . . . . . 1 . . . . . . 2 . . . . . . 9 . . . . . . . . . 9 . . . . . . . . . . . . . . . . . 9 . . 2 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . 9 . . . 9
. . . . . . . . . . . . . . . . . . . . 1 . . 9 . . . 9 . . . . . . . . 2 . . . 9 9 9 9 9 9 9 9 . . . 9 . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . . . . . . . . . 9 . . . . . . . . 1 . 9 . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . 2 . 9 . . 1 . . . 9 9 9 9 9 9 9 . . . . . . . . . . 9 . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . . . . . . . . . 9 . . . 9 9 9 9 9 9 9 9 . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . . . . 2 . . . . 9 . . . . . . . . . . . . . . 9
. . . . . . . . . . . . . . . . . . . . 1 . . 9 . . . 9 9 9 9 9 9 . . . . . . . 9 . . . . . . . . . . . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . 9 . . . . . . . 9 . . . 9 9 9 9 9 9 9 . . 2 . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . 9 . . . . . . . 9 . . . . . . . . . 9 . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . 1 . . 9 . . . . . . . 9 . . . . . . . . . 9 . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . 9 . . . . . 2 . 9 . . . . . 9 . . . 9 . . . . 9
. . . . . . . . . . . . . . . . . . . . 2 . . 9 . . . 9 . . . . 9 . . . . . . . 9 . . . . . 9 . . . 9 . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . 9 . . . . 9 . . . . . . . 9 . . . . . 9 9 9 9 9 . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . 1 . . . . 2 . . . 1 . . . . . 9 . . 1 . . . . . . . . . 2 . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
`);
scene.setTile(9, projectImages.Stone, true);
scene.setTile(6, projectImages.Gate, false);
scene.setTile(3, projectImages.Boy, false);
scene.setTile(2, projectImages.Flower, false);
scene.setTile(1, projectImages.Flower_2, false);
scene.setTile(4, projectImages.Flag, false);
boySprite.setPosition(398, 268);
girlSprite.setPosition(30, 200);
boss1Sprite.setPosition(360, 178);
bossFinalSprite.setPosition(445, 272);
boss2Sprite.setPosition(748, 206);
chest1Sprite.setPosition(30, 130);
chest2Sprite.setPosition(355, 126);
chest3Sprite.setPosition(355, 284);
chest4Sprite.setPosition(870, 30);
chest5Sprite.setPosition(870, 110);
chest6Sprite.setPosition(300, 30);
chest7Sprite.setPosition(624, 150);
chest8Sprite.setPosition(778, 520);
chest9Sprite.setPosition(720, 308);
chest10Sprite.setPosition(460, 482);
chest11Sprite.setPosition(864, 264);
chest12Sprite.setPosition(512, 256);
}
function level2Setup() {
scene.setBackgroundColor(9);
scene.setTileMap(img`
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . 9 . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . 9 . . . . . . . 1 . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . 2 . . . 9 9 9 9 9 9 . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . . . 9 . . . . 2 . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . 1 . 9 . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 9 9 9 9 . . . 9 . . . 9 9 9 9 9 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . 9 . . . . . . . 9 . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . 9 . . . 2 . . . 9 . . 2 . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . 9 . . . . . . . 9 . . . 9 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . 2 . 9 9 9 9 9 . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . . . . 2 . . . . 1 . . 9 . . 9 . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . 1 . . . . . . . . . . . 9 . . 9 . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 . . 9 . . . 9 . . . . . . 9 . . 9 . . . 2 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 . . 9 . . . 9 9 9 9 9 . . 9 . . 9 9 9 . . . 9 . . 9 4 . . . . . 9 . . . . 2 . . . . . . . . . . . . . . . . 9
9 . . 9 . . . . . . . . . . 9 . . . . . . . . 9 . . 6 . . . . . . 9 . . . . . . . . . . . . . . 1 . . . . . . 9
9 . . 9 . . . . . . 2 . . . 9 . . 1 . . . . . 9 . . 6 . . . . . . 9 . . . . 9 9 9 9 9 9 9 9 9 . . . . 9 . . . 9
9 . . 9 . . 9 . . 9 . . . . 9 . . . . . . . . 9 9 9 9 4 . . . . . 9 . 1 . . . . . . . . . . 9 . . . . 9 . . . 9
9 9 9 9 9 9 9 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . . . . 2 . . 9 . . . . . . . . . . . . 9 . . 2 . 9 . . . 9
9 . . . 9 . . . . . . . . . . . . . . . . . . 9 . 1 . . . . . . . 9 . . 9 9 9 9 9 9 9 9 9 9 9 . . . . 9 . . . 9
9 . . . 9 . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . 9 . . . . . . . . . . . . . . . . . 9 . . 2 9
9 . . . 9 . 1 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . 9 . . . 9
9 . 2 . 9 . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . 2 . . . 9 9 9 9 9 9 9 9 . . . 9 . . . 9
9 . . . 9 . . . . . . . . . . . . . . . . 2 . 9 . . . . . . . . . . . . . . . . 9 . . . . . . . . 1 . 9 . . . 9
9 . . . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . 9 . 2 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . . . . . . . . . . 9 . . . 9
9 . . . 9 . . 9 . . . . . . . . . . . . . . . 9 . . . 9 . . . . . . . . . . . . 9 . . . 9 9 9 9 9 9 9 9 . . . 9
9 . . . 9 . . 9 . 1 . . . . . . . . . . 1 . . 9 9 9 9 9 . . . . . . . 2 . . . . . . . . . . . . . . . . . . . 9
9 . . . 9 . . 9 . . . . 9 . . . 9 . . . . . . . . . . 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . . . . . . 9
9 . . . . . . 9 . . . . 9 . . . 9 9 9 9 9 . . . . . . 9 . . . . 9 . . . . . . . 9 . . . 9 9 9 9 9 9 9 . . 2 . 9
9 . . 1 . . . 9 . . . . 9 . . . . . . . . . 2 . . . 9 9 . . . . 9 9 9 9 9 9 9 9 9 . . . . . . . . . 9 . . . . 9
9 . . . . . . 9 . . . . 9 . . . 2 . . . . . . . . . . 6 . 1 . . 9 . . . . . . . 9 . . . . . . . . . 9 . . . . 9
9 . . . . . . . . 2 . . 9 . . . . . . . . . . . . . . 6 . . . . 9 . . . . . 2 . 9 . . . . . 9 . . . 9 . . . . 9
9 . . . . . . . . . . . 9 9 9 9 9 9 9 9 9 9 9 . . . 9 9 . . . . 9 . . . 9 9 9 9 9 9 9 9 9 9 9 . . . 9 . . . . 9
9 9 9 9 9 9 9 9 . . . . . . . . . . . . . . . . . . . 9 . . . . 9 . . . . . . . . . . . . . 9 9 9 9 9 . . . . 9
9 . . . . . . . . . . . . . 2 . . . . . . . . . . 1 . 9 . . 2 . . . 1 . . . . . . . . 1 . . . . . . . . . 2 . 9
9 . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
`);
scene.setTile(9, projectImages.Stone, true);
scene.setTile(6, projectImages.Gate, false);
scene.setTile(7, projectImages.Gate_H, false)
scene.setTile(3, projectImages.Boy, false);
scene.setTile(2, projectImages.Flower, false);
scene.setTile(1, projectImages.Flower_2, false);
scene.setTile(4, projectImages.Flag, false);
boySprite.setPosition(398, 268);
girlSprite.setPosition(30, 200);
boss1Sprite.setPosition(130, 292);
bossFinalSprite.setPosition(445, 272);
boss2Sprite.setPosition(420, 510);
chest1Sprite.setPosition(30, 30);
chest2Sprite.setPosition(355, 126);
chest3Sprite.setPosition(355, 284);
chest4Sprite.setPosition(30, 570);
chest5Sprite.setPosition(30, 340);
chest6Sprite.setPosition(350, 340);
chest7Sprite.setPosition(100, 440);
chest8Sprite.setPosition(778, 520);
chest9Sprite.setPosition(720, 308);
chest10Sprite.setPosition(460, 482);
chest11Sprite.setPosition(864, 264);
chest12Sprite.setPosition(512, 256);
}
sprites.onOverlap(SpriteKind.Girl, SpriteKind.Boss, function (mainSprite, hitSprite) {
if (hitSprite == boss1Sprite) {
if (chestsCollected == 3) {
music.baDing.play();
boss1Sprite.destroy();
game.splash("You may pass!");
}
else {
game.showLongText("Collect all the chests to pay the toll.", DialogLayout.Center);
boss1Sprite.say("You have collected " + chestsCollected.toString() + " out of 3.", 5000);
switch (level) {
case 1:
girlSprite.setPosition(girlSprite.x - 10, girlSprite.y);
break;
default:
girlSprite.setPosition(girlSprite.x, girlSprite.y - 10);
break;
}
}
}
else if (hitSprite == boss2Sprite) {
if (chestsCollected == 7) {
music.baDing.play();
boss2Sprite.destroy();
game.splash("You may pass!");
}
else {
game.showLongText("Collect all the chests to pay the toll.", DialogLayout.Center);
boss2Sprite.say("You have collected " + (chestsCollected - 3).toString() + " out of 4.", 5000);
switch (level) {
case 1:
girlSprite.setPosition(girlSprite.x + 10, girlSprite.y);
break;
default:
girlSprite.setPosition(girlSprite.x - 10, girlSprite.y);
break;
}
}
}
else {
if (chestsCollected == 12) {
music.baDing.play();
bossFinalSprite.destroy();
game.splash("You may pass!");
}
else {
game.showLongText("Collect all the chests to pay the toll.", DialogLayout.Center);
bossFinalSprite.say("You have collected " + (chestsCollected - 7).toString() + " out of 5.", 5000);
switch (level) {
case 1:
girlSprite.setPosition(girlSprite.x + 10, girlSprite.y);
break;
default:
girlSprite.setPosition(girlSprite.x + 10, girlSprite.y);
break;
}
}
}
})
sprites.onOverlap(SpriteKind.Girl, SpriteKind.Chest, function (mainSprite, hitSprite) {
chestsCollected++;
music.baDing.play();
hitSprite.destroy();
})
sprites.onOverlap(SpriteKind.Girl, SpriteKind.Boy, function (mainSprite, hitSprite) {
music.baDing.play();
game.splash("You are reunited!");
music.stopAllSounds();
game.showLongText("Your time to complete was: " + game.runtime() + "ms. Thanks for playing!", DialogLayout.Center);
info.changeScoreBy(1800000 /* 30 minutes */ - game.runtime());
game.over(true);
})
image.setPalette(palettes.palettehex);
introSequence();
let boySprite = sprites.create(projectImages.Boy, SpriteKind.Boy);
let girlSprite = sprites.create(projectImages.Girl, SpriteKind.Girl);
let boss1Sprite = sprites.create(projectImages.Boss_1, SpriteKind.Boss);
let boss2Sprite = sprites.create(projectImages.Boss_2, SpriteKind.Boss);
let bossFinalSprite = sprites.create(projectImages.Boss_Final, SpriteKind.Boss);
let chest1Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest2Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest3Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest4Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest5Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest6Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest7Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest8Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest9Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest10Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest11Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let chest12Sprite = sprites.create(projectImages.Chest, SpriteKind.Chest);
let level = randint(1, 2);
switch (level) {
case 1:
level1Setup();
break;
default:
level2Setup();
break;
}
let chestsCollected = 0;
let backgroundMusic = new music.Melody("F5:2 A5:4 F5:2 C5:2 B4:1 C5:1 D5:2 C5:2 F5:2 A5:4 F5:2 C5:2 B4:1 C5:1 D5:2 C5:2 A4:2 F5:4 A4:2 A4:2 G#4:1 A4:1 B4:2 A4:2 A4:2 F5:4 A4:2 A4:2 G#4:1 A4:1 B4:2 A4:2 A4:2 F4:2 A4:2 C5:2 A#4:8 C5:2 A#4:2 C5:2 E5:2 F5:8 C6:2 D6:2 C6:2 A#5:2 A5:2 A#5:2 A5:2 G5:2 F5:8 C5:2 E5:2 F5:2 C5:2 F5:2 A5:4 F5:2 C5:2 B4:1 C5:1 D5:2 C5:2 F5:2 A5:4 F5:2 C5:2 B4:1 C5:1 D5:2 C5:2 C5:2 E5:4 C5:2 G4:2 F4:1 G4:1 C5:2 G4:2 C5:2 E5:4 C5:2 D4:2 E4:1 F4:1 C5:2 E5:2 F5:4 :4 E5:2 A5:4 F5:2 E5:4 A4:4 B4:2 A4:4 B4:2 C5:4 E5:4 D5:2 F5:4 E5:2 C5:4 F4:4 G4:2 F4:4 G4:2 A4:4 C5:4 G4:4 :2 G4:4 B4:2 A4:4 D5:2 F5:4 E5:2 C5:4 G4:4 G4:4 :2 G4:4 B4:2 A4:4 A4:8 :2 A4:2 B4:2 A4:2 E5:2 A5:4 F5:2 E5:4 A4:4 B4:2 A4:4 B4:2 C5:4 E5:4 D5:2 F5:4 E5:2 C5:4 F4:4 G4:2 F4:4 G4:2 A4:4 C5:4 G4:4 :2 G4:4 B4:2 A4:4 D5:2 F5:4 E5:2 C5:4 G4:4 G4:4 :2 G4:4 B4:2 A4:4 A4:8 :2 A4:2 B4:2 A4:2");
backgroundMusic.loop(8);
girlSprite.setStayInScreen(true);
controller.moveSprite(girlSprite);
scene.cameraFollowSprite(girlSprite);
color-coded-tilemap