}
game_object encrazify(game_object lander, game_object crazy){
-
crazy.active=1;
crazy.x = lander.x;
crazy.y = lander.y;
crazy.vspeed = 0;
crazy.vtime = lander.vtime;
crazy.direction = lander.direction;
- crazy.speed = lander.speed;
+ crazy.speed = 1;
return crazy;
}
if(lander.x>pod.x-1){
lander.phase = 3;
lander.vtime = 0;
+ lander.speed = 0;
+ lander.direction = 5;
};
};
strcpy (pods[podloop].line2, " + ");
strcpy (pods[podloop].line3, " + ");
strcpy (pods[podloop].radar, "x");
+
+ pods[podloop].chase = 0;
};
- for(int podloop = 1; podloop<podmax; podloop=podloop+2){
+ for(int podloop = 1; podloop<podmax+1; podloop=podloop+2){
strcpy (pods[podloop].line0, " + ");
strcpy (pods[podloop].line1, " + ");
strcpy (pods[podloop].line2, " x ");
strcpy (pods[podloop].line3, " x ");
strcpy (pods[podloop].radar, "x");
+
+ pods[podloop].chase = 0;
};
//bullets
int crazycount = 0;
int alertleft = 0;
int alertright = 0;
+ int smartbombs = 4;
cbreak();
halfdelay(1);
//process object motion
player = process_motion(player, player);
- for(int podloop = 0; podloop<podmax; podloop++){ pods[podloop] = process_motion(pods[podloop], player); };
+ for(int podloop = 0; podloop<podmax; podloop++){
+ pods[podloop] = process_motion(pods[podloop], player);
+ //If lander dies, release pod
+ /*
+ if(pods[podloop].chase>0){
+ for(int landerloop = 0; landerloop<landermax; landerloop++){
+ if(landers[landerloop].number==pods[podloop].chase){
+ if(landers[landerloop].active==0){
+ pods[podloop].vspeed = 1;
+ pods[podloop].vtime = 1;
+ pods[podloop].chase = 0;
+ };
+ };
+ };
+ };
+ */
+ };
gatebeam1 = process_motion(gatebeam1, player);
gatebeam2 = process_motion(gatebeam2, player);
landers[landerloop] = pod_chase(landers[landerloop], pods[landers[landerloop].chase]);
};
if(landers[landerloop].chase>0&&landers[landerloop].phase==3){
+ pods[landers[landerloop].chase].speed = 0;
+ pods[landers[landerloop].chase].direction = 5;
if(landers[landerloop].vtime<=10){
landers[landerloop].vtime++;
} else {
};
- for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
+ for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
if(crazies[crazyloop].active==1){
crazies[crazyloop] = crazy_motion(crazies[crazyloop], player);
crazies[crazyloop] = process_motion(crazies[crazyloop], player);
};
//pod state
- mvprintw(21,1,"Out: %d In: %d", podcount, podsin);
+ mvprintw(21,1,"O:%d I:%d", podcount, podsin);
+
+ //smartbombs
+ int count = smartbombs;
+ for(int x=9;count>0;x++){
+ mvprintw(21,x,"B");
+ count--;
+ };
//get the cursor out of the way
mvprintw(23,79,"|");
};
};
};
-
+
+ //check for / process smartbomb
+ if(input=='a'&&smartbombs>=1){
+ smartbombs--;
+ for(int landerloop = 0; landerloop<landermax; landerloop++){
+ if(abs(player.y-landers[landerloop].y)<=40){
+ landers[landerloop] = object_out(landers[landerloop]);
+ score = score + 20;
+ //debug add pod drop once that works
+ for(int podloop = 0; podloop<podmax; podloop++){
+ if(pods[podloop].number==landers[landerloop].chase&&pods[podloop].active==1){
+ pods[podloop].vspeed = 1;
+ pods[podloop].vtime = 1;
+ pods[podloop].chase = 0;
+ };
+ };
+ };
+ };
+ for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
+ if(abs(player.y-crazies[crazyloop].y)<=40){
+ crazies[crazyloop] = object_out(crazies[crazyloop]);
+ score = score + 20;
+ };
+ };
+ };
+
//for each active bullet
for(int bulletloop = 0; bulletloop<bulletmax; bulletloop++){
if(bullets[bulletloop].active==1){
for(int landerloop = 0; landerloop<landermax; landerloop++){
if(landers[landerloop].active==1){
if(check_collision(bullets[bulletloop], landers[landerloop])==1){
- //kill lander and bullet
+ //kill lander and bullet, release pod
+ for(int podloop = 0; podloop<podmax; podloop++){
+ if(pods[podloop].number==landers[landerloop].chase&&pods[podloop].active==1){
+ pods[podloop].vspeed = 1;
+ pods[podloop].vtime = 1;
+ pods[podloop].chase = 0;
+ };
+ };
landers[landerloop] = object_out(landers[landerloop]);
bullets[bulletloop].vtime = 100;
bullets[bulletloop] = age_bullet(bullets[bulletloop]);