IL-GSC/AW/PC/maps/_stealth_behavior_enemy.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

196 lines
5.7 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: _stealth_behavior_enemy.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 138 ms
* Timestamp: 4/22/2024 2:23:00 AM
*******************************************************************/
//Function Number: 1
stealth_behavior_enemy_main()
{
enemy_init();
var_00 = self._stealth.behavior.ai_functions["state"]["hidden"];
thread maps\_stealth_shared_utilities::ai_message_handler_hidden(var_00,"enemy_behavior");
var_00 = self._stealth.behavior.ai_functions["state"]["spotted"];
thread maps\_stealth_shared_utilities::ai_message_handler_spotted(var_00,"enemy_behavior");
thread enemy_animation_loop();
}
//Function Number: 2
enemy_animation_loop()
{
self endon("death");
self endon("pain_death");
self endon("damage");
for(;;)
{
self waittill("event_awareness",var_00);
if(!maps\_utility::ent_flag("_stealth_enabled"))
{
continue;
}
var_01 = self._stealth.behavior.ai_functions["animation"]["wrapper"];
self thread [[ var_01 ]](var_00);
}
}
//Function Number: 3
enemy_state_hidden()
{
self.fovcosine = 0.5;
self.fovcosinebusy = 0.1;
self.favoriteenemy = undefined;
self.dontattackme = 1;
self.dontevershoot = 1;
thread maps\_utility::set_battlechatter(0);
if(self.type == "dog")
{
return;
}
self.diequietly = 1;
self clearenemy();
}
//Function Number: 4
enemy_state_spotted(param_00)
{
self.fovcosine = 0.01;
if(!isdefined(self.dog_attacking_me))
{
self.ignoreall = 0;
thread maps\_utility::set_battlechatter(1);
}
self.dontattackme = undefined;
self.dontevershoot = undefined;
if(isdefined(self.oldfixednode))
{
self.fixednode = self.oldfixednode;
}
if(self.type != "dog")
{
self.diequietly = 0;
if(!isdefined(param_00))
{
maps\_utility::clear_run_anim();
maps\_stealth_shared_utilities::enemy_stop_current_behavior();
}
}
else
{
self.script_growl = undefined;
self.script_nobark = undefined;
}
if(isdefined(param_00))
{
return;
}
if(isdefined(level._stealth.group.spotted_enemy))
{
var_01 = level._stealth.group.spotted_enemy[self.script_stealthgroup];
if(isdefined(var_01))
{
self getenemyinfo(var_01);
}
}
}
//Function Number: 5
enemy_init()
{
maps\_utility::ent_flag_init("_stealth_override_goalpos");
maps\_utility::ent_flag_init("_stealth_enemy_alert_level_action");
maps\_utility::ent_flag_init("_stealth_running_to_corpse");
maps\_utility::ent_flag_init("_stealth_behavior_reaction_anim");
maps\_utility::ent_flag_init("_stealth_behavior_first_reaction");
maps\_utility::ent_flag_init("_stealth_behavior_reaction_anim_in_progress");
self._stealth.behavior = spawnstruct();
self.a.nofirstframemelee = 1;
self._stealth.behavior.ai_functions = [];
enemy_default_state_behavior();
enemy_default_anim_behavior();
self._stealth.behavior.event = spawnstruct();
if(self.type == "dog")
{
enemy_dog_init();
}
self._stealth.plugins = spawnstruct();
thread maps\_stealth_shared_utilities::ai_stealth_pause_handler();
}
//Function Number: 6
enemy_dog_init()
{
if(threatbiasgroupexists("dog"))
{
self setthreatbiasgroup("dog");
}
if(isdefined(self.enemy) || isdefined(self.favoriteenemy))
{
return;
}
maps\_utility::ent_flag_init("_stealth_behavior_asleep");
if(isdefined(self.script_pet) || isdefined(self.script_patroller))
{
return;
}
self.ignoreme = 1;
self.ignoreall = 1;
self.allowdeath = 1;
thread maps\_anim::anim_generic_custom_animmode_loop(self,"gravity","_stealth_dog_sleeping");
maps\_utility::ent_flag_set("_stealth_behavior_asleep");
}
//Function Number: 7
enemy_custom_state_behavior(param_00)
{
foreach(var_03, var_02 in param_00)
{
maps\_stealth_shared_utilities::ai_create_behavior_function("state",var_03,var_02);
}
var_04 = self._stealth.behavior.ai_functions["state"]["hidden"];
thread maps\_stealth_shared_utilities::ai_message_handler_hidden(var_04,"enemy_behavior");
var_04 = self._stealth.behavior.ai_functions["state"]["spotted"];
thread maps\_stealth_shared_utilities::ai_message_handler_spotted(var_04,"enemy_behavior");
}
//Function Number: 8
enemy_default_state_behavior()
{
var_00 = [];
var_00["hidden"] = ::enemy_state_hidden;
var_00["spotted"] = ::enemy_state_spotted;
enemy_custom_state_behavior(var_00);
}
//Function Number: 9
enemy_default_anim_behavior()
{
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","wrapper",::maps\_stealth_shared_utilities::enemy_animation_wrapper);
if(self.type == "dog")
{
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","grenade danger",::maps\_stealth_animation_funcs::dog_animation_wakeup_fast);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","bulletwhizby",::maps\_stealth_animation_funcs::dog_animation_wakeup_fast);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","gunshot_teammate",::maps\_stealth_animation_funcs::dog_animation_wakeup_fast);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","projectile_impact",::maps\_stealth_animation_funcs::dog_animation_wakeup_slow);
return;
}
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","grenade danger",::maps\_stealth_animation_funcs::enemy_animation_nothing);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","bulletwhizby",::maps\_stealth_animation_funcs::enemy_animation_nothing);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","gunshot_teammate",::maps\_stealth_animation_funcs::enemy_animation_nothing);
maps\_stealth_shared_utilities::ai_create_behavior_function("animation","projectile_impact",::maps\_stealth_animation_funcs::enemy_animation_nothing);
}