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

1960 lines
67 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
level.extinction_episode = 4;
level.intel_table = "mp/alien/alien_last_intel.csv";
level.collectibles = [];
level.encounter_score_components = [];
level.eog_score_components = [];
level.cycle_health_scalar = 1.0;
level.cycle_damage_scalar = 1.0;
level.cycle_reward_scalar = 1.0;
level.ancestor_projectile_solo_scalar = 0.6;
level.drill_damage_scalar = 1.65;
level.removed_hives = [];
common_scripts\utility::flag_init( "intro_sequence_complete" );
level.initial_spawn_loc_override_func = ::last_player_initial_spawn_loc_override;
level.introscreen_line_1 = &"MP_ALIEN_LAST_INTRO_LINE_1";
level.introscreen_line_2 = &"MP_ALIEN_LAST_INTRO_LINE_2";
level.introscreen_line_3 = &"MP_ALIEN_LAST_INTRO_LINE_3";
level.introscreen_line_4 = &"MP_ALIEN_LAST_INTRO_LINE_4";
maps\mp\alien\_utility::alien_mode_enable( "kill_resource", "wave", "lurker", "collectible", "loot", "pillage", "challenge", "outline", "scenes" );
level.recipe_setup_func = ::last_recipe_setup_func;
level.random_crafting_list = [ "amolecular", "wire", "cellbattery", "liquidbattery", "nucleicbattery", "fuse", "pipe", "pressureplate", "tnt", "resin", "orangebiolum", "bluebiolum", "biolum", "oorangebiolum", "bbluebiolum", "bbiolum", "detonator", "casing", "substrate", "cortexgel", "cortexhousing" ];
level thread maps\mp\alien\_crafting::init();
level thread maps\mp\alien\_crafting_traps::init();
level.hypno_trap_func = maps\mp\alien\_crafting_traps::tryuseplaceable;
level.tesla_trap_func = maps\mp\alien\_crafting_traps::tryuseplaceable;
level maps\mp\alien\mp_alien_last_turret::last_turret_init();
level.custom_alien_death_func = ::last_custom_death;
var_0 = [ "main_base", "gas_station_outpost", "parking_outpost", "rooftop_outpost", "left_transition", "upper_left_transition", "middle_transition", "upper_right_transition", "right_transition" ];
maps\mp\alien\_utility::alien_area_init( var_0 );
level.ricochetdamagemax = 10;
level.hardcore_spawn_multiplier = 1.0;
level.hardcore_damage_scalar = 1.0;
level.hardcore_health_scalar = 1.0;
level.hardcore_reward_scalar = 1.0;
level.hardcore_score_scalar = 1.25;
level.casual_spawn_multiplier = 1.0;
level.casual_damage_scalar = 0.45;
level.casual_health_scalar = 0.45;
level.casual_reward_scalar = 1.0;
level.casual_score_scalar = 0.5;
level.include_default_challenges = 1;
level.challenge_registration_func = maps\mp\alien\mp_alien_last_challenges::register_last_challenges;
level.challenge_scalar_func = maps\mp\alien\mp_alien_last_challenges::last_challenge_scalar_func;
level.custom_death_challenge_func = maps\mp\alien\mp_alien_last_challenges::last_death_challenge_func;
level.custom_damage_challenge_func = maps\mp\alien\mp_alien_last_challenges::last_damage_challenge_func;
level.include_default_achievements = 1;
level.achievement_registration_func = maps\mp\alien\_achievement_dlc4::register_achievements_dlc4;
level.achievement_you_wish_cb = ::achievement_you_wish_func;
level.update_alien_kill_achievements_func = maps\mp\alien\_achievement_dlc4::update_alien_kill_achievements_dlc4;
level.include_default_unlocks = 1;
level.escape_cycle = 19;
level.custom_pillageinitfunc = ::mp_alien_last_pillage_init;
maps\mp\alien\_pillage_locker::locker_pillage_functions_init();
level.pillage_locker_offset_override_func = ::dlc_4_offset_locker_trigger_model;
level.level_locker_weapon_pickup_string_func = ::last_locker_weapon_pickup_string_func;
level.locker_ark_check_func = ::last_locker_ark_check_func;
maps\mp\gametypes\aliens::setup_last_hive( "left_lung_00" );
level.cac_vo_male = common_scripts\utility::array_randomize( [ "p6_", "p5_" ] );
level.cac_vo_female = common_scripts\utility::array_randomize( [ "p8_", "p7_" ] );
level.level_specific_vo_callouts = ::last_specific_vo_callouts;
level.should_play_next_hive_vo_func = ::last_should_play_next_hive_vo_func;
level.custom_onspawnplayer_func = ::mp_alien_last_onspawnplayer_func;
maps\mp\alien\_alien_maaws::alien_maaws_init();
level.level_drill_damage_adjust_function = ::dlc4_drill_damage_adjust_function;
thread maps\mp\alien\_alien_class_skills_main::main();
set_spawn_table();
set_container_spawn_table();
set_alien_definition_table();
level.alien_collectibles_table = "mp/alien/collectibles_last.csv";
level.spawn_node_info_table = "mp/alien/last_spawn_node_info.csv";
level.alien_challenge_table = "mp/alien/mp_alien_last_challenges.csv";
level.alien_character_cac_table = "mp/alien/alien_cac_presets.csv";
level.container_spawn_table = "mp/alien/last_container_spawn.csv";
maps\mp\alien\_container_spawn::init_container_spawn();
level.enter_area_func = ::last_enter_area_func;
level.leave_area_func = ::last_leave_area_func;
level.dlc_melee_override_func = ::last_melee_override_func;
level.dlc_alien_init_override_func = ::last_alien_init_override_func;
level.alien_attack_override_func = ::last_alien_attack_override_func;
level.dlc_alien_death_override_func = ::last_alien_death_override_func;
level.dlc_idle_anim_state_override_func = ::last_alien_idle_anim_state_override_func;
level.dlc_alien_type_node_match_override_func = ::last_alien_type_node_match_override_func;
level.dlc_alien_jump_override = ::last_alien_jump_override;
level.dlc_can_do_pain_override_func = ::last_can_do_pain_override_func;
level.dlc_alien_can_retreat_override_func = ::last_alien_can_retreat_override_func;
level.dlc_alien_pain_anim_state_override_func = ::last_alien_pain_anim_state_override_func;
level.dlc_alien_turn_in_place_anim_state_override_func = ::last_alien_turn_in_place_anim_state_override_func;
level.dlc_alien_should_immediate_ragdoll_on_death_override_func = ::last_alien_should_immediate_ragdoll_on_death_override_func;
level.dlc_get_current_player_volumes_override_func = maps\mp\mp_alien_last_progression::last_get_current_player_volumes_override_func;
level.shell_shock_override = ::last_shellshock_override_func;
if ( maps\mp\alien\_utility::isplayingsolo() )
level.base_player_count_multiplier = 1;
else
level.base_player_count_multiplier = 0.49;
level.additional_player_count_multiplier = 0.17;
level.waypoint_dist_override = 2500;
level.hintprecachefunc = ::last_hint_precache;
maps\mp\mp_alien_last_precache::main();
maps\createart\mp_alien_last_art::main();
maps\mp\mp_alien_last_fx::main();
maps\mp\_load::main();
maps\mp\_compass::setupminimap( "compass_map_mp_alien_last" );
setdvar( "r_lightGridEnableTweaks", 1 );
setdvar( "r_lightGridIntensity", 1.33 );
game["attackers"] = "allies";
game["defenders"] = "axis";
game["allies_outfit"] = "urban";
game["axis_outfit"] = "woodland";
init_weapon_stat_array();
level.weapon_stats_override_name_func = ::last_weapon_stats_override_func;
maps\mp\agents\alien\alien_ancestor\_alien_ancestor::init();
maps\mp\agents\alien\_alien_mammoth::mammoth_level_init();
maps\mp\agents\alien\_alien_gargoyle::gargoyle_level_init();
maps\mp\agents\alien\_alien_bomber::bomber_level_init();
register_encounters();
if ( !maps\mp\alien\_utility::is_chaos_mode() )
{
maps\mp\alien\_gamescore::set_drill_score_component_name( "generator" );
maps\mp\alien\_gamescore_last::init_partial_hive_score_component_list_func();
maps\mp\alien\_gamescore_last::init_last_eog_score_components( [ "generator", "street", "item_crafting", "cortex", "ancestor_bonus", "relics" ] );
maps\mp\alien\_gamescore_last::init_last_encounter_score_components( [ "street_personal", "street_team", "street_challenge", "generator", "generator_personal", "generator_team", "generator_challenge", "item_crafting", "ancestor_bonus", "cortex" ] );
maps\mp\alien\_pillage_intel::create_intel_spots();
level thread maps\mp\mp_alien_last_final_battle::setup_final_battle();
maps\mp\mp_alien_last_progression::init_fake_drill();
level thread wait_spawn_intro_drill();
}
level thread maps\mp\alien\mp_alien_last_turret::set_up_remote_turrets();
level thread last_start_vo();
maps\mp\mp_alien_last_weapon::init();
level thread setup_last_offhands();
level.give_randombox_item_check = ::last_randombox_item_check;
level thread maps\mp\mp_alien_last_traps::main();
level.hypno_trap_func = maps\mp\alien\_crafting_traps::tryuseplaceable;
level.tesla_trap_func = maps\mp\alien\_crafting_traps::tryuseplaceable;
level.custom_cangive_weapon_func = ::last_cangive_weapon_handler_func;
level.custom_give_weapon_func = ::last_give_weapon_handler_func;
setup_incompatible_list();
level.skip_radius_damage_on_puddles = 1;
level.drill_icon_draw_dist_override = 10000;
level thread maps\mp\alien\_lasedstrike_alien::init();
level thread collectible_easter_egg_setup();
level thread carwash_intel_easter_egg();
level.drill_repair_hint = &"MP_ALIEN_LAST_GENERATOR_REPAIR_HINT";
level.drill_repair_hint_urgent = &"MP_ALIEN_LAST_GENERATOR_REPAIR_URGENT";
level.drill_repair = &"MP_ALIEN_LAST_REPAIRGENERATOR";
level thread fix_map_holes();
}
fix_map_holes()
{
level endon( "game_ended" );
level waittill( "spawn_nondeterministic_entities" );
var_0 = getent( "player256x256x8", "targetname" );
var_0 moveto( ( 2320, -201, 240 ), 0.05 );
var_0.angles = ( 270, 270, 0 );
var_1 = spawn( "script_model", ( 1224, 1600.5, 64 ) );
var_1.angles = ( 0, 270, 90 );
var_1 clonebrushmodeltoscriptmodel( getent( "player256x256x8", "targetname" ) );
var_2 = spawn( "script_model", ( -528, 1598.5, 64 ) );
var_2.angles = ( 0, 90, 90 );
var_2 clonebrushmodeltoscriptmodel( getent( "player256x256x8", "targetname" ) );
}
collectible_easter_egg_setup()
{
wait 1;
level._effect["arcade_death"] = level._effect["eyeball_death"];
level.collectible_spots_found = 0;
level.collectible_spots = 0;
var_0 = [];
var_1 = [];
var_2 = [];
var_0[0] = add_collectible_spot( ( -356, -1109, 81 ), ( 90, 240, 180 ) );
var_0[1] = add_collectible_spot( ( 47, -667, 81 ), ( 90, 255, 0 ) );
var_0[2] = add_collectible_spot( ( 1281, -244.5, 238 ), ( 90, 280, 180 ) );
var_1[0] = add_collectible_spot( ( 2936.5, 2725, 47.5 ), ( 90, 12.1, 0 ) );
var_1[1] = add_collectible_spot( ( 2645, 2124, 40.75 ), ( 90, 162.1, 5 ) );
var_1[2] = add_collectible_spot( ( 3155.5, 2564.5, 203.5 ), ( 90, 222.1, 180 ) );
var_2[0] = add_collectible_spot( ( -2256, 2110.5, 230.5 ), ( 90, 282.1, 180 ) );
var_2[1] = add_collectible_spot( ( -2328, 2492.5, 208.5 ), ( 90, 282.1, 180 ) );
var_2[2] = add_collectible_spot( ( -902, 2100.5, 246.5 ), ( 90, 297.1, 0 ) );
var_3 = common_scripts\utility::random( var_0 );
var_4 = common_scripts\utility::random( var_1 );
var_5 = common_scripts\utility::random( var_2 );
level thread init_collectible_spot( var_3 );
level thread init_collectible_spot( var_4 );
level thread init_collectible_spot( var_5 );
}
add_collectible_spot( var_0, var_1 )
{
var_2 = spawnstruct();
var_2.origin = var_0;
var_2.angles = var_1;
return var_2;
}
init_collectible_spot( var_0 )
{
var_1 = spawn( "script_model", var_0.origin );
var_1.angles = var_0.angles;
var_1.origin = var_0.origin;
var_1 setmodel( "tag_origin" );
wait 1;
var_1 makeusable();
var_1 sethintstring( "" );
var_1.used = 0;
var_1 thread wait_for_player_use();
while ( !var_1.used )
{
playfx( level._effect["collectible_eye"], var_1.origin, anglestoforward( var_1.angles ), anglestoup( var_1.angles ) );
wait 1;
}
var_1 delete();
level.collectible_spots++;
if ( level.collectible_spots >= 3 )
{
level.easter_egg_lodge_sign_active = 1;
activate_easter_egg();
}
}
wait_for_player_use()
{
self waittill( "trigger", var_0 );
self.used = 1;
var_0 playlocalsound( "last_easter_collect" );
}
activate_easter_egg()
{
wait 1;
maps\mp\_utility::playsoundinspace( "last_easter_unlock", ( 0, 0, 0 ) );
earthquake( 0.35, 4, ( 0, 0, 0 ), 10000 );
wait 1;
foreach ( var_1 in level.players )
{
var_1 thread [[ level.custom_juicebox_logic ]]( 180, 4, 1 );
var_1 thread maps\mp\alien\_outline_proto::set_alien_outline();
playfxontag( level.dig_fx["shrine"]["player"], var_1, "tag_origin" );
var_1.shrine_effect_ent = spawnfxforclient( level.dig_fx["shrine"]["screen"], var_1 geteye(), var_1 );
triggerfx( var_1.shrine_effect_ent );
var_1.shrine_effect_ent setfxkilldefondelete();
var_1 thread killfxonplayerdeath( var_1.shrine_effect_ent, "death", "disconnect" );
}
level thread last_easter_egg_off();
}
killfxonplayerdeath( var_0, var_1, var_2, var_3 )
{
level endon( "game_ended" );
if ( isdefined( var_1 ) )
level endon( var_1 );
if ( isdefined( var_2 ) )
level endon( var_2 );
if ( isdefined( var_3 ) )
level endon( var_3 );
common_scripts\utility::waittill_any( "killed_player", "disconnect" );
if ( isdefined( var_0 ) )
{
if ( isarray( var_0 ) )
{
foreach ( var_5 in var_0 )
var_5 delete();
}
else
var_0 delete();
}
}
last_easter_egg_off()
{
level endon( "game_ended" );
wait 180;
level.easter_egg_lodge_sign_active = 0;
foreach ( var_1 in level.players )
{
var_1 thread maps\mp\alien\_alien_class_skills_main::remove_the_outline();
stopfxontag( level.dig_fx["shrine"]["player"], var_1, "tag_origin" );
if ( isdefined( var_1.shrine_effect_ent ) )
var_1.shrine_effect_ent delete();
}
}
carwash_intel_easter_egg()
{
var_0 = common_scripts\utility::getstructarray( "ee_n", "targetname" );
var_1 = common_scripts\utility::getstructarray( "ee_e", "targetname" );
var_2 = common_scripts\utility::getstructarray( "ee_v", "targetname" );
var_3 = common_scripts\utility::getstructarray( "ee_r", "targetname" );
var_4 = common_scripts\utility::getstructarray( "ee_s", "targetname" );
var_5 = common_scripts\utility::getstructarray( "ee_o", "targetname" );
var_6 = common_scripts\utility::getstructarray( "ee_f", "targetname" );
var_7 = common_scripts\utility::getstructarray( "ee_t", "targetname" );
level.easter_egg_trigs = getentarray( "ee_trig", "targetname" );
var_8 = [ var_0, var_1, var_2, var_1, var_3, var_4, var_5, var_6, var_7 ];
var_9 = [ "^1N", "^2E", "^3V", "^4E", "^5R", "^6S", "^7O", "^8F", "^9T" ];
var_10 = undefined;
for (;;)
{
for ( var_11 = 0; var_11 < var_8.size; var_11++ )
{
level thread wait_for_letter_shot( var_8[var_11] );
if ( var_11 > 0 )
{
var_12 = level common_scripts\utility::waittill_notify_or_timeout_return( "letter_shot", ( var_10 + 30000 - gettime() ) / 1000 );
if ( isdefined( var_12 ) )
{
level notify( "stop_waiting" );
break;
}
}
else if ( var_11 == 0 )
{
level waittill( "letter_shot" );
var_10 = gettime();
}
if ( gettime() < var_10 + 30000 )
{
var_13 = "";
for ( var_4 = 0; var_4 < var_11; var_4++ )
var_13 = var_13 + var_9[var_4];
var_13 = var_13 + var_9[var_11];
iprintlnbold( var_13 );
if ( var_11 == var_8.size - 1 )
{
level thread unlock_last_secret_intel();
return;
}
}
else
break;
}
}
}
unlock_last_secret_intel()
{
wait 1;
maps\mp\_utility::playsoundinspace( "last_easter_unlock", ( 0, 0, 0 ) );
earthquake( 0.35, 4, ( 0, 0, 0 ), 10000 );
wait 1;
foreach ( var_1 in level.players )
thread maps\mp\alien\_pillage_intel::give_player_easter_egg_intel( var_1 );
}
wait_for_letter_shot( var_0 )
{
level endon( "stop_waiting" );
foreach ( var_2 in level.easter_egg_trigs )
var_2 common_scripts\utility::trigger_off();
foreach ( var_6, var_5 in var_0 )
{
level.easter_egg_trigs[var_6] common_scripts\utility::trigger_on();
level.easter_egg_trigs[var_6].origin = var_5.origin;
level.easter_egg_trigs[var_6] thread wait_for_letter_damage();
}
level waittill( "letter_shot" );
}
wait_for_letter_damage()
{
level endon( "letter_shot" );
level endon( "stop_waiting" );
self waittill( "trigger" );
playfx( level._effect["alien_gib"], self.origin );
self playsound( "last_easter_collect" );
level notify( "letter_shot" );
}
wait_spawn_intro_drill()
{
wait 2.0;
level notify( "spawn_intro_drill" );
level notify( "enable_encounters" );
wait 3.0;
common_scripts\utility::flag_set( "intro_sequence_complete" );
}
register_encounters()
{
if ( maps\mp\alien\_utility::is_chaos_mode() )
{
maps\mp\gametypes\aliens::register_encounter( ::chaos_init, undefined, undefined, undefined, ::chaos_init, maps\mp\alien\_globallogic::blank );
maps\mp\gametypes\aliens::register_encounter( maps\mp\alien\_chaos::chaos, undefined, undefined, undefined, maps\mp\alien\_chaos::chaos, maps\mp\alien\_globallogic::blank );
return;
}
level.dlc_run_encounters_override = maps\mp\mp_alien_last_progression::run_non_linear_encounters;
maps\mp\mp_alien_last_progression::nonlinear_progression_init();
maps\mp\mp_alien_last_progression::register_nonlinear_outpost( "main_base", 1 );
maps\mp\mp_alien_last_progression::register_nonlinear_outpost( "gas_station" );
maps\mp\mp_alien_last_progression::register_nonlinear_outpost( "parking" );
maps\mp\mp_alien_last_progression::register_nonlinear_outpost( "rooftop" );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "gas_station", "conduit_gas_station_1", 6, 12, 18, 1, 0, ::gas_station_part_1, 0 );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "gas_station", "conduit_gas_station_2", 7, 13, 19, 1, 0, ::gas_station_blocker, 1 );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "parking", "conduit_parking_1", 8, 14, 20, 1, 0, ::parking_part_1, 0 );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "parking", "conduit_parking_2", 9, 15, 21, 1, 0, ::parking_blocker, 1 );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "rooftop", "conduit_rooftop_1", 10, 16, 22, 1, 0, ::rooftop_part_1, 0 );
maps\mp\mp_alien_last_progression::register_nonlinear_conduit( "rooftop", "conduit_rooftop_2", 11, 17, 23, 1, 0, ::rooftop_blocker, 1 );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "main_base", "transition_left", 1, 0, maps\mp\mp_alien_last_progression::opener_slide, -110, 110, "gas_station" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "main_base", "transition_middle", 1, 0, maps\mp\mp_alien_last_progression::opener_slide_x, -275, 275, "parking" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "main_base", "transition_right", 1, 0, maps\mp\mp_alien_last_progression::opener_slide, -110, 110, "rooftop" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "gas_station", "transition_left", 1, 0, maps\mp\mp_alien_last_progression::opener_pivot, 60, -60, "main_base" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "gas_station", "transition_upper_left", 1, 0, maps\mp\mp_alien_last_progression::opener_pivot, 60, -60, "parking" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "parking", "transition_upper_left", 1, 0, maps\mp\mp_alien_last_progression::opener_doors, -88, 88, "gas_station" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "parking", "transition_middle", 1, 0, maps\mp\mp_alien_last_progression::opener_slide, 128, -128, "main_base" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "parking", "transition_upper_right", 1, 0, maps\mp\mp_alien_last_progression::opener_doors, -100, 100, "rooftop" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "rooftop", "transition_upper_right", 1, 0, maps\mp\mp_alien_last_progression::opener_pivot, 80, -80, "parking" );
maps\mp\mp_alien_last_progression::register_nonlinear_transition( "rooftop", "transition_right", 1, 0, maps\mp\mp_alien_last_progression::opener_doors, 75, -75, "main_base" );
}
blank_script()
{
}
last_melee_override_func( var_0 )
{
switch ( self.melee_type )
{
case "burrow":
maps\mp\agents\alien\_alien_mammoth::burrow( var_0 );
break;
case "stun":
maps\mp\agents\alien\_alien_gargoyle::stun( var_0 );
break;
case "wing_swipe":
maps\mp\agents\alien\_alien_gargoyle::wing_swipe( var_0 );
break;
case "hover_attack":
maps\mp\agents\alien\_alien_gargoyle::hover( var_0 );
break;
case "divebomb":
maps\mp\agents\alien\_alien_bomber::divebomb( var_0 );
break;
case "strafe_run":
maps\mp\agents\alien\_alien_gargoyle::strafe_run( var_0 );
break;
case "kamikaze":
maps\mp\agents\alien\_alien_bomber::kamikaze( var_0 );
break;
case "fissure_spawn":
maps\mp\agents\alien\_alien_mammoth::fissure_spawn( var_0 );
break;
case "mammoth_angered":
maps\mp\agents\alien\_alien_mammoth::mammoth_angered( var_0 );
break;
case "takeoff":
maps\mp\agents\alien\_alien_gargoyle::takeoff( var_0 );
break;
case "land":
maps\mp\agents\alien\_alien_gargoyle::land( var_0 );
break;
case "air_dodge":
maps\mp\agents\alien\_alien_gargoyle::air_dodge( var_0 );
break;
case "fly":
maps\mp\agents\alien\_alien_gargoyle::fly( var_0 );
break;
case "fly_intro":
maps\mp\agents\alien\_alien_gargoyle::fly_intro( var_0 );
break;
}
}
last_alien_idle_anim_state_override_func( var_0 )
{
if ( !isdefined( self.alien_type ) )
return undefined;
switch ( self.alien_type )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::gargoyle_idle_state( var_0 );
}
return undefined;
}
last_can_do_pain_override_func( var_0 )
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::can_do_pain( var_0 );
default:
return 1;
}
}
last_alien_pain_anim_state_override_func( var_0 )
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::get_pain_anim_state( var_0 );
default:
return undefined;
}
}
last_alien_turn_in_place_anim_state_override_func()
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::get_turn_in_place_anim_state();
default:
return undefined;
}
}
last_alien_should_immediate_ragdoll_on_death_override_func( var_0 )
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::should_immediate_ragdoll_on_death();
default:
return undefined;
}
}
last_alien_can_retreat_override_func( var_0 )
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "gargoyle":
return maps\mp\agents\alien\_alien_gargoyle::can_retreat( var_0 );
default:
return 1;
}
}
last_shellshock_override_func( var_0 )
{
if ( maps\mp\alien\_utility::is_true( self.is_grabbed ) )
return;
self shellshock( "alien_spitter_gas_cloud", var_0 );
}
last_alien_type_node_match_override_func( var_0 )
{
switch ( var_0 )
{
case "elite":
case "mammoth":
case "bomber":
return 0;
case "gargoyle":
if ( getdvarint( "scr_gargoyle_disable_fly_intro" ) != 1 )
return 0;
break;
default:
return 1;
}
}
last_alien_jump_override( var_0, var_1, var_2, var_3 )
{
var_4 = undefined;
if ( isdefined( var_1.script_noteworthy ) && var_1.script_noteworthy != "flyable" )
var_4 = var_1.script_noteworthy;
maps\mp\agents\alien\_alien_jump::jump( var_0.origin, var_0.angles, var_1.origin, var_1.angles, var_3, undefined, var_4 );
}
last_alien_init_override_func()
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "mammoth":
maps\mp\agents\alien\_alien_mammoth::mammoth_init();
break;
case "gargoyle":
maps\mp\agents\alien\_alien_gargoyle::gargoyle_init();
break;
case "bomber":
maps\mp\agents\alien\_alien_bomber::bomber_init();
break;
}
}
last_alien_attack_override_func( var_0, var_1 )
{
switch ( var_1 )
{
case "burrow":
maps\mp\agents\alien\_alien_mammoth::burrow_attack( var_0 );
break;
case "stun":
maps\mp\agents\alien\_alien_gargoyle::stun_attack( var_0 );
break;
case "wing_swipe":
maps\mp\agents\alien\_alien_gargoyle::wing_swipe_attack( var_0 );
break;
case "hover_attack":
maps\mp\agents\alien\_alien_gargoyle::hover_attack( var_0 );
break;
case "strafe_run":
maps\mp\agents\alien\_alien_gargoyle::strafe_run_attack( var_0 );
break;
case "fissure_spawn":
maps\mp\agents\alien\_alien_mammoth::fissure_spawn_attack( var_0 );
break;
case "mammoth_angered":
maps\mp\agents\alien\_alien_mammoth::mammoth_angered_attack( var_0 );
break;
case "takeoff":
maps\mp\agents\alien\_alien_gargoyle::takeoff_attack( var_0 );
break;
case "land":
maps\mp\agents\alien\_alien_gargoyle::landing_attack( var_0 );
break;
case "fly":
maps\mp\agents\alien\_alien_gargoyle::fly_attack( var_0 );
break;
case "fly_intro":
maps\mp\agents\alien\_alien_gargoyle::fly_intro_attack( var_0 );
break;
default:
return 0;
}
return 1;
}
last_locker_weapon_pickup_string_func( var_0 )
{
var_0 = "" + var_0;
switch ( var_0 )
{
case "weapon_vks":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_VKS";
case "weapon_usr":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_USR";
case "weapon_remington_r5rgp":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_R5RGP";
case "weapon_rm_22":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_MAVERICK";
case "weapon_evopro":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_RIPPER";
case "weapon_k7":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_K7";
case "weapon_uts_15":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_UTS";
case "weapon_maul":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_MAUL";
case "weapon_mk14_ebr_iw6":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_MK14";
case "weapon_imbel_ia2":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_IMBEL";
case "weapon_kac_chainsaw":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_KAC";
case "weapon_ameli":
return &"ALIEN_PICKUPS_DESCENT_LOCKER_AMELI";
}
}
mp_alien_last_pillage_init()
{
level.pillageinfo = spawnstruct();
level.pillageinfo.alienattachment_model = "weapon_alien_muzzlebreak";
level.pillageinfo.default_use_time = 1000;
level.pillageinfo.money_stack = "pb_money_stack_01";
level.pillageinfo.attachment_model = "has_spotter_scope";
level.pillageinfo.maxammo_model = "mil_ammo_case_1_open";
level.pillageinfo.flare_model = "mil_emergency_flare_mp";
level.pillageinfo.clip_model = "weapon_baseweapon_clip";
level.pillageinfo.soflam_model = "weapon_soflam";
level.pillageinfo.leash_model = "weapon_knife_iw6";
level.pillageinfo.trophy_model = "mp_trophy_system_folded_iw6";
level.pillageinfo.ui_searching = 1;
level.pillageinfo.easy_attachment = 35;
level.pillageinfo.easy_money = 15;
level.pillageinfo.easy_clip = 20;
level.pillageinfo.easy_specialammo = 20;
level.pillageinfo.easy_locker_key = 5;
level.pillageinfo.easy_intel = 5;
level.pillageinfo.medium_attachment = 35;
level.pillageinfo.medium_explosive = 15;
level.pillageinfo.medium_money = 10;
level.pillageinfo.medium_clip = 10;
level.pillageinfo.medium_specialammo = 10;
level.pillageinfo.medium_leash = 5;
level.pillageinfo.medium_soflam = 5;
level.pillageinfo.medium_locker_key = 5;
level.pillageinfo.medium_intel = 5;
level.pillageinfo.hard_attachment = 35;
level.pillageinfo.hard_explosive = 14;
level.pillageinfo.hard_leash = 10;
level.pillageinfo.hard_maxammo = 10;
level.pillageinfo.hard_specialammo = 11;
level.pillageinfo.hard_money = 5;
level.pillageinfo.hard_soflam = 5;
level.pillageinfo.hard_trophy = 5;
level.pillageinfo.hard_locker_key = 5;
level.pillageinfo.hard_intel = 5;
level.crafting_item_table = "mp/alien/crafting_items.csv";
level.crafting_table_item_index = 0;
level.crafting_table_item_ref = 1;
level.crafting_table_item_name = 2;
level.crafting_table_item_icon = 3;
level.max_crafting_items = 3;
level.crafting_model = "weapon_baseweapon_clip";
level.get_hintstring_for_pillaged_item_func = ::last_get_hintstring_for_pillaged_item_func;
level.get_hintstring_for_item_pickup_func = ::last_get_hintstring_for_item_pickup_func;
level.custom_build_pillageitem_array_func = ::last_build_pillageitem_array_func;
}
last_hint_precache()
{
var_0 = [];
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_AMELI"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_AMELI";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_IMBEL"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_IMBEL";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_K7"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_K7";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_KAC"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_KAC";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_KASTET"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_KASTET";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_MAUL"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_MAUL";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_MAVERICK"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_MAVERICK";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_MK14"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_MK14";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_R5RGP"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_R5RGP";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_RIPPER"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_RIPPER";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_USR"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_USR";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_UTS"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_UTS";
var_0["ALIEN_PICKUPS_DESCENT_PICKUP_VKS"] = &"ALIEN_PICKUPS_DESCENT_PICKUP_VKS";
return var_0;
}
last_enter_area_func( var_0 )
{
if ( !maps\mp\alien\_utility::is_chaos_mode() )
maps\mp\alien\_container_spawn::activate_container_spawners_in_area( var_0 );
}
last_leave_area_func( var_0 )
{
if ( !maps\mp\alien\_utility::is_chaos_mode() )
maps\mp\alien\_container_spawn::deactivate_container_spawners_in_area( var_0 );
}
mp_alien_last_onspawnplayer_func()
{
thread maps\mp\alien\_music_and_dialog_dlc::dlc_vo_init_on_player_spawn();
thread maps\mp\alien\_pillage_intel::intel_on_player_connect();
if ( !isdefined( level.setskillsflag ) )
{
level.setskillsflag = 1;
common_scripts\utility::flag_set( "give_player_abilities" );
}
thread maps\mp\alien\_alien_class_skills_main::assign_skills();
thread maps\mp\alien\_achievement::eggallfoundforpack( 3 );
thread maps\mp\mp_alien_last_weapon::special_gun_watcher();
thread maps\mp\mp_alien_last_weapon::last_grenade_watcher();
thread last_intro_music_play();
}
last_intro_music_play()
{
wait 0.01;
if ( common_scripts\utility::flag_exist( "intro_sequence_complete" ) && !common_scripts\utility::flag( "intro_sequence_complete" ) )
{
if ( !self issplitscreenplayer() || self issplitscreenplayerprimary() )
self playlocalsound( "mus_alien_dlc4_last_intro" );
}
}
last_get_hintstring_for_pillaged_item_func( var_0 )
{
var_0 = "" + var_0;
switch ( var_0 )
{
case "crafting":
return &"ALIEN_CRAFTING_FOUND_CRAFTING_ITEM";
case "locker_key":
return &"ALIEN_PILLAGE_LOCKER_FOUND_LOCKER_KEY";
case "locker_weapon":
return &"ALIEN_PILLAGE_LOCKER_FOUND_LOCKER_WEAPON";
}
}
last_get_hintstring_for_item_pickup_func( var_0 )
{
var_0 = "" + var_0;
switch ( var_0 )
{
case "wire":
return &"ALIEN_CRAFTING_PICKUP_WIRE";
case "amolecular":
return &"ALIEN_CRAFTING_PICKUP_AMOLECULAR";
case "fuse":
return &"ALIEN_CRAFTING_PICKUP_FUSE";
case "pipe":
return &"ALIEN_CRAFTING_PICKUP_PIPE";
case "pressureplate":
return &"ALIEN_CRAFTING_PICKUP_PRESSUREPLATE";
case "nucleicbattery":
return &"ALIEN_CRAFTING_PICKUP_NUCLEICBATTERY";
case "cellbattery":
return &"ALIEN_CRAFTING_PICKUP_CELLBATTERY";
case "liquidbattery":
return &"ALIEN_CRAFTING_PICKUP_LIQUIDBATTERY";
case "tnt":
return &"ALIEN_CRAFTING_PICKUP_TNT";
case "resin":
return &"ALIEN_CRAFTING_PICKUP_RESIN";
case "bbiolum":
return &"ALIEN_CRAFTING_PICKUP_BIOLUM";
case "biolum":
return &"ALIEN_CRAFTING_PICKUP_BIOLUM";
case "locker_key":
return &"ALIEN_PILLAGE_LOCKER_PICKUP_LOCKER_KEY";
case "locker_weapon":
return &"ALIEN_PILLAGE_LOCKER_PICKUP_LOCKER_WEAPON";
case "venomx":
return &"ALIEN_CRAFTING_PICKUP_DISARMED_VENOM";
case "bbluebiolum":
case "bluebiolum":
return &"ALIEN_CRAFTING_PICKUP_BLUEBIOLUM";
case "oorangebiolum":
case "orangebiolum":
return &"ALIEN_CRAFTING_PICKUP_ORANGEBIOLUM";
case "amethystbiolum":
return &"ALIEN_CRAFTING_PICKUP_PURPLEBIOLUM";
case "iw6_aliendlc22_mp":
return &"ALIEN_CRAFTING_PICKUP_PIPEBOMB";
case "stickyflare":
case "viewmodel_flare":
case "iw6_aliendlc21_mp":
case "flare":
return &"ALIEN_CRAFTING_PICKUP_STICKYFLARE";
case "detonator":
return &"ALIEN_CRAFTING_PICKUP_DETONATOR";
case "casing":
return &"ALIEN_CRAFTING_PICKUP_CASING";
case "cortexgel":
return &"ALIEN_CRAFTING_PICKUP_CORTEXGEL";
case "cortexhousing":
return &"ALIEN_CRAFTING_PICKUP_CORTEXHOUSING";
case "substrate":
return &"ALIEN_CRAFTING_PICKUP_SUBSTRATE";
case "iw6_aliendlc31_mp":
return &"ALIEN_CRAFTING_PICKUP_VENOMXGRENADE";
case "iw6_aliendlc32_mp":
return &"ALIEN_CRAFTING_PICKUP_VENOMLXGRENADE";
case "iw6_aliendlc33_mp":
return &"ALIEN_CRAFTING_PICKUP_VENOMFXGRENADE";
case "iw6_aliendlc43_mp":
return &"ALIEN_CRAFTING_PICKUP_CORTEXGRENADE";
}
if ( isdefined( level.level_locker_weapon_pickup_string_func ) )
return [[ level.level_locker_weapon_pickup_string_func ]]( var_0 );
}
last_build_pillageitem_array_func( var_0 )
{
switch ( var_0 )
{
case "easy":
maps\mp\alien\_pillage::build_pillageitem_array( var_0, "crafting", level.pillageinfo.crafting_easy );
break;
case "medium":
maps\mp\alien\_pillage::build_pillageitem_array( var_0, "crafting", level.pillageinfo.crafting_medium );
break;
case "hard":
maps\mp\alien\_pillage::build_pillageitem_array( var_0, "crafting", level.pillageinfo.crafting_hard );
break;
}
level thread maps\mp\alien\_pillage_intel::build_intel_pillageitem_arrays( var_0 );
}
init_weapon_stat_array()
{
level.weaponstats_weaponlist = [];
level.weaponstats_weaponlist["iw6_arkalienr5rgp_mp"] = "iw6_alienDLC33_mp";
level.weaponstats_weaponlist["iw6_arkaliendlc15_mp"] = "iw6_alienDLC15_mp";
level.weaponstats_weaponlist["iw6_arkalienk7_mp"] = "iw6_alienDLC31_mp";
level.weaponstats_weaponlist["iw6_arkaliendlc23_mp"] = "iw6_alienDLC23_mp";
level.weaponstats_weaponlist["iw6_arkalienameli_mp"] = "iw6_alienDLC32_mp";
level.weaponstats_weaponlist["iw6_arkalienkac_mp"] = "iw6_alienkac_mp";
level.weaponstats_weaponlist["iw6_arkalienvks_mp"] = "iw6_alienvks_mp";
level.weaponstats_weaponlist["iw6_arkalienusr_mp"] = "iw6_alienDLC34_mp";
level.weaponstats_weaponlist["iw6_arkalienimbel_mp"] = "iw6_alienimbel_mp";
level.weaponstats_weaponlist["iw6_arkalienmk14_mp"] = "iw6_alienDLC31_mp";
level.weaponstats_weaponlist["iw6_arkalienmaul_mp"] = "iw6_alienmaul_mp";
level.weaponstats_weaponlist["iw6_arkalienuts15_mp"] = "iw6_alienDLC24_mp";
}
last_weapon_stats_override_func( var_0 )
{
if ( isdefined( level.weaponstats_weaponlist[var_0] ) )
return level.weaponstats_weaponlist[var_0];
return var_0;
}
achievement_you_wish_func()
{
maps\mp\alien\_achievement_dlc4::award_you_wish();
}
gas_station_part_1( var_0 )
{
level waittill( "drill_detonated" );
level.gas_station_conduits_completed++;
}
parking_part_1( var_0 )
{
level waittill( "drill_detonated" );
level.parking_conduits_completed++;
}
rooftop_part_1( var_0 )
{
level waittill( "drill_detonated" );
level.rooftop_conduits_completed++;
}
gas_station_blocker( var_0 )
{
maps\mp\mp_alien_last_encounters::do_gas_station_blocker();
}
parking_blocker( var_0 )
{
maps\mp\mp_alien_last_encounters::do_garage_blocker();
}
rooftop_blocker( var_0 )
{
maps\mp\mp_alien_last_encounters::do_rooftops_blocker();
}
last_locker_ark_check_func( var_0, var_1 )
{
if ( maps\mp\alien\_utility::weapon_has_alien_attachment( var_0 ) )
{
var_2 = [ "alienmuzzlebrake" ];
var_1 = maps\mp\alien\_utility::ark_attachment_transfer_to_locker_weapon( var_1, var_2, 1 );
}
return "weapon_" + var_1;
}
dlc_4_offset_locker_trigger_model()
{
if ( isdefined( self.locker_origin ) )
self.pillage_trigger.origin = self.locker_origin;
if ( isdefined( self.locker_angles ) )
self.pillage_trigger.angles = self.locker_angles;
var_0 = ( 0, 0, 20 );
var_1 = ( 0, 0, 13 );
var_2 = ( 0, 0, 90 );
var_3 = ( 0, 0, 6 );
var_4 = ( 0, 0, 0 );
var_5 = getgroundposition( self.pillage_trigger.origin + var_0, 2 );
switch ( self.pillage_trigger.model )
{
case "weapon_rm_22":
self.pillage_trigger hidepart( "tag_barrel_sniper", "weapon_rm_22" );
default:
var_3 = var_1;
var_4 = var_2;
break;
}
var_3 = var_1;
var_4 = var_2;
var_6 = self.pillage_trigger.origin;
var_7 = self.pillage_trigger.angles;
var_8 = self.pillage_trigger.origin;
var_9 = ( 0, 0, 0 );
var_10 = self.pillage_trigger.origin + var_3;
var_11 = var_4;
var_12 = transformmove( var_6, var_7, var_8, var_9, var_10, var_11 );
var_13 = var_12["origin"] - var_5;
var_4 = var_12["angles"];
self.pillage_trigger.origin = var_5 + var_13;
self.pillage_trigger.angles = var_4;
}
last_specific_vo_callouts( var_0 )
{
var_0["last_vo"] = ::playlastvo;
var_0["conduit_attack"] = ::playconduitattackvo;
var_0["cortex_attack"] = ::playcortexattackvo;
var_0["ancestor_close"] = ::playancestorclosevo;
var_0["ancestor_shield_up"] = ::playancestorshieldupvo;
var_0["ancestor_shield_down"] = ::playancestorshielddownvo;
var_0["transition_start"] = ::playtransitionstartvo;
var_0["nx_weapon_schematic"] = ::playnxweaponvo;
var_0["nx_grenade_schematic"] = ::playnxgrenadevo;
return var_0;
}
playlastvo( var_0 )
{
if ( !isdefined( var_0 ) )
return;
var_1 = 10;
var_2 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_2.size < 1 )
return;
var_3 = var_2[0];
if ( !soundexists( var_3.vo_prefix + var_0 ) )
{
iprintln( "Last vo: " + var_3.vo_prefix + var_0 );
return;
}
var_2 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_2.size < 1 )
return;
var_3 = var_2[0];
var_4 = var_3.vo_prefix + var_0;
if ( var_0 == "conduit_nag" || var_0 == "conduit_nag_aliens" )
var_1 = 3;
if ( var_0 == "conduit_halfway" && isdefined( level.current_encounter_info ) && level.current_encounter_info.type == "transition" )
return;
var_3 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_4, undefined, var_1 );
}
playconduitattackvo( var_0 )
{
if ( !isdefined( var_0 ) )
var_0 = "conduit_attack";
var_1 = 30000;
var_2 = gettime();
if ( !isdefined( level.next_conduit_damage_vo_time ) || level.next_conduit_damage_vo_time < var_2 )
{
level.next_conduit_damage_vo_time = var_2 + randomintrange( var_1, var_1 + 5000 );
var_3 = maps\mp\alien\_utility::get_array_of_valid_players();
var_4 = common_scripts\utility::random( var_3 );
if ( !isdefined( var_4 ) )
return;
var_5 = var_4.vo_prefix + var_0;
var_4 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_5, "high", 5 );
}
}
playcortexattackvo()
{
var_0 = "cortex_attack";
var_1 = 30000;
var_2 = gettime();
if ( !isdefined( level.next_conduit_damage_vo_time ) || level.next_conduit_damage_vo_time < var_2 )
{
level.next_conduit_damage_vo_time = var_2 + randomintrange( var_1, var_1 + 5000 );
var_3 = maps\mp\alien\_utility::get_array_of_valid_players();
var_4 = common_scripts\utility::random( var_3 );
if ( !isdefined( var_4 ) )
return;
var_5 = var_4.vo_prefix + var_0;
var_4 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_5, "high", 5 );
}
}
playtransitionstartvo()
{
if ( isdefined( level.first_priority_vo ) )
return;
if ( maps\mp\alien\_utility::is_chaos_mode() )
return;
if ( maps\mp\alien\_utility::is_true( level.intro_v1 ) )
{
var_0 = [ "last_gdf_firstpriority" ];
play_last_vignette_vo( var_0 );
}
level.first_priority_vo = 1;
}
playnxweaponvo( var_0 )
{
level endon( "game_ended" );
if ( isdefined( var_0.first_time_nx_weapon_vo ) )
return;
if ( !isdefined( var_0.first_time_nx_weapon_vo ) )
{
while ( vo_system_is_paused() )
wait 0.1;
maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
while ( maps\mp\alien\_music_and_dialog_dlc::is_vo_system_playing() )
wait 0.1;
wait 0.25;
var_1 = common_scripts\utility::spawn_tag_origin();
var_0.first_time_nx_weapon_vo = 1;
var_2 = "last_gdf_psicannon";
var_1 playsoundtoplayer( var_2, var_0 );
wait( lookupsoundlength( var_2 ) / 1000 );
maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
var_1 delete();
}
}
playnxgrenadevo( var_0 )
{
level endon( "game_ended" );
if ( isdefined( var_0.first_time_nx_grenade_vo ) )
return;
if ( !isdefined( var_0.first_time_nx_grenade_vo ) )
{
while ( vo_system_is_paused() )
wait 0.1;
maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
while ( maps\mp\alien\_music_and_dialog_dlc::is_vo_system_playing() )
wait 0.1;
wait 0.25;
var_1 = common_scripts\utility::spawn_tag_origin();
var_0.first_time_nx_grenade_vo = 1;
var_2 = "last_gdf_disruptergrenades";
var_1 playsoundtoplayer( var_2, var_0 );
wait( lookupsoundlength( var_2 ) / 1000 );
maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
var_1 delete();
}
}
playancestorclosevo()
{
var_0 = 30000;
var_1 = gettime();
if ( !isdefined( level.ancestor_close_vo_time ) || level.ancestor_close_vo_time < var_1 )
{
level.ancestor_close_vo_time = var_1 + randomintrange( var_0, var_0 + 5000 );
var_2 = maps\mp\alien\_utility::get_array_of_valid_players();
var_3 = common_scripts\utility::random( var_2 );
if ( !isdefined( var_3 ) )
return;
var_4 = var_3.vo_prefix + "ancestor_close";
var_3 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_4, undefined, 3 );
}
}
playancestorshieldupvo()
{
var_0 = 30000;
var_1 = gettime();
if ( !isdefined( level.ancestor_shield_vo_time ) || level.ancestor_shield_vo_time < var_1 )
{
level.ancestor_shield_vo_time = var_1 + randomintrange( var_0, var_0 + 5000 );
var_2 = maps\mp\alien\_utility::get_array_of_valid_players();
var_3 = common_scripts\utility::random( var_2 );
if ( !isdefined( var_3 ) )
return;
var_4 = var_3.vo_prefix + "ancestor_shield_up";
var_3 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_4, undefined, 2 );
}
}
playancestorshielddownvo()
{
var_0 = 30000;
var_1 = gettime();
if ( !isdefined( level.ancestor_shield_down_vo_time ) || level.ancestor_shield_down_vo_time < var_1 )
{
level.ancestor_shield_down_vo_time = var_1 + randomintrange( var_0, var_0 + 5000 );
var_2 = maps\mp\alien\_utility::get_array_of_valid_players();
var_3 = common_scripts\utility::random( var_2 );
if ( !isdefined( var_3 ) )
return;
var_4 = var_3.vo_prefix + "ancestor_shield_down";
var_3 maps\mp\alien\_music_and_dialog_dlc::play_vo_on_player( var_4, undefined, 1 );
}
}
play_last_vignette_player_vo( var_0 )
{
if ( self.sessionstate != "playing" )
return;
if ( !soundexists( var_0 ) )
{
wait 0.1;
return;
}
foreach ( var_2 in level.players )
{
if ( var_2 issplitscreenplayer() && !var_2 issplitscreenplayerprimary() )
continue;
if ( var_2 == self )
{
if ( maps\mp\alien\_music_and_dialog::alias_2d_version_exists( var_2, var_0 ) )
var_2 playlocalsound( maps\mp\alien\_music_and_dialog::get_alias_2d_version( var_2, var_0 ) );
else
var_2 playlocalsound( var_0 );
continue;
}
self playsoundtoplayer( var_0, var_2 );
}
wait( lookupsoundlength( var_0 ) / 1000 );
}
play_last_vignette_vo( var_0, var_1, var_2 )
{
level endon( "game_ended" );
while ( vo_system_is_paused() )
wait 0.1;
maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
while ( maps\mp\alien\_music_and_dialog_dlc::is_vo_system_playing() )
wait 0.1;
wait 0.25;
play_vignette_vo_array( var_0, var_1 );
maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
play_vignette_vo_array( var_0, var_1 )
{
level endon( "game_ended" );
foreach ( var_3 in var_0 )
{
if ( !isdefined( var_3 ) )
continue;
if ( isdefined( var_1 ) && common_scripts\utility::flag( var_1 ) )
break;
if ( !soundexists( var_3 ) )
{
iprintln( "last story vo: " + var_3 );
continue;
}
var_4 = lookupsoundlength( var_3 ) / 1000;
thread play_global_vo( var_3 );
wait( var_4 );
}
}
play_cross_vignette_vo( var_0 )
{
level endon( "game_ended" );
while ( vo_system_is_paused() )
wait 0.1;
maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
while ( maps\mp\alien\_music_and_dialog_dlc::is_vo_system_playing() )
wait 0.1;
wait 0.25;
play_cross_vo( var_0 );
maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
play_cross_vo( var_0 )
{
level endon( "game_ended" );
if ( !isdefined( var_0 ) )
return;
if ( !isdefined( level.dr_cross ) )
return;
if ( !soundexists( var_0 ) )
{
iprintln( "cross vo missing: " + var_0 );
return;
}
var_1 = lookupsoundlength( var_0 ) / 1000;
level.dr_cross playsound( var_0 );
wait( var_1 );
}
play_global_vo( var_0 )
{
foreach ( var_2 in level.players )
{
if ( isdefined( var_2 ) )
{
var_2 playsound( var_0 );
break;
}
}
}
vo_system_is_paused()
{
foreach ( var_1 in level.players )
{
if ( var_1 maps\mp\alien\_music_and_dialog::is_vo_system_paused() )
return 1;
}
return 0;
}
last_start_vo()
{
level endon( "kill_start_vo" );
while ( !isdefined( level.players ) )
wait 0.1;
if ( maps\mp\alien\_utility::is_chaos_mode() )
return;
level thread set_flag_when_players_leave_base();
wait 5.0;
if ( randomint( 2 ) > 0 )
{
var_0 = [ "last_gdf_restorepower" ];
play_last_vignette_vo( var_0 );
wait 0.5;
var_0 = [ "last_gdf_6powerconduits" ];
play_last_vignette_vo( var_0 );
wait 0.5;
var_0 = [ "last_gdf_cantpreplaunch" ];
play_last_vignette_vo( var_0 );
wait 0.5;
var_0 = [ "last_gdf_goodluck" ];
play_last_vignette_vo( var_0 );
}
else
{
level.intro_v1 = 1;
var_0 = [ "last_gdf_nosign" ];
play_last_vignette_vo( var_0 );
wait 0.5;
var_0 = [ "last_gdf_sitesurrounded", "last_gdf_goodluck" ];
play_last_vignette_vo( var_0 );
}
level thread last_start_nag_vo();
}
last_start_nag_vo()
{
level endon( "kill_start_vo" );
var_0 = 30;
var_1 = 20;
wait( var_0 );
var_2 = [];
for ( var_3 = [ "last_gdf_exitthebase", "last_gdf_getmoving" ]; !common_scripts\utility::flag( "players_left_starting_area" ); var_1 = var_1 + 10 )
{
var_4 = common_scripts\utility::random( var_3 );
var_2 = [ var_4 ];
play_last_vignette_vo( var_2 );
wait( var_1 );
}
}
last_nag_vo_until_flag( var_0, var_1 )
{
var_2 = 30;
var_3 = 20;
wait( var_2 );
while ( !common_scripts\utility::flag( var_1 ) )
{
play_last_vignette_vo( var_0 );
wait( var_3 );
var_3 = var_3 + 10;
}
}
play_conduit_encounter_complete_vo()
{
level endon( "drill_planted" );
level endon( "stop_post_hive_vo" );
level notify( "dlc_vo_notify", "last_vo", "encounter_cleared" );
wait 5;
var_0 = 0;
while ( maps\mp\agents\_agent_utility::getactiveagentsoftype( "alien" ).size > 0 )
{
wait 1;
var_0++;
if ( var_0 > 15 )
break;
}
thread maps\mp\mp_alien_last_encounters::encounter_end_conduit_number_vo();
}
play_transition_encounter_complete_vo()
{
level endon( "drill_planted" );
level endon( "stop_post_hive_vo" );
var_0 = 0;
while ( maps\mp\agents\_agent_utility::getactiveagentsoftype( "alien" ).size > 0 )
{
wait 1;
var_0++;
if ( var_0 > 15 )
break;
}
if ( var_0 <= 15 )
level notify( "dlc_vo_notify", "last_vo", "area_cleared" );
wait 5;
level thread play_conduit_nag_vo();
}
play_conduit_nag_vo()
{
level endon( "drill_planted" );
level endon( "stop_post_hive_vo" );
if ( isdefined( level.num_conduit_completed ) && level.num_conduit_completed > 5 )
return;
var_0 = 30;
var_1 = 20;
wait( var_0 );
var_2 = [];
var_3 = [ "conduit_nag", "conduit_nag_aliens" ];
for (;;)
{
var_4 = common_scripts\utility::random( var_3 );
level notify( "dlc_vo_notify", "last_vo", var_4 );
wait( var_1 );
var_1 = var_1 + 10;
}
}
remove_conduit_vo_once_complete()
{
foreach ( var_1 in level.players )
{
var_1 thread remove_conduit_vo_on_player( "conduit_attacked" );
var_1 thread remove_conduit_vo_on_player( "conduit_repaired" );
var_1 thread remove_conduit_vo_on_player( "conduit_halfway" );
var_1 thread remove_conduit_vo_on_player( "conduit_damaged" );
}
}
remove_conduit_vo_on_player( var_0 )
{
foreach ( var_3, var_2 in level.alien_vo_priority_level )
maps\mp\alien\_music_and_dialog::remove_vo_data( var_0, var_2 );
}
set_flag_when_players_leave_base()
{
if ( !common_scripts\utility::flag_exist( "players_left_starting_area" ) )
common_scripts\utility::flag_init( "players_left_starting_area" );
var_0 = getent( "main_base", "targetname" );
while ( !common_scripts\utility::flag( "players_left_starting_area" ) )
{
foreach ( var_2 in level.players )
{
if ( !var_2 istouching( var_0 ) )
common_scripts\utility::flag_set( "players_left_starting_area" );
}
wait 0.25;
}
}
last_should_play_next_hive_vo_func()
{
return 0;
}
dlc4_drill_damage_adjust_function( var_0, var_1, var_2 )
{
if ( isdefined( var_2 ) && var_2 == "alien_ancestor_mp" )
{
var_3 = 10;
level.drill_last_health = level.drill_last_health - var_3;
}
else if ( isdefined( var_0 ) && isdefined( var_1 ) && isdefined( var_1.alien_type ) && var_1.alien_type != "ancestor" )
{
var_0 = int( var_0 * level.drill_damage_scalar );
level.drill_last_health = level.drill_last_health - var_0;
}
}
set_spawn_table()
{
if ( maps\mp\alien\_utility::is_chaos_mode() )
set_chaos_spawn_table();
else
{
if ( maps\mp\alien\_utility::is_hardcore_mode() )
{
set_hardcore_extinction_spawn_table();
return;
}
set_regular_extinction_spawn_table();
}
}
set_chaos_spawn_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
{
switch ( maps\mp\alien\_utility::get_chaos_area() )
{
case "main_base":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_main_base_sp.csv";
break;
case "gas_station_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_gas_station_outpost_sp.csv";
break;
case "parking_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_parking_outpost_sp.csv";
break;
case "rooftop_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_rooftop_outpost_sp.csv";
break;
case "left_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_left_transition_sp.csv";
break;
case "upper_left_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_upper_left_transition_sp.csv";
break;
case "middle_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_middle_transition_sp.csv";
break;
case "upper_right_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_upper_right_transition_sp.csv";
break;
case "right_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_right_transition_sp.csv";
break;
}
}
else
{
switch ( maps\mp\alien\_utility::get_chaos_area() )
{
case "main_base":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_main_base_mp.csv";
break;
case "gas_station_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_gas_station_outpost_mp.csv";
break;
case "parking_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_parking_outpost_mp.csv";
break;
case "rooftop_outpost":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_rooftop_outpost_mp.csv";
break;
case "left_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_left_transition_mp.csv";
break;
case "upper_left_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_upper_left_transition_mp.csv";
break;
case "middle_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_middle_transition_mp.csv";
break;
case "upper_right_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_upper_right_transition_mp.csv";
break;
case "right_transition":
level.alien_cycle_table = "mp/alien/chaos_spawn_last_right_transition_mp.csv";
break;
}
}
}
set_hardcore_extinction_spawn_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.alien_cycle_table_hardcore = "mp/alien/cycle_spawn_last_hardcore_sp.csv";
else
level.alien_cycle_table_hardcore = "mp/alien/cycle_spawn_last_hardcore_mp.csv";
}
set_regular_extinction_spawn_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.alien_cycle_table = "mp/alien/cycle_spawn_last_sp.csv";
else
level.alien_cycle_table = "mp/alien/cycle_spawn_last_mp.csv";
}
set_container_spawn_table()
{
if ( maps\mp\alien\_utility::is_hardcore_mode() )
set_hardcore_container_spawn_table();
else
set_regular_container_spawn_table();
}
set_hardcore_container_spawn_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.container_spawn_table = "mp/alien/last_container_spawn_hardcore_sp.csv";
else
level.container_spawn_table = "mp/alien/last_container_spawn_hardcore.csv";
}
set_regular_container_spawn_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.container_spawn_table = "mp/alien/last_container_spawn_sp.csv";
else
level.container_spawn_table = "mp/alien/last_container_spawn.csv";
}
set_alien_definition_table()
{
if ( maps\mp\alien\_utility::is_hardcore_mode() )
set_hardcore_alien_definition_table();
else
set_regular_alien_definition_table();
}
set_regular_alien_definition_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.default_alien_definition = "mp/alien/last_alien_definition_sp.csv";
else
level.default_alien_definition = "mp/alien/last_alien_definition.csv";
}
set_hardcore_alien_definition_table()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
level.default_alien_definition = "mp/alien/last_alien_definition_hardcore_sp.csv";
else
level.default_alien_definition = "mp/alien/last_alien_definition_hardcore.csv";
}
chaos_init()
{
maps\mp\alien\_chaos::init();
register_egg_default_loc();
level thread chaos_initial_entity_setup();
}
chaos_initial_entity_setup()
{
level endon( "game_ended" );
level waittill( "spawn_nondeterministic_entities" );
maps\mp\mp_alien_last_final_battle::initial_entity_setup();
}
register_egg_default_loc()
{
switch ( maps\mp\alien\_utility::get_chaos_area() )
{
case "main_base":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "gas_station_outpost":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "parking_outpost":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "rooftop_outpost":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "left_transition":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "upper_left_transition":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "middle_transition":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "upper_right_transition":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
case "right_transition":
maps\mp\alien\_chaos::set_egg_default_loc( ( -116, 2240, -1264 ) );
break;
}
}
last_player_initial_spawn_loc_override()
{
if ( maps\mp\alien\_utility::is_chaos_mode() )
chaos_player_initial_spawn_loc_override();
else
regular_player_initial_spawn_loc_override();
}
regular_player_initial_spawn_loc_override()
{
if ( !isdefined( maps\mp\alien\_utility::get_player_initial_spawn_origin() ) )
return;
self.forcespawnorigin = maps\mp\alien\_utility::get_player_initial_spawn_origin();
self.forcespawnangles = maps\mp\alien\_utility::get_player_initial_spawn_angles();
}
chaos_player_initial_spawn_loc_override()
{
var_0 = [];
var_1 = [];
switch ( maps\mp\alien\_utility::get_chaos_area() )
{
case "main_base":
var_0 = [ ( 546, -1457, 36 ), ( 719, -1459, 36 ), ( 390, -1491, 36 ), ( 232, -1501, 36 ) ];
var_1 = [ ( 0, 90, 0 ), ( 0, 90, 0 ), ( 0, 90, 0 ), ( 0, 90, 0 ) ];
break;
case "gas_station_outpost":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "parking_outpost":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "rooftop_outpost":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "left_transition":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "upper_left_transition":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "middle_transition":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "upper_right_transition":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
case "right_transition":
var_0 = [ ( -2936, -161, 1346 ), ( -3082, -158, 1346 ), ( -3111, -285, 1372 ), ( -2917, -283, 1372 ) ];
var_1 = [ ( 0, 114, 0 ), ( 0, 55, 0 ), ( 0, 55, 0 ), ( 0, 102, 0 ) ];
break;
}
self.forcespawnorigin = var_0[level.players.size];
self.forcespawnangles = var_1[level.players.size];
}
last_recipe_setup_func()
{
return [ "tesla", "grenade", "trap", "weapon", "sticky", "vgrenade", "cortexgrenade", "cortexweapon" ];
}
setup_last_offhands()
{
while ( !isdefined( level.offhand_secondaries ) )
wait 1;
level.offhand_secondaries = common_scripts\utility::array_add( level.offhand_secondaries, "iw6_aliendlc21_mp" );
level.offhand_explosives = common_scripts\utility::array_add( level.offhand_explosives, "iw6_aliendlc43_mp" );
level.offhand_explosives = common_scripts\utility::array_add( level.offhand_explosives, "iw6_aliendlc22_mp" );
level.offhand_explosives = common_scripts\utility::array_add( level.offhand_explosives, "iw6_aliendlc31_mp" );
level.offhand_explosives = common_scripts\utility::array_add( level.offhand_explosives, "iw6_aliendlc32_mp" );
level.offhand_explosives = common_scripts\utility::array_add( level.offhand_explosives, "iw6_aliendlc33_mp" );
}
last_randombox_item_check( var_0 )
{
if ( !isdefined( var_0 ) )
return;
switch ( var_0 )
{
case "flare":
case "trophy":
self takeweapon( "iw6_aliendlc21_mp" );
return;
}
}
last_alien_death_override_func( var_0 )
{
switch ( maps\mp\alien\_utility::get_alien_type() )
{
case "bomber":
thread maps\mp\agents\alien\_alien_bomber::bomber_death( self.origin );
break;
}
}
last_cangive_weapon_handler_func( var_0, var_1, var_2, var_3 )
{
var_4 = 0;
if ( self hasweapon( "aliensoflam_mp" ) )
var_4++;
if ( self.hasriotshield || self.hasriotshieldequipped )
var_4++;
var_5 = self getcurrentweapon();
var_6 = 0;
if ( var_5 == "iw6_aliendlc41_mp" )
var_6 = 1;
if ( var_6 && var_0.size + 1 > var_3 + var_4 )
return 0;
return 1;
}
last_give_weapon_handler_func( var_0 )
{
var_1 = self getcurrentweapon();
if ( var_1 == "iw6_aliendlc41_mp" )
return 0;
return undefined;
}
setup_incompatible_list()
{
level.ammoincompatibleweaponslist = [];
level.ammoincompatibleweaponslist[0] = "iw5_alienriotshield_mp";
level.ammoincompatibleweaponslist[1] = "iw5_alienriotshield1_mp";
level.ammoincompatibleweaponslist[2] = "iw5_alienriotshield2_mp";
level.ammoincompatibleweaponslist[3] = "iw5_alienriotshield3_mp";
level.ammoincompatibleweaponslist[4] = "iw5_alienriotshield4_mp";
level.ammoincompatibleweaponslist[5] = "iw6_alienminigun_mp";
level.ammoincompatibleweaponslist[6] = "iw6_alienminigun1_mp";
level.ammoincompatibleweaponslist[7] = "iw6_alienminigun2_mp";
level.ammoincompatibleweaponslist[8] = "iw6_alienminigun3_mp";
level.ammoincompatibleweaponslist[9] = "iw6_alienminigun4_mp";
level.ammoincompatibleweaponslist[10] = "iw6_alienmk32_mp";
level.ammoincompatibleweaponslist[11] = "iw6_alienmk321_mp";
level.ammoincompatibleweaponslist[12] = "iw6_alienmk322_mp";
level.ammoincompatibleweaponslist[13] = "iw6_alienmk323_mp";
level.ammoincompatibleweaponslist[14] = "iw6_alienmk324_mp";
level.ammoincompatibleweaponslist[15] = "iw6_aliendlc41_mp";
}
last_custom_death( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
{
var_7 = isdefined( var_1 ) && isplayer( var_1 );
if ( var_7 && isdefined( var_4 ) && maps\mp\alien\_utility::weapon_has_alien_attachment( var_4 ) && var_3 != "MOD_MELEE" && !maps\mp\alien\_utility::is_true( level.easter_egg_lodge_sign_active ) )
{
playfx( level._effect["alien_ark_gib"], self.origin + ( 0, 0, 32 ) );
if ( maps\mp\alien\_utility::is_true( level.should_use_custom_death_func ) )
playfx( level._effect["soul_escape"], self.origin + ( 0, 0, 32 ) );
return 1;
}
if ( maps\mp\alien\_utility::is_true( level.should_use_custom_death_func ) )
{
if ( var_7 || isdefined( var_1.owner ) && isplayer( var_1.owner ) )
{
playfx( level._effect["soul_escape"], self.origin + ( 0, 0, 32 ) );
return 0;
}
}
return 0;
}