Name | Author | Game Mode | Rating | |||||
---|---|---|---|---|---|---|---|---|
Find It Out (Single Player) | Superjazz | Single player | 9.1 |
const bool MLLESetupSuccessful = MLLE::Setup(); ///@MLLE-Generated
#include "MLLE-Include-1.6.asc" ///@MLLE-Generated
#pragma require "Fio2_b-MLLE-Data-1.j2l" ///@MLLE-Generated
#pragma require "Carrot1.j2t" ///@MLLE-Generated
#pragma require "Fio2_b.j2l" ///@MLLE-Generated
#include "Fio_common.asc"
#include "Fio_cutscene.asc"
#include "Fio_drawing.asc"
#include "Fio_entities.asc"
#include "Fio_globals.asc"
const string NEXT_LEVEL_FILENAME = "Fio2_y.j2l";
const array<ArmoryItem@> ARMORY_ITEMS = {
ArmoryItem(0, "||||Bouncer Power up@+ 20 ammo", 25, 52, ANIM::PICKUPS, 61, 0, @fio::sellArmoryItemBouncerPU),
ArmoryItem(1, "||||Toaster Power up@+20 ammo", 20, 48, ANIM::PICKUPS, 65, 0, @fio::sellArmoryItemToasterPU),
ArmoryItem(2, "||||+15 Seeker ammo", 30, 48, ANIM::AMMO, 37, 1, @fio::sellArmoryItemSeekerAmmo),
ArmoryItem(3, "", 15, 44, ANIM::PICKUPS, 72, 5, @fio::sellArmoryItemInvincibility, @fio::canBuyInvincibility), // Text updated later when currentGameSession has been loaded
ArmoryItem(4, "", 10, 56, ANIM::PICKUPS, 21, 0, @fio::sellArmoryItemPocketCarrot, @fio::canBuyPocketCarrot) // Text updated later when currentGameSession has been loaded
};
array<Checkpoint@> fio2bCheckpoints = {
Checkpoint(0, TILE * 112, TILE * 44),
Checkpoint(1, TILE * 47, TILE * 47),
Checkpoint(2, TILE * 76, TILE * 82)
};
array<string> texts = {
"|Hmm, it feels really warm over here.",
"|WHAT?! COULD IT REALLY BE?",
"|I have heard about this place...somewhere.",
"|It's an enormous prison for the very unforgiven, if I recall right...",
"|Looks like I'm in trouble.", // 4
"|I better not fall in the lava down there.",
"|I wonder where does this take me to...",
"|I really need to find a way out of here. But it doesn't seem easy. Have to just hope for the best.",
"", // REMOVED AS OBSOLETE
"|I smell a trap.", // 9
"--ENTERING THE AREA OF THE CURSED-- --BEWARE OR YOU MAY FALL--",
"|||This way...You're almost there...",
"|WHAT? Invisible floor? I didn't expect this!."
};
array<string> questTexts = {
fio::getQuestText(6, 9, 6000),
fio::getQuestTextComplete(6000),
fio::getQuestTextPerfect(3000)
};
// Required for each level
bool onCheat(string &in cheat) {
return fio::handleCheat(cheat, NEXT_LEVEL_FILENAME);
}
// Required for each level
bool onDrawHealth(jjPLAYER@ play, jjCANVAS@ canvas) {
fioDraw::animateHud();
fioDraw::drawHud(play, canvas);
if (isPlayerInArmory) {
fioDraw::drawArmoryInterface(canvas);
}
return false;
}
void onDrawLayer4(jjPLAYER@ play, jjCANVAS@ canvas) {
fioDraw::drawArmoryAtPos(canvas, TILE * 213.5, TILE * 108.75); // Offset with +0.5 xTiles and +0.75 yTiles
}
bool onDrawLives(jjPLAYER@ play, jjCANVAS@ canvas) {
return true;
}
void onFunction0() {
fio::killPlayer();
}
void onFunction1() {
fioDraw::doShowText(0);
}
void onFunction2() {
fioDraw::doShowText(1);
}
void onFunction3() {
fioDraw::doShowText(2);
}
void onFunction4() {
fioDraw::doShowText(3);
}
void onFunction5() {
if (!checkpoints[0].isReached()) {
checkpoints[0].setReached();
}
fioDraw::doShowText(4);
}
void onFunction6() {
fioDraw::doShowText(5);
}
void onFunction7() {
fioDraw::doShowText(6);
}
void onFunction8() {
fioDraw::doShowText(7);
}
void onFunction9() {
if (!checkpoints[1].isReached()) {
checkpoints[1].setReached();
}
}
void onFunction10() {
fioDraw::doShowText(8);
}
void onFunction11() {
if (!checkpoints[2].isReached()) {
checkpoints[2].setReached();
}
}
void onFunction12(bool show) {
if (show) {
play.noFire = true;
isPlayerInArmory = true;
} else {
play.noFire = false;
isPlayerInArmory = false;
}
}
void onFunction13() {
fioDraw::doShowText(9);
}
void onFunction14() {
fioDraw::doShowText(10);
}
void onFunction15() {
fioDraw::doShowText(11);
}
void onFunction16() {
fioDraw::doShowText(12);
}
void onFunction17() {
fio::handleLevelCycle(NEXT_LEVEL_FILENAME);
}
void onFunction18() {
fioDraw::doShowOptionalQuest(0);
}
void onFunction19() {
play.hurt(0, true);
}
// Required for each level
void onLevelLoad() {
initializeGlobals(fio2bCheckpoints, 6, 6000, 3000);
fioDraw::initializeDrawing(texts, questTexts, true);
// Re-assignment via static declaration
armoryItems = ARMORY_ITEMS;
// Global indice
armoryItemIndexInvincibility = 3;
armoryItemIndexPocketCarrot = 4;
armoryItems[armoryItemIndexInvincibility].text = fio::getInvincibilityItemText();
armoryItems[armoryItemIndexPocketCarrot].text = fio::getPocketCarrotItemText();
if (jjDifficulty <= 0) {
jjTriggers[13] = true;
}
}
// Required for each level
void onLevelReload() {
MLLE::ReapplyPalette();
reloadGlobals();
fioDraw::initializeDrawing(texts, questTexts, true);
fio::handleLevelReload();
}
// Required for each level
void onMain() {
fio::controlPressedKeys();
fioDraw::controlHud();
}
// Required for each level
void onPlayer(jjPLAYER@ play) {
fio::handlePlayer(play);
fio::controlQuest();
}
// Required at least for each level with an armory or cutscene(s)
void onPlayerInput(jjPLAYER@ play) {
fio::controlArmoryInput(play);
fio::controlPlayerInput(play);
}
void onRoast(jjPLAYER@ victim, jjPLAYER@ killer) {
fio::saveTriggerStates();
asPlay.savePlayerProperties(play);
}
Jazz2Online © 1999-INFINITY (Site Credits). We have a Privacy Policy. Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats.
Eat your lima beans, Johnny.