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

200 lines
5.2 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\bots\_bots_supers.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 303 ms
* Timestamp: 10/27/2023 12:27:47 AM
*******************************************************************/
//Function Number: 1
func_2EA3()
{
level.var_2D1D["super_claw"] = ::func_89EF;
level.var_2D1D["super_steeldragon"] = ::func_89EF;
level.var_2D1D["super_armmgs"] = ::func_89EF;
level.var_2D1D["super_atomizer"] = ::func_89EF;
level.var_2D1D["super_blackholegun"] = ::func_89EF;
level.var_2D1D["super_penetrationrailgun"] = ::func_89EF;
level.var_2D1D["super_amplify"] = ::func_89EE;
level.var_2D1D["super_overdrive"] = ::func_89EE;
level.var_2D1D["super_armorup"] = ::func_89EE;
level.var_2D1D["super_rewind"] = ::func_89EE;
level.var_2D1D["super_phaseshift"] = ::func_89EE;
level.var_2D1D["super_teleport"] = ::func_89EE;
level.var_2D1D["super_invisible"] = ::func_89EE;
level.var_2D1D["super_visionpulse"] = ::func_89EE;
}
//Function Number: 2
func_9F8B(param_00)
{
if(!isdefined(level.var_2D1D))
{
return 0;
}
if(!isdefined(level.var_2D1D[param_00]))
{
return 0;
}
return 1;
}
//Function Number: 3
func_2EE9()
{
var_00 = self.var_2ED8;
var_01 = randomint(level.var_2EFC[var_00].size);
return level.var_2EFC[var_00][var_01];
}
//Function Number: 4
botpicktrait()
{
var_00 = self.var_2ED8;
if(!isdefined(level.botsupportedarchetypetraits))
{
level.botsupportedarchetypetraits = [];
level.botsupportedarchetypetraits["archetype_assault"] = [];
level.botsupportedarchetypetraits["archetype_heavy"] = [];
level.botsupportedarchetypetraits["archetype_scout"] = [];
level.botsupportedarchetypetraits["archetype_assassin"] = [];
level.botsupportedarchetypetraits["archetype_engineer"] = [];
level.botsupportedarchetypetraits["archetype_sniper"] = [];
level.botsupportedarchetypetraits["archetype_assault"][level.botsupportedarchetypetraits["archetype_assault"].size] = "specialty_boom";
level.botsupportedarchetypetraits["archetype_heavy"][level.botsupportedarchetypetraits["archetype_heavy"].size] = "specialty_regenfaster";
level.botsupportedarchetypetraits["archetype_heavy"][level.botsupportedarchetypetraits["archetype_heavy"].size] = "specialty_man_at_arms";
level.botsupportedarchetypetraits["archetype_scout"][level.botsupportedarchetypetraits["archetype_scout"].size] = "specialty_afterburner";
level.botsupportedarchetypetraits["archetype_scout"][level.botsupportedarchetypetraits["archetype_scout"].size] = "specialty_rush";
level.botsupportedarchetypetraits["archetype_assassin"][level.botsupportedarchetypetraits["archetype_assassin"].size] = "specialty_sixth_sense";
level.botsupportedarchetypetraits["archetype_engineer"][level.botsupportedarchetypetraits["archetype_engineer"].size] = "specialty_personal_trophy";
level.botsupportedarchetypetraits["archetype_engineer"][level.botsupportedarchetypetraits["archetype_engineer"].size] = "specialty_rugged_eqp";
level.botsupportedarchetypetraits["archetype_sniper"][level.botsupportedarchetypetraits["archetype_sniper"].size] = "specialty_rearguard";
level.botsupportedarchetypetraits["archetype_sniper"][level.botsupportedarchetypetraits["archetype_sniper"].size] = "specialty_mark_targets";
}
var_01 = randomint(level.botsupportedarchetypetraits[var_00].size);
return level.botsupportedarchetypetraits[var_00][var_01];
}
//Function Number: 5
func_2EB7()
{
if(isdefined(self.var_2EB7))
{
return;
}
self notify("bot_think_supers");
self endon("bot_think_supers");
self endon("disconnect");
level endon("game_ended");
self.var_2EB7 = 1;
for(;;)
{
self waittill("super_ready");
if(!isdefined(self.var_AEAA))
{
continue;
}
if(isdefined(level.var_2D1D[self.var_AEAA]))
{
self [[ level.var_2D1D[self.var_AEAA] ]]();
}
else
{
}
self botsetflag("super_ready",0);
self waittill("super_finished");
}
}
//Function Number: 6
func_89EF()
{
level endon("game_ended");
self endon("disconnect");
for(;;)
{
var_00 = randomfloatrange(3,6);
wait(var_00);
if(!isalive(self))
{
continue;
}
if(!isdefined(self.var_10C) || !isalive(self.var_10C))
{
scripts\common\utility::waittill_any_3("enemy","death");
}
if(!isalive(self))
{
continue;
}
if(!isdefined(self.var_10C))
{
continue;
}
var_01 = distance(self.var_10C.origin,self.origin);
if(var_01 < 800 && scripts\mp\bots\_bots_powers::func_8BEE())
{
if(var_01 < 550)
{
continue;
}
}
self botsetflag("super_ready",1);
break;
}
self waittill("super_started");
}
//Function Number: 7
func_89EE()
{
level endon("game_ended");
self endon("disconnect");
wait(randomfloatrange(1,3));
for(;;)
{
wait(0.25);
if(!isalive(self))
{
continue;
}
if(!isdefined(self.var_10C) || !isalive(self.var_10C))
{
scripts\common\utility::waittill_any_3("enemy","death");
}
if(!isalive(self))
{
continue;
}
if(scripts\mp\bots\_bots_powers::func_8BEE())
{
var_00 = distance(self.var_10C.origin,self.origin);
if(var_00 < 600)
{
continue;
}
}
break;
}
self botsetflag("super_ready",1);
self waittill("super_started");
}