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

1911 lines
46 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_ball_drone.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 65
* Decompile Time: 3119 ms
* Timestamp: 10/27/2023 12:28:16 AM
*******************************************************************/
//Function Number: 1
init()
{
scripts\mp\killstreaks\_killstreaks::func_DEFB("ball_drone_radar",::func_128DB);
scripts\mp\killstreaks\_killstreaks::func_DEFB("ball_drone_backup",::func_128DB);
level._effect["kamikaze_drone_explode"] = loadfx("vfx/iw7/_requests/mp/killstreak/vfx_vulture_exp_vari.vfx");
level.var_27F0 = [];
level.var_27F0["ball_drone_radar"] = spawnstruct();
level.var_27F0["ball_drone_radar"].var_11901 = 60;
level.var_27F0["ball_drone_radar"].health = 999999;
level.var_27F0["ball_drone_radar"].maxhealth = 500;
level.var_27F0["ball_drone_radar"].var_110EA = "ball_drone_radar";
level.var_27F0["ball_drone_radar"].var_13260 = "ball_drone_mp";
level.var_27F0["ball_drone_radar"].var_B91A = "veh_mil_air_un_pocketdrone_mp";
level.var_27F0["ball_drone_radar"].var_115EB = "used_ball_drone_radar";
level.var_27F0["ball_drone_radar"].var_7638 = loadfx("vfx/core/mp/killstreaks/vfx_ims_sparks");
level.var_27F0["ball_drone_radar"].var_7630 = loadfx("vfx/core/expl/vehicle/ball/vfx_exp_ball_drone.vfx");
level.var_27F0["ball_drone_radar"].var_1045F = "ball_drone_explode";
level.var_27F0["ball_drone_radar"].var_13523 = "nowl_destroyed";
level.var_27F0["ball_drone_radar"].var_13553 = "nowl_gone";
level.var_27F0["ball_drone_radar"].var_EC44 = "destroyed_ball_drone_radar";
level.var_27F0["ball_drone_radar"].var_D483 = ::func_DBD4;
level.var_27F0["ball_drone_radar"].var_7632 = [];
level.var_27F0["ball_drone_radar"].var_7633 = [];
level.var_27F0["ball_drone_radar"].var_7634 = [];
level.var_27F0["ball_drone_radar"].var_7635 = [];
level.var_27F0["ball_drone_radar"].var_7632["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_light_detonator_blink");
level.var_27F0["ball_drone_radar"].var_7633["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_light_detonator_blink");
level.var_27F0["ball_drone_radar"].var_7634["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_light_detonator_blink");
level.var_27F0["ball_drone_radar"].var_7635["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_light_detonator_blink");
level.var_27F0["ball_drone_radar"].var_7632["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly");
level.var_27F0["ball_drone_radar"].var_7633["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly");
level.var_27F0["ball_drone_radar"].var_7634["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly");
level.var_27F0["ball_drone_radar"].var_7635["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly");
level.var_27F0["ball_drone_radar"].var_10B83 = 110;
level.var_27F0["ball_drone_radar"].var_4AB0 = 70;
level.var_27F0["ball_drone_radar"].var_DA90 = 36;
level.var_27F0["ball_drone_radar"].var_2732 = 124;
level.var_27F0["ball_drone_radar"].var_101BA = 55;
level.var_27F0["ball_drone_backup"] = spawnstruct();
level.var_27F0["ball_drone_backup"].var_11901 = 60;
level.var_27F0["ball_drone_backup"].health = 999999;
level.var_27F0["ball_drone_backup"].maxhealth = 200;
level.var_27F0["ball_drone_backup"].var_110EA = "ball_drone_backup";
level.var_27F0["ball_drone_backup"].var_13260 = "backup_drone_mp";
level.var_27F0["ball_drone_backup"].var_B91A = "veh_mil_air_un_pocketdrone_mp";
level.var_27F0["ball_drone_backup"].var_115EB = "used_ball_drone_backup";
level.var_27F0["ball_drone_backup"].var_7630 = loadfx("vfx/iw7/core/mp/killstreaks/vfx_apex_dest_exp.vfx");
level.var_27F0["ball_drone_backup"].var_1045F = "ball_drone_explode";
level.var_27F0["ball_drone_backup"].var_13523 = "ball_drone_backup_destroy";
level.var_27F0["ball_drone_backup"].var_13553 = "ball_drone_backup_timeout";
level.var_27F0["ball_drone_backup"].var_EC44 = "destroyed_ball_drone";
level.var_27F0["ball_drone_backup"].var_39B = "ball_drone_gun_mp";
level.var_27F0["ball_drone_backup"].var_13CA8 = "veh_mil_air_un_pocketdrone_gun_mp";
level.var_27F0["ball_drone_backup"].var_13CD8 = "tag_turret";
level.var_27F0["ball_drone_backup"].var_10474 = "weap_p99_fire_npc";
level.var_27F0["ball_drone_backup"].var_10472 = "ball_drone_targeting";
level.var_27F0["ball_drone_backup"].var_10465 = "ball_drone_lockon";
level.var_27F0["ball_drone_backup"].var_F267 = "sentry";
level.var_27F0["ball_drone_backup"].var_1349E = 1440000;
level.var_27F0["ball_drone_backup"].var_32C1 = 15;
level.var_27F0["ball_drone_backup"].var_32C0 = 9;
level.var_27F0["ball_drone_backup"].var_C9D3 = 0.3;
level.var_27F0["ball_drone_backup"].var_C9D1 = 1.3;
level.var_27F0["ball_drone_backup"].var_AF30 = 0.075;
level.var_27F0["ball_drone_backup"].var_D483 = ::func_273C;
level.var_27F0["ball_drone_backup"].var_7632 = [];
level.var_27F0["ball_drone_backup"].var_7632["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_light_detonator_blink");
level.var_27F0["ball_drone_backup"].var_7632["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly");
level.var_27F0["ball_drone_backup"].var_10B83 = 110;
level.var_27F0["ball_drone_backup"].var_4AB0 = 70;
level.var_27F0["ball_drone_backup"].var_DA90 = 36;
level.var_27F0["ball_drone_backup"].var_2732 = 124;
level.var_27F0["ball_drone_backup"].var_101BA = 55;
level.var_27F0["ball_drone_ability_pet"] = spawnstruct();
level.var_27F0["ball_drone_ability_pet"].var_11901 = undefined;
level.var_27F0["ball_drone_ability_pet"].health = 999999;
level.var_27F0["ball_drone_ability_pet"].maxhealth = 500;
level.var_27F0["ball_drone_ability_pet"].var_110EA = undefined;
level.var_27F0["ball_drone_ability_pet"].var_13260 = "ball_drone_ability_pet_mp";
level.var_27F0["ball_drone_ability_pet"].var_B91A = "veh_mil_air_un_pocketdrone_mp";
level.var_27F0["ball_drone_ability_pet"].var_115EB = undefined;
level.var_27F0["ball_drone_ability_pet"].var_7638 = loadfx("vfx/core/mp/killstreaks/vfx_ims_sparks");
level.var_27F0["ball_drone_ability_pet"].var_7630 = loadfx("vfx/core/expl/vehicle/ball/vfx_exp_ball_drone.vfx");
level.var_27F0["ball_drone_ability_pet"].var_1045F = "ball_drone_explode";
level.var_27F0["ball_drone_ability_pet"].var_13523 = undefined;
level.var_27F0["ball_drone_ability_pet"].var_13553 = undefined;
level.var_27F0["ball_drone_ability_pet"].var_EC44 = undefined;
level.var_27F0["ball_drone_ability_pet"].var_54CE = 1;
level.var_27F0["ball_drone_ability_pet"].var_D483 = ::func_151B;
level.var_27F0["ball_drone_ability_pet"].var_7632 = [];
level.var_27F0["ball_drone_ability_pet"].var_7633 = [];
level.var_27F0["ball_drone_ability_pet"].var_7634 = [];
level.var_27F0["ball_drone_ability_pet"].var_7635 = [];
level.var_27F0["ball_drone_ability_pet"].var_7632["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_1");
level.var_27F0["ball_drone_ability_pet"].var_7633["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_2");
level.var_27F0["ball_drone_ability_pet"].var_7634["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_3");
level.var_27F0["ball_drone_ability_pet"].var_7635["enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_4");
level.var_27F0["ball_drone_ability_pet"].var_7632["friendly"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_1");
level.var_27F0["ball_drone_ability_pet"].var_7633["friendly"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_2");
level.var_27F0["ball_drone_ability_pet"].var_7634["friendly"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_3");
level.var_27F0["ball_drone_ability_pet"].var_7635["friendly"] = loadfx("vfx/core/mp/killstreaks/vfx_ball_drone_ability_4");
level.var_27F0["ball_drone_ability_pet"].var_E192 = 1;
level.var_27F0["ball_drone_ability_pet"].var_10B83 = 95;
level.var_27F0["ball_drone_ability_pet"].var_4AB0 = 60;
level.var_27F0["ball_drone_ability_pet"].var_DA90 = 36;
level.var_27F0["ball_drone_ability_pet"].var_2732 = 124;
level.var_27F0["ball_drone_ability_pet"].var_101BA = 20;
level.var_27EF = [];
level.balldronepathnodes = function_0076();
var_00 = ["passive_guard","passive_no_radar","passive_self_destruct","passive_decreased_health","passive_seeker","passive_decreased_speed"];
scripts\mp\_killstreak_loot::func_DF07("ball_drone_backup",var_00);
}
//Function Number: 2
func_128DB(param_00)
{
return func_13047(param_00.var_110EA,param_00);
}
//Function Number: 3
func_13047(param_00,param_01)
{
var_02 = 1;
if(scripts\mp\_utility::func_9FC6())
{
return 0;
}
else if(func_68C0())
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_AIR_SPACE_TOO_CROWDED");
return 0;
}
else if(scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA + var_02 >= scripts\mp\_utility::func_B4D2())
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_TOO_MANY_VEHICLES");
return 0;
}
else if(isdefined(self.var_27D3))
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_COMPANION_ALREADY_EXISTS");
return 0;
}
else if(isdefined(self.var_5CC4))
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_UNAVAILABLE");
return 0;
}
scripts\mp\_utility::func_93FA();
var_03 = func_4986(param_00,param_01);
if(!isdefined(var_03))
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_UNAVAILABLE");
scripts\mp\_utility::func_4FC1();
return 0;
}
self.var_27D3 = var_03;
thread func_10D6E(var_03);
self.var_27D3 thread func_CA50();
var_04 = level.var_27F0[param_00].var_115EB;
var_05 = scripts\mp\_killstreak_loot::getrarityforlootitem(param_01.var_1318B);
if(var_05 != "")
{
var_04 = var_04 + "_" + var_05;
}
level thread scripts\mp\_utility::func_115DE(var_04,self);
if(param_00 == "ball_drone_backup" && lib_0D65::func_8011(self,"dog") > 0)
{
scripts\mp\_missions::func_D992("ch_twiceasdeadly");
}
return 1;
}
//Function Number: 4
func_4986(param_00,param_01)
{
var_02 = self.angles;
var_03 = anglestoforward(self.angles);
var_04 = self.origin + var_03 * 100 + (0,0,90);
var_05 = self.origin + (0,0,90);
var_06 = bullettrace(var_05,var_04,0);
var_07 = 3;
while(var_06["surfacetype"] != "none" && var_07 > 0)
{
var_04 = self.origin + vectornormalize(var_05 - var_06["position"]) * 5;
var_06 = bullettrace(var_05,var_04,0);
var_07--;
wait(0.05);
}
if(var_07 <= 0)
{
return;
}
var_08 = anglestoright(self.angles);
var_09 = self.origin + var_08 * 20 + (0,0,90);
var_06 = bullettrace(var_04,var_09,0);
var_07 = 3;
while(var_06["surfacetype"] != "none" && var_07 > 0)
{
var_09 = var_04 + vectornormalize(var_04 - var_06["position"]) * 5;
var_06 = bullettrace(var_04,var_09,0);
var_07--;
wait(0.05);
}
if(var_07 <= 0)
{
return;
}
var_0A = level.var_27F0[param_00].var_B91A;
var_0B = level.var_27F0[param_00].maxhealth;
var_0C = &"KILLSTREAKS_HINTS_VULTURE_SUPPORT";
var_0D = scripts\mp\_killstreak_loot::getrarityforlootitem(param_01.var_1318B);
if(var_0D != "")
{
var_0A = var_0A + "_" + var_0D;
}
if(scripts\mp\killstreaks\_utility::func_A69F(param_01,"passive_self_destruct"))
{
var_0B = int(var_0B / 1.1);
}
if(scripts\mp\killstreaks\_utility::func_A69F(param_01,"passive_guard"))
{
var_0C = &"KILLSTREAKS_HINTS_VULTURE_GUARD";
}
var_0E = spawnhelicopter(self,var_04,var_02,level.var_27F0[param_00].var_13260,var_0A);
if(!isdefined(var_0E))
{
return;
}
var_0E method_80C7();
var_0E method_8317(1);
var_0E method_81FA(1);
var_0E.health = level.var_27F0[param_00].health;
var_0E.maxhealth = var_0B;
var_0E.var_E1 = 0;
var_0E.var_2B3 = 140;
var_0E.var_7247 = 140;
var_0E.var_222 = self;
var_0E.team = self.team;
var_0E.var_27F1 = param_00;
var_0E.var_BC = "ASSAULT";
var_0E.var_4C08 = var_0C;
var_0E.var_110E8 = param_01;
var_0E method_83E5(var_0E.var_2B3,16,16);
var_0E method_8378(120,90);
var_0E method_8316(16);
var_0E method_82F6(30,10,5);
var_0E method_856A(50,1.3,30,20);
var_0E method_831F(self);
var_0E method_84E1(1);
var_0E method_84E0(1);
var_0E.var_130AC = spawn("script_model",var_0E.origin);
var_0E.var_130AC linkto(var_0E,"tag_origin");
var_0E scripts\mp\killstreaks\_utility::func_1843(var_0E.var_27F1,"Killstreak_Ground",var_0E.var_222,1);
if(level.teambased)
{
var_0E scripts\mp\_entityheadicons::func_F877(var_0E.team,(0,0,25));
}
else
{
var_0E scripts\mp\_entityheadicons::func_F7F2(var_0E.var_222,(0,0,25));
}
var_0F = 45;
var_10 = 45;
switch(param_00)
{
case "ball_drone_radar":
var_0F = 90;
var_10 = 90;
var_11 = spawn("script_model",self.origin);
var_11.team = self.team;
var_11 method_81F3(self);
var_0E.var_DBBF = var_11;
var_0E thread func_DBD6();
var_0E.var_1E2D = 99999;
var_0E.var_37C5 = distance(var_0E.origin,var_0E gettagorigin("camera_jnt"));
var_0E thread scripts\mp\_trophy_system::func_1282B();
var_0E thread func_27DD();
break;
case "ball_drone_backup":
var_0E method_8378(150,90);
var_0E method_856A(100,1.3,30,20);
var_0E.var_7247 = 140;
var_12 = spawnturret("misc_turret",var_0E gettagorigin(level.var_27F0[param_00].var_13CD8),level.var_27F0[param_00].var_39B);
var_12 linkto(var_0E,level.var_27F0[param_00].var_13CD8);
var_12 setmodel(level.var_27F0[param_00].var_13CA8);
var_12.angles = var_0E.angles;
var_12.var_222 = var_0E.var_222;
var_12.team = self.team;
var_12 method_81F5();
var_12 makeunusable();
var_12.var_131A0 = var_0E;
var_12.var_110E8 = param_01;
var_12.health = level.var_27F0[param_00].health;
var_12.maxhealth = level.var_27F0[param_00].maxhealth;
var_12.var_E1 = 0;
var_13 = self.origin + var_03 * -100 + (0,0,40);
var_12.var_92FD = spawn("script_origin",var_13);
var_12.var_92FD.var_336 = "test";
thread func_92FE(var_12.var_92FD);
if(level.teambased)
{
var_12 method_835E(self.team);
}
var_12 method_830F(level.var_27F0[param_00].var_F267);
var_12 method_8336(self);
var_12 method_82FB(180);
var_12 method_8330(180);
var_12 method_82B6(50);
var_12 thread func_27D4();
var_12 method_835A(1,"buddy_turret");
var_12 method_82C8(0.8);
var_14 = var_0E.origin + anglestoforward(var_0E.angles) * -10 + anglestoright(var_0E.angles) * -10 + (0,0,6);
var_12.var_A63A = spawn("script_model",var_14);
var_12.var_A63A setscriptmoverkillcam("explosive");
var_12.var_A63A linkto(var_0E);
var_0E.var_129B9 = var_12;
var_12.parent = var_0E;
var_0E thread func_27D5();
var_0E.var_129B9 thread func_27D6();
break;
case "alien_ball_drone_4":
case "alien_ball_drone_3":
case "alien_ball_drone_2":
case "alien_ball_drone_1":
case "alien_ball_drone":
case "ball_drone_eng_lethal":
var_12 = spawnturret("misc_turret",var_0E gettagorigin(level.var_27F0[param_00].var_13CD8),level.var_27F0[param_00].var_39B);
var_12 linkto(var_0E,level.var_27F0[param_00].var_13CD8);
var_12 setmodel(level.var_27F0[param_00].var_13CA8);
var_12.angles = var_0E.angles;
var_12.var_222 = var_0E.var_222;
var_12.team = self.team;
var_12 method_81F5();
var_12 makeunusable();
var_12.var_131A0 = var_0E;
var_12.health = level.var_27F0[param_00].health;
var_12.maxhealth = level.var_27F0[param_00].maxhealth;
var_12.var_E1 = 0;
var_13 = self.origin + var_03 * -100 + (0,0,40);
var_12.var_92FD = spawn("script_origin",var_13);
var_12.var_92FD.var_336 = "test";
thread func_92FE(var_12.var_92FD);
if(level.teambased)
{
var_12 method_835E(self.team);
}
var_12 method_830F(level.var_27F0[param_00].var_F267);
var_12 method_8336(self);
var_12 method_82FB(180);
var_12 method_8330(180);
var_12 method_82B6(50);
var_12 thread func_27D4();
var_12 method_835A(1,"buddy_turret");
var_12 method_82C8(0.8);
var_14 = var_0E.origin + anglestoforward(var_0E.angles) * -10 + anglestoright(var_0E.angles) * -10 + (0,0,10);
var_12.var_A63A = spawn("script_model",var_14);
var_12.var_A63A setscriptmoverkillcam("explosive");
var_12.var_A63A linkto(var_0E);
var_0E.var_129B9 = var_12;
var_12.parent = var_0E;
var_0E thread func_27D5();
var_0E.var_129B9 thread func_27D6();
break;
case "ball_drone_ability_pet":
var_0F = 90;
var_10 = 90;
break;
default:
break;
}
var_0E method_830A(var_0F,var_10);
var_0E.var_1157A = var_09;
var_0E.var_254D = 10000;
var_0E.var_254C = 150;
var_0E.var_2550 = missile_createattractorent(var_0E,var_0E.var_254D,var_0E.var_254C);
var_0E.var_8BE5 = 0;
var_0E.var_11196 = 0;
var_0E.var_93AF = 0;
var_0E thread func_13A10();
var_0E thread func_27E3();
var_0E thread func_27EB();
var_0E thread func_27E6();
var_0E thread func_27E5();
var_0E thread func_27E9();
var_0E thread func_27E1();
var_15 = spawnstruct();
var_15.var_13139 = 1;
var_15.var_4E53 = ::func_27E0;
var_0E thread scripts\mp\_movers::func_892F(var_15);
if(isdefined(level.var_27F0[var_0E.var_27F1].var_110EA))
{
var_0E.var_222 scripts\mp\_matchdata::func_AFC9(level.var_27F0[var_0E.var_27F1].var_110EA,var_0E.var_1157A);
}
var_0E thread balldrone_destroyongameend();
return var_0E;
}
//Function Number: 5
func_27E0(param_00)
{
if(!isdefined(param_00.var_AA33.var_52CF) || param_00.var_AA33.var_52CF)
{
self notify("death");
}
}
//Function Number: 6
func_92FE(param_00)
{
self endon("disconnect");
level endon("game_ended");
param_00 endon("death");
var_01 = anglestoforward(self.angles);
for(;;)
{
if(scripts\mp\_utility::func_9F19(self) && !scripts\mp\_utility::func_9FC6() && anglestoforward(self.angles) != var_01)
{
var_01 = anglestoforward(self.angles);
var_02 = self.origin + var_01 * -100 + (0,0,40);
param_00 moveto(var_02,0.5);
}
wait(0.5);
}
}
//Function Number: 7
func_27D9()
{
self endon("death");
var_00 = level.var_27F0[self.var_27F1];
for(;;)
{
foreach(var_02 in level.players)
{
if(isdefined(var_02))
{
if(level.teambased)
{
if(var_02.team != self.team)
{
self [[ var_00.var_D483 ]]("enemy",var_02);
}
continue;
}
if(var_02 != self.var_222)
{
self [[ var_00.var_D483 ]]("enemy",var_02);
}
}
}
wait(1);
}
}
//Function Number: 8
func_27DB()
{
self endon("death");
var_00 = level.var_27F0[self.var_27F1];
foreach(var_02 in level.players)
{
if(isdefined(var_02))
{
if(level.teambased)
{
if(var_02.team == self.team)
{
self [[ var_00.var_D483 ]]("friendly",var_02);
}
continue;
}
if(var_02 == self.var_222)
{
self [[ var_00.var_D483 ]]("friendly",var_02);
}
}
}
thread func_139D6();
thread func_13AAD();
}
//Function Number: 9
func_27E1()
{
var_00 = level.var_27F0[self.var_27F1];
self [[ var_00.var_D483 ]]();
}
//Function Number: 10
func_273C(param_00,param_01)
{
self setscriptablepartstate("lights","idle",0);
self setscriptablepartstate("dust","active",0);
}
//Function Number: 11
func_151B(param_00,param_01)
{
self setscriptablepartstate("lights","idle",0);
}
//Function Number: 12
func_DBD4(param_00,param_01)
{
self setscriptablepartstate("lights","idle",0);
}
//Function Number: 13
func_139D6()
{
self endon("death");
for(;;)
{
level waittill("connected",var_00);
var_00 waittill("spawned_player");
var_01 = level.var_27F0[self.var_27F1];
if(isdefined(var_00))
{
if(level.teambased)
{
if(var_00.team == self.team)
{
self [[ var_01.var_D483 ]]("friendly",var_00);
}
else
{
self [[ var_01.var_D483 ]]("enemy",var_00);
}
continue;
}
if(var_00 == self.var_222)
{
self [[ var_01.var_D483 ]]("friendly",var_00);
continue;
}
self [[ var_01.var_D483 ]]("enemy",var_00);
}
}
}
//Function Number: 14
func_13AAD()
{
self endon("death");
for(;;)
{
level waittill("joined_team",var_00);
var_00 waittill("spawned_player");
var_01 = level.var_27F0[self.var_27F1];
if(isdefined(var_00))
{
if(level.teambased)
{
if(var_00.team == self.team)
{
self [[ var_01.var_D483 ]]("friendly",var_00);
}
else
{
self [[ var_01.var_D483 ]]("enemy",var_00);
}
continue;
}
if(var_00 == self.var_222)
{
self [[ var_01.var_D483 ]]("friendly",var_00);
continue;
}
self [[ var_01.var_D483 ]]("enemy",var_00);
}
}
}
//Function Number: 15
func_10D6E(param_00)
{
level endon("game_ended");
param_00 endon("death");
switch(param_00.var_27F1)
{
case "alien_ball_drone_4":
case "alien_ball_drone_3":
case "alien_ball_drone_2":
case "alien_ball_drone_1":
case "alien_ball_drone":
case "ball_drone_eng_lethal":
case "ball_drone_backup":
if(isdefined(param_00.var_129B9) && isdefined(param_00.var_129B9.var_92FD))
{
param_00 method_8305(param_00.var_129B9.var_92FD);
}
else
{
param_00 method_8305(self);
}
break;
default:
param_00 method_8305(self);
break;
}
var_01 = balldrone_gettargetoffset(param_00,self);
param_00 method_85C6(self,var_01,16,10);
param_00 method_83E5(param_00.var_2B3,10,10);
if(param_00.var_27F1 == "ball_drone_backup")
{
if(scripts\mp\killstreaks\_utility::func_A69F(param_00.var_110E8,"passive_seeker"))
{
param_00 thread balldrone_patrollevel();
param_00 thread balldrone_watchfornearbytargets();
return;
}
param_00 thread func_27DA();
param_00 thread func_27E7();
param_00 thread func_27EA();
param_00 thread func_27E8();
param_00 thread balldrone_watchmodeswitch();
}
}
//Function Number: 16
func_27DA()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self endon("target_assist");
self endon("player_defend");
self endon("switch_modes");
if(!isdefined(self.var_222))
{
thread func_27DE();
return;
}
self.var_222 endon("disconnect");
self endon("owner_gone");
if(self.var_27F1 != "ball_drone_eng_lethal")
{
self method_83E5(self.var_7247,20,20);
}
else
{
self method_83E5(self.var_7247,25,50);
}
for(;;)
{
var_00 = self.var_222 getstance();
if(!isdefined(self.var_A8F2) || var_00 != self.var_A8F2 || scripts\mp\_utility::func_9FB3(self.stoppedatlocation))
{
if(scripts\mp\_utility::func_9FB3(self.stoppedatlocation))
{
self.stoppedatlocation = undefined;
}
self.var_A8F2 = var_00;
var_01 = balldrone_gettargetoffset(self,self.var_222);
self method_85C6(self.var_222,var_01,16,10);
}
wait(0.5);
}
}
//Function Number: 17
func_27DC(param_00)
{
var_01 = param_00.var_10B83;
var_02 = self.var_222 getstance();
switch(var_02)
{
case "stand":
var_01 = param_00.var_10B83;
break;
case "crouch":
var_01 = param_00.var_4AB0;
break;
case "prone":
var_01 = param_00.var_DA90;
break;
}
return var_01;
}
//Function Number: 18
balldrone_watchfornearbytargets()
{
self endon("death");
self endon("leaving");
self.var_222 endon("disconnect");
self.var_2525 = undefined;
for(;;)
{
self.var_129B9 waittill("turret_on_target");
self notify("chase_nearby_target");
var_00 = self.var_129B9 method_8166(1);
balldrone_guardlocation();
var_01 = balldrone_gettargetoffset(self,var_00);
self method_85C6(var_00,var_01,16,10);
self.var_2525 = 1;
thread func_13B79(var_00,self.origin,1);
self waittill("disengage_target");
self.var_2525 = undefined;
thread balldrone_patrollevel();
scripts\common\utility::func_136F7();
}
}
//Function Number: 19
getvalidenemylist()
{
var_00 = [];
foreach(var_02 in level.players)
{
if(!self.var_222 scripts\mp\_utility::func_9DD6(var_02))
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_02))
{
continue;
}
if(var_02 method_8181("specialty_blindeye"))
{
continue;
}
var_00[var_00.size] = var_02;
}
return var_00;
}
//Function Number: 20
vulturecanseeenemy(param_00)
{
var_01 = 0;
var_02 = scripts\common\trace::func_48BC(0,1,0,1,1,0);
var_03 = [param_00 gettagorigin("j_head"),param_00 gettagorigin("j_mainroot"),param_00 gettagorigin("tag_origin")];
for(var_04 = 0;var_04 < var_03.size;var_04++)
{
if(!scripts\common\trace::func_DCF1(self.origin,var_03[var_04],self,var_02))
{
continue;
}
var_01 = 1;
break;
}
return var_01;
}
//Function Number: 21
balldrone_patrollevel()
{
self endon("death");
self endon("leaving");
self endon("chase_nearby_target");
self.var_222 endon("disconnect");
balldrone_guardlocation();
self method_83E5(15,5,5);
self method_8316(30);
self.var_129B9 method_807E();
self method_8076();
var_00 = self;
var_01 = (0,0,50);
for(;;)
{
var_02 = findnewpatrolpoint(level.balldronepathnodes);
self method_82D9(var_02);
self waittill("near_goal");
}
}
//Function Number: 22
findnewpatrolpoint(param_00)
{
var_01 = undefined;
var_02 = 0;
var_03 = sortbydistance(param_00,self.origin);
var_03 = scripts\common\utility::func_22BD(var_03);
var_04 = [];
foreach(var_0A, var_06 in var_03)
{
if(isdefined(self.var_4BF7) && var_06 == self.var_4BF7)
{
continue;
}
if(scripts\mp\_utility::func_9FB3(var_06.var_1305B) && var_0A == var_03.size - 1)
{
foreach(var_08 in var_03)
{
var_08.var_1305B = undefined;
}
var_02 = 1;
}
else if(scripts\mp\_utility::func_9FB3(var_06.var_1305B))
{
continue;
}
var_04[var_04.size] = var_06;
if(var_04.size == 200)
{
break;
}
}
var_0B = randomintrange(0,var_04.size);
var_0C = var_04[var_0B];
if(!isdefined(self.initialvalidnode))
{
self.initialvalidnode = var_0C;
}
if(scripts\mp\_utility::func_9FB3(var_02))
{
self.var_4BF7 = self.initialvalidnode;
var_02 = 0;
}
else
{
self.var_4BF7 = var_0C;
}
self.var_4BF7.var_1305B = 1;
return self.var_4BF7.origin + (0,0,80);
}
//Function Number: 23
func_27E7()
{
self endon("death");
self endon("leaving");
self endon("switch_modes");
self.var_222 endon("disconnect");
for(;;)
{
self.var_222 waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D);
var_09 = scripts\mp\_utility::func_13CA1(var_09,var_0D);
if(scripts\mp\_utility::func_9FB3(self.var_2525))
{
continue;
}
if(!func_A00F(var_01))
{
continue;
}
if(scripts\mp\_utility::func_9FB3(self.var_11196))
{
continue;
}
if(!isplayer(var_01))
{
continue;
}
if(!self.var_129B9 func_3874(var_01))
{
continue;
}
self notify("player_defend");
self.var_A8F2 = undefined;
var_0E = balldrone_gettargetoffset(self,var_01);
self method_85C6(var_01,var_0E,16,10);
self.var_2525 = 1;
thread func_13B79(var_01,undefined,1);
break;
}
}
//Function Number: 24
func_27EA()
{
self endon("death");
self endon("leaving");
self endon("switch_modes");
self.var_222 endon("disconnect");
for(;;)
{
self.var_222 waittill("victim_damaged",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
if(scripts\mp\_utility::func_9FB3(self.var_2525))
{
continue;
}
if(!func_A00F(var_00))
{
continue;
}
if(scripts\mp\_utility::func_9FB3(self.var_11196))
{
continue;
}
if(!isplayer(var_00))
{
continue;
}
if(!self.var_129B9 func_3874(var_00))
{
continue;
}
self notify("target_assist");
self.var_A8F2 = undefined;
var_0A = balldrone_gettargetoffset(self,var_00);
self method_85C6(var_00,var_0A,16,10);
self.var_2525 = 1;
thread func_13B79(var_00,undefined,1);
break;
}
}
//Function Number: 25
func_A00F(param_00,param_01,param_02)
{
var_03 = 0;
var_04 = self.var_222.origin;
if(isdefined(param_01))
{
var_04 = param_01;
}
var_05 = 1000000;
if(isdefined(param_02))
{
var_05 = param_02;
}
if(distance2dsquared(var_04,param_00.origin) < var_05)
{
var_03 = 1;
}
return var_03;
}
//Function Number: 26
func_13B79(param_00,param_01,param_02)
{
self endon("death");
self endon("leaving");
self endon("switch_modes");
self endon("player_defend");
self endon("target_assist");
self.var_222 endon("disconnect");
for(;;)
{
if(isdefined(param_00) && self.var_129B9 func_3874(param_00))
{
if(scripts\mp\_utility::func_9FB3(param_02) && !func_A00F(param_00,param_01))
{
break;
}
else
{
scripts\common\utility::func_136F7();
}
continue;
}
break;
}
self notify("disengage_target");
}
//Function Number: 27
func_27E8()
{
self endon("death");
self endon("leaving");
self endon("switch_modes");
self.var_222 endon("disconnect");
self waittill("disengage_target");
self.var_2525 = undefined;
thread func_27DA();
thread func_27E7();
thread func_27EA();
thread func_27E8();
}
//Function Number: 28
balldrone_guardlocation()
{
self.stoppedatlocation = 1;
self method_82D9(self.origin);
}
//Function Number: 29
balldrone_seekclosesttarget()
{
self endon("drone_shot_down");
level endon("game_ended");
thread balldrone_watchkamikazeinterrupt();
self method_83E5(self.var_7247 + 25,20,20);
var_00 = getvalidenemylist();
var_01 = undefined;
if(var_00.size > 0)
{
var_01 = sortbydistance(var_00,self.origin);
}
if(isdefined(var_01) && var_01.size > 0)
{
var_02 = balldrone_gettargetoffset(self,var_01[0]);
self method_85C6(var_01[0],var_02,16,10);
thread func_13B79(var_01[0]);
self waittill("disengage_target");
balldrone_guardlocation();
}
}
//Function Number: 30
balldrone_watchkamikazeinterrupt()
{
level endon("game_ended");
self.var_222 endon("disconnect");
var_00 = 100;
for(;;)
{
self waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E);
var_0A = scripts\mp\_utility::func_13CA1(var_0A,var_0E);
if(isdefined(var_02))
{
if(lib_0DF8::func_9DDF(var_02))
{
continue;
}
if(var_02.team == self.team && var_02 != self.var_222)
{
continue;
}
var_02 scripts\mp\_damagefeedback::func_12E84("");
}
var_00 = var_00 - var_01;
if(var_00 <= 0)
{
self notify("drone_shot_down");
}
}
}
//Function Number: 31
balldrone_watchradarpulse()
{
self endon("death");
self endon("leaving");
self endon("switch_modes");
self.var_222 endon("disconnect");
for(;;)
{
function_0222(self.origin,self.var_222);
self.var_222 playsound("oracle_radar_pulse_npc");
wait(3);
}
}
//Function Number: 32
func_27DF()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("owner_gone");
self notify("ballDrone_moveToPlayer");
self endon("ballDrone_moveToPlayer");
var_00 = balldrone_gettargetoffset(self,self.var_222);
self method_85C6(self.var_222,var_00,16,10);
self.var_9A95 = 1;
thread func_27E4();
}
//Function Number: 33
balldrone_watchmodeswitch()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 endon("disconnect");
self endon("owner_gone");
self.var_130AC scripts\mp\killstreaks\_utility::func_F774(self.var_222,self.var_4C08,360,360,30000,30000,3);
for(;;)
{
self.var_130AC waittill("trigger",var_00);
if(var_00 != self.var_222)
{
continue;
}
if(self.var_222 scripts\mp\_utility::func_9FC6())
{
continue;
}
if(isdefined(self.var_222.var_55E4) && self.var_222.var_55E4 > 0)
{
continue;
}
if(scripts\mp\_utility::func_9FAE(self.var_222))
{
continue;
}
var_01 = 0;
while(self.var_222 usebuttonpressed())
{
var_01 = var_01 + 0.05;
if(var_01 > 0.1)
{
self notify("switch_modes");
self.var_222 playlocalsound("mp_killstreak_warden_switch_mode");
self.var_BC = func_8026(self.var_BC,self.var_110E8);
self notify(self.var_BC);
if(self.var_BC == "ASSAULT")
{
var_02 = &"KILLSTREAKS_HINTS_VULTURE_SUPPORT";
if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_guard"))
{
var_02 = &"KILLSTREAKS_HINTS_VULTURE_GUARD";
}
self method_8076();
self.var_93AF = 0;
self.var_129B9 notify("turretstatechange");
thread func_27DA();
thread func_27E7();
thread func_27EA();
thread func_27E8();
}
else
{
var_02 = &"KILLSTREAKS_HINTS_VULTURE_ASSAULT";
if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_guard"))
{
self method_8076();
self.var_2525 = undefined;
balldrone_guardlocation();
}
else
{
self method_8076();
self.var_2525 = undefined;
self.var_93AF = 1;
self.var_129B9 notify("turretstatechange");
self.var_129B9 method_81D8();
thread func_27DA();
thread balldrone_watchradarpulse();
}
}
self.var_130AC makeunusable();
scripts\mp\_hostmigration::func_13708(1);
self.var_4C08 = var_02;
self.var_130AC scripts\mp\killstreaks\_utility::func_F774(self.var_222,self.var_4C08,360,360,30000,30000,3);
break;
}
wait(0.05);
}
wait(0.05);
}
}
//Function Number: 34
func_8026(param_00,param_01)
{
if(param_00 == "ASSAULT")
{
param_00 = "SUPPORT";
if(scripts\mp\killstreaks\_utility::func_A69F(param_01,"passive_guard"))
{
param_00 = "GUARD";
}
}
else
{
param_00 = "ASSAULT";
}
return param_00;
}
//Function Number: 35
func_27E4()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("owner_gone");
self notify("ballDrone_watchForGoal");
self endon("ballDrone_watchForGoal");
var_00 = scripts\common\utility::func_13734("goal","near_goal","hit_goal");
self.var_9A95 = 0;
self.var_93AF = 0;
self notify("hit_goal");
}
//Function Number: 36
func_DBD6()
{
level endon("game_ended");
self endon("death");
self endon("drone_toggle");
for(;;)
{
if(isdefined(self.var_11196) && self.var_11196)
{
wait(0.5);
continue;
}
if(isdefined(self.var_93AF) && self.var_93AF)
{
wait(0.5);
continue;
}
if(isdefined(self.var_DBBF))
{
self.var_DBBF moveto(self.origin,0.5);
}
wait(0.5);
}
}
//Function Number: 37
func_B0C8()
{
level endon("game_ended");
self endon("drone_toggle");
self endon("gone");
self endon("death");
var_00 = getentarray("low_entry","targetname");
while(var_00.size > 0)
{
foreach(var_02 in var_00)
{
while(self istouching(var_02) || self.var_222 istouching(var_02))
{
if(isdefined(var_02.var_EE79))
{
self.var_B0C9 = float(var_02.var_EE79);
continue;
}
self.var_B0C9 = 0.5;
wait(0.1);
}
self.var_B0C9 = undefined;
}
wait(0.1);
}
}
//Function Number: 38
func_27E3()
{
level endon("game_ended");
self endon("gone");
self waittill("death");
thread func_27ED();
}
//Function Number: 39
func_27EB()
{
level endon("game_ended");
self endon("death");
self.var_222 endon("disconnect");
self endon("owner_gone");
var_00 = level.var_27F0[self.var_27F1];
var_01 = var_00.var_11901;
if(!isdefined(var_01))
{
return;
}
scripts\mp\_hostmigration::func_13708(var_01);
if(isdefined(self.var_222) && isdefined(var_00.var_13553))
{
self.var_222 scripts\mp\_utility::func_D4B6(var_00.var_13553,undefined,undefined,self.var_222.origin);
}
thread func_27DE();
}
//Function Number: 40
func_27E6()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 waittill("killstreak_disowned");
self notify("owner_gone");
thread func_27DE();
}
//Function Number: 41
func_27E5()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
for(;;)
{
self.var_222 waittill("death");
var_00 = level.var_27F0[self.var_27F1];
if(isdefined(var_00.var_54CE) || scripts\mp\_utility::func_7ECE() && self.var_222.pers["deaths"] == scripts\mp\_utility::func_7ECE())
{
thread func_27DE();
}
}
}
//Function Number: 42
func_27E9()
{
self endon("death");
self endon("leaving");
self.var_222 endon("disconnect");
self endon("owner_gone");
level scripts\common\utility::waittill_any_3("round_end_finished","game_ended");
thread func_27DE();
}
//Function Number: 43
func_27DE()
{
self endon("death");
self notify("leaving");
func_27EE();
}
//Function Number: 44
func_CA50()
{
var_00 = "icon_minimap_vulture_enemy";
self.var_6569 = func_49F8(var_00,1,1);
foreach(var_02 in level.players)
{
if(!isplayer(var_02))
{
continue;
}
if(var_02 scripts\mp\_utility::_hasperk("specialty_engineer") && var_02.team != self.team)
{
if(self.var_6569 != -1)
{
scripts\mp\objidpoolmanager::minimap_objective_playermask_showto(self.var_6569,var_02 getentitynumber());
}
}
}
}
//Function Number: 45
func_49F8(param_00,param_01,param_02)
{
var_03 = scripts\mp\objidpoolmanager::requestminimapid(10);
if(var_03 == -1)
{
return -1;
}
scripts\mp\objidpoolmanager::minimap_objective_add(var_03,"invisible",(0,0,0));
if(!isdefined(self getlinkedparent()) && !scripts\mp\_utility::func_9FB3(param_01))
{
scripts\mp\objidpoolmanager::minimap_objective_position(var_03,self.origin);
}
else if(scripts\mp\_utility::func_9FB3(param_01) && scripts\mp\_utility::func_9FB3(param_02))
{
scripts\mp\objidpoolmanager::minimap_objective_onentitywithrotation(var_03,self);
}
else
{
scripts\mp\objidpoolmanager::minimap_objective_onentity(var_03,self);
}
scripts\mp\objidpoolmanager::minimap_objective_state(var_03,"active");
scripts\mp\objidpoolmanager::minimap_objective_icon(var_03,param_00);
scripts\mp\objidpoolmanager::minimap_objective_playermask_hidefromall(var_03);
return var_03;
}
//Function Number: 46
func_27DD()
{
scripts\mp\_damage::func_B9C6(self.maxhealth,"ball_drone",::func_898F,::func_B938,1);
}
//Function Number: 47
func_27D5()
{
self endon("death");
self endon("stop_monitor_damage");
level endon("game_ended");
self setcandamage(1);
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D);
var_09 = scripts\mp\_utility::func_13CA1(var_09,var_0D);
if(lib_0DF8::func_9DDF(var_01))
{
continue;
}
scripts\mp\_damage::func_B9C7(var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,"ball_drone",::func_898F,::func_B938,1);
}
}
//Function Number: 48
func_27D6()
{
self endon("death");
self.parent endon("stop_monitor_damage");
level endon("game_ended");
self method_81F7();
self setcandamage(1);
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D);
var_09 = scripts\mp\_utility::func_13CA1(var_09,var_0D);
if(lib_0DF8::func_9DDF(var_01))
{
continue;
}
if(isdefined(self.parent))
{
self.parent scripts\mp\_damage::func_B9C7(var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,"ball_drone",::func_898F,::func_B938,1);
}
}
}
//Function Number: 49
func_B938(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_03;
var_05 = scripts\mp\killstreaks\_utility::func_7FBD(param_00,param_01,param_02,var_05,self.maxhealth,1,1,2);
return var_05;
}
//Function Number: 50
func_898F(param_00,param_01,param_02,param_03)
{
if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_self_destruct"))
{
self notify("stop_monitor_damage");
var_04 = 2.5;
self.var_93AF = 1;
self notify("switch_modes");
balldrone_guardlocation();
thread balldrone_seekclosesttarget();
var_05 = self.var_222 scripts\mp\_utility::func_1302("dummy_spike_mp",self.origin,self.origin,var_04);
if(!isdefined(var_05.var_13C2E))
{
var_05.var_13C2E = "dummy_spike_mp";
}
var_05 linkto(self);
self setscriptablepartstate("shortout","active",0);
self playsound("vulture_destruct_initiate");
thread watchselfdestructfx();
scripts\common\utility::waittill_any_timeout_1(var_04,"drone_shot_down");
self playsound("vulture_destruct_warning");
self setscriptablepartstate("shortout","neutral",0);
playfx(scripts\common\utility::getfx("kamikaze_drone_explode"),self.origin);
playsoundatpos(self.origin,"vulture_destruct");
scripts\mp\_shellshock::func_22FF(1,0.7,800);
if(isdefined(self.var_222))
{
self radiusdamage(self.origin,256,200,100,self.var_222,"MOD_EXPLOSIVE","ball_drone_gun_mp");
}
}
var_06 = level.var_27F0[self.var_27F1];
var_07 = "callout_destroyed_ball_drone";
var_08 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_110E8.var_1318B);
if(var_08 != "")
{
var_07 = var_07 + "_" + var_08;
}
scripts\mp\_damage::func_C548(var_06.var_110EA,param_00,param_01,param_02,param_03,var_06.var_EC44,var_06.var_13523,var_07);
if(self.var_27F1 == "ball_drone_backup")
{
param_00 scripts\mp\_missions::func_D992("ch_vulturekiller");
}
if(isdefined(param_01) && param_01 == "concussion_grenade_mp")
{
if(scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(self.var_222,param_00)))
{
param_00 scripts\mp\_missions::func_D991("ch_tactical_emp_eqp");
}
}
}
//Function Number: 51
watchselfdestructfx()
{
self endon("death");
wait(0.4);
self playsoundonmovingent("vulture_destruct_build_up");
}
//Function Number: 52
func_13A10()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("emp_damage",var_00,var_01,var_02,var_03,var_04);
scripts\mp\killstreaks\_utility::dodamagetokillstreak(100,var_00,var_00,self.team,var_02,var_04,var_03);
if(!scripts\mp\_utility::func_9FB3(self.var_11196))
{
thread func_27E2(var_01);
}
}
}
//Function Number: 53
func_27E2(param_00)
{
self notify("ballDrone_stunned");
self endon("ballDrone_stunned");
self endon("death");
self.var_222 endon("disconnect");
level endon("game_ended");
if(scripts\mp\_utility::func_9FB3(self.var_2525))
{
self notify("disengage_target");
}
self.var_11196 = 1;
if(isdefined(level.var_27F0[self.var_27F1].var_7638))
{
playfxontag(level.var_27F0[self.var_27F1].var_7638,self,"tag_origin");
}
if(self.var_27F1 == "ball_drone_radar")
{
if(isdefined(self.var_DBBF))
{
self.var_DBBF delete();
}
}
if(isdefined(self.var_129B9))
{
self.var_129B9 notify("turretstatechange");
}
playfxontag(scripts\common\utility::getfx("emp_stun"),self,"tag_origin");
scripts\mp\_hostmigration::func_13708(param_00);
stopfxontag(scripts\common\utility::getfx("emp_stun"),self,"tag_origin");
self.var_11196 = 0;
if(self.var_27F1 == "ball_drone_radar")
{
var_01 = spawn("script_model",self.origin);
var_01.team = self.team;
var_01 method_81F3(self.var_222);
self.var_DBBF = var_01;
}
if(isdefined(self.var_129B9))
{
self.var_129B9 notify("turretstatechange");
}
}
//Function Number: 54
func_27ED()
{
if(!isdefined(self))
{
return;
}
func_27EE();
}
//Function Number: 55
func_27EE()
{
if(isdefined(level.var_27F0[self.var_27F1].var_7630))
{
playfx(level.var_27F0[self.var_27F1].var_7630,self.origin);
}
if(isdefined(level.var_27F0[self.var_27F1].var_1045F))
{
self playsound(level.var_27F0[self.var_27F1].var_1045F);
}
self notify("explode");
func_E0D2();
scripts\mp\_utility::func_D915("killstreak ended - ball_drone_backup",self.var_222);
}
//Function Number: 56
func_E0D2()
{
scripts\mp\_utility::func_4FC1();
if(isdefined(self.var_DBBF))
{
self.var_DBBF delete();
}
if(isdefined(self.var_130AC))
{
self.var_130AC delete();
}
if(isdefined(self.var_129B9))
{
self.var_129B9 method_835A(0);
if(isdefined(self.var_129B9.var_92FD))
{
self.var_129B9.var_92FD delete();
}
if(isdefined(self.var_129B9.var_A63A))
{
self.var_129B9.var_A63A delete();
}
self.var_129B9 delete();
}
if(isdefined(self.var_6569))
{
scripts\mp\objidpoolmanager::returnminimapid(self.var_6569);
}
if(isdefined(self.var_222) && isdefined(self.var_222.var_27D3))
{
self.var_222.var_27D3 = undefined;
}
self.var_222 notify("eng_drone_update",-1);
self delete();
}
//Function Number: 57
func_68C0()
{
if(level.var_27EF.size >= scripts\mp\_utility::func_B4D2())
{
return 1;
}
return 0;
}
//Function Number: 58
func_27D4()
{
self.var_131A0 endon("death");
level endon("game_ended");
for(;;)
{
self waittill("turretstatechange");
if(self method_81A0() && isdefined(self.var_131A0.var_11196) && !self.var_131A0.var_11196 && isdefined(self.var_131A0.var_93AF) && !self.var_131A0.var_93AF)
{
self method_81D9();
func_58ED(level.var_27F0[self.var_131A0.var_27F1].var_AF30);
thread func_27D7();
continue;
}
self method_81D8();
thread func_27D8();
}
}
//Function Number: 59
func_27D7()
{
self.var_131A0 endon("death");
self endon("stop_shooting");
level endon("game_ended");
var_00 = self.var_131A0;
var_01 = function_0240(level.var_27F0[var_00.var_27F1].var_39B);
var_02 = level.var_27F0[var_00.var_27F1].var_32C1;
var_03 = level.var_27F0[var_00.var_27F1].var_C9D3;
for(;;)
{
var_04 = var_02;
for(var_05 = 0;var_05 < var_04;var_05++)
{
if(isdefined(var_00.var_93AF) && var_00.var_93AF)
{
break;
}
var_06 = self method_8166(0);
if(isdefined(var_06) && func_3874(var_06))
{
var_00 method_8305(var_06);
level thread scripts\mp\_battlechatter_mp::func_EB87(var_06,"plr_killstreak_target");
self method_837E();
}
wait(var_01);
}
wait(var_03);
}
}
//Function Number: 60
func_6D21()
{
for(;;)
{
var_00 = self method_8166(0);
if(isdefined(var_00) && func_3874(var_00))
{
scripts\mp\_utility::func_1309("alienvulture_mp",self gettagorigin("tag_flash"),var_00.origin,self.var_222);
}
var_01 = function_0240("alienvulture_mp");
if(isdefined(level.var_2787) && isdefined(self.var_222))
{
var_01 = self [[ level.var_2787 ]](var_01,self.var_222);
}
wait(function_0240("alienvulture_mp"));
}
}
//Function Number: 61
func_58ED(param_00)
{
while(param_00 > 0)
{
self playsound(level.var_27F0[self.var_131A0.var_27F1].var_10472);
wait(0.5);
param_00 = param_00 - 0.5;
}
self playsound(level.var_27F0[self.var_131A0.var_27F1].var_10465);
}
//Function Number: 62
func_27D8()
{
self notify("stop_shooting");
if(isdefined(self.var_92FD))
{
self.var_131A0 method_8305(self.var_92FD);
}
}
//Function Number: 63
func_3874(param_00)
{
var_01 = 1;
if(isplayer(param_00))
{
if(!scripts\mp\_utility::func_9F19(param_00) || param_00.sessionstate != "playing")
{
return 0;
}
if(param_00 scripts\mp\_utility::_hasperk("specialty_blindeye"))
{
return 0;
}
}
if(level.teambased && isdefined(param_00.team) && param_00.team == self.team)
{
return 0;
}
if(isdefined(param_00.team) && param_00.team == "spectator")
{
return 0;
}
if(isplayer(param_00) && param_00 == self.var_222)
{
return 0;
}
if(isplayer(param_00) && isdefined(param_00.var_10916) && gettime() - param_00.var_10916 / 1000 <= 4)
{
return 0;
}
if(distancesquared(param_00.origin,self.origin) > level.var_27F0[self.var_131A0.var_27F1].var_1349E)
{
return 0;
}
if(isplayer(param_00) && scripts\mp\_utility::func_C7A0(self gettagorigin("tag_flash"),param_00 geteye()))
{
return 0;
}
if(!isplayer(param_00) && scripts\mp\_utility::func_C7A0(self gettagorigin("tag_flash"),param_00.origin))
{
return 0;
}
return var_01;
}
//Function Number: 64
balldrone_destroyongameend()
{
self endon("death");
level scripts\common\utility::waittill_any_3("bro_shot_start","game_ended");
func_27ED();
}
//Function Number: 65
balldrone_gettargetoffset(param_00,param_01)
{
var_02 = level.var_27F0[param_00.var_27F1];
var_03 = var_02.var_2732;
var_04 = var_02.var_101BA;
var_05 = param_00 func_27DC(var_02);
if(isdefined(param_00.var_B0C9))
{
var_05 = var_05 * param_00.var_B0C9;
}
var_06 = (var_04,var_03,var_05);
return var_06;
}