1.0
27 Jul 2013 12:18
int frogTime = 0;
bool playerIsFrog = false;
bool frogTimer = false;
const int cSpellLifeTime = 55;
float distance(float x1, float y1, float x2, float y2) {
return sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
}
float sqrt(float x) {
float y = 1.0;
for (int i = 0; i < 20; i++)
y = (y + x/y)/2;
return y;
}
void CreateSpell(int objectID) {
int playerID = jjObjects[objectID].creator - 32768;
int spellID = jjAddObject(OBJECT::FASTFEET, jjPlayers[playerID].xPos+(jjPlayers[playerID].direction*48), jjPlayers[playerID].yPos, jjPlayers[playerID].playerID, CREATOR::PLAYER);
jjObjects[spellID].determineCurAnim(ANIM::WITCH, 3, true);
jjObjects[spellID].direction = jjPlayers[playerID].direction;
}
void DestroySpell(int spellID) {
int explosionID = jjAddObject(OBJECT::ELECTROBULLET, jjObjects[spellID].xPos, jjObjects[spellID].yPos, jjObjects[spellID].creator, CREATOR::PLAYER);
jjDeleteObject(spellID);
jjObjects[explosionID].determineCurAnim(ANIM::AMMO, 1, true);
jjObjects[explosionID].state = STATE::EXPLODE;
}
void onMain() {
p.ammo[9] = 3;
if (frogTime > 0) frogTime--;
for(int i = 1; i < jjObjectCount; i++) {
if (jjObjects[i].isActive && jjObjects[i].eventID == OBJECT::FASTFEET) {
if (distance(p.xPos, p.yPos, jjObjects[i].xPos, jjObjects[i].yPos) < 16) {
p.morphTo(CHAR::FROG, true);
}
jjObjects[i].ySpeed = 0;
jjObjects[i].xPos = jjObjects[i].xPos+(jjObjects[i].direction*10);
jjObjects[i].objType = 3;
}
}
for (int i = 0; i < jjObjectCount; i++)
if (jjObjects[i].isActive && jjObjects[i].creatorType == CREATOR::PLAYER) {
//Create spell
if (jjObjects[i].eventID == OBJECT::ELECTROBULLET && jjObjects[i].state != STATE::EXPLODE) {
jjDeleteObject(i);
CreateSpell(i);
continue;
}
//Destroy spell
if (jjObjects[i].eventID == OBJECT::FASTFEET) {
jjObjects[i].age++;
if (jjObjects[i].age > cSpellLifeTime)
DestroySpell(i);
continue;
}
}
if (p.charCurr == CHAR::FROG && !playerIsFrog) {
frogTime = 10*70;
playerIsFrog = true;
}
if (p.charCurr != CHAR::FROG && playerIsFrog) {
playerIsFrog = false;
}
if (frogTime == 0 && !frogTimer) {
p.revertMorph(true);
frogTimer = true;
}
if (frogTime != 0 && frogTimer) {
frogTimer = false;
}
}
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.