-float g_nix_with_laser;
+#include "../_all.qh"
+
+#include "mutator.qh"
+
+float g_nix_with_blaster;
// WEAPONTODO
-float nix_weapon;
+int nix_weapon;
float nix_nextchange;
float nix_nextweapon;
.float nix_lastchange_id;
entity e;
e = get_weaponinfo(wpn);
if(!e.weapon) // skip dummies
- return FALSE;
+ return false;
if(g_weaponarena)
{
if(!(g_weaponarena_weapons & WepSet_FromWeapon(wpn)))
- return FALSE;
+ return false;
}
else
{
- if(wpn == WEP_BLASTER && g_nix_with_laser) // WEAPONTODO: rename to g_nix_with_blaster
- return FALSE;
+ if(wpn == WEP_BLASTER.m_id && g_nix_with_blaster) // WEAPONTODO: rename to g_nix_with_blaster
+ return false;
if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
- return FALSE;
+ return false;
if (!(e.spawnflags & WEP_FLAG_NORMAL))
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
void NIX_ChooseNextWeapon()
{
if(nix_nextchange != self.nix_lastchange_id) // this shall only be called once per round!
{
- self.ammo_shells = self.ammo_nails = self.ammo_rockets = self.ammo_cells = self.ammo_fuel = 0;
-
+ self.ammo_shells = self.ammo_nails = self.ammo_rockets = self.ammo_cells = self.ammo_plasma = self.ammo_fuel = 0;
+
if(self.items & IT_UNLIMITED_WEAPON_AMMO)
{
switch(e.ammo_field)
case ammo_nails: self.ammo_nails = autocvar_g_pickup_nails_max; break;
case ammo_rockets: self.ammo_rockets = autocvar_g_pickup_rockets_max; break;
case ammo_cells: self.ammo_cells = autocvar_g_pickup_cells_max; break;
+ case ammo_plasma: self.ammo_plasma = autocvar_g_pickup_plasma_max; break;
case ammo_fuel: self.ammo_fuel = autocvar_g_pickup_fuel_max; break;
}
}
case ammo_nails: self.ammo_nails = autocvar_g_balance_nix_ammo_nails; break;
case ammo_rockets: self.ammo_rockets = autocvar_g_balance_nix_ammo_rockets; break;
case ammo_cells: self.ammo_cells = autocvar_g_balance_nix_ammo_cells; break;
+ case ammo_plasma: self.ammo_plasma = autocvar_g_balance_nix_ammo_plasma; break;
case ammo_fuel: self.ammo_fuel = autocvar_g_balance_nix_ammo_fuel; break;
}
}
if(e.spawnflags & WEP_FLAG_RELOADABLE) // prevent accessing undefined cvars
self.(weapon_load[nix_weapon]) = e.reloading_ammo;
- // nex too
+ // vortex too
if(WEP_CVAR(vortex, charge))
{
if(WEP_CVAR_SEC(vortex, chargepool))
case ammo_nails: self.ammo_nails += autocvar_g_balance_nix_ammoincr_nails; break;
case ammo_rockets: self.ammo_rockets += autocvar_g_balance_nix_ammoincr_rockets; break;
case ammo_cells: self.ammo_cells += autocvar_g_balance_nix_ammoincr_cells; break;
+ case ammo_plasma: self.ammo_plasma += autocvar_g_balance_nix_ammoincr_plasma; break;
case ammo_fuel: self.ammo_fuel += autocvar_g_balance_nix_ammoincr_fuel; break;
}
}
self.weapons = '0 0 0';
- if(g_nix_with_laser)
- self.weapons &= ~WEPSET_BLASTER;
+ if(g_nix_with_blaster)
+ self.weapons |= WEPSET_BLASTER;
self.weapons |= WepSet_FromWeapon(nix_weapon);
if(self.switchweapon != nix_weapon)
- if(!client_hasweapon(self, self.switchweapon, TRUE, FALSE))
- if(client_hasweapon(self, nix_weapon, TRUE, FALSE))
+ if(!client_hasweapon(self, self.switchweapon, true, false))
+ if(client_hasweapon(self, nix_weapon, true, false))
W_SwitchWeapon(nix_weapon);
}
{
switch (self.items)
{
- case IT_HEALTH:
- case IT_5HP:
- case IT_25HP:
- case IT_ARMOR:
- case IT_ARMOR_SHARD:
+ case ITEM_HealthSmall.m_itemid:
+ case ITEM_HealthMedium.m_itemid:
+ case ITEM_HealthLarge.m_itemid:
+ case ITEM_HealthMega.m_itemid:
+ case ITEM_ArmorSmall.m_itemid:
+ case ITEM_ArmorMedium.m_itemid:
+ case ITEM_ArmorLarge.m_itemid:
+ case ITEM_ArmorMega.m_itemid:
if (autocvar_g_nix_with_healtharmor)
return 0;
break;
- case IT_STRENGTH:
- case IT_INVINCIBLE:
+ case ITEM_Strength.m_itemid:
+ case ITEM_Shield.m_itemid:
if (autocvar_g_nix_with_powerups)
return 0;
break;
MUTATOR_ONADD
{
- g_nix_with_laser = autocvar_g_nix_with_laser;
+ g_nix_with_blaster = autocvar_g_nix_with_blaster;
nix_nextchange = 0;
nix_nextweapon = 0;
FOR_EACH_PLAYER(e) if(e.deadflag == DEAD_NO)
{
e.ammo_cells = start_ammo_cells;
+ e.ammo_plasma = start_ammo_plasma;
e.ammo_shells = start_ammo_shells;
e.ammo_nails = start_ammo_nails;
e.ammo_rockets = start_ammo_rockets;
e.ammo_fuel = start_ammo_fuel;
e.weapons = start_weapons;
- if(!client_hasweapon(e, e.weapon, TRUE, FALSE))
+ if(!client_hasweapon(e, e.weapon, true, false))
e.switchweapon = w_getbestweapon(self);
}
}