Downloads containing xlmpillar.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: The Pillar Dragusela Battle N/A Download file

File preview

const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, NapsWeapons::AntiGravityBouncer(), null, se::FireworkMLLEWrapper(), null, null, null, null}); ///@MLLE-Generated
#include "MLLE-Include-1.6w.asc" ///@MLLE-Generated
#pragma require "xlmpillar-MLLE-Data-1.j2l" ///@MLLE-Generated
#pragma require "moonwc.j2t" ///@MLLE-Generated
#pragma require "BattleshipsO.j2t" ///@MLLE-Generated
#pragma require "CrayonValley.j2t" ///@MLLE-Generated
#pragma require "Rainbowrunner.j2t" ///@MLLE-Generated
#pragma require "xlmpillar.j2l" ///@MLLE-Generated
#include "SEfirework-mlle.asc" ///@MLLE-Generated
#pragma require "SEfirework-mlle.asc" ///@MLLE-Generated
#include "AntiGravBouncers.asc" ///@MLLE-Generated
#pragma require "AntiGravBouncers.asc" ///@MLLE-Generated


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

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

class CannotBeShotDown : jjBEHAVIORINTERFACE {
    CannotBeShotDown(const jjBEHAVIOR &in behavior) {
        originalBehavior = behavior;
    }
    void onBehave(jjOBJ@ obj) {
        obj.behave(originalBehavior);
        if (obj.state == STATE::FLOATFALL)
            obj.state = STATE::FLOAT;
    }
    bool onObjectHit(jjOBJ@ obj, jjOBJ@ bullet, jjPLAYER@ player, int force) {
        if (bullet is null) {
            obj.behavior = originalBehavior;
            if (player.objectHit(obj, force, obj.playerHandling))
                return true;
            obj.behavior = this;
        }
        return false;
    }
    private jjBEHAVIOR originalBehavior;
}

void onLevelBegin() {
    for (int i = 1; i < 255; i++) {
        jjOBJ@ preset = jjObjectPresets[i];
        if (preset.playerHandling == HANDLING::PICKUP) {
            preset.behavior = CannotBeShotDown(preset.behavior);
        }
    }
}