Downloads containing Tropical Turmoil Options.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Tropical Turmoil (Boss... jjturbo9 Single player 5 Download file

File preview

const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {BubbleGun::Weapon(), null, null, null, null, null, null, null, null}); ///@MLLE-Generated
#include "MLLE-Include-1.8w.asc" ///@MLLE-Generated
#pragma require "Tropical Turmoil Options.j2l" ///@MLLE-Generated
#include "BubbleGun.asc" ///@MLLE-Generated
#pragma require "BubbleGun.asc" ///@MLLE-Generated

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



void onLevelBegin() {

    jjPLAYER@ p = jjLocalPlayers[0];
	p.lives = 0;
    jjPLAYER@ player = jjLocalPlayers[0];
/*     if (!player.bossActivated) {
        player.activateBoss();
    } */
	
	    jjPLAYER@ FastFiredUp = jjLocalPlayers[0];
    //FastFiredUp.fastfire = 9; // change 6 into 1 for fastest gun in the WildWest, now default max (from collecting FastFire items)
    for (int i = 1; i <= 9; i++) {
        jjWeapons[i].allowed = false;
        jjWeapons[i].allowedPowerup = false;
        FastFiredUp.ammo[i] = 0;
        FastFiredUp.powerup[i] = true;
    }
	
}

const int KEY_SPACE = 32; // universal SPACE key
bool spacePrev = false;    // track previous state

const int KEY_ALT = 18;        // ALT key
bool altPrev = false;           // track previous ALT press

void onMain(){

        jjPLAYER@ p = jjLocalPlayers[0];
		    if (p is null) return;
    bool spaceNow = jjKey[KEY_SPACE]; // current SPACE key state

    // detect key press (not hold)
    if (spaceNow && !spacePrev)
    {

// Cycle characters: Jazz -> Spaz -> Lori -> Jazz
if (p.charCurr == CHAR::JAZZ)
{
    p.morphTo(CHAR::SPAZ);
    p.charOrig = CHAR::SPAZ;
}
else if (p.charCurr == CHAR::SPAZ)
{
    p.morphTo(CHAR::LORI);
    p.charOrig = CHAR::LORI;
}
else if (p.charCurr == CHAR::LORI)
{
    p.morphTo(CHAR::JAZZ);
    p.charOrig = CHAR::JAZZ;
}
    }

    // store current SPACE state for next frame
    spacePrev = spaceNow;
	
	    for (int i = 0; i < jjLocalPlayerCount; ++i) {
        jjPLAYER@ p = jjLocalPlayers[i];
        int screenX = int(p.cameraX) + 57;
        int screenY = int(p.cameraY);

        // set vertical placement line 1
        int line1Y = screenY + 150; // adjust this for the first line

        jjDrawString(screenX + 0, line1Y,
            "        !!!If you touch this sleeping Uterus you'll fight again!!!",
            STRING::SMALL, STRING::NORMAL, 6, p.localPlayerID);

        // set vertical placement line 2
        int line2Y = screenY + 180; // adjust this for the second line

        jjDrawString(screenX + 0, line2Y,
            "                       -Press SPACE to switch character-",
            STRING::SMALL, STRING::NORMAL, 6, p.localPlayerID);

        // set vertical placement line 3
        int line3Y = screenY + 270; // adjust this for the third line

        jjDrawString(screenX + 20, line3Y,
            "                        (Or go down there to exit)",
            STRING::SMALL, STRING::NORMAL, 6, p.localPlayerID);
			
        // set vertical placement line 4
        int line4Y = screenY + 440; // adjust this for the third line

        jjDrawString(screenX + 5, line4Y,
            "                                                               BPM now: 125 (Original)",
            STRING::SMALL, STRING::NORMAL, 6, p.localPlayerID);				
    }


    // --- Detect ALT press (not hold) ---
    bool altNow = jjKey[KEY_ALT];
    if (altNow && !altPrev)
    {
        // --- Cycle difficulty ---
        if (jjDifficulty == 0)      // Easy → Normal
            jjDifficulty = 1;
        else if (jjDifficulty == 1) // Normal → Hard
            jjDifficulty = 2;
		else if (jjDifficulty == 2) // Normal → Hard
            jjDifficulty = 3;
        else                        // Hard → Easy
            jjDifficulty = 0;
    }
    altPrev = altNow; // store for next frame

    // --- Display current difficulty ---
    string diffText = "";
int screenX = int(p.cameraX) + 50;
int screenY = int(p.cameraY) + 50;

if (jjDifficulty == 0)
{
    jjDrawString(screenX, screenY, "Difficulty: Easy (BPM: 135)", STRING::MEDIUM, STRING::NORMAL, 0, p.localPlayerID);
    jjDrawString(screenX, screenY + 25, "You'll get a faster fire-rate and carrots (Press ALT to change)", STRING::SMALL, STRING::NORMAL, 0, p.localPlayerID);
}
else if (jjDifficulty == 1)
{
    jjDrawString(screenX, screenY, "Difficulty: Normal (BPM: 145)", STRING::MEDIUM, STRING::NORMAL, 0, p.localPlayerID);
	jjDrawString(screenX, screenY + 25, "(Press ALT to change)", STRING::SMALL, STRING::NORMAL, 0, p.localPlayerID);
}
else if (jjDifficulty == 2)
{
    jjDrawString(screenX, screenY, "Difficulty: Hard (BPM: 155)", STRING::MEDIUM, STRING::NORMAL, 0, p.localPlayerID);
    jjDrawString(screenX, screenY + 25, "More Spikeballs (Press ALT to change)", STRING::SMALL, STRING::NORMAL, 0, p.localPlayerID);
}
else if (jjDifficulty == 3)
{
    jjDrawString(screenX, screenY, "Difficulty: Turbo (BPM: 165)", STRING::MEDIUM, STRING::NORMAL, 0, p.localPlayerID);
    jjDrawString(screenX, screenY + 25, "More Spikeballs, less health (Press ALT to change)", STRING::SMALL, STRING::NORMAL, 0, p.localPlayerID);
}

    jjDrawString(screenX, screenY, diffText, STRING::MEDIUM, STRING::NORMAL, 0, p.localPlayerID);
	
}


void onLevelLoad() {
/*   jjObjectPresets[OBJECT::UTERUS].behavior = Fundus; */
  
  jjObjectPresets[OBJECT::UTERUS].energy = 127;
    // Optional: spikeball or attack tweaks
    jjObjectPresets[OBJECT::UTERUSSPIKEBALL].energy = 20;
}

void onFunction101()
{
jjNxt("Tropical Turmoil.j2l", true, true);
}