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

255 lines
5.6 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_deployablebox_gun.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 14
* Decompile Time: 610 ms
* Timestamp: 10/27/2023 12:28:23 AM
*******************************************************************/
//Function Number: 1
init()
{
var_00 = spawnstruct();
var_00.var_92B8 = "deployable_weapon_crate";
var_00.var_39B = "crate_marker_mp";
var_00.var_B91A = "mp_weapon_crate";
var_00.var_B91C = "mp_weapon_crate_bombsquad";
var_00.var_17B = &"KILLSTREAKS_HINTS_DEPLOYABLE_AMMO_USE";
var_00.var_3A41 = &"KILLSTREAKS_DEPLOYABLE_AMMO_TAKING";
var_00.var_67E5 = "deployable_ammo_taken";
var_00.var_110EA = "deployable_ammo";
var_00.var_10A38 = "used_deployable_ammo";
var_00.var_FC47 = "compass_objpoint_deploy_ammo_friendly";
var_00.var_8C7A = 20;
var_00.var_AC71 = 20;
var_00.var_13524 = "ammocrate_gone";
var_00.var_130FC = 0;
var_00.var_EC44 = "destroyed_ammo";
var_00.var_13523 = "ammocrate_destroyed";
var_00.var_5230 = "mp_vest_deployed_ui";
var_00.var_C5C7 = "ammo_crate_use";
var_00.var_C5BC = ::func_C5BE;
var_00.var_3936 = ::func_3937;
var_00.var_C18C = 1;
var_00.var_130EE = 1000;
var_00.maxhealth = 128;
var_00.var_4D4A = "deployable_bag";
var_00.var_4E74 = loadfx("vfx/core/mp/killstreaks/vfx_ballistic_vest_death");
var_00.var_1C9D = 1;
var_00.var_1C96 = 0;
var_00.var_B4D1 = 4;
var_00.var_B7A5 = 20;
var_00.var_B7A8 = "iw6_minigun_mp";
var_00.var_1E4B = 0.5;
var_00.var_1E4C = 10;
var_00.var_127C8 = 200;
var_00.var_127C5 = 64;
var_00.var_C4F0 = ::func_C4CF;
var_00.var_393B = 0;
level.var_2F30["deployable_ammo"] = var_00;
scripts\mp\killstreaks\_killstreaks::func_DEFB("deployable_ammo",undefined,::func_128DD);
level.var_5226 = randomintrange(1,var_00.var_B7A5 + 1);
level.var_5212["deployable_ammo"] = [];
}
//Function Number: 2
func_1E3C(param_00)
{
func_128D7(1,param_00,"ammo_box_mp");
}
//Function Number: 3
func_128D7(param_00,param_01,param_02)
{
var_03 = scripts\mp\killstreaks\_deployablebox::func_2A63(param_00,"deployable_ammo",param_01,param_02);
if(!isdefined(var_03) || !var_03)
{
return 0;
}
return 1;
}
//Function Number: 4
func_128DD(param_00,param_01)
{
var_02 = scripts\mp\killstreaks\_deployablebox::func_2A63(param_00.var_AC68,"deployable_ammo",param_01,param_00.var_394);
if(!isdefined(var_02) || !var_02)
{
return 0;
}
scripts\mp\_matchdata::func_AFC9("deployable_ammo",self.origin);
return 1;
}
//Function Number: 5
func_C5BE(param_00)
{
level.var_5226--;
if(level.var_5226 == 0)
{
var_01 = level.var_2F30[param_00.var_2F33];
if(isdefined(level.var_5222))
{
[[ level.var_5222 ]](1);
}
else
{
func_836B(self,var_01.var_B7A8);
}
scripts\mp\_missions::func_D992("ch_guninabox");
level.var_5226 = randomintrange(var_01.var_B7A5,var_01.var_B7A5 + 1);
return;
}
func_8399(self);
}
//Function Number: 6
func_C4CF(param_00)
{
thread func_E2B7(param_00);
}
//Function Number: 7
func_8399(param_00)
{
var_01 = [];
foreach(var_03 in param_00 getweaponslistprimaries())
{
var_01[var_01.size] = getweaponbasename(var_03);
}
var_05 = undefined;
for(;;)
{
var_05 = scripts\mp\gametypes\sotf::func_80C5(level.var_13C73);
var_06 = var_05["name"];
if(!scripts\common\utility::func_2286(var_01,var_06))
{
break;
}
}
var_05 = scripts\mp\gametypes\sotf::func_80B1(var_05);
func_836B(param_00,var_05);
}
//Function Number: 8
func_836B(param_00,param_01)
{
var_02 = param_00 getweaponslistprimaries();
var_03 = 0;
foreach(var_05 in var_02)
{
if(!scripts\mp\_weapons::func_9D3E(var_05))
{
var_03++;
}
}
if(var_03 > 1)
{
var_07 = param_00.var_A978;
if(isdefined(var_07) && var_07 != "none")
{
param_00 method_80B8(var_07);
}
}
param_00 scripts\mp\_utility::func_12C6(param_01);
param_00 scripts\mp\_utility::_switchtoweapon(param_01);
param_00 method_817C(param_01);
}
//Function Number: 9
func_E2B7(param_00)
{
self endon("death");
level endon("game_eneded");
var_01 = spawn("trigger_radius",self.origin,0,param_00.var_127C8,param_00.var_127C5);
var_01.var_222 = self;
thread scripts\mp\_weapons::func_51BF(var_01);
if(isdefined(self.var_BD3B))
{
var_01 enablelinkto();
var_01 linkto(self.var_BD3B);
}
var_02 = param_00.var_127C8 * param_00.var_127C8;
var_03 = undefined;
for(;;)
{
var_04 = var_01 getistouchingentities(level.players);
foreach(var_03 in var_04)
{
if(isdefined(var_03) && !self.var_222 scripts\mp\_utility::func_9DD6(var_03))
{
if(!isdefined(var_03.var_116D0) || !var_03.var_116D0)
{
var_03 thread func_93EF();
}
if(func_FFB8(var_03))
{
func_17A8(var_03,param_00.var_1E4C);
}
}
}
wait(param_00.var_1E4B);
}
}
//Function Number: 10
func_93EF()
{
self endon("death");
self endon("disconnect");
thread scripts\mp\_utility::func_F5C6(0,6000,2,0);
thread scripts\mp\_utility::func_F5C5(0,1,2,0);
scripts\mp\_powers::func_D740(1.1);
wait(2);
scripts\mp\_powers::func_D74E();
}
//Function Number: 11
func_FFB8(param_00)
{
return !isdefined(param_00.var_5227) || gettime() >= param_00.var_5227;
}
//Function Number: 12
func_17A8(param_00,param_01)
{
param_00.var_5227 = gettime() + param_01 * 1000;
scripts\mp\_weapons::func_EBD2(param_00);
}
//Function Number: 13
func_17A9(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("death");
param_00 endon("disconnect");
level endon("game_ended");
for(;;)
{
func_17A8(param_00);
wait(param_02);
if(distancesquared(param_00.origin,self.origin) > param_01)
{
break;
}
}
}
//Function Number: 14
func_3937(param_00)
{
return !scripts\mp\_utility::func_9E59();
}