Name | Author | Game Mode | Rating | |||||
---|---|---|---|---|---|---|---|---|
Min* Commotion | Violet CLM | Battle | N/A |
#include "MLLE-Include-1.6w.asc" ///@MLLE-Generated
#pragma require "vdom.j2t" ///@MLLE-Generated
#pragma require "VDom3battleNP.j2l" ///@MLLE-Generated
#include "ArcaneWeapon7.asc" ///@MLLE-Generated
#pragma require "ArcaneWeapon7.asc" ///@MLLE-Generated
#include "ArcaneWeapon4.asc" ///@MLLE-Generated
#pragma require "ArcaneWeapon4.asc" ///@MLLE-Generated
///@SaveAndRunArgs -battle -server ///@MLLE-Generated
#include "BubbleGun.asc"
const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, null, ArcaneWeapons::MortarLauncher::Weapon(), null, null, ArcaneWeapons::LightningRod::Weapon(), null, null});
bool onDrawAmmo(jjPLAYER@ player, jjCANVAS@ canvas) {
return MLLE::WeaponHook.drawAmmo(player, canvas);
}
void onLevelReload() { MLLE::Palette.apply(); }
void onLevelLoad() {
jjObjectPresets[OBJECT::TNTAMMO3].scriptedCollisions = true;
BubbleGun::MyBubble().Apply(WEAPON::BOUNCER, MLLE::WeaponHook);
jjANIMATION@ sparks = jjAnimations[jjAnimSets[ANIM::AMMO] + 75];
for (uint i = 0; i < sparks.frameCount; ++i) {
jjANIMFRAME@ frame = jjAnimFrames[sparks + i];
jjPIXELMAP image(frame);
for (uint x = 0; x < image.width; ++x)
for (uint y = 0; y < image.height; ++y)
if (image[x,y] != 0)
image[x,y] += 8;
image.save(frame);
}
jjObjectPresets[OBJECT::REDSPRING].ySpeed = -40;
jjANIMATION@ redSpring = jjAnimations[jjObjectPresets[OBJECT::REDSPRING].curAnim];
for (uint i = 0; i < redSpring.frameCount; ++i) {
jjANIMFRAME@ frame = jjAnimFrames[redSpring + i];
jjPIXELMAP image(frame);
for (uint x = 0; x < image.width; ++x)
for (uint y = 0; y < image.height; ++y)
if (image[x,y] & ~7 == 24)
image[x,y] += 48;
image.save(frame);
}
jjObjectPresets[OBJECT::BOUNCERPOWERUP].behavior = BEHAVIOR::FISH;
}
array<int> fastCustomSpringSpeeds(jjLocalPlayerCount, 0);
void onPlayer(jjPLAYER@ player) {
if (player.ySpeed < -32.f) {
fastCustomSpringSpeeds[player.localPlayerID] = int(ceil((player.ySpeed + 32.f) / -0.125f));
} else if (fastCustomSpringSpeeds[player.localPlayerID] != 0) {
if (player.ySpeed < -31.f) {
fastCustomSpringSpeeds[player.localPlayerID]--;
player.ySpeed = -32.f;
} else {
fastCustomSpringSpeeds[player.localPlayerID] = 0;
}
}
}
namespace BubbleGun {
class MyBubble : Weapon {
void onBehave(jjOBJ@ obj) override {
Weapon::onBehave(obj);
obj.behavior = NoBounce;
}
}
void NoBounce(jjOBJ@ obj) {
const bool right = obj.xSpeed >= 0;
obj.behave(Behavior);
if (right != (obj.xSpeed >= 0))
obj.var[7] = -obj.var[7];
}
}
void onMain() {
for (int i = jjObjectCount; --i != 0;)
if (jjObjects[i].isActive && jjObjects[i].yPos < 53)
jjDeleteObject(i);
}
Jazz2Online © 1999-INFINITY (Site Credits). We have a Privacy Policy. Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats.
Eat your lima beans, Johnny.