Explicit limits for the maximum amount of rockets.

Put the maximum amount of rockets that can be caried in the description, and
also adjust the amount of rocket pods one has when buying a secondary weapon.
The laser and charge beam will remove all rocket capacity. To soften the blow,
you get at least capacity for 5 rockets when buying homing missile systems,
or 10 when buying normal missile system.
This commit is contained in:
Guus Sliepen 2011-08-29 09:31:16 +02:00
parent 744f1977e1
commit ac71e3d3ec
2 changed files with 20 additions and 7 deletions

View File

@ -417,7 +417,7 @@ void initShop()
shopItems[13].price = 7500; shopItems[13].price = 7500;
strcpy(shopItems[13].name, "Homing Missile Launcher"); strcpy(shopItems[13].name, "Homing Missile Launcher");
strcpy(shopItems[13].description, "Fires homing missile"); strcpy(shopItems[13].description, "Fires homing missile (max 20 missiles)");
shopItems[13].image = 22; shopItems[13].image = 22;
shopItems[14].price = 10000; shopItems[14].price = 10000;
@ -427,12 +427,12 @@ void initShop()
shopItems[15].price = 20000; shopItems[15].price = 20000;
strcpy(shopItems[15].name, "Dual Homing Missile Launcher"); strcpy(shopItems[15].name, "Dual Homing Missile Launcher");
strcpy(shopItems[15].description, "Fires two homing missiles"); strcpy(shopItems[15].description, "Fires two homing missiles (max 10 missiles)");
shopItems[15].image = 24; shopItems[15].image = 24;
shopItems[16].price = 25000; shopItems[16].price = 25000;
strcpy(shopItems[16].name, "Homing Micro Missile Launcher"); strcpy(shopItems[16].name, "Homing Micro Missile Launcher");
strcpy(shopItems[16].description, "Fires several small homing missiles"); strcpy(shopItems[16].description, "Fires several small homing missiles (max 10)");
shopItems[16].image = 25; shopItems[16].image = 25;
for (int i = 0 ; i < 3 ; i++) for (int i = 0 ; i < 3 ; i++)
@ -551,7 +551,13 @@ static void buy(int i)
case 9: case 9:
if ((player.weaponType[1] == W_CHARGER) || (player.weaponType[1] == W_LASER)) if ((player.weaponType[1] == W_CHARGER) || (player.weaponType[1] == W_LASER))
{shopSelectedItem = -7; return;} {shopSelectedItem = -7; return;}
if (currentGame.maxRocketAmmo == 50) if ((player.weaponType[1] == W_HOMING_MISSILE) && (currentGame.maxRocketAmmo >= 20))
{shopSelectedItem = -9; return;}
if ((player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) && (currentGame.maxRocketAmmo >= 10))
{shopSelectedItem = -9; return;}
if ((player.weaponType[1] == W_MICRO_HOMING_MISSILES) && (currentGame.maxRocketAmmo >= 10))
{shopSelectedItem = -9; return;}
if (currentGame.maxRocketAmmo >= 50)
{shopSelectedItem = -3; return;} {shopSelectedItem = -3; return;}
currentGame.maxRocketAmmo += 5; currentGame.maxRocketAmmo += 5;
break; break;
@ -559,18 +565,21 @@ static void buy(int i)
if (player.weaponType[1] == W_DOUBLE_ROCKETS) if (player.weaponType[1] == W_DOUBLE_ROCKETS)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_DOUBLE_ROCKETS; player.weaponType[1] = W_DOUBLE_ROCKETS;
limitChar(&currentGame.maxRocketAmmo, 10, 50);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
case 11: case 11:
if (player.weaponType[1] == W_MICRO_ROCKETS) if (player.weaponType[1] == W_MICRO_ROCKETS)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_MICRO_ROCKETS; player.weaponType[1] = W_MICRO_ROCKETS;
limitChar(&currentGame.maxRocketAmmo, 10, 50);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
case 12: case 12:
if (player.weaponType[1] == W_LASER) if (player.weaponType[1] == W_LASER)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_LASER; player.weaponType[1] = W_LASER;
currentGame.maxRocketAmmo = 0;
player.ammo[1] = 0; player.ammo[1] = 0;
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -578,6 +587,7 @@ static void buy(int i)
if (player.weaponType[1] == W_HOMING_MISSILE) if (player.weaponType[1] == W_HOMING_MISSILE)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_HOMING_MISSILE; player.weaponType[1] = W_HOMING_MISSILE;
limitChar(&currentGame.maxRocketAmmo, 5, 20);
limitChar(&player.ammo[1], 0, 20); limitChar(&player.ammo[1], 0, 20);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -585,6 +595,7 @@ static void buy(int i)
if (player.weaponType[1] == W_CHARGER) if (player.weaponType[1] == W_CHARGER)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_CHARGER; player.weaponType[1] = W_CHARGER;
currentGame.maxRocketAmmo = 0;
player.ammo[1] = 0; player.ammo[1] = 0;
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -592,6 +603,7 @@ static void buy(int i)
if (player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) if (player.weaponType[1] == W_DOUBLE_HOMING_MISSILES)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_DOUBLE_HOMING_MISSILES; player.weaponType[1] = W_DOUBLE_HOMING_MISSILES;
limitChar(&currentGame.maxRocketAmmo, 5, 10);
limitChar(&player.ammo[1], 0, 10); limitChar(&player.ammo[1], 0, 10);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -599,6 +611,7 @@ static void buy(int i)
if (player.weaponType[1] == W_MICRO_HOMING_MISSILES) if (player.weaponType[1] == W_MICRO_HOMING_MISSILES)
{shopSelectedItem = -8; return;} {shopSelectedItem = -8; return;}
player.weaponType[1] = W_MICRO_HOMING_MISSILES; player.weaponType[1] = W_MICRO_HOMING_MISSILES;
limitChar(&currentGame.maxRocketAmmo, 5, 10);
limitChar(&player.ammo[1], 0, 10); limitChar(&player.ammo[1], 0, 10);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;

View File

@ -38,15 +38,15 @@ Laser Cannon
Laser Cannon Laser Cannon
5000 21 450 260 5000 21 450 260
Homing Missile Launcher Homing Missile Launcher
Fires homing missile Fires homing missile (max 20 missiles)
7500 22 500 260 7500 22 500 260
Charge Cannon Charge Cannon
A charge up cannon A charge up cannon
10000 23 550 260 10000 23 550 260
Dual Homing Missile Launcher Dual Homing Missile Launcher
Fires two homing missiles Fires two homing missiles (max 10 missiles)
20000 24 600 260 20000 24 600 260
Homing Micro Missile Launcher Homing Micro Missile Launcher
Fires several small homing missiles Fires several small homing missiles (max 10)
25000 25 650 260 25000 25 650 260