|
@@ -294,7 +294,7 @@ int choose_level(int* commands)
|
|
|
return input - '0';
|
|
|
}
|
|
|
|
|
|
-void setup_level(int level, double& shootr, int& refresh_t, boss& boss1, int& enemy_num, int* commands)
|
|
|
+void setup_level(int level, double& shootr, double& poweruprate, int& refresh_t, boss& boss1, int& enemy_num, int* commands)
|
|
|
{
|
|
|
switch(level) //setting game parameters
|
|
|
{
|
|
@@ -347,6 +347,7 @@ void setup_level(int level, double& shootr, int& refresh_t, boss& boss1, int& en
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+ poweruprate = (double)AVERAGE_DROP/enemy_num;
|
|
|
}
|
|
|
|
|
|
void change_commands(int* commands){
|
|
@@ -921,7 +922,7 @@ void drop_powerup(int x,int y,b_list& powerups)
|
|
|
}
|
|
|
|
|
|
|
|
|
-void interactions(player& player1,b_list& bullets,b_list& bombs,e_list& enemies,w_vec& walls,b_list& powerups,r_list& rockets,boss& boss1,int& score){
|
|
|
+void interactions(player& player1,b_list& bullets,b_list& bombs,e_list& enemies,w_vec& walls,b_list& powerups,r_list& rockets,boss& boss1,int& score, double poweruprate){
|
|
|
bool should_continue;
|
|
|
|
|
|
b_list::iterator it1=bullets.begin();
|
|
@@ -955,7 +956,7 @@ void interactions(player& player1,b_list& bullets,b_list& bombs,e_list& enemies,
|
|
|
it1=bullets.erase(it1);
|
|
|
should_continue = true;
|
|
|
it3->alive=false;
|
|
|
- if((double)rand()/RAND_MAX<(double)AVERAGE_DROP/ENEMY_NUM) //a powerup is dropped (AVERAGE_DROP is the mean number of powerups dropped per play in Normal mode)
|
|
|
+ if((double)rand()/RAND_MAX<poweruprate) //a powerup is dropped
|
|
|
drop_powerup(it3->x,it3->y+1,powerups);
|
|
|
score+=100;
|
|
|
break;
|
|
@@ -1438,7 +1439,7 @@ int choose_level_bossrush(int* commands)
|
|
|
return input - '0';
|
|
|
}
|
|
|
|
|
|
-void setup_level_bossrush(int level, double& shootr, int& refresh_t)
|
|
|
+void setup_level_bossrush(int level, double& shootr, double& poweruprate, int& refresh_t)
|
|
|
{
|
|
|
switch(level) //setting game parameters
|
|
|
{
|
|
@@ -1446,24 +1447,27 @@ void setup_level_bossrush(int level, double& shootr, int& refresh_t)
|
|
|
{
|
|
|
shootr = 0.006;
|
|
|
refresh_t = (int)(0.09*1E3);
|
|
|
+ poweruprate = 0.066;
|
|
|
}
|
|
|
case 2:
|
|
|
{
|
|
|
shootr = 0.009;
|
|
|
refresh_t = (int)(0.085*1E3);
|
|
|
+ poweruprate = 0.05;
|
|
|
}
|
|
|
case 3:
|
|
|
{
|
|
|
shootr = 0.015;
|
|
|
refresh_t = (int)(0.08*1E3);
|
|
|
+ poweruprate = 0.044;
|
|
|
}
|
|
|
case 4:
|
|
|
{
|
|
|
shootr = 0.020;
|
|
|
refresh_t = (int)(0.07*1E3);
|
|
|
+ poweruprate = 0.01;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
void resetbosses(boss* Bosses,boss& boss1,player& player1){
|