IL-GSC/AW/PC/ZM/maps/mp/_exo_suit.gsc
2023-10-27 03:49:01 -04:00

169 lines
3.9 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_suit.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 199 ms
* Timestamp: 10/27/2023 2:08:19 AM
*******************************************************************/
//Function Number: 1
getgroundslamminheight()
{
return 120;
}
//Function Number: 2
getgroundslammaxheight()
{
return 380;
}
//Function Number: 3
getgroundslammindamage()
{
return 50;
}
//Function Number: 4
getgroundslammaxdamage()
{
return 110;
}
//Function Number: 5
getgroundslamminradius()
{
return 75;
}
//Function Number: 6
getgroundslammaxradius()
{
return 125;
}
//Function Number: 7
init()
{
level._effect["exo_slam_kneeslide_fx"] = loadfx("vfx/code/slam_jetpack_kneeslide");
level thread onplayerconnect();
}
//Function Number: 8
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread monitorgroundslam();
var_00 thread monitorgroundslamhitplayer();
}
}
//Function Number: 9
monitorgroundslam()
{
self endon("disconnect");
var_00 = 10;
var_01 = 4;
var_02 = (1,0,0);
var_03 = (0,1,0);
var_04 = (0,0,1);
var_05 = 16;
for(;;)
{
self waittill("ground_slam",var_06);
if(isdefined(level.groundslam) && self [[ level.groundslam ]](var_06))
{
continue;
}
var_07 = getdvarfloat("ground_slam_min_height",getgroundslamminheight());
var_08 = getdvarfloat("ground_slam_max_height",getgroundslammaxheight());
var_09 = getdvarfloat("ground_slam_min_damage",getgroundslammindamage());
var_0A = getdvarfloat("ground_slam_max_damage",getgroundslammaxdamage());
var_0B = getdvarfloat("ground_slam_min_radius",getgroundslamminradius());
var_0C = getdvarfloat("ground_slam_max_radius",getgroundslammaxradius());
if(var_06 < var_07)
{
continue;
}
var_0D = var_06 - var_07 / var_08 - var_07;
var_0D = clamp(var_0D,0,1);
var_0E = var_0C - var_0B * var_0D + var_0B;
var_0F = var_0E + 60;
var_10 = var_0F * var_0F;
self radiusdamage(self.origin,var_0E,var_0A,var_09,self,"MOD_TRIGGER_HURT","boost_slam_mp");
if(maps\mp\_utility::_hasperk("specialty_exo_slamboots"))
{
playfxontag(level._effect["exo_slam_kneeslide_fx"],self,"j_knee_ri");
physicsexplosionsphere(self.origin,var_0E,20,1);
foreach(var_12 in level.players)
{
if(maps\mp\_utility::isreallyalive(var_12) && var_12 != self && !level.teambased || var_12.team != self.team && !var_12 maps\mp\_utility::isusingremote())
{
if(distancesquared(self.origin,var_12.origin) < var_10)
{
var_12 shellshock("concussion_grenade_mp",1.5);
maps\mp\gametypes\_missions::processchallenge("ch_perk_overcharge");
}
}
}
}
else
{
physicsexplosionsphere(self.origin,var_0E,20,0.9);
}
if(getdvarint("ground_slam_debug"))
{
thread draw_circle_for_time(self.origin,var_0E + var_05,(0,1,0),0,16,var_00);
var_14 = 100;
var_15 = var_14 - var_09 * var_0E / var_0A - var_09;
thread draw_circle_for_time(self.origin,var_15 + var_05,(1,0,0),0,16,var_00);
foreach(var_12 in level.players)
{
}
}
}
}
//Function Number: 10
draw_circle_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = param_05 / 0.05;
for(var_07 = 0;var_07 < var_06;var_07++)
{
maps\mp\bots\_bots_util::bot_draw_circle(param_00,param_01,param_02,param_03,param_04);
wait(0.05);
}
}
//Function Number: 11
monitorgroundslamhitplayer()
{
self endon("disconnect");
for(;;)
{
self waittill("ground_slam_hit_player",var_00);
if(isdefined(level.groundslamhitplayer) && self [[ level.groundslamhitplayer ]](var_00))
{
continue;
}
var_00 dodamage(var_00.health,self.origin,self,self,"MOD_CRUSH","boost_slam_mp");
}
}
//Function Number: 12
exo_power_cooldown(param_00)
{
var_01 = int(param_00 * 1000);
self setclientomnvar("ui_exo_cooldown_time",var_01);
wait(param_00);
self setclientomnvar("ui_exo_cooldown_time",0);
self playlocalsound("exo_power_recharged");
}