mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
186 lines
4.1 KiB
Plaintext
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);
|
|
} |