diff --git a/src/Starfighter.cpp b/src/Starfighter.cpp index ba75dcc..454a327 100644 --- a/src/Starfighter.cpp +++ b/src/Starfighter.cpp @@ -125,7 +125,6 @@ int main(int argc, char **argv) alien_defs[CD_DUALFIGHTER].weaponType[1] = W_ROCKETS; alien_defs[CD_DUALFIGHTER].chance[0] = 100; alien_defs[CD_DUALFIGHTER].chance[1] = 1; - alien_defs[CD_DUALFIGHTER].score = 25; alien_defs[CD_DUALFIGHTER].collectChance = 50; alien_defs[CD_DUALFIGHTER].collectType = P_ANYTHING; alien_defs[CD_DUALFIGHTER].collectValue = 50; @@ -143,7 +142,6 @@ int main(int argc, char **argv) alien_defs[CD_MISSILEBOAT].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_MISSILEBOAT].chance[0] = 25; alien_defs[CD_MISSILEBOAT].chance[1] = 4; - alien_defs[CD_MISSILEBOAT].score = 250; alien_defs[CD_MISSILEBOAT].collectChance = 25; alien_defs[CD_MISSILEBOAT].collectType = P_ANYTHING; alien_defs[CD_MISSILEBOAT].collectValue = 75; @@ -161,7 +159,6 @@ int main(int argc, char **argv) alien_defs[CD_PROTOFIGHTER].weaponType[1] = P_ANYTHING; alien_defs[CD_PROTOFIGHTER].chance[0] = 100; alien_defs[CD_PROTOFIGHTER].chance[1] = 1; - alien_defs[CD_PROTOFIGHTER].score = 50; alien_defs[CD_PROTOFIGHTER].collectChance = 50; alien_defs[CD_PROTOFIGHTER].collectType = P_ANYTHING; alien_defs[CD_PROTOFIGHTER].collectValue = 50; @@ -179,7 +176,6 @@ int main(int argc, char **argv) alien_defs[CD_FRIEND].weaponType[1] = W_HOMING_MISSILE; alien_defs[CD_FRIEND].chance[0] = 100; alien_defs[CD_FRIEND].chance[1] = 5; - alien_defs[CD_FRIEND].score = 0; alien_defs[CD_FRIEND].collectChance = 0; alien_defs[CD_FRIEND].collectType = P_CASH; alien_defs[CD_FRIEND].collectValue = 0; @@ -197,10 +193,9 @@ int main(int argc, char **argv) alien_defs[CD_FRIGATE].weaponType[1] = W_ENERGYRAY; alien_defs[CD_FRIGATE].chance[0] = 100; alien_defs[CD_FRIGATE].chance[1] = 85; - alien_defs[CD_FRIGATE].score = 500; alien_defs[CD_FRIGATE].collectChance = 100; alien_defs[CD_FRIGATE].collectType = P_CASH; - alien_defs[CD_FRIGATE].collectValue = 250; + alien_defs[CD_FRIGATE].collectValue = 500; alien_defs[CD_FRIGATE].flags = FL_WEAPCO; alien_defs[CD_FRIGATE_WING1].classDef = CD_FRIGATE_WING1; @@ -214,7 +209,6 @@ int main(int argc, char **argv) alien_defs[CD_FRIGATE_WING1].weaponType[1] = W_ROCKETS; alien_defs[CD_FRIGATE_WING1].chance[0] = 100; alien_defs[CD_FRIGATE_WING1].chance[1] = 10; - alien_defs[CD_FRIGATE_WING1].score = 500; alien_defs[CD_FRIGATE_WING1].collectChance = 100; alien_defs[CD_FRIGATE_WING1].collectType = P_ANYTHING; alien_defs[CD_FRIGATE_WING1].collectValue = 250; @@ -231,7 +225,6 @@ int main(int argc, char **argv) alien_defs[CD_FRIGATE_WING2].weaponType[1] = W_ROCKETS; alien_defs[CD_FRIGATE_WING2].chance[0] = 100; alien_defs[CD_FRIGATE_WING2].chance[1] = 10; - alien_defs[CD_FRIGATE_WING2].score = 500; alien_defs[CD_FRIGATE_WING2].collectChance = 100; alien_defs[CD_FRIGATE_WING2].collectType = P_ANYTHING; alien_defs[CD_FRIGATE_WING2].collectValue = 250; @@ -249,7 +242,6 @@ int main(int argc, char **argv) alien_defs[CD_TRANSPORTSHIP].weaponType[1] = W_DOUBLE_SHOT; alien_defs[CD_TRANSPORTSHIP].chance[0] = 0; alien_defs[CD_TRANSPORTSHIP].chance[1] = 0; - alien_defs[CD_TRANSPORTSHIP].score = 25; alien_defs[CD_TRANSPORTSHIP].collectChance = 100; alien_defs[CD_TRANSPORTSHIP].collectType = P_WEAPONS; alien_defs[CD_TRANSPORTSHIP].collectValue = 30; @@ -267,7 +259,6 @@ int main(int argc, char **argv) alien_defs[CD_CARGOSHIP].weaponType[1] = W_DOUBLE_SHOT; alien_defs[CD_CARGOSHIP].chance[0] = 0; alien_defs[CD_CARGOSHIP].chance[1] = 0; - alien_defs[CD_CARGOSHIP].score = 25; alien_defs[CD_CARGOSHIP].collectChance = 50; alien_defs[CD_CARGOSHIP].collectType = P_ANYTHING; alien_defs[CD_CARGOSHIP].collectValue = 100; @@ -285,7 +276,6 @@ int main(int argc, char **argv) alien_defs[CD_MINER].weaponType[1] = W_DOUBLE_SHOT; alien_defs[CD_MINER].chance[0] = 0; alien_defs[CD_MINER].chance[1] = 0; - alien_defs[CD_MINER].score = 100; alien_defs[CD_MINER].collectChance = 100; alien_defs[CD_MINER].collectType = P_ANYTHING; alien_defs[CD_MINER].collectValue = 30; @@ -295,15 +285,14 @@ int main(int argc, char **argv) alien_defs[CD_KLINE].classDef = CD_KLINE; alien_defs[CD_KLINE].AIType = AI_OFFENSIVE; alien_defs[CD_KLINE].speed = 5; - alien_defs[CD_KLINE].maxShield = 750; - alien_defs[CD_KLINE].shield = 750; + alien_defs[CD_KLINE].maxShield = 500; + alien_defs[CD_KLINE].shield = 500; alien_defs[CD_KLINE].imageIndex[0] = 18; alien_defs[CD_KLINE].imageIndex[1] = 19; alien_defs[CD_KLINE].weaponType[0] = W_TRIPLE_SHOT; alien_defs[CD_KLINE].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_KLINE].chance[0] = 100; alien_defs[CD_KLINE].chance[1] = 2; - alien_defs[CD_KLINE].score = 0; alien_defs[CD_KLINE].collectChance = 0; alien_defs[CD_KLINE].collectType = P_ANYTHING; alien_defs[CD_KLINE].collectValue = 0; @@ -321,7 +310,6 @@ int main(int argc, char **argv) alien_defs[CD_AIMFIGHTER].weaponType[1] = W_AIMED_SHOT; alien_defs[CD_AIMFIGHTER].chance[0] = 7; alien_defs[CD_AIMFIGHTER].chance[1] = 1; - alien_defs[CD_AIMFIGHTER].score = 50; alien_defs[CD_AIMFIGHTER].collectChance = 75; alien_defs[CD_AIMFIGHTER].collectType = P_ANYTHING; alien_defs[CD_AIMFIGHTER].collectValue = 100; @@ -339,7 +327,6 @@ int main(int argc, char **argv) alien_defs[CD_SLAVETRANSPORT].weaponType[1] = W_DOUBLE_SHOT; alien_defs[CD_SLAVETRANSPORT].chance[0] = 0; alien_defs[CD_SLAVETRANSPORT].chance[1] = 0; - alien_defs[CD_SLAVETRANSPORT].score = 25; alien_defs[CD_SLAVETRANSPORT].collectChance = 100; alien_defs[CD_SLAVETRANSPORT].collectType = P_SLAVES; alien_defs[CD_SLAVETRANSPORT].collectValue = 25; @@ -357,7 +344,6 @@ int main(int argc, char **argv) alien_defs[CD_GOODTRANSPORT].weaponType[1] = W_AIMED_SHOT; alien_defs[CD_GOODTRANSPORT].chance[0] = 100; alien_defs[CD_GOODTRANSPORT].chance[1] = 100; - alien_defs[CD_GOODTRANSPORT].score = 0; alien_defs[CD_GOODTRANSPORT].collectChance = 0; alien_defs[CD_GOODTRANSPORT].collectType = P_ANYTHING; alien_defs[CD_GOODTRANSPORT].collectValue = 0; @@ -375,7 +361,6 @@ int main(int argc, char **argv) alien_defs[CD_SID].weaponType[1] = W_IONCANNON; alien_defs[CD_SID].chance[0] = 100; alien_defs[CD_SID].chance[1] = 0; - alien_defs[CD_SID].score = 0; alien_defs[CD_SID].collectChance = 0; alien_defs[CD_SID].collectType = P_ANYTHING; alien_defs[CD_SID].collectValue = 0; @@ -393,10 +378,9 @@ int main(int argc, char **argv) alien_defs[CD_MINEBOSS].weaponType[1] = W_SPREADSHOT; alien_defs[CD_MINEBOSS].chance[0] = 0; alien_defs[CD_MINEBOSS].chance[1] = 0; - alien_defs[CD_MINEBOSS].score = 1000; alien_defs[CD_MINEBOSS].collectChance = 100; alien_defs[CD_MINEBOSS].collectType = P_ANYTHING; - alien_defs[CD_MINEBOSS].collectValue = 255; + alien_defs[CD_MINEBOSS].collectValue = 1000; alien_defs[CD_MINEBOSS].flags = FL_WEAPCO | FL_IMMORTAL; alien_defs[CD_BOSS2_WING1].classDef = CD_BOSS2_WING1; @@ -410,10 +394,9 @@ int main(int argc, char **argv) alien_defs[CD_BOSS2_WING1].weaponType[1] = W_SPREADSHOT; alien_defs[CD_BOSS2_WING1].chance[0] = 0; alien_defs[CD_BOSS2_WING1].chance[1] = 0; - alien_defs[CD_BOSS2_WING1].score = 1000; alien_defs[CD_BOSS2_WING1].collectChance = 100; alien_defs[CD_BOSS2_WING1].collectType = P_ANYTHING; - alien_defs[CD_BOSS2_WING1].collectValue = 255; + alien_defs[CD_BOSS2_WING1].collectValue = 250; alien_defs[CD_BOSS2_WING1].flags = FL_WEAPCO | FL_DAMAGEOWNER; alien_defs[CD_BOSS2_WING2].classDef = CD_BOSS2_WING2; @@ -427,10 +410,9 @@ int main(int argc, char **argv) alien_defs[CD_BOSS2_WING2].weaponType[1] = W_SPREADSHOT; alien_defs[CD_BOSS2_WING2].chance[0] = 0; alien_defs[CD_BOSS2_WING2].chance[1] = 0; - alien_defs[CD_BOSS2_WING2].score = 1000; alien_defs[CD_BOSS2_WING2].collectChance = 100; alien_defs[CD_BOSS2_WING2].collectType = P_ANYTHING; - alien_defs[CD_BOSS2_WING2].collectValue = 255; + alien_defs[CD_BOSS2_WING2].collectValue = 250; alien_defs[CD_BOSS2_WING2].flags = FL_WEAPCO | FL_DEPLOYDRONES | FL_DAMAGEOWNER; alien_defs[CD_BOSS2_WING3].classDef = CD_BOSS2_WING3; @@ -444,10 +426,9 @@ int main(int argc, char **argv) alien_defs[CD_BOSS2_WING3].weaponType[1] = W_SPREADSHOT; alien_defs[CD_BOSS2_WING3].chance[0] = 0; alien_defs[CD_BOSS2_WING3].chance[1] = 0; - alien_defs[CD_BOSS2_WING3].score = 1000; alien_defs[CD_BOSS2_WING3].collectChance = 100; alien_defs[CD_BOSS2_WING3].collectType = P_ANYTHING; - alien_defs[CD_BOSS2_WING3].collectValue = 255; + alien_defs[CD_BOSS2_WING3].collectValue = 250; alien_defs[CD_BOSS2_WING3].flags = FL_WEAPCO | FL_DEPLOYDRONES | FL_DAMAGEOWNER; alien_defs[CD_BOSS2_WING4].classDef = CD_BOSS2_WING4; @@ -461,10 +442,9 @@ int main(int argc, char **argv) alien_defs[CD_BOSS2_WING4].weaponType[1] = W_SPREADSHOT; alien_defs[CD_BOSS2_WING4].chance[0] = 0; alien_defs[CD_BOSS2_WING4].chance[1] = 0; - alien_defs[CD_BOSS2_WING4].score = 1000; alien_defs[CD_BOSS2_WING4].collectChance = 100; alien_defs[CD_BOSS2_WING4].collectType = P_ANYTHING; - alien_defs[CD_BOSS2_WING4].collectValue = 255; + alien_defs[CD_BOSS2_WING4].collectValue = 250; alien_defs[CD_BOSS2_WING4].flags = FL_WEAPCO | FL_DAMAGEOWNER; // Drone @@ -479,7 +459,6 @@ int main(int argc, char **argv) alien_defs[CD_DRONE].weaponType[1] = W_LASER; alien_defs[CD_DRONE].chance[0] = 100; alien_defs[CD_DRONE].chance[1] = 0; - alien_defs[CD_DRONE].score = 0; alien_defs[CD_DRONE].collectChance = 10; alien_defs[CD_DRONE].collectType = P_SHIELD; alien_defs[CD_DRONE].collectValue = 1; @@ -497,10 +476,9 @@ int main(int argc, char **argv) alien_defs[CD_CLOAKFIGHTER].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_CLOAKFIGHTER].chance[0] = 100; alien_defs[CD_CLOAKFIGHTER].chance[1] = 5; - alien_defs[CD_CLOAKFIGHTER].score = 550; alien_defs[CD_CLOAKFIGHTER].collectChance = 100; alien_defs[CD_CLOAKFIGHTER].collectType = P_CASH; - alien_defs[CD_CLOAKFIGHTER].collectValue = 255; + alien_defs[CD_CLOAKFIGHTER].collectValue = 1000; alien_defs[CD_CLOAKFIGHTER].flags = FL_WEAPCO | FL_CANCLOAK | FL_RUNSAWAY; // Evil Ursula @@ -515,7 +493,6 @@ int main(int argc, char **argv) alien_defs[CD_EVILURSULA].weaponType[1] = W_HOMING_MISSILE; alien_defs[CD_EVILURSULA].chance[0] = 100; alien_defs[CD_EVILURSULA].chance[1] = 100; - alien_defs[CD_EVILURSULA].score = 500; alien_defs[CD_EVILURSULA].collectChance = 100; alien_defs[CD_EVILURSULA].collectType = P_ESCAPEPOD; alien_defs[CD_EVILURSULA].collectValue = 1; @@ -533,10 +510,9 @@ int main(int argc, char **argv) alien_defs[CD_KRASS].weaponType[1] = W_CHARGER; alien_defs[CD_KRASS].chance[0] = 100; alien_defs[CD_KRASS].chance[1] = 0; - alien_defs[CD_KRASS].score = 2000; alien_defs[CD_KRASS].collectChance = 100; alien_defs[CD_KRASS].collectType = P_ANYTHING; - alien_defs[CD_KRASS].collectValue = 255; + alien_defs[CD_KRASS].collectValue = 2250; alien_defs[CD_KRASS].flags = FL_FRIEND | FL_IMMORTAL; // Executive Transport @@ -551,10 +527,9 @@ int main(int argc, char **argv) alien_defs[CD_EXEC].weaponType[1] = W_HOMING_MISSILE; alien_defs[CD_EXEC].chance[0] = 0; alien_defs[CD_EXEC].chance[1] = 0; - alien_defs[CD_EXEC].score = 2000; alien_defs[CD_EXEC].collectChance = 0; alien_defs[CD_EXEC].collectType = P_ANYTHING; - alien_defs[CD_EXEC].collectValue = 0; + alien_defs[CD_EXEC].collectValue = 2000; alien_defs[CD_EXEC].flags = FL_WEAPCO | FL_NOFIRE; // Asteroid @@ -569,7 +544,6 @@ int main(int argc, char **argv) alien_defs[CD_ASTEROID].weaponType[1] = W_HOMING_MISSILE; alien_defs[CD_ASTEROID].chance[0] = 0; alien_defs[CD_ASTEROID].chance[1] = 0; - alien_defs[CD_ASTEROID].score = 0; alien_defs[CD_ASTEROID].collectChance = 25; alien_defs[CD_ASTEROID].collectType = P_ORE; alien_defs[CD_ASTEROID].collectValue = 1; @@ -586,7 +560,6 @@ int main(int argc, char **argv) alien_defs[CD_ASTEROID2].weaponType[1] = W_HOMING_MISSILE; alien_defs[CD_ASTEROID2].chance[0] = 0; alien_defs[CD_ASTEROID2].chance[1] = 0; - alien_defs[CD_ASTEROID2].score = 0; alien_defs[CD_ASTEROID2].collectChance = 25; alien_defs[CD_ASTEROID2].collectType = P_ORE; alien_defs[CD_ASTEROID2].collectValue = 1; @@ -604,7 +577,6 @@ int main(int argc, char **argv) alien_defs[CD_ESCORT].weaponType[1] = W_LASER; alien_defs[CD_ESCORT].chance[0] = 25; alien_defs[CD_ESCORT].chance[1] = 25; - alien_defs[CD_ESCORT].score = 450; alien_defs[CD_ESCORT].collectChance = 100; alien_defs[CD_ESCORT].collectType = P_ANYTHING; alien_defs[CD_ESCORT].collectValue = 100; @@ -622,10 +594,9 @@ int main(int argc, char **argv) alien_defs[CD_MOBILE_RAY].weaponType[1] = W_ENERGYRAY; alien_defs[CD_MOBILE_RAY].chance[0] = 50; alien_defs[CD_MOBILE_RAY].chance[1] = 50; - alien_defs[CD_MOBILE_RAY].score = 1000; alien_defs[CD_MOBILE_RAY].collectChance = 75; alien_defs[CD_MOBILE_RAY].collectType = P_SHIELD; - alien_defs[CD_MOBILE_RAY].collectValue = 2; + alien_defs[CD_MOBILE_RAY].collectValue = 100; alien_defs[CD_MOBILE_RAY].flags = FL_WEAPCO; // Rebel Carrier @@ -640,7 +611,6 @@ int main(int argc, char **argv) alien_defs[CD_REBELCARRIER].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_REBELCARRIER].chance[0] = 50; alien_defs[CD_REBELCARRIER].chance[1] = 2; - alien_defs[CD_REBELCARRIER].score = 0; alien_defs[CD_REBELCARRIER].collectChance = 0; alien_defs[CD_REBELCARRIER].collectType = P_SHIELD; alien_defs[CD_REBELCARRIER].collectValue = 0; @@ -658,10 +628,9 @@ int main(int argc, char **argv) alien_defs[CD_PLUTOBOSS].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_PLUTOBOSS].chance[0] = 50; alien_defs[CD_PLUTOBOSS].chance[1] = 2; - alien_defs[CD_PLUTOBOSS].score = 1000; alien_defs[CD_PLUTOBOSS].collectChance = 0; alien_defs[CD_PLUTOBOSS].collectType = P_SHIELD; - alien_defs[CD_PLUTOBOSS].collectValue = 0; + alien_defs[CD_PLUTOBOSS].collectValue = 1000; alien_defs[CD_PLUTOBOSS].flags = FL_WEAPCO; // Pluto Boss Barrier @@ -676,7 +645,6 @@ int main(int argc, char **argv) alien_defs[CD_BARRIER].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_BARRIER].chance[0] = 0; alien_defs[CD_BARRIER].chance[1] = 0; - alien_defs[CD_BARRIER].score = 1000; alien_defs[CD_BARRIER].collectChance = 100; alien_defs[CD_BARRIER].collectType = P_ANYTHING; alien_defs[CD_BARRIER].collectValue = 25; @@ -694,10 +662,9 @@ int main(int argc, char **argv) alien_defs[CD_NEPTUNEBOSS].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_NEPTUNEBOSS].chance[0] = 100; alien_defs[CD_NEPTUNEBOSS].chance[1] = 0; - alien_defs[CD_NEPTUNEBOSS].score = 1000; alien_defs[CD_NEPTUNEBOSS].collectChance = 100; alien_defs[CD_NEPTUNEBOSS].collectType = P_ANYTHING; - alien_defs[CD_NEPTUNEBOSS].collectValue = 25; + alien_defs[CD_NEPTUNEBOSS].collectValue = 1000; alien_defs[CD_NEPTUNEBOSS].flags = FL_WEAPCO; // Mobile Shield @@ -712,7 +679,6 @@ int main(int argc, char **argv) alien_defs[CD_MOBILESHIELD].weaponType[1] = W_MICRO_ROCKETS; alien_defs[CD_MOBILESHIELD].chance[0] = 0; alien_defs[CD_MOBILESHIELD].chance[1] = 0; - alien_defs[CD_MOBILESHIELD].score = 250; alien_defs[CD_MOBILESHIELD].collectChance = 100; alien_defs[CD_MOBILESHIELD].collectType = P_ANYTHING; alien_defs[CD_MOBILESHIELD].collectValue = 25; @@ -730,7 +696,6 @@ int main(int argc, char **argv) alien_defs[CD_FIREFLY].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_FIREFLY].chance[0] = 100; alien_defs[CD_FIREFLY].chance[1] = 5; - alien_defs[CD_FIREFLY].score = 500; alien_defs[CD_FIREFLY].collectChance = 100; alien_defs[CD_FIREFLY].collectType = P_ANYTHING; alien_defs[CD_FIREFLY].collectValue = 250; @@ -748,10 +713,9 @@ int main(int argc, char **argv) alien_defs[CD_URANUSBOSS].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_URANUSBOSS].chance[0] = 100; alien_defs[CD_URANUSBOSS].chance[1] = 5; - alien_defs[CD_URANUSBOSS].score = 500; alien_defs[CD_URANUSBOSS].collectChance = 100; alien_defs[CD_URANUSBOSS].collectType = P_ANYTHING; - alien_defs[CD_URANUSBOSS].collectValue = 250; + alien_defs[CD_URANUSBOSS].collectValue = 500; alien_defs[CD_URANUSBOSS].flags = FL_WEAPCO; // Uranus Boss Wing 1 @@ -766,7 +730,6 @@ int main(int argc, char **argv) alien_defs[CD_URANUSBOSSWING1].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_URANUSBOSSWING1].chance[0] = 5; alien_defs[CD_URANUSBOSSWING1].chance[1] = 0; - alien_defs[CD_URANUSBOSSWING1].score = 500; alien_defs[CD_URANUSBOSSWING1].collectChance = 100; alien_defs[CD_URANUSBOSSWING1].collectType = P_ANYTHING; alien_defs[CD_URANUSBOSSWING1].collectValue = 250; @@ -784,7 +747,6 @@ int main(int argc, char **argv) alien_defs[CD_URANUSBOSSWING2].weaponType[1] = W_DOUBLE_ROCKETS; alien_defs[CD_URANUSBOSSWING2].chance[0] = 5; alien_defs[CD_URANUSBOSSWING2].chance[1] = 0; - alien_defs[CD_URANUSBOSSWING2].score = 500; alien_defs[CD_URANUSBOSSWING2].collectChance = 100; alien_defs[CD_URANUSBOSSWING2].collectType = P_ANYTHING; alien_defs[CD_URANUSBOSSWING2].collectValue = 250; diff --git a/src/aliens.cpp b/src/aliens.cpp index 05412aa..7f91ff3 100644 --- a/src/aliens.cpp +++ b/src/aliens.cpp @@ -416,17 +416,17 @@ void alien_setAI(object *alien) void alien_setKlineAttackMethod(object *alien) { - alien->maxShield -= 500; + alien->maxShield -= 750; if (alien->maxShield == 0) alien->flags &= ~FL_CANNOTDIE; - if (alien->maxShield == 1000) + if (alien->maxShield == 1500) { setRadioMessage(FACE_KLINE, "Very good, Bainfield. Now let's get a little more serious...", 1); alien->weaponType[0] = W_SPREADSHOT; alien->chance[1] = 40; } - else if (alien->maxShield == 500) + else if (alien->maxShield == 750) { setRadioMessage(FACE_KLINE, "Your ability to stay alive irritates me!! Try dodging some of these!!", 1); alien->weaponType[0] = W_DIRSHOCKMISSILE; @@ -445,7 +445,7 @@ void alien_setKlineAttackMethod(object *alien) alien->chance[1] = 2; } - alien->shield = 500; + alien->shield = 750; } /* diff --git a/src/bullets.cpp b/src/bullets.cpp index c2ad17e..6f4aec6 100644 --- a/src/bullets.cpp +++ b/src/bullets.cpp @@ -202,7 +202,8 @@ void fireBullet(object *attacker, int weaponType) } } - // Reset the weapon reload time. Double it if it is not friendly or a boss or Kline + // Reset the weapon reload time. Double it if it is not friendly or + // a boss or Kline attacker->reload[weaponType] = theWeapon->reload[0]; if ((attacker->flags & FL_WEAPCO) && (attacker != &aliens[WC_BOSS]) && (attacker != &aliens[WC_KLINE]) && (theWeapon->id != W_LASER)) attacker->reload[weaponType] *= 2; @@ -215,7 +216,7 @@ void fireBullet(object *attacker, int weaponType) if (player.ammo[0] > 0) { player.ammo[0]--; - if (player.ammo[0] == 0) + if (player.ammo[0] <= 0) { weapon[W_PLAYER_WEAPON].ammo[0] = currentGame.minPlasmaOutput; weapon[W_PLAYER_WEAPON].damage = currentGame.minPlasmaDamage; @@ -302,12 +303,7 @@ static void alien_destroy(object *alien, object *attacker) { if (attacker == &player) { - // Once again, stop point leeching - if (currentGame.area != MAX_MISSIONS - 1) - currentGame.cash += alien->score; - currentGame.cashEarned += alien->score; currentGame.totalKills++; - updateMissionRequirements(M_COLLECT, P_CASH, alien->score); } else if (attacker->classDef == CD_PHOEBE) { @@ -345,7 +341,7 @@ static void alien_destroy(object *alien, object *attacker) { value = (10 + (rand() % alien->collectValue)); if (value > alien->collectValue) - value =alien->collectValue; + value = alien->collectValue; addCollectable(alien->x, alien->y, alien->collectType, value, 600); alien->collectValue -= value; } @@ -578,7 +574,8 @@ void doBullets() okayToHit = true; if ((bullet->flags & WF_WEAPCO) && (alien->flags & FL_FRIEND)) okayToHit = true; - if ((bullet->id == WT_ROCKET) || (bullet->id == WT_LASER) || (bullet->id == WT_CHARGER)) + if ((bullet->id == WT_ROCKET) || (bullet->id == WT_LASER) || + (bullet->id == WT_CHARGER)) okayToHit = true; if (bullet->owner == alien->owner) @@ -591,7 +588,8 @@ void doBullets() if (bullet->owner == &player) { currentGame.hits++; - if ((alien->classDef == CD_PHOEBE) || (alien->classDef == CD_URSULA)) + if ((alien->classDef == CD_PHOEBE) || + (alien->classDef == CD_URSULA)) getMissFireMessage(alien); } @@ -617,7 +615,7 @@ void doBullets() alien->flags |= FL_LEAVESECTOR; alien->flags &= ~FL_CIRCLES; if (currentGame.area == 11) - setRadioMessage(FACE_KLINE, "Seems I underestimated you, Bainfield! We'll meet again!", 1); + setRadioMessage(FACE_KLINE, "Seems I underestimated you, Bainfield. We'll meet again!", 1); else if (currentGame.area == 25) setRadioMessage(FACE_SID, "Chris, Kethlan is getting away!", 1); } diff --git a/src/collectable.cpp b/src/collectable.cpp index 7ea6ff6..41f1bc2 100644 --- a/src/collectable.cpp +++ b/src/collectable.cpp @@ -61,7 +61,7 @@ void addCollectable(float x, float y, int type, int value, int life) } if (type == P_SUPER) - value = 1; + value = max(value, 1); if (value == 0) return; // don't bother! @@ -224,11 +224,13 @@ void addCollectable(float x, float y, int type, int value, int life) static void explodeMine(collectables *collectable) { - if ((collectable->x >= 0) && (collectable->x <= 800) && (collectable->y >= 0) && (collectable->y <= 600)) + if ((collectable->x >= 0) && (collectable->x <= screen->w) && + (collectable->y >= 0) && (collectable->y <= screen->h)) playSound(SFX_EXPLOSION, collectable->x); for (int i = 0 ; i < 10 ; i++) - addExplosion(collectable->x + rand() % 25 - rand() % 25, collectable->y + rand() % 25 - rand() % 25, E_BIG_EXPLOSION); + addExplosion(collectable->x + rand() % 25 - rand() % 25, + collectable->y + rand() % 25 - rand() % 25, E_BIG_EXPLOSION); if (checkPlayerShockDamage(collectable->x, collectable->y)) setInfoLine("Warning: Mine damage to shield!!", FONT_RED); @@ -303,7 +305,10 @@ void doCollectables() if (collectable->active) { - if ((collectable->x + collectable->image->w > 0) && (collectable->x < 800) && (collectable->y + collectable->image->h > 0) && (collectable->y < 600)) + if ((collectable->x + collectable->image->w > 0) && + (collectable->x < screen->w) && + (collectable->y + collectable->image->h > 0) && + (collectable->y < screen->h)) blit(collectable->image, (int)collectable->x, (int)collectable->y); collectable->x += engine.ssx + engine.smx; @@ -435,7 +440,8 @@ void doCollectables() break; } - updateMissionRequirements(M_COLLECT, collectable->type, collectable->value); + updateMissionRequirements(M_COLLECT, collectable->type, + collectable->value); collectable->active = false; if (collectable->type != P_MINE) @@ -460,7 +466,9 @@ void doCollectables() if (collectable->life < 1) { collectable->active = false; - if ((collectable->type == P_CARGO) || (collectable->type == P_ESCAPEPOD) || (collectable->type == P_SLAVES)) + if ((collectable->type == P_CARGO) || + (collectable->type == P_ESCAPEPOD) || + (collectable->type == P_SLAVES)) updateMissionRequirements(M_PROTECT_PICKUP, collectable->type, 1); } diff --git a/src/game.cpp b/src/game.cpp index e5ea71a..c14c8ba 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -87,6 +87,8 @@ void newGame() currentGame.maxPlasmaRate = 3; currentGame.maxPlasmaOutput = 3; currentGame.maxPlasmaDamage = 3; + currentGame.maxPlasmaAmmo = 150; + currentGame.maxRocketAmmo = 20; currentGame.minPlasmaRateLimit = 3; currentGame.minPlasmaDamageLimit = 3; @@ -111,7 +113,7 @@ void newGame() player.shield = player.maxShield; player.ammo[0] = 0; - player.ammo[1] = 5; + player.ammo[1] = currentGame.maxRocketAmmo / 2; player.weaponType[0] = W_PLAYER_WEAPON; player.weaponType[1] = W_ROCKETS; @@ -194,7 +196,7 @@ int mainGameLoop() { aliens[WC_KLINE].target = &player; if (currentGame.area == 25) - aliens[WC_KLINE].shield = 500; + aliens[WC_KLINE].shield = 750; } if (aliens[index].classDef == CD_CLOAKFIGHTER) diff --git a/src/intermission.cpp b/src/intermission.cpp index bc3baaf..ac36e43 100644 --- a/src/intermission.cpp +++ b/src/intermission.cpp @@ -535,6 +535,17 @@ int galaxyMap() bool movePlanets = true; signed char saveSlot = -1; + // Remove the Supercharge, if it is there + if (currentGame.difficulty > DIFFICULTY_EASY) + { + weapon[W_PLAYER_WEAPON].reload[0] = max(weapon[W_PLAYER_WEAPON].reload[0], + rate2reload[currentGame.maxPlasmaRate]); + weapon[W_PLAYER_WEAPON].ammo[0] = min(weapon[W_PLAYER_WEAPON].ammo[0], + currentGame.maxPlasmaOutput); + weapon[W_PLAYER_WEAPON].damage = min(weapon[W_PLAYER_WEAPON].damage, + currentGame.maxPlasmaDamage); + } + if (currentGame.system > 0) interceptionChance = (300 / currentGame.system); diff --git a/src/player.cpp b/src/player.cpp index cebdcbe..30d41cb 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -80,17 +80,6 @@ void exitPlayer() if (player.weaponType[1] == W_LASER) player.ammo[1] = 0; - - // Remove the Supercharge, if it is there - if (currentGame.difficulty > DIFFICULTY_EASY) - { - weapon[W_PLAYER_WEAPON].reload[0] = max(weapon[W_PLAYER_WEAPON].reload[0], - rate2reload[currentGame.maxPlasmaRate]); - weapon[W_PLAYER_WEAPON].ammo[0] = min(weapon[W_PLAYER_WEAPON].ammo[0], - currentGame.maxPlasmaOutput); - weapon[W_PLAYER_WEAPON].damage = min(weapon[W_PLAYER_WEAPON].damage, - currentGame.maxPlasmaDamage); - } } void doPlayer() diff --git a/src/shop.cpp b/src/shop.cpp index 28db9fa..facfeb6 100644 --- a/src/shop.cpp +++ b/src/shop.cpp @@ -72,13 +72,19 @@ static void drawSecondaryWeaponSurface() static void adjustShopPrices() { - shopItems[SHOP_PLASMA_MAX_OUTPUT].price = (1500 * currentGame.maxPlasmaOutput); - shopItems[SHOP_PLASMA_MAX_DAMAGE].price = (1500 * currentGame.maxPlasmaDamage); - shopItems[SHOP_PLASMA_MAX_RATE].price = (1500 * currentGame.maxPlasmaRate); + shopItems[SHOP_PLASMA_MAX_OUTPUT].price = (1000 * + (currentGame.maxPlasmaOutput + 1)); + shopItems[SHOP_PLASMA_MAX_DAMAGE].price = (1000 * + (currentGame.maxPlasmaDamage + 1)); + shopItems[SHOP_PLASMA_MAX_RATE].price = (1000 * + (currentGame.maxPlasmaRate + 1)); - shopItems[SHOP_PLASMA_MIN_OUTPUT].price = (4000 * currentGame.minPlasmaOutput); - shopItems[SHOP_PLASMA_MIN_DAMAGE].price = (4000 * currentGame.minPlasmaDamage); - shopItems[SHOP_PLASMA_MIN_RATE].price = (4000 * currentGame.minPlasmaRate); + shopItems[SHOP_PLASMA_MIN_OUTPUT].price = (2000 * + (currentGame.minPlasmaOutput + 1)); + shopItems[SHOP_PLASMA_MIN_DAMAGE].price = (2000 * + (currentGame.minPlasmaDamage + 1)); + shopItems[SHOP_PLASMA_MIN_RATE].price = (2000 * + (currentGame.minPlasmaRate + 1)); if (currentGame.maxPlasmaOutput <= currentGame.minPlasmaOutput) shopItems[SHOP_PLASMA_MIN_OUTPUT].price += shopItems[SHOP_PLASMA_MAX_OUTPUT].price; @@ -87,7 +93,7 @@ static void adjustShopPrices() if (currentGame.maxPlasmaRate <= currentGame.minPlasmaRate) shopItems[SHOP_PLASMA_MIN_RATE].price += shopItems[SHOP_PLASMA_MAX_RATE].price; - shopItems[SHOP_PLASMA_MAX_AMMO].price = (5 * currentGame.maxPlasmaAmmo); + shopItems[SHOP_PLASMA_MAX_AMMO].price = (10 * (currentGame.maxPlasmaAmmo - 75)); shopItems[SHOP_ROCKET_MAX_AMMO].price = (25 * currentGame.maxRocketAmmo); if (currentGame.maxPlasmaOutput >= currentGame.maxPlasmaOutputLimit) @@ -310,12 +316,12 @@ void initShop() "Increases plasma firing rate"); shopItems[SHOP_PLASMA_MAX_RATE].image = 11; - shopItems[SHOP_PLASMA_AMMO].price = 50; + shopItems[SHOP_PLASMA_AMMO].price = 10; strcpy(shopItems[SHOP_PLASMA_AMMO].name, "10 Plasma cells"); strcpy(shopItems[SHOP_PLASMA_AMMO].description, "Plasma ammunition"); shopItems[SHOP_PLASMA_AMMO].image = 12; - shopItems[SHOP_ROCKET_AMMO].price = 50; + shopItems[SHOP_ROCKET_AMMO].price = 10; strcpy(shopItems[SHOP_ROCKET_AMMO].name, "Rocket Ammo"); strcpy(shopItems[SHOP_ROCKET_AMMO].description, "High velocity dumb fire rocket"); @@ -612,7 +618,7 @@ static void buy(int i) shopSelectedItem = -3; return; } - limitCharAdd(¤tGame.maxPlasmaAmmo, 10, 0, 250); + currentGame.maxPlasmaAmmo += 25; break; case SHOP_ROCKET_MAX_AMMO: @@ -817,6 +823,8 @@ static void sell(int i) return; } currentGame.minPlasmaOutput--; + if (player.ammo[0] <= 0) + weapon[W_PLAYER_WEAPON].ammo[0] = currentGame.minPlasmaOutput; break; case SHOP_PLASMA_MIN_DAMAGE: @@ -826,6 +834,8 @@ static void sell(int i) return; } currentGame.minPlasmaDamage--; + if (player.ammo[0] <= 0) + weapon[W_PLAYER_WEAPON].damage = currentGame.minPlasmaDamage; break; case SHOP_PLASMA_MIN_RATE: @@ -835,6 +845,8 @@ static void sell(int i) return; } currentGame.minPlasmaRate--; + if (player.ammo[0] <= 0) + weapon[W_PLAYER_WEAPON].reload[0] = rate2reload[currentGame.minPlasmaRate]; break; case SHOP_PLASMA_AMMO: @@ -846,7 +858,12 @@ static void sell(int i) if (player.ammo[0] > 10) player.ammo[0] -= 10; else + { player.ammo[0] = 0; + weapon[W_PLAYER_WEAPON].ammo[0] = currentGame.minPlasmaOutput; + weapon[W_PLAYER_WEAPON].damage = currentGame.minPlasmaDamage; + weapon[W_PLAYER_WEAPON].reload[0] = rate2reload[currentGame.minPlasmaRate]; + } break; case SHOP_ROCKET_AMMO: @@ -864,7 +881,7 @@ static void sell(int i) shopSelectedItem = -1; return; } - currentGame.maxPlasmaAmmo -= 10; + currentGame.maxPlasmaAmmo -= 25; while (player.ammo[0] > currentGame.maxPlasmaAmmo) sell(SHOP_PLASMA_AMMO); diff --git a/src/structs.h b/src/structs.h index b6296f1..34374cc 100644 --- a/src/structs.h +++ b/src/structs.h @@ -38,7 +38,6 @@ struct object { signed char speed; unsigned char damage; // Contact damage for bullets - int score; // How much a kill of this is worth unsigned char ammo[2]; // Ammo for 2nd weapon. signed char face; // Either 0 or 1 @@ -59,7 +58,7 @@ struct object { signed char collectChance; // Chance of dropping the object signed char collectType; // What the object is carrying - unsigned char collectValue; // What it is worth + unsigned int collectValue; // What it is worth int flags; // Various flags for an object