Downloads containing Fio2_b.j2as

Downloads
Name Author Game Mode Rating
JJ2+ Only: Find It Out (Single Player)Featured Download Superjazz Single player 8.7 Download file

File preview

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);
}