IL-GSC/IW/PC/ALL/3627.gsc
2023-10-27 03:49:01 -04:00

521 lines
12 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3627.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 24
* Decompile Time: 8 ms
* Timestamp: 10/27/2023 12:30:57 AM
*******************************************************************/
//Function Number: 1
func_C32F()
{
precacheitem("offhandshield");
precacheitem("offhandshield_up1");
precachestring(&"EQUIPMENT_SHIELD_MELEE_HINT");
level.player scripts\sp\_utility::func_65E0("player_retract_shield_active");
level.player.var_C337 = spawnstruct();
level.player.var_C337.var_260E = 0;
level.player.var_C337.var_19 = 0;
level.player.var_C337.var_9936 = 0;
level.player.var_C337.var_B620 = 0;
level.var_7649["shield_ping"] = loadfx("vfx/iw7/core/equipment/offhandshield/vfx_shield_ping.vfx");
scripts\sp\_utility::func_9187("shield",200,::func_FC8B);
level.player.var_C337.var_CB8F = spawnstruct();
level.player.var_C337.var_CB8F.var_190 = 5;
level.player.var_C337.var_CB8F.var_56E8 = getdvarint("offhandshield_sweepRange");
level.player.var_C337.var_CB8F.time = getdvarint("offhandshield_sweepTime");
level.player.var_C337.var_CB8F.var_2B3 = level.player.var_C337.var_CB8F.var_56E8 / level.player.var_C337.var_CB8F.time;
level.var_6DD1 = 1;
scripts\sp\_utility::func_16EB("shield_recharge",&"WEAPON_HELP_SHIELD_RECHARGE");
scripts\sp\_utility::func_16EB("shield_recharge_remind",&"WEAPON_HELP_SHIELD_RECHARGE");
}
//Function Number: 2
func_C334()
{
self endon("death");
self endon("secondary_equipment_change");
childthread func_C330();
childthread func_DDD3();
childthread func_DDD4();
thread offhand_shield_unequip_think();
for(;;)
{
self waittill("offhandshield_deploy");
if(scripts\common\utility::istrue(self.var_9DD2) || scripts\common\utility::istrue(self.var_939E))
{
wait(0.05);
continue;
}
thread on_deploy();
self waittill("offhandshield_retract");
if(scripts\sp\_utility::func_65DB("player_retract_shield_active"))
{
thread on_retract();
}
}
}
//Function Number: 3
offhand_shield_unequip_think()
{
self endon("death");
self waittill("secondary_equipment_change");
if(scripts\sp\_utility::func_65DB("player_retract_shield_active"))
{
thread on_retract();
}
}
//Function Number: 4
on_deploy()
{
self endon("offhandshield_on_retract");
self notify("offhandshield_on_deploy");
scripts\common\utility::func_1C6E(0);
thread func_DBE4();
scripts\sp\_utility::func_65E1("player_retract_shield_active");
scripts\common\utility::flag_set("secondary_equipment_in_use");
level.player.var_C337.var_19 = 1;
setomnvar("ui_offhandshield_in_use",1);
setomnvar("ui_wrist_pc",6);
if(!level.player.var_C337.var_9936)
{
function_01C5("offhandShield_outlineMode",2);
thread func_CB92();
}
else
{
function_01C5("offhandShield_outlineMode",1);
}
thread func_C32D(1);
scripts\sp\_utility::func_1C49(0);
level.player thread scripts\anim\battlechatter_ai::func_67CF("offhandshield");
wait(0.2);
thread scripts\sp\_utility::func_9199("shield",1);
wait(0.4);
thread func_B594();
}
//Function Number: 5
on_retract()
{
self endon("offhandshield_on_deploy");
self notify("offhandshield_on_retract");
level.player.var_C337.var_19 = 0;
thread func_C32D(0);
scripts\sp\_utility::func_65DD("player_retract_shield_active");
scripts\common\utility::func_6E2A("secondary_equipment_in_use");
scripts\sp\_utility::func_1C49(1);
setomnvar("ui_offhandshield_in_use",0);
setomnvar("ui_wrist_pc",1);
scripts\common\utility::func_1C6E(1);
wait(0.15);
scripts\sp\_utility::func_9199("shield",0);
}
//Function Number: 6
func_DBE4()
{
self endon("offhandshield_on_retract");
for(;;)
{
self waittill("melee");
thread scripts\sp\_detonategrenades::func_DBDB(self geteye() + anglestoforward(self getplayerangles()) * 25,0.098);
}
}
//Function Number: 7
func_DDD3()
{
if(isdefined(level.player.var_C337.var_54C2))
{
return;
}
while(level.player method_84D0() > getdvarfloat("offhandshield_minenergyfordeploy"))
{
wait(0.15);
}
scripts\sp\_utility::func_56BE("shield_recharge",3);
level.player.var_C337.var_54C2 = 1;
}
//Function Number: 8
func_DDD4()
{
for(;;)
{
level.player waittill("secondary_equipment_pressed");
if(level.player method_84D0() < getdvarfloat("offhandshield_minenergyfordeploy"))
{
scripts\sp\_utility::func_56BE("shield_recharge_remind",3);
wait(3);
}
}
}
//Function Number: 9
func_B594()
{
if(!level.player.var_C337.var_19)
{
return;
}
if(isdefined(level.player.var_C337.var_28B5))
{
return;
}
if(level.player.var_C337.var_B620 > 5)
{
return;
}
level.player.var_C337.var_B620++;
level.player.var_C337.var_28B5 = 1;
var_00 = scripts\sp\_hud_util::createfontstring("objective",1.25);
var_00 scripts\sp\_hud_util::setpoint("CENTER",undefined,0,116);
var_00.alpha = 1;
var_00 settext(&"EQUIPMENT_SHIELD_MELEE_HINT");
func_13746(1);
var_01 = 0.25;
var_00 fadeovertime(var_01);
var_00.alpha = 0;
wait(var_01);
var_00 destroy();
level.player.var_C337.var_28B5 = undefined;
}
//Function Number: 10
func_13746(param_00)
{
self endon("offhandshield_retract");
wait(param_00);
}
//Function Number: 11
func_C330()
{
var_00 = level.player method_84CF() * 0.25;
for(;;)
{
var_01 = level.player method_84D0();
if(var_01 <= var_00 && self.var_C337.var_19)
{
thread scripts\common\utility::func_CD7F("retract_shield_energy_alarm");
childthread func_C339(var_00);
while(self method_84D0() < var_00 && self.var_C337.var_19)
{
wait(0.05);
}
self notify("stop soundretract_shield_energy_alarm");
}
wait(0.05);
}
}
//Function Number: 12
func_C339(param_00)
{
if(isdefined(self.var_C337.var_FC8E))
{
return;
}
self.var_C337.var_FC8E = 1;
while(self method_84D0() < param_00)
{
wait(0.05);
}
scripts\sp\_utility::func_CE2F("retract_shield_ready");
self.var_C337.var_FC8E = undefined;
}
//Function Number: 13
func_C32D(param_00)
{
if(param_00 && !level.player.var_C337.var_260E)
{
level.player.var_C337.var_260E = 1;
level.player thread scripts\common\utility::func_CD7F("retract_shield_energy_hum");
return;
}
if(!param_00 && level.player.var_C337.var_260E)
{
level.player.var_C337.var_260E = 0;
level.player notify("stop soundretract_shield_energy_hum");
}
}
//Function Number: 14
func_CB92(param_00)
{
self endon("offhandshield_retract");
var_01 = 1;
var_02 = [];
wait(0.15);
for(;;)
{
level.player.var_C337.var_CB8F.var_190 = 5;
var_02 = scripts\common\utility::func_22AC(var_02,var_02);
var_03 = function_0072();
if(isdefined(level.player.var_C337.var_6A48))
{
var_03 = scripts\common\utility::array_combine(var_03,level.var_C337.var_6A48);
}
foreach(var_05 in var_03)
{
var_06 = distance(var_05.origin,self.origin);
if(var_06 > level.player.var_C337.var_CB8F.var_56E8)
{
var_03 = scripts\common\utility::func_22A9(var_03,var_05);
continue;
}
if(var_05.ignoreme)
{
var_03 = scripts\common\utility::func_22A9(var_03,var_05);
continue;
}
var_05.var_D028 = var_06;
}
if(!var_03.size)
{
wait(level.player.var_C337.var_CB8F.var_190);
continue;
}
var_08 = scripts\sp\_utility::func_78BB(self.origin,var_03,level.player.var_C337.var_CB8F.var_56E8);
var_09 = scripts\sp\_utility::func_79B3(self.origin,var_03);
var_0A = distance2d(level.player.origin,var_08.origin) / level.player.var_C337.var_CB8F.var_2B3;
if(!isdefined(var_08))
{
wait(level.player.var_C337.var_CB8F.var_190);
continue;
}
if(var_08.var_D028 <= level.player.var_C337.var_CB8F.var_56E8)
{
if(var_08.var_D028 <= level.player.var_C337.var_CB8F.time * 0.5)
{
level.player.var_C337.var_CB8F.var_190 = level.player.var_C337.var_CB8F.var_190 * 0.5;
}
else if(var_08.var_D028 <= level.player.var_C337.var_CB8F.time * 0.75)
{
level.player.var_C337.var_CB8F.var_190 = level.player.var_C337.var_CB8F.var_190 * 0.75;
}
}
if(level.player.var_C337.var_CB8F.var_190 < var_01)
{
level.player.var_C337.var_CB8F.var_190 = var_01;
}
if(var_03.size && level.var_6DD1)
{
level.var_6DD1 = 0;
level notify("first_pinged_ents");
}
func_5A5F();
scripts\common\utility::array_thread([var_08,var_09],::func_CB94,level.player.var_C337.var_CB8F.var_2B3);
var_0B = 1;
var_0C = level.player.var_C337.var_CB8F.var_190 - var_0B;
if(var_0C > var_0B)
{
wait(var_0C);
continue;
}
wait(var_0B);
}
}
//Function Number: 15
func_5A5F()
{
thread scripts\sp\_utility::func_CE2F("retract_shield_tracker_pulse");
self method_854F();
}
//Function Number: 16
func_CB94(param_00)
{
self endon("death");
var_01 = distance2d(level.player.origin,self.origin) / param_00;
var_01 = var_01 / 1000;
wait(var_01);
thread func_CB95(var_01);
}
//Function Number: 17
func_CB95(param_00)
{
if(!isalive(self))
{
return;
}
var_01 = lib_0B4D::func_C097(0.1,1,param_00);
var_02 = lib_0B4D::func_6A8E(1.1,0.8,var_01);
if(issentient(self))
{
var_03 = self geteye();
}
else
{
var_03 = self.origin;
}
var_04 = spawn("script_origin",var_03);
var_04 playsound("retract_shield_tracker_3d_target","sounddone");
var_04 method_8277(var_02);
var_04 waittill("sounddone");
var_04 delete();
}
//Function Number: 18
func_C76C(param_00,param_01)
{
self endon("death");
if(isdefined(param_01))
{
wait(param_01);
}
var_02 = function_0072();
var_03 = function_00C8();
if(param_00)
{
scripts\common\utility::array_thread(var_02,::func_C76A);
if(var_03.size)
{
scripts\sp\_utility::func_22C7(var_03,::func_C76A);
return;
}
return;
}
scripts\common\utility::array_thread(var_02,::func_C769);
if(var_03.size)
{
scripts\common\utility::array_thread(var_03,::scripts\sp\_utility::func_E08B,::func_C76A);
}
}
//Function Number: 19
func_C76A()
{
if(isdefined(self.var_FC9D))
{
return;
}
self.var_FC9D = 1;
if(isdefined(self.team) && self.team == "allies")
{
scripts\sp\_utility::func_9196(3,0,1,"shield");
return;
}
scripts\sp\_utility::func_9196(1,0,1,"shield");
}
//Function Number: 20
func_C769()
{
self.var_FC9D = undefined;
scripts\sp\_utility::func_9193("shield");
self notify("shield_hudoutline_off");
}
//Function Number: 21
func_C77F()
{
function_01C5("r_hudoutlineWidth","1");
function_01C5("r_hudoutlineFillColor0","0.8 0.8 0.8 1");
function_01C5("r_hudoutlineOccludedOutlineColor","0.8 0.8 0.8 1");
function_01C5("r_hudoutlineOccludedInteriorColor","0.5 0.5 0.5 1");
function_01C5("r_hudoutlineOccludedInlineColor","0.5 0.5 0.5 1");
function_01C5("r_hudoutlineFillColor1","0.8 0.8 0.8 .2");
function_01C5("r_hudOutlineOccludedColorFromFill","1");
}
//Function Number: 22
func_FC8B()
{
var_00 = [];
var_00["r_hudoutlineWidth"] = 1;
var_00["r_hudoutlineFillColor1"] = "0 0 0 1";
var_00["r_hudoutlineFillColor0"] = "0.8 0.8 0.8 1";
var_00["r_hudoutlineOccludedOutlineColor"] = "0.8 0.8 0.8 1";
var_00["r_hudoutlineOccludedInteriorColor"] = "0.5 0.5 0.5 .2";
var_00["r_hudoutlineOccludedInlineColor"] = "0.5 0.5 0.5 .5";
var_00["r_hudoutlineFillColor1"] = "0.8 0.8 0.8 .2";
var_00["r_hudOutlineOccludedColorFromFill"] = 1;
return var_00;
}
//Function Number: 23
func_C780(param_00)
{
func_AB81(1);
if(isdefined(param_00))
{
wait(param_00);
}
func_AB81(0);
}
//Function Number: 24
func_AB81(param_00)
{
var_01 = scripts\common\utility::func_116D7(param_00,0.1,1);
var_02 = 0.05;
var_03 = "0.8 0.8 0.8 ";
var_04 = "0.5 0.5 0.5 ";
for(var_05 = 1;var_05 < 11;var_05++)
{
function_01C5("r_hudoutlineFillColor0",var_03 + var_01 + "");
function_01C5("r_hudoutlineOccludedOutlineColor",var_03 + var_01 + "");
function_01C5("r_hudoutlineOccludedInteriorColor",var_04 + var_01 + "");
if(param_00 && var_05 < 2)
{
function_01C5("r_hudoutlineFillColor1",var_03 + var_01 + "");
}
else if(!param_00 && var_05 > 2)
{
function_01C5("r_hudoutlineFillColor1",var_03 + var_01 + "");
}
function_01C5("r_hudoutlineOccludedInlineColor",var_04 + var_01 + "");
if(param_00)
{
var_01 = scripts\common\utility::func_116D7(var_05 == 9,1,var_01 + 0.1);
}
else
{
var_01 = scripts\common\utility::func_116D7(var_05 == 9,0,var_01 - 0.1);
}
wait(var_02);
}
wait(var_02);
}