Files
IL-GSC/GHOSTS/PC/MP/maps/mp/killstreaks/_deployablebox_ammo.gsc
2023-10-27 03:49:01 -04:00

180 lines
4.0 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\killstreaks\_deployablebox_ammo.gsc
* Game: Call of Duty: Ghosts
* Platform: PC
* Function Count: 9
* Decompile Time: 166 ms
* Timestamp: 10/27/2023 1:20:34 AM
*******************************************************************/
//Function Number: 1
func_44DF()
{
var_00 = spawnstruct();
var_00.weaponinfo = "deployable_vest_marker_mp";
var_00.modelbase = "mil_ammo_case_1_open";
var_00.hintstring = &"KILLSTREAKS_HINTS_DEPLOYABLE_AMMO_USE";
var_00.capturingstring = &"KILLSTREAKS_DEPLOYABLE_AMMO_TAKING";
var_00.event = "deployable_ammo_taken";
var_00.streakname = "deployable_ammo";
var_00.splashname = "used_deployable_ammo";
var_00.shadername = "compass_objpoint_deploy_ammo_friendly";
var_00.headiconoffset = 25;
var_00.lifespan = 90;
var_00.usexp = 50;
var_00.xppopup = "destroyed_vest";
var_00.vodestroyed = "ballistic_vest_destroyed";
var_00.deployedsfx = "mp_vest_deployed_ui";
var_00.onusesfx = "ammo_crate_use";
var_00.onusecallback = ::func_5987;
var_00.canusecallback = ::canusedeployable;
var_00.usetime = 500;
var_00.maxhealth = 150;
var_00.damagefeedback = "deployable_bag";
var_00.deathweaponinfo = "deployable_ammo_mp";
var_00.deathvfx = loadfx("fx/explosions/clusterbomb_exp_direct_runner");
var_00.deathdamageradius = 256;
var_00.deathdamagemax = 130;
var_00.deathdamagemin = 50;
var_00.allowmeleedamage = 1;
var_00.allowgrenadedamage = 1;
var_00.maxuses = 4;
level.boxsettings["deployable_ammo"] = var_00;
level.killstreakfuncs["deployable_ammo"] = ::tryusedeployableammo;
level.deployable_box["deployable_ammo"] = [];
}
//Function Number: 2
tryusedeployableammo(param_00,param_01)
{
var_02 = maps\mp\killstreaks\_deployablebox::func_13F5(param_00,"deployable_ammo");
if(!isdefined(var_02) || !var_02)
{
return 0;
}
if(!maps\mp\_utility::func_47BB())
{
maps\mp\_matchdata::func_4F1D("deployable_ammo",self.origin);
}
return 1;
}
//Function Number: 3
func_5987(param_00)
{
if(maps\mp\_utility::func_47BB())
{
addalienweaponammo(param_00);
}
addallweaponammo();
}
//Function Number: 4
addallweaponammo()
{
var_00 = self getweaponslistall();
if(isdefined(var_00))
{
foreach(var_02 in var_00)
{
if(maps\mp\gametypes\_weapons::isbulletweapon(var_02))
{
func_0951(var_02,2);
continue;
}
if(weaponclass(var_02) == "rocketlauncher")
{
func_0951(var_02,1);
}
}
}
}
//Function Number: 5
func_0951(param_00,param_01)
{
var_02 = weaponclipsize(param_00);
var_03 = self getweaponammostock(param_00);
self setweaponammostock(param_00,var_03 + param_01 * var_02);
}
//Function Number: 6
addratiomaxstocktoallweapons(param_00)
{
var_01 = self getweaponslistprimaries();
foreach(var_03 in var_01)
{
if(maps\mp\gametypes\_weapons::isbulletweapon(var_03))
{
if(var_03 != "iw6_alienminigun_mp")
{
var_04 = self getweaponammostock(var_03);
var_05 = weaponmaxammo(var_03);
var_06 = var_04 + var_05 * param_00;
self setweaponammostock(var_03,int(min(var_06,var_05)));
}
}
}
}
//Function Number: 7
addfullcliptoallweapons()
{
var_00 = self getweaponslistprimaries();
foreach(var_02 in var_00)
{
var_03 = weaponclipsize(var_02);
self setweaponammoclip(var_02,var_03);
}
}
//Function Number: 8
addalienweaponammo(param_00)
{
var_01 = self getweaponslistprimaries();
switch(param_00.upgrade_rank)
{
case 0:
addratiomaxstocktoallweapons(0.4);
break;
case 1:
addratiomaxstocktoallweapons(0.7);
break;
case 2:
addratiomaxstocktoallweapons(1);
break;
case 3:
addratiomaxstocktoallweapons(1);
addfullcliptoallweapons();
break;
case 4:
addratiomaxstocktoallweapons(1);
addfullcliptoallweapons();
break;
}
}
//Function Number: 9
canusedeployable(param_00)
{
if(maps\mp\_utility::func_47BB() && isdefined(param_00) && param_00.owner == self && !isdefined(param_00.air_dropped))
{
return 0;
}
if(!maps\mp\_utility::func_47BB())
{
return !maps\mp\_utility::isjuggernaut();
}
return 1;
}