Downloads containing mlfalk.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Falkenstein: The New Order cooba Capture the flag N/A Download file

File preview

const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, se::FireworkMLLEWrapper(), null, null, null, null, null, null}); ///@MLLE-Generated
#include "MLLE-Include-1.6w.asc" ///@MLLE-Generated
#pragma require "mlfalk-MLLE-Data-3.j2l" ///@MLLE-Generated
#pragma require "mlfalk-MLLE-Data-2.j2l" ///@MLLE-Generated
#pragma require "mlfalk-MLLE-Data-1.j2l" ///@MLLE-Generated
#pragma require "IC - Sluggion1.j2t" ///@MLLE-Generated
#pragma require "BattleshipsO.j2t" ///@MLLE-Generated
#pragma require "Lowaa.j2t" ///@MLLE-Generated
#pragma require "Labrat1.j2t" ///@MLLE-Generated
#pragma require "Tube.j2t" ///@MLLE-Generated
#pragma require "mlfalk.j2l" ///@MLLE-Generated
#include "SEfirework-mlle.asc" ///@MLLE-Generated
#pragma require "SEfirework-mlle.asc" ///@MLLE-Generated
///@SaveAndRunArgs -server -capture ///@MLLE-Generated

/*******************************
A 2024 Mystic Legends Release!
http://www.mysticlegends.org
/******************************/

void onLevelLoad() {
	jjObjectPresets[OBJECT::BUTTERFLY].behavior = mdis;
	
	jjObjectPresets[OBJECT::MILK].behavior = Glug();
	jjObjectPresets[OBJECT::MILK].scriptedCollisions = true;
	
	jjObjectPresets[OBJECT::TNTAMMO3].behavior = invis;
}

void mdis(jjOBJ@ obj) {
	obj.behave(BEHAVIOR::BUTTERFLY, false);
	obj.deactivates = obj.triggersTNT = obj.isTarget = obj.isBlastable = obj.isFreezable = false;
	obj.bulletHandling = HANDLING::IGNOREBULLET;
	obj.playerHandling = HANDLING::PARTICLE;
	
	jjDrawTile(obj.xPos - 10, obj.yPos, 1227);
	jjDrawTile(obj.xPos - 10, obj.yPos + 32, 1255);
	jjDrawTile(obj.xPos - 10, obj.yPos + 64, 1255);
	jjDrawTile(obj.xPos - 10, obj.yPos + 96, 1255);
	jjDrawTile(obj.xPos - 10, obj.yPos + 128, 1226);
}

void invis(jjOBJ@ obj) {
	obj.behave(BEHAVIOR::PICKUP, false);
}

const array<SOUND::Sample> Glugs = { SOUND::COMMON_DRINKSPAZZ1, SOUND::COMMON_DRINKSPAZZ2, SOUND::COMMON_DRINKSPAZZ3, SOUND::COMMON_DRINKSPAZZ4 };
class Glug : jjBEHAVIORINTERFACE {
	void onBehave(jjOBJ@ obj) {
		obj.behave(BEHAVIOR::PICKUP, false);
	}
	void onDraw(jjOBJ@ obj) {			
		int frame = obj.objectID * 8 + jjGameTicks;
		frame = (frame + int(obj.xPos) + int(obj.yPos) * 256)*16;
		jjDrawSprite(obj.xPos, obj.yPos + jjSin(frame)*4, ANIM::PICKUPS, 78, 0, 0);
	}
	bool onObjectHit(jjOBJ@ obj, jjOBJ@ bullet, jjPLAYER@ player, int force) {
		jjSample(player.xPos, player.yPos, Glugs[jjRandom()%4]);
		jjAddObject(OBJECT::FASTFIRE, player.xPos, player.yPos);
		player.food = 0; //no sugar rush
		
		//hide the primary explosion anim
		obj.xPos = jjLayerWidth[4]*32;
		obj.yPos = jjLayerHeight[4]*32;
		
		obj.frameID = 0;
		obj.behavior = BEHAVIOR::EXPLOSION2;
		return true;
	}
}

void onLevelReload() {
	MLLE::ReapplyPalette();
}

bool onDrawAmmo(jjPLAYER@ player, jjCANVAS@ canvas) {
	return MLLE::WeaponHook.drawAmmo(player, canvas);
}