IL-GSC/AW/PC/MP/maps/mp/perks/_perkfunctions.gsc
2023-10-27 03:49:01 -04:00

1314 lines
26 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/perks/_perkfunctions.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 101
* Decompile Time: 1760 ms
* Timestamp: 10/27/2023 1:52:35 AM
*******************************************************************/
//Function Number: 1
setcrouchmovement()
{
thread crouchstatelistener();
crouchmovementsetspeed();
}
//Function Number: 2
crouchstatelistener()
{
self endon("death");
self endon("disconnect");
self endon("unsetCrouchMovement");
self notifyonplayercommand("adjustedStance","+stance");
self notifyonplayercommand("adjustedStance","+goStand");
for(;;)
{
common_scripts\utility::waittill_any("adjustedStance","sprint_begin","weapon_change");
wait(0.5);
crouchmovementsetspeed();
}
}
//Function Number: 3
crouchmovementsetspeed()
{
self.stancecrouchmovement = self getstance();
var_00 = 0;
if(isdefined(self.adrenaline_speed_scalar))
{
var_00 = self.adrenaline_speed_scalar;
}
else if(self.stancecrouchmovement == "crouch")
{
var_00 = self.crouch_speed_scalar;
}
else if(maps\mp\_utility::_hasperk("specialty_lightweight"))
{
var_00 = maps\mp\_utility::lightweightscalar();
}
self.movespeedscaler = var_00;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
//Function Number: 4
unsetcrouchmovement()
{
self notify("unsetCrouchMovement");
var_00 = 1;
if(maps\mp\_utility::_hasperk("specialty_lightweight"))
{
var_00 = maps\mp\_utility::lightweightscalar();
}
self.movespeedscaler = var_00;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
//Function Number: 5
setpersonaluav()
{
var_00 = spawn("script_model",self.origin);
var_00.team = self.team;
var_00 makeportableradar(self);
self.personalradar = var_00;
thread radarmover(var_00);
}
//Function Number: 6
radarmover(param_00)
{
level endon("game_ended");
self endon("disconnect");
self endon("personal_uav_remove");
self endon("personal_uav_removed");
for(;;)
{
param_00 moveto(self.origin,0.05);
wait(0.05);
}
}
//Function Number: 7
unsetpersonaluav()
{
if(isdefined(self.personalradar))
{
self notify("personal_uav_removed");
level maps\mp\gametypes\_portable_radar::deleteportableradar(self.personalradar);
self.personalradar = undefined;
}
}
//Function Number: 8
setoverkillpro()
{
}
//Function Number: 9
unsetoverkillpro()
{
}
//Function Number: 10
setempimmune()
{
}
//Function Number: 11
unsetempimmune()
{
}
//Function Number: 12
setautospot()
{
autospotadswatcher();
autospotdeathwatcher();
}
//Function Number: 13
autospotdeathwatcher()
{
self waittill("death");
self endon("disconnect");
self endon("endAutoSpotAdsWatcher");
level endon("game_ended");
self autospotoverlayoff();
}
//Function Number: 14
unsetautospot()
{
self notify("endAutoSpotAdsWatcher");
self autospotoverlayoff();
}
//Function Number: 15
autospotadswatcher()
{
self endon("death");
self endon("disconnect");
self endon("endAutoSpotAdsWatcher");
level endon("game_ended");
var_00 = 0;
for(;;)
{
wait(0.05);
if(self isusingturret())
{
self autospotoverlayoff();
continue;
}
var_01 = self playerads();
if(var_01 < 1 && var_00)
{
var_00 = 0;
self autospotoverlayoff();
}
if(var_01 < 1 && !var_00)
{
continue;
}
if(var_01 == 1 && !var_00)
{
var_00 = 1;
self autospotoverlayon();
}
}
}
//Function Number: 16
setregenspeed()
{
}
//Function Number: 17
unsetregenspeed()
{
}
//Function Number: 18
setsharpfocus()
{
self setviewkickscale(0.5);
}
//Function Number: 19
unsetsharpfocus()
{
self setviewkickscale(1);
}
//Function Number: 20
setdoubleload()
{
self endon("death");
self endon("disconnect");
self endon("endDoubleLoad");
level endon("game_ended");
for(;;)
{
self waittill("reload");
var_00 = self getweaponslist("primary");
foreach(var_02 in var_00)
{
var_03 = self getweaponammoclip(var_02);
var_04 = weaponclipsize(var_02);
var_05 = var_04 - var_03;
var_06 = self setweaponammostock(var_02);
if(var_03 != var_04 && var_06 > 0)
{
if(var_03 + var_06 >= var_04)
{
self setweaponammoclip(var_02,var_04);
self setweaponammostock(var_02,var_06 - var_05);
continue;
}
self setweaponammoclip(var_02,var_03 + var_06);
if(var_06 - var_05 > 0)
{
self setweaponammostock(var_02,var_06 - var_05);
continue;
}
self setweaponammostock(var_02,0);
}
}
}
}
//Function Number: 21
unsetdoubleload()
{
self notify("endDoubleLoad");
}
//Function Number: 22
setmarksman(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
if(!isdefined(param_00))
{
param_00 = 10;
}
else
{
param_00 = int(param_00) * 2;
}
maps\mp\_utility::setrecoilscale(param_00);
self.recoilscale = param_00;
}
//Function Number: 23
unsetmarksman()
{
maps\mp\_utility::setrecoilscale(0);
self.recoilscale = 0;
}
//Function Number: 24
setstunresistance(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
if(!isdefined(param_00))
{
self.stunscaler = 0.5;
return;
}
self.stunscaler = int(param_00) / 10;
}
//Function Number: 25
unsetstunresistance()
{
self.stunscaler = 1;
}
//Function Number: 26
setsteadyaimpro()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
self setaimspreadmovementscale(0.5);
}
//Function Number: 27
unsetsteadyaimpro()
{
self notify("end_SteadyAimPro");
self setaimspreadmovementscale(1);
}
//Function Number: 28
blastshieldusetracker(param_00,param_01)
{
self endon("death");
self endon("disconnect");
self endon("end_perkUseTracker");
level endon("game_ended");
for(;;)
{
self waittill("empty_offhand");
if(!common_scripts\utility::isoffhandweaponenabled())
{
continue;
}
self [[ param_01 ]](maps\mp\_utility::_hasperk("_specialty_blastshield"));
}
}
//Function Number: 29
perkusedeathtracker()
{
self endon("disconnect");
self waittill("death");
self._useperkenabled = undefined;
}
//Function Number: 30
setrearview()
{
}
//Function Number: 31
unsetrearview()
{
self notify("end_perkUseTracker");
}
//Function Number: 32
setendgame()
{
if(isdefined(self.endgame))
{
return;
}
self.maxhealth = maps\mp\gametypes\_tweakables::gettweakablevalue("player","maxhealth") * 4;
self.health = self.maxhealth;
self.endgame = 1;
self.attackertable[0] = "";
self visionsetnakedforplayer("end_game",5);
thread endgamedeath(7);
self.hasdonecombat = 1;
}
//Function Number: 33
unsetendgame()
{
self notify("stopEndGame");
self.endgame = undefined;
maps\mp\_utility::revertvisionsetforplayer();
if(!isdefined(self.endgametimer))
{
return;
}
self.endgametimer maps\mp\gametypes\_hud_util::destroyelem();
self.endgameicon maps\mp\gametypes\_hud_util::destroyelem();
}
//Function Number: 34
endgamedeath(param_00)
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
level endon("game_ended");
self endon("stopEndGame");
wait(param_00 + 1);
maps\mp\_utility::_suicide();
}
//Function Number: 35
stancestatelistener()
{
self endon("death");
self endon("disconnect");
self notifyonplayercommand("adjustedStance","+stance");
for(;;)
{
self waittill("adjustedStance");
if(self.movespeedscaler != 0)
{
continue;
}
unsetsiege();
}
}
//Function Number: 36
jumpstatelistener()
{
self endon("death");
self endon("disconnect");
self notifyonplayercommand("jumped","+goStand");
for(;;)
{
self waittill("jumped");
if(self.movespeedscaler != 0)
{
continue;
}
unsetsiege();
}
}
//Function Number: 37
unsetsiege()
{
self.movespeedscaler = level.baseplayermovescale;
self resetspreadoverride();
maps\mp\gametypes\_weapons::updatemovespeedscale();
self playerrecoilscaleoff();
self allowjump(1);
}
//Function Number: 38
setsaboteur()
{
self.objectivescaler = 2;
}
//Function Number: 39
unsetsaboteur()
{
self.objectivescaler = 1;
}
//Function Number: 40
setlightweight(param_00)
{
if(!isdefined(param_00))
{
param_00 = 10;
}
self.movespeedscaler = maps\mp\_utility::lightweightscalar(param_00);
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
//Function Number: 41
unsetlightweight()
{
self.movespeedscaler = level.baseplayermovescale;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
//Function Number: 42
setblackbox()
{
self.killstreakscaler = 1.5;
}
//Function Number: 43
unsetblackbox()
{
self.killstreakscaler = 1;
}
//Function Number: 44
setsteelnerves()
{
maps\mp\_utility::giveperk("specialty_bulletaccuracy",1);
maps\mp\_utility::giveperk("specialty_holdbreath",0);
}
//Function Number: 45
unsetsteelnerves()
{
maps\mp\_utility::_unsetperk("specialty_bulletaccuracy");
maps\mp\_utility::_unsetperk("specialty_holdbreath");
}
//Function Number: 46
setdelaymine()
{
}
//Function Number: 47
unsetdelaymine()
{
}
//Function Number: 48
setlocaljammer()
{
if(!maps\mp\_utility::isemped())
{
self setmotiontrackervisible(0);
}
}
//Function Number: 49
unsetlocaljammer()
{
self setmotiontrackervisible(1);
}
//Function Number: 50
setthermal()
{
self thermalvisionon();
}
//Function Number: 51
unsetthermal()
{
self thermalvisionoff();
}
//Function Number: 52
setonemanarmy()
{
thread onemanarmyweaponchangetracker();
}
//Function Number: 53
unsetonemanarmy()
{
self notify("stop_oneManArmyTracker");
}
//Function Number: 54
onemanarmyweaponchangetracker()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
self endon("stop_oneManArmyTracker");
for(;;)
{
self waittill("weapon_change",var_00);
if(var_00 != "onemanarmy_mp")
{
continue;
}
thread selectonemanarmyclass();
}
}
//Function Number: 55
isonemanarmymenu(param_00)
{
if(param_00 == game["menu_onemanarmy"])
{
return 1;
}
if(isdefined(game["menu_onemanarmy_defaults_splitscreen"]) && param_00 == game["menu_onemanarmy_defaults_splitscreen"])
{
return 1;
}
if(isdefined(game["menu_onemanarmy_custom_splitscreen"]) && param_00 == game["menu_onemanarmy_custom_splitscreen"])
{
return 1;
}
return 0;
}
//Function Number: 56
selectonemanarmyclass()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
common_scripts\utility::_disableweaponswitch();
common_scripts\utility::_disableoffhandweapons();
common_scripts\utility::_disableusability();
self openpopupmenu(game["menu_onemanarmy"]);
thread closeomamenuondeath();
self waittill("menuresponse",var_00,var_01);
common_scripts\utility::_enableweaponswitch();
common_scripts\utility::_enableoffhandweapons();
common_scripts\utility::_enableusability();
if(var_01 == "back" || !isonemanarmymenu(var_00) || maps\mp\_utility::isusingremote())
{
if(self getcurrentweapon() == "onemanarmy_mp")
{
common_scripts\utility::_disableweaponswitch();
common_scripts\utility::_disableoffhandweapons();
common_scripts\utility::_disableusability();
self switchtoweapon(common_scripts\utility::getlastweapon());
self waittill("weapon_change");
common_scripts\utility::_enableweaponswitch();
common_scripts\utility::_enableoffhandweapons();
common_scripts\utility::_enableusability();
}
return;
}
thread giveonemanarmyclass(var_01);
}
//Function Number: 57
closeomamenuondeath()
{
self endon("menuresponse");
self endon("disconnect");
level endon("game_ended");
self waittill("death");
common_scripts\utility::_enableweaponswitch();
common_scripts\utility::_enableoffhandweapons();
common_scripts\utility::_enableusability();
self closepopupmenu();
}
//Function Number: 58
giveonemanarmyclass(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
if(maps\mp\_utility::_hasperk("specialty_omaquickchange"))
{
var_01 = 3;
self playlocalsound("foly_onemanarmy_bag3_plr");
self playsoundtoteam("foly_onemanarmy_bag3_npc","allies",self);
self playsoundtoteam("foly_onemanarmy_bag3_npc","axis",self);
}
else
{
var_01 = 6;
self playlocalsound("foly_onemanarmy_bag6_plr");
self playsoundtoteam("foly_onemanarmy_bag6_npc","allies",self);
self playsoundtoteam("foly_onemanarmy_bag6_npc","axis",self);
}
thread omausebar(var_01);
common_scripts\utility::_disableweapon();
common_scripts\utility::_disableoffhandweapons();
common_scripts\utility::_disableusability();
wait(var_01);
common_scripts\utility::_enableweapon();
common_scripts\utility::_enableoffhandweapons();
common_scripts\utility::_enableusability();
self.omaclasschanged = 1;
maps\mp\gametypes\_class::giveandapplyloadout(self.pers["team"],param_00,0);
if(isdefined(self.carryflag))
{
self attach(self.carryflag,"J_spine4",1);
}
self notify("changed_kit");
level notify("changed_kit");
}
//Function Number: 59
omausebar(param_00)
{
self endon("disconnect");
var_01 = maps\mp\gametypes\_hud_util::createprimaryprogressbar(0,-25);
var_02 = maps\mp\gametypes\_hud_util::createprimaryprogressbartext(0,-25);
var_02 settext(&"MPUI_CHANGING_KIT");
var_01 maps\mp\gametypes\_hud_util::updatebar(0,1 / param_00);
var_03 = 0;
while(var_03 < param_00 && isalive(self) && !level.gameended)
{
wait(0.05);
var_03 = var_03 + 0.05;
}
var_01 maps\mp\gametypes\_hud_util::destroyelem();
var_02 maps\mp\gametypes\_hud_util::destroyelem();
}
//Function Number: 60
setblastshield()
{
self setweaponhudiconoverride("primaryoffhand","specialty_s1_temp");
}
//Function Number: 61
unsetblastshield()
{
self setweaponhudiconoverride("primaryoffhand","none");
}
//Function Number: 62
setfreefall()
{
}
//Function Number: 63
unsetfreefall()
{
}
//Function Number: 64
settacticalinsertion()
{
maps\mp\_utility::_giveweapon("s1_tactical_insertion_device_mp",0);
self givestartammo("s1_tactical_insertion_device_mp");
thread monitortiuse();
}
//Function Number: 65
clearprevioustispawnpoint()
{
self notify("clearPreviousTISpawnpointStarted");
self endon("clearPreviousTISpawnpointStarted");
common_scripts\utility::waittill_any("disconnect","joined_team","joined_spectators");
if(isdefined(self.setspawnpoint))
{
deleteti(self.setspawnpoint);
}
}
//Function Number: 66
updatetispawnposition()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
level endon("game_ended");
while(maps\mp\_utility::isreallyalive(self))
{
if(isvalidtispawnposition())
{
self.tispawnposition = self.origin;
}
wait(0.05);
}
}
//Function Number: 67
isvalidtispawnposition()
{
if(canspawn(self.origin) && self isonground())
{
return 1;
}
return 0;
}
//Function Number: 68
monitortiuse()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
level endon("game_ended");
thread clearprevioustispawnpoint();
thread updatetispawnposition();
thread monitorthirdpersonmodel();
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 != "s1_tactical_insertion_device_mp")
{
continue;
}
if(isdefined(self.setspawnpoint))
{
deleteti(self.setspawnpoint);
}
if(!isdefined(self.tispawnposition))
{
continue;
}
if(maps\mp\_utility::touchingbadtrigger())
{
continue;
}
var_02 = playerphysicstrace(self.tispawnposition + (0,0,16),self.tispawnposition - (0,0,2048)) + (0,0,1);
var_03 = spawn("script_model",var_02);
var_03.angles = self.angles;
var_03.team = self.team;
var_03.owner = self;
var_03.enemytrigger = spawn("script_origin",var_02);
var_03 thread glowsticksetupandwaitfordeath(self);
var_03.playerspawnpos = self.tispawnposition;
var_03 setotherent(self);
var_03 common_scripts\utility::make_entity_sentient_mp(self.team,1);
var_03 playloopsound("tac_insert_spark_lp");
self.setspawnpoint = var_03;
}
}
//Function Number: 69
monitorthirdpersonmodel()
{
self notify("third_person_ti");
self endon("third_person_ti");
for(;;)
{
if(isdefined(self.attachmodelti))
{
self detach("npc_tactical_insertion_device","tag_inhand");
self.attachmodelti = undefined;
}
self waittillmatch("s1_tactical_insertion_device_mp","grenade_pullback");
self attach("npc_tactical_insertion_device","tag_inhand",1);
self.attachmodelti = "npc_tactical_insertion_device";
maps\mp\_utility::waitfortimeornotify(3,"death");
self detach("npc_tactical_insertion_device","tag_inhand");
self.attachmodelti = undefined;
}
}
//Function Number: 70
glowsticksetupandwaitfordeath(param_00)
{
self setmodel(level.spawnglowmodel["enemy"]);
thread maps\mp\gametypes\_damage::setentitydamagecallback(100,undefined,::ondeathti,undefined,0);
thread glowstickenemyuselistener(param_00);
thread glowstickuselistener(param_00);
thread glowstickteamupdater(self.team,level.spawnglow["enemy"],param_00);
var_01 = spawn("script_model",self.origin + (0,0,0));
var_01.angles = self.angles;
var_01 setmodel(level.spawnglowmodel["friendly"]);
var_01 setcontents(0);
var_01 thread glowstickteamupdater(self.team,level.spawnglow["friendly"],param_00);
var_01 playloopsound("tac_insert_spark_lp");
self waittill("death");
var_01 stoploopsound();
var_01 delete();
}
//Function Number: 71
glowstickteamupdater(param_00,param_01,param_02)
{
self endon("death");
wait(0.05);
var_03 = self gettagangles("tag_fire_fx");
var_04 = spawnfx(param_01,self gettagorigin("tag_fire_fx"),anglestoforward(var_03),anglestoup(var_03));
triggerfx(var_04);
thread perk_deleteondeath(var_04);
for(;;)
{
self hide();
var_04 hide();
foreach(var_06 in level.players)
{
if(var_06.team == param_00 && level.teambased && param_01 == level.spawnglow["friendly"])
{
self showtoplayer(var_06);
var_04 showtoplayer(var_06);
continue;
}
if(var_06.team != param_00 && level.teambased && param_01 == level.spawnglow["enemy"])
{
self showtoplayer(var_06);
var_04 showtoplayer(var_06);
continue;
}
if(!level.teambased && var_06 == param_02 && param_01 == level.spawnglow["friendly"])
{
self showtoplayer(var_06);
var_04 showtoplayer(var_06);
continue;
}
if(!level.teambased && var_06 != param_02 && param_01 == level.spawnglow["enemy"])
{
self showtoplayer(var_06);
var_04 showtoplayer(var_06);
}
}
level common_scripts\utility::waittill_either("joined_team","player_spawned");
}
}
//Function Number: 72
perk_deleteondeath(param_00)
{
self waittill("death");
if(isdefined(param_00))
{
param_00 delete();
}
}
//Function Number: 73
ondeathti(param_00,param_01,param_02,param_03)
{
if(isdefined(self.owner) && param_00 != self.owner)
{
param_00 notify("destroyed_explosive");
param_00 thread maps\mp\gametypes\_missions::processchallenge("ch_darkbringer");
}
playfx(level.spawnfire,self.origin);
self.owner thread maps\mp\_utility::leaderdialogonplayer("ti_destroyed",undefined,undefined,self.origin);
param_00 thread deleteti(self);
}
//Function Number: 74
glowstickuselistener(param_00)
{
self endon("death");
level endon("game_ended");
param_00 endon("disconnect");
self setcursorhint("HINT_NOICON");
self sethintstring(&"MP_PATCH_PICKUP_TI");
thread updateenemyuse(param_00);
for(;;)
{
self waittill("trigger",var_01);
var_01 playsound("tac_insert_pickup_plr");
var_01 thread settacticalinsertion();
var_01 thread deleteti(self);
}
}
//Function Number: 75
updateenemyuse(param_00)
{
self endon("death");
for(;;)
{
maps\mp\_utility::setselfusable(param_00);
level common_scripts\utility::waittill_either("joined_team","player_spawned");
}
}
//Function Number: 76
deleteti(param_00)
{
if(isdefined(param_00.enemytrigger))
{
param_00.enemytrigger delete();
}
param_00 stoploopsound();
param_00 delete();
}
//Function Number: 77
glowstickenemyuselistener(param_00)
{
self endon("death");
level endon("game_ended");
param_00 endon("disconnect");
self.enemytrigger setcursorhint("HINT_NOICON");
self.enemytrigger sethintstring(&"MP_PATCH_DESTROY_TI");
self.enemytrigger maps\mp\_utility::makeenemyusable(param_00);
for(;;)
{
self.enemytrigger waittill("trigger",var_01);
thread ondeathti(var_01);
}
}
//Function Number: 78
setpainted(param_00)
{
if(isplayer(self))
{
if(isdefined(param_00.specialty_paint_time) && !maps\mp\_utility::_hasperk("specialty_coldblooded"))
{
self.painted = 1;
self setperk("specialty_radararrow",1,0);
thread unsetpainted(param_00.specialty_paint_time);
thread watchpainteddeath();
}
}
}
//Function Number: 79
watchpainteddeath()
{
self endon("disconnect");
level endon("game_ended");
self endon("unsetPainted");
self waittill("death");
self.painted = 0;
}
//Function Number: 80
unsetpainted(param_00)
{
self notify("painted_again");
self endon("painted_again");
self endon("disconnect");
self endon("death");
level endon("game_ended");
wait(param_00);
self.painted = 0;
self unsetperk("specialty_radararrow",1);
self notify("unsetPainted");
}
//Function Number: 81
ispainted()
{
return isdefined(self.painted) && self.painted;
}
//Function Number: 82
setrefillgrenades()
{
if(isdefined(self.primarygrenade))
{
self givemaxammo(self.primarygrenade);
}
if(isdefined(self.secondarygrenade))
{
self givemaxammo(self.secondarygrenade);
}
}
//Function Number: 83
setfinalstand()
{
maps\mp\_utility::giveperk("specialty_pistoldeath",0);
}
//Function Number: 84
unsetfinalstand()
{
maps\mp\_utility::_unsetperk("specialty_pistoldeath");
}
//Function Number: 85
setcarepackage()
{
thread maps\mp\killstreaks\_killstreaks::givekillstreak("airdrop_assault",0,0,self);
}
//Function Number: 86
unsetcarepackage()
{
}
//Function Number: 87
setuav()
{
thread maps\mp\killstreaks\_killstreaks::givekillstreak("uav",0,0,self);
}
//Function Number: 88
unsetuav()
{
}
//Function Number: 89
setstoppingpower()
{
maps\mp\_utility::giveperk("specialty_bulletdamage",0);
thread watchstoppingpowerkill();
}
//Function Number: 90
watchstoppingpowerkill()
{
self notify("watchStoppingPowerKill");
self endon("watchStoppingPowerKill");
self endon("disconnect");
level endon("game_ended");
self waittill("killed_enemy");
unsetstoppingpower();
}
//Function Number: 91
unsetstoppingpower()
{
maps\mp\_utility::_unsetperk("specialty_bulletdamage");
self notify("watchStoppingPowerKill");
}
//Function Number: 92
setjuiced(param_00,param_01,param_02)
{
self endon("death");
self endon("faux_spawn");
self endon("disconnect");
self endon("unset_juiced");
level endon("end_game");
self.isjuiced = 1;
if(!isdefined(param_00))
{
param_00 = 1.25;
}
self.movespeedscaler = param_00;
maps\mp\gametypes\_weapons::updatemovespeedscale();
if(level.splitscreen)
{
var_03 = 56;
var_04 = 21;
}
else
{
var_03 = 80;
var_04 = 32;
}
if(!isdefined(param_01))
{
param_01 = 7;
}
if(!isdefined(param_02) || param_02 == 1)
{
self.juicedtimer = maps\mp\gametypes\_hud_util::createtimer("hudsmall",1);
self.juicedtimer maps\mp\gametypes\_hud_util::setpoint("CENTER","CENTER",0,var_03);
self.juicedtimer settimer(param_01);
self.juicedtimer.color = (0.8,0.8,0);
self.juicedtimer.archived = 0;
self.juicedtimer.foreground = 1;
self.juicedicon = maps\mp\gametypes\_hud_util::createicon(level.specialty_juiced_icon,var_04,var_04);
self.juicedicon.alpha = 0;
self.juicedicon maps\mp\gametypes\_hud_util::setparent(self.juicedtimer);
self.juicedicon maps\mp\gametypes\_hud_util::setpoint("BOTTOM","TOP");
self.juicedicon.archived = 1;
self.juicedicon.sort = 1;
self.juicedicon.foreground = 1;
self.juicedicon fadeovertime(1);
self.juicedicon.alpha = 0.85;
}
thread unsetjuicedondeath();
thread unsetjuicedonride();
wait(param_01 - 2);
if(isdefined(self.juicedicon))
{
self.juicedicon fadeovertime(2);
self.juicedicon.alpha = 0;
}
if(isdefined(self.juicedtimer))
{
self.juicedtimer fadeovertime(2);
self.juicedtimer.alpha = 0;
}
wait(2);
unsetjuiced();
}
//Function Number: 93
unsetjuiced(param_00)
{
if(!isdefined(param_00))
{
if(maps\mp\_utility::isjuggernaut())
{
if(isdefined(self.juggmovespeedscaler))
{
self.movespeedscaler = self.juggmovespeedscaler;
}
else
{
self.movespeedscaler = 0.7;
}
}
else
{
self.movespeedscaler = level.baseplayermovescale;
if(maps\mp\_utility::_hasperk("specialty_lightweight"))
{
self.movespeedscaler = maps\mp\_utility::lightweightscalar();
}
}
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
if(isdefined(self.juicedicon))
{
self.juicedicon destroy();
}
if(isdefined(self.juicedtimer))
{
self.juicedtimer destroy();
}
self.isjuiced = undefined;
self notify("unset_juiced");
}
//Function Number: 94
unsetjuicedonride()
{
self endon("disconnect");
self endon("unset_juiced");
for(;;)
{
wait(0.05);
if(maps\mp\_utility::isusingremote())
{
thread unsetjuiced();
break;
}
}
}
//Function Number: 95
unsetjuicedondeath()
{
self endon("disconnect");
self endon("unset_juiced");
common_scripts\utility::waittill_any("death","faux_spawn");
thread unsetjuiced(1);
}
//Function Number: 96
setlightarmorhp(param_00)
{
if(isdefined(param_00))
{
self.lightarmorhp = param_00;
if(isplayer(self) && isdefined(self.maxlightarmorhp) && self.maxlightarmorhp > 0)
{
var_01 = clamp(self.lightarmorhp / self.maxlightarmorhp,0,1);
self setclientomnvar("ui_light_armor_percent",var_01);
return;
}
return;
}
self.lightarmorhp = undefined;
self.maxlightarmorhp = undefined;
self setclientomnvar("ui_light_armor_percent",0);
}
//Function Number: 97
setlightarmor(param_00)
{
self notify("give_light_armor");
if(isdefined(self.lightarmorhp))
{
unsetlightarmor();
}
thread removelightarmorondeath();
thread removelightarmoronmatchend();
if(isdefined(param_00))
{
self.maxlightarmorhp = param_00;
}
else
{
self.maxlightarmorhp = 150;
}
setlightarmorhp(self.maxlightarmorhp);
}
//Function Number: 98
removelightarmorondeath()
{
self endon("disconnect");
self endon("give_light_armor");
self endon("remove_light_armor");
self waittill("death");
unsetlightarmor();
}
//Function Number: 99
unsetlightarmor()
{
setlightarmorhp(undefined);
self notify("remove_light_armor");
}
//Function Number: 100
removelightarmoronmatchend()
{
self endon("disconnect");
self endon("remove_light_armor");
level common_scripts\utility::waittill_any("round_end_finished","game_ended");
thread unsetlightarmor();
}
//Function Number: 101
haslightarmor()
{
return isdefined(self.lightarmorhp) && self.lightarmorhp > 0;
}