iw6-scripts/maps/_stealth_utility.gsc
2024-02-13 13:20:49 +01:00

651 lines
17 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
stealth_default()
{
stealth_plugin_basic();
if ( isplayer( self ) )
return;
switch ( self.team )
{
case "team3":
case "axis":
stealth_plugin_threat();
stealth_enable_seek_player_on_spotted();
stealth_plugin_corpse();
stealth_plugin_event_all();
break;
case "allies":
stealth_plugin_aicolor();
stealth_plugin_accuracy();
stealth_plugin_smart_stance();
}
}
stealth_set_default_stealth_function( var_0, var_1 )
{
level.stealth_default_func[var_0] = var_1;
}
stealth_plugin_basic( var_0 )
{
if ( isplayer( self ) )
{
maps\_stealth_visibility_friendly::stealth_visibility_friendly_main();
return;
}
if ( !isdefined( self._stealth ) || !isdefined( self._stealth.plugins.basic ) )
{
switch ( self.team )
{
case "allies":
maps\_stealth_visibility_friendly::stealth_visibility_friendly_main();
maps\_stealth_behavior_friendly::stealth_behavior_friendly_main();
break;
case "team3":
case "axis":
maps\_stealth_visibility_enemy::stealth_visibility_enemy_main();
maps\_stealth_behavior_enemy::stealth_behavior_enemy_main();
break;
}
}
if ( isdefined( var_0 ) )
stealth_basic_states_custom( var_0 );
self._stealth.plugins.basic = 1;
}
stealth_basic_states_custom( var_0 )
{
switch ( self.team )
{
case "allies":
maps\_stealth_behavior_friendly::friendly_custom_state_behavior( var_0 );
break;
case "team3":
case "axis":
maps\_stealth_behavior_enemy::enemy_custom_state_behavior( var_0 );
break;
}
}
stealth_basic_states_default()
{
switch ( self.team )
{
case "allies":
maps\_stealth_behavior_friendly::friendly_default_state_behavior();
break;
case "team3":
case "axis":
maps\_stealth_behavior_enemy::enemy_default_state_behavior();
break;
}
}
stealth_pre_spotted_function_custom( var_0 )
{
maps\_stealth_visibility_enemy::enemy_alert_level_set_pre_spotted_func( var_0 );
}
stealth_pre_spotted_function_default()
{
maps\_stealth_visibility_enemy::enemy_alert_level_default_pre_spotted_func();
}
stealth_plugin_threat( var_0 )
{
if ( !isdefined( self._stealth.plugins.threat ) )
maps\_stealth_threat_enemy::stealth_threat_enemy_main();
if ( isdefined( var_0 ) )
stealth_threat_behavior_replace( var_0 );
}
stealth_enable_seek_player_on_spotted()
{
self.script_stealth_dontseek = 0;
}
stealth_disable_seek_player_on_spotted()
{
self.script_stealth_dontseek = 1;
}
stealth_threat_behavior_custom( var_0, var_1 )
{
if ( isdefined( var_0 ) )
maps\_stealth_threat_enemy::enemy_set_threat_behavior( var_0 );
if ( isdefined( var_1 ) )
maps\_stealth_threat_enemy::enemy_set_threat_anim_behavior( var_1 );
}
stealth_threat_behavior_replace( var_0, var_1 )
{
var_2 = "threat";
var_3 = "warning";
var_4 = 1;
var_5 = var_3 + var_4;
if ( isdefined( var_0 ) )
{
while ( isdefined( self._stealth.behavior.ai_functions[var_2][var_5] ) )
{
if ( !isdefined( var_0[var_5] ) )
var_0[var_5] = maps\_stealth_shared_utilities::ai_get_behavior_function( var_2, var_5 );
var_4++;
var_5 = var_3 + var_4;
}
}
stealth_threat_behavior_custom( var_0, var_1 );
}
stealth_threat_behavior_default_no_warnings()
{
var_0 = [];
stealth_threat_behavior_custom( var_0 );
}
stealth_threat_behavior_default()
{
maps\_stealth_threat_enemy::enemy_default_threat_behavior();
maps\_stealth_threat_enemy::enemy_default_threat_anim_behavior();
}
stealth_alert_level_duration( var_0 )
{
level._stealth.logic.min_alert_level_duration = var_0;
}
stealth_plugin_corpse( var_0 )
{
if ( !isdefined( self._stealth.plugins.corpse ) )
maps\_stealth_corpse_enemy::stealth_corpse_enemy_main();
if ( isdefined( var_0 ) )
stealth_corpse_behavior_custom( var_0 );
}
stealth_corpse_behavior_custom( var_0 )
{
maps\_stealth_corpse_enemy::enemy_custom_corpse_behavior( var_0 );
}
stealth_corpse_behavior_default()
{
maps\_stealth_corpse_enemy::enemy_default_corpse_behavior();
}
stealth_corpse_forget_time_default()
{
maps\_stealth_corpse_system::stealth_corpse_default_forget_time();
}
stealth_corpse_forget_time_custom( var_0 )
{
maps\_stealth_corpse_system::stealth_corpse_set_forget_time( var_0 );
}
stealth_corpse_reset_time_default()
{
maps\_stealth_corpse_system::stealth_corpse_default_reset_time();
}
stealth_corpse_reset_time_custom( var_0 )
{
maps\_stealth_corpse_system::stealth_corpse_set_reset_time( var_0 );
}
stealth_corpse_collect_func( var_0 )
{
maps\_stealth_corpse_system::stealth_corpse_set_collect_func( var_0 );
}
stealth_corpse_reset_collect_func()
{
maps\_stealth_corpse_system::stealth_corpse_default_collect_func();
}
stealth_plugin_event_all( var_0 )
{
stealth_plugin_event_main();
maps\_stealth_event_enemy::stealth_event_mod_all();
if ( isdefined( var_0 ) )
{
foreach ( var_3, var_2 in var_0 )
maps\_stealth_event_enemy::stealth_event_mod( var_3, var_2 );
}
}
stealth_plugin_event_main()
{
if ( !isdefined( self._stealth.plugins.event ) )
maps\_stealth_event_enemy::stealth_event_enemy_main();
}
stealth_plugin_event_heard_scream( var_0, var_1 )
{
stealth_plugin_event_main();
maps\_stealth_event_enemy::stealth_event_mod( "heard_scream", var_0, var_1 );
}
stealth_plugin_event_flashbang( var_0, var_1 )
{
stealth_plugin_event_main();
maps\_stealth_event_enemy::stealth_event_mod( "doFlashBanged", var_0, var_1 );
}
stealth_plugin_event_explosion( var_0, var_1 )
{
stealth_plugin_event_main();
maps\_stealth_event_enemy::stealth_event_mod( "explode", var_0, var_1 );
}
stealth_plugin_event_custom( var_0, var_1, var_2, var_3 )
{
stealth_plugin_event_main();
maps\_stealth_event_enemy::stealth_event_mod( var_0, var_1, var_2, var_3 );
}
stealth_plugin_aicolor( var_0 )
{
if ( !isdefined( self._stealth.plugins.color_system ) )
maps\_stealth_color_friendly::stealth_color_friendly_main();
if ( isdefined( var_0 ) )
stealth_color_state_custom( var_0 );
}
stealth_color_state_custom( var_0 )
{
maps\_stealth_color_friendly::friendly_custom_color_behavior( var_0 );
}
stealth_color_state_default()
{
maps\_stealth_color_friendly::friendly_default_color_behavior();
}
stealth_plugin_accuracy( var_0 )
{
if ( !isdefined( self._stealth.plugins.accaracy_mod ) )
maps\_stealth_accuracy_friendly::stealth_accuracy_friendly_main();
if ( isdefined( var_0 ) )
stealth_accuracy_state_custom( var_0 );
}
stealth_accuracy_state_custom( var_0 )
{
maps\_stealth_accuracy_friendly::friendly_custom_acc_behavior( var_0 );
}
stealth_accuracy_state_default()
{
maps\_stealth_accuracy_friendly::friendly_default_acc_behavior();
}
stealth_plugin_smart_stance()
{
maps\_stealth_smartstance_friendly::stealth_smartstance_friendly_main();
}
enable_stealth_smart_stance()
{
maps\_utility::ent_flag_set( "_stealth_stance_handler" );
}
disable_stealth_smart_stance()
{
maps\_utility::ent_flag_clear( "_stealth_stance_handler" );
}
stealth_enemy_waittill_alert()
{
waittillframeend;
maps\_utility::ent_flag_waitopen( "_stealth_normal" );
}
stealth_is_everything_normal()
{
var_0 = level._stealth.group.groups;
foreach ( var_7, var_2 in var_0 )
{
if ( !issubstr( var_7, "allies" ) )
{
var_3 = maps\_stealth_shared_utilities::group_get_ai_in_group( var_7 );
foreach ( var_5 in var_3 )
{
if ( !var_5 maps\_utility::ent_flag( "_stealth_normal" ) )
return 0;
}
}
}
return 1;
}
stealth_enemy_endon_alert()
{
stealth_enemy_waittill_alert();
waittillframeend;
self notify( "stealth_enemy_endon_alert" );
}
stealth_event_handler( var_0, var_1 )
{
thread maps\_stealth_shared_utilities::event_awareness_main( var_0, var_1 );
}
stealth_detect_ranges_set( var_0, var_1 )
{
maps\_stealth_visibility_system::system_set_detect_ranges( var_0, var_1 );
}
stealth_detect_ranges_default()
{
maps\_stealth_visibility_system::system_default_detect_ranges();
}
stealth_corpse_ranges_custom( var_0 )
{
maps\_stealth_corpse_system::stealth_corpse_set_distances( var_0 );
}
stealth_corpse_ranges_default()
{
maps\_stealth_corpse_system::stealth_corpse_default_distances();
}
stealth_ai_event_dist_custom( var_0 )
{
var_1 = level._stealth.logic.detection_level;
maps\_stealth_visibility_system::system_set_event_distances( var_0 );
maps\_stealth_visibility_system::system_event_change( var_1 );
}
stealth_ai_event_dist_default()
{
var_0 = level._stealth.logic.detection_level;
maps\_stealth_visibility_system::system_default_event_distances();
maps\_stealth_visibility_system::system_event_change( var_0 );
}
stealth_friendly_movespeed_scale_set( var_0, var_1 )
{
maps\_stealth_visibility_friendly::friendly_set_movespeed_scale( var_0, var_1 );
}
stealth_friendly_movespeed_scale_default()
{
maps\_stealth_visibility_friendly::friendly_default_movespeed_scale();
}
stealth_friendly_stance_handler_distances_set( var_0, var_1, var_2 )
{
maps\_stealth_smartstance_friendly::friendly_set_stance_handler_distances( var_0, var_1, var_2 );
}
stealth_friendly_stance_handler_distances_default()
{
maps\_stealth_smartstance_friendly::friendly_default_stance_handler_distances();
}
stealth_ai_clear_custom_idle_and_react( var_0 )
{
maps\_stealth_shared_utilities::ai_clear_custom_animation_reaction_and_idle( var_0 );
}
stealth_ai_clear_custom_react()
{
maps\_stealth_shared_utilities::ai_clear_custom_animation_reaction();
}
stealth_ai_idle_and_react( var_0, var_1, var_2, var_3, var_4 )
{
if ( isdefined( var_4 ) )
{
}
var_0 stealth_insure_enabled();
var_5 = var_0 maps\_stealth_shared_utilities::group_get_flagname( "_stealth_spotted" );
if ( common_scripts\utility::flag( var_5 ) )
return;
var_6 = "stop_loop";
var_0.allowdeath = 1;
if ( !isdefined( var_4 ) )
thread maps\_anim::anim_generic_custom_animmode_loop( var_0, "gravity", var_1, var_3 );
else
thread maps\_anim::anim_generic_loop( var_0, var_1, var_3 );
var_0 maps\_stealth_shared_utilities::ai_set_custom_animation_reaction( self, var_2, var_3, var_6 );
maps\_utility::add_wait( maps\_utility::waittill_msg, "stop_idle_proc" );
maps\_utility::add_func( ::stealth_ai_clear_custom_idle_and_react );
thread do_wait_thread();
}
do_wait_thread()
{
self endon( "death" );
maps\_utility::do_wait();
}
stealth_ai_react( var_0, var_1, var_2 )
{
var_0 stealth_insure_enabled();
var_0 maps\_stealth_shared_utilities::ai_set_custom_animation_reaction( self, var_1, var_2, "stop_loop" );
}
stealth_ai_reach_idle_and_react( var_0, var_1, var_2, var_3, var_4 )
{
var_0 stealth_insure_enabled();
thread stealth_ai_reach_idle_and_react_proc( var_0, var_1, var_2, var_3, var_4 );
}
stealth_ai_reach_idle_and_react_proc( var_0, var_1, var_2, var_3, var_4 )
{
var_0 stealth_insure_enabled();
var_0 thread stealth_enemy_endon_alert();
var_0 endon( "stealth_enemy_endon_alert" );
var_0 endon( "death" );
maps\_anim::anim_generic_reach( var_0, var_1, var_4 );
stealth_ai_idle_and_react( var_0, var_2, var_3, var_4 );
}
stealth_ai_reach_and_arrive_idle_and_react( var_0, var_1, var_2, var_3, var_4 )
{
var_0 stealth_insure_enabled();
thread stealth_ai_reach_and_arrive_idle_and_react_proc( var_0, var_1, var_2, var_3, var_4 );
}
stealth_ai_reach_and_arrive_idle_and_react_proc( var_0, var_1, var_2, var_3, var_4 )
{
var_0 stealth_insure_enabled();
var_0 thread stealth_enemy_endon_alert();
var_0 endon( "stealth_enemy_endon_alert" );
var_0 endon( "death" );
maps\_anim::anim_generic_reach_and_arrive( var_0, var_1, var_4 );
stealth_ai_idle_and_react( var_0, var_2, var_3, var_4 );
}
stealth_insure_enabled()
{
}
stealth_group_return_groups_with_spotted_flag()
{
return maps\_stealth_shared_utilities::group_return_groups_with_flag_set( "_stealth_spotted" );
}
stealth_group_return_groups_with_event_flag()
{
return maps\_stealth_shared_utilities::group_return_groups_with_flag_set( "_stealth_event" );
}
stealth_group_return_groups_with_corpse_flag()
{
return maps\_stealth_shared_utilities::group_return_groups_with_flag_set( "_stealth_found_corpse" );
}
stealth_group_return_ai_with_spotted_flag()
{
return maps\_stealth_shared_utilities::group_return_ai_with_flag_set( "_stealth_spotted" );
}
stealth_group_return_ai_with_event_flag()
{
return maps\_stealth_shared_utilities::group_return_ai_with_flag_set( "_stealth_event" );
}
stealth_group_return_ai_with_corpse_flag()
{
return maps\_stealth_shared_utilities::group_return_ai_with_flag_set( "_stealth_found_corpse" );
}
stealth_group_spotted_flag()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_spotted" );
return common_scripts\utility::flag( var_0 );
}
stealth_group_corpse_flag()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_found_corpse" );
return common_scripts\utility::flag( var_0 );
}
stealth_group_spotted_flag_wait()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_spotted" );
common_scripts\utility::flag_wait( var_0 );
}
stealth_group_corpse_flag_wait()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_found_corpse" );
common_scripts\utility::flag_wait( var_0 );
}
stealth_group_spotted_flag_waitopen()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_spotted" );
return common_scripts\utility::flag_waitopen( var_0 );
}
stealth_group_corpse_flag_waitopen()
{
var_0 = maps\_stealth_shared_utilities::group_get_flagname( "_stealth_found_corpse" );
return common_scripts\utility::flag_waitopen( var_0 );
}
stealth_get_group_spotted_flag()
{
return maps\_stealth_shared_utilities::group_get_flagname( "_stealth_spotted" );
}
stealth_get_group_corpse_flag()
{
return maps\_stealth_shared_utilities::group_get_flagname( "_stealth_found_corpse" );
}
stealth_set_group( var_0 )
{
stealth_set_group_proc( var_0 );
}
stealth_set_group_default()
{
stealth_set_group_proc( "default" );
}
stealth_set_group_proc( var_0 )
{
if ( isdefined( self.script_stealthgroup ) )
level._stealth.group.groups[self.script_stealthgroup] = common_scripts\utility::array_remove( level._stealth.group.groups[self.script_stealthgroup], self );
self.script_stealthgroup = maps\_utility::string( var_0 );
if ( isdefined( self._stealth.plugins.basic ) )
{
maps\_stealth_shared_utilities::group_flag_init( "_stealth_spotted" );
maps\_stealth_shared_utilities::group_flag_init( "_stealth_event" );
maps\_stealth_shared_utilities::group_flag_init( "_stealth_found_corpse" );
maps\_stealth_shared_utilities::group_add_to_global_list();
}
}
stealth_get_group()
{
return self.script_stealthgroup;
}
enable_stealth_system()
{
common_scripts\utility::flag_set( "_stealth_enabled" );
var_0 = getaispeciesarray( "all", "all" );
foreach ( var_3, var_2 in var_0 )
var_2 enable_stealth_for_ai();
foreach ( var_5 in level.players )
{
if ( var_5 maps\_utility::ent_flag_exist( "_stealth_enabled" ) )
var_5 maps\_utility::ent_flag_set( "_stealth_enabled" );
var_5 maps\_stealth_visibility_friendly::friendly_visibility_logic();
}
maps\_stealth_visibility_system::system_event_change( "hidden" );
}
disable_stealth_system()
{
common_scripts\utility::flag_clear( "_stealth_enabled" );
var_0 = getaispeciesarray( "all", "all" );
foreach ( var_3, var_2 in var_0 )
var_2 disable_stealth_for_ai();
foreach ( var_5 in level.players )
{
var_5.maxvisibledist = 8192;
if ( var_5 maps\_utility::ent_flag_exist( "_stealth_enabled" ) )
var_5 maps\_utility::ent_flag_clear( "_stealth_enabled" );
}
maps\_stealth_visibility_system::system_event_change( "spotted" );
}
enable_stealth_for_ai()
{
if ( maps\_utility::ent_flag_exist( "_stealth_enabled" ) )
maps\_utility::ent_flag_set( "_stealth_enabled" );
if ( self.team == "allies" )
thread maps\_stealth_visibility_friendly::friendly_visibility_logic();
}
disable_stealth_for_ai()
{
if ( maps\_utility::ent_flag_exist( "_stealth_enabled" ) )
maps\_utility::ent_flag_clear( "_stealth_enabled" );
self.maxvisibledist = 8192;
}