Files
IL-GSC/IW/PC/ALL/scripts/mp/killstreaks/_juggernaut.gsc
2023-10-27 03:49:01 -04:00

315 lines
6.9 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_juggernaut.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 14
* Decompile Time: 779 ms
* Timestamp: 10/27/2023 12:28:57 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_A4AD = [];
level.var_A4AD["juggernaut"] = spawnstruct();
level.var_A4AD["juggernaut"].var_10A41 = "used_juggernaut";
level.var_A4AD["juggernaut_recon"] = spawnstruct();
level.var_A4AD["juggernaut_recon"].var_10A41 = "used_juggernaut_recon";
level.var_A4AD["juggernaut_maniac"] = spawnstruct();
level.var_A4AD["juggernaut_maniac"].var_10A41 = "used_juggernaut_maniac";
level thread func_13AB0();
}
//Function Number: 2
func_8371(param_00)
{
self endon("death");
self endon("disconnect");
wait(0.05);
if(isdefined(self.var_ACAE))
{
scripts\mp\perks\_perkfunctions::func_12CE5();
}
scripts\mp\_weapons::func_5608();
if(scripts\mp\_utility::_hasperk("specialty_explosivebullets"))
{
scripts\mp\_utility::func_E150("specialty_explosivebullets");
}
self.health = self.maxhealth;
var_01 = 1;
switch(param_00)
{
case "juggernaut":
self.var_9E59 = 1;
self.var_A4AA = 0.8;
scripts\mp\_class::func_8379(self.pers["team"],param_00,0);
self.var_BCF6 = 0.8;
scripts\mp\_utility::func_8387("specialty_scavenger");
scripts\mp\_utility::func_8387("specialty_quickdraw");
scripts\mp\_utility::func_8387("specialty_detectexplosive");
scripts\mp\_utility::func_8387("specialty_sharp_focus");
scripts\mp\_utility::func_8387("specialty_radarjuggernaut");
break;
case "juggernaut_recon":
self.var_9E5E = 1;
self.var_A4AA = 0.8;
scripts\mp\_class::func_8379(self.pers["team"],param_00);
self.var_BCF6 = 0.8;
scripts\mp\_utility::func_8387("specialty_scavenger");
scripts\mp\_utility::func_8387("specialty_coldblooded");
scripts\mp\_utility::func_8387("specialty_noscopeoutline");
scripts\mp\_utility::func_8387("specialty_detectexplosive");
scripts\mp\_utility::func_8387("specialty_sharp_focus");
scripts\mp\_utility::func_8387("specialty_radarjuggernaut");
if(!isagent(self))
{
self method_81F3(self);
scripts\mp\_missions::func_D992("ch_airdrop_juggernaut_recon");
}
break;
case "juggernaut_maniac":
self.var_9E5D = 1;
self.var_A4AA = 1.15;
scripts\mp\_class::func_8379(self.pers["team"],param_00,0);
scripts\mp\_utility::func_8387("specialty_blindeye");
scripts\mp\_utility::func_8387("specialty_coldblooded");
scripts\mp\_utility::func_8387("specialty_noscopeoutline");
scripts\mp\_utility::func_8387("specialty_detectexplosive");
scripts\mp\_utility::func_8387("specialty_marathon");
scripts\mp\_utility::func_8387("specialty_falldamage");
self.var_BCF6 = 1.15;
break;
default:
var_01 = self [[ level.var_B331 ]](param_00);
break;
}
if(func_CA4E("specialty_hardline"))
{
scripts\mp\_utility::func_8387("specialty_hardline");
}
scripts\mp\_weapons::func_12ED5();
self disableweaponpickup();
if(!isagent(self))
{
if(var_01)
{
self setclientomnvar("ui_juggernaut",1);
thread scripts\mp\_utility::func_115DE(level.var_A4AD[param_00].var_10A41,self);
thread func_A4A9();
thread func_139F1();
thread func_13A13();
}
}
if(self.var_110F4 == "specialist")
{
thread scripts\mp\killstreaks\_killstreaks::func_41C0();
}
thread func_A4AC();
if(isdefined(self.var_3AF4))
{
wait(0.05);
self attach(self.var_3AF4,"J_spine4",1);
}
level notify("juggernaut_equipped",self);
scripts\mp\_matchdata::func_AFC9(param_00,self.origin);
}
//Function Number: 3
func_CA4E(param_00)
{
var_01 = self.pers["loadoutPerks"];
foreach(var_03 in var_01)
{
if(var_03 == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 4
func_A4A9()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("jugg_removed");
for(;;)
{
wait(3);
scripts\mp\_utility::func_D4FB(self,"juggernaut_breathing_player","juggernaut_breathing_sound");
}
}
//Function Number: 5
func_13AB0()
{
level endon("game_ended");
for(;;)
{
level waittill("host_migration_end");
foreach(var_01 in level.players)
{
if(isai(var_01))
{
continue;
}
else
{
if(var_01 scripts\mp\_utility::func_9E59() && !isdefined(var_01.var_9E5C) && var_01.var_9E5C)
{
var_01 setclientomnvar("ui_juggernaut",1);
continue;
}
var_01 setclientomnvar("ui_juggernaut",0);
}
}
}
}
//Function Number: 6
func_A4AC()
{
level endon("game_ended");
self endon("disconnect");
self endon("jugg_removed");
thread func_A4AB();
scripts\common\utility::waittill_any_3("death","joined_team","joined_spectators","lost_juggernaut");
self enableweaponpickup();
self.var_9E59 = 0;
self.var_9E5A = 0;
self.var_9E5B = 0;
self.var_9E5E = 0;
self.var_9E5D = 0;
self.var_9E5C = 0;
if(isplayer(self))
{
self setclientomnvar("ui_juggernaut",0);
}
self method_83CC("specialty_radarjuggernaut",1);
self notify("jugg_removed");
}
//Function Number: 7
func_A4AB()
{
self endon("disconnect");
self endon("jugg_removed");
level waittill("game_ended");
if(isplayer(self))
{
self setclientomnvar("ui_juggernaut",0);
}
}
//Function Number: 8
func_F766()
{
if(isdefined(self.var_8C98))
{
self detach(self.var_8C98,"");
self.var_8C98 = undefined;
}
self setmodel("mp_fullbody_juggernaut_heavy_black");
self method_8369("viewhands_juggernaut_ally");
self method_82C6("vestheavy");
}
//Function Number: 9
func_F767()
{
if(isdefined(self.var_8C98))
{
self detach(self.var_8C98,"");
self.var_8C98 = undefined;
}
self setmodel("mp_fullbody_heavy");
self method_8369("viewhands_juggernaut_ally");
self attach("mp_warfighter_head_1","",1);
self.var_8C98 = "mp_warfighter_head_1";
self method_82C6("nylon");
}
//Function Number: 10
func_55F4()
{
if(scripts\mp\_utility::func_9E59())
{
self.var_A4A4 = 1;
self setclientomnvar("ui_juggernaut",0);
}
}
//Function Number: 11
func_626C()
{
if(scripts\mp\_utility::func_9E59())
{
self.var_A4A4 = undefined;
self setclientomnvar("ui_juggernaut",1);
}
}
//Function Number: 12
func_139F1()
{
self endon("death");
self endon("disconnect");
self endon("jugg_removed");
level endon("game_ended");
for(;;)
{
if(!isdefined(self.var_A4A4) && scripts\mp\_utility::func_9FC6())
{
self waittill("black_out_done");
func_55F4();
}
wait(0.05);
}
}
//Function Number: 13
func_13A13()
{
self endon("death");
self endon("disconnect");
self endon("jugg_removed");
level endon("game_ended");
for(;;)
{
if(isdefined(self.var_A4A4) && !scripts\mp\_utility::func_9FC6())
{
func_626C();
}
wait(0.05);
}
}
//Function Number: 14
func_988F(param_00,param_01,param_02,param_03)
{
level.var_B331 = param_00;
level.var_B333 = param_01;
level.var_B332 = param_03;
game["allies_model"]["JUGGERNAUT_CUSTOM"] = param_02;
game["axis_model"]["JUGGERNAUT_CUSTOM"] = param_02;
}