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

372 lines
6.5 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1373.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 14
* Decompile Time: 17 ms
* Timestamp: 10/27/2023 3:25:51 AM
*******************************************************************/
//Function Number: 1
func_00D5()
{
lib_055B::waittill_jumpscare_initialized();
level.var_AB58 = 0;
level.var_AB59 = 0;
var_00 = common_scripts\utility::func_46B7("birds","script_noteworthy");
level.var_AB5A = var_00.size * 0.2;
foreach(var_02 in var_00)
{
var_02 thread func_1769();
}
}
//Function Number: 2
func_1769()
{
self.var_1767 = 0;
self.var_AA2A = self.var_116 + (0,0,16);
var_00 = undefined;
foreach(var_02 in getentarray(self.var_1A2,"targetname"))
{
switch(var_02.var_3B)
{
case "trigger_radius":
self.var_78CB = var_02;
self.var_78CB thread func_1768(self);
break;
case "trigger_damage":
var_02 thread func_1765(self);
break;
}
}
self.var_175F = [];
foreach(var_05 in common_scripts\utility::func_46B7(self.var_1A2,"targetname"))
{
if(isdefined(var_05.var_165))
{
switch(var_05.var_165)
{
case "birds_anims":
self.var_175F[self.var_175F.size] = var_05;
break;
}
}
}
for(;;)
{
var_07 = 1;
if(var_07)
{
wait(randomfloatrange(10,30));
}
while(level.var_AB58 >= level.var_AB5A || func_0F0B(390) || func_0F0D(0))
{
wait(5);
}
thread func_1764();
thread func_1766();
level.var_AB58++;
self.var_1767 = 1;
lib_0378::func_8D74("play_bird_loop",self);
self waittill("birds_command",var_08,var_09);
level.var_AB58--;
self.var_1767 = 0;
var_0A = gettime() * 0.001;
var_0B = 30;
if(var_0A - level.var_AB59 < var_0B)
{
var_08 = "never_mind";
}
switch(var_08)
{
case "fly_away":
level.var_AB59 = var_0A;
if(isplayer(var_09))
{
lib_055B::func_5976(var_09);
}
thread func_8FAA(var_09);
thread func_3D7C();
lib_0378::func_8D74("stop_bird_loop",self);
lib_0378::func_8D74("play_bird_retreat",self);
break;
case "never_mind":
lib_0378::func_8D74("stop_bird_loop",self);
break;
default:
break;
}
wait(5);
}
}
//Function Number: 3
func_3D7C()
{
wait(0.25);
foreach(var_01 in level.var_744A)
{
if(isdefined(var_01) && var_01 istouching(self.var_78CB) && var_01 func_72E5(self.var_AA2A,0))
{
var_01 thread func_3D7B();
}
}
}
//Function Number: 4
func_3D7B()
{
self endon("death");
self endon("disconnect");
}
//Function Number: 5
func_8FAA(param_00)
{
for(var_01 = 0;var_01 < 20;var_01++)
{
var_02 = common_scripts\utility::func_7A33(self.var_175F);
thread func_1763(var_02,param_00);
}
wait(0.1);
physicsexplosionsphere(self.var_AA2A,48,16,1,0);
glassradiusdamage(self.var_AA2A,48,100,50);
earthquake(0.5,1.5,self.var_78CB.var_116,self.var_78CB.var_14F * 2);
function_01BB("zombie_birds_rumble",self.var_78CB.var_116);
}
//Function Number: 6
func_1763(param_00,param_01)
{
var_02 = 2;
var_03 = 40;
var_04 = 10;
wait(randomfloatrange(0,var_02));
var_05 = undefined;
if(isplayer(param_01))
{
if(distance(param_01.var_116,self.var_116) > 96)
{
var_05 = common_scripts\utility::func_4461(self.var_116,maps/mp/agents/_agent_utility::func_43FD("all"));
}
else
{
var_05 = param_01;
}
}
if(isdefined(param_01))
{
var_06 = param_01.var_116 - self.var_116;
var_07 = vectortoangles(var_06)[1];
var_08 = var_07 - self.var_1D[1];
var_08 = var_08 + randomfloatrange(0 - var_04,var_04);
if(isendstr(param_00.var_8260,"_v1") || isendstr(param_00.var_8260,"_v3"))
{
var_09 = 0 - var_03;
var_0A = 0;
}
else
{
var_09 = 0;
var_0A = var_04;
}
var_08 = clamp(var_08,var_09,var_0A);
var_0B = transformmove(self.var_116,self.var_1D + (0,var_08,0),self.var_116,self.var_1D,param_00.var_116,param_00.var_1D);
var_0C = var_0B["origin"];
var_0D = var_0B["angles"];
}
else
{
var_0C = var_02.var_116;
var_0D = param_01.var_1D;
}
var_0E = spawn("script_model",var_0C);
var_0E.var_1D = var_0D;
var_0E setmodel("ani_raven_rig");
var_0E method_8278(param_00.var_8260,"bird_anim");
var_0E thread func_1760();
var_0E waittillmatch("end","bird_anim");
var_0E delete();
}
//Function Number: 7
func_1760()
{
var_00 = 32;
var_01 = 3;
var_02 = 50;
var_03 = 50;
self endon("death");
for(;;)
{
var_04 = 0;
var_05 = 9999;
foreach(var_07 in level.var_744A)
{
if(distance(var_07.var_116,self.var_116) < var_00 + 128)
{
var_04 = 1;
if(var_07.var_BC < var_05)
{
var_05 = var_07.var_BC;
}
}
}
if(var_04 && var_05 - var_01 < var_03)
{
wait 0.05;
continue;
}
if(var_04)
{
var_09 = var_01;
}
else
{
var_09 = var_02;
}
radiusdamage(self.var_116,var_00,var_09,var_09 * 0.5,undefined,undefined,undefined,undefined,0);
break;
}
}
//Function Number: 8
func_0F0B(param_00)
{
if(!isdefined(level.var_744A))
{
return 0;
}
foreach(var_02 in level.var_744A)
{
if(distance(var_02.var_116,self.var_116) < param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 9
func_0F0D(param_00)
{
if(param_00 == 0)
{
return 0;
}
foreach(var_02 in maps/mp/agents/_agent_utility::func_43FD("all"))
{
if(distance(var_02.var_116,self.var_116) < param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 10
func_1765(param_00)
{
for(;;)
{
self waittill("trigger",var_01);
if(!isplayer(var_01))
{
continue;
}
if(randomfloat(1) < 0.9)
{
param_00 notify("birds_command","fly_away",var_01);
continue;
}
param_00 notify("never_mind");
}
}
//Function Number: 11
func_1768(param_00)
{
var_01 = cos(32.5);
param_00 lib_055B::func_84F0("birds");
for(;;)
{
self waittill("trigger",var_02);
if(!isplayer(var_02))
{
continue;
}
if(!param_00.var_1767)
{
continue;
}
var_03 = var_02 func_72E5(param_00.var_AA2A,var_01) && param_00 lib_055B::func_5977(var_02);
if(var_03)
{
param_00 notify("birds_command","fly_away",var_02);
continue;
}
param_00 notify("never_mind");
while(isalive(var_02) && var_02 istouching(self))
{
wait(1);
}
wait(10);
}
}
//Function Number: 12
func_1764()
{
self endon("birds_command");
for(;;)
{
wait(5);
if(func_0F0D(0))
{
self notify("birds_command","never_mind");
}
}
}
//Function Number: 13
func_1766()
{
self endon("birds_command");
wait(randomfloatrange(15,45));
self notify("birds_command","never_mind");
}
//Function Number: 14
func_72E5(param_00,param_01)
{
return vectordot(vectornormalize(param_00 - self geteye()),anglestoforward(self getangles())) > param_01;
}