Files
IL-GSC/GHOSTS/PC/MP/maps/mp/_empgrenade.gsc
2023-10-27 03:49:01 -04:00

155 lines
2.8 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\_empgrenade.gsc
* Game: Call of Duty: Ghosts
* Platform: PC
* Function Count: 9
* Decompile Time: 168 ms
* Timestamp: 10/27/2023 1:22:13 AM
*******************************************************************/
//Function Number: 1
func_44DF()
{
thread func_595D();
}
//Function Number: 2
func_595D()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread onplayerspawned();
}
}
//Function Number: 3
onplayerspawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
thread func_5382();
}
}
//Function Number: 4
func_5382()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self.empendtime = 0;
for(;;)
{
self waittill("emp_damage",var_00,var_01);
if(!isalive(self) || isdefined(self.usingremote) || maps\mp\_utility::_hasperk("specialty_empimmune") || !isdefined(var_00))
{
continue;
}
var_02 = 1;
var_03 = 0;
if(level.teambased && var_00 != self && isdefined(var_00.pers["team"]) && var_00.pers["team"] == self.pers["team"])
{
if(level.friendlyfire == 0)
{
continue;
}
else if(level.friendlyfire == 1)
{
var_03 = 0;
var_02 = 1;
}
else if(level.friendlyfire == 2)
{
var_02 = 0;
var_03 = 1;
}
else if(level.friendlyfire == 3)
{
var_03 = 1;
var_02 = 1;
}
}
else
{
var_00 notify("emp_hit");
if(var_00 != self)
{
var_00 maps\mp\gametypes\_missions::func_61CE("ch_onthepulse");
}
}
if(var_02 && isdefined(self))
{
thread func_0EAA(var_01);
}
if(var_03)
{
var_00 thread func_0EAA(var_01);
}
}
}
//Function Number: 5
func_0EAA(param_00)
{
self notify("applyEmp");
self endon("applyEmp");
self endon("disconnect");
self endon("death");
wait(0.05);
self.empgrenaded = 1;
self shellshock("flashbang_mp",1);
self.empendtime = gettime() + param_00 * 1000;
lib_05FE::applyperplayerempeffects_ondetonate();
lib_05FE::applyperplayerempeffects();
thread emprumbleloop(0.75);
thread func_2C85();
wait(param_00);
self notify("empGrenadeTimedOut");
func_1BDC();
}
//Function Number: 6
func_2C85()
{
self notify("empGrenadeDeathWaiter");
self endon("empGrenadeDeathWaiter");
self endon("empGrenadeTimedOut");
self waittill("death");
func_1BDC();
}
//Function Number: 7
func_1BDC()
{
self.empgrenaded = 0;
if(!lib_05FE::func_74B9())
{
lib_05FE::func_65A7();
}
}
//Function Number: 8
emprumbleloop(param_00)
{
self endon("emp_rumble_loop");
self notify("emp_rumble_loop");
var_01 = gettime() + param_00 * 1000;
while(gettime() < var_01)
{
self playrumbleonentity("damage_heavy");
wait(0.05);
}
}
//Function Number: 9
func_48B3()
{
return isdefined(self.empendtime) && gettime() < self.empendtime;
}