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

297 lines
6.0 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\asm\elvira\elvira_asm.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 1124 ms
* Timestamp: 10/27/2023 12:01:45 AM
*******************************************************************/
//Function Number: 1
elvirainit(param_00,param_01,param_02,param_03)
{
self.var_FFEF = 1;
lib_0C75::func_13F9A(param_00,param_01,param_02,param_03);
}
//Function Number: 2
isvalidaction(param_00)
{
switch(param_00)
{
case "cast_return_spell":
case "cast_reveal_spell":
case "cast_revive_spell":
case "cast_spell":
case "revive_player":
case "reload":
case "melee":
return 1;
}
return 0;
}
//Function Number: 3
setaction(param_00)
{
self.requested_action = param_00;
}
//Function Number: 4
clearaction()
{
self.requested_action = undefined;
}
//Function Number: 5
isanimdone(param_00,param_01,param_02,param_03)
{
if(lib_0A1A::func_232B(param_01,"end"))
{
return 1;
}
if(lib_0A1A::func_232B(param_01,"early_end"))
{
return 1;
}
if(lib_0A1A::func_232B(param_01,"finish_early"))
{
return 1;
}
if(lib_0A1A::func_232B(param_01,"code_move"))
{
return 1;
}
return 0;
}
//Function Number: 6
isrevivedone(param_00,param_01,param_02,param_03)
{
if(!isdefined(self.reviveplayer))
{
return 1;
}
if(!scripts\common\utility::istrue(self.reviveplayer.inlaststand))
{
return 1;
}
return 0;
}
//Function Number: 7
dorevive(param_00,param_01)
{
self endon(param_00 + "_finished");
param_01 endon("disconnect");
var_02 = scripts\mp\agents\elvira\elvira_tunedata::gettunedata();
wait(var_02.revive_wait_time);
if(!isdefined(param_01.reviveent))
{
return;
}
param_01.reviveent notify("pg_trigger",self);
}
//Function Number: 8
playreviveanim(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
if(isdefined(self.reviveplayer))
{
thread lib_0C73::func_6A6A(param_01,self.reviveplayer);
thread dorevive(param_01,self.reviveplayer);
}
lib_0A1D::func_2364(param_00,param_01,param_02,param_03);
}
//Function Number: 9
shouldabortaction(param_00,param_01,param_02,param_03)
{
if(scripts\common\utility::istrue(self.btraversalteleport))
{
return 0;
}
if(!isdefined(self.requested_action))
{
return 1;
}
if(isdefined(param_03))
{
if(self.requested_action != param_03)
{
return 1;
}
}
return 0;
}
//Function Number: 10
shoulddoaction(param_00,param_01,param_02,param_03)
{
if(!isdefined(self.requested_action))
{
return 0;
}
if(isdefined(param_03) && param_03 != "")
{
if(self.requested_action == param_03)
{
return 1;
}
return 0;
}
if(self.requested_action == param_02)
{
return 1;
}
return 0;
}
//Function Number: 11
playanimwithplaybackrate(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
var_04 = param_03;
var_05 = lib_0A1D::func_2337(param_00,param_01);
lib_0A1D::func_2365(param_00,param_01,param_02,var_05,var_04);
}
//Function Number: 12
func_3EE4(param_00,param_01,param_02)
{
return lib_0F3C::func_3EF4(param_00,param_01,param_02);
}
//Function Number: 13
playmovingpainanim(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
if(!isdefined(self.var_233) || self method_841E() < scripts\mp\agents\elvira\elvira_tunedata::gettunedata().min_moving_pain_dist)
{
var_04 = func_3EE4(param_00,"pain_generic",param_03);
self method_8289("face angle abs",self.angles);
lib_0A1D::func_2365(param_00,"pain_generic",param_02,var_04,1);
return;
}
lib_0A1D::func_2364(param_01,param_02,param_03,var_04);
}
//Function Number: 14
choosereviveanim(param_00,param_01,param_02)
{
if(!isdefined(self.reviveanimindex))
{
self.reviveanimindex = lib_0F3C::func_3EF4(param_00,param_01,param_02);
}
return self.reviveanimindex;
}
//Function Number: 15
faceplayer(param_00,param_01)
{
self endon(param_00 + "_finished");
for(;;)
{
if(isdefined(param_01))
{
self method_8289("face angle abs",(0,vectortoyaw(param_01.origin - self.origin),0));
}
else
{
break;
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 16
playcastspellanim(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
var_04 = param_03;
var_05 = lib_0A1D::func_2337(param_00,param_01);
playfxontag(level._effect["vfx_spell_tornado"],self,"j_wrist_le");
self playsound("elvira_fire_spell_cast");
thread scripts\cp\maps\cp_town\cp_town_elvira::elvira_timely_torrent();
lib_0A1D::func_2365(param_00,param_01,param_02,var_05,var_04);
}
//Function Number: 17
playrevealspellanim(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
var_04 = param_03;
var_05 = lib_0A1D::func_2337(param_00,param_01);
playfxontag(level._effect["vfx_spell_anom"],self,"j_wrist_le");
self playsound("elvira_portal_spell_cast");
lib_0A1D::func_2365(param_00,param_01,param_02,var_05,var_04);
}
//Function Number: 18
playteleportfx(param_00,param_01)
{
self endon(param_00 + "_finished");
wait(param_01);
playfx(level._effect["elvira_stand_smoke"],self.origin);
}
//Function Number: 19
terminate_traverseexternal(param_00,param_01,param_02)
{
self.earlytraversalteleportpos = undefined;
self.ishidden = undefined;
self.var_9CEC = undefined;
}
//Function Number: 20
dotraverseteleport(param_00,param_01,param_02,param_03)
{
self endon(param_01 + "_finished");
thread lib_0A1D::func_2364(param_00,param_01,param_02,param_03);
thread playteleportfx(param_01,0.75);
var_04 = undefined;
if(isdefined(self.earlytraversalteleportpos))
{
var_04 = self.earlytraversalteleportpos;
}
else
{
var_04 = self method_8146();
}
var_05 = vectornormalize(var_04 - self.origin * (1,1,0));
var_06 = vectortoangles(var_05);
self method_8289("face angle abs",var_06);
wait(0.9);
self hide();
self.ishidden = 1;
self setorigin(var_04,0);
playfx(level._effect["elvira_stand_smoke"],var_04);
wait(0.25);
self show();
self.ishidden = undefined;
self.var_9CEC = undefined;
self notify("traverse_end");
thread lib_0A1A::func_237C("exposed_idle",param_03);
}