IL-GSC/IW/PC/ALL/scripts/asm/zombie_sasquatch/sasquatch_asm.gsc
2023-10-27 03:49:01 -04:00

302 lines
6.0 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\asm\zombie_sasquatch\sasquatch_asm.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 1165 ms
* Timestamp: 10/27/2023 12:03:05 AM
*******************************************************************/
//Function Number: 1
sasquatch_init(param_00,param_01,param_02,param_03)
{
self.var_2303.var_7257 = spawnstruct();
self.var_2303.var_7257.var_7254 = "left";
self.var_2303.var_4C86 = spawnstruct();
self.sharpturnnotifydist = 24;
self.var_1198.btreespawn = 0;
self.var_1198.var_BD23 = "run";
}
//Function Number: 2
sasquatch_playidleanim(param_00,param_01,param_02,param_03)
{
var_04 = isdefined(self.var_10C);
if(var_04)
{
self method_8289("face enemy");
}
else
{
self method_8289("face angle abs",self.angles);
}
lib_0A1D::func_235F(param_00,param_01,param_02,1,0);
}
//Function Number: 3
sas_play_meleeattack(param_00,param_01,param_02,param_03)
{
if(isdefined(self.var_3135.var_B64D))
{
thread sasquatch_faceenemyhelper(self.var_3135.var_B64D,500,param_01);
}
lib_0A1D::func_2364(param_00,param_01,param_02,param_03);
}
//Function Number: 4
sasquatch_melee_cleanup(param_00,param_01,param_02)
{
lib_0A1A::func_232F("meleeattack","end");
}
//Function Number: 5
sasquatch_faceenemyhelper(param_00,param_01,param_02)
{
if(isdefined(param_02))
{
self endon(param_02 + "_finished");
}
if(isdefined(param_01))
{
var_03 = gettime() + param_01;
}
else
{
var_03 = -1;
}
while((var_03 < 0 || gettime() <= var_03) && isdefined(param_00) && isalive(param_00))
{
var_04 = param_00.origin - self.origin;
if(length2dsquared(var_04) > 1024)
{
var_05 = vectortoyaw(var_04);
self method_8289("face angle abs",(0,var_05,0));
}
wait(0.05);
}
}
//Function Number: 6
sasquatch_melee_notehandler(param_00,param_01,param_02,param_03)
{
switch(param_00)
{
case "hit":
sasquatch_domeleedamage();
break;
}
}
//Function Number: 7
sasquatch_domeleedamage()
{
var_00 = 90;
var_01 = 9216;
var_02 = 72;
var_03 = 0.707;
var_04 = 2304;
var_05 = 0.174;
var_06 = anglestoforward(self.angles);
var_07 = 0;
foreach(var_09 in level.players)
{
if(!isalive(var_09))
{
continue;
}
var_0A = var_09.origin - self.origin;
var_0B = lengthsquared(var_0A);
if(var_0B > var_01)
{
continue;
}
if(abs(var_0A[2]) > var_02)
{
continue;
}
var_0C = (var_0A[0],var_0A[1],0);
var_0A = vectornormalize(var_0C);
var_0D = vectordot(var_0A,var_06);
if(var_0B < var_04)
{
if(var_0D < var_05)
{
continue;
}
}
else if(var_0D < var_03)
{
continue;
}
var_07 = 1;
self notify("attack_hit",var_09);
lib_0C73::func_5904(var_09,var_00,"MOD_IMPACT");
}
if(!var_07)
{
self notify("attack_miss");
}
}
//Function Number: 8
sas_play_throw(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
var_04 = lib_0A1B::func_2930();
thread sasquatch_faceenemyhelper(var_04,1500,param_01);
lib_0A1D::func_2364(param_00,param_01,param_02,param_03);
}
//Function Number: 9
sas_play_throw_notehandler(param_00,param_01,param_02,param_03)
{
if(param_00 == "pickup")
{
return;
}
if(param_00 == "throw")
{
if(isdefined(self.rockmodel))
{
self.rockmodel unlink();
self.rockmodel delete();
self.rockmodel = undefined;
}
sasquatch_throwrock(lib_0A1B::func_2930());
}
}
//Function Number: 10
sasquatch_throwrock(param_00)
{
var_01 = self gettagorigin("j_wrist_ri");
var_02 = undefined;
if(isdefined(param_00))
{
var_03 = anglestoforward(self.angles);
var_04 = param_00.origin - self.origin;
if(vectordot(var_03,vectornormalize(var_04)) > 0.707)
{
if(isalive(param_00))
{
var_02 = param_00 geteye();
}
else
{
var_02 = param_00.origin;
}
}
}
if(!isdefined(var_02))
{
var_05 = 256;
var_06 = (cos(20),0,-1 * sin(20));
var_02 = var_01 + rotatevector(var_06,self.angles) * var_05;
}
var_02 = var_02 + (0,0,-20);
magicbullet("iw7_sasq_rock_mp",var_01,var_02,self);
}
//Function Number: 11
sas_play_throw_terminate(param_00,param_01,param_02)
{
if(isdefined(self.rockmodel))
{
self.rockmodel delete();
}
lib_0A1A::func_232F("throwevent","end");
}
//Function Number: 12
sas_play_rush(param_00,param_01,param_02,param_03)
{
self notify("attack_charge");
lib_0A1D::func_235F(param_00,param_01,param_02,1,1);
}
//Function Number: 13
sas_play_rush_orienthelper(param_00,param_01)
{
self endon(param_00 + "_finished");
self method_8289("face motion");
}
//Function Number: 14
sas_play_rushattack_notehandler(param_00,param_01,param_02,param_03)
{
if(param_00 == "hit")
{
sasquatch_domeleedamage();
return;
}
if(param_00 == "footstep_left_small")
{
lib_0A1A::func_232F("rushattack","end");
}
}
//Function Number: 15
sas_play_rushattack_cleanup(param_00,param_01,param_02)
{
lib_0A1A::func_232F("rushattack","end");
}
//Function Number: 16
sas_play_traverseexternal(param_00,param_01,param_02,param_03)
{
self endon("death");
self endon("terminate_ai_threads");
var_04 = lib_0A1D::func_2337(param_00,param_01);
scripts\mp\agents\_scriptedagents::func_CED4(param_01,var_04,1);
var_05 = self method_8146();
self setorigin(var_05);
self notify("killanimscript");
lib_0A1A::func_2330(param_01,"end");
}
//Function Number: 17
sasq_tauntrequested(param_00,param_01,param_02,param_03)
{
return isdefined(self.var_1198.btauntrequested) && self.var_1198.btauntrequested;
}
//Function Number: 18
sasq_rushrequested(param_00,param_01,param_02,param_03)
{
return isdefined(self.var_1198.brushrequested);
}
//Function Number: 19
sasq_rushnotrequested(param_00,param_01,param_02,param_03)
{
return !sasq_rushrequested(param_00,param_01,param_02,param_03);
}
//Function Number: 20
sasq_rushcomplete(param_00,param_01,param_02,param_03)
{
return isdefined(self.var_1198.brushcomplete) && self.var_1198.brushcomplete;
}
//Function Number: 21
sasq_throwrockrequested(param_00,param_01,param_02,param_03)
{
return lib_0A1B::func_298A();
}