1.0
29 Oct 2013 23:06
/*GrapplingBeam*/
/*Author: szmol96*/
void GrapplingBeam(jjOBJ@ beam) {
if (beam.state == STATE::START) beam.state = STATE::FLY;
jjPLAYER@ p = jjPlayers[beam.creatorID];
beam.xPos = beam.xPos + beam.xSpeed + (beam.xAcc * 2);
beam.yPos = beam.yPos + beam.ySpeed + (beam.yAcc * 2);
float dx = beam.xPos - p.xPos;
float dy = beam.yPos - p.yPos;
float length = sqrt(dx*dx+dy*dy);
if (jjMaskedPixel(beam.xPos, beam.yPos)) {
beam.xSpeed = 0;
beam.ySpeed = 0;
beam.xAcc = 0;
beam.yAcc = 0;
p.xSpeed = 30*dx/length;
p.ySpeed = 30*dy/length;
}
for(float pos = 0; pos<length; pos += 1){
jjDrawSpriteFromCurFrame(p.xPos + pos * dx/length, p.yPos + pos * dy/length, beam.curFrame, 0, SPRITE::NORMAL, 0, 4, 4, -1);
}
if (p.keyFire == false || length > 400) beam.delete();
beam.frameID = (++beam.counter >> 1) % 9;
beam.determineCurFrame();
beam.draw();
}
void onLevelLoad() {
jjWeapons[WEAPON::GUN8].style = WEAPON::MISSILE;
jjObjectPresets[OBJECT::FIREBALLBULLET].behavior = GrapplingBeam;
jjObjectPresets[OBJECT::FIREBALLBULLET].special = jjObjectPresets[OBJECT::FIREBALLBULLET].determineCurAnim(ANIM::PICKUPS, 85);
jjObjectPresets[OBJECT::FIREBALLBULLETPU].behavior = GrapplingBeam;
jjObjectPresets[OBJECT::FIREBALLBULLETPU].special = jjObjectPresets[OBJECT::FIREBALLBULLETPU].determineCurAnim(ANIM::WITCH, 3);
}
void onPlayer(jjPLAYER@ p) {
p.ammo[8] = 3;
}
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.