Files
IL-GSC/IW/PC/ALL/scripts/cp/zombies/interaction_waterfall.gsc
2023-10-27 03:49:01 -04:00

135 lines
3.3 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\zombies\interaction_waterfall.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 285 ms
* Timestamp: 10/27/2023 12:09:04 AM
*******************************************************************/
//Function Number: 1
init_waterfall_trap()
{
var_00 = scripts\common\utility::getstruct("trap_waterfall","script_noteworthy");
var_01 = getentarray(var_00.target,"targetname");
foreach(var_03 in var_01)
{
if(var_03.classname == "script_model")
{
var_00.valve = var_03;
}
if(var_03.classname == "physicsvolume")
{
var_00.physvolume = var_03;
}
if(var_03.classname == "trigger_multiple")
{
var_00.trigger = var_03;
}
}
}
//Function Number: 2
use_waterfall_trap(param_00,param_01)
{
scripts\cp\_interaction::func_554F(param_00);
param_00.var_126A4 = 0;
param_00.valve rotateroll(-180,1);
param_00.valve playsound("trap_waterfall_valve");
thread waterfall_trap_sfx();
var_02 = gettime() + 2000;
playrumbleonposition("light_3s",param_00.valve.origin + (0,0,50));
while(gettime() < var_02)
{
earthquake(0.2,2,param_00.origin + (0,0,100),500);
wait(1);
}
scripts\common\utility::exploder(20);
param_00.physvolume method_852B(1,anglestoforward(param_00.angles + (0,0,5)),2500);
param_00.physvolume method_8529(1);
param_00.physvolume method_8526(1);
level thread func_A631(param_00,param_01);
var_02 = gettime() + 25000;
while(gettime() < var_02)
{
playrumbleonposition("heavy_3s",param_00.valve.origin + (0,0,50));
earthquake(0.2,3,param_00.origin + (0,0,100),500);
wait(1);
}
level notify("stop_waterfall_trap");
level notify("waterfall_trap_kills",param_00.var_126A4);
param_00.physvolume method_8526(0);
param_00.physvolume method_8529(0);
scripts\cp\_interaction::func_6214(param_00);
param_00.var_4622 = 1;
wait(30);
param_00.var_4622 = undefined;
}
//Function Number: 3
waterfall_trap_sfx()
{
wait(0.65);
playsoundatpos((-1714,-2031,248),"trap_waterfall_start");
var_00 = scripts\common\utility::play_loopsound_in_space("trap_waterfall_rushing_lp",(-1717,-2013,189));
wait(4);
var_01 = scripts\common\utility::play_loopsound_in_space("trap_waterfall_splashing_lp",(-1702,-1824,101));
level waittill("stop_waterfall_trap");
playsoundatpos((-1714,-2031,248),"trap_waterfall_end");
wait(0.2);
var_00 stoploopsound();
var_00 delete();
var_01 stoploopsound();
var_01 delete();
}
//Function Number: 4
func_A631(param_00,param_01)
{
level endon("stop_waterfall_trap");
for(;;)
{
param_00.trigger waittill("trigger",var_02);
if(isplayer(var_02))
{
var_03 = var_02 getvelocity();
var_02 setvelocity(var_03 + (0,35,0));
continue;
}
if(!scripts\cp\_utility::func_FF18(var_02,undefined,1))
{
continue;
}
param_00.var_126A4++;
var_02 thread func_6F32(param_00,param_01);
}
}
//Function Number: 5
func_6F32(param_00,param_01)
{
self endon("death");
self.flung = 1;
self.var_B36E = 1;
self.do_immediate_ragdoll = 1;
self.var_4C87 = 1;
self.disable_armor = 1;
wait(randomfloatrange(0.5,1.5));
if(param_01 scripts\cp\_utility::is_valid_player())
{
var_02 = param_01;
}
else
{
var_02 = undefined;
}
self dodamage(self.health + 100,param_00.trigger.origin,var_02,var_02,"MOD_UNKNOWN","iw7_discotrap_zm");
}