IL-GSC/IW/PC/ALL/3591.gsc
2023-10-27 03:49:01 -04:00

449 lines
8.7 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3591.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 35 ms
* Timestamp: 10/27/2023 12:30:49 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["telereap_trail"] = loadfx("vfx/old/_requests/mp_weapons/vfx_knife_tele_start_blue");
level._effect["telereap_smoke"] = loadfx("vfx/core/smktrail/teleport_smoke_bomb_mp");
level._effect["dash_dust"] = loadfx("vfx/core/screen/vfx_scrnfx_tocam_slidedust_m");
}
//Function Number: 2
func_83B2()
{
}
//Function Number: 3
func_E17E()
{
self notify("removeTeleReap");
if(isdefined(self.var_11669))
{
scripts\mp\_utility::func_C78F(self.var_11669,self.var_11667);
self.var_11669 = undefined;
self.var_11667 = undefined;
}
}
//Function Number: 4
func_130E8()
{
self endon("death");
self endon("disconnect");
self endon("removeTeleReap");
self.var_D782["power_teleReap"].var_19 = 1;
if(self ismantling())
{
self playlocalsound("mp_reap_fail");
self.var_D782["power_teleReap"].var_19 = 0;
return 0;
}
var_00 = func_11666();
if(!var_00)
{
self playlocalsound("mp_reap_fail");
}
self.var_D782["power_teleReap"].var_19 = 0;
return var_00;
}
//Function Number: 5
func_11666()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
var_00 = 384;
var_01 = (0,0,32);
var_02 = self.origin + var_01;
var_03 = anglestoforward(self.angles);
var_04 = var_02 + var_03 * var_00;
var_05 = getclosestpointonnavmesh(var_04);
if(var_05[2] > self.origin[2] || !self isonground())
{
if(var_05[2] > self.origin[2] + 64)
{
var_01 = (0,0,64);
}
var_05 = var_05 + var_01;
var_02 = self.origin + var_01;
var_04 = var_05;
}
var_06 = [];
var_06[0] = self;
var_06[1] = self.var_FC9F;
var_07 = 0.35;
var_08 = scripts\common\trace::func_48BC(1,1,1,0,0,1);
var_09 = scripts\common\trace::func_3A09(var_02,var_04,16,32,(0,0,0),var_06,var_08);
var_0A = 1;
if(var_09["fraction"] != 1)
{
var_0A = var_09["fraction"] - 0.05;
if(var_0A < 0.05)
{
return 0;
}
var_04 = var_02 + var_03 * var_00 * var_0A;
var_07 = var_09["fraction"] * 0.35;
}
if(!canspawn(var_04))
{
for(var_0B = 0;var_0B < 10;var_0B++)
{
var_0A = var_0A / 1.15;
var_04 = var_02 + var_03 * var_00 * var_0A;
if(canspawn(var_04))
{
break;
}
}
}
self playlocalsound("reaper_dash");
self playsound("reaper_dash_npc");
thread func_D504();
scripts\mp\_utility::func_1309("iw7_erad_mp",self.origin + (0,0,1000),self.origin + (0,0,2000),self);
self playrumbleonentity("damage_heavy");
earthquake(0.25,0.25,self.origin,32);
self.var_9F1B++;
thread func_11668();
thread func_139E6();
func_DD92(var_04,var_01,var_07);
return 1;
}
//Function Number: 6
func_139E6()
{
self endon("death");
self endon("disconnect");
self endon("stop_reap");
level endon("game_ended");
var_00 = [];
for(;;)
{
var_01 = func_808B(384);
foreach(var_03 in var_01)
{
var_04 = 0;
if(distancesquared(self.origin,var_03.origin) > 2048)
{
continue;
}
if(scripts\common\utility::func_9F11(var_03))
{
continue;
}
if(var_03 scripts\mp\_utility::func_9D48("archetype_heavy"))
{
var_05 = self getvelocity();
var_06 = var_05 * -1;
var_03 setvelocity(var_06);
}
foreach(var_08 in var_00)
{
if(var_08 == var_03)
{
var_04 = 1;
}
}
if(var_04)
{
continue;
}
var_03 playrumbleonentity("artillery_rumble");
self playrumbleonentity("artillery_rumble");
var_03 dodamage(150,self.origin,self,self,"MOD_MELEE");
playrumbleonposition("artillery_rumble",self.origin);
earthquake(0.5,0.5,self.origin,256);
playsoundatpos(self.origin,"slide_impact");
var_00[var_00.size] = var_03;
wait(0.05);
}
wait(0.05);
}
}
//Function Number: 7
func_627D()
{
self.var_FCA5 = 1;
self.var_FC9F.angles = self.angles + (0,90,0);
self.var_FC9F.origin = lib_0D6E::func_36DB(64);
self.var_FC9F show();
self.var_FC9F setcandamage(1);
thread lib_0D6E::func_BCEE(64);
thread lib_0D6E::func_FC9C();
self method_80AA();
self allowjump(0);
self allowprone(0);
}
//Function Number: 8
func_DD92(param_00,param_01,param_02)
{
var_03 = self.origin + param_01;
var_04 = scripts\common\utility::spawn_tag_origin();
thread func_DD91(self,var_04);
func_DD93(param_00,var_04,param_01,param_02);
wait(0.25);
self.var_9F1B--;
self notify("stop_reap");
}
//Function Number: 9
func_DD93(param_00,param_01,param_02,param_03)
{
var_04 = self.origin + param_02;
var_05 = var_04 - param_00;
var_06 = lengthsquared(var_05);
var_07 = self method_8123();
var_08 = lengthsquared(var_04 - param_00);
self playerlinkto(param_01,"tag_origin");
self playlocalsound("synaptic_dash");
self playsound("synaptic_dash_npc");
if(param_03 < 0.1)
{
var_09 = 0;
}
else
{
var_09 = 0.1;
}
if(param_03 <= 0)
{
param_03 = 0.1;
}
if(!isdefined(self.var_11667))
{
param_01 moveto(param_00,param_03,var_09,0);
wait(param_03);
}
else
{
var_0A = func_8089(var_04);
param_01 moveto(var_0A + param_02,param_03,var_09,0);
wait(param_03 / 4);
var_0A = func_8089(var_04);
param_01 moveto(var_0A + param_02,param_03,0,0);
wait(param_03 / 4);
var_0A = func_8089(var_04);
param_01 moveto(var_0A + param_02,param_03,0,0);
wait(param_03 / 2);
}
wait(0.1);
self unlink();
self setvelocity(var_07 * 1.3);
self setstance("stand");
}
//Function Number: 10
func_8089(param_00)
{
var_01 = self.var_11667.origin - param_00;
var_02 = distance(param_00,self.var_11667.origin);
var_03 = vectortoangles(var_01);
var_04 = anglestoforward(var_03);
var_05 = param_00 + var_04 * var_02 + 100;
if(capsuletracepassed(var_05,24,48,self,0,0))
{
return var_05;
}
return self.var_11667.origin;
}
//Function Number: 11
func_D504()
{
self endon("disconnect");
level endon("game_ended");
playfxontag(scripts\common\utility::getfx("telereap_trail"),self,"TAG_EYE");
wait(0.5);
stopfxontag(scripts\common\utility::getfx("telereap_trail"),self,"TAG_EYE");
}
//Function Number: 12
func_DD91(param_00,param_01)
{
param_00 scripts\common\utility::waittill_any_3("death","disconnect","stop_reap");
scripts\common\utility::func_136F7();
if(isdefined(param_01))
{
param_01 delete();
}
}
//Function Number: 13
func_808B(param_00)
{
var_01 = [];
if(!isdefined(param_00))
{
param_00 = 0;
}
foreach(var_03 in level.players)
{
if(var_03 == self)
{
continue;
}
if(!isdefined(var_03.team))
{
continue;
}
if(var_03.team != scripts\mp\_utility::getotherteam(self.team))
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_03))
{
continue;
}
if(param_00 != 0)
{
var_04 = scripts\common\utility::func_56F4(self.origin,var_03.origin);
var_05 = param_00 * param_00;
if(var_04 > var_05)
{
continue;
}
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 14
func_42A4(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
var_01 = 100;
var_02 = [];
foreach(var_04 in param_00)
{
var_05 = var_04.origin - self.origin;
var_06 = anglestoforward(self getplayerangles());
var_07 = vectordot(var_05,var_06);
if(var_07 <= 0)
{
continue;
}
var_08 = vectornormalize(var_05);
var_09 = vectornormalize(var_06);
var_07 = vectordot(var_08,var_09);
var_04.var_5AC7 = var_07;
var_02[var_02.size] = var_07;
}
var_0B = scripts\mp\_utility::func_DB9F(var_02);
var_0C = [];
for(var_0D = 0;var_0D < var_0B.size;var_0D++)
{
foreach(var_0F in param_00)
{
if(isdefined(var_0F.var_5AC7) && var_0F.var_5AC7 == var_0B[var_0D])
{
var_0C[var_0C.size] = var_0F;
}
}
}
return var_0C;
}
//Function Number: 15
func_11668()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
var_00 = [];
var_01 = [];
self.var_11667 = undefined;
var_00 = func_808B(384);
var_02 = 0;
if(isdefined(var_00) && var_00.size > 0)
{
if(var_00.size > 1)
{
var_01 = func_42A4(var_00);
}
else
{
var_01 = var_00;
}
}
foreach(var_04 in var_01)
{
var_05 = var_04.origin - self.origin;
var_06 = anglestoforward(self getplayerangles());
var_07 = vectordot(var_05,var_06);
if(var_07 <= 0)
{
continue;
}
var_08 = vectornormalize(var_05);
var_09 = vectornormalize(var_06);
var_07 = vectordot(var_08,var_09);
if(var_07 < 0.9)
{
continue;
}
var_0A = self geteye();
var_0B = var_04 geteye();
var_0C = [];
var_0C[0] = self;
var_0C[1] = var_04;
var_0D = scripts\common\trace::func_DCF1(var_0A,var_0B,var_0C);
if(!var_0D)
{
continue;
}
self.var_11667 = var_04;
var_02 = 1;
break;
}
if(!var_02)
{
self.var_11667 = undefined;
}
}