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

1842 lines
32 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\battlechatter_ai.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 60
* Decompile Time: 3405 ms
* Timestamp: 10/27/2023 12:00:07 AM
*******************************************************************/
//Function Number: 1
func_185D(param_00)
{
self endon("death");
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
if(self.var_3D4B)
{
return;
}
if(!isdefined(self.var_10AC8.var_3D4B) || !self.var_10AC8.var_3D4B)
{
self.var_10AC8 scripts\anim\battlechatter::func_9762();
}
self.var_6552 = "infantry";
self.var_376A = [];
if(isplayer(self) || scripts\common\utility::func_D11B() && self == level.var_D127)
{
self.var_28CF = 0;
self.var_6EE9 = 0;
self.type = "human";
return;
}
if(isdefined(self.var_29B8) && self.var_29B8)
{
self.var_28CF = 0;
self.var_6EE9 = 0;
}
else
{
if(self.var_12BA4 == "c12")
{
self.var_28CF = 0;
self.var_6552 = "c12";
return;
}
if(self.var_12BA4 == "c8" || isdefined(self.var_238F) && self.var_238F == "seeker")
{
self.var_28CF = 0;
self.var_6EE9 = 0;
return;
}
if(self.team == "neutral")
{
self.var_6552 = undefined;
self.var_28CF = 0;
self.var_6EE9 = 0;
return;
}
if(self.var_12BA4 == "c6")
{
self method_8000("grenade danger");
thread func_29B6();
}
self.var_8C7E = lib_0A1E::func_2356("Knobs","head");
self.var_EF82 = lib_0A1E::func_2356("Knobs","scripted_talking");
self.var_504D = lib_0A1E::func_2356("Knobs","default_talking");
}
if(!isdefined(self.var_13525))
{
return;
}
self.var_46BC = level.var_46BD[self.var_13525];
if(!isdefined(self.var_46BC))
{
return;
}
func_23CF();
thread func_1A54();
func_94E5();
thread func_1B06();
}
//Function Number: 2
func_23CF()
{
if(isdefined(self.var_EDB8))
{
var_00 = tolower(self.var_EDB8);
if(issubstr(var_00,"eth.3n"))
{
self.var_C19D = "eth";
return;
}
if(issubstr(var_00,"ethan"))
{
self.var_C19D = "eth";
return;
}
if(issubstr(var_00,"salter"))
{
self.var_C19D = "slt";
return;
}
if(issubstr(var_00,"brooks"))
{
self.var_C19D = "brk";
return;
}
if(issubstr(var_00,"kashima"))
{
self.var_C19D = "ksh";
return;
}
if(issubstr(var_00,"omar"))
{
self.var_C19D = "omr";
return;
}
if(issubstr(var_00,"mco"))
{
self.var_C19D = "omr";
return;
}
if(issubstr(var_00,"macallum"))
{
self.var_C19D = "mac";
return;
}
if(issubstr(var_00,"raines"))
{
self.var_C19D = "adm";
return;
}
func_F7BB();
return;
}
if(isdefined(self.var_29B8) && self.var_29B8)
{
while(!isdefined(level.var_13075) || !isdefined(level.var_13075[self.var_13525]))
{
wait(0.05);
}
}
func_F7BB();
}
//Function Number: 3
func_72C2()
{
if(!getdvarint("bcs_forceEnglish",0))
{
return 0;
}
switch(level.script)
{
case "pmc_strike":
return 1;
}
return 0;
}
//Function Number: 4
func_1B06()
{
self endon("death");
self endon("removed from battleChatter");
if(!isdefined(self.team))
{
return;
}
var_00 = 0.5;
wait(var_00);
if(!scripts\common\utility::func_D11B())
{
thread func_1A10();
}
thread func_1A0F();
if(self.team == "allies")
{
wait(var_00);
thread func_1A0E();
}
else if((self.team == "axis" || self.team == "team3") && !func_9D3A(self.var_46BC))
{
thread func_1A19();
var_00 = 5;
}
if(isdefined(level.player) && self.team == level.player.team)
{
thread func_D085();
}
wait(var_00);
thread func_1A07();
}
//Function Number: 5
func_9D3A(param_00)
{
if(param_00 == "UN" || param_00 == "JK")
{
return 1;
}
return 0;
}
//Function Number: 6
func_F7BB()
{
var_00 = level.var_13075[self.var_13525];
var_01 = var_00.size;
var_02 = randomintrange(0,var_01);
var_03 = var_02;
for(var_04 = 0;var_04 <= var_01;var_04++)
{
if(var_00[var_02 + var_04 % var_01].var_C1 < var_00[var_03].var_C1)
{
var_03 = var_02 + var_04 % var_01;
}
}
thread func_C19E(var_03);
self.var_C19D = var_00[var_03].var_C19D;
if(self.var_13525 == "unitednationsfemale")
{
self.var_C19D = "w" + self.var_C19D;
}
}
//Function Number: 7
func_C19E(param_00)
{
level.var_13075[self.var_13525][param_00].var_C1++;
scripts\common\utility::waittill_either("death","removed from battleChatter");
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
level.var_13075[self.var_13525][param_00].var_C1--;
}
//Function Number: 8
func_1A19()
{
self endon("death");
self endon("removed from battleChatter");
wait(2);
for(;;)
{
if(distancesquared(self.origin,level.player.origin) < 1048576)
{
if(isdefined(self.var_10AC8.var_B65C) && self.var_10AC8.var_B65C > 1)
{
func_181C("taunt","hostileburst");
}
}
wait(randomfloatrange(2,5));
}
}
//Function Number: 9
func_1A07()
{
self endon("death");
self endon("removed from battleChatter");
for(;;)
{
scripts\anim\battlechatter::func_CEE8();
wait(0.3 + randomfloat(0.2));
}
}
//Function Number: 10
func_1A54()
{
self endon("death");
self endon("removed from battleChatter");
for(;;)
{
self.var_29AD = scripts\anim\battlechatter::func_7FD8();
self.var_29B3 = scripts\anim\battlechatter::func_80C8();
self waittill("set name and rank");
}
}
//Function Number: 11
func_E11B(param_00)
{
if(scripts\anim\battlechatter::func_29CA())
{
if(func_1A1B() || !isalive(self))
{
if(isdefined(self))
{
func_1A0C();
func_1A0A();
}
}
}
if(isdefined(self))
{
self.var_28CF = 0;
self.var_3D4B = 0;
}
self notify("removed from battleChatter");
if(isdefined(self))
{
self.var_3D4C = undefined;
self.var_BFA8 = undefined;
self.var_BFA9 = undefined;
self.var_9F6B = undefined;
self.var_6552 = undefined;
self.var_376A = undefined;
self.var_46BC = undefined;
self.var_C19D = undefined;
}
}
//Function Number: 12
func_94E5()
{
self.var_3D4C = [];
self.var_3D4C["threat"] = spawnstruct();
self.var_3D4C["threat"].var_698B = 0;
self.var_3D4C["threat"].priority = 0;
self.var_3D4C["response"] = spawnstruct();
self.var_3D4C["response"].var_698B = 0;
self.var_3D4C["response"].priority = 0;
self.var_3D4C["reaction"] = spawnstruct();
self.var_3D4C["reaction"].var_698B = 0;
self.var_3D4C["reaction"].priority = 0;
self.var_3D4C["inform"] = spawnstruct();
self.var_3D4C["inform"].var_698B = 0;
self.var_3D4C["inform"].priority = 0;
self.var_3D4C["order"] = spawnstruct();
self.var_3D4C["order"].var_698B = 0;
self.var_3D4C["order"].priority = 0;
self.var_3D4C["custom"] = spawnstruct();
self.var_3D4C["custom"].var_698B = 0;
self.var_3D4C["custom"].priority = 0;
self.var_BFA8 = gettime() + 50;
self.var_BFA9["threat"] = 0;
self.var_BFA9["reaction"] = 0;
self.var_BFA9["response"] = 0;
self.var_BFA9["inform"] = 0;
self.var_BFA9["order"] = 0;
self.var_BFA9["custom"] = 0;
self.var_9F6B = 0;
self.var_29BF = 0;
self.var_1C8B = [];
scripts\anim\battlechatter::func_17A2("exposed");
scripts\anim\battlechatter::func_17A2("ai_contact_clock");
scripts\anim\battlechatter::func_17A2("ai_target_clock");
if(self.team == "allies")
{
if(scripts\common\utility::func_2286(level.var_D3DD,self.var_13525))
{
scripts\anim\battlechatter::func_17A2("player_contact_clock");
scripts\anim\battlechatter::func_17A2("player_target_clock");
scripts\anim\battlechatter::func_17A2("player_cardinal");
scripts\anim\battlechatter::func_17A2("player_obvious");
scripts\anim\battlechatter::func_17A2("player_object_clock");
scripts\anim\battlechatter::func_17A2("player_location");
}
scripts\anim\battlechatter::func_17A2("ai_location");
scripts\anim\battlechatter::func_17A2("generic_location");
if(self.var_13525 == "unitednations" || self.var_13525 == "unitednationsfemale")
{
scripts\anim\battlechatter::func_17A2("ai_obvious");
scripts\anim\battlechatter::func_17A2("ai_casual_clock");
scripts\anim\battlechatter::func_17A2("concat_location");
scripts\anim\battlechatter::func_17A2("concat_location");
scripts\anim\battlechatter::func_17A2("player_distance");
scripts\anim\battlechatter::func_17A2("player_target_clock_high");
scripts\anim\battlechatter::func_17A2("ai_distance");
scripts\anim\battlechatter::func_17A2("ai_target_clock_high");
}
}
self.var_28CF = 0;
if((isdefined(self.var_ED15) && self.var_ED15) || level.var_29B7)
{
self.var_28CF = level.var_28CF[self.team];
}
self.var_6EE9 = 0;
if(scripts\anim\battlechatter::func_13528() && level.var_6EE9[self.team] == 1 && self != level.player)
{
self.var_6EE9 = 1;
}
else
{
self.var_6EE9 = 0;
}
if(level.var_7410)
{
scripts\sp\_utility::func_F3C0(1);
}
else
{
scripts\sp\_utility::func_F3C0(0);
}
self.var_3D4B = 1;
}
//Function Number: 13
func_183F(param_00,param_01,param_02)
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_3902("threat",param_00,param_02))
{
return;
}
if(scripts\anim\battlechatter::func_117ED(param_01) && !isplayer(param_01))
{
return;
}
var_03 = scripts\anim\battlechatter::func_4995("threat",param_00,param_02);
switch(param_00)
{
case "infantry":
var_03.var_117B9 = param_01;
break;
case "acquired":
var_03.var_117B9 = param_01;
break;
}
if(isdefined(param_01.var_10AC8))
{
self.var_10AC8 scripts\anim\battlechatter::func_12E7C(param_01.var_10AC8.var_10AEE,self);
}
self.var_3D4C["threat"] = undefined;
self.var_3D4C["threat"] = var_03;
}
//Function Number: 14
func_1820(param_00,param_01,param_02,param_03,param_04,param_05)
{
thread func_1821(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 15
func_1821(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("death");
self endon("removed from battleChatter");
self endon("responseEvent_failsafe");
thread func_E2A1(param_02);
var_06 = param_02 scripts\common\utility::func_13734("death","done speaking","cancel speaking");
if(var_06 == "cancel speaking")
{
return;
}
if(!isalive(param_02))
{
return;
}
if(!scripts\anim\battlechatter::func_3902("response",param_00,param_03,param_01))
{
return;
}
if(!isplayer(param_02))
{
if(scripts\anim\battlechatter::func_9FC7(param_02))
{
return;
}
}
var_07 = scripts\anim\battlechatter::func_4995("response",param_00,param_03);
if(isdefined(param_04))
{
var_07.var_E1A1 = param_04;
}
if(isdefined(param_05))
{
var_07.var_AEC4 = param_05;
}
var_07.var_E29D = param_02;
var_07.var_B92F = param_01;
self.var_3D4C["response"] = undefined;
self.var_3D4C["response"] = var_07;
}
//Function Number: 16
func_E2A1(param_00)
{
self endon("death");
self endon("removed from battleChatter");
param_00 endon("death");
param_00 endon("done speaking");
param_00 endon("cancel speaking");
wait(25);
self notify("responseEvent_failsafe");
}
//Function Number: 17
func_17D2(param_00,param_01,param_02,param_03,param_04)
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_3902("inform",param_00,param_03,param_01))
{
return;
}
var_05 = scripts\anim\battlechatter::func_4995("inform",param_00,param_03);
switch(param_00)
{
case "reloading":
var_05.var_B92F = param_01;
var_05.var_94C2 = param_02;
break;
case "killfirm":
if(isdefined(param_04))
{
var_05.var_117DE = param_04;
}
break;
default:
var_05.var_B92F = param_01;
break;
}
self.var_3D4C["inform"] = undefined;
self.var_3D4C["inform"] = var_05;
}
//Function Number: 18
func_181C(param_00,param_01,param_02,param_03)
{
self endon("death");
self endon("removed from battleChatter");
if(!isdefined(self.var_3D4C))
{
return;
}
if(!isdefined(level.var_68AF) || !isdefined(level.var_68B5))
{
return;
}
var_04 = scripts\anim\battlechatter::func_4995("reaction",param_00,param_03);
var_04.var_DD60 = param_02;
var_04.var_B92F = param_01;
self.var_3D4C["reaction"] = undefined;
self.var_3D4C["reaction"] = var_04;
}
//Function Number: 19
func_1809(param_00,param_01,param_02,param_03)
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_3902("order",param_00,param_03,param_01))
{
return;
}
var_04 = scripts\anim\battlechatter::func_4995("order",param_00,param_03);
var_04.var_B92F = param_01;
var_04.var_C6E5 = param_02;
self.var_3D4C["order"] = undefined;
self.var_3D4C["order"] = var_04;
}
//Function Number: 20
func_81C6(param_00,param_01)
{
var_02 = param_00.size;
if(var_02 == 0)
{
wait(param_01);
return param_00;
}
var_03 = param_01 * 20;
var_04 = var_02 / var_03;
var_05 = [];
for(var_06 = 0;var_06 < var_02;var_06++)
{
var_07 = param_00[var_06];
if(self.var_10AEE != "jackal_allies")
{
if(!isdefined(var_07) || isdefined(var_07) && !isdefined(var_07.var_13525))
{
continue;
}
}
else if(!isdefined(var_07))
{
continue;
}
if(!isdefined(var_07.var_6552) || self.var_10AEE == "jackal_allies" && isdefined(var_07.var_13525))
{
continue;
}
var_05[var_05.size] = param_00[var_06];
}
if(var_05.size == 0)
{
wait(param_01);
return var_05;
}
var_05 = sortbydistance(var_05,level.player.origin);
var_08 = [];
var_09 = [];
var_0A = 0;
foreach(var_0C in var_05)
{
if(isdefined(var_0C) && func_117E8(var_0C))
{
var_0D = var_0C scripts\anim\battlechatter::func_7F7E();
if(isdefined(var_0D) && !scripts\anim\battlechatter::func_AEC7(var_0D))
{
var_08[var_08.size] = var_0C;
}
else
{
var_09[var_09.size] = var_0C;
}
}
var_0A++;
if(var_0A >= var_04)
{
wait(0.05);
var_0A = 0;
}
}
var_05 = [];
foreach(var_10 in var_08)
{
var_05[var_05.size] = var_10;
}
foreach(var_10 in var_09)
{
var_05[var_05.size] = var_10;
}
return var_05;
}
//Function Number: 21
func_117E8(param_00)
{
if(distancesquared(level.player.origin,param_00.origin) > level.var_29BE)
{
return 0;
}
if(!level.player scripts\anim\battlechatter::func_6632(param_00))
{
if(scripts\common\utility::func_D11B() && isdefined(level.player.var_58B7) && level.player.var_58B7 == param_00)
{
return 1;
}
else
{
return 0;
}
}
return 1;
}
//Function Number: 22
func_10AFB()
{
anim endon("battlechatter disabled");
anim endon("squad deleted " + self.var_10AEE);
for(;;)
{
while(!isdefined(level.var_29B7) || !level.var_29B7)
{
wait(0.05);
}
while(level.var_29B7)
{
if(self.team == "allies")
{
if(self.var_10AEE == "jackal_allies")
{
var_00 = level.var_A056.var_1630;
var_01 = func_81C6(var_00,0.5);
}
else
{
var_01 = func_81C6(function_0072("axis","team3"),0.5);
}
}
else if(self.team == "team3")
{
var_01 = func_81C6(function_0072("allies","axis"),0.5);
}
else
{
wait(0.5);
if(self.var_10AEE == "jackal_axis")
{
var_00 = level.var_A056.var_1630;
var_01 = func_81C6(var_00,0.5);
}
else
{
var_01 = function_0072("allies","team3");
var_01[var_01.size] = level.player;
}
}
if(!var_01.size)
{
wait(0.1);
continue;
}
var_02 = [];
foreach(var_04 in self.var_B661)
{
if(!isalive(var_04))
{
continue;
}
if(isdefined(var_04.var_12BA4) && var_04.var_12BA4 == "c8")
{
continue;
}
if(isdefined(var_04.var_12BA4) && var_04.var_12BA4 == "c12")
{
continue;
}
if(!var_01.size)
{
var_01 = var_02;
var_02 = [];
}
foreach(var_0C, var_06 in var_01)
{
if(scripts\common\utility::func_D11B())
{
if(var_06 == level.player)
{
var_06 = level.var_D127;
}
}
else if(isdefined(var_04.var_29B8) && var_04.var_29B8)
{
continue;
}
if(!isdefined(var_06))
{
if(var_0C == 0)
{
var_01 = [];
}
continue;
}
if(!isalive(var_06))
{
continue;
}
if(!isdefined(var_06.var_6552))
{
continue;
}
if(!var_04 func_29A2(var_06))
{
if((scripts\common\utility::func_D11B() && var_06 == level.var_D127) || !scripts\common\utility::func_D11B() && isplayer(var_06))
{
continue;
}
if(!isdefined(var_06.team) || isdefined(var_06.team) && var_06.team == level.player.team)
{
continue;
}
if(!level.player func_29A2(var_06) && !scripts\common\utility::func_D11B())
{
continue;
}
}
var_07 = var_04 func_810F();
if(isdefined(var_07))
{
var_04 func_17D2("incoming","seeker",undefined,0.9);
}
else if(isdefined(var_04.var_3135) && isdefined(var_04.var_3135.var_DB05))
{
var_04 func_181C("danger",undefined,var_04.var_3135.var_DB05);
}
else
{
var_04 func_183F(var_06.var_6552,var_06);
}
var_02[var_02.size] = var_06;
var_08 = [];
var_07 = undefined;
foreach(var_0A in var_01)
{
if(var_0A != var_06)
{
var_08[var_08.size] = var_0A;
}
}
var_01 = var_08;
break;
}
wait(0.05);
}
wait(0.05);
}
}
}
//Function Number: 23
func_1A1B()
{
if(isdefined(self.var_238F) && self.var_238F == "jackal")
{
return 1;
}
return 0;
}
//Function Number: 24
func_29A2(param_00)
{
if(isdefined(level.var_D127))
{
if(!scripts\common\utility::func_D11B() && self == level.var_D127)
{
return 0;
}
}
if(func_1A1B() || scripts\common\utility::func_D11B() && self == level.var_D127)
{
if(param_00 func_1A1B())
{
var_01 = vectornormalize(param_00.origin - self.origin);
var_02 = anglestoforward(self.angles);
var_03 = vectordot(var_02,var_01);
if(var_03 > 0.6)
{
return 1;
}
}
}
else if(self == level.player)
{
if(scripts\sp\_utility::func_CFAC(param_00))
{
return 1;
}
}
else if(self method_805F(param_00))
{
return 1;
}
return 0;
}
//Function Number: 25
func_10AE7()
{
anim endon("battlechatter disabled");
anim endon("squad deleted " + self.var_10AEE);
if(self.var_10AEE != "jackal_allies")
{
return;
}
while(!isdefined(level.var_29B7) || !level.var_29B7)
{
wait(0.05);
}
var_00 = undefined;
var_01 = undefined;
for(;;)
{
while(level.var_29B7)
{
foreach(var_03 in self.var_B661)
{
if(var_03 != level.player)
{
if(isdefined(var_03.var_3135) && isdefined(var_03.var_3135.var_A533) && var_03.var_3135.var_A533)
{
var_00 = "flare";
var_01 = var_03;
break;
}
else if(isdefined(var_03.var_B8A4) && var_03.var_B8A4.size > 0)
{
var_00 = "missile";
var_01 = var_03;
break;
}
else if(var_03 scripts\sp\_utility::func_65DF("jackal_firing"))
{
if(var_03 scripts\sp\_utility::func_65DB("jackal_firing"))
{
var_00 = "guns";
var_01 = var_03;
break;
}
}
continue;
}
if(!level.player scripts\sp\_utility::func_65DB("disable_jackal_flares"))
{
if(var_03.var_6E9C.var_C1 < var_03.var_6E9C.var_B417 && var_03.var_6E9C.var_A989 < gettime() - 50)
{
var_00 = "flare";
var_01 = var_03;
break;
}
}
if(!level.player scripts\sp\_utility::func_65DB("disable_jackal_missiles"))
{
if(var_03 scripts\sp\_utility::func_65DB("player_jackal_missile"))
{
var_00 = "missile";
var_01 = var_03;
break;
}
}
}
if(isdefined(var_01))
{
var_01 thread func_67CF(var_00);
var_01 = undefined;
wait(randomintrange(5,10));
continue;
}
wait(0.5);
}
wait(0.5);
}
wait(1);
}
//Function Number: 26
func_810F()
{
if(!isdefined(level.var_F10A.var_1633) || isdefined(level.var_F10A.var_1633) && level.var_F10A.var_1633.size < 1)
{
return;
}
if(scripts\anim\battlechatter::func_9B42(self))
{
return;
}
var_00 = undefined;
foreach(var_02 in level.var_F10A.var_1633)
{
if(var_02.team == self.team)
{
continue;
}
var_03 = distancesquared(self.origin,var_02.origin);
if(var_03 < 360000 && isdefined(var_02.var_3135.var_F15D) && var_02.var_3135.var_F15D != self)
{
var_00 = var_02;
break;
}
}
return var_00;
}
//Function Number: 27
func_1A0C()
{
var_00 = self.var_4F;
if(!isdefined(var_00))
{
return;
}
if(isdefined(self.var_12BA4) && self.var_12BA4 == "seeker")
{
return;
}
if(isdefined(self.var_10AC8) && isdefined(var_00.var_10AC8) && self.var_10AC8 == var_00.var_10AC8)
{
return;
}
scripts\common\utility::array_thread(self.var_10AC8.var_B661,::func_1A0B,self);
if(!isdefined(var_00.var_28CF))
{
return;
}
if(isalive(var_00) && !isplayer(var_00) && isdefined(var_00.var_10AC8) && var_00.var_28CF)
{
if(isdefined(var_00.var_376A) && isdefined(var_00.var_376A[var_00.var_10AC8.var_10AEE]))
{
var_00.var_376A[var_00.var_10AC8.var_10AEE] = undefined;
}
if(!isdefined(var_00.var_6552))
{
return;
}
if(!var_00 scripts\anim\battlechatter::func_9C15())
{
return;
}
foreach(var_02 in self.var_10AC8.var_B661)
{
if(var_02 == level.player)
{
continue;
}
if(gettime() > var_02.var_A980 + 2000)
{
continue;
}
var_02 func_183F(var_00.var_6552,var_00);
}
}
}
//Function Number: 28
func_1A0B(param_00)
{
if(!isalive(self))
{
return;
}
if(scripts\sp\_utility::func_D123())
{
return;
}
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
self endon("death");
self endon("removed from battleChatter");
self notify("aiDeathEventThread");
self endon("aiDeathEventThread");
if(self == level.player)
{
if(isdefined(param_00) && !level.player func_29A2(param_00))
{
return;
}
}
wait(1.2);
func_181C("casualty","generic",self,0.9);
}
//Function Number: 29
func_1A0A()
{
var_00 = self.var_4F;
var_01 = undefined;
if(!isdefined(var_00))
{
return;
}
if(isdefined(var_00.team) && var_00.team == "allies" && isdefined(var_00.var_12BA4) && var_00.var_12BA4 == "c12")
{
var_02 = scripts\sp\_utility::func_78BB(var_00.origin,level.player.var_10AC8.var_B661,5000);
var_01 = "ally_c12_kill";
if(isdefined(var_02))
{
var_03 = var_02;
}
}
else if(scripts\common\utility::func_D11B())
{
foreach(var_05 in level.var_10AF9["jackal_allies"].var_B661)
{
if(isdefined(var_05.var_4BC7) && var_05.var_4BC7 == self)
{
var_00 = var_05;
var_01 = "jackal";
}
}
}
else if(!isalive(var_00) || !issentient(var_00) && var_00 != level.player || !isdefined(var_00.var_10AC8))
{
return;
}
if(!isdefined(var_00.var_46BC))
{
return;
}
if(var_00.var_46BC == "UN" || var_00.var_46BC == "JK")
{
if(!isdefined(var_01))
{
var_01 = self.var_12BA4;
}
if(isdefined(var_01))
{
var_00 thread func_1A1C(var_01);
}
}
}
//Function Number: 30
func_1A1C(param_00)
{
self endon("death");
self endon("removed from battleChatter");
if(param_00 == "civilian")
{
return;
}
wait(1.2);
func_17D2("killfirm","generic",undefined,undefined,param_00);
}
//Function Number: 31
func_1A10()
{
self endon("death");
self endon("removed from battleChatter");
var_00 = undefined;
for(;;)
{
self waittill("grenade danger",var_01);
if(getdvarint("bcs_enable") == 0)
{
continue;
}
if(isdefined(var_01))
{
var_00 = func_1A11(var_01);
if(!isdefined(var_00))
{
continue;
}
}
else if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
var_00 = "frag";
}
else
{
continue;
}
func_17D2("incoming",var_00);
}
}
//Function Number: 32
func_1A11(param_00)
{
var_01 = undefined;
if(param_00.model == "frag_grenade_wm")
{
var_01 = "frag";
}
if(param_00.model == "emp_grenade_wm")
{
var_01 = "shock";
}
if(param_00.model == "anti_grav_grenade_wm")
{
var_01 = "ant";
}
return var_01;
}
//Function Number: 33
func_29B6()
{
self endon("death");
self endon("removed from battleChatter");
for(;;)
{
self waittill("ai_events",var_00);
foreach(var_02 in var_00)
{
if(var_02.type == "grenade danger")
{
self notify("grenade danger");
break;
}
}
wait(5);
}
}
//Function Number: 34
func_1A0E()
{
self endon("death");
self endon("removed from battleChatter");
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
for(;;)
{
self waittill("trigger");
if(getdvarint("bcs_enable") == 0)
{
continue;
}
if(gettime() < self.var_1491.var_C888 + 4000)
{
continue;
}
func_1820("ack","yes",level.player,1);
}
}
//Function Number: 35
func_67D2(param_00)
{
self endon("death");
self endon("removed from battleChatter");
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
if(!isdefined(self.var_205))
{
return;
}
if(distancesquared(self.origin,self.var_205.origin) < 23040)
{
return;
}
if(!scripts\anim\battlechatter::func_9EB6())
{
return;
}
if(!func_BE58())
{
return;
}
var_01 = scripts\anim\battlechatter::func_80EA(24,1024,"response");
if(self.team != "axis" && self.team != "team3")
{
if(!isdefined(var_01))
{
var_01 = level.player;
}
else if(randomint(100) < level.var_68AE["moveEvent"]["ordertoplayer"])
{
var_01 = level.player;
}
}
if(self.var_440E > 0)
{
if(randomint(100) < level.var_68AE["moveEvent"]["coverme"])
{
func_1809("action","coverme",var_01);
return;
}
func_1809("move","combat",var_01);
return;
}
if(func_BE59())
{
if(gettime() - self.var_10DFF > 3000)
{
func_1809("move","noncombat",var_01);
return;
}
}
}
//Function Number: 36
func_BE58()
{
if(self.var_46BC == "SS")
{
return 0;
}
return 1;
}
//Function Number: 37
func_BE59()
{
if(self.var_46BC == "UN")
{
return 1;
}
return 0;
}
//Function Number: 38
func_1A0F()
{
self endon("death");
self endon("removed from battleChatter");
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
for(;;)
{
level waittill("follow order",var_00);
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
if(!isdefined(self.team))
{
return;
}
if(!isdefined(var_00))
{
continue;
}
if(!isalive(var_00) || var_00.team != self.team)
{
continue;
}
if(distancesquared(self.origin,var_00.origin) < 360000)
{
func_1820("ack","yes",var_00,0.9);
}
}
}
//Function Number: 39
func_D085()
{
self endon("death");
self endon("removed from battleChatter");
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
thread func_D086();
for(;;)
{
self waittill("bulletwhizby",var_00,var_01);
if(!scripts\anim\battlechatter::func_29CA())
{
continue;
}
if(!isplayer(var_00))
{
if(level.var_46BD[self.var_13525] == "GM" && scripts\anim\battlechatter::func_3902("reaction","takingfire",1,undefined))
{
func_181C("takingfire",undefined,var_00,1);
}
continue;
}
}
}
//Function Number: 40
func_D084()
{
func_181C("friendlyfire",undefined,level.player,1);
}
//Function Number: 41
func_D086()
{
self endon("death");
self endon("removed from battleChatter");
for(;;)
{
self waittill("damage",var_00,var_01,var_00,var_00,var_02);
if(isdefined(var_01) && var_01 == level.player)
{
if(func_4D04(var_02))
{
func_D084();
}
}
}
}
//Function Number: 42
func_4D04(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
switch(param_00)
{
case "MOD_CRUSH":
case "MOD_IMPACT":
case "MOD_GRENADE_SPLASH":
case "MOD_GRENADE":
case "MOD_MELEE":
return 0;
}
return 1;
}
//Function Number: 43
func_7414(param_00,param_01)
{
var_02 = 65536;
var_03 = 42;
if(distancesquared(param_00.origin,self.origin) < var_02)
{
return 0;
}
if(param_01 > var_03)
{
return 0;
}
return 1;
}
//Function Number: 44
func_67D4()
{
self endon("death");
self endon("removed from battleChatter");
if(isdefined(self.var_12BA4) && self.var_12BA4 == "c6")
{
return;
}
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
func_17D2("reloading","generic");
}
//Function Number: 45
func_67D1()
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_29CA())
{
return 0;
}
if(!isdefined(self.var_10C))
{
return 0;
}
return 0;
}
//Function Number: 46
func_67D0()
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
if(!isdefined(self.var_10C))
{
}
}
//Function Number: 47
func_67D5()
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
func_17D2("suppressed","generic");
}
//Function Number: 48
func_67CF(param_00)
{
self endon("death");
self endon("removed from battleChatter");
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
var_01 = 0;
var_02 = "frag";
switch(param_00)
{
case "frag":
var_02 = "frag";
break;
case "emp":
var_02 = "shock";
break;
case "offhandshield":
var_02 = "shield";
break;
case "hackingdevice":
var_02 = "hack";
break;
case "guns":
var_02 = "weapon_guns";
var_01 = 1;
break;
case "missile":
var_02 = "weapon_missile";
var_01 = 1;
break;
case "flare":
var_02 = "weapon_flare";
break;
}
func_17D2("attack",var_02);
if(var_01)
{
if(randomint(100) < 25)
{
wait(randomfloatrange(1,2));
if(isalive(self))
{
thread func_181C("movement");
return;
}
}
}
}
//Function Number: 49
func_4C3A()
{
var_00 = [];
var_00[var_00.size] = "order_move_combat";
var_00[var_00.size] = "order_move_noncombat";
var_00[var_00.size] = "order_action_coverme";
var_00[var_00.size] = "inform_reloading";
level.var_4C81 = var_00;
}
//Function Number: 50
func_4C3C(param_00)
{
var_01 = 0;
foreach(var_03 in level.var_4C81)
{
if(var_03 == param_00)
{
var_01 = 1;
break;
}
}
return var_01;
}
//Function Number: 51
func_7B7E(param_00)
{
return level.var_29B1 + "custom battlechatter phrase \'" + param_00 + "\' isn\'t valid. look at _utility::custom_battlechatter_init_valid_phrases(), or the util script documentation for custom_battlechatter(), for a list of valid phrases.";
}
//Function Number: 52
func_7854(param_00)
{
return level.var_29B1 + "AI at origin " + self.origin + "wasn\'t able to play custom battlechatter because his nationality is \'" + self.var_46BC + "\'.";
}
//Function Number: 53
func_4C3B(param_00)
{
if(!isdefined(level.var_4C81))
{
func_4C3A();
}
param_00 = tolower(param_00);
if(!func_4C3C(param_00))
{
var_01 = func_7B7E(param_00);
return 0;
}
var_02 = scripts\anim\battlechatter::func_80EA(24,512,"response");
func_2A62();
switch(var_01)
{
case "order_move_combat":
if(!func_BE58())
{
return 0;
}
scripts\anim\battlechatter::func_128A8(self.var_4C84,var_02);
func_17EF();
break;
case "order_move_noncombat":
if(!func_BE59())
{
return 0;
}
func_17F0();
break;
case "order_action_coverme":
scripts\anim\battlechatter::func_128A8(self.var_4C84,var_02);
func_1797();
break;
case "inform_reloading":
func_17D3();
break;
default:
var_01 = func_7B7E(var_01);
return 0;
}
func_6314(2000);
return 1;
}
//Function Number: 54
func_2A62()
{
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
self.var_4C84 = scripts\anim\battlechatter::func_4996();
}
//Function Number: 55
func_1797()
{
self.var_4C84 scripts\anim\battlechatter::func_1808("action","coverme");
}
//Function Number: 56
func_17EF()
{
self.var_4C84 scripts\anim\battlechatter::func_1808("move","combat");
}
//Function Number: 57
func_17F0()
{
self.var_4C84 scripts\anim\battlechatter::func_1808("move","noncombat");
}
//Function Number: 58
func_17D3()
{
self.var_4C84 scripts\anim\battlechatter::func_17D1("reloading","generic");
}
//Function Number: 59
func_17F3(param_00)
{
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
self.var_4C84 scripts\anim\battlechatter::func_17F2(param_00);
}
//Function Number: 60
func_6314(param_00,param_01)
{
if(!scripts\anim\battlechatter::func_29CA())
{
return;
}
var_02 = scripts\anim\battlechatter::func_4995("custom","generic",1);
if(isdefined(param_00))
{
var_02.var_698B = gettime() + param_00;
}
if(isdefined(param_01))
{
var_02.type = param_01;
}
else
{
var_02.type = "custom";
}
self.var_3D4C["custom"] = undefined;
self.var_3D4C["custom"] = var_02;
}