//===========================================================================
//
// Name: fw_items.c
// Function:
// Programmer: Mr Elusive (MrElusive@demigod.demon.nl)
// Last update: 1998-12-16
// Tab Size: 3 (real tabs)
//
//
// xatrix & rogue weights:
// W_? weights
// GWW_? weights
// ammo weights
//===========================================================================
#define MZ(value) (value) < 0 ? 0 : (value)
#define HEALTH_SCALE(v) balance($evalfloat(FS_HEALTH*v), $evalfloat(MZ(FS_HEALTH*v-BR_HEALTH)), $evalfloat(MZ(FS_HEALTH*v+BR_HEALTH)))
#define ARMOR_SCALE(v) balance($evalfloat(FS_ARMOR*v), $evalfloat(MZ(FS_ARMOR*v-BR_ARMOR)), $evalfloat(MZ(FS_ARMOR*v+BR_ARMOR)))
#define WEAPON_SCALE(v) balance($evalfloat(MZ(v)), $evalfloat(MZ(v-BR_WEAPON)), $evalfloat(MZ(v+BR_WEAPON)))
#define POWERUP_SCALE(v) balance($evalfloat(MZ(v)), $evalfloat(MZ(v-BR_POWERUP)), $evalfloat(MZ(v+BR_POWERUP)))
//=============================================
// WEAPONS
//=============================================
weight "weapon_shotgun"
{
switch(INVENTORY_SHOTGUN)
{
case 1:
{
switch(INVENTORY_SHELLS)
{
case 10: return WEAPON_SCALE(W_SHOTGUN - 10);
default: return WEAPON_SCALE(W_SHOTGUN);
} //end switch
} //end case
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_SHELLS)
{
case 20: return WEAPON_SCALE(GWW_SHOTGUN);
case 100: return WEAPON_SCALE(GWW_SHOTGUN - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_supershotgun"
{
switch(INVENTORY_SUPERSHOTGUN)
{
case 1:
{
switch(INVENTORY_SHELLS)
{
case 10: return WEAPON_SCALE(W_SUPERSHOTGUN - 10);
default: return WEAPON_SCALE(W_SUPERSHOTGUN);
} //end switch
} //end case
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_SHELLS)
{
case 20: return WEAPON_SCALE(GWW_SUPERSHOTGUN);
case 100: return WEAPON_SCALE(GWW_SUPERSHOTGUN - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //switch
} //end weight
weight "weapon_machinegun"
{
switch(INVENTORY_MACHINEGUN)
{
case 1:
{
switch(INVENTORY_BULLETS)
{
case 40: return WEAPON_SCALE(W_MACHINEGUN - 10);
default: return WEAPON_SCALE(W_MACHINEGUN);
} //end switch
} //end case
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_BULLETS)
{
case 50: return WEAPON_SCALE(GWW_MACHINEGUN);
case 200: return WEAPON_SCALE(GWW_MACHINEGUN - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //switch
} //end weight
weight "weapon_chaingun"
{
switch(INVENTORY_CHAINGUN)
{
case 1:
{
switch(INVENTORY_BULLETS)
{
case 40: return WEAPON_SCALE(W_CHAINGUN - 10);
default: return WEAPON_SCALE(W_CHAINGUN);
} //end switch
} //end case
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_BULLETS)
{
case 50: return WEAPON_SCALE(GWW_CHAINGUN);
case 200: return WEAPON_SCALE(GWW_CHAINGUN - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //switch
} //end weight
weight "weapon_grenadelauncher"
{
switch(INVENTORY_GRENADELAUNCHER)
{
case 1: return WEAPON_SCALE(W_GRENADELAUNCHER);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_GRENADES)
{
case 16: return WEAPON_SCALE(GWW_GRENADELAUNCHER);
case 50: return WEAPON_SCALE(GWW_GRENADELAUNCHER - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_rocketlauncher"
{
switch(INVENTORY_ROCKETLAUNCHER)
{
case 1: return WEAPON_SCALE(W_ROCKETLAUNCHER);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_ROCKETS)
{
case 16: return WEAPON_SCALE(GWW_ROCKETLAUNCHER);
case 50: return WEAPON_SCALE(GWW_ROCKETLAUNCHER - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_hyperblaster"
{
switch(INVENTORY_HYPERBLASTER)
{
case 1: return WEAPON_SCALE(W_HYPERBLASTER);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_CELLS)
{
case 16: return WEAPON_SCALE(GWW_HYPERBLASTER);
case 200: return WEAPON_SCALE(GWW_HYPERBLASTER - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_railgun"
{
switch(INVENTORY_RAILGUN)
{
case 1: return WEAPON_SCALE(W_RAILGUN);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_SLUGS)
{
case 16: return WEAPON_SCALE(GWW_RAILGUN);
case 50: return WEAPON_SCALE(GWW_RAILGUN - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_bfg"
{
switch(INVENTORY_BFG10K)
{
case 1: return WEAPON_SCALE(W_BFG10K);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_CELLS)
{
case 16: return WEAPON_SCALE(GWW_BFG10K);
case 200: return WEAPON_SCALE(GWW_BFG10K - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
#ifdef XATRIX
weight "weapon_boomer"
{
switch(INVENTORY_IONRIPPER)
{
case 1: return WEAPON_SCALE(W_IONRIPPER);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_CELLS)
{
case 40: return WEAPON_SCALE(GWW_IONRIPPER);
case 200: return WEAPON_SCALE(GWW_IONRIPPER - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_phalanx"
{
switch(INVENTORY_PHALANX)
{
case 1: return WEAPON_SCALE(W_PHALANX);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_MAGSLUGS)
{
case 15: return WEAPON_SCALE(GWW_PHALANX);
case 50: return WEAPON_SCALE(GWW_PHALANX - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
#endif //XATRIX
#ifdef ROGUE
weight "weapon_etf_rifle"
{
switch(INVENTORY_ETFRIFLE)
{
case 1: return WEAPON_SCALE(W_ETFRIFLE);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_FLECHETTES)
{
case 40: return WEAPON_SCALE(GWW_ETFRIFLE);
case 200: return WEAPON_SCALE(GWW_ETFRIFLE - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_proxlauncher"
{
switch(INVENTORY_PROXLAUNCHER)
{
case 1: return WEAPON_SCALE(W_PROXLAUNCHER);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_PROX)
{
case 10: return WEAPON_SCALE(GWW_PROXLAUNCHER);
case 50: return WEAPON_SCALE(GWW_PROXLAUNCHER - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_plasmabeam"
{
switch(INVENTORY_PLASMABEAM)
{
case 1: return WEAPON_SCALE(W_PLASMABEAM);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_CELLS)
{
case 50: return WEAPON_SCALE(GWW_PLASMABEAM);
case 200: return WEAPON_SCALE(GWW_PLASMABEAM - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
weight "weapon_chainfist"
{
switch(INVENTORY_CHAINFIST)
{
case 1: return WEAPON_SCALE(W_CHAINFIST);
default: //does not use any ammo
{
return 0;
} //end default
} //end switch
} //end weight
weight "weapon_disintegrator"
{
switch(INVENTORY_DISRUPTOR)
{
case 1: return WEAPON_SCALE(W_DISRUPTOR);
default:
{
#if !(DMFLAGS & DF_WEAPONS_STAY)
switch(INVENTORY_ROUNDS)
{
case 25: return WEAPON_SCALE(GWW_DISRUPTOR);
case 100: return WEAPON_SCALE(GWW_DISRUPTOR - 10);
default: return balance(5, 3, 7);
} //end switch
#else
return 0;
#endif
} //end default
} //end switch
} //end weight
#endif //ROGUE
//=============================================
// AMMO
//
//
// max ammo: normal, bandolier, ammo pack
//
// shells 100 150 200
// bullets 200 250 300
// grenades 50 50 100
// rockets 50 50 100
// cells 200 250 300
// slugs 50 75 100
//
// traps 5 5 5
// mag slugs 50 75 100
//
// flechettes 200 250 200
// prox 50 50 50
// tesla 50 50 50
// rounds 100 150 200
//
//=============================================
weight "ammo_grenades"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_GRENADES)
{
case 15: return balance(30, 28, 32);
case 30: return balance(20, 18, 22);
case 50: return balance(10, 8, 12);
default: return 0;
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_GRENADES)
{
case 15: return balance(30, 28, 32);
case 30: return balance(20, 18, 22);
case 100: return balance(10, 8, 12);
default: return 0;
} //end switch
} //end default
} //end switch
} //end weight
weight "ammo_shells"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_BANDOLIER)
{
case 1: //if no bondolier
{
switch(INVENTORY_SHELLS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(15, 13, 17);
case 100: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
default: //with bondolier
{
switch(INVENTORY_SHELLS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(15, 13, 17);
case 150: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_SHELLS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(15, 13, 17);
case 200: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end default
} //end switch
} //end weight
weight "ammo_bullets"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_BANDOLIER)
{
case 1: //if no bondolier
{
switch(INVENTORY_BULLETS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(25, 23, 27);
case 200: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end case
default: //with bondolier
{
switch(INVENTORY_BULLETS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(25, 23, 27);
case 250: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end case
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_BULLETS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(25, 23, 27);
case 300: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
} //end switch
} //end weight
weight "ammo_cells"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_BANDOLIER)
{
case 1: //if no bondolier
{
switch(INVENTORY_BFG10K)
{
case 1:
{
switch(INVENTORY_HYPERBLASTER)
{
case 1:
{
switch(INVENTORY_CELLS)
{
case 50: return balance(45, 43, 47);
case 200: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 200: return balance(20, 18, 22);
default: return 0;
} //end switch
} //end default
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 51: return balance(50, 48, 52);
case 100: return balance(45, 43, 47);
case 200: return balance(35, 33, 37);
default: return 0;
} //end switch
} //end default
} //end switch
} //end case
default: //with bondolier
{
switch(INVENTORY_BFG10K)
{
case 1:
{
switch(INVENTORY_HYPERBLASTER)
{
case 1:
{
switch(INVENTORY_CELLS)
{
case 50: return balance(45, 43, 47);
case 250: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 250: return balance(20, 18, 22);
default: return 0;
} //end switch
} //end default
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 51: return balance(50, 48, 52);
case 100: return balance(45, 43, 47);
case 250: return balance(35, 33, 37);
default: return 0;
} //end switch
} //end default
} //end switch
} //end case
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_BFG10K)
{
case 1:
{
switch(INVENTORY_HYPERBLASTER)
{
case 1:
{
switch(INVENTORY_CELLS)
{
case 50: return balance(45, 43, 47);
case 300: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 300: return balance(20, 18, 22);
default: return 0;
} //end switch
} //end default
} //end switch
} //end default
default:
{
switch(INVENTORY_CELLS)
{
case 51: return balance(50, 48, 52);
case 100: return balance(45, 43, 47);
case 300: return balance(35, 33, 37);
default: return 0;
} //end switch
} //end default
} //end switch
} //end default
} //end switch
} //end weight
weight "ammo_rockets"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_ROCKETLAUNCHER)
{
case 1: //if a rocket launcher
{
switch(INVENTORY_ROCKETS)
{
case 15: return balance(45, 43, 47);
case 30: return balance(40, 38, 42);
case 50: return balance(25, 23, 27);
default: return 0;
} //end switch
} //end default
default:
{
switch(INVENTORY_ROCKETS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(30, 28, 32);
case 50: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_ROCKETLAUNCHER)
{
case 1: //if a rocket launcher
{
switch(INVENTORY_ROCKETS)
{
case 15: return balance(45, 43, 47);
case 30: return balance(40, 38, 42);
case 100: return balance(25, 23, 27);
default: return 0;
} //end switch
} //end default
default:
{
switch(INVENTORY_ROCKETS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(30, 28, 32);
case 100: return balance(15, 13, 17);
default: return 0;
} //end switch
} //end default
} //end switch
} //end default
} //end switch
} //end weight
weight "ammo_slugs"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //if no ammo pack
{
switch(INVENTORY_BANDOLIER)
{
case 1: //if no bondolier
{
switch(INVENTORY_RAILGUN)
{
case 1:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(15, 13, 17);
case 50: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
default:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(10, 8, 12);
case 50: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
} //end switch
} //end case
default: //with bondolier
{
switch(INVENTORY_RAILGUN)
{
case 1:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(15, 13, 17);
case 75: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
default:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(10, 8, 12);
case 75: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
} //end switch
} //end case
} //end switch
} //end case
default: //with ammo pack
{
switch(INVENTORY_RAILGUN)
{
case 1:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(35, 33, 37);
case 30: return balance(15, 13, 17);
case 100: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
default:
{
switch(INVENTORY_SLUGS)
{
case 15: return balance(25, 23, 27);
case 30: return balance(10, 8, 12);
case 100: return balance(5, 3, 7);
default: return 0;
} //end switch
} //end case
} //end switch
} //end default
} //end switch
} //end weight
#ifdef XATRIX
weight "ammo_magslug"
{
return balance(20, 18, 22);
} //end weight
weight "ammo_trap"
{
return balance(20, 18, 22);
} //end weight
#endif //XATRIX
#ifdef ROGUE
weight "ammo_flechettes"
{
return balance(20, 18, 22);
} //end weight
weight "ammo_prox"
{
return balance(20, 18, 22);
} //end weight
weight "ammo_tesla"
{
return balance(20, 18, 22);
} //end weight
weight "ammo_nuke"
{
return balance(20, 18, 22);
} //end weight
weight "ammo_disruptor"
{
return balance(20, 18, 22);
} //end weight
#endif //ROGUE
//=============================================
// HEALTH
//=============================================
//increases health with 100 up to 100
weight "item_adrenaline"
{
switch(INVENTORY_HEALTH)
{
case 15: return HEALTH_SCALE(100);
case 30: return HEALTH_SCALE(95);
case 50: return HEALTH_SCALE(85);
case 70: return HEALTH_SCALE(55);
default: return HEALTH_SCALE(35);
} //end switch
} //end weight
//increases health with 10
weight "item_health"
{
switch(INVENTORY_HEALTH)
{
case 15: return HEALTH_SCALE(95);
case 30: return HEALTH_SCALE(85);
case 50: return HEALTH_SCALE(75);
case 70: return HEALTH_SCALE(45);
case 100: return HEALTH_SCALE(25);
default: return 0;
} //end switch
} //end weight
//increases health with 2
weight "item_health_small"
{
switch(INVENTORY_HEALTH)
{
case 15: return HEALTH_SCALE(92);
case 30: return HEALTH_SCALE(82);
case 50: return HEALTH_SCALE(72);
case 70: return HEALTH_SCALE(42);
case 100: return HEALTH_SCALE(22);
default: return 0;
} //end switch
} //end weight
//increases health with 25
weight "item_health_large"
{
switch(INVENTORY_HEALTH)
{
case 15: return HEALTH_SCALE(100);
case 30: return HEALTH_SCALE(90);
case 50: return HEALTH_SCALE(80);
case 70: return HEALTH_SCALE(50);
case 100: return HEALTH_SCALE(30);
default: return 0;
} //end switch
} //end weight
//increases health with 100 up to 999
weight "item_health_mega"
{
switch(INVENTORY_HEALTH)
{
case 15: return HEALTH_SCALE(100);
case 30: return HEALTH_SCALE(90);
case 50: return HEALTH_SCALE(80);
case 70: return HEALTH_SCALE(50);
case 100: return HEALTH_SCALE(40);
default: return HEALTH_SCALE(W_MEGAHEALTH);
} //end switch
} //end weight
//=============================================
// ARMOR
//=============================================
weight "item_armor_body" //red
{
switch(INVENTORY_ARMORBODY) //red
{
case 1: //no red armor
{
switch(INVENTORY_ARMORCOMBAT) //yellow
{
case 1: //no yellow armor
{
switch(INVENTORY_ARMORJACKET) //green
{
case 1: return ARMOR_SCALE(70); //no green armor
case 50: return ARMOR_SCALE(65);
default: return ARMOR_SCALE(60);
} //end switch
} //end case
default: return ARMOR_SCALE(60);
} //end switch
} //end case
case 100: return ARMOR_SCALE(60);
case 200: return ARMOR_SCALE(50);
default: return 0;
} //end switch
} //end weight
weight "item_armor_combat" //yellow
{
switch(INVENTORY_ARMORBODY) //red
{
case 1: //no red armor
{
switch(INVENTORY_ARMORCOMBAT) //yellow
{
case 1: //no yellow armor
{
switch(INVENTORY_ARMORJACKET) //green
{
case 1: return ARMOR_SCALE(65); //no green armor
case 50: return ARMOR_SCALE(60);
default: return ARMOR_SCALE(55);
} //end switch
} //end case
case 100: return ARMOR_SCALE(65);
default: return 0;
} //end switch
} //end case
case 100: return ARMOR_SCALE(50);
case 200: return ARMOR_SCALE(40);
default: return 0;
} //end switch
} //end weight
weight "item_armor_jacket" //green
{
switch(INVENTORY_ARMORBODY) //red
{
case 1: //no red armor
{
switch(INVENTORY_ARMORCOMBAT) //yellow
{
case 1: //no yellow armor
{
switch(INVENTORY_ARMORJACKET) //green
{
case 1: return ARMOR_SCALE(50); //no green armor
case 50: return ARMOR_SCALE(40);
default: return 0;
} //end switch
} //end case
case 100: return ARMOR_SCALE(40);
default: return 0;
} //end switch
} //end case
case 100: return ARMOR_SCALE(40);
case 200: return ARMOR_SCALE(30);
default: return 0;
} //end switch
} //end weight
weight "item_armor_shard"
{
switch(INVENTORY_ARMORBODY) //red
{
case 1: //no red armor
{
switch(INVENTORY_ARMORCOMBAT) //yellow
{
case 1: //no yellow armor
{
switch(INVENTORY_ARMORJACKET) //green
{
case 1: return ARMOR_SCALE(5); //no green armor
case 50: return ARMOR_SCALE(4);
default: return ARMOR_SCALE(2);
} //end switch
} //end case
case 100: return ARMOR_SCALE(5);
default: return ARMOR_SCALE(2);
} //end switch
} //end case
case 100: return ARMOR_SCALE(4);
case 200: return ARMOR_SCALE(3);
default: return ARMOR_SCALE(2);
} //end switch
} //end weight
weight "item_power_screen" //"Power Screen"
{
switch(INVENTORY_POWERSCREEN)
{
case 1: //no powerscreen
{
switch(INVENTORY_CELLS)
{
case 1: //no cells
{
return ARMOR_SCALE(W_POWERSCREEN);
} //end case
default: return ARMOR_SCALE(W_POWERSCREEN+2);
} //end switch
} //end case
default: return 1;
} //end switch
} //end weight
weight "item_power_shield" //"Power Shield"
{
switch(INVENTORY_POWERSHIELD)
{
case 1: //no powershield
{
switch(INVENTORY_CELLS)
{
case 1: //no cells
{
return ARMOR_SCALE(W_POWERSHIELD);
} //end case
default: return ARMOR_SCALE(W_POWERSHIELD+2);
} //end switch
} //end case
default: return 1;
} //end switch
} //end weight
//=============================================
// POWERUPS
//=============================================
weight "item_pack" //"Ammo Pack"
{
switch(INVENTORY_AMMOPACK)
{
case 1: //no ammo pack
{
return POWERUP_SCALE(W_AMMOPACK);
} //end case
default: return balance(5, 3, 7);
} //end switch
} //end weight
weight "item_bandolier" //"Bandolier"
{
switch(INVENTORY_BANDOLIER)
{
case 1: //no bandolier
{
return POWERUP_SCALE(W_BANDOLIER);
} //end case
default: return balance(4, 2, 6);
} //end switch
} //end weight
weight "item_quad" //"Quad Damage"
{
return POWERUP_SCALE(W_QUAD);
} //end weight
weight "item_invulnerability" //"Invulnerability"
{
return POWERUP_SCALE(W_INVULNERABILITY);
} //end weight
weight "item_silencer" //"Silencer"
{
return POWERUP_SCALE(W_SILENCER);
} //end weight
weight "item_breather" //"Rebreather"
{
return POWERUP_SCALE(W_REBREATHER);
} //end weight
weight "item_enviro" //"Environment Suit"
{
return POWERUP_SCALE(W_ENVIRO);
} //end weight
#ifdef XATRIX
weight "item_quadfire"
{
return POWERUP_SCALE(W_QUADFIRE);
} //end weight
#endif //XATRIX
#ifdef ROGUE
weight "item_ir_goggles"
{
return POWERUP_SCALE(W_IR_GOGGLES);
} //end weight
weight "item_double"
{
return POWERUP_SCALE(W_DOUBLE);
} //end weight
weight "item_compass"
{
return POWERUP_SCALE(W_COMPASS);
} //end weight
weight "item_sphere_vengeance"
{
return POWERUP_SCALE(W_SPHERE_VENGEANCE);
} //end weight
weight "item_sphere_hunter"
{
return POWERUP_SCALE(W_SPHERE_HUNTER);
} //end weight
weight "item_sphere_defender"
{
return POWERUP_SCALE(W_SPHERE_DEFENDER);
} //end weight
weight "item_doppleganger"
{
return POWERUP_SCALE(W_DOPPLEGANGER);
} //end weight
weight "dm_tag_token"
{
return POWERUP_SCALE(W_TAG_TOKEN);
} //end weight
#endif //ROGUE
//=============================================
// CTF techs
//=============================================
weight "item_tech1" // Resistance Tech \ Disruptor Shield
{
switch(INVENTORY_TECH1)
{
case 1: //no tech1
{
switch(INVENTORY_TECH2)
{
case 1: //no tech2
{
switch(INVENTORY_TECH3)
{
case 1: //no tech3
{
switch(INVENTORY_TECH4)
{
case 1: //no tech4
{
return TECH1_WEIGHT;
} //end case
default: return $evalfloat(TECH1_WEIGHT > TECH4_WEIGHT ? TECH1_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH1_WEIGHT > TECH3_WEIGHT ? TECH1_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH1_WEIGHT > TECH2_WEIGHT ? TECH1_WEIGHT : 0);
} //end switch
} //end case
default: return 0; //already has tech1
} //end switch
} //end weight
weight "item_tech2" // Strength Tech \ Power Amplifier
{
switch(INVENTORY_TECH1)
{
case 1: //no tech1
{
switch(INVENTORY_TECH2)
{
case 1: //no tech2
{
switch(INVENTORY_TECH3)
{
case 1: //no tech3
{
switch(INVENTORY_TECH4)
{
case 1: //no tech4
{
return TECH2_WEIGHT;
} //end case
default: return $evalfloat(TECH2_WEIGHT > TECH4_WEIGHT ? TECH2_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH2_WEIGHT > TECH3_WEIGHT ? TECH2_WEIGHT : 0);
} //end switch
} //end case
default: return 0; //already has tech2
} //end switch
} //end case
default: return $evalfloat(TECH2_WEIGHT > TECH1_WEIGHT ? TECH2_WEIGHT : 0);
} //end switch
} //end weight
weight "item_tech3" // Haste Tech \ Time Accel
{
switch(INVENTORY_TECH1)
{
case 1: //no tech1
{
switch(INVENTORY_TECH2)
{
case 1: //no tech2
{
switch(INVENTORY_TECH3)
{
case 1: //no tech3
{
switch(INVENTORY_TECH4)
{
case 1: //no tech4
{
return TECH3_WEIGHT;
} //end case
default: return $evalfloat(TECH3_WEIGHT > TECH4_WEIGHT ? TECH3_WEIGHT : 0);
} //end switch
} //end case
default: return 0; //already has tech3
} //end switch
} //end case
default: return $evalfloat(TECH3_WEIGHT > TECH2_WEIGHT ? TECH3_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH3_WEIGHT > TECH1_WEIGHT ? TECH3_WEIGHT : 0);
} //end switch
} //end weight
weight "item_tech4" // Regeneration Tech \ AutoDoc
{
switch(INVENTORY_TECH1)
{
case 1: //no tech1
{
switch(INVENTORY_TECH2)
{
case 1: //no tech2
{
switch(INVENTORY_TECH3)
{
case 1: //no tech3
{
switch(INVENTORY_TECH4)
{
case 1: //no tech4
{
return TECH4_WEIGHT;
} //end case
default: return 0; //already has tech4
} //end switch
} //end case
default: return $evalfloat(TECH4_WEIGHT > TECH3_WEIGHT ? TECH4_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH4_WEIGHT > TECH2_WEIGHT ? TECH4_WEIGHT : 0);
} //end switch
} //end case
default: return $evalfloat(TECH4_WEIGHT > TECH1_WEIGHT ? TECH4_WEIGHT : 0);
} //end switch
} //end weight
//=============================================
// for dropped CTF flags
//=============================================
weight "item_flag_team1" //Red Flag
{
switch(INVENTORY_FLAG1)
{
case 1: //not carrying the red flag
{
switch(INVENTORY_FLAG2)
{
case 1: //not carrying the blue flag
{
return FLAG_WEIGHT;
} //end case
default: //bot carrying the blue flag so go back to the base
{
return 200;
} //end case
} //end switch
} //end case
default: //bot carrying the red flag, so don't go back
{
return 0;
} //end default
} //end switch
} //end weight
weight "item_flag_team2" //Blue Flag
{
switch(INVENTORY_FLAG2)
{
case 1: //not carrying the blue flag
{
switch(INVENTORY_FLAG1)
{
case 1: //not carrying the red flag
{
return FLAG_WEIGHT;
} //end case
default: //bot is carrying the red flag so go back to the base
{
return 200;
} //end case
} //end switch
} //end case
default: //bot is carrying the blue flag, so don't go back
{
return 0;
} //end default
} //end switch
} //end weight