IL-GSC/AW/PC/MP/maps/mp/_exo_ping.gsc
2023-10-27 03:49:01 -04:00

227 lines
5.3 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_ping.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 176 ms
* Timestamp: 10/27/2023 1:48:47 AM
*******************************************************************/
//Function Number: 1
exo_ping_think()
{
self notify("exo_ping_taken");
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
if(!self hasweapon("exoping_equipment_mp"))
{
return;
}
exo_ping_init();
thread toggle_exo_ping();
thread wait_for_player_death();
thread wait_for_game_end();
}
//Function Number: 2
exo_ping_init()
{
self.exo_ping_on = 0;
self batterysetdischargescale("exoping_equipment_mp",1);
var_00 = self batterygetsize("exoping_equipment_mp");
if(self gettacticalweapon() == "exoping_equipment_mp")
{
self setclientomnvar("ui_exo_battery_level0",var_00);
self setclientomnvar("exo_ability_nrg_req0",batteryreqtouse("exoping_equipment_mp"));
self setclientomnvar("exo_ability_nrg_total0",var_00);
}
else if(self getlethalweapon() == "exoping_equipment_mp")
{
self setclientomnvar("ui_exo_battery_level1",var_00);
self setclientomnvar("exo_ability_nrg_req1",batteryreqtouse("exoping_equipment_mp"));
self setclientomnvar("exo_ability_nrg_total1",var_00);
}
if(!isdefined(level.exo_ping_vfx_inactive))
{
level.exo_ping_vfx_inactive = loadfx("vfx/unique/exo_ping_inactive");
}
if(!isdefined(level.exo_ping_vfx_active))
{
level.exo_ping_vfx_active = loadfx("vfx/unique/exo_ping_active");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
playfxontag(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
}
}
//Function Number: 3
toggle_exo_ping()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 != "exoping_equipment_mp")
{
continue;
}
if(self.exo_ping_on == 1)
{
thread stop_exo_ping();
continue;
}
if(self hasweapon("exoping_equipment_mp"))
{
if(self batterygetcharge("exoping_equipment_mp") > 0)
{
start_exo_ping();
}
}
}
}
//Function Number: 4
monitor_exoping_battery_charge()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
self endon("stop_exo_ping");
while(self.exo_ping_on == 1)
{
if(self batterygetcharge("exoping_equipment_mp") <= 0)
{
thread stop_exo_ping();
}
wait(0.05);
}
}
//Function Number: 5
take_exo_ping()
{
self notify("kill_battery");
self notify("exo_ping_taken");
self takeweapon("exoping_equipment_mp");
}
//Function Number: 6
give_exo_ping()
{
self giveweapon("exoping_equipment_mp");
thread exo_ping_think();
}
//Function Number: 7
killpingfx()
{
if(isdefined(self.ping_fx))
{
self.ping_fx delete();
self.ping_fx = undefined;
}
}
//Function Number: 8
start_exo_ping()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
self endon("stop_exo_ping");
self.exo_ping_on = 1;
self.highlight_effect = maps\mp\_threatdetection::detection_highlight_hud_effect_on(self,-1);
self setperk("specialty_exo_ping",1,0);
self batterydischargeonce("exoping_equipment_mp",batteryusepershot("exoping_equipment_mp"));
self batterydischargebegin("exoping_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exoping_equipment_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("exoping_equipment_mp");
thread monitor_exoping_battery_charge();
maps\mp\_snd_common_mp::snd_message("mp_exo_ping_activate");
killpingfx();
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.ping_fx = spawnlinkedfx(level.exo_ping_vfx_active,self,"J_SpineUpper");
triggerfx(self.ping_fx);
}
}
//Function Number: 9
stop_exo_ping(param_00)
{
if(!isdefined(self.exo_ping_on) || !self.exo_ping_on)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
self notify("stop_exo_ping");
self.exo_ping_on = 0;
if(isdefined(self.highlight_effect))
{
maps\mp\_threatdetection::detection_highlight_hud_effect_off(self.highlight_effect);
}
self unsetperk("specialty_exo_ping",1);
self batterydischargeend("exoping_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exoping_equipment_mp","ui_exo_battery_toggle",0);
killpingfx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_ping_deactivate");
wait(0.05);
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.ping_fx = spawnlinkedfx(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
triggerfx(self.ping_fx);
}
}
}
//Function Number: 10
wait_for_player_death()
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_ping_taken");
thread stop_exo_ping(0);
}
//Function Number: 11
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
level waittill("game_ended");
thread stop_exo_ping(0);
}