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

241 lines
5.1 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3612.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 5 ms
* Timestamp: 10/27/2023 12:30:54 AM
*******************************************************************/
//Function Number: 1
func_200A()
{
level._effect["impact_shock"] = loadfx("vfx/iw7/core/impact/custom/vfx_imp_cstm_antigrav_barrel.vfx");
level._effect["fuse_shock"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_barrel_buildup.vfx");
level._effect["antigrav_explosion"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_barrel_blow.vfx");
var_00 = getentarray("phys_antigrav_destructible","targetname");
foreach(var_02 in var_00)
{
var_02 thread func_2007();
}
}
//Function Number: 2
func_2007()
{
self endon("barrel_death");
self endon("barrel_delete");
lib_0E1D::func_2840("antigrav",120,350,9100,15000,80,28);
thread func_2008();
var_00 = 3;
var_01 = 0;
var_02 = 120;
var_03 = 0;
var_04 = 0;
for(;;)
{
self waittill("damage",var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E);
if(isdefined(var_06) && isai(var_06))
{
continue;
}
if(isdefined(var_06) && isdefined(var_06.var_9D62))
{
continue;
}
if(isdefined(var_0E) && scripts\common\utility::func_13C07(var_0E) == "sniper")
{
var_05 = 999999;
var_00 = 0;
}
var_02 = int(var_02 - var_05);
if(var_02 <= 0 && !isdefined(self.var_C528))
{
var_02 = 50;
}
if(var_02 <= 0)
{
break;
}
self.var_2836 = var_02;
if(var_02 <= 50)
{
if(!var_01)
{
if(!var_04)
{
var_04 = 1;
if(soundexists("antigrav_battery_damaged_warning_lp"))
{
thread scripts\sp\_utility::func_CD81("antigrav_battery_damaged_warning_lp","tag_origin",1,1);
}
}
playfxontag(scripts\common\utility::getfx("fuse_shock"),self,"tag_origin");
var_01 = 1;
self.var_C528 = 1;
}
var_0F = var_02 / 50;
var_00 = var_00 * var_0F;
thread lib_0E1D::func_2835(var_00);
}
if(isdefined(var_07))
{
var_10 = length(var_07);
if(var_10 > 20)
{
var_11 = vectornormalize(var_07);
var_12 = 20;
if(isdefined(var_09) && var_09 == "MOD_IMPACT")
{
var_12 = 3;
}
var_07 = var_11 * var_12;
}
self physicslaunchserver(var_08,var_07 * 1000);
}
if(!isdefined(var_09))
{
continue;
}
var_13 = strtok(var_09,"_");
if(!scripts\common\utility::func_2286(var_13,"BULLET"))
{
continue;
}
var_14 = scripts\common\utility::spawn_tag_origin(var_08);
var_15 = vectornormalize(self.origin - var_08);
var_16 = vectortoangles(var_15 * -1);
var_14.angles = scripts\common\utility::func_6EE1(var_16);
var_14 linkto(self);
if(!var_03)
{
var_03 = 1;
if(soundexists("antigrav_battery_damaged_lp"))
{
var_14 thread scripts\sp\_utility::func_CD81("antigrav_battery_damaged_lp","tag_origin",1,1);
}
}
playfxontag(scripts\common\utility::getfx("impact_shock"),var_14,"tag_origin");
self.var_109DB = scripts\common\utility::array_add(self.var_109DB,var_14);
}
while(isdefined(self.var_5945))
{
scripts\common\utility::func_136F7();
}
self notify("barrel_death");
}
//Function Number: 3
func_2008()
{
self endon("barrel_delete");
self waittill("barrel_death");
physicsexplosionsphere(self.origin,self.var_CAF6,0,2);
earthquake(0.4,0.8,self.origin,700);
thread lib_0E1D::func_2831(350,self.origin);
thread lib_0E21::func_200B();
thread scripts\sp\_detonategrenades::func_DBDB(self.origin);
var_00 = 0.3;
var_01 = sortbydistance(level.var_CAF7,self.origin);
foreach(var_03 in var_01)
{
if(var_03 == self)
{
continue;
}
var_04 = distance(self.origin,var_03.origin);
if(var_04 > self.var_CAF6)
{
continue;
}
var_05 = self.var_CAF6 - var_04;
var_06 = var_05 / self.var_CAF6;
var_07 = var_00 * var_06;
if(var_04 <= self.var_CAF6)
{
var_03 thread lib_0E1D::func_2837(self.origin,var_04,var_07);
}
if(var_04 <= 340)
{
var_03 thread func_2009(self.origin,var_04,var_07);
}
}
radiusdamage(self.origin,2,1,0,self);
scripts\common\utility::func_136F7();
if(soundexists("antigrav_battery_explode"))
{
function_0178("antigrav_battery_explode",self.origin);
}
playfx(scripts\common\utility::getfx("antigrav_explosion"),self.origin);
foreach(var_0A in self.var_109DB)
{
killfxontag(scripts\common\utility::getfx("impact_shock"),var_0A,"tag_origin");
scripts\common\utility::func_136F7();
if(isdefined(var_0A))
{
var_0A delete();
}
}
killfxontag(scripts\common\utility::getfx("fuse_shock"),self,"tag_origin");
scripts\common\utility::func_136F7();
if(isdefined(self))
{
self delete();
}
}
//Function Number: 4
func_2009(param_00,param_01,param_02)
{
self endon("barrel_death");
self endon("barrel_delete");
wait(param_02);
if(!isdefined(self))
{
return;
}
if(isdefined(self.var_C528))
{
return;
}
var_03 = 95;
var_04 = 340;
if(param_01 <= 90)
{
var_05 = 20;
var_06 = 90 - param_01 / var_04;
var_07 = 70 + var_06 * var_05;
}
else
{
var_06 = var_07 - var_03 / var_07;
var_07 = var_07 * var_04;
}
self notify("damage",var_07);
}