Downloads containing mltitan.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: A Titan, Ornery cooba Battle N/A Download file

File preview

const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, SmokeWopens::ElektrekShield::Wopen(), null, null, null, null, null, ArcaneWeapons::FusionCannon::Weapon()}); ///@MLLE-Generated
#include "MLLE-Include-1.7w.asc" ///@MLLE-Generated
#pragma require "IronCrown.j2t" ///@MLLE-Generated
#pragma require "mltitan.j2l" ///@MLLE-Generated
#include "ArcaneWeapon9.asc" ///@MLLE-Generated
#pragma require "ArcaneWeapon9.asc" ///@MLLE-Generated
#include "ElektrekShield.asc" ///@MLLE-Generated
#pragma require "ElektrekShield.asc" ///@MLLE-Generated
///@SaveAndRunArgs -server -battle ///@MLLE-Generated

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

#pragma require "LHIT.wav"
#pragma require "LSTART.wav"

int oldHue, oldSat, oldLight;

array<SOUND::Sample> IceSamples = { SOUND::AMMO_ICEGUN, SOUND::AMMO_ICEGUN2, SOUND::AMMO_ICEGUNPU };
array<SOUND::Sample> IceSamples2 = { SOUND::AMMO_ICEPU1, SOUND::AMMO_ICEPU2, SOUND::AMMO_ICEPU3, SOUND::AMMO_ICEPU4 };

jjLAYER Flash(4, 1);

void onLevelLoad() {
	
	jjLayers[4].generateSettableTileArea(); //?????
	
	jjObjectPresets[OBJECT::BOUNCERPOWERUP].direction = SPRITE::FLIPH;
	jjObjectPresets[OBJECT::RFPOWERUP].direction = SPRITE::FLIPNONE;
	
	for (int n = 96; n < 111; n++) {
		oldHue = jjPalette.color[n].getHue();
		oldSat = jjPalette.color[n].getSat();
		oldLight = jjPalette.color[n].getLight();
		
		jjPalette.color[n].setHSL(oldHue + 32, oldSat - 12, oldLight - 8);
	}
	jjPalette.apply();
	
	array<jjLAYER@> DuplicateClouds = jjLayersFromLevel("mltitan.j2l", array<uint> = {7,7,7,7,7,7,7,7,7,7,7});
	if (DuplicateClouds.length() > 0) {
		for (uint i = 0; i < DuplicateClouds.length(); i++) {
			DuplicateClouds[i].yOffset += (24 * (i+1));
			DuplicateClouds[i].ySpeed += (0.005f * (i+1));
			DuplicateClouds[i].xAutoSpeed += (0.07f * (i+1));
		}
	}

	Flash.tileWidth = Flash.tileHeight = true;
	Flash.tileSet(0, 0, 0 + TILE::ANIMATED);
	Flash.tileSet(1, 0, 0 + TILE::ANIMATED);
	Flash.tileSet(2, 0, 0 + TILE::ANIMATED);
	Flash.tileSet(3, 0, 0 + TILE::ANIMATED);
	Flash.spriteMode = SPRITE::BLEND_SCREEN;
	Flash.spriteParam = 96;
	Flash.generateSettableTileArea();
	
	jjLayerOrderSet(array<jjLAYER@> = {jjLayers[1], jjLayers[3], jjLayers[4], jjLayers[5], jjLayers[2], DuplicateClouds[10], DuplicateClouds[9], DuplicateClouds[8], DuplicateClouds[7], DuplicateClouds[6], DuplicateClouds[5], DuplicateClouds[4], DuplicateClouds[3], Flash, jjLayers[6], DuplicateClouds[2], DuplicateClouds[1], DuplicateClouds[0], jjLayers[7], jjLayers[8]});
	
	jjLayers[6].hasTiles = false;
	Flash.hasTiles = false;
	
	for (uint i = 0; i < IceSamples.length(); i++) {
		jjSampleLoad(IceSamples[i], "LHIT.wav");
	}
	
	for (uint i = 0; i < IceSamples2.length(); i++) {
		jjSampleLoad(IceSamples2[i], "LSTART.wav");
	}
	
	//jjANIMFRAME@ bridgeFrame = jjAnimFrames[jjAnimations[jjAnimSets[ANIM::BRIDGE].firstAnim + 5].firstFrame];
	//jjPIXELMAP(0, 0, 8, 32).save(bridgeFrame);
	//bridgeFrame.hotSpotX = -bridgeFrame.width/2;
	//bridgeFrame.hotSpotY = -bridgeFrame.height + 24;
	//jjTileSet(4, 0, 0, 0);
}

uint elapsed = 0;
void onMain() {
	if (elapsed > 0) {
		elapsed--;
		jjLayers[6].hasTiles = true;
		Flash.hasTiles = true;
	}
	else {
		jjLayers[6].hasTiles = false;
		Flash.hasTiles = false;
	}
}

void onRoast(jjPLAYER@ victim, jjPLAYER@ killer) {
	if (victim is killer) {
		//do nothing
	}	
	else {
		if (elapsed < 48) elapsed = 48;
		jjSamplePriority(SOUND::BILSBOSS_THUNDER);
	}
}

//void onFunction1(jjPLAYER@ player) {
	//elapsed = 48;
	//jjSamplePriority(SOUND::BILSBOSS_THUNDER);
//}

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

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