IL-GSC/AW/PC/maps/_juggernaut.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

186 lines
4.1 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: _juggernaut.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 85 ms
* Timestamp: 4/22/2024 2:21:36 AM
*******************************************************************/
//Function Number: 1
main()
{
if(isdefined(level.juggernaut_initialized))
{
return;
}
level.juggernaut_initialized = 1;
if(!isdefined(level.subclass_spawn_functions))
{
level.subclass_spawn_functions = [];
}
level.subclass_spawn_functions["juggernaut"] = ::subclass_juggernaut;
level.juggernaut_next_alert_time = 0;
}
//Function Number: 2
subclass_juggernaut()
{
self.juggernaut = 1;
self.minpaindamage = 200;
self.grenadeammo = 0;
self.doorflashchance = 0.05;
self.aggressivemode = 1;
self.ignoresuppression = 1;
self.no_pistol_switch = 1;
self.norunngun = 1;
self.dontmelee = 1;
self.disableexits = 1;
self.disablearrivals = 1;
self.disablebulletwhizbyreaction = 1;
self.combatmode = "no_cover";
self.neversprintforvariation = 1;
self.a.disablelongdeath = 1;
maps\_utility::disable_turnanims();
maps\_utility::disable_surprise();
init_juggernaut_animsets();
maps\_utility::add_damage_function(::animscripts\pain::additive_pain);
maps\_utility::add_damage_function(::maps\_spawner::pain_resistance);
if(!self isbadguy())
{
return;
}
self.bullet_resistance = 40;
maps\_utility::add_damage_function(::maps\_spawner::bullet_resistance);
thread juggernaut_hunt_immediately_behavior();
thread juggernaut_sound_when_player_close();
self.pathenemyfightdist = 128;
self.pathenemylookahead = 128;
self setstompbreakthrough(0);
level notify("juggernaut_spawned");
self waittill("death",var_00,var_01,var_02);
if(isdefined(self) && isdefined(self.nodrop))
{
var_03 = [];
var_03[var_03.size] = "left";
var_03[var_03.size] = "right";
var_03[var_03.size] = "chest";
var_03[var_03.size] = "back";
animscripts\shared::detachallweaponmodels();
foreach(var_05 in var_03)
{
var_02 = self.a.weaponpos[var_05];
if(var_02 == "none")
{
continue;
}
self.weaponinfo[var_02].position = "none";
self.a.weaponpos[var_05] = "none";
}
self.weapon = "none";
animscripts\shared::updateattachedweaponmodels();
}
level notify("juggernaut_died");
if(!isdefined(self))
{
return;
}
if(!isdefined(var_00))
{
return;
}
if(!isplayer(var_00))
{
}
}
//Function Number: 3
juggernaut_hunt_immediately_behavior()
{
self endon("death");
self endon("stop_hunting");
self.usechokepoints = 0;
for(;;)
{
wait(0.5);
if(isdefined(self.enemy))
{
self setgoalpos(self.enemy.origin);
self.goalradius = 128;
self.goalheight = 81;
}
}
}
//Function Number: 4
juggernaut_sound_when_player_close()
{
self endon("death");
level endon("special_op_terminated");
if(isdefined(level.skip_juggernaut_intro_sound) && level.skip_juggernaut_intro_sound)
{
return;
}
var_00 = 2500;
if(level.script == "ending")
{
common_scripts\utility::flag_wait("panic_button");
var_00 = 750;
}
for(;;)
{
wait(0.05);
if(gettime() < level.juggernaut_next_alert_time)
{
continue;
}
var_01 = maps\_utility::get_closest_player(self.origin);
if(!isalive(var_01))
{
continue;
}
if(distance(var_01.origin,self.origin) > var_00)
{
continue;
}
if(isdefined(level.pmc_alljuggernauts) && level.pmc_alljuggernauts)
{
var_02 = self gettagorigin("tag_flash");
if(!bullettracepassed(self geteye(),var_01 geteye(),0,undefined))
{
wait(0.25);
continue;
}
}
break;
}
level.juggernaut_next_alert_time = gettime() + 15000;
level notify("juggernaut_attacking");
}
//Function Number: 5
init_juggernaut_animsets()
{
self.walkdist = 500;
self.walkdistfacingmotion = 500;
maps\_utility::set_move_animset("run",%juggernaut_runf,%juggernaut_sprint);
maps\_utility::set_move_animset("walk",%juggernaut_walkf);
maps\_utility::set_move_animset("cqb",%juggernaut_walkf);
maps\_utility::set_combat_stand_animset(%juggernaut_stand_fire_burst,%juggernaut_aim5,%juggernaut_stand_idle,%juggernaut_stand_reload);
}