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

249 lines
5.9 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1339.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 10
* Decompile Time: 4 ms
* Timestamp: 10/27/2023 3:25:26 AM
*******************************************************************/
//Function Number: 1
func_00D5()
{
self.var_983B = 0;
level.var_611["taunt_burst_aoe"] = loadfx("vfx/zombie/abilities_perks/zmb_storm_taunt_aoe");
level.var_611["taunt_lure"] = loadfx("vfx/zombie/abilities_perks/zmb_storm_zmb_lure");
level.var_611["zmb_moon_zmb_instakill"] = loadfx("vfx/zombie/abilities_perks/zmb_moon_zmb_instakill");
level.var_611["zmb_death_hand_to_hand_melee_hit"] = loadfx("vfx/zombie/abilities_perks/zmb_death_hand_to_hand_melee_hit");
}
//Function Number: 2
func_3662()
{
maps\mp\zombies\_zombies_roles::func_6AB2("role_ability_taunt_zm");
self.var_983B = 1;
var_00 = self.var_116;
var_01 = 0;
playfx(common_scripts\utility::func_44F5("taunt_burst_aoe"),var_00 + (0,0,var_01));
lib_0378::func_8D74("aud_taunt_use");
var_02 = lib_0547::func_408F();
foreach(var_04 in var_02)
{
thread func_983E(var_04);
}
if(lib_0547::func_4BA7("specialty_class_improvised_def_zm"))
{
var_06 = lib_0547::func_73E9() + 2;
lib_0547::func_7454(int(min(var_06,3)));
}
if(lib_0547::func_4BA7("specialty_class_resilient_zm"))
{
self.var_98E1 = 1;
}
if(lib_0547::func_4BA7("specialty_class_team_effort_zm"))
{
foreach(var_08 in level.var_744A)
{
if(var_08 == self)
{
continue;
}
var_08 luinotifyeventextraplayer(&"add_teammate_mod_buffs",3,"specialty_class_team_effort_zm",0,self);
}
}
thread func_A95A();
}
//Function Number: 3
func_2F9E()
{
if(common_scripts\utility::func_562E(self.var_983B))
{
self notify("taunt_expired");
self.var_983B = 0;
if(lib_0547::func_4BA7("specialty_class_resilient_zm"))
{
self.var_98E1 = undefined;
}
if(lib_0547::func_4BA7("specialty_class_team_effort_zm"))
{
foreach(var_01 in level.var_744A)
{
if(var_01 == self)
{
continue;
}
var_01 luinotifyeventextraplayer(&"remove_teammate_mod_buffs",1,"specialty_class_team_effort_zm");
}
}
}
}
//Function Number: 4
func_983E(param_00)
{
if(common_scripts\utility::func_562E(param_00.var_57FD))
{
return;
}
param_00 endon("death");
self endon("disconnect");
thread handlezombietauntfx(param_00,"taunt_lure","J_Spine4",1.5);
param_00 maps/mp/agents/humanoid/_humanoid_util::func_867E(self);
param_00 notify("watchFavoriteEnemyDeath");
if(!isdefined(param_00.var_983C))
{
param_00.var_983C = [];
}
param_00.var_983C = common_scripts\utility::func_F6F(param_00.var_983C,self);
common_scripts\utility::knock_off_battery("taunt_expired","disconnect");
param_00 maps/mp/agents/humanoid/_humanoid_util::func_867E(undefined);
param_00.var_983C = common_scripts\utility::func_F93(param_00.var_983C,self);
}
//Function Number: 5
handlezombietauntfx(param_00,param_01,param_02,param_03)
{
param_00 notify("taunt_fx_thread");
self endon("disconnect");
self endon("taunt_expired");
param_00 endon("death");
param_00 endon("taunt_fx_thread");
for(;;)
{
var_04 = gettime() / 1000;
if(isdefined(self.recenttauntfxtime) && var_04 - param_00.recenttauntfxtime < param_03)
{
wait(param_03 - var_04 - param_00.recenttauntfxtime);
}
playfxontag(common_scripts\utility::func_44F5(param_01),param_00,param_02);
param_00.recenttauntfxtime = var_04;
wait(param_03);
}
}
//Function Number: 6
func_A95A()
{
self endon("taunt_expired");
for(;;)
{
level waittill("zombie_spawned",var_00);
thread func_983E(var_00);
}
}
//Function Number: 7
func_62A6(param_00,param_01,param_02)
{
var_03 = 1;
if(!common_scripts\utility::func_562E(self.var_57FD) && isdefined(self.var_983C))
{
foreach(var_05 in self.var_983C)
{
var_06 = 2;
if(var_05 lib_0547::func_4BA7("specialty_class_counter_offensive_zm"))
{
var_06 = 3;
}
if(var_05 lib_0547::func_4BA7("specialty_class_team_effort_zm"))
{
var_03 = max(var_06,var_03);
}
if(var_05 == param_01)
{
var_03 = max(var_06,var_03);
}
}
if(maps\mp\_utility::func_5755(param_02) && common_scripts\utility::func_562E(param_01.var_983B) && param_01 lib_0547::func_4BA7("specialty_class_come_get_zm"))
{
var_03 = var_03 * 4;
thread play_crit_melee_effects();
param_01 luinotifyeventextraplayer(&"trigger_mod_proc",1,"specialty_class_come_get_zm");
}
}
if(isdefined(var_03))
{
param_00 = param_00 * var_03;
}
return param_00;
}
//Function Number: 8
play_crit_melee_effects()
{
self waittill("body_spawned",var_00);
if(!isdefined(var_00))
{
return;
}
var_01 = spawnlinkedfx(level.var_611["zmb_death_hand_to_hand_melee_hit"],var_00,"J_Head");
triggerfx(var_01);
wait(1);
var_01 delete();
}
//Function Number: 9
func_6B73(param_00)
{
if(isdefined(param_00) && isai(param_00) && common_scripts\utility::func_562E(self.var_983B) && lib_0547::func_4BA7("specialty_class_hit_em_hard_zm"))
{
playfx(level.var_611["zmb_moon_zmb_instakill"],param_00.var_116 + (0,0,40));
var_01 = param_00.var_BC + 1;
var_02 = 0;
if(isdefined(param_00.var_A4B))
{
switch(param_00.var_A4B)
{
case "zombie_heavy":
case "zombie_boss_village":
case "zombie_fireman":
var_02 = 1;
break;
}
}
if(common_scripts\utility::func_562E(param_00.var_55AB))
{
var_02 = 1;
}
if(var_02)
{
var_01 = maps/mp/gametypes/zombies::func_1E59(lib_0547::func_A51("zombie_generic"),level.var_A980);
}
param_00 thread func_AB11(0.1,var_01,param_00.var_116,self,undefined,undefined,"hitem_hard_zm");
self luinotifyeventextraplayer(&"trigger_mod_proc",1,"specialty_class_hit_em_hard_zm");
}
}
//Function Number: 10
func_AB11(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
self endon("death");
if(!isdefined(param_00) || param_00 < 0.05)
{
param_00 = 1;
}
wait(param_00);
self dodamage(param_01,param_02,param_03,param_04,param_05,param_06);
}