Files
IL-GSC/IW/PC/ALL/scripts/mp/killstreaks/_harrier.gsc
2023-10-27 03:49:01 -04:00

1231 lines
24 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_harrier.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 47
* Decompile Time: 2219 ms
* Timestamp: 10/27/2023 12:28:36 AM
*******************************************************************/
//Function Number: 1
func_2A6A(param_00,param_01,param_02)
{
var_03 = getent("airstrikeheight","targetname");
if(isdefined(var_03))
{
var_04 = var_03.origin[2];
}
else if(isdefined(level.var_1AF8))
{
var_04 = 850 * level.var_1AF8;
}
else
{
var_04 = 850;
}
param_02 = param_02 * (1,1,0);
var_05 = param_02 + (0,0,var_04);
var_06 = func_10845(param_00,self,param_01,var_05);
var_06.var_C96C = var_05;
return var_06;
}
//Function Number: 2
func_7E3E(param_00,param_01,param_02)
{
var_03 = 1200;
var_04 = func_11A87(param_00,param_01);
var_05 = var_04 + var_03;
if(isdefined(level.var_1AF8) && var_05 < 850 * level.var_1AF8)
{
var_05 = 950 * level.var_1AF8;
}
var_05 = var_05 + randomint(param_02);
return var_05;
}
//Function Number: 3
func_10845(param_00,param_01,param_02,param_03)
{
var_04 = vectortoangles(param_03 - param_02);
var_05 = spawnhelicopter(param_01,param_02,var_04,"harrier_mp","vehicle_av8b_harrier_jet_mp");
if(!isdefined(var_05))
{
return;
}
var_05 func_184E();
var_05 thread func_E10A();
var_05 thread func_8992();
var_05.var_2B3 = 250;
var_05.var_1545 = 175;
var_05.health = 2500;
var_05.maxhealth = var_05.health;
var_05.team = param_01.team;
var_05.var_222 = param_01;
var_05 setcandamage(1);
var_05.var_222 = param_01;
var_05 thread func_8B5B();
var_05 method_830A(0,90);
var_05 method_83E5(var_05.var_2B3,var_05.var_1545);
var_05 thread func_D494();
var_05 method_82CE(3);
var_05.var_B898 = 6;
var_05.pers["team"] = var_05.team;
var_05 method_82F6(50,100,50);
var_05 method_8354(0.05);
var_05 method_8378(45,25,25,0.5);
var_05.var_5087 = param_03;
var_05.var_AC68 = param_00;
var_05.var_1C9F = 1;
var_05.var_9E20 = 1;
var_05.var_4D2E = ::func_3758;
level.var_8B5F = scripts\common\utility::func_22BC(level.var_8B5F);
level.var_8B5F[level.var_8B5F.size] = var_05;
level.var_8B58 = undefined;
return var_05;
}
//Function Number: 4
func_5088(param_00)
{
param_00 endon("death");
param_00 thread func_8B61();
param_00 method_8362(param_00.var_C96C,1);
param_00 thread func_42AB(param_00.var_C96C);
param_00 waittill("goal");
param_00 func_11075();
param_00 func_658C();
param_00 thread func_B9FF();
}
//Function Number: 5
func_42AB(param_00)
{
self endon("goal");
self endon("death");
for(;;)
{
if(distance2d(self.origin,param_00) < 768)
{
self method_830A(45,25);
break;
}
wait(0.05);
}
}
//Function Number: 6
func_658C()
{
self notify("engageGround");
self endon("engageGround");
self endon("death");
thread func_8B5D();
thread func_DCB0();
var_00 = self.var_5087;
self method_83E5(15,5);
self method_8362(var_00,1);
self waittill("goal");
}
//Function Number: 7
func_8B5E()
{
self endon("death");
self method_830A(0,0);
self notify("leaving");
func_2FC0(1);
self notify("stopRand");
for(;;)
{
self method_83E5(35,25);
var_00 = self.origin + anglestoforward((0,randomint(360),0)) * 500;
var_00 = var_00 + (0,0,900);
var_01 = bullettrace(self.origin,self.origin + (0,0,900),0,self);
if(var_01["surfacetype"] == "none")
{
break;
}
wait(0.1);
}
self method_8362(var_00,1);
thread func_10DA1();
self waittill("goal");
self playsoundonmovingent("harrier_fly_away");
var_02 = func_8051();
self method_83E5(250,75);
self method_8362(var_02,1);
self waittill("goal");
level.var_8B5F[level.var_8B5F.size - 1] = undefined;
self notify("harrier_gone");
thread func_8B5A();
}
//Function Number: 8
func_8B5A()
{
self delete();
}
//Function Number: 9
func_8B61()
{
self endon("death");
scripts\mp\_hostmigration::func_13708(90);
func_8B5E();
}
//Function Number: 10
func_DCB0()
{
self notify("randomHarrierMovement");
self endon("randomHarrierMovement");
self endon("stopRand");
self endon("death");
self endon("acquiringTarget");
self endon("leaving");
var_00 = self.var_5087;
for(;;)
{
var_01 = func_7FE2(self.origin);
self method_8362(var_01,1);
self waittill("goal");
wait(randomintrange(1,2));
self notify("randMove");
}
}
//Function Number: 11
func_7FE2(param_00,param_01)
{
self endon("stopRand");
self endon("death");
self endon("acquiringTarget");
self endon("leaving");
if(!isdefined(param_01))
{
var_02 = [];
foreach(var_04 in level.players)
{
if(var_04 == self)
{
continue;
}
if(!level.teambased || var_04.team != self.team)
{
var_02[var_02.size] = var_04.origin;
}
}
if(var_02.size > 0)
{
var_06 = averagepoint(var_02);
var_07 = var_06[0];
var_08 = var_06[1];
}
else
{
var_09 = level.var_B32E;
var_0A = level.var_B339 / 4;
var_07 = randomfloatrange(var_09[0] - var_0A,var_09[0] + var_0A);
var_08 = randomfloatrange(var_09[1] - var_0A,var_09[1] + var_0A);
}
var_0B = func_7E3E(var_07,var_08,20);
}
else if(scripts\common\utility::func_4347())
{
var_0C = self.origin - self.var_2A9A.origin;
var_07 = var_0C[0];
var_08 = var_0C[1] * -1;
var_0B = func_7E3E(var_07,var_08,20);
var_0D = (var_08,var_07,var_0B);
if(distance2d(self.origin,var_0D) > 1200)
{
var_08 = var_08 * 0.5;
var_07 = var_07 * 0.5;
var_0D = (var_08,var_07,var_0B);
}
}
else
{
if(distance2d(self.origin,self.var_2A9A.origin) < 200)
{
return;
}
var_0E = self.angles[1];
var_0F = (0,var_0E,0);
var_10 = self.origin + anglestoforward(var_0F) * randomintrange(200,400);
var_0B = func_7E3E(var_10[0],var_10[1],20);
var_07 = var_10[0];
var_08 = var_10[1];
}
for(;;)
{
var_11 = func_11A8A(var_07,var_08,var_0B);
if(var_11 != 0)
{
return var_11;
}
var_07 = randomfloatrange(param_00[0] - 1200,param_00[0] + 1200);
var_08 = randomfloatrange(param_00[1] - 1200,param_00[1] + 1200);
var_0B = func_7E3E(var_07,var_08,20);
}
}
//Function Number: 12
func_11A8A(param_00,param_01,param_02)
{
self endon("stopRand");
self endon("death");
self endon("acquiringTarget");
self endon("leaving");
self endon("randMove");
for(var_03 = 1;var_03 <= 10;var_03++)
{
switch(var_03)
{
case 1:
var_04 = bullettrace(self.origin,(param_00,param_01,param_02),0,self);
break;
case 2:
var_04 = bullettrace(self gettagorigin("tag_left_wingtip"),(param_00,param_01,param_02),0,self);
break;
case 3:
var_04 = bullettrace(self gettagorigin("tag_right_wingtip"),(param_00,param_01,param_02),0,self);
break;
case 4:
var_04 = bullettrace(self gettagorigin("tag_engine_left2"),(param_00,param_01,param_02),0,self);
break;
case 5:
var_04 = bullettrace(self gettagorigin("tag_engine_right2"),(param_00,param_01,param_02),0,self);
break;
case 6:
var_04 = bullettrace(self gettagorigin("tag_right_alamo_missile"),(param_00,param_01,param_02),0,self);
break;
case 7:
var_04 = bullettrace(self gettagorigin("tag_left_alamo_missile"),(param_00,param_01,param_02),0,self);
break;
case 8:
var_04 = bullettrace(self gettagorigin("tag_right_archer_missile"),(param_00,param_01,param_02),0,self);
break;
case 9:
var_04 = bullettrace(self gettagorigin("tag_left_archer_missile"),(param_00,param_01,param_02),0,self);
break;
case 10:
var_04 = bullettrace(self gettagorigin("tag_light_tail"),(param_00,param_01,param_02),0,self);
break;
default:
var_04 = bullettrace(self.origin,(param_00,param_01,param_02),0,self);
break;
}
if(var_04["surfacetype"] != "none")
{
return 0;
}
wait(0.05);
}
var_05 = (param_00,param_01,param_02);
return var_05;
}
//Function Number: 13
func_11A87(param_00,param_01)
{
self endon("death");
self endon("acquiringTarget");
self endon("leaving");
var_02 = -9999999;
var_03 = 9999999;
var_04 = -9999999;
var_05 = self.origin[2];
var_06 = undefined;
var_07 = undefined;
for(var_08 = 1;var_08 <= 5;var_08++)
{
switch(var_08)
{
case 1:
var_09 = bullettrace((param_00,param_01,var_05),(param_00,param_01,var_04),0,self);
break;
case 2:
var_09 = bullettrace((param_00 + 20,param_01 + 20,var_05),(param_00 + 20,param_01 + 20,var_04),0,self);
break;
case 3:
var_09 = bullettrace((param_00 - 20,param_01 - 20,var_05),(param_00 - 20,param_01 - 20,var_04),0,self);
break;
case 4:
var_09 = bullettrace((param_00 + 20,param_01 - 20,var_05),(param_00 + 20,param_01 - 20,var_04),0,self);
break;
case 5:
var_09 = bullettrace((param_00 - 20,param_01 + 20,var_05),(param_00 - 20,param_01 + 20,var_04),0,self);
break;
default:
var_09 = bullettrace(self.origin,(param_00,param_01,var_04),0,self);
break;
}
if(var_09["position"][2] > var_02)
{
var_02 = var_09["position"][2];
var_06 = var_09;
}
else if(var_09["position"][2] < var_03)
{
var_03 = var_09["position"][2];
var_07 = var_09;
}
wait(0.05);
}
return var_02;
}
//Function Number: 14
func_D494()
{
self endon("death");
wait(0.2);
playfxontag(level.var_7546,self,"tag_right_wingtip");
playfxontag(level.var_7546,self,"tag_left_wingtip");
wait(0.2);
playfxontag(level.var_8B56,self,"tag_engine_right");
playfxontag(level.var_8B56,self,"tag_engine_left");
wait(0.2);
playfxontag(level.var_8B56,self,"tag_engine_right2");
playfxontag(level.var_8B56,self,"tag_engine_left2");
wait(0.2);
playfxontag(level.var_3F19["light"]["left"],self,"tag_light_L_wing");
wait(0.2);
playfxontag(level.var_3F19["light"]["right"],self,"tag_light_R_wing");
wait(0.2);
playfxontag(level.var_3F19["light"]["belly"],self,"tag_light_belly");
wait(0.2);
playfxontag(level.var_3F19["light"]["tail"],self,"tag_light_tail");
}
//Function Number: 15
func_11075()
{
stopfxontag(level.var_7546,self,"tag_right_wingtip");
stopfxontag(level.var_7546,self,"tag_left_wingtip");
}
//Function Number: 16
func_10DA1()
{
wait(3);
if(!isdefined(self))
{
return;
}
playfxontag(level.var_7546,self,"tag_right_wingtip");
playfxontag(level.var_7546,self,"tag_left_wingtip");
}
//Function Number: 17
func_8054(param_00)
{
var_01 = 100;
var_02 = 15000;
var_03 = 850;
var_04 = randomfloat(360);
var_05 = (0,var_04,0);
var_06 = param_00 + anglestoforward(var_05) * -1 * var_02;
var_06 = var_06 + (randomfloat(2) - 1 * var_01,randomfloat(2) - 1 * var_01,0);
return var_06;
}
//Function Number: 18
func_8051()
{
var_00 = 150;
var_01 = 15000;
var_02 = 850;
var_03 = self.angles[1];
var_04 = (0,var_03,0);
var_05 = self.origin + anglestoforward(var_04) * var_01;
return var_05;
}
//Function Number: 19
func_6D7A(param_00,param_01)
{
self endon("leaving");
self endon("stopfiring");
self endon("explode");
self endon("death");
self.var_2A9A endon("death");
self.var_2A9A endon("disconnect");
var_02 = gettime();
var_03 = gettime();
var_04 = 0;
self method_8365("harrier_20mm_mp");
if(!isdefined(param_01))
{
param_01 = 50;
}
for(;;)
{
if(func_9F16(param_00))
{
break;
}
else
{
wait(0.25);
}
}
self method_835C(self.var_2A9A,(0,0,50));
var_05 = 25;
for(;;)
{
if(var_05 == 25)
{
self playloopsound("weap_hind_20mm_fire_npc");
}
var_05--;
self method_80EB("tag_flash",self.var_2A9A,(0,0,0),0.05);
wait(0.1);
if(var_05 <= 0)
{
self stoploopsound();
wait(1);
var_05 = 25;
}
}
}
//Function Number: 20
func_9F16(param_00)
{
self endon("death");
self endon("leaving");
if(!isdefined(param_00))
{
param_00 = 10;
}
var_01 = anglestoforward(self.angles);
var_02 = self.var_2A9A.origin - self.origin;
var_01 = var_01 * (1,1,0);
var_02 = var_02 * (1,1,0);
var_02 = vectornormalize(var_02);
var_01 = vectornormalize(var_01);
var_03 = vectordot(var_02,var_01);
var_04 = cos(param_00);
if(var_03 >= var_04)
{
return 1;
}
return 0;
}
//Function Number: 21
func_1570(param_00)
{
self endon("death");
self endon("leaving");
if(param_00.size == 1)
{
self.var_2A9A = param_00[0];
}
else
{
self.var_2A9A = func_7E05(param_00);
}
func_2737(0);
self notify("acquiringTarget");
self method_835C(self.var_2A9A);
self method_8305(self.var_2A9A);
var_01 = func_7FE2(self.origin,1);
if(!isdefined(var_01))
{
var_01 = self.origin;
}
self method_8362(var_01,1);
thread func_13B74();
thread func_13B77();
self method_8365("harrier_20mm_mp");
thread func_6D7A();
}
//Function Number: 22
func_2737(param_00)
{
self method_8362(self.var_5087,1);
if(isdefined(param_00) && param_00)
{
self waittill("goal");
}
}
//Function Number: 23
func_13DCF(param_00)
{
var_01 = bullettrace(self.origin,param_00,1,self);
if(var_01["position"] == param_00)
{
return 0;
}
return 1;
}
//Function Number: 24
func_13B74()
{
self notify("watchTargetDeath");
self endon("watchTargetDeath");
self endon("newTarget");
self endon("death");
self endon("leaving");
self.var_2A9A waittill("death");
thread func_2FC0();
}
//Function Number: 25
func_13B77(param_00)
{
self endon("death");
self.var_2A9A endon("death");
self.var_2A9A endon("disconnect");
self endon("leaving");
self endon("newTarget");
var_01 = undefined;
if(!isdefined(param_00))
{
param_00 = 1000;
}
for(;;)
{
if(!func_9F97(self.var_2A9A))
{
thread func_2FC0();
return;
}
if(!isdefined(self.var_2A9A))
{
thread func_2FC0();
return;
}
if(self.var_2A9A method_838A(self.origin,self) < 1)
{
if(!isdefined(var_01))
{
var_01 = gettime();
}
if(gettime() - var_01 > param_00)
{
thread func_2FC0();
return;
}
}
else
{
var_01 = undefined;
}
wait(0.25);
}
}
//Function Number: 26
func_2FC0(param_00)
{
self endon("death");
self method_8076();
self stoploopsound();
self notify("stopfiring");
if(isdefined(param_00) && param_00)
{
return;
}
thread func_DCB0();
self notify("newTarget");
thread func_8B5D();
}
//Function Number: 27
func_8B5D()
{
self notify("harrierGetTargets");
self endon("harrierGetTargets");
self endon("death");
self endon("leaving");
var_00 = [];
for(;;)
{
var_00 = [];
var_01 = level.players;
if(isdefined(level.var_3F14) && level.var_3F14.team != self.team && isalive(level.var_3F14))
{
if(!isdefined(level.var_3F14.var_C084) || isdefined(level.var_3F14.var_C084) && !level.var_3F14.var_C084)
{
thread func_6591(level.var_3F14);
return;
}
else
{
func_2737(1);
}
}
if(isdefined(level.var_AD8B))
{
foreach(var_03 in level.var_AD8B)
{
if(isdefined(var_03) && var_03.team != self.team && isdefined(var_03.var_8DCF) && var_03.var_8DCF == "heli_pilot")
{
thread func_6591(var_03);
return;
}
}
}
for(var_05 = 0;var_05 < var_01.size;var_05++)
{
var_06 = var_01[var_05];
if(func_9F97(var_06))
{
if(isdefined(var_01[var_05]))
{
var_00[var_00.size] = var_01[var_05];
}
}
else
{
continue;
}
wait(0.05);
}
if(var_00.size > 0)
{
func_1570(var_00);
return;
}
wait(1);
}
}
//Function Number: 28
func_9F97(param_00)
{
self endon("death");
if(!isalive(param_00) || param_00.sessionstate != "playing")
{
return 0;
}
if(isdefined(self.var_222) && param_00 == self.var_222)
{
return 0;
}
if(distance(param_00.origin,self.origin) > 8192)
{
return 0;
}
if(distance2d(param_00.origin,self.origin) < 150)
{
return 0;
}
if(!isdefined(param_00.pers["team"]))
{
return 0;
}
if(level.teambased && param_00.pers["team"] == self.team)
{
return 0;
}
if(param_00.pers["team"] == "spectator")
{
return 0;
}
if(isdefined(param_00.var_10916) && gettime() - param_00.var_10916 / 1000 <= 5)
{
return 0;
}
if(param_00 scripts\mp\_utility::_hasperk("specialty_blindeye"))
{
return 0;
}
var_01 = self.origin + (0,0,-160);
var_02 = anglestoforward(self.angles);
var_03 = var_01 + 144 * var_02;
var_04 = param_00 method_838A(self.origin,self);
if(var_04 < 1)
{
return 0;
}
return 1;
}
//Function Number: 29
func_7E05(param_00)
{
self endon("death");
var_01 = self gettagorigin("tag_flash");
var_02 = self.origin;
var_03 = anglestoforward(self.angles);
var_04 = undefined;
var_05 = undefined;
var_06 = 0;
foreach(var_08 in param_00)
{
var_09 = abs(vectortoangles(var_08.origin - self.origin)[1]);
var_0A = abs(self gettagangles("tag_flash")[1]);
var_09 = abs(var_09 - var_0A);
var_0B = var_08 getweaponslistitems();
foreach(var_0D in var_0B)
{
if(issubstr(var_0D,"at4") || issubstr(var_0D,"stinger") || issubstr(var_0D,"jav"))
{
var_09 = var_09 - 40;
}
}
if(distance(self.origin,var_08.origin) > 2000)
{
var_09 = var_09 + 40;
}
if(!isdefined(var_04))
{
var_04 = var_09;
var_05 = var_08;
continue;
}
if(var_04 > var_09)
{
var_04 = var_09;
var_05 = var_08;
}
}
return var_05;
}
//Function Number: 30
func_6D75(param_00)
{
self endon("death");
self endon("leaving");
if(self.var_B898 <= 0)
{
return;
}
var_01 = func_3E13(param_00,256);
if(!isdefined(param_00))
{
return;
}
if(distance2d(self.origin,param_00.origin) < 512)
{
return;
}
if(isdefined(var_01) && var_01)
{
return;
}
self.var_B898--;
self method_8365("aamissile_projectile_mp");
if(isdefined(param_00.var_1155F))
{
var_02 = self method_80EB("tag_flash",param_00.var_1155F,(0,0,-250));
}
else
{
var_02 = self method_80EB("tag_flash",var_01,(0,0,-250));
}
var_02 missile_setflightmodedirect();
var_02 missile_settargetent(param_00);
}
//Function Number: 31
func_3E13(param_00,param_01)
{
self endon("death");
self endon("leaving");
var_02 = [];
var_03 = level.players;
var_04 = param_00.origin;
for(var_05 = 0;var_05 < var_03.size;var_05++)
{
var_06 = var_03[var_05];
if(var_06.team != self.team)
{
continue;
}
var_07 = var_06.origin;
if(distance2d(var_07,var_04) < 512)
{
return 1;
}
}
return 0;
}
//Function Number: 32
func_8992()
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
if(var_09 == "aamissile_projectile_mp" && var_04 == "MOD_EXPLOSIVE" && var_00 >= self.health)
{
func_3758(var_01,var_01,9001,0,var_04,var_09,var_03,var_02,var_03,0,0,var_07);
}
}
//Function Number: 33
func_3758(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
if((param_01 == self || isdefined(param_01.pers) && param_01.pers["team"] == self.team && !level.var_740A && level.teambased) && param_01 != self.var_222)
{
return;
}
if(self.health <= 0)
{
return;
}
param_02 = scripts\mp\_damage::func_8975(param_05,param_04,param_02);
switch(param_05)
{
case "iw6_rocketmutli_mp":
case "iw6_rocketplyr_mp":
case "remotemissile_projectile_mp":
case "odin_projectile_large_rod_mp":
case "javelin_mp":
case "stinger_mp":
case "ac130_40mm_mp":
case "ac130_105mm_mp":
self.var_A859 = 1;
param_02 = self.maxhealth + 1;
break;
case "at4_mp":
case "rpg_mp":
self.var_A859 = 1;
param_02 = self.maxhealth - 900;
break;
case "odin_projectile_small_rod_mp":
case "remote_tank_projectile_mp":
param_02 = int(self.maxhealth * 0.34);
self.var_A859 = 1;
break;
case "iw6_panzerfaust3_mp":
case "switch_blade_child_mp":
case "drone_hive_projectile_mp":
param_02 = int(self.maxhealth * 0.25);
self.var_A859 = 1;
break;
default:
if(param_05 != "none")
{
param_02 = int(param_02 / 2);
}
self.var_A859 = 0;
break;
}
scripts\mp\killstreaks\_killstreaks::func_A6A0(param_01,param_05,self);
param_01 scripts\mp\_damagefeedback::func_12E84("");
if(isplayer(param_01) && param_01 scripts\mp\_utility::_hasperk("specialty_armorpiercing"))
{
var_0C = int(param_02 * level.var_218B);
param_02 = param_02 + var_0C;
}
if(self.health <= param_02)
{
if(isplayer(param_01) && !isdefined(self.var_222) || param_01 != self.var_222)
{
thread scripts\mp\_utility::func_115DE("callout_destroyed_harrier",param_01);
param_01 thread scripts\mp\_utility::func_83B4("kill",param_05);
param_01 notify("destroyed_killstreak");
}
if(param_05 == "heli_pilot_turret_mp")
{
param_01 scripts\mp\_missions::func_D992("ch_enemy_down");
}
scripts\mp\_missions::func_3DE3(param_01,self,param_05);
self notify("death");
}
if(self.health - param_02 <= 900 && !isdefined(self.var_1037E) || !self.var_1037E)
{
thread func_CF0B();
self.var_1037E = 1;
}
self method_83DB(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
}
//Function Number: 34
func_CF0B()
{
self endon("death");
stopfxontag(level.var_8B56,self,"tag_engine_left");
playfxontag(level.var_8B59,self,"tag_engine_left");
stopfxontag(level.var_8B56,self,"tag_engine_right");
playfxontag(level.var_8B59,self,"tag_engine_right");
wait(0.15);
stopfxontag(level.var_8B56,self,"tag_engine_left2");
playfxontag(level.var_8B59,self,"tag_engine_left2");
stopfxontag(level.var_8B56,self,"tag_engine_right2");
playfxontag(level.var_8B59,self,"tag_engine_right2");
playfxontag(level.var_3F19["damage"]["heavy_smoke"],self,"tag_engine_left");
}
//Function Number: 35
func_8B5B()
{
self endon("harrier_gone");
self waittill("death");
if(!isdefined(self))
{
return;
}
if(!isdefined(self.var_A859))
{
self method_83E5(25,5);
thread func_8B60(randomintrange(180,220));
wait(randomfloatrange(0.5,1.5));
}
func_8B5C();
}
//Function Number: 36
func_8B5C()
{
self playsound("harrier_jet_crash");
level.var_8B5F[level.var_8B5F.size - 1] = undefined;
var_00 = self gettagangles("tag_deathfx");
playfx(level.var_8B57,self gettagorigin("tag_deathfx"),anglestoforward(var_00),anglestoup(var_00));
self notify("explode");
wait(0.05);
thread func_8B5A();
}
//Function Number: 37
func_8B60(param_00)
{
self endon("explode");
playfxontag(level.var_3F19["explode"]["medium"],self,"tag_origin");
self method_8378(param_00,param_00,param_00);
while(isdefined(self))
{
self method_8348(self.angles[1] + param_00 * 0.9);
wait(1);
}
}
//Function Number: 38
func_6591(param_00)
{
param_00 endon("death");
param_00 endon("leaving");
param_00 endon("crashing");
self endon("death");
func_1574(param_00);
thread func_6D7C();
}
//Function Number: 39
func_6D7C()
{
self endon("leaving");
self endon("stopfiring");
self endon("explode");
self.var_2A9A endon("crashing");
self.var_2A9A endon("leaving");
self.var_2A9A endon("death");
var_00 = gettime();
if(isdefined(self.var_2A9A) && self.var_2A9A.classname == "script_vehicle")
{
self method_835C(self.var_2A9A);
for(;;)
{
var_01 = distance2d(self.origin,self.var_2A9A.origin);
if(gettime() - var_00 > 2500 && var_01 > 1000)
{
func_6D75(self.var_2A9A);
var_00 = gettime();
}
wait(0.1);
}
}
}
//Function Number: 40
func_1574(param_00)
{
self endon("death");
self endon("leaving");
self notify("newTarget");
self.var_2A9A = param_00;
self notify("acquiringVehTarget");
self method_8305(self.var_2A9A);
thread func_13B9E();
thread func_13B9D();
self method_835C(self.var_2A9A);
}
//Function Number: 41
func_13B9D()
{
self endon("death");
self endon("leaving");
self.var_2A9A endon("death");
self.var_2A9A endon("drop_crate");
self.var_2A9A waittill("crashing");
func_2FC1();
}
//Function Number: 42
func_13B9E()
{
self endon("death");
self endon("leaving");
self.var_2A9A endon("crashing");
self.var_2A9A endon("drop_crate");
self.var_2A9A waittill("death");
func_2FC1();
}
//Function Number: 43
func_2FC1()
{
self method_8076();
if(isdefined(self.var_2A9A) && !isdefined(self.var_2A9A.var_C084))
{
self.var_2A9A.var_C084 = 1;
}
self notify("stopfiring");
self notify("newTarget");
thread func_11075();
thread func_658C();
}
//Function Number: 44
func_67E4()
{
self method_830A(15,80);
self method_83E5(50,100);
self method_8378(90,30,30,0.5);
var_00 = self.origin;
var_01 = self.angles[1];
if(scripts\common\utility::func_4347())
{
var_02 = (0,var_01 + 90,0);
}
else
{
var_02 = (0,var_02 - 90,0);
}
var_03 = self.origin + anglestoforward(var_02) * 500;
self method_8362(var_03,1);
self waittill("goal");
}
//Function Number: 45
func_184E()
{
level.var_8DD3[self getentitynumber()] = self;
}
//Function Number: 46
func_E10A()
{
var_00 = self getentitynumber();
self waittill("death");
level.var_8DD3[var_00] = undefined;
}
//Function Number: 47
func_B9FF()
{
self endon("death");
self endon("leaving");
if(!isdefined(self.var_222) || self.var_222.team != self.team)
{
thread func_8B5E();
return;
}
self.var_222 scripts\common\utility::waittill_any_3("joined_team","disconnect");
thread func_8B5E();
}