#include "MLLE-Include-1.4.asc"
const bool MLLESetupSuccessful = MLLE::Setup();
#pragma require "ab21btl07.j2l"
#pragma require "JJ1-Fanolint-v1.2.j2t"
#pragma require "WTFBorealis.j2t"
#pragma require "dd02.j2t"
#pragma require "JJ1 DiamondusNight -NOKA.j2t"
#pragma require "CrysilisV.j2t"
#pragma require "JJ1 Industrius 2005.j2t"
/*******************************
A 2018 Mystic Legends Release!
http://www.mysticlegends.org
/******************************/
void onLevelLoad() {
jjLAYER@ morestars = jjLayers[1];
const array<uint8> tints = {16, 24, 48, 80, 88};
array<jjLAYER@> layerOrder = jjLayerOrderGet();
for (uint i = 0; i < tints.length; ++i) {
morestars.spriteMode = SPRITE::TRANSLUCENTSINGLEHUE;
morestars.spriteParam = tints[i];
morestars.xAutoSpeed += 1.5;
morestars.yAutoSpeed -= 0.5;
layerOrder.insertAt(layerOrder.length - 7, @morestars);
@morestars = jjLAYER(morestars);
morestars.yOffset += 44;
morestars.xOffset = int(jjRandom() & 511);
}
jjLayerOrderSet(layerOrder);
jjTexturedBGTexture = TEXTURE::BLADE;
jjDelayGeneratedCrateOrigins = true;
jjAnimations[jjAnimSets[ANIM::BRIDGE].firstAnim + 5].frameCount = 2;
jjANIMFRAME@ frame;
@frame = jjAnimFrames[jjAnimations[jjAnimSets[ANIM::BRIDGE].firstAnim + 5].firstFrame];
jjPIXELMAP(5, 5, 24, 28, 4).save(frame);
@frame = jjAnimFrames[jjAnimations[jjAnimSets[ANIM::BRIDGE].firstAnim + 5].firstFrame + 1];
jjPIXELMAP(37, 5, 24, 28, 4).save(frame);
jjANIMATION@ anim = jjAnimations[jjObjectPresets[OBJECT::APPLE].curAnim];
jjANIMFRAME@ gemframe = jjAnimFrames[anim.firstFrame];
jjPIXELMAP(37, 5, 24, 28, 4).save(gemframe);
//frame.hotSpotX = -frame.width/2;
//frame.hotSpotY = -frame.height;
jjWeapons[WEAPON::GUN8].spread = SPREAD::NORMAL;
jjObjectPresets[OBJECT::FIREBALLBULLETPU].var[6] = 8 + 16;
jjWeapons[WEAPON::TNT].maximum = 1;
jjObjectPresets[OBJECT::THING].behavior = raggot;
jjObjectPresets[OBJECT::FRIES].behavior = purplejazz;
jjObjectPresets[OBJECT::CHIPS].behavior = cooba;
jjObjectPresets[OBJECT::GREENSPRING].ySpeed -= 1.5f;
jjObjectPresets[OBJECT::LASERSHIELD].direction = SPRITE::FLIPH;
}
void raggot(jjOBJ@ obj) {
if (obj.state == STATE::START) {
jjPlayers[29].furSet(32, 88, 32, 40);
}
obj.behave(BEHAVIOR::BIGOBJECT, false);
jjDrawSprite(obj.xPos, obj.yPos - 12, ANIM::SPAZ, jjIsTSF ? 33 : 36, 6, 0, SPRITE::PLAYER, 29);
jjDrawString(obj.xPos - 24, obj.yPos - 36, "§0rgcx");
}
void purplejazz(jjOBJ@ obj) {
if (obj.state == STATE::START) {
jjPlayers[30].furSet(88, 32, 16, 16);
}
obj.behave(BEHAVIOR::BIGOBJECT, false);
jjDrawSprite(obj.xPos + 16, obj.yPos - 8, ANIM::JAZZ, jjIsTSF ? 30 : 33, 10, SPRITE::FLIPH, SPRITE::PLAYER, 30);
jjDrawString(obj.xPos - 32, obj.yPos - 36, "§0PurpleJazz");
}
void cooba(jjOBJ@ obj) {
if (obj.state == STATE::START) {
jjPlayers[31].furSet(176, 88, 64, 0);
}
obj.behave(BEHAVIOR::BIGOBJECT, false);
jjDrawSprite(obj.xPos + 16, obj.yPos - 24, ANIM::SPAZ, jjIsTSF ? 48 : 48, 0, SPRITE::FLIPHV, SPRITE::PLAYER, 31);
jjDrawString(obj.xPos - 32, obj.yPos - 48, "§0cooba[si]");
}
const int MAXSHIELDTIME = 1049;
void onPlayer(jjPLAYER@ play) {
jjTriggers[1] = true;
if (play.shieldTime > MAXSHIELDTIME) {
play.shieldTime = MAXSHIELDTIME;
}
//Warp ID 999 is reserved for the /ready command.
if (play.warpID == 999) {
play.ammo[WEAPON::TNT] = 0;
}
}
void onDrawLayer3(jjPLAYER@ player, jjCANVAS@ canvas) {
canvas.drawTile(32*32 - 8, 56*32 + 4, 298);
canvas.drawTile(17*32 + 16, 36*32 + 16, 299);
canvas.drawTile(18*32 + 16, 36*32 + 16, 309);
canvas.drawTile(17*32 + 16, 37*32 + 16, 309);
canvas.drawTile(18*32 + 16, 37*32 + 16, 299);
canvas.drawTile(63*32 + 16, 0*32 + 16, 309);
canvas.drawTile(64*32 + 16, 0*32 + 16, 299);
canvas.drawTile(63*32 + 16, 1*32 + 16, 299);
canvas.drawTile(64*32 + 16, 1*32 + 16, 309);
canvas.drawTile(63*32 + 16, 6*32 + 16, 299);
canvas.drawTile(64*32 + 16, 6*32 + 16, 309);
canvas.drawTile(63*32 + 16, 7*32 + 16, 309);
canvas.drawTile(64*32 + 16, 7*32 + 16, 299);
canvas.drawTile(69*32 + 16, 6*32 + 16, 309);
canvas.drawTile(70*32 + 16, 6*32 + 16, 299);
canvas.drawTile(69*32 + 16, 7*32 + 16, 299);
canvas.drawTile(70*32 + 16, 7*32 + 16, 309);
//1st place
canvas.drawTile(70*32 + 16, 0*32 + 16, 299);
canvas.drawTile(71*32 + 16, 0*32 + 16, 299);
canvas.drawTile(70*32 + 16, 1*32 + 16, 299);
canvas.drawTile(71*32 + 16, 1*32 + 16, 299);
}
void onDrawLayer4(jjPLAYER@ player, jjCANVAS@ canvas) {
canvas.drawTile(64*32 - 4, 33*32, 149);
canvas.drawTile(65*32 - 4, 33*32, 121);
}