void radar_plot(game_object object, int drawlocation){
- if(object.x>0&&object.y>0){
+ if(object.x>0&&object.y>0&&object.active==1){
int line = 0; //vert plot pos
int row = 0; //horiz plot pos
int x_offset = 19; //offset for height
game_object encrazify(game_object lander, game_object crazy){
- int pause = 0;
- while(pause!=' '){
- cbreak();
- mvprintw(10,20,"Crazy?\n");
- pause = getch();
- };
- halfdelay(1);
-
crazy.active=1;
crazy.x = lander.x;
crazy.y = lander.y;
int input = 0;
int podcount = 0;
int podsin = 0;
+ int landercount = 0;
+ int crazycount = 0;
cbreak();
halfdelay(1);
// Lander shots
for(int landerloop = 0; landerloop<landermax; landerloop++){
if(landers[landerloop].active==1){
- if(rand()%1000>200){
+ if(rand()%1000>500){
// lander shoot
for(int landershotloop = 0; landershotloop<landershotmax; landershotloop++){
if(landershot[landershotloop].active==0){
};
};
+ // Crazy shots
+ for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
+ if(crazies[crazyloop].active==1){
+ if(rand()%1000>200){
+ // crazy shoot
+ for(int crazyshotloop = 0; crazyshotloop<landershotmax; crazyshotloop++){
+ if(landershot[crazyshotloop].active==0){
+ int multiplier = 1;
+ landershot[crazyshotloop].active=1;
+ //set direction
+ if(player.y<crazies[crazyloop].y){
+ if(player.x<crazies[crazyloop].x){ landershot[crazyshotloop].direction = 7; };
+ if(player.x==crazies[crazyloop].x){ landershot[crazyshotloop].direction = 4; };
+ if(player.x>crazies[crazyloop].x){ landershot[crazyshotloop].direction = 1; };
+ //set multipler based on direction
+ multiplier = -1;
+ };
+ if(player.y>=crazies[crazyloop].y){
+ if(player.x<crazies[crazyloop].x){ landershot[crazyshotloop].direction = 9; };
+ if(player.x==crazies[crazyloop].x){ landershot[crazyshotloop].direction = 6; };
+ if(player.x>crazies[crazyloop].x){ landershot[crazyshotloop].direction = 3; };
+ };
+ landershot[crazyshotloop].speed = crazies[crazyloop].speed;
+ landershot[crazyshotloop].x = crazies[crazyloop].x;
+ landershot[crazyshotloop].y = crazies[crazyloop].y + (crazies[crazyloop].speed * multiplier);
+ landershot[crazyshotloop].vtime = 1;
+ break;
+ };
+ };
+ };
+ };
+ };
+
//for each active lander shot
for(int landershotloop = 0; landershotloop<landershotmax; landershotloop++){
if(landershot[landershotloop].active==1){
podcount = 0;
for(int podloop = 0; podloop<8; podloop++){ podcount = podcount + pods[podloop].active; };
if(podcount<=0){
- if(podsin>0){
- //Tally bonuses
- //Award lives, if any
- if(lives<4){lives++;};
- //Print goodies, getch
- pause = 0;
- while(pause!=' '){
- cbreak();
- mvprintw(10,20,"Level %d Completed. Press SPACE to continue.\n", level);
- pause = getch();
- };
- halfdelay(1);
- //Advance level
- level++;
- //Reactivate pods if not zombied
- for(int podloop = 0; podloop<8; podloop++){ pods[podloop] = pod_init(pods[podloop]); };
- podsin = 0;
- //regen landers
- for(int landerloop = 0; landerloop<landermax; landerloop++){
- if(landers[landerloop].active==0){
- landers[landerloop] = lander_init(landers[landerloop]);
+ //do the level victory once all landers are dead
+ landercount = 0;
+ for(int landerloop = 0; landerloop<landermax; landerloop++){ landercount = landercount + landers[landerloop].active; };
+ //do the level victory once all crazies are dead
+ crazycount = 0;
+ for(int crazyloop = 0; crazyloop<landermax; crazyloop++){ crazycount = crazycount + crazies[crazyloop].active; };
+ if(crazycount<=0){
+ if(podsin>0&&landercount<=0){
+ //Tally bonuses
+ //Award lives, if any
+ if(lives<4){lives++;};
+ //Print goodies, getch
+ pause = 0;
+ while(pause!=' '){
+ cbreak();
+ mvprintw(10,20,"Level %d Completed. Press SPACE to continue.\n", level);
+ pause = getch();
+ };
+ halfdelay(1);
+ //Advance level
+ level++;
+ //Reactivate pods if not zombied
+ for(int podloop = 0; podloop<8; podloop++){ pods[podloop] = pod_init(pods[podloop]); };
+ podsin = 0;
+ //regen landers
+ for(int landerloop = 0; landerloop<landermax; landerloop++){
+ if(landers[landerloop].active==0){
+ landers[landerloop] = lander_init(landers[landerloop]);
+ };
};
};
- } else {
- //crazy the landers
- for(int landerloop = 0; landerloop<landermax; landerloop++){
- if(landers[landerloop].active==1){
- crazies[landerloop] = encrazify(landers[landerloop], crazies[landerloop]);
- landers[landerloop] = object_out(landers[landerloop]);
+ if(podsin<=0&&landercount>0){
+ //crazy the landers
+ for(int landerloop = 0; landerloop<landermax; landerloop++){
+ if(landers[landerloop].active==1){
+ crazies[landerloop] = encrazify(landers[landerloop], crazies[landerloop]);
+ landers[landerloop] = object_out(landers[landerloop]);
+ };
};
};
- //do the level victory once all crazies are dead
- };
+ };
};
-
+
}; //end main loop
-
+
endwin();
return 0;