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

1669 lines
37 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_rc8.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 59
* Decompile Time: 3161 ms
* Timestamp: 10/27/2023 12:29:25 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["rc8_malfunction"] = loadfx("vfx/iw7/core/mp/killstreaks/vfx_rc8_glitch_out.vfx");
level._effect["rc8_explode"] = loadfx("vfx/iw7/core/mp/killstreaks/vfx_rc8_dest_exp.vfx");
scripts\mp\killstreaks\_killstreaks::func_DEFB("remote_c8",::func_128F7);
var_00 = ["passive_increased_speed","passive_decreased_duration","passive_energy_machgun","passive_boosters","passive_speed_duration"];
scripts\mp\_killstreak_loot::func_DF07("remote_c8",var_00);
}
//Function Number: 2
func_F8F4()
{
level.agent_funcs["remote_c8"] = level.agent_funcs["player"];
level.agent_funcs["remote_c8"]["think"] = ::func_DCF4;
level.agent_funcs["remote_c8"]["on_killed"] = ::func_DCF3;
level.agent_funcs["remote_c8"]["on_damaged"] = ::func_DCF2;
level.agent_funcs["remote_c8"]["gametype_update"] = ::func_BFF0;
}
//Function Number: 3
func_DCF4()
{
self endon("death");
self endon("disconnect");
self endon("owner_disconnect");
level endon("game_ended");
self method_845A("rc8_mp");
self botsetflag("disable_wall_traversals",1);
self botsetflag("ads_shield",1);
self botsetstance("stand");
self setmovespeedscale(0.8);
thread func_DCF9();
thread func_DCF7();
thread func_DCFA();
thread func_DCFB();
thread rc8_watchvoice();
thread rc8_watchhostmigration();
thread rc8_watchupdateuav();
thread rc8_manageboostfx();
thread rc8_watchupdatecranked();
}
//Function Number: 4
func_DCF5(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(isrc8falldamage(param_04))
{
return;
}
self notify("rc8_damage",param_01,param_00);
}
//Function Number: 5
func_DCFB()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
var_00 = scripts\common\trace::func_48BC(0,1,1,1,1,1,1);
self waittill("rc8_launched");
var_01 = 1;
var_02 = undefined;
for(;;)
{
if(!self isonground())
{
if(scripts\mp\_utility::func_9FB3(self.booston))
{
while(scripts\mp\_utility::func_9FB3(self.booston))
{
scripts\common\utility::func_136F7();
}
}
var_03 = self.origin[2];
if(scripts\mp\_utility::func_9FB3(var_01))
{
var_01 = undefined;
var_02 = "heavy_damage";
thread startmidairdamage(var_02);
}
while(!self isonground())
{
if(scripts\mp\_utility::func_9FB3(self.booston))
{
while(scripts\mp\_utility::func_9FB3(self.booston))
{
scripts\common\utility::func_136F7();
}
var_03 = self.origin[2];
continue;
}
scripts\common\utility::func_136F7();
}
self notify("on_ground");
var_04 = self.origin[2];
if(var_03 - var_04 < 60)
{
continue;
}
if(isdefined(self.midairdamage))
{
self.var_FC99 = 1;
self.midairdamage setscriptablepartstate("fall","damage",0);
thread func_511F(0.05);
wait(0.2);
self.midairdamage setscriptablepartstate("fall","neutral",0);
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 6
startmidairdamage(param_00)
{
self endon("death");
self endon("disconnect");
self endon("on_ground");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
for(;;)
{
self.midairdamage setscriptablepartstate("air_damage",param_00,0);
scripts\common\utility::func_136F7();
self.midairdamage setscriptablepartstate("air_damage","neutral",0);
}
}
//Function Number: 7
rc8_watchvoice()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
var_00 = undefined;
var_01 = undefined;
for(;;)
{
self waittill("try_play_voice",var_02,var_03);
if(isdefined(var_00) && var_00 == var_03)
{
continue;
}
if(isdefined(var_01) && gettime() < var_01 + var_02 + 5000)
{
continue;
}
var_00 = var_03;
var_01 = gettime();
wait(var_02);
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
{
self playsoundtoteam(var_03,"allies",self.var_222);
self playsoundtoteam(var_03,"axis",self.var_222);
continue;
}
self playsoundtoteam(var_03,"allies");
self playsoundtoteam(var_03,"axis");
}
}
//Function Number: 8
rc8_watchhostmigration()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
for(;;)
{
level waittill("host_migration_begin");
rc8_disable_movement(1);
rc8_disable_attack(1);
rc8_disable_rotation(1);
level waittill("host_migration_end");
rc8_disable_movement(0);
rc8_disable_attack(0);
rc8_disable_rotation(0);
}
}
//Function Number: 9
rc8_watchupdateuav()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
for(;;)
{
level waittill("uav_update");
rc8_setuavstrength();
}
}
//Function Number: 10
rc8_setuavstrength()
{
if(level.teambased)
{
rc8_updateteamuavstatus(self.team);
return;
}
rc8_updateplayersuavstatus();
}
//Function Number: 11
rc8_updateteamuavstatus(param_00,param_01)
{
var_02 = getuavstrengthmin();
var_03 = getuavstrengthmax();
var_04 = getuavstrengthlevelshowenemydirectional();
var_05 = getuavstrengthlevelneutral();
var_06 = getuavstrengthlevelshowenemyfastsweep();
if(isdefined(param_01))
{
var_07 = param_01;
}
else
{
var_07 = scripts\mp\killstreaks\_uav::func_12B5(param_01);
}
if(param_00 == "axis")
{
var_08 = level.axisactiveuavs;
}
else
{
var_08 = level.alliesactiveuavs;
}
if(scripts\mp\_utility::_hasperk("specialty_empimmune") && var_07 <= var_05)
{
var_07 = int(clamp(var_08 + var_05,var_05,var_03));
}
if(var_07 <= var_02)
{
var_07 = var_02;
}
else if(var_07 >= var_03)
{
var_07 = var_03;
}
self method_85A6(var_07);
if(var_07 >= var_05)
{
self method_85A5(0);
}
else
{
self method_85A5(1);
}
if(var_07 <= var_05)
{
self method_85A4(0);
self.var_255 = 0;
if(isdefined(self.var_254) && self.var_254 == "constant_radar")
{
self.var_254 = "normal_radar";
}
self setclientomnvar("ui_show_hardcore_minimap",0);
return;
}
scripts\mp\killstreaks\_uav::setradarmode(var_07,var_06,var_04);
self.var_255 = var_07 >= var_04;
self method_85A4(1);
self setclientomnvar("ui_show_hardcore_minimap",1);
}
//Function Number: 12
rc8_updateplayersuavstatus(param_00)
{
var_01 = getuavstrengthmin();
var_02 = getuavstrengthmax();
var_03 = getuavstrengthlevelshowenemydirectional();
var_04 = getuavstrengthlevelshowenemyfastsweep();
var_05 = level.var_1679[self.var_222.var_86BD + "_radarStrength"];
foreach(var_07 in level.players)
{
if(var_07 == self.var_222)
{
continue;
}
var_08 = level.var_164F[var_07.var_86BD];
if(var_08 > 0 && !self.var_222 scripts\mp\_utility::_hasperk("specialty_empimmune"))
{
var_05 = var_01;
break;
}
}
if(var_05 <= var_01)
{
var_05 = var_01;
}
else if(var_05 >= var_02)
{
var_05 = var_02;
}
self method_85A6(var_05);
if(var_05 >= getuavstrengthlevelneutral())
{
self method_85A5(0);
}
else
{
self method_85A5(1);
}
if(var_05 <= getuavstrengthlevelneutral())
{
self method_85A4(0);
self.var_255 = 0;
if(isdefined(self.var_254) && self.var_254 == "constant_radar")
{
self.var_254 = "normal_radar";
}
self setclientomnvar("ui_show_hardcore_minimap",0);
return;
}
scripts\mp\killstreaks\_uav::setradarmode(var_05,var_04,var_03);
self.var_255 = var_05 >= var_03;
self method_85A4(1);
self setclientomnvar("ui_show_hardcore_minimap",1);
}
//Function Number: 13
rc8_watchupdatecranked()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
if(isdefined(self.var_222.var_47ED) && isdefined(self.var_222.var_47EE))
{
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",self.var_222.var_47EE);
}
for(;;)
{
self.var_222 scripts\common\utility::waittill_any_3("watchBombTimer","stop_cranked");
if(!isdefined(self.var_222.var_47EE))
{
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",0);
continue;
}
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",self.var_222.var_47EE);
}
}
//Function Number: 14
func_DCFA()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
var_00 = self.health;
var_01 = 0;
var_02 = 0;
var_03 = 0;
self.var_7197 = ::func_DCF5;
for(;;)
{
self waittill("rc8_damage",var_03,var_04);
var_05 = gettime();
if(var_05 - var_01 > 1000)
{
var_02 = 0;
}
var_01 = gettime();
var_02 = var_02 + var_03;
var_06 = var_04.origin - self.origin;
var_06 = (var_06[0],var_06[1],0);
var_06 = vectornormalize(var_06);
var_07 = anglestoforward(self.angles);
var_08 = vectordot(var_06,var_07);
if(var_08 < 0)
{
continue;
}
if(var_02 > 50)
{
self botpressbutton("ads",randomfloatrange(2,4));
var_02 = 0;
}
}
}
//Function Number: 15
func_DCF7()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
while(!isdefined(self.mainweapon))
{
wait(0.25);
}
var_00 = self getweaponammoclip(self.mainweapon);
for(;;)
{
self waittill("weapon_fired",var_01);
if(isdefined(self.var_10C) && isplayer(self.var_10C))
{
level thread scripts\mp\_battlechatter_mp::func_EB87(self.var_10C,"plr_killstreak_target");
}
if(scripts\mp\_utility::func_9FB3(self.var_19))
{
thread playvoice(1,"vox_c8_engaging");
}
if(isdefined(var_01) && var_01 == "iw7_chargeshot_c8_mp" || var_01 == "iw7_minigun_c8_mp")
{
self setweaponammoclip(var_01,var_00);
}
}
}
//Function Number: 16
func_DCF8(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
while(isdefined(param_00) && isalive(param_00))
{
if(isdefined(self.var_10C))
{
param_00 = self.var_10C;
}
if(self botcanseeentity(param_00))
{
self botclearscriptgoal();
return;
}
var_01 = getclosestpointonnavmesh(param_00.origin,self);
if(param_00 scripts\mp\_utility::isinarbitraryup())
{
var_02 = scripts\common\trace::func_48CC(1);
if(scripts\common\trace::func_DCF1(self geteye(),param_00 geteye(),undefined,var_02))
{
var_03 = vectornormalize(param_00.origin - self geteye());
var_04 = (0,0,1);
if(vectordot(var_04,var_03) < 0.92)
{
self botlookatpoint(param_00.origin,0.5,"script_forced");
}
else
{
break;
}
}
var_05 = (param_00.origin[0],param_00.origin[1],param_00.origin[2] - 100);
var_05 = getgroundposition(var_05,15,2000);
var_01 = getclosestpointonnavmesh(var_05,self);
}
self botsetscriptgoal(var_01,0,"hunt");
wait(0.5);
}
self botclearscriptgoal();
}
//Function Number: 17
func_DCF6()
{
var_00 = [];
foreach(var_02 in level.players)
{
if(var_02.ignoreme || isdefined(var_02.var_222) && var_02.var_222.ignoreme)
{
continue;
}
if(!isalive(var_02))
{
continue;
}
if(isdefined(var_02.team) && self.team == var_02.team)
{
continue;
}
if(var_02 method_8181("specialty_blindeye"))
{
continue;
}
var_00[var_00.size] = var_02;
}
var_04 = undefined;
if(var_00.size > 0)
{
var_04 = sortbydistance(var_00,self.origin);
}
if(isdefined(var_04) && var_04.size > 0)
{
return var_04[0];
}
return undefined;
}
//Function Number: 18
func_DCF9()
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
for(;;)
{
if(scripts\mp\_utility::func_9FB3(self.var_19))
{
thread playvoice(1,"vox_c8_seeking");
}
if(isdefined(self.var_10C) && isalive(self.var_10C) && isplayer(self.var_10C) && !self.var_10C method_8181("specialty_blindeye"))
{
if(!self botcanseeentity(self.var_10C))
{
func_DCF8(self.var_10C);
}
}
else
{
var_00 = func_DCF6();
if(isdefined(var_00))
{
func_DCF8(var_00);
}
}
scripts\mp\_hostmigration::func_13708(0.5);
}
}
//Function Number: 19
func_DCF3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
}
//Function Number: 20
func_DCF2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
var_0C = isdefined(param_01) && isdefined(self.var_222) && self.var_222 == param_01;
if(isdefined(level.var_13CA6))
{
param_05 = [[ level.var_13CA6 ]](param_05,param_00);
}
if(isrc8falldamage(param_00))
{
return;
}
var_0D = 0;
if(self.var_222.var_FC96)
{
var_0D = self.var_222.var_FC96;
}
if(!scripts\mp\_utility::func_9FB3(self.var_19))
{
param_02 = param_02 / 2;
}
scripts\mp\_damage::func_374D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
var_0E = self.var_222.var_FC96 - var_0D;
if(var_0E > 0)
{
self.var_222 thread scripts\mp\_missions::func_D991("ch_rc8_shield",var_0E);
}
scripts\mp\_damage::func_AF96(self,param_02,param_01,param_07,param_06,param_04,param_0A,undefined,param_0B,param_03,param_05);
scripts\mp\_damage::func_C546("remote_c8",param_01,param_05,param_02);
scripts\mp\killstreaks\_killstreaks::func_A6A0(param_01,param_05,self,param_04);
}
//Function Number: 21
rc8_manageboostfx()
{
self endon("death");
self endon("disconnect");
self endon("owner_disconnect");
self.var_222 endon("disconnect");
level endon("game_ended");
self notify("scriptableBoostFxManager");
self endon("scriptableBoostFxManager");
self waittill("rc8_launched");
self setscriptablepartstate("rc8_jump","neutral",0);
for(;;)
{
self waittill("doubleJumpBoostBegin");
self.booston = 1;
self setscriptablepartstate("rc8_jump","active",0);
self waittill("doubleJumpBoostEnd");
self.booston = undefined;
self setscriptablepartstate("rc8_jump","neutral",0);
}
}
//Function Number: 22
isrc8falldamage(param_00)
{
return isdefined(param_00) && isdefined(param_00.model) && param_00.model == "ks_remote_c8_mp";
}
//Function Number: 23
func_BFF0()
{
return 0;
}
//Function Number: 24
func_128F7(param_00)
{
var_01 = checkrc8available(1);
if(!var_01)
{
if(isdefined(param_00.var_394) && param_00.var_394 != "none")
{
self notify("killstreak_finished_with_weapon_" + param_00.var_394);
}
return 0;
}
var_02 = scripts\mp\killstreaks\_target_marker::func_819B(param_00,::checkrc8availablevalidationfunc);
if(!isdefined(var_02.var_AEC4))
{
scripts\mp\_utility::func_4FC1();
return 0;
}
scripts\mp\_matchdata::func_AFC9(param_00.var_110EA,self.origin);
thread func_10D8D(param_00,var_02);
var_03 = "used_remote_c8";
var_04 = scripts\mp\_killstreak_loot::getrarityforlootitem(param_00.var_1318B);
if(var_04 != "")
{
var_03 = var_03 + "_" + var_04;
}
level thread scripts\mp\_utility::func_115DE(var_03,self);
return 1;
}
//Function Number: 25
checkrc8available(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
if(lib_0D65::func_8008("remote_c8") >= 2)
{
if(param_00)
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
}
return 0;
}
if(lib_0D65::func_8011(self,"remote_c8") >= 1)
{
if(param_00)
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
}
return 0;
}
if(level.teambased && lib_0D65::func_8012(self.team,"remote_c8") >= 1)
{
if(param_00)
{
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
}
return 0;
}
return 1;
}
//Function Number: 26
checkrc8availablevalidationfunc()
{
return checkrc8available(1);
}
//Function Number: 27
func_3772(param_00)
{
scripts\mp\_utility::func_93FA();
if(scripts\mp\_utility::func_4BD7(level.var_6BAA) >= scripts\mp\_utility::func_B4D2())
{
return;
}
var_01 = func_6CC3();
if(!var_01)
{
return;
}
var_02 = scripts\mp\killstreaks\_airdrop::func_7EC0(var_01);
}
//Function Number: 28
func_6CC3(param_00,param_01,param_02)
{
var_03 = undefined;
var_04 = getnodesinradiussorted(self.origin,param_00,param_01,param_00,"path");
foreach(var_06 in var_04)
{
}
var_08 = scripts\common\trace::func_48BC(0,1,0,0,0,0,0);
foreach(var_06 in var_04)
{
var_0A = scripts\common\trace::func_DCED(var_06.origin,var_06.origin + (0,0,param_02),level.var_3CB5,var_08);
if(var_0A["hittype"] == "hittype_none")
{
var_03 = var_06.origin;
break;
}
}
return var_03;
}
//Function Number: 29
func_10D8D(param_00,param_01)
{
self endon("destroyed_rc8");
self endon("disconnect");
var_02 = param_01.var_AEC4 + (0,0,10000);
var_03 = param_01.var_AEC4;
var_04 = rotatepointaroundvector(anglestoright(param_01.angles),anglestoforward(param_01.angles),90);
var_05 = vectortoangles(var_04);
var_06 = spawn("script_model",var_03 + (0,0,3));
var_06 setmodel("ks_remote_c8_mp");
var_06 method_831F(self);
var_06 method_82DD(self);
var_06 dontinterpolate();
var_06 setscriptablepartstate("laser_target","start");
thread func_FBF0(var_06.origin);
var_07 = "mp_robot_c8";
var_08 = scripts\mp\_killstreak_loot::getrarityforlootitem(param_00.var_1318B);
if(var_08 != "")
{
var_07 = var_07 + "_" + var_08;
}
var_09 = scripts\mp\agents\_agents::func_16F2("remote_c8",self.team,"rc8Agent",var_02,(self.angles[0],0,0),self,0,0,"veteran",undefined,1,1,1,1);
var_09 reset_rc8_functionality();
var_09 setmodel(var_07);
var_09 method_8369("vm_robot_c8_base_mp");
var_09 setscriptablepartstate("CompassIcon","hideIcon");
var_09 method_8184();
var_09.midairdamage = spawn("script_model",var_09.origin);
var_09.midairdamage setmodel("ks_remote_c8_mp");
var_09.midairdamage method_831F(self);
var_09.midairdamage method_82DD(self);
var_09.midairdamage dontinterpolate();
var_09.midairdamage linkto(var_09,"tag_origin");
var_09.midairdamage.var_13C2E = "iw7_c8landing_mp";
var_09.midairdamage.var_110E8 = param_00;
var_09.midairdamage.var_A63A = spawn("script_model",var_09.origin);
var_09.midairdamage.var_A63A setmodel("tag_origin");
var_09.midairdamage.var_A63A linkto(var_09,"tag_origin",(-10,0,250),(0,0,0));
thread func_13AE2(var_09);
thread func_13998(var_09,param_01,var_06);
thread watchgameover(var_09);
scripts\mp\_hostmigration::func_13708(3.5);
var_0A = spawn("script_model",var_02);
var_0A setmodel("veh_mil_lnd_ca_droppod_c8_mp");
var_0A moveto(var_03,2.65,0,0);
var_0A setscriptablepartstate("pod","fall",0);
thread func_13A0B(var_0A);
var_0A thread watchreachpoddestination(var_03);
var_09 linkto(var_0A,"tag_origin");
var_09.var_A6BB = param_00.var_110EA;
var_09.var_165A = param_00.var_110EA;
var_09.var_110EA = param_00.var_110EA;
var_09.var_110E8 = param_00;
var_09.var_222 = self;
var_09.var_5F6F = undefined;
var_09.var_FC99 = 1;
var_09 method_831F(self);
var_09 method_82DD(self);
var_09 thread scripts\mp\killstreaks\_agent_killstreak::func_6CE2();
var_0B = 2800;
var_09 scripts\mp\agents\_agent_common::func_F28C(var_0B);
var_09.var_ED75 = 60;
var_09.mainweapon = "iw7_chargeshot_c8_mp";
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_energy_machgun"))
{
var_09.mainweapon = "iw7_minigun_c8_mp";
}
var_09 scripts\mp\_utility::func_12C6(var_09.mainweapon);
var_09 scripts\mp\_utility::func_12C6("iw7_c8landing_mp");
var_09 scripts\mp\_utility::func_12C6("iw7_c8shutdown_mp");
var_09 scripts\mp\_utility::func_12C6("iw7_c8destruct_mp");
var_09 scripts\mp\_utility::func_12C6("iw7_c8offhandshield_mp",0);
var_09 method_844C("iw7_c8offhandshield_mp");
var_09 method_8451(var_09.mainweapon);
var_09 scripts\common\utility::func_1C6E(0);
var_09 scripts\mp\_utility::func_8387("specialty_viewkickoverride");
var_09 scripts\mp\_utility::func_8387("specialty_block_health_regen");
var_09 method_8422(0);
var_09 method_8424(0);
var_09 allowslide(0);
var_09 allowcrouch(0);
var_09 allowprone(0);
var_09 method_8472(0);
var_09 method_8012(0);
var_09 allowjump(0);
var_09 botsetflag("disable_traversals",1);
var_09 botsetflag("disable_crouch",1);
var_09 botsetflag("disable_prone",1);
var_09 botsetflag("affected_by_blindeye",1);
var_09 botsetflag("disable_corner_combat",1);
var_09 method_82C6("c8servo");
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_boosters"))
{
var_09 method_845A("rc8_jump_mp");
var_09 allowjump(1);
var_09 method_8422(1);
var_09 method_85C5(1);
var_09 botsetflag("disable_traversals",0);
var_09 botsetflag("disable_wall_traversals",1);
}
var_09 setscriptablepartstate("CompassIcon","remote_c8");
var_09 scripts\mp\_utility::func_F751();
var_09 scripts\mp\killstreaks\_utility::func_FAE4("destroyed_rc8","rc8_mp");
var_09 scripts\mp\_utility::func_8387("specialty_blindeye");
var_09 scripts\mp\_damage::func_E247();
var_09 notify("rc8_launched");
var_0A waittill("explode",var_0C);
if(isdefined(var_06))
{
var_06 setscriptablepartstate("laser_target","neutral");
var_06 setscriptablepartstate("pod","explode");
}
if(isdefined(var_0A))
{
var_0A delete();
}
if(isdefined(param_01.var_1349C))
{
param_01.var_1349C delete();
}
var_09.origin = var_0C;
var_09 method_8383();
var_09.midairdamage.var_A63A unlink();
var_09.midairdamage.var_A63A linkto(var_09,"j_helmet");
thread updatekillcampos(5,var_09,var_09.midairdamage.var_A63A);
var_09 attachshieldmodel("weapon_c8_shield_top_mp","j_wristshield");
var_09 attachshieldmodel("weapon_c8_shield_bottom_mp","j_wristbtmshield");
var_09.var_130AC = spawn("script_model",var_09 gettagorigin("tag_eye"));
var_09.var_130AC linkto(var_09,"tag_eye");
if(isdefined(var_09.var_8C98))
{
var_09.var_8C98 = undefined;
}
self.var_DCFC = var_09;
self.var_4BE1 = "AI";
func_F697(self.var_4BE1,1);
var_09 scripts\mp\killstreaks\_utility::func_1843(var_09.var_A6BB,"Killstreak_Ground",self,1);
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_speed_duration"))
{
var_09.var_ED75 = int(var_09.var_ED75 / 1.2);
}
thread func_13AD7(var_09.var_130AC);
thread func_13B7E(var_09.var_ED75);
thread func_13A10(var_09);
thread func_13996();
thread func_13ACD(var_09);
thread func_13B0C(var_09);
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_speed_duration"))
{
var_09 setmovespeedscale(1);
}
}
//Function Number: 30
watchreachpoddestination(param_00)
{
self endon("death");
level endon("game_ended");
while(distancesquared(self.origin,param_00) > 0)
{
scripts\common\utility::func_136F7();
}
self notify("explode",param_00);
}
//Function Number: 31
updatekillcampos(param_00,param_01,param_02)
{
self endon("destroyed_rc8");
wait(param_00);
param_02 unlink();
param_02 linkto(param_01,"tag_origin",(0,0,150),(0,0,0));
}
//Function Number: 32
watchgameover(param_00)
{
self endon("destroyed_rc8");
level waittill("game_ended");
self notify("destroyed_rc8",1);
}
//Function Number: 33
func_FBF0(param_00)
{
self endon("destroyed_rc8");
playsoundatpos(param_00,"rc8_laser_on");
scripts\mp\_hostmigration::func_13708(0.5);
var_01 = spawn("script_origin",param_00);
var_01 playloopsound("rc8_laser_lp");
var_01 thread func_FB68(self,1.5,"rc8_pod_incoming");
var_01 thread func_FB69(self,"destroyed_rc8");
scripts\mp\_hostmigration::func_13708(5.3);
playsoundatpos(param_00,"rc8_land");
scripts\mp\_hostmigration::func_13708(0.5);
playsoundatpos(param_00,"rc8_intro_pod_break");
scripts\mp\_hostmigration::func_13708(0.2);
var_01 delete();
}
//Function Number: 34
func_FB68(param_00,param_01,param_02)
{
param_00 endon("destroyed_rc8");
scripts\mp\_hostmigration::func_13708(param_01);
if(isdefined(self))
{
self playsound(param_02);
}
}
//Function Number: 35
func_FB69(param_00,param_01)
{
level endon("game_ended");
param_00 waittill(param_01);
if(isdefined(self))
{
self delete();
}
}
//Function Number: 36
func_13A0B(param_00)
{
param_00 endon("death");
level endon("game_ended");
self waittill("destroyed_rc8",var_01);
if(scripts\mp\_utility::func_9FB3(var_01))
{
scripts\mp\_shellshock::func_22FF(1,0.7,800);
if(isdefined(param_00))
{
param_00 delete();
}
}
}
//Function Number: 37
func_F697(param_00,param_01)
{
thread func_560D(param_00,param_01);
thread func_627B(param_01);
}
//Function Number: 38
func_560D(param_00,param_01)
{
self endon("disconnect");
self endon("destroyed_rc8");
level endon("game_ended");
self.var_DCFC.var_130AC makeunusable();
self.var_4BE1 = param_00;
if(!scripts\mp\_utility::func_9FB3(param_01) && param_00 == "AI")
{
self notify("stop_manual_rc8");
scripts\common\utility::func_136F7();
self.var_DCFC thermalvisionfofoverlayoff();
self.var_DCFC method_85A2("");
self.var_DCFC setclientomnvar("ui_rc8_controls",0);
self.var_DCFC setclientomnvar("ui_killstreak_missile_warn",0);
self.var_DCFC setclientomnvar("ui_remote_c8_countdown",0);
self.var_DCFC setclientomnvar("ui_remote_c8_health",0);
self setclientomnvar("ui_out_of_bounds_countdown",0);
}
else if(param_00 == "MANUAL")
{
thread func_10D87();
}
self.var_DCFC rc8_disable_movement(1);
self.var_DCFC rc8_disable_rotation(1);
self.var_DCFC rc8_disable_attack(1);
if(scripts\mp\_utility::func_9FB3(param_01))
{
self.var_DCFC scripts\mp\_utility::_switchtoweapon("iw7_c8landing_mp");
}
else
{
self.var_DCFC scripts\mp\_utility::_switchtoweapon("iw7_c8shutdown_mp");
}
self.var_DCFC.var_19 = undefined;
if(scripts\mp\_utility::func_9FB3(param_01))
{
scripts\mp\_hostmigration::func_13708(0.5);
self.var_DCFC.var_FC99 = undefined;
}
else
{
scripts\mp\_hostmigration::func_13708(1.2);
}
self notify("finished_disable");
}
//Function Number: 39
func_10D87()
{
self endon("disconnect");
level endon("game_ended");
var_00 = scripts\mp\killstreaks\_proxyagent::func_45D0(self.var_DCFC,self.var_DCFC.var_110E8,"stop_manual_rc8",self.var_DCFC.var_ED75,1,"rc8_mp");
if(!var_00)
{
if(!isalive(self.var_DCFC) || scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
{
return;
}
self.var_4BE1 = "AI";
return;
}
self.var_DCFC thermalvisionfofoverlayon();
self.var_DCFC method_85A2("rc8_mp");
self.var_DCFC setclientomnvar("ui_rc8_controls",1);
self.var_DCFC setclientomnvar("ui_remote_c8_countdown",gettime() + int(self.var_DCFC.var_ED75 * 1000));
self.var_DCFC setclientomnvar("ui_remote_c8_health",self.var_DCFC.health / self.var_DCFC.maxhealth);
}
//Function Number: 40
func_627B(param_00)
{
self endon("disconnect");
self endon("destroyed_rc8");
level endon("game_ended");
self waittill("finished_disable");
waitforswitchtoweapon(self.var_DCFC,self.var_DCFC.mainweapon);
var_01 = self.var_4BE1;
if(var_01 == "AI")
{
scripts\mp\_utility::func_C638("remote_c8_ai");
}
else
{
scripts\common\utility::func_136F7();
self.var_DCFC scripts\mp\_utility::func_7385(1);
scripts\mp\_utility::func_C638("remote_c8_user");
}
if(scripts\mp\_utility::func_9FB3(param_00))
{
scripts\mp\_hostmigration::func_13708(1.6);
}
else
{
scripts\mp\_hostmigration::func_13708(1.2);
}
if(!isalive(self.var_DCFC) || scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
{
return;
}
if(var_01 == "MANUAL")
{
self.var_DCFC scripts\mp\_utility::func_7385(0);
self.var_DCFC rc8_setuavstrength();
}
self.var_DCFC method_8597(1);
self.var_DCFC rc8_disable_movement(0);
self.var_DCFC rc8_disable_rotation(0);
self.var_DCFC rc8_disable_attack(0);
self.var_DCFC.var_130AC scripts\mp\killstreaks\_utility::func_F774(self,&"KILLSTREAKS_HINTS_RC8_CONTROL",360,360,30000,30000,1);
self.var_DCFC.var_19 = 1;
self notify("switched_mode");
}
//Function Number: 41
waitforswitchtoweapon(param_00,param_01)
{
self endon("disconnect");
self endon("destroyed_rc8");
level endon("game_ended");
var_02 = 0;
while(!var_02)
{
param_00 scripts\mp\_utility::_switchtoweapon(param_01);
var_03 = 0.5;
while(var_03 > 0)
{
if(param_00 scripts\mp\_utility::func_9DA5(param_01))
{
var_02 = 1;
break;
}
var_03 = var_03 - 0.05;
scripts\common\utility::func_136F7();
}
}
}
//Function Number: 42
func_8026(param_00)
{
var_01 = undefined;
if(param_00 == "AI")
{
var_01 = "MANUAL";
}
else
{
var_01 = "AI";
}
return var_01;
}
//Function Number: 43
func_13AD7(param_00)
{
self endon("disconnect");
self endon("destroyed_rc8");
var_01 = self;
for(;;)
{
if(isdefined(self.var_4BE1) && self.var_4BE1 == "AI")
{
param_00 waittill("trigger",var_02);
if(var_02 != self)
{
continue;
}
if(scripts\mp\_utility::func_9FC6())
{
continue;
}
if(isdefined(self.var_55E4) && self.var_55E4 > 0)
{
continue;
}
if(scripts\mp\_utility::func_9FAE(self))
{
continue;
}
var_01 = self;
}
else
{
var_01 = self.var_DCFC;
}
var_03 = self.var_4BE1;
var_04 = 0;
var_05 = 0.1;
if(self.var_4BE1 == "MANUAL")
{
var_05 = 0.3;
}
while(var_01 usebuttonpressed())
{
var_04 = var_04 + 0.05;
if(var_04 > var_05)
{
var_06 = func_8026(var_03);
func_F697(var_06,0);
self waittill("switched_mode");
break;
}
wait(0.05);
}
wait(0.05);
}
}
//Function Number: 44
func_13AE2(param_00)
{
self endon("destroyed_rc8");
level endon("game_ended");
scripts\common\utility::waittill_any_3("joined_team","disconnect","joined_spectators");
self notify("destroyed_rc8",1);
}
//Function Number: 45
func_13B7E(param_00)
{
self endon("disconnect");
self endon("host_migration_lifetime_update");
self endon("destroyed_rc8");
level endon("game_ended");
thread scripts\mp\killstreaks\_utility::watchhostmigrationlifetime("destroyed_rc8",param_00,::func_13B7E);
while(param_00 > 0)
{
wait(0.05);
param_00 = param_00 - 0.05;
self.var_DCFC.var_ED75 = self.var_DCFC.var_ED75 - 0.05;
if(self.var_DCFC.var_ED75 < 0)
{
self.var_DCFC.var_ED75 = 0;
}
}
var_01 = ["remote_c8_end","remote_c8_timeout"];
var_02 = randomint(var_01.size);
var_03 = var_01[var_02];
scripts\mp\_utility::func_D4B6(var_03,undefined,undefined,self.origin);
self notify("destroyed_rc8",0);
}
//Function Number: 46
func_13A10(param_00)
{
level endon("game_ended");
self endon("destroyed_rc8");
for(;;)
{
param_00 waittill("emp_damage",var_01,var_02,var_03,var_04,var_05);
param_00 scripts\mp\killstreaks\_utility::dodamagetokillstreak(100,var_01,var_01,self.team,var_03,var_05,var_04);
}
}
//Function Number: 47
func_13999(param_00)
{
param_00 endon("death");
for(;;)
{
var_01 = param_00 getcurrentweapon();
iprintlnbold("Current Weapon: " + var_01);
wait(1);
}
}
//Function Number: 48
func_13996()
{
self endon("destroyed_rc8");
for(;;)
{
self waittill("player_killstreak_agent_death",var_00,var_01,var_02,var_03,var_04,var_05,var_06);
if(!isdefined(self.var_DCFC))
{
break;
}
if(var_00 != self.var_DCFC)
{
continue;
}
if(scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
{
continue;
}
if(isdefined(var_06) && var_06 == "concussion_grenade_mp")
{
if(scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(self.var_222,var_02)))
{
var_02 scripts\mp\_missions::func_D991("ch_tactical_emp_eqp");
}
}
if(isplayer(var_02) && var_02 != self)
{
var_07 = "callout_destroyed_remote_c8";
var_08 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_DCFC.var_110E8.var_1318B);
if(var_08 != "")
{
var_07 = var_07 + "_" + var_08;
}
self.var_DCFC scripts\mp\_damage::func_C548("remote_c8",var_02,var_06,var_05,var_03,"destroyed_remote_c8","remote_c8_destroy",var_07);
}
if(scripts\mp\_utility::func_9FB3(level.var_C1C3))
{
self notify("destroyed_rc8",1);
continue;
}
self notify("destroyed_rc8",0);
}
}
//Function Number: 49
func_13998(param_00,param_01,param_02)
{
self waittill("destroyed_rc8",var_03);
param_00 thread func_D51B(var_03,param_01,param_02);
}
//Function Number: 50
func_D51B(param_00,param_01,param_02)
{
if(isdefined(self.var_AE62))
{
self.var_AE62 = undefined;
}
if(isdefined(param_01.var_1349C))
{
param_01.var_1349C delete();
}
if(isdefined(param_02))
{
param_02 delete();
}
if(isdefined(self.midairdamage))
{
if(isdefined(self.midairdamage.var_A63A))
{
self.midairdamage.var_A63A delete();
}
self.midairdamage delete();
}
if(isdefined(self.var_130AC))
{
self.var_130AC makeunusable();
self.var_130AC delete();
}
if(isdefined(self.mainweapon))
{
self.mainweapon = undefined;
}
self setclientomnvar("ui_rc8_controls",0);
self setclientomnvar("ui_killstreak_missile_warn",0);
self setclientomnvar("ui_remote_c8_countdown",0);
self setclientomnvar("ui_remote_c8_health",0);
self method_85A2("");
self thermalvisionfofoverlayoff();
rc8_disable_movement(1);
rc8_disable_rotation(1);
rc8_disable_attack(1);
self botsetflag("ads_shield",0);
if(scripts\mp\_utility::func_9FB3(param_00))
{
if(isdefined(self.var_222))
{
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
{
self.var_222 notify("stop_manual_rc8");
}
}
}
else
{
self.var_5F6F = 1;
var_03 = 3;
if(isdefined(self.var_222))
{
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
{
self.var_222 notify("stop_manual_rc8");
scripts\common\utility::func_136F7();
}
self.var_222.var_4BE1 = undefined;
var_04 = self.var_222 scripts\mp\_utility::func_1302("dummy_spike_mp",self.origin,self.origin,var_03);
if(!isdefined(var_04.var_13C2E))
{
var_04.var_13C2E = "dummy_spike_mp";
}
var_04 linkto(self);
}
playfxontag(scripts\common\utility::getfx("rc8_malfunction"),self,"j_mainroot");
scripts\mp\_utility::_switchtoweapon("iw7_c8destruct_mp");
thread func_FBF1(var_03);
scripts\mp\_hostmigration::func_13708(var_03);
}
playfx(scripts\common\utility::getfx("rc8_explode"),self.origin);
playsoundatpos(self.origin,"c8_destruct");
playsoundatpos(self.origin,"frag_grenade_explode");
scripts\mp\_shellshock::func_22FF(1,0.7,800);
scripts\mp\_utility::func_41BA();
self hide();
self.var_AE62 = undefined;
self.nocorpse = 1;
if(!scripts\mp\_utility::func_9FB3(param_00))
{
if(isdefined(self.var_222))
{
self radiusdamage(self.origin,256,200,100,self.var_222,"MOD_EXPLOSIVE",self.mainweapon);
}
self suicide();
}
reset_rc8_functionality();
lib_0D65::func_4DDB();
scripts\mp\_utility::func_D915("killstreak ended - remote_c8",self.var_222);
}
//Function Number: 51
func_FBF1(param_00)
{
self playsound("c8_destruct_initiate");
scripts\common\utility::delaycall(0.4,::playsound,"c8_destruct_build_up");
scripts\mp\_hostmigration::func_13708(param_00 - 0.5);
self playsound("c8_destruct_warning");
}
//Function Number: 52
func_13ACD(param_00)
{
self endon("disconnect");
self endon("destroyed_rc8");
var_01 = 100;
for(;;)
{
param_00 waittill("victim_damaged",var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B);
if(var_03 == param_00 && var_02 != param_00 && var_06 == "MOD_MELEE")
{
if(isplayer(var_02))
{
var_0C = anglestoforward(param_00 getplayerangles());
var_0D = param_00.origin;
var_0E = param_00 gettagorigin("c8_shield_le") + (0,0,20) + var_0C * 200;
var_0F = vectornormalize(var_0E - var_0D);
var_01 = var_02.health + 1;
var_02 method_84DC(var_0F,700);
var_02 playsound("rc8_melee_hit");
wait(0.05);
}
else
{
var_01 = 100;
}
var_02 dodamage(var_01,var_02.origin,self,param_00,"MOD_EXPLOSIVE",var_07);
scripts\mp\_shellshock::func_1245(0.1,0.08,var_08,100);
}
}
}
//Function Number: 53
func_13B0C(param_00)
{
self endon("disconnect");
self endon("destroyed_rc8");
level endon("game_ended");
for(;;)
{
self waittill("spawned_player");
if(isdefined(param_00))
{
param_00 method_831F(self);
}
}
}
//Function Number: 54
func_511F(param_00)
{
self endon("death");
self endon("disconnect");
self.var_222 endon("destroyed_rc8");
level endon("game_ended");
wait(param_00);
self.var_FC99 = undefined;
}
//Function Number: 55
playvoice(param_00,param_01)
{
self notify("try_play_voice",param_00,param_01);
}
//Function Number: 56
rc8_disable_movement(param_00)
{
if(param_00)
{
if(!isdefined(self.disabledmovement))
{
self.disabledmovement = 0;
}
self.disabledmovement++;
self botsetflag("disable_movement",1);
return;
}
if(!isdefined(self.disabledmovement))
{
self.disabledmovement = 0;
}
else
{
self.disabledmovement--;
}
if(!self.disabledmovement)
{
self botsetflag("disable_movement",0);
}
}
//Function Number: 57
rc8_disable_attack(param_00)
{
if(param_00)
{
if(!isdefined(self.var_55B1))
{
self.var_55B1 = 0;
}
self.var_55B1++;
self botsetflag("disable_attack",1);
return;
}
if(!isdefined(self.var_55B1))
{
self.var_55B1 = 0;
}
else
{
self.var_55B1--;
}
if(!self.var_55B1)
{
self botsetflag("disable_attack",0);
}
}
//Function Number: 58
rc8_disable_rotation(param_00)
{
if(param_00)
{
if(!isdefined(self.disablerotation))
{
self.disablerotation = 0;
}
self.disablerotation++;
self botsetflag("disable_rotation",1);
return;
}
if(!isdefined(self.disablerotation))
{
self.disablerotation = 0;
}
else
{
self.disablerotation--;
}
if(!self.disablerotation)
{
self botsetflag("disable_rotation",0);
}
}
//Function Number: 59
reset_rc8_functionality()
{
self.disabledmovement = undefined;
self.var_55B1 = undefined;
self.disablerotation = undefined;
}