iw6-scripts/maps/mp/alien/_deployablebox_functions.gsc
2024-02-13 13:20:49 +01:00

1405 lines
50 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
pre_load()
{
level.deployable_currency_ranks = [];
level.deployable_currency_ranks[0] = 1000;
level.deployable_currency_ranks[1] = 2000;
level.deployable_currency_ranks[2] = 3000;
level.deployable_currency_ranks[3] = 4000;
level.deployable_currency_ranks[4] = 10000;
precachestring( &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_PICKUP" );
precachestring( &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_TAKING" );
precachestring( &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_TAKEN" );
level.randombox_items = [];
randombox_table_init( 0, 99 );
}
deployables_init()
{
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_EXPLOSIVES_PICKUP";
var_0.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_EXPLOSIVES_TAKING";
var_0.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_EXPLOSIVES_TAKEN";
var_0.streakname = "deployable_explosives";
var_0.dpadname = "dpad_team_explosives";
var_0.splashname = "used_deployable_explosives";
var_0.shadername = "compass_objpoint_deploy_grenades_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_explosives;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 150;
var_0.damagefeedback = "deployable_bag";
var_0.deathweaponinfo = "deployable_grenades_mp";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 4;
maps\mp\alien\_deployablebox::init_deployable( "deployable_explosives", var_0 );
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"KILLSTREAKS_HINTS_LIGHT_ARMOR_PICKUP";
var_0.capturingstring = &"KILLSTREAKS_BOX_GETTING_VEST";
var_0.eventstring = &"KILLSTREAKS_DEPLOYED_VEST";
var_0.streakname = "deployable_vest";
var_0.dpadname = "dpad_team_armor";
var_0.splashname = "used_deployable_vest";
var_0.shadername = "compass_objpoint_deploy_friendly";
var_0.headiconoffset = 20;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_vest;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 300;
var_0.damagefeedback = "deployable_bag";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 3;
maps\mp\alien\_deployablebox::init_deployable( "deployable_vest", var_0 );
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"KILLSTREAKS_HINTS_DEPLOYABLE_AMMO_USE";
var_0.capturingstring = &"KILLSTREAKS_DEPLOYABLE_AMMO_TAKING";
var_0.eventstring = &"KILLSTREAKS_DEPLOYABLE_AMMO_TAKEN";
var_0.streakname = "deployable_ammo";
var_0.dpadname = "dpad_team_ammo_reg";
var_0.splashname = "used_deployable_ammo";
var_0.shadername = "compass_objpoint_deploy_ammo_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_ammo;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 150;
var_0.damagefeedback = "deployable_bag";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 3;
maps\mp\alien\_deployablebox::init_deployable( "deployable_ammo", var_0 );
if ( maps\mp\alien\_utility::is_chaos_mode() )
level.randombox_table = "mp/alien/chaos_deployable_randombox.csv";
if ( !isdefined( level.randombox_table ) )
level.randombox_table = "mp/alien/deployable_randombox.csv";
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_RANDOM_PICKUP";
var_0.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_RANDOM_TAKING";
var_0.streakname = "deployable_randombox";
var_0.dpadname = "dpad_team_randombox";
var_0.splashname = "used_deployable_randombox";
var_0.shadername = "compass_objpoint_deploy_grenades_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_randombox;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 150;
var_0.damagefeedback = "deployable_bag";
var_0.deathweaponinfo = "deployable_grenades_mp";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 3;
maps\mp\alien\_deployablebox::init_deployable( "deployable_randombox", var_0 );
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_PICKUP";
var_0.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_TAKING";
var_0.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_CURRENCY_TAKEN";
var_0.streakname = "deployable_currency";
var_0.dpadname = "dpad_team_currency";
var_0.splashname = "used_deployable_currency";
var_0.shadername = "compass_objpoint_deploy_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_currency;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 150;
var_0.damagefeedback = "deployable_bag";
var_0.deathweaponinfo = "deployable_grenades_mp";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 4;
var_0.icon_name = "alien_dpad_icon_team_money";
maps\mp\alien\_deployablebox::init_deployable( "deployable_currency", var_0 );
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_ADRENALINE_PICKUP";
var_0.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_BOOST_TAKING";
var_0.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_BOOST_TAKEN";
var_0.streakname = "deployable_adrenalinebox";
var_0.dpadname = "dpad_team_adrenaline";
var_0.splashname = "used_deployable_juicebox";
var_0.shadername = "compass_objpoint_deploy_juiced_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_adrenaline;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 300;
var_0.damagefeedback = "deployable_bag";
var_0.deathweaponinfo = "deployable_ammo_mp";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 3;
level.custom_adrenalinebox_logic = ::custom_adrenalinebox_logic;
maps\mp\alien\_deployablebox::init_deployable( "deployable_adrenalinebox", var_0 );
var_0 = spawnstruct();
var_0.weaponinfo = "aliendeployable_crate_marker_mp";
var_0.modelbase = "mp_weapon_alien_crate";
var_0.hintstring = &"KILLSTREAKS_HINTS_DEPLOYABLE_JUICEBOX_PICKUP";
var_0.capturingstring = &"KILLSTREAKS_DEPLOYABLE_JUICEBOX_TAKING";
var_0.eventstring = &"KILLSTREAKS_DEPLOYABLE_JUICEBOX_TAKEN";
var_0.streakname = "deployable_juicebox";
var_0.dpadname = "dpad_team_boost";
var_0.splashname = "used_deployable_juicebox";
var_0.shadername = "compass_objpoint_deploy_juiced_friendly";
var_0.headiconoffset = 25;
var_0.lifespan = 90.0;
var_0.usexp = 0;
var_0.vodestroyed = "ballistic_vest_destroyed";
var_0.deployedsfx = "mp_vest_deployed_ui";
var_0.onusesfx = "ammo_crate_use";
var_0.onusecallback = ::onusedeployable_juicebox;
var_0.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_0.usetime = 500;
var_0.maxhealth = 300;
var_0.damagefeedback = "deployable_bag";
var_0.deathweaponinfo = "deployable_ammo_mp";
var_0.killxp = 0;
var_0.allowmeleedamage = 0;
var_0.allowgrenadedamage = 0;
var_0.maxuses = 3;
level.custom_juicebox_logic = ::custom_juicebox_logic;
maps\mp\alien\_deployablebox::init_deployable( "deployable_juicebox", var_0 );
}
specialammo_init()
{
var_0 = "";
var_1 = "dpad_team_ammo_in";
var_2 = spawnstruct();
var_2.weaponinfo = "aliendeployable_crate_marker_mp";
var_2.modelbase = "mp_weapon_alien_crate";
var_2.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_INCENDIARYAMMO_PICKUP";
var_2.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKING";
var_2.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN";
var_2.streakname = "deployable_specialammo_in";
var_2.dpadname = "dpad_team_ammo_in";
var_2.splashname = "used_deployable_in_ammo";
var_2.shadername = "compass_objpoint_deploy_grenades_friendly";
var_2.headiconoffset = 25;
var_2.lifespan = 90.0;
var_2.usexp = 0;
var_2.vodestroyed = "ballistic_vest_destroyed";
var_2.deployedsfx = "mp_vest_deployed_ui";
var_2.onusesfx = "ammo_crate_use";
var_2.onusecallback = ::default_specialammo_onusedeployable;
var_2.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_2.usetime = 500;
var_2.maxhealth = 150;
var_2.damagefeedback = "deployable_bag";
var_2.deathweaponinfo = "deployable_specialammo_mp";
var_2.killxp = 0;
var_2.allowmeleedamage = 0;
var_2.allowgrenadedamage = 0;
var_2.maxuses = 3;
if ( maps\mp\alien\_utility::is_chaos_mode() )
var_2.maxuses = 1;
maps\mp\alien\_deployablebox::init_deployable( "deployable_specialammo_in", var_2 );
var_2 = spawnstruct();
var_2.weaponinfo = "aliendeployable_crate_marker_mp";
var_2.modelbase = "mp_weapon_alien_crate";
var_2.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_EXPLOSIVEAMMO_PICKUP";
var_2.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKING";
var_2.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN";
var_2.streakname = "deployable_specialammo_explo";
var_2.dpadname = "dpad_team_ammo_explo";
var_2.splashname = "used_deployable_exp_ammo";
var_2.shadername = "compass_objpoint_deploy_grenades_friendly";
var_2.headiconoffset = 25;
var_2.lifespan = 90.0;
var_2.usexp = 0;
var_2.vodestroyed = "ballistic_vest_destroyed";
var_2.deployedsfx = "mp_vest_deployed_ui";
var_2.onusesfx = "ammo_crate_use";
var_2.onusecallback = ::default_specialammo_onusedeployable;
var_2.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_2.usetime = 500;
var_2.maxhealth = 150;
var_2.damagefeedback = "deployable_bag";
var_2.deathweaponinfo = "deployable_specialammo_mp";
var_2.killxp = 0;
var_2.allowmeleedamage = 0;
var_2.allowgrenadedamage = 0;
var_2.maxuses = 3;
if ( maps\mp\alien\_utility::is_chaos_mode() )
var_2.maxuses = 1;
maps\mp\alien\_deployablebox::init_deployable( "deployable_specialammo_explo", var_2 );
var_2 = spawnstruct();
var_2.weaponinfo = "aliendeployable_crate_marker_mp";
var_2.modelbase = "mp_weapon_alien_crate";
var_2.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_STUNAMMO_PICKUP";
var_2.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKING";
var_2.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN";
var_2.streakname = "deployable_specialammo";
var_2.dpadname = "dpad_team_ammo_stun";
var_2.splashname = "used_deployable_stun_ammo";
var_2.shadername = "compass_objpoint_deploy_grenades_friendly";
var_2.headiconoffset = 25;
var_2.lifespan = 90.0;
var_2.usexp = 0;
var_2.vodestroyed = "ballistic_vest_destroyed";
var_2.deployedsfx = "mp_vest_deployed_ui";
var_2.onusesfx = "ammo_crate_use";
var_2.onusecallback = ::default_specialammo_onusedeployable;
var_2.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_2.usetime = 500;
var_2.maxhealth = 150;
var_2.damagefeedback = "deployable_bag";
var_2.deathweaponinfo = "deployable_specialammo_mp";
var_2.killxp = 0;
var_2.allowmeleedamage = 0;
var_2.allowgrenadedamage = 0;
var_2.maxuses = 3;
if ( maps\mp\alien\_utility::is_chaos_mode() )
var_2.maxuses = 1;
maps\mp\alien\_deployablebox::init_deployable( "deployable_specialammo", var_2 );
var_2 = spawnstruct();
var_2.weaponinfo = "aliendeployable_crate_marker_mp";
var_2.modelbase = "mp_weapon_alien_crate";
var_2.hintstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_APAMMO_PICKUP";
var_2.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKING";
var_2.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN";
var_2.streakname = "deployable_specialammo_ap";
var_2.dpadname = "dpad_team_ammo_ap";
var_2.splashname = "used_deployable_ap_ammo";
var_2.shadername = "compass_objpoint_deploy_grenades_friendly";
var_2.headiconoffset = 25;
var_2.lifespan = 90.0;
var_2.usexp = 0;
var_2.vodestroyed = "ballistic_vest_destroyed";
var_2.deployedsfx = "mp_vest_deployed_ui";
var_2.onusesfx = "ammo_crate_use";
var_2.onusecallback = ::default_specialammo_onusedeployable;
var_2.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_2.usetime = 500;
var_2.maxhealth = 150;
var_2.damagefeedback = "deployable_bag";
var_2.deathweaponinfo = "deployable_specialammo_mp";
var_2.killxp = 0;
var_2.allowmeleedamage = 0;
var_2.allowgrenadedamage = 0;
var_2.maxuses = 3;
if ( maps\mp\alien\_utility::is_chaos_mode() )
var_2.maxuses = 1;
maps\mp\alien\_deployablebox::init_deployable( "deployable_specialammo_ap", var_2 );
var_2 = spawnstruct();
var_2.weaponinfo = "aliendeployable_crate_marker_mp";
var_2.modelbase = "mp_weapon_alien_crate";
var_2.hintstring = &"ALIENS_PATCH_COMBINED_AMMO_PICKUP";
var_2.capturingstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKING";
var_2.eventstring = &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN";
var_2.streakname = "deployable_specialammo_comb";
var_2.dpadname = "dpad_placeholder_ammo_2";
var_2.splashname = "used_deployable_ammo";
var_2.shadername = "compass_objpoint_deploy_ammo_friendly";
var_2.headiconoffset = 25;
var_2.lifespan = 90.0;
var_2.usexp = 0;
var_2.vodestroyed = "ballistic_vest_destroyed";
var_2.deployedsfx = "mp_vest_deployed_ui";
var_2.onusesfx = "ammo_crate_use";
var_2.onusecallback = ::default_specialammo_onusedeployable;
var_2.canusecallback = maps\mp\alien\_deployablebox::default_canusedeployable;
var_2.usetime = 500;
var_2.maxhealth = 150;
var_2.damagefeedback = "deployable_bag";
var_2.killxp = 0;
var_2.allowmeleedamage = 0;
var_2.allowgrenadedamage = 0;
var_2.maxuses = 3;
maps\mp\alien\_deployablebox::init_deployable( "deployable_specialammo_comb", var_2 );
}
default_specialammo_onusedeployable( var_0, var_1, var_2, var_3 )
{
self endon( "disconnect" );
if ( !isdefined( var_1 ) )
var_1 = 1;
if ( var_1 )
{
thread maps\mp\alien\_persistence::deployablebox_used_track( var_0 );
maps\mp\alien\_utility::deployable_box_onuse_message( var_0 );
}
while ( maps\mp\_utility::ischangingweapon() )
wait 0.05;
if ( !isdefined( var_3 ) )
var_3 = var_0.boxtype;
var_4 = undefined;
var_5 = undefined;
var_6 = 0;
switch ( var_3 )
{
case "deployable_specialammo_ap":
if ( !isdefined( self.special_ammocount_ap ) )
self.special_ammocount_ap = [];
var_5 = "piercing";
break;
case "deployable_specialammo_in":
if ( !isdefined( self.special_ammocount_in ) )
self.special_ammocount_in = [];
var_5 = "incendiary";
break;
case "deployable_specialammo":
if ( !isdefined( self.special_ammocount ) )
self.special_ammocount = [];
var_5 = "stun";
break;
case "deployable_specialammo_explo":
if ( !isdefined( self.special_ammocount_explo ) )
self.special_ammocount_explo = [];
var_5 = "explosive";
break;
case "deployable_specialammo_comb":
if ( !isdefined( self.special_ammocount_comb ) )
self.special_ammocount_comb = [];
var_5 = "combined";
break;
}
var_7 = self getweaponslistprimaries();
foreach ( var_9 in var_7 )
{
if ( !weapon_can_use_specialammo( var_9 ) && !maps\mp\alien\_utility::is_chaos_mode() )
continue;
var_10 = maps\mp\alien\_utility::give_special_ammo_by_weaponclass( var_0, var_9, var_2 );
if ( var_10 == 0 )
continue;
var_11 = maps\mp\alien\_utility::getrawbaseweaponname( var_9 );
maps\mp\alien\_utility::handle_existing_ammo( var_11, var_9, var_5 );
switch ( var_3 )
{
case "deployable_specialammo_ap":
if ( !isdefined( self.special_ammocount_ap[var_11] ) )
self.special_ammocount_ap[var_11] = 0;
if ( self.special_ammocount_ap[var_11] + var_10 > weaponmaxammo( var_9 ) + weaponclipsize( var_9 ) )
self.special_ammocount_ap[var_11] = weaponmaxammo( var_9 );
if ( self.special_ammocount_ap[var_11] > 0 )
var_6 = 1;
self.special_ammocount_ap[var_11] = self.special_ammocount_ap[var_11] + var_10;
self setweaponammostock( var_9, self.special_ammocount_ap[var_11] );
break;
case "deployable_specialammo_in":
if ( !isdefined( self.special_ammocount_in[var_11] ) )
self.special_ammocount_in[var_11] = 0;
if ( self.special_ammocount_in[var_11] + var_10 > weaponmaxammo( var_9 ) + weaponclipsize( var_9 ) )
self.special_ammocount_in[var_11] = weaponmaxammo( var_9 );
if ( self.special_ammocount_in[var_11] > 0 )
var_6 = 1;
self.special_ammocount_in[var_11] = self.special_ammocount_in[var_11] + var_10;
self setweaponammostock( var_9, self.special_ammocount_in[var_11] );
break;
case "deployable_specialammo":
if ( !isdefined( self.special_ammocount[var_11] ) )
self.special_ammocount[var_11] = 0;
if ( self.special_ammocount[var_11] + var_10 > weaponmaxammo( var_9 ) + weaponclipsize( var_9 ) )
self.special_ammocount[var_11] = weaponmaxammo( var_9 );
if ( self.special_ammocount[var_11] > 0 )
var_6 = 1;
self.special_ammocount[var_11] = self.special_ammocount[var_11] + var_10;
self setweaponammostock( var_9, self.special_ammocount[var_11] );
break;
case "deployable_specialammo_explo":
if ( !isdefined( self.special_ammocount_explo[var_11] ) )
self.special_ammocount_explo[var_11] = 0;
if ( self.special_ammocount_explo[var_11] + var_10 > weaponmaxammo( var_9 ) + weaponclipsize( var_9 ) )
self.special_ammocount_explo[var_11] = weaponmaxammo( var_9 );
if ( self.special_ammocount_explo[var_11] > 0 )
var_6 = 1;
self.special_ammocount_explo[var_11] = self.special_ammocount_explo[var_11] + var_10;
self setweaponammostock( var_9, self.special_ammocount_explo[var_11] );
break;
case "deployable_specialammo_comb":
if ( !isdefined( self.special_ammocount_comb[var_11] ) )
self.special_ammocount_comb[var_11] = 0;
if ( self.special_ammocount_comb[var_11] + var_10 > weaponmaxammo( var_9 ) + weaponclipsize( var_9 ) )
self.special_ammocount_comb[var_11] = weaponmaxammo( var_9 );
if ( self.special_ammocount_comb[var_11] > 0 )
var_6 = 1;
self.special_ammocount_comb[var_11] = self.special_ammocount_comb[var_11] + var_10;
self setweaponammostock( var_9, self.special_ammocount_comb[var_11] );
}
if ( !var_6 && !maps\mp\alien\_utility::is_chaos_mode() )
maps\mp\alien\_utility::zero_out_specialammo_clip( var_9 );
}
var_13 = self getcurrentprimaryweapon();
if ( weapon_can_use_specialammo( var_13 ) && maps\mp\alien\_utility::give_special_ammo_by_weaponclass( var_0, var_13, var_2 ) > 0 || maps\mp\alien\_utility::is_chaos_mode() )
{
switch ( var_5 )
{
case "incendiary":
self.has_incendiary_ammo = 1;
self setclientomnvar( "ui_alien_specialammo", 2 );
break;
case "explosive":
if ( !maps\mp\_utility::_hasperk( "specialty_explosivebullets" ) )
maps\mp\_utility::giveperk( "specialty_explosivebullets", 0 );
self setclientomnvar( "ui_alien_specialammo", 3 );
break;
case "stun":
if ( !maps\mp\_utility::_hasperk( "specialty_bulletdamage" ) )
maps\mp\_utility::giveperk( "specialty_bulletdamage", 0 );
self setclientomnvar( "ui_alien_specialammo", 1 );
break;
case "piercing":
if ( !maps\mp\_utility::_hasperk( "specialty_armorpiercing" ) )
maps\mp\_utility::giveperk( "specialty_armorpiercing", 0 );
self setclientomnvar( "ui_alien_specialammo", 4 );
break;
case "combined":
if ( !maps\mp\_utility::_hasperk( "specialty_explosivebullets" ) )
maps\mp\_utility::giveperk( "specialty_explosivebullets", 0 );
if ( !maps\mp\_utility::_hasperk( "specialty_bulletdamage" ) )
maps\mp\_utility::giveperk( "specialty_bulletdamage", 0 );
if ( !maps\mp\_utility::_hasperk( "specialty_armorpiercing" ) )
maps\mp\_utility::giveperk( "specialty_armorpiercing", 0 );
self.has_incendiary_ammo = 1;
self setclientomnvar( "ui_alien_specialammo", 5 );
break;
}
}
if ( maps\mp\alien\_utility::is_chaos_mode() )
{
var_14 = undefined;
if ( var_5 != "incendiary" )
self.has_incendiary_ammo = undefined;
else if ( var_5 != "stun" )
var_14 = "specialty_bulletdamage";
else if ( var_5 != "piercing" )
var_14 = "specialty_armorpiercing";
else if ( var_5 != "explosive" )
var_14 = "specialty_explosivebullets";
if ( isdefined( var_14 ) )
{
if ( maps\mp\_utility::_hasperk( var_14 ) )
{
maps\mp\_utility::_unsetperk( var_14 );
return;
}
return;
}
}
else
{
thread maps\mp\alien\_utility::special_ammo_weapon_change_monitor( var_5 );
thread maps\mp\alien\_utility::special_ammo_weapon_fire_monitor( var_5 );
}
}
addratiomaxstockcombinedtoallweapons( var_0 )
{
var_1 = self getweaponslistprimaries();
foreach ( var_3 in var_1 )
{
if ( maps\mp\alien\_utility::is_incompatible_weapon( var_3 ) )
continue;
if ( maps\mp\gametypes\_weapons::isbulletweapon( var_3 ) )
{
if ( var_3 != "iw6_alienminigun_mp" && var_3 != "iw6_alienminigun1_mp" && var_3 != "iw6_alienminigun2_mp" && var_3 != "iw6_alienminigun3_mp" && var_3 != "iw6_alienminigun4_mp" && weapontype( var_3 ) != "riotshield" )
{
var_4 = maps\mp\alien\_utility::getrawbaseweaponname( var_3 );
var_5 = self getweaponammostock( var_3 );
var_6 = weaponmaxammo( var_3 );
var_7 = var_5 + var_6 * var_0;
self setweaponammostock( var_3, int( min( var_7, var_6 ) ) );
}
}
}
}
addfullcombinedcliptoallweapons()
{
var_0 = self getweaponslistprimaries();
foreach ( var_2 in var_0 )
{
if ( maps\mp\alien\_utility::is_incompatible_weapon( var_2 ) )
continue;
if ( maps\mp\gametypes\_weapons::isbulletweapon( var_2 ) )
{
if ( var_2 != "iw6_alienminigun_mp" && var_2 != "iw6_alienminigun1_mp" && var_2 != "iw6_alienminigun2_mp" && var_2 != "iw6_alienminigun3_mp" && var_2 != "iw6_alienminigun4_mp" && weapontype( var_2 ) != "riotshield" )
{
var_3 = maps\mp\alien\_utility::getrawbaseweaponname( var_2 );
var_4 = weaponclipsize( var_2 );
if ( maps\mp\alien\_utility::is_akimbo_weapon( var_2 ) )
{
self setweaponammoclip( var_2, var_4, "left" );
self setweaponammoclip( var_2, var_4, "right" );
}
else
self setweaponammoclip( var_2, var_4 );
}
}
}
}
weapon_can_use_specialammo( var_0 )
{
if ( maps\mp\gametypes\_weapons::isbulletweapon( var_0 ) && !maps\mp\alien\_utility::is_incompatible_weapon( var_0 ) )
return 1;
return 0;
}
onusedeployable_randombox( var_0 )
{
thread maps\mp\alien\_persistence::deployablebox_used_track( var_0 );
giverandomdeployable( var_0 );
}
giverandomdeployable( var_0 )
{
choose_item_inside_randombox( var_0 );
}
choose_item_inside_randombox( var_0 )
{
var_1 = [];
var_2 = 0;
var_3 = var_0.upgrade_rank;
foreach ( var_7, var_5 in level.randombox_items )
{
if ( var_3 == 0 )
var_2 = var_5.level_0_weight;
else if ( var_3 == 1 )
var_2 = var_5.level_1_weight;
else if ( var_3 == 2 )
var_2 = var_5.level_2_weight;
else if ( var_3 == 3 )
var_2 = var_5.level_3_weight;
else if ( var_3 == 4 )
var_2 = var_5.level_4_weight;
for ( var_6 = 0; var_6 < var_2; var_6++ )
var_1[var_1.size] = var_5;
}
var_8 = var_1[randomintrange( 0, var_1.size )];
give_randombox_item( var_8, var_0 );
}
give_randombox_item( var_0, var_1 )
{
switch ( var_0.ref )
{
case "ammo":
give_ammo_item( var_1 );
break;
case "soflam":
give_soflam_item( var_1 );
break;
case "flare":
give_flare_item( var_1 );
break;
case "leash":
give_leash_item( var_1 );
break;
case "armor":
give_armor_item( var_1 );
break;
case "boost":
give_boost_item( var_1 );
break;
case "explosives":
give_explosive_item( var_1 );
break;
case "trophy":
give_trophy_item( var_1 );
break;
case "feral":
give_feral_item( var_1 );
break;
case "specialammo":
give_special_ammo( var_1 );
break;
}
}
give_ammo_item( var_0 )
{
addalienweaponammo( var_0 );
maps\mp\_utility::setlowermessage( "ammo_message", &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN", 3 );
}
give_soflam_item( var_0 )
{
maps\mp\_utility::_giveweapon( "aliensoflam_mp" );
maps\mp\_utility::setlowermessage( "soflam_messgae", &"ALIEN_COLLECTIBLES_FOUND_SOFLAM", 3 );
}
give_flare_item( var_0 )
{
if ( self hasweapon( "alienthrowingknife_mp" ) )
self takeweapon( "alienthrowingknife_mp" );
if ( self hasweapon( "alientrophy_mp" ) )
self takeweapon( "alientrophy_mp" );
if ( isdefined( level.give_randombox_item_check ) )
self [[ level.give_randombox_item_check ]]( "flare" );
self setoffhandsecondaryclass( "flash" );
maps\mp\_utility::_giveweapon( "alienflare_mp" );
self setweaponammoclip( "alienflare_mp", 1 );
maps\mp\_utility::setlowermessage( "flare_message", &"ALIEN_COLLECTIBLES_FOUND_FLARE", 3 );
}
give_leash_item( var_0 )
{
self setoffhandsecondaryclass( "throwingknife" );
maps\mp\_utility::_giveweapon( "alienthrowingknife_mp" );
maps\mp\_utility::setlowermessage( "pet_leash_message", &"ALIEN_COLLECTIBLES_FOUND_PET_LEASH", 3 );
}
give_armor_item( var_0 )
{
if ( !maps\mp\_utility::isjuggernaut() )
{
var_0.boxtype = "deployable_vest";
onusedeployable_vest( var_0 );
maps\mp\_utility::setlowermessage( "armor_mesage", &"ALIEN_COLLECTIBLES_DEPLOYED_VEST", 3 );
}
}
give_explosive_item( var_0 )
{
var_0.boxtype = "deployable_explosives";
onusedeployable_explosives( var_0 );
maps\mp\_utility::setlowermessage( "explosives_message", &"ALIEN_COLLECTIBLES_DEPLOYABLE_EXPLOSIVES_TAKEN", 3 );
}
give_boost_item( var_0 )
{
onusedeployable_juicebox( var_0 );
maps\mp\_utility::setlowermessage( "mortar_shell_message", &"ALIEN_COLLECTIBLES_DEPLOYABLE_BOOST_TAKEN", 3 );
}
give_feral_item( var_0 )
{
onusedeployable_adrenaline( var_0 );
maps\mp\_utility::setlowermessage( "feral_message", &"ALIEN_COLLECTIBLES_DEPLOYABLE_ADRENALINE_TAKEN", 3 );
}
give_trophy_item( var_0 )
{
if ( self hasweapon( "alienthrowingknife_mp" ) )
self takeweapon( "alienthrowingknife_mp" );
if ( self hasweapon( "alienflare_mp" ) )
self takeweapon( "alienflare_mp" );
if ( isdefined( level.give_randombox_item_check ) )
self [[ level.give_randombox_item_check ]]( "trophy" );
self setoffhandsecondaryclass( "flash" );
self giveweapon( "alientrophy_mp", 0 );
self setweaponammoclip( "alientrophy_mp", 1 );
maps\mp\_utility::setlowermessage( "trophy_message", &"ALIEN_COLLECTIBLES_FOUND_TROPHY", 3 );
}
give_special_ammo( var_0 )
{
var_1 = maps\mp\alien\_utility::get_specialized_ammo_type();
if ( var_1 == "none" )
var_1 = common_scripts\utility::random( [ "stun_ammo", "incendiary_ammo", "ap_ammo", "explosive_ammo" ] );
switch ( var_1 )
{
case "stun_ammo":
default_specialammo_onusedeployable( var_0, 0, 0, "deployable_specialammo" );
maps\mp\_utility::setlowermessage( "sp_ammo", &"ALIENS_PATCH_STUN_AMMO_TAKEN", 3 );
break;
case "incendiary_ammo":
default_specialammo_onusedeployable( var_0, 0, 0, "deployable_specialammo_in" );
maps\mp\_utility::setlowermessage( "sp_ammo", &"ALIEN_COLLECTIBLES_INCENDIARY_AMMO_TAKEN", 3 );
break;
case "ap_ammo":
default_specialammo_onusedeployable( var_0, 0, 0, "deployable_specialammo_ap" );
maps\mp\_utility::setlowermessage( "sp_ammo", &"ALIEN_COLLECTIBLES_AP_AMMO_TAKEN", 3 );
break;
case "explosive_ammo":
default_specialammo_onusedeployable( var_0, 0, 0, "deployable_specialammo_explo" );
maps\mp\_utility::setlowermessage( "sp_ammo", &"ALIEN_COLLECTIBLES_EXPLOSIVE_AMMO_TAKEN", 3 );
break;
case "combined_ammo":
default_specialammo_onusedeployable( var_0, 0, 0, "deployable_specialammo_comb" );
maps\mp\_utility::setlowermessage( "sp_ammo", &"ALIEN_COLLECTIBLES_DEPLOYABLE_AMMO_TAKEN", 3 );
break;
}
}
randombox_table_init( var_0, var_1 )
{
for ( var_2 = var_0; var_2 < var_1; var_2++ )
{
var_3 = spawnstruct();
var_3.ref = tablelookup( level.randombox_table, 0, var_2, 1 );
if ( var_3.ref == "" )
break;
var_3.level_0_weight = int( tablelookup( level.randombox_table, 0, var_2, 2 ) );
var_3.level_1_weight = int( tablelookup( level.randombox_table, 0, var_2, 3 ) );
var_3.level_2_weight = int( tablelookup( level.randombox_table, 0, var_2, 4 ) );
var_3.level_3_weight = int( tablelookup( level.randombox_table, 0, var_2, 5 ) );
var_3.level_4_weight = int( tablelookup( level.randombox_table, 0, var_2, 6 ) );
level.randombox_items[var_3.ref] = var_3;
}
}
onusedeployable_currency( var_0 )
{
maps\mp\alien\_deployablebox::default_onusedeployable( var_0 );
givecurrency( var_0 );
}
givecurrency( var_0 )
{
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 0 )
maps\mp\alien\_persistence::give_player_currency( level.deployable_currency_ranks[0] );
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 1 )
maps\mp\alien\_persistence::give_player_currency( level.deployable_currency_ranks[1] );
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 2 )
maps\mp\alien\_persistence::give_player_currency( level.deployable_currency_ranks[2] );
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 3 )
maps\mp\alien\_persistence::give_player_currency( level.deployable_currency_ranks[3] );
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 4 )
maps\mp\alien\_persistence::give_player_currency( level.deployable_currency_ranks[4] );
}
onusedeployable_adrenaline( var_0 )
{
thread maps\mp\alien\_persistence::deployablebox_used_track( var_0 );
if ( isdefined( level.custom_adrenalinebox_logic ) )
self thread [[ level.custom_adrenalinebox_logic ]]( level.deployablebox_adrenalinebox_rank[var_0.upgrade_rank], var_0.upgrade_rank );
}
custom_adrenalinebox_logic( var_0, var_1 )
{
self endon( "death" );
self endon( "faux_spawn" );
self endon( "disconnect" );
self endon( "unset_adrenaline" );
level endon( "game_ended" );
if ( isdefined( self.adrenalinetime ) )
self.adrenalinetime = self.adrenalinetime + var_0;
else
self.adrenalinetime = var_0;
if ( isdefined( self.adrenalinetime ) && self.adrenalinetime > level.deployablebox_adrenalinebox_max )
self.adrenalinetime = level.deployablebox_adrenalinebox_max;
if ( isdefined( self.isferal ) && self.isferal )
return;
self.isferal = 1;
self.movespeedscaler = 1.1;
maps\mp\_utility::giveperk( "specialty_selectivehearing", 0 );
maps\mp\alien\_utility::restore_client_fog( 0 );
self playlocalsound( "alien_feral_instinct_bed" );
thread maps\mp\alien\_outline_proto::set_alien_outline();
thread unsetadrenalineondeath();
var_2 = var_0 * 1000 + gettime();
if ( var_1 == 1 )
self.movespeedscaler = 1.2;
if ( var_1 == 2 )
{
self.movespeedscaler = 1.2;
activateregenfaster();
}
if ( var_1 == 3 )
{
self.movespeedscaler = 1.2;
activateregenfaster();
}
if ( var_1 == 4 )
{
maps\mp\_utility::giveperk( "specialty_longersprint", 0 );
activateregenfaster();
self.movespeedscaler = 1.2;
}
maps\mp\alien\_perkfunctions::updatecombatspeedscalar();
while ( isdefined( self.adrenalinetime ) )
{
wait 1;
self.adrenalinetime--;
if ( self.adrenalinetime < 0 )
{
self.adrenalinetime = undefined;
self setclientdvar( "ui_juiced_end_milliseconds", 0 );
break;
}
var_2 = self.adrenalinetime * 1000 + gettime();
}
custom_unset_adrenaline();
}
activateregenfaster()
{
self.regenspeed = level.regenhealthmod;
self.ishealthboosted = 1;
}
unsetadrenalineondeath()
{
self endon( "disconnect" );
self endon( "unset_adrenaline" );
common_scripts\utility::waittill_any( "death", "faux_spawn", "last_stand" );
thread custom_unset_adrenaline( 1 );
}
custom_unset_adrenaline( var_0 )
{
maps\mp\_utility::_unsetperk( "specialty_longersprint" );
maps\mp\_utility::_unsetperk( "specialty_selectivehearing" );
self.ishealthboosted = undefined;
self.regenspeed = 1;
if ( maps\mp\alien\_perk_utility::has_perk( "perk_medic" ) )
{
self.movespeedscaler = maps\mp\alien\_perk_utility::perk_getmovespeedscalar();
if ( maps\mp\alien\_perk_utility::has_perk( "perk_medic", [ 2, 3, 4 ] ) )
maps\mp\_utility::giveperk( "specialty_longersprint", 0 );
}
else
self.movespeedscaler = maps\mp\alien\_prestige::prestige_getmoveslowscalar();
maps\mp\gametypes\_weapons::updatemovespeedscale();
if ( !maps\mp\alien\_utility::is_true( level.easter_egg_lodge_sign_active ) )
thread maps\mp\alien\_outline_proto::unset_alien_outline();
maps\mp\alien\_utility::restore_client_fog( 0 );
self.isferal = undefined;
if ( !maps\mp\alien\_utility::is_true( level.easter_egg_lodge_sign_active ) )
self notify( "unset_adrenaline" );
}
onusedeployable_juicebox( var_0 )
{
thread maps\mp\alien\_persistence::deployablebox_used_track( var_0 );
if ( isdefined( level.custom_juicebox_logic ) )
self thread [[ level.custom_juicebox_logic ]]( level.deployablebox_juicebox_rank[var_0.upgrade_rank], var_0.upgrade_rank );
}
custom_juicebox_logic( var_0, var_1, var_2 )
{
self endon( "death" );
self endon( "faux_spawn" );
self endon( "disconnect" );
self endon( "unset_juiced" );
level endon( "game_ended" );
if ( isdefined( self.juicetime ) )
self.juicetime = self.juicetime + var_0;
else
self.juicetime = var_0;
if ( isdefined( self.juicetime ) && self.juicetime > level.deployablebox_juicebox_max )
self.juicetime = level.deployablebox_juicebox_max;
if ( maps\mp\alien\_utility::is_true( var_2 ) )
self.juicetime = var_0;
if ( isdefined( self.isjuiced ) && self.isjuiced )
return;
self.isjuiced = 1;
maps\mp\_utility::giveperk( "specialty_fastreload", 0 );
maps\mp\_utility::giveperk( "specialty_quickdraw", 0 );
maps\mp\_utility::giveperk( "specialty_stalker", 0 );
maps\mp\_utility::giveperk( "specialty_fastoffhand", 0 );
maps\mp\_utility::giveperk( "specialty_fastsprintrecovery", 0 );
maps\mp\_utility::giveperk( "specialty_quickswap", 0 );
maps\mp\_utility::giveperk( "specialty_fastermelee", 0 );
if ( var_1 == 2 || var_1 == 3 || var_1 == 4 )
self.drillspeedmodifier = 0.75;
else
self.drillspeedmodifier = 1.0;
thread unsetjuiceboxondeath();
var_3 = var_0 * 1000 + gettime();
if ( !isai( self ) )
self setclientdvar( "ui_juiced_end_milliseconds", var_3 );
while ( isdefined( self.juicetime ) )
{
wait 1;
self.juicetime--;
if ( self.juicetime < 0 )
{
self.juicetime = undefined;
self setclientdvar( "ui_juiced_end_milliseconds", 0 );
break;
}
var_3 = self.juicetime * 1000 + gettime();
self setclientdvar( "ui_juiced_end_milliseconds", var_3 );
}
custom_unset_juicebox();
}
unsetjuiceboxondeath()
{
self endon( "disconnect" );
self endon( "unset_juiced" );
common_scripts\utility::waittill_any( "death", "faux_spawn", "last_stand" );
thread custom_unset_juicebox( 1 );
}
custom_unset_juicebox( var_0 )
{
var_1 = maps\mp\alien\_persistence::get_perk_0_level();
if ( maps\mp\_utility::isjuggernaut() )
{
if ( isdefined( self.juggmovespeedscaler ) )
self.movespeedscaler = self.juggmovespeedscaler;
else
self.movespeedscaler = 0.7;
}
if ( maps\mp\alien\_perk_utility::has_perk( "perk_medic", [ 2, 3, 4 ] ) )
maps\mp\_utility::giveperk( "specialty_longersprint", 0 );
maps\mp\_utility::_unsetperk( "specialty_fastreload" );
self.drillspeedmodifier = 1.0;
maps\mp\_utility::_unsetperk( "specialty_quickdraw" );
maps\mp\_utility::_unsetperk( "specialty_stalker" );
maps\mp\_utility::_unsetperk( "specialty_fastoffhand" );
maps\mp\_utility::_unsetperk( "specialty_fastsprintrecovery" );
maps\mp\_utility::_unsetperk( "specialty_quickswap" );
maps\mp\_utility::_unsetperk( "specialty_fastermelee" );
if ( maps\mp\alien\_perk_utility::has_perk( "perk_bullet_damage" ) )
{
switch ( var_1 )
{
case 0:
maps\mp\alien\_perkfunctions::set_perk_bullet_damage_0();
break;
case 1:
maps\mp\alien\_perkfunctions::set_perk_bullet_damage_1();
break;
case 2:
maps\mp\alien\_perkfunctions::set_perk_bullet_damage_2();
break;
case 3:
maps\mp\alien\_perkfunctions::set_perk_bullet_damage_3();
break;
case 4:
maps\mp\alien\_perkfunctions::set_perk_bullet_damage_4();
break;
}
}
self.isjuiced = undefined;
if ( !isai( self ) )
self setclientdvar( "ui_juiced_end_milliseconds", 0 );
self notify( "unset_juiced" );
}
onusedeployable_ammo( var_0 )
{
maps\mp\alien\_deployablebox::default_onusedeployable( var_0 );
addalienweaponammo( var_0 );
}
addratiomaxstocktoallweapons( var_0 )
{
var_1 = self getweaponslistprimaries();
foreach ( var_3 in var_1 )
{
if ( maps\mp\alien\_utility::is_incompatible_weapon( var_3 ) )
continue;
if ( maps\mp\gametypes\_weapons::isbulletweapon( var_3 ) )
{
if ( var_3 != "iw6_alienminigun_mp" && var_3 != "iw6_alienminigun1_mp" && var_3 != "iw6_alienminigun2_mp" && var_3 != "iw6_alienminigun3_mp" && var_3 != "iw6_alienminigun4_mp" && weapontype( var_3 ) != "riotshield" )
{
var_4 = maps\mp\alien\_utility::getrawbaseweaponname( var_3 );
if ( maps\mp\alien\_utility::player_has_specialized_ammo( var_4 ) )
{
if ( isdefined( self.stored_ammo[var_4] ) )
{
if ( self.stored_ammo[var_4].ammostock < weaponmaxammo( var_3 ) )
{
var_5 = weaponmaxammo( var_3 );
var_6 = self.stored_ammo[var_4].ammostock + var_5 * var_0;
self.stored_ammo[var_4].ammostock = int( floor( var_6 ) );
}
}
}
else
{
var_7 = self getweaponammostock( var_3 );
var_5 = weaponmaxammo( var_3 );
var_6 = var_7 + var_5 * var_0;
self setweaponammostock( var_3, int( min( var_6, var_5 ) ) );
}
}
}
}
}
addfullcliptoallweapons( var_0 )
{
var_1 = self getweaponslistprimaries();
foreach ( var_3 in var_1 )
{
if ( maps\mp\alien\_utility::is_incompatible_weapon( var_3 ) )
continue;
if ( maps\mp\gametypes\_weapons::isbulletweapon( var_3 ) )
{
if ( var_3 != "iw6_alienminigun_mp" && var_3 != "iw6_alienminigun1_mp" && var_3 != "iw6_alienminigun2_mp" && var_3 != "iw6_alienminigun3_mp" && var_3 != "iw6_alienminigun4_mp" && weapontype( var_3 ) != "riotshield" )
{
var_4 = maps\mp\alien\_utility::getrawbaseweaponname( var_3 );
if ( maps\mp\alien\_utility::player_has_specialized_ammo( var_4 ) )
continue;
else
{
var_5 = weaponclipsize( var_3 );
if ( isdefined( var_0 ) )
var_5 = int( self getweaponammoclip( var_3 ) + var_5 * var_0 );
if ( maps\mp\alien\_utility::is_akimbo_weapon( var_3 ) )
{
var_6 = var_5;
var_7 = var_5;
if ( isdefined( var_0 ) )
{
var_6 = int( self getweaponammoclip( var_3, "left" ) + var_5 * var_0 );
var_7 = int( self getweaponammoclip( var_3, "right" ) + var_5 * var_0 );
}
self setweaponammoclip( var_3, var_6, "left" );
self setweaponammoclip( var_3, var_7, "right" );
}
else
self setweaponammoclip( var_3, var_5 );
}
}
}
}
}
addalienweaponammo( var_0 )
{
var_1 = self getweaponslistprimaries();
var_2 = check_for_nerf_min_ammo();
if ( var_2 != 1.0 )
{
addratiomaxstocktoallweapons( var_2 );
if ( var_0.upgrade_rank == 3 || var_0.upgrade_rank == 4 )
addfullcliptoallweapons( var_2 );
return;
}
switch ( var_0.upgrade_rank )
{
case 0:
addratiomaxstocktoallweapons( 0.4 );
break;
case 1:
addratiomaxstocktoallweapons( 0.7 );
break;
case 2:
addratiomaxstocktoallweapons( 1.0 );
break;
case 3:
addratiomaxstocktoallweapons( 1.0 );
addfullcliptoallweapons();
break;
case 4:
addratiomaxstocktoallweapons( 1.0 );
addfullcliptoallweapons();
break;
}
}
check_for_nerf_min_ammo()
{
return maps\mp\alien\_prestige::prestige_getminammo();
}
onusedeployable_vest( var_0 )
{
maps\mp\alien\_deployablebox::default_onusedeployable( var_0 );
var_1 = 0;
if ( isdefined( self.bodyarmorhp ) )
var_1 = self.bodyarmorhp;
var_2 = get_adjusted_armor( var_1, var_0.upgrade_rank );
maps\mp\alien\_damage::setbodyarmor( var_2 );
self notify( "enable_armor" );
}
get_adjusted_armor( var_0, var_1 )
{
if ( var_0 + level.deployablebox_vest_rank[var_1] > level.deployablebox_vest_max )
return level.deployablebox_vest_max;
return var_0 + level.deployablebox_vest_rank[var_1];
}
onusedeployable_explosives( var_0 )
{
maps\mp\alien\_deployablebox::default_onusedeployable( var_0 );
fillteamexplosives( var_0 );
}
fillteamexplosives( var_0 )
{
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 0 )
{
self setoffhandprimaryclass( "other" );
filloffhandweapons( "aliensemtex_mp", 2 );
filllaunchers( var_0, 4 );
}
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 1 )
{
self setoffhandprimaryclass( "other" );
filloffhandweapons( "alienmortar_shell_mp", 2 );
filllaunchers( var_0, 6 );
}
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 2 )
{
self setoffhandprimaryclass( "other" );
filloffhandweapons( "alienbetty_mp", 2 );
filllaunchers( var_0, 8 );
}
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 3 )
{
self setoffhandprimaryclass( "other" );
filloffhandweapons( "alienclaymore_mp", 4 );
filllaunchers( var_0, 10 );
}
if ( isdefined( var_0.upgrade_rank ) && var_0.upgrade_rank == 4 )
{
self setoffhandprimaryclass( "other" );
filloffhandweapons( "alienbetty_mp", 5 );
filllaunchers( var_0, 12 );
}
}
filloffhandweapons( var_0, var_1 )
{
var_2 = self getweaponslistoffhands();
var_3 = 0;
var_4 = undefined;
var_5 = 0;
foreach ( var_7 in var_2 )
{
if ( var_7 != var_0 )
{
if ( var_7 != "none" && var_7 != "alienthrowingknife_mp" && var_7 != "alienflare_mp" && var_7 != "alientrophy_mp" && var_7 != "iw6_aliendlc21_mp" )
self takeweapon( var_7 );
continue;
}
if ( isdefined( var_7 ) && var_7 != "none" )
{
var_5 = self getammocount( var_7 );
self setweaponammostock( var_7, var_5 + var_1 );
var_3 = 1;
break;
}
}
if ( var_3 == 0 )
{
maps\mp\_utility::_giveweapon( var_0 );
self setweaponammostock( var_0, var_1 );
}
}
filllaunchers( var_0, var_1 )
{
var_2 = self getweaponslistall();
if ( isdefined( var_2 ) )
{
foreach ( var_4 in var_2 )
{
if ( maps\mp\alien\_utility::is_incompatible_weapon( var_4 ) )
continue;
var_5 = weaponclass( var_4 );
var_6 = weaponinventorytype( var_4 );
if ( var_4 != "iw6_alienmk32_mp" && var_4 != "iw6_alienmk321_mp" && var_4 != "iw6_alienmk322_mp" && var_4 != "iw6_alienmk323_mp" && var_4 != "iw6_alienmk324_mp" && var_4 != "aliensoflam_mp" )
{
if ( var_5 == "rocketlauncher" || var_5 == "grenade" )
{
if ( var_6 == "primary" || var_6 == "altmode" )
{
var_7 = weaponclipsize( var_4 );
var_8 = check_for_nerf_min_ammo();
var_1 = int( var_1 * var_8 );
var_9 = self getweaponammostock( var_4 );
var_10 = var_9 + var_1;
var_11 = weaponmaxammo( var_4 );
if ( var_10 > var_11 )
var_10 = var_11;
self setweaponammostock( var_4, var_10 );
}
}
}
}
}
}