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

4957 lines
126 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: recovery_utility.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 265
* Decompile Time: 3900 ms
* Timestamp: 4/22/2024 2:34:57 AM
*******************************************************************/
//Function Number: 1
play_rumble_funeral_gun_salute()
{
level.player common_scripts\utility::delaycall(0.8,::playrumbleonentity,"damage_light");
level.player common_scripts\utility::delaycall(4.9,::playrumbleonentity,"damage_light");
level.player common_scripts\utility::delaycall(8.5,::playrumbleonentity,"heavy_3s");
}
//Function Number: 2
play_rumble_training_s1_mute_breach()
{
level.player common_scripts\utility::delaycall(1.8,::playrumbleonentity,"heavy_1s");
level.player common_scripts\utility::delaycall(2.2,::playrumbleonentity,"heavy_1s");
}
//Function Number: 3
play_rumble_training_s1_reload_malfunction()
{
level.player common_scripts\utility::delaycall(0.5,::playrumbleonentity,"heavy_3s");
}
//Function Number: 4
play_rumble_training_s1_president_load_fail()
{
level.player common_scripts\utility::delaycall(2.7,::playrumbleonentity,"heavy_3s");
level.player common_scripts\utility::delaycall(5.8,::playrumbleonentity,"light_1s");
level.player common_scripts\utility::delaycall(6.8,::playrumbleonentity,"heavy_1s");
wait(21);
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
level.player.rumble_entity.intensity = 0.1;
level.player.rumble_entity common_scripts\utility::delaycall(0.5,::delete);
wait(12);
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
level.player.rumble_entity.intensity = 0.08;
level.player.rumble_entity common_scripts\utility::delaycall(1.5,::delete);
}
//Function Number: 5
play_rumble_elevator()
{
wait(1.4);
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
level.player.rumble_entity.intensity = 0.08;
wait(15);
level.player stoprumble("steady_rumble");
level.player.rumble_entity delete();
}
//Function Number: 6
play_rumble_jeep_ride()
{
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
level.player.rumble_entity.intensity = 0.088;
wait(94);
level.player.rumble_entity.intensity = 0.08;
wait(14);
level.player stoprumble("steady_rumble");
level.player.rumble_entity delete();
wait(1.3);
level.player playrumbleonentity("heavy_1s");
wait(0.3);
level.player stoprumble("heavy_1s");
}
//Function Number: 7
play_rumble_training_s2_president_load()
{
wait(1.5);
level.player playrumbleonentity("heavy_1s");
wait(0.5);
level.player stoprumble("heavy_1s");
wait(6.3);
level.player playrumbleonentity("heavy_1s");
wait(0.2);
level.player stoprumble("heavy_1s");
wait(0.6);
level.player playrumbleonentity("heavy_1s");
wait(0.1);
level.player stoprumble("heavy_1s");
wait(0.1);
level.player playrumbleonentity("heavy_1s");
wait(0.1);
level.player stoprumble("heavy_1s");
}
//Function Number: 8
play_rumble_walker_tank()
{
for(var_00 = 1;var_00 < 10;var_00++)
{
level waittill("titan_rumble");
if(var_00 == 3 || var_00 == 4 || var_00 == 5 || var_00 == 6 || var_00 == 7)
{
level.player playrumbleonentity("heavy_1s");
wait(0.75);
level.player stoprumble("heavy_1s");
}
}
}
//Function Number: 9
play_rumble_arm_repair()
{
common_scripts\utility::flag_wait("tour_exo_arm");
wait(3.6);
level.player playrumbleonentity("steady_rumble");
wait(0.9);
level.player stoprumble("steady_rumble");
wait(1.7);
level.player playrumbleonentity("steady_rumble");
wait(0.9);
level.player stoprumble("steady_rumble");
wait(3.4);
level.player playrumbleonentity("damage_light");
wait(0.7);
level.player stoprumble("damage_light");
common_scripts\utility::flag_wait("arm_repair_attempt_1");
common_scripts\utility::flag_wait("arm_repair_attempt_2");
common_scripts\utility::flag_wait("arm_repair_attempt_3");
common_scripts\utility::flag_waitopen("arm_repair_attempt_3");
wait(2.2);
level.player playrumbleonentity("damage_light");
wait(0.5);
level.player stoprumble("damage_light");
}
//Function Number: 10
play_camera_shake_tour_ride()
{
var_00 = 0.5;
var_01 = 11;
var_02 = 30.3;
var_03 = 7.3;
var_04 = 10.2;
var_05 = 12.5;
var_06 = 11.2;
var_07 = 9.3;
var_08 = 3;
var_09 = 0.5;
var_0A = 1.5;
var_0B = 1.25;
var_0C = 1;
var_0D = 0;
var_0E = 1;
var_0F = 0.8;
var_10 = 0.6;
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_00,0,0,0,var_0E,var_0F,var_10);
wait(var_00);
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_01,0,0,0,var_0E,var_0F,var_10);
wait(var_01);
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_02,0,0,0,var_0E,var_0F,var_10);
wait(var_02);
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_03,0,0,0,var_0E,var_0F,var_10);
wait(var_03);
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_04,0,0,0,var_0E,var_0F,var_10);
wait(var_04);
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_05,0,0,0,var_0E,var_0F,var_10);
wait(var_05);
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_06,0,0,0,var_0E,var_0F,var_10);
wait(var_06);
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_07,0,0,0,var_0E,var_0F,var_10);
wait(var_07);
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_08,0,0,0,var_0E,var_0F,var_10);
wait(var_08);
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_09,0,0,0,var_0E,var_0F,var_10);
wait(var_09);
}
//Function Number: 11
mission_out_of_bounds_fail()
{
common_scripts\utility::flag_wait("training_player_left_encounter");
if(!common_scripts\utility::flag("flag_player_using_drone"))
{
common_scripts\utility::flag_clear("training_out_of_bounds_warning");
if(!common_scripts\utility::flag("training_round_2"))
{
if(!common_scripts\utility::flag("training_s1_end_anim_started"))
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_ABANDONED");
}
else
{
setdvar("ui_deadquote",&"RECOVERY_OBJECTIVE_FAIL_JEEP_BOARD");
}
}
else if(!common_scripts\utility::flag("training_s2_golf_course_vehicles"))
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_ABANDONED");
}
else
{
setdvar("ui_deadquote",&"RECOVERY_OBJECTIVE_FAIL_JEEP_BOARD");
}
setblur(30,2);
maps\_utility::missionfailedwrapper();
}
}
//Function Number: 12
mission_warn_out_of_bounds_fail()
{
level endon("training_player_left_encounter");
for(;;)
{
common_scripts\utility::flag_wait("training_out_of_bounds_warning");
if(!common_scripts\utility::flag("flag_player_using_drone"))
{
thread maps\_utility::display_hint("warning_prompt");
}
common_scripts\utility::flag_waitopen("training_out_of_bounds_warning");
}
}
//Function Number: 13
bloody_death(param_00,param_01)
{
self endon("death");
if(!issentient(self) || !isalive(self))
{
return;
}
if(isdefined(self.bloody_death) && self.bloody_death)
{
return;
}
self.bloody_death = 1;
if(isdefined(param_00))
{
wait(randomfloat(param_00));
}
var_02 = [];
var_02[0] = "j_hip_le";
var_02[1] = "j_hip_ri";
var_02[2] = "j_head";
var_02[3] = "j_spine4";
var_02[4] = "j_elbow_le";
var_02[5] = "j_elbow_ri";
var_02[6] = "j_clavicle_le";
var_02[7] = "j_clavicle_ri";
var_03 = getdvarint("cg_fov");
for(var_04 = 0;var_04 < 3 + randomint(5);var_04++)
{
var_05 = randomintrange(0,var_02.size);
thread bloody_death_fx(var_02[var_05],undefined);
wait(randomfloat(0.1));
if(isdefined(param_01) && isai(param_01) && isalive(param_01))
{
if(!level.player worldpointinreticle_circle(param_01.origin,var_03,500))
{
param_01 shootblank();
}
}
}
self dodamage(self.health + 50,self.origin);
}
//Function Number: 14
bloody_death_fx(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = level._effect["flesh_hit"];
}
playfxontag(param_01,self,param_00);
}
//Function Number: 15
delete_on_notify(param_00)
{
if(!isdefined(param_00))
{
param_00 = "level_cleanup";
}
self endon("death");
level waittill(param_00);
if(common_scripts\utility::flag_exist("_stealth_spotted"))
{
common_scripts\utility::flag_waitopen("_stealth_spotted");
}
if(isdefined(self.magic_bullet_shield) && self.magic_bullet_shield)
{
maps\_utility::stop_magic_bullet_shield();
}
self delete();
}
//Function Number: 16
enable_jump_jet_pathing()
{
if(issubstr(self.classname,"jump"))
{
self.canjumppath = 1;
}
}
//Function Number: 17
recovery_thermal_manager()
{
self thermaldrawenable();
}
//Function Number: 18
training_set_up_player()
{
common_scripts\utility::flag_clear("flag_disable_exo");
level.player allowcrouch(1);
level.player allowprone(1);
level.player allowjump(1);
level.player giveweapon("iw5_bal27_sp_silencer01_variablereddot");
level.player giveweapon("iw5_titan45_sp_silencerpistol");
level.player switchtoweapon("iw5_bal27_sp_silencer01_variablereddot");
level.player enablehybridsight("iw5_bal27_sp_silencer01_variablereddot",1);
if(level.nextgen)
{
level.player overrideviewmodelmaterial("m/mtl_bal27_base_black","m/mtl_bal27_base_black_logo");
}
else
{
level.player overrideviewmodelmaterial("mq/mtl_bal27_base_black","mq/mtl_bal27_base_black_logo");
}
level.player enableweapons();
level.player allowfire(1);
level.player allowads(1);
level.player allowmelee(1);
maps\_variable_grenade::give_player_variable_grenade();
maps\_variable_grenade::set_variable_grenades_with_no_switch("tracking_grenade_var","paint_grenade_var");
}
//Function Number: 19
training_s2_start_set_up_player()
{
common_scripts\utility::flag_clear("flag_disable_exo");
common_scripts\utility::flag_set("flag_enable_overdrive");
level.player allowcrouch(1);
level.player allowprone(1);
level.player allowjump(1);
level.player enableweapons();
level.player allowfire(1);
level.player allowads(1);
level.player allowmelee(1);
maps\_variable_grenade::give_player_variable_grenade();
}
//Function Number: 20
training_s1_squad_allow_run()
{
if(isalive(level.ally_squad_member_1))
{
level.ally_squad_member_1 allowedstances("prone","crouch","stand");
}
if(isalive(level.ally_squad_member_2))
{
level.ally_squad_member_2 allowedstances("prone","crouch","stand");
}
if(isalive(level.ally_squad_member_4))
{
level.ally_squad_member_4 allowedstances("prone","crouch","stand");
}
if(isalive(level.joker))
{
level.joker allowedstances("prone","crouch","stand");
}
if(isalive(level.ally_squad_member_3))
{
level.ally_squad_member_3 allowedstances("prone","crouch","stand");
}
}
//Function Number: 21
training_s1_windy_trees()
{
var_00 = getentarray("windy_trees","targetname");
foreach(var_02 in var_00)
{
var_02 thread training_s1_windy_trees_think();
}
}
//Function Number: 22
training_s1_windy_trees_think()
{
wait(randomfloatrange(1.5,2.85));
while(common_scripts\utility::flag("training_s1_enable_living_room") == 0)
{
var_00 = self.angles;
var_01 = randomintrange(1,3);
if(var_01 == 2)
{
var_02 = 6;
}
else
{
var_02 = -6;
}
self rotateto(var_00 + (var_02,0,0),4,3,1);
wait(4);
self rotateto(var_00,4,3,1);
wait(3.85);
}
}
//Function Number: 23
player_control_on()
{
level.player unlink();
level.player enableweapons();
level.player allowstand(1);
level.player allowcrouch(1);
level.player allowprone(1);
level.player allowsprint(1);
}
//Function Number: 24
training_s1_opening_guy_think(param_00,param_01)
{
self endon("death");
var_02 = common_scripts\utility::getstruct(param_00,"targetname");
self forceteleport(var_02.origin,var_02.angles);
self setgoalpos(self.origin);
self allowedstances("crouch");
maps\_stealth_utility::stealth_plugin_basic();
maps\_stealth_utility::stealth_plugin_accuracy();
maps\_stealth_utility::stealth_plugin_smart_stance();
maps\_utility::forceuseweapon("iw5_bal27_sp_silencer01_variablereddot","primary");
maps\_utility::disable_surprise();
if(!isdefined(level.allies_s1))
{
level.allies_s1 = [];
}
level.allies_s1 = common_scripts\utility::array_add(level.allies_s1,self);
common_scripts\utility::flag_wait(param_01);
if(isdefined(self.magic_bullet_shield))
{
maps\_utility::stop_magic_bullet_shield();
}
bloody_death();
}
//Function Number: 25
training_s1_starting_enemies_think(param_00,param_01,param_02)
{
self endon("death");
thread attach_flashlight_on_gun();
thread maps\_utility::set_battlechatter(0);
maps\_utility::disable_long_death();
thread training_s1_start_stealth_watch(param_00);
thread training_s1_starting_enemies_alerted(param_00);
common_scripts\utility::flag_wait(param_01);
wait(randomfloatrange(0.5,1.5));
bloody_death();
}
//Function Number: 26
training_s1_start_stealth_watch(param_00)
{
self endon("death");
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
wait(2);
thread training_s1_alert();
common_scripts\utility::flag_set(param_00);
}
//Function Number: 27
training_s1_starting_enemies_alerted(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
self notify("alerted");
thread maps\_utility::set_battlechatter(1);
maps\_utility::player_seek();
}
//Function Number: 28
training_s1_sniper_enemies_think(param_00,param_01,param_02)
{
self endon("death");
self.health = 1;
attach_flashlight_on_gun();
maps\_utility::set_battlechatter(0);
thread training_s1_start_stealth_watch(param_00);
common_scripts\utility::flag_wait(param_00);
self notify("alerted");
maps\_utility::set_battlechatter(1);
common_scripts\utility::flag_wait(param_01);
wait(randomfloatrange(0.5,1.5));
bloody_death();
}
//Function Number: 29
training_s1_starting_enemies_charge(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
maps\_utility::player_seek();
}
//Function Number: 30
training_s1_surprise_enemy_think()
{
self endon("death");
maps\_utility::disable_bulletwhizbyreaction();
if(!maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
{
maps\_utility::ent_flag_init("_stealth_behavior_asleep");
}
maps\_utility::ent_flag_set("_stealth_behavior_asleep");
self.ignoreall = 1;
var_00 = self.health;
thread maps\_utility::magic_bullet_shield();
self.ignorerandombulletdamage = 1;
maps\_utility::disable_long_death();
thread attach_flashlight_on_gun();
maps\_utility::set_battlechatter(0);
thread training_s1_surprise_enemy_alert(var_00);
common_scripts\utility::flag_wait("flag_training_s1_surprise_enemy_alert");
maps\_utility::enable_bulletwhizbyreaction();
if(isdefined(self.magic_bullet_shield))
{
thread maps\_utility::stop_magic_bullet_shield();
self.noragdoll = undefined;
}
self.ignoreall = 0;
self.health = var_00;
self.ignorerandombulletdamage = 0;
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
{
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
}
}
//Function Number: 31
training_s1_surprise_enemy_alert(param_00)
{
self endon("death");
common_scripts\utility::flag_wait("training_s1_start_alerted");
maps\_utility::enable_bulletwhizbyreaction();
if(isdefined(self.magic_bullet_shield))
{
thread maps\_utility::stop_magic_bullet_shield();
self.noragdoll = undefined;
}
self.ignoreall = 0;
self.health = param_00;
self.ignorerandombulletdamage = 0;
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
{
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
}
self notify(" alerted");
maps\_utility::player_seek();
}
//Function Number: 32
training_s1_surprise_enemy_go()
{
wait(3);
self.health = 1;
if(isdefined(self.magic_bullet_shield))
{
thread maps\_utility::stop_magic_bullet_shield();
}
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
{
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
}
}
//Function Number: 33
training_surprise_enemy_move_to_patio(param_00)
{
self endon("death");
if(isdefined(param_00))
{
self.goalradius = 8;
maps\_utility::set_forcegoal();
maps\_utility::set_goal_node(param_00);
self waittill("goal");
maps\_utility::unset_forcegoal();
self.ignoreall = 0;
}
}
//Function Number: 34
training_s1_alert_check()
{
level endon("training_s1_start_alerted");
level endon("training_s1_clear_initial_spawn");
common_scripts\utility::flag_wait("flag_training_s1_alert_starting_enemies");
thread training_s1_alert();
}
//Function Number: 35
training_s1_alert()
{
common_scripts\utility::flag_set("training_s1_start_alerted");
common_scripts\utility::flag_set("training_s1_snipers_attack");
common_scripts\utility::flag_set("flag_vo_training_s1_joker_spotted_us");
level notify("training_s1_start_enemies_alert");
thread training_s1_set_squad_active_and_target();
thread training_s1_squad_allow_run();
common_scripts\utility::flag_set("flag_obj_rescue1_start_clear");
maps\_utility::waittill_aigroupcount("training_s1_enemies_start",2);
common_scripts\utility::flag_set("training_s1_clear_initial_spawn");
maps\_utility::waittill_aigroupcleared("training_s1_enemies_start");
common_scripts\utility::flag_set("training_s1_start_alerted_enemies_dead");
common_scripts\utility::flag_set("training_s1_clear_initial_spawn");
wait(1);
common_scripts\utility::flag_set("training_s1_prepare_breach_room");
common_scripts\utility::flag_set("flag_obj_rescue1_enter");
thread training_s1_set_squad_passive_and_ignore();
}
//Function Number: 36
training_s1_monitor_surprise_enemy_death()
{
self waittill("death");
wait(2);
if(common_scripts\utility::flag("flag_vo_training_s1_joker_got_him") == 0)
{
common_scripts\utility::flag_set("flag_vo_training_s1_joker_good_kill");
}
}
//Function Number: 37
training_s1_kill_surprise_enemy()
{
if(isalive(level.surprise_enemy))
{
level.surprise_enemy.health = 1;
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),level.surprise_enemy geteye());
level.surprise_enemy bloody_death();
common_scripts\utility::flag_set("flag_vo_training_s1_joker_got_him");
}
}
//Function Number: 38
training_s1_show_threat_text()
{
level endon("threat_grenade_hint_text_off");
wait(1);
thread training_s1_show_threat_text_ender();
for(;;)
{
level.player.showhint = 1;
thread maps\_utility::display_hint("threat_breach_prompt");
common_scripts\utility::flag_waitopen("player_at_threat_breach");
level.player.showhint = 0;
common_scripts\utility::flag_wait("player_at_threat_breach");
}
}
//Function Number: 39
training_s1_show_threat_text_ender()
{
common_scripts\utility::flag_wait("threat_grenade_hint_text_off");
level.player.showhint = 0;
}
//Function Number: 40
training_s1_refill_threat_grenades()
{
while(!common_scripts\utility::flag("threat_grenade_hint_text_off"))
{
if(!common_scripts\utility::flag("player_at_threat_breach"))
{
common_scripts\utility::flag_wait("player_at_threat_breach");
}
if(level.player setweaponammostock("paint_grenade_var") == 0)
{
level.player setweaponammostock("paint_grenade_var",1);
}
wait(0.2);
}
}
//Function Number: 41
training_s1_threat_enemies()
{
wait(1.5);
var_00 = self;
var_01 = 0;
while(var_01 < 4 && var_00.size > 0)
{
foreach(var_03 in var_00)
{
var_04 = randomfloatrange(1.5,2.5);
wait(var_04);
var_01 = var_01 + var_04;
if(!isalive(var_03))
{
continue;
}
var_05 = 7;
var_06 = (randomfloat(var_05),randomfloat(var_05),randomfloat(var_05));
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),var_03 geteye() + var_06);
var_04 = randomfloatrange(0.2,0.35);
wait(var_04);
var_01 = var_01 + var_04;
var_06 = (randomfloat(var_05),randomfloat(var_05),randomfloat(var_05));
if(common_scripts\utility::cointoss())
{
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),var_03 geteye() + var_06);
}
if(!isalive(var_03))
{
continue;
}
}
var_00 = maps\_utility::array_removedead(var_00);
}
level.ally_squad_member_3 maps\_utility::stop_magic_bullet_shield();
level.ally_squad_member_3 bloody_death();
}
//Function Number: 42
training_s1_flash_door()
{
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
var_01 = getent("training_s1_flash_door","targetname");
var_01.animname = "door_prop";
var_01 maps\_utility::assign_animtree();
var_02 = getent("living_room_door_clip","targetname");
var_02 linkto(var_01,"door");
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_flash_door_open");
common_scripts\utility::flag_wait("training_s1_peak_flash_door");
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_flash_door_open");
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s1_flash_door_open_idle","stop_loop");
common_scripts\utility::flag_wait("training_s1_open_flash_door");
var_00 notify("stop_loop");
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_flash_door_out");
var_02 connectpaths();
common_scripts\utility::flag_wait("training_s1_close_living_room_door");
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s1_flash_door_open");
wait(1);
var_02 disconnectpaths();
}
//Function Number: 43
training_s1_flash_enemies_think(param_00,param_01)
{
self endon("death");
self.pacifist = 1;
self.ignoreall = 1;
self.ignoreme = 1;
maps\_utility::disable_long_death();
if(isdefined(self.animation))
{
self.animname = "generic";
thread maps\_anim::anim_loop_solo(self,self.animation,"stop_loop");
maps\_utility::set_allowdeath(1);
thread training_s1_flash_death_check();
}
common_scripts\utility::flag_wait(param_00);
maps\_utility::anim_stopanimscripted();
if(level.flash_attack == 1)
{
maps\_utility::flashbangstart(4);
}
else
{
maps\_stealth_shared_utilities::enemy_reaction_state_alert();
}
self.pacifist = 0;
self.ignoreall = 0;
self.ignoreme = 0;
common_scripts\utility::flag_wait(param_01);
bloody_death(1);
}
//Function Number: 44
training_s1_flash_death_check()
{
self waittill("death");
if(common_scripts\utility::flag("training_s1_open_flash_door") == 0)
{
level.flash_attack = 0;
common_scripts\utility::flag_set("training_s1_flag_flash");
}
}
//Function Number: 45
training_s1_enemies_living_room_think()
{
self endon("death");
self.ignoreall = 1;
thread maps\_utility::set_battlechatter(0);
maps\_utility::disable_long_death();
thread training_s1_threat_death_check();
if(isdefined(self.animation))
{
self.animname = "generic";
maps\_utility::set_allowdeath(1);
thread maps\_anim::anim_loop_solo(self,self.animation,"stop_loop");
}
}
//Function Number: 46
training_s1_threat_death_check()
{
level endon("threat_thrown");
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(common_scripts\utility::flag("training_s1_flag_thermal") == 0 && var_01 == level.player)
{
level.threat_attack = "nil";
common_scripts\utility::flag_set("training_s1_flag_thermal");
}
}
//Function Number: 47
training_s1_living_room_check()
{
maps\_utility::waittill_aigroupcleared("flash_enemies");
level.living_room_clear = 1;
}
//Function Number: 48
training_s1_living_room_timer()
{
wait(15);
level.living_room_clear = 1;
}
//Function Number: 49
training_s1_threat_door()
{
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
var_01 = getent("training_s1_flash_door","targetname");
var_01.animname = "door_prop";
var_01 maps\_utility::assign_animtree();
var_02 = getent("living_room_door_clip","targetname");
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_threat_door_open");
var_02 linkto(var_01,"door");
common_scripts\utility::flag_wait("training_s1_peak_thermal_door");
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_threat_door_open");
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s1_threat_door_open_idle","stop_loop");
common_scripts\utility::flag_wait("training_s1_open_thermal_door");
if(level.threat_attack == "smart")
{
wait(3);
}
var_00 notify("stop_loop");
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_threat_door_out");
var_02 connectpaths();
common_scripts\utility::flag_wait("training_s1_breach_done");
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s1_threat_door_open");
wait(1);
var_02 disconnectpaths();
}
//Function Number: 50
training_s1_shoot_monitor()
{
level endon("flag_obj_rescue1_breach");
level.threat_attack = "nil";
for(;;)
{
level.player waittill("weapon_fired",var_00);
if(common_scripts\utility::flag("player_at_threat_breach"))
{
level.threat_attack = var_00;
common_scripts\utility::flag_set("threat_grenade_hint_text_off");
common_scripts\utility::flag_set("threat_breach_kickoff_gunfire");
break;
}
}
}
//Function Number: 51
training_s1_flash_monitor()
{
level.threat_attack = "nil";
for(;;)
{
level.player waittill("grenade_fire",var_00,var_01);
if(common_scripts\utility::flag("player_at_threat_breach"))
{
break;
}
}
if(var_01 == "paint_grenade_var")
{
level notify("threat_thrown");
}
level notify("training_s1_joker_threat_grenade_nag_off");
common_scripts\utility::flag_set("threat_grenade_hint_text_off");
var_00 waittill("death");
if(var_01 == "paint_grenade_var")
{
level.threat_attack = "threat";
}
else if(var_01 == "tracking_grenade_var")
{
level.threat_attack = "smart";
}
else
{
level.threat_attack = "other";
}
common_scripts\utility::flag_set("training_s1_flag_thermal");
}
//Function Number: 52
training_s1_kill_threat_enemies()
{
self endon("death");
wait(5);
if(isalive(self))
{
magicbullet(level.gideon.weapon,level.gideon gettagorigin("tag_flash"),self geteye());
bloody_death();
}
}
//Function Number: 53
training_surprise_enemy_think()
{
if(!isalive(self))
{
return;
}
self endon("death");
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
thread maps\_utility::set_battlechatter(1);
self.ignoreall = 0;
self.health = 1;
var_00 = getent("training_s1_surprise_enemy_cover_node","targetname");
if(isdefined(var_00))
{
self.goalradius = 32;
maps\_utility::set_forcegoal();
maps\_utility::set_goal_node(var_00);
self waittill("goal");
maps\_utility::unset_forcegoal();
}
}
//Function Number: 54
training_s2_open_bedroom_door_2()
{
var_00 = getent("bedroom_2_door","targetname");
getent(var_00.target,"targetname") linkto(var_00);
var_00.angles = var_00.angles + (0,85,0);
var_00 connectpaths();
}
//Function Number: 55
training_s1_president_setup(param_00)
{
self endon("death");
maps\_utility::magic_bullet_shield();
self.animname = "president";
self.pacifist = 1;
self.ignoreme = 1;
self.ignoreall = 1;
maps\_utility::set_battlechatter(0);
self.team = "allies";
level maps\_utility::clear_color_order("y","allies");
maps\_utility::set_force_color("y");
common_scripts\utility::flag_wait(param_00);
if(isdefined(self.magic_bullet_shield))
{
maps\_utility::stop_magic_bullet_shield();
}
self delete();
}
//Function Number: 56
training_s1_set_up_search_drones(param_00,param_01)
{
self endon("death");
thread maps\_shg_utility::make_emp_vulnerable();
self.ignoreall = 1;
self.ignoreme = 1;
thread training_s1_search_drones_damage_check(param_00);
thread training_s1_search_drones_death_check();
thread training_s1_search_drones_cleanup(param_01);
if(isdefined(self.animation))
{
thread training_s1_search_drones_play_ainm();
thread maps\recovery_fx::drone_search_light_fx();
}
else
{
self laseron();
}
common_scripts\utility::flag_wait(param_00);
self.ignoreall = 0;
self.ignoreme = 0;
if(isdefined(self.animation))
{
self stopanimscripted();
}
thread vehicle_scripts\_pdrone::stop_scripted_move_and_attack();
}
//Function Number: 57
training_s1_search_drones_play_ainm()
{
wait(2);
self.animname = "pdrone";
self.allowdeath = 1;
var_00 = getent("training_s1_drone_attack_scene","targetname");
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
var_00 maps\_anim::anim_single_solo(self,self.animation);
if(isalive(self))
{
self delete();
}
}
//Function Number: 58
training_s1_search_drones_damage_check(param_00)
{
self endon("death");
self endon("training_s1_search_drones_done");
self waittill("damage");
if(!common_scripts\utility::flag("training_s1_search_drones_done"))
{
common_scripts\utility::flag_set(param_00);
}
}
//Function Number: 59
training_s1_search_drones_death_check()
{
self waittill("death");
level.search_drones_count = level.search_drones_count + 1;
}
//Function Number: 60
training_s1_search_drones_cleanup(param_00)
{
self endon("death");
}
//Function Number: 61
training_s1_drone_ambush_scene()
{
wait(1);
var_00 = common_scripts\utility::getstruct("attacklocation1","targetname");
var_01 = level.ally_squad_member_1;
var_01 maps\_utility::enable_long_death();
var_01 maps\_utility::stop_magic_bullet_shield();
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
wait(0.5);
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
wait(0.25);
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
if(isalive(var_01))
{
var_01 kill();
}
wait(5);
var_02 = common_scripts\utility::getstruct("attacklocation2","targetname");
var_03 = level.ally_squad_member_4;
var_03 maps\_utility::enable_long_death();
var_03 maps\_utility::stop_magic_bullet_shield();
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
wait(0.15);
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
wait(0.25);
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
if(isalive(var_03))
{
var_03 kill();
}
}
//Function Number: 62
training_s1_terrace_enemies_think(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
bloody_death(1);
}
//Function Number: 63
training_s1_patio_enemies_think(param_00,param_01)
{
self endon("death");
thread maps\_utility::disable_long_death();
var_02 = self.health;
self.health = 1;
thread maps\_utility::set_battlechatter(0);
if(randomint(10) < 5)
{
thread attach_flashlight_on_gun();
}
thread training_s1_patio_enemies_alert(param_00,var_02);
thread training_s1_patio_enemies_alert_check(param_00);
common_scripts\utility::flag_wait(param_01);
bloody_death();
}
//Function Number: 64
training_s1_patio_enemies_alert(param_00,param_01)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
self.health = param_01;
thread maps\_utility::set_battlechatter(1);
self notify("alerted");
}
//Function Number: 65
training_s1_patio_enemies_alert_check(param_00)
{
self endon("death");
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
wait(3);
common_scripts\utility::flag_set(param_00);
training_s1_set_squad_active_and_target();
}
//Function Number: 66
training_s1_allies_advance()
{
level endon("training_s1_hide");
thread training_s1_check_snipers();
thread training_s1_patio_joker_loc_check();
while(common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0 && common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave2") == 0)
{
wait 0.05;
}
if(common_scripts\utility::flag("training_s1_patio_alerted") == 1 && common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0)
{
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower1","targetname");
level.joker maps\_utility::cqb_walk("off");
}
while(common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0 && common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave3") == 0)
{
wait 0.05;
}
if(common_scripts\utility::flag("training_s1_patio_alerted") == 1 && common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0)
{
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower","targetname");
level.joker maps\_utility::cqb_walk("off");
}
}
//Function Number: 67
training_s1_patio_joker_loc_check()
{
level endon("training_s1_hide");
common_scripts\utility::flag_wait("training_s1_patio_alerted");
if(common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave2"))
{
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower1","targetname");
level.joker maps\_utility::cqb_walk("off");
}
if(common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave3"))
{
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower","targetname");
level.joker maps\_utility::cqb_walk("off");
}
}
//Function Number: 68
training_s1_check_snipers()
{
maps\_utility::waittill_aigroupcleared("patio_ambush1");
common_scripts\utility::flag_set("training_s1_spawn_patio_wave1_dead");
}
//Function Number: 69
training_s1_pool_house_doors()
{
var_00 = getent("pool_house_door01","targetname");
getent(var_00.target,"targetname") linkto(var_00);
var_01 = getent("pool_house_door02","targetname");
getent(var_01.target,"targetname") linkto(var_01);
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
var_00 connectpaths();
var_01 connectpaths();
wait(3);
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
var_00 disconnectpaths();
var_01 disconnectpaths();
}
//Function Number: 70
training_s1_terrace_vehicles_think(param_00,param_01,param_02)
{
self endon("death");
thread training_s1_terrace_vehicles_cleanup(param_00);
thread training_s1_golf_course_encounter(param_01);
foreach(var_04 in self.riders)
{
var_04 thread attach_flashlight_on_vehicle_unload();
var_04 thread maps\_utility::set_battlechatter(0);
var_04 thread training_s1_terrace_vehicles_riders_think(param_01);
var_04 thread training_s1_terrace_vehicles_riders_cleanup(param_00,param_01);
var_04 thread training_s1_golf_course_alert(param_01);
}
common_scripts\utility::flag_wait(param_01);
var_06 = getent("golf_course_watch_out","targetname");
badplace_brush("watch_out",-1,var_06,"axis");
var_07 = getentarray("training_s1_vehicle_attack_node","script_noteworthy");
foreach(var_09 in var_07)
{
var_0A = 2;
if(isdefined(var_09.speed))
{
var_09.speed = var_09.speed * var_0A;
}
}
common_scripts\utility::flag_wait(param_02);
badplace_delete("watch_out");
soundscripts\_snd::snd_message("rec_train1_stealth_car_stop",self);
maps\_vehicle::vehicle_stop_named("stop_to_kill_player",15,10);
maps\_vehicle::vehicle_unload("all_but_gunner");
}
//Function Number: 71
training_s1_golf_course_encounter(param_00)
{
while(common_scripts\utility::flag("training_s1_hide_from_patrols_done") == 0)
{
common_scripts\utility::flag_wait(param_00);
maps\_utility::waittill_aigroupcleared("golf_course_ambush1");
common_scripts\utility::flag_set("training_s1_hide_from_patrols_done");
}
}
//Function Number: 72
training_s1_golf_course_encounter_track_deaths()
{
maps\_utility::waittill_aigroupcleared("golf_course_ambush1");
common_scripts\utility::flag_set("training_s1_hide_from_patrols_done");
}
//Function Number: 73
training_s1_terrace_vehicles_riders_cleanup(param_00,param_01)
{
self endon("death");
common_scripts\utility::flag_wait("training_s1_golf_course_vehicles");
if(!common_scripts\utility::flag(param_01))
{
self delete();
return;
}
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 74
training_s1_terrace_vehicles_riders_think(param_00)
{
self endon("death");
self.pacifist = 1;
self.ignoreall = 1;
self.ignoreme = 1;
maps\_utility::disable_long_death();
common_scripts\utility::flag_wait(param_00);
self.pacifist = 0;
self.ignoreall = 0;
thread maps\_utility::set_battlechatter(1);
self.ignoreme = 0;
}
//Function Number: 75
training_s1_terrace_vehicles_cleanup(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
foreach(var_02 in self.riders)
{
var_02 delete();
}
self delete();
}
//Function Number: 76
training_s1_golf_course_alert(param_00)
{
var_01 = common_scripts\utility::waittill_any_return("patrol_alerted","_stealth_spotted","stealth_event","alerted","enemy","damage","death");
wait(2);
if(isalive(self))
{
self notify("alerted");
thread maps\_utility::clear_run_anim();
thread maps\_utility::player_seek_enable();
}
if(!common_scripts\utility::flag(param_00))
{
common_scripts\utility::flag_set(param_00);
}
}
//Function Number: 77
training_s1_runner_enemy_think(param_00,param_01)
{
self endon("death");
maps\_utility::disable_long_death();
attach_flashlight_on_gun();
thread training_s1_golf_course_alert(param_01);
var_02 = [];
var_02["saw"] = ::training_s1_runner_enemy_found_corpse;
var_02["found"] = ::training_s1_runner_enemy_found_corpse;
maps\_stealth_utility::stealth_corpse_behavior_custom(var_02);
force_patrol_anim_set("patroljog",0);
maps\_utility::set_moveplaybackrate(1.1);
training_s1_runner_enemy_think_cleanup(param_01);
common_scripts\utility::flag_wait(param_00);
bloody_death();
}
//Function Number: 78
training_s1_runner_enemy_think_cleanup(param_00)
{
self endon("death");
common_scripts\utility::flag_wait("training_s1_golf_course_vehicles");
if(!common_scripts\utility::flag(param_00))
{
self delete();
}
}
//Function Number: 79
training_s1_runner_enemy_found_corpse()
{
clearallcorpses();
}
//Function Number: 80
force_patrol_anim_set(param_00,param_01,param_02)
{
maps\_patrol_extended::force_patrol_anim_set(param_00,param_01,0,param_02);
}
//Function Number: 81
training_prone_hint_text()
{
wait(1);
level.player.showhint = 1;
if(level.player common_scripts\utility::is_player_gamepad_enabled())
{
thread maps\_utility::display_hint("prone_prompt");
}
else
{
thread maps\_utility::display_hint("pc_prone_prompt");
}
thread training_prone_hint_monitor();
var_00 = 8;
level common_scripts\utility::waittill_notify_or_timeout("player_prone",var_00);
level.player.showhint = 0;
}
//Function Number: 82
training_prone_hint_monitor()
{
level endon("training_s1_hide_from_patrols_done");
while(level.player getstance() != "prone" && common_scripts\utility::flag("training_s1_spotted") == 0)
{
wait(0.5);
}
level notify("player_prone");
}
//Function Number: 83
training_s1_escape_vehicle_think(param_00,param_01)
{
self endon("death");
foreach(var_03 in self.riders)
{
var_03 thread training_s1_escape_vehicle_driver(param_00);
}
common_scripts\utility::flag_wait(param_01);
maps\_utility::stop_magic_bullet_shield();
self delete();
}
//Function Number: 84
training_s1_escape_vehicle_driver(param_00)
{
self endon("death");
self.health = 1;
common_scripts\utility::flag_wait(param_00);
bloody_death();
}
//Function Number: 85
training_s1_ambush_vehicles_think(param_00,param_01)
{
self endon("death");
foreach(var_03 in self.riders)
{
var_03 thread training_s1_unload1_think(param_00,param_01);
}
self waittill("reached_end_node");
maps\_vehicle::vehicle_unload();
common_scripts\utility::flag_wait(param_00);
self.pacifist = 1;
foreach(var_03 in self.riders)
{
var_03.ignoreall = 1;
var_03.pacifist = 1;
}
common_scripts\utility::flag_wait(param_01);
self delete();
}
//Function Number: 86
training_s1_unload1_think(param_00,param_01)
{
self endon("death");
if(isdefined(self.vehicle_position))
{
thread attach_flashlight_on_vehicle_unload();
}
common_scripts\utility::flag_wait(param_00);
self.pacifist = 1;
self.ignoreall = 1;
common_scripts\utility::flag_wait(param_01);
bloody_death();
}
//Function Number: 87
training_s1_kva_ambush1_think(param_00,param_01)
{
self endon("death");
thread maps\_utility::disable_long_death();
thread attach_flashlight_on_gun();
common_scripts\utility::flag_wait(param_00);
self.pacifist = 1;
self.ignoreall = 1;
self.ignoreme = 1;
maps\_utility::set_battlechatter(0);
common_scripts\utility::flag_wait(param_01);
bloody_death();
}
//Function Number: 88
training_s1_kva_ambush2_think(param_00,param_01)
{
self endon("death");
thread maps\_utility::disable_long_death();
thread attach_flashlight_on_gun();
self.ignoreall = 1;
maps\_utility::set_goal_radius(40);
self waittill("goal");
if(isdefined(self) && isalive(self))
{
self.ignoreall = 0;
}
common_scripts\utility::flag_wait(param_00);
self.pacifist = 1;
self.ignoreall = 1;
self.ignoreme = 1;
maps\_utility::set_battlechatter(0);
common_scripts\utility::flag_wait(param_01);
bloody_death();
}
//Function Number: 89
training_s1_guard_house_doors()
{
var_00 = getent("guard_door_01","targetname");
getent(var_00.target,"targetname") linkto(var_00);
var_01 = getent("guard_door_02","targetname");
getent(var_01.target,"targetname") linkto(var_01);
wait(randomint(10));
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
wait(randomint(5));
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
var_00 connectpaths();
var_01 connectpaths();
wait(30);
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
wait(randomint(5));
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
var_00 disconnectpaths();
var_01 disconnectpaths();
}
//Function Number: 90
training_door_cover_cloak_think()
{
var_00 = self getmodelfromentity();
self setmodel(var_00 + "_cloak");
self drawpostresolve();
self setmaterialscriptparam(1,0);
wait(1);
self setmaterialscriptparam(0,1.5);
wait(1.5);
common_scripts\utility::hide_notsolid();
common_scripts\utility::flag_wait("training_round_2");
self setmodel(var_00);
common_scripts\utility::show_solid();
}
//Function Number: 91
gideon_change_outfit()
{
if(level.gideon.model == "kva_body_assault")
{
if(isdefined(level.gideon.magic_bullet_shield))
{
level.gideon maps\_utility::stop_magic_bullet_shield();
}
level.gideon delete();
maps\_utility::clear_color_order("b","allies");
level.gideon = getent("gideon","targetname") maps\_utility::spawn_ai(1);
level.gideon.script_pushable = 0;
var_00 = common_scripts\utility::getstruct("gideon_exo_exit","targetname");
level.gideon forceteleport(var_00.origin,var_00.angles);
level.gideon maps\_utility::gun_remove();
}
}
//Function Number: 92
gideon_change_mask(param_00)
{
wait(5.5);
level.gideon detach("head_hero_gideon_mask");
level.gideon attach("head_hero_gideon_mask_down");
}
//Function Number: 93
stack_make()
{
var_00 = spawnstruct();
var_00.contents = [];
var_00.top = -1;
var_00.isstack = 1;
return var_00;
}
//Function Number: 94
stack_push(param_00)
{
var_01 = self;
var_01.top++;
var_01.contents[var_01.top] = param_00;
}
//Function Number: 95
stack_pop()
{
var_00 = self;
if(var_00.top < 0)
{
return undefined;
}
var_01 = var_00.contents[var_00.top];
var_00.top--;
return var_01;
}
//Function Number: 96
stack_peek()
{
var_00 = self;
return var_00.contents[var_00.top];
}
//Function Number: 97
aim_assist_using_bmodels_init()
{
if(isdefined(level.aim_assist_with_bmodels))
{
return;
}
level.aim_assist_with_bmodels = spawnstruct();
level.aim_assist_with_bmodels.entities = getentarray("script_brushmodel_for_aim_assist","targetname");
level.aim_assist_with_bmodels.entitiesinuse = [];
var_00 = stack_make();
level.aim_assist_with_bmodels.stack = var_00;
foreach(var_02 in level.aim_assist_with_bmodels.entities)
{
var_02.maxhealth = 1000;
var_02 setnormalhealth(var_02.maxhealth);
var_02 hide();
var_00 stack_push(var_02);
}
}
//Function Number: 98
is_aim_assist_enabled_on_script_model(param_00)
{
return isdefined(param_00.aim_assist_bmodel);
}
//Function Number: 99
enable_aim_assist_on_script_model(param_00,param_01)
{
var_02 = level.aim_assist_with_bmodels.stack;
var_03 = var_02 stack_pop();
var_03.health = var_03.maxhealth;
var_03 enableaimassist();
var_03 linkto(param_00,param_01,(4,0,0),(0,0,0));
param_00.aim_assist_bmodel = var_03;
level.aim_assist_with_bmodels.entitiesinuse = common_scripts\utility::array_add(level.aim_assist_with_bmodels.entitiesinuse,var_03);
}
//Function Number: 100
disable_aim_assist_on_script_model(param_00)
{
var_01 = param_00.aim_assist_bmodel;
var_01 unlink();
var_02 = level.aim_assist_with_bmodels.stack;
var_01 disableaimassist();
var_02 stack_push(var_01);
param_00.aim_assist_bmodel = undefined;
level.aim_assist_with_bmodels.entitiesinuse = common_scripts\utility::array_remove(level.aim_assist_with_bmodels.entitiesinuse,var_01);
}
//Function Number: 101
score_manager_print_final_score(param_00)
{
var_01 = level.score_keeper.count;
var_02 = level.score_keeper.max;
if(param_00 == "holo_range")
{
if(var_01 > 2375)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_ilona");
}
if(var_01 < 600)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_bad");
}
if(var_01 >= 600 && var_01 < 1200)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_average");
}
if(var_01 >= 1200 && var_01 < 2000)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_good");
}
if(var_01 >= 2000 && var_01 < 3000)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_excellent");
}
if(var_01 >= 3000)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_result_perfect");
}
if(var_01 >= 2000)
{
maps\_utility::giveachievement_wrapper("LEVEL_2A");
return;
}
return;
}
if(param_00 == "grenade_range")
{
switch(var_01)
{
case 0:
iprintlnbold("TRY AGAIN");
break;
case 1:
iprintlnbold("AWFUL");
break;
case 2:
iprintlnbold("TERRIBLE");
break;
case 3:
iprintlnbold("TERRIBLE");
break;
case 4:
iprintlnbold("POOR");
break;
case 5:
iprintlnbold("POOR");
break;
case 6:
iprintlnbold("AVERAGE");
break;
case 7:
iprintlnbold("AVERAGE");
break;
case 8:
iprintlnbold("DECENT");
break;
case 9:
iprintlnbold("DECENT");
break;
case 10:
iprintlnbold("GOOD");
break;
case 11:
iprintlnbold("GOOD");
break;
case 12:
iprintlnbold("GREAT");
break;
case 13:
iprintlnbold("GREAT");
break;
case 14:
iprintlnbold("AWESOME");
break;
case 15:
iprintlnbold("AWESOME");
break;
case 16:
iprintlnbold("PERFECT");
break;
}
return;
}
if(param_00 == "drone_range")
{
return;
}
}
//Function Number: 102
score_manager_print_current_score()
{
}
//Function Number: 103
score_manager_detect_timeout(param_00)
{
level.score_keeper endon("score_manager_timed_out");
wait(param_00);
level.score_keeper notify("score_manager_timed_out");
}
//Function Number: 104
score_manager_increase_score(param_00,param_01)
{
if(isdefined(param_00) && isdefined(param_00.team) && param_00.team == level.player.team)
{
common_scripts\utility::flag_set("flag_vo_shooting_range_friendly");
level.score_keeper.count = level.score_keeper.count - param_01;
if(param_01 == 25)
{
playfx(level._effect["recovery_scoring_minus25"],param_00.origin + (0,0,80));
}
if(param_01 == 50)
{
playfx(level._effect["recovery_scoring_minus50"],param_00.origin + (0,0,80));
}
if(param_01 == 75)
{
playfx(level._effect["recovery_scoring_minus75"],param_00.origin + (0,0,80));
}
if(param_01 == 100)
{
playfx(level._effect["recovery_scoring_minus100"],param_00.origin + (0,0,80));
}
}
else
{
level.score_keeper.count = level.score_keeper.count + param_01;
if(param_01 == 25)
{
playfx(level._effect["recovery_scoring_add25"],param_00.origin + (0,0,80));
}
if(param_01 == 50)
{
playfx(level._effect["recovery_scoring_add50"],param_00.origin + (0,0,80));
}
if(param_01 == 75)
{
playfx(level._effect["recovery_scoring_add75"],param_00.origin + (0,0,80));
}
if(param_01 == 100)
{
playfx(level._effect["recovery_scoring_add100"],param_00.origin + (0,0,80));
}
}
level.score_keeper notify("score_manager_score_increased");
score_manager_print_current_score();
}
//Function Number: 105
score_manager_waittill_timeout_or_maxscore(param_00,param_01)
{
level.score_keeper endon("score_manager_timed_out");
level.score_keeper thread score_manager_detect_timeout(param_00);
if(!isdefined(param_01))
{
param_01 = level.score_keeper.max - level.score_keeper.count;
}
while(param_01 > 0)
{
level.score_keeper waittill("score_manager_score_increased");
param_01--;
}
level.score_keeper notify("score_manager_timed_out");
}
//Function Number: 106
score_manager_force_stop()
{
level.score_keeper notify("score_manager_timed_out");
}
//Function Number: 107
score_manager_init(param_00)
{
if(!isdefined(level.score_keeper))
{
level.score_keeper = spawnstruct();
}
level.score_keeper.count = 0;
level.score_keeper.max = param_00;
level.score_keeper notify("score_manager_timed_out");
}
//Function Number: 108
score_manager_detect_enemy_death()
{
level.score_keeper endon("score_manager_timed_out");
self endon("score_manager_detect_enemy_death_stop");
common_scripts\utility::waittill_either("death","pain_death");
score_manager_increase_score(self);
}
//Function Number: 109
score_manager_detect_damage(param_00,param_01)
{
level.score_keeper endon("score_manager_timed_out");
var_02 = level.score_keeper.stats;
self setcandamage(1);
var_03 = undefined;
var_04 = undefined;
while(!isdefined(var_03) || var_03 == "MOD_CRUSH")
{
self waittill("damage",var_05,var_06,var_07,var_08,var_03,var_09,var_0A,var_04,var_0B);
}
if(isdefined(param_00) && param_00 == 1)
{
var_0C = self gettagorigin("tag_head");
var_0D = self gettagorigin("tag_chest");
var_0E = self gettagorigin("tag_arms");
var_0F = self gettagorigin("tag_legs");
level.score_keeper notify("score_change");
playfx(level._effect["expround_asphalt_1"],self.origin);
if(isdefined(param_01) && param_01)
{
playfx(level._effect["recovery_scoring_target_shutter_enemy"],var_0D);
var_02.enemy_kills++;
if(var_04 == "tag_head")
{
score_manager_increase_score(self,100);
var_02.enemy_headshots++;
}
else if(var_04 == "tag_chest")
{
score_manager_increase_score(self,75);
var_02.enemy_chestshots++;
}
else if(var_04 == "tag_arms")
{
score_manager_increase_score(self,50);
var_02.enemy_armshots++;
}
else if(var_04 == "tag_legs")
{
score_manager_increase_score(self,50);
var_02.enemy_legshots++;
}
soundscripts\_snd::snd_message("shooting_range_enemy_shot",self,var_04);
}
else
{
playfx(level._effect["recovery_scoring_target_shutter_friendly"],var_0D);
var_02.civ_kills++;
if(var_04 == "tag_head")
{
score_manager_increase_score(self,100);
var_02.civ_headshots++;
}
else if(var_04 == "tag_chest")
{
score_manager_increase_score(self,75);
var_02.civ_chestshots++;
}
else if(var_04 == "tag_arms")
{
score_manager_increase_score(self,50);
var_02.civ_armshots++;
}
else if(var_04 == "tag_legs")
{
score_manager_increase_score(self,50);
var_02.civ_legshots++;
}
soundscripts\_snd::snd_message("shooting_range_friendly_shot",self,var_04);
}
}
else
{
score_manager_increase_score(self,1);
playfx(level._effect["frag_grenade_default"],self.origin);
soundscripts\_snd_playsound::snd_play_linked("wpn_grenade_exp");
}
self notify("target_hit");
}
//Function Number: 110
wait_for_primary_weapon_pickup()
{
level endon("shooting_range_started_once");
level.player waittill("weapon_switch_started");
for(;;)
{
var_00 = level.player getcurrentweapon();
if(var_00 != "none")
{
break;
}
wait 0.05;
}
common_scripts\utility::flag_set("flag_obj_equip_firing_range");
common_scripts\utility::flag_set("flag_vo_shooting_range_02");
}
//Function Number: 111
attach_flashlight_on_gun()
{
hand_flashlight_remove();
if(!isdefined(self.gun_flashlight) || !self.gun_flashlight)
{
playfxontag(level._effect["flashlight"],self,"tag_flash");
self.gun_flashlight = 1;
self notify("flashlight_on_gun");
}
}
//Function Number: 112
gun_flashlight_off()
{
if(isdefined(self.gun_flashlight) && self.gun_flashlight)
{
stopfxontag(level._effect["flashlight"],self,"tag_flash");
self.gun_flashlight = 0;
}
}
//Function Number: 113
attach_flashlight_in_hand()
{
if(isdefined(self.hand_flashlight))
{
return;
}
gun_flashlight_off();
var_00 = "TAG_INHAND";
self.hand_flashlight = spawn("script_model",self.origin);
var_01 = self.hand_flashlight;
var_01.owner = self;
var_01.origin = self gettagorigin(var_00);
var_01.angles = self gettagangles(var_00);
var_01 setmodel("com_flashlight_on");
var_01 linkto(self,var_00);
var_01 thread hand_flashlight_watch_for_drop();
thread hand_flashlight_handle_alert();
thread hand_flashlight_handle_node_pause();
thread hand_flashlight_handle_effects();
hand_flashlight_on();
}
//Function Number: 114
hand_flashlight_watch_for_drop()
{
self endon("death");
for(;;)
{
if(!isdefined(self.owner) || self.owner.health <= 0)
{
stopfxontag(common_scripts\utility::getfx("flashlight"),self,"tag_light");
return;
}
wait(0.2);
}
}
//Function Number: 115
hand_flashlight_on()
{
self.hand_flashlight setmodel("com_flashlight_on");
playfxontag(common_scripts\utility::getfx("flashlight"),self.hand_flashlight,"tag_light");
}
//Function Number: 116
hand_flashlight_off()
{
self.hand_flashlight setmodel("com_flashlight_off");
stopfxontag(common_scripts\utility::getfx("flashlight"),self.hand_flashlight,"tag_light");
}
//Function Number: 117
hand_flashlight_remove()
{
if(isdefined(self.hand_flashlight))
{
hand_flashlight_off();
self.hand_flashlight delete();
self notify("stop_flashlight_thread");
}
}
//Function Number: 118
hand_flashlight_should_hide(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(isdefined(param_00.script_animation) && param_00.script_animation != "pause")
{
return 1;
}
if(isdefined(param_00.script_delay))
{
return 1;
}
return 0;
}
//Function Number: 119
hand_flashlight_handle_alert()
{
self endon("death");
self endon("stop_flashlight_thread");
common_scripts\utility::waittill_any("death","remove_flashlight","enemy","reached_path_end");
wait(0.1);
if(isalive(self))
{
thread attach_flashlight_on_gun();
}
}
//Function Number: 120
hand_flashlight_handle_node_pause()
{
self endon("death");
self endon("remove_flashlight");
self endon("stop_flashlight_thread");
for(;;)
{
self waittill("goal");
if(hand_flashlight_should_hide(self.last_patrol_goal))
{
self notify("flashlight_off");
self waittill("release_node");
self notify("flashlight_on");
}
}
}
//Function Number: 121
hand_flashlight_handle_effects()
{
self endon("death");
self endon("remove_flashlight");
self endon("stop_flashlight_thread");
for(;;)
{
self waittill("flashlight_off");
hand_flashlight_off();
self waittill("flashlight_on");
hand_flashlight_on();
}
}
//Function Number: 122
attach_flashlight_on_vehicle_unload()
{
self waittill("jumping_out");
attach_flashlight_on_gun();
}
//Function Number: 123
training_stealth_spotted()
{
common_scripts\utility::flag_wait("_stealth_spotted");
thread training_s2_set_squad_active_and_target();
common_scripts\utility::flag_set("training_s2_start_alerted");
common_scripts\utility::flag_set("flag_vo_training_s2_joker_here_they");
common_scripts\utility::flag_set("flag_obj_rescue2_entrance_clear");
wait(3);
if(level.player maps\_player_exo::overdrive_is_on() == 0)
{
if(level.player.exobatterylevel == 0)
{
maps\recovery_code::give_overdrive_battery();
}
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_use_overdrive");
thread maps\_utility::display_hint_timeout("overdrive_prompt_sim",3);
}
}
//Function Number: 124
training_s1_golf_course_custom_stealth()
{
var_00 = [];
var_00["prone"] = 150;
var_00["crouch"] = 400;
var_00["stand"] = 400;
maps\_stealth_visibility_system::system_set_detect_ranges(var_00);
var_01 = [];
var_01["player_dist"] = 1500;
var_01["sight_dist"] = 480;
var_01["detect_dist"] = 240;
var_01["found_dist"] = 96;
var_01["found_dog_dist"] = 60;
maps\_stealth_utility::stealth_corpse_ranges_custom(var_01);
}
//Function Number: 125
training_reset_stealth_settings()
{
maps\_stealth_utility::stealth_corpse_ranges_default();
}
//Function Number: 126
training_s2_squad_allow_run()
{
if(isalive(level.gideon))
{
level.gideon allowedstances("prone","crouch","stand");
}
if(isalive(level.joker))
{
level.joker allowedstances("prone","crouch","stand");
}
if(isalive(level.ally_s2_squad_member_1))
{
level.ally_s2_squad_member_1 allowedstances("prone","crouch","stand");
}
}
//Function Number: 127
training_s2_enemies_start_think(param_00,param_01,param_02)
{
self endon("death");
thread attach_flashlight_on_gun();
thread maps\_utility::set_battlechatter(0);
maps\_utility::disable_long_death();
thread training_s2_enemies_start_think_alerted(param_00);
thread training_s2_starting_enemy_charge(param_01);
common_scripts\utility::flag_wait(param_02);
bloody_death();
}
//Function Number: 128
training_s2_enemies_start_think_alerted(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
maps\_utility::waittill_aigroupcount("training_s2_starting_enemies",17);
self notify("alerted");
maps\_utility::set_battlechatter(1);
var_01 = getnode("training_s2_enemy_attack_node4","targetname");
if(isdefined(var_01))
{
self.goalradius = 200;
maps\_utility::set_forcegoal();
maps\_utility::set_goal_node(var_01);
self waittill("goal");
maps\_utility::unset_forcegoal();
}
}
//Function Number: 129
training_s2_enemies_start2_think(param_00,param_01,param_02)
{
self endon("death");
thread attach_flashlight_on_gun();
thread maps\_utility::set_battlechatter(0);
maps\_utility::disable_long_death();
thread training_s2_enemies_start2_think_alerted(param_00);
thread training_s2_starting_enemy_charge(param_01);
common_scripts\utility::flag_wait(param_02);
bloody_death();
}
//Function Number: 130
training_s2_enemies_start2_think_alerted(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
maps\_utility::waittill_aigroupcount("training_s2_starting_enemies",11);
self notify("alerted");
var_01 = getnode("training_s2_enemy_attack_node8","targetname");
thread maps\_utility::set_battlechatter(1);
if(isdefined(var_01))
{
self.goalradius = 32;
maps\_utility::set_forcegoal();
maps\_utility::set_goal_node(var_01);
self waittill("goal");
maps\_utility::unset_forcegoal();
}
}
//Function Number: 131
training_s2_enemies_patrol_think(param_00,param_01,param_02)
{
self endon("death");
thread attach_flashlight_on_gun();
thread maps\_utility::set_battlechatter(0);
maps\_utility::disable_long_death();
thread training_s2_enemy_notify(param_00);
thread training_s2_enemies_patrol_think_alerted(param_00);
thread training_s2_starting_enemy_charge(param_01);
common_scripts\utility::flag_wait(param_02);
bloody_death();
}
//Function Number: 132
training_s2_starting_enemy_charge(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
maps\_utility::player_seek();
}
//Function Number: 133
training_s2_enemy_notify(param_00)
{
self endon("death");
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
wait(2);
self notify("alerted");
common_scripts\utility::flag_set("_stealth_spotted");
common_scripts\utility::flag_set(param_00);
}
//Function Number: 134
training_s2_enemies_patrol_think_alerted(param_00)
{
self endon("death");
common_scripts\utility::flag_wait(param_00);
self.ignoreall = 0;
self.ignoreme = 0;
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
self notify("alerted");
maps\_utility::set_battlechatter(1);
}
//Function Number: 135
training_s2_enemies_living_room_think(param_00)
{
self endon("death");
if(isdefined(self.animation))
{
thread maps\_utility::anim_stopanimscripted();
}
var_01 = getent("training_s1_threat_react_origin","targetname");
var_02 = var_01.origin;
thread maps\_stealth_shared_utilities::enemy_reactto_and_lookaround(var_02);
self notify("alert");
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
thread maps\_stealth_utility::disable_stealth_for_ai();
thread maps\_utility::set_battlechatter(1);
wait(randomfloatrange(0.25,1));
var_03 = self findbestcovernode();
if(isdefined(var_03))
{
maps\_utility::set_goal_node(var_03);
}
}
//Function Number: 136
training_s2_threat_death_check()
{
self waittill("death");
if(common_scripts\utility::flag("training_s2_flag_thermal") == 0)
{
level.threat_attack = "nil";
common_scripts\utility::flag_set("training_s2_flag_thermal");
}
}
//Function Number: 137
training_s2_living_room_check()
{
maps\_utility::waittill_aigroupcleared("training_s2_enemies_living_room");
level.living_room_clear = 1;
}
//Function Number: 138
training_s2_living_room_timer()
{
wait(15);
level.living_room_clear = 1;
}
//Function Number: 139
training_s2_enemies_hall_think()
{
self endon("death");
maps\_utility::disable_long_death();
}
//Function Number: 140
training_s2_threat_door()
{
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
var_01 = getent("training_s1_flash_door","targetname");
var_01.animname = "door_prop";
var_01 maps\_utility::assign_animtree();
var_02 = getent("living_room_door_clip","targetname");
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s2_threat_door_open");
var_02 linkto(var_01,"door");
common_scripts\utility::flag_wait("training_s2_peak_thermal_door");
var_00 maps\_anim::anim_single_solo(var_01,"training_s2_threat_door_open");
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s2_threat_door_open_idle","stop_loop");
common_scripts\utility::flag_wait("training_s2_open_thermal_door");
var_00 notify("stop_loop");
var_00 maps\_anim::anim_single_solo(var_01,"training_s2_threat_door_out");
var_02 connectpaths();
common_scripts\utility::flag_wait("training_s2_breach_done");
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s2_threat_door_open");
wait(1);
var_02 disconnectpaths();
}
//Function Number: 141
training_s2_flash_monitor()
{
level.threat_attack = "nil";
level.player waittill("grenade_fire",var_00,var_01);
var_00 waittill("death");
if(var_01 == "paint_grenade_var")
{
level.threat_attack = "threat";
}
else
{
level.threat_attack = "other";
}
common_scripts\utility::flag_set("training_s2_flag_thermal");
}
//Function Number: 142
training_s2_kill_threat_enemies()
{
self endon("death");
wait(5);
if(isalive(self))
{
magicbullet(level.gideon.weapon,level.gideon gettagorigin("tag_flash"),self geteye());
bloody_death();
}
}
//Function Number: 143
training_s2_start_squad_attack(param_00)
{
common_scripts\utility::flag_wait(param_00);
training_s2_set_squad_active_and_target();
}
//Function Number: 144
training_s2_opening_guy_think(param_00)
{
var_01 = common_scripts\utility::getstruct(param_00,"targetname");
self forceteleport(var_01.origin,var_01.angles);
self setgoalpos(self.origin);
self allowedstances("crouch");
maps\_stealth_utility::stealth_plugin_basic();
maps\_stealth_utility::stealth_plugin_accuracy();
maps\_stealth_utility::stealth_plugin_smart_stance();
maps\_utility::disable_surprise();
if(!isdefined(level.allies_s2))
{
level.allies_s2 = [];
}
level.allies_s2 = common_scripts\utility::array_add(level.allies_s2,self);
}
//Function Number: 145
training_s1_clear_bedrooms(param_00)
{
wait(2);
var_01 = getent("bedroom_1_door","targetname");
getent(var_01.target,"targetname") linkto(var_01);
var_02 = 1;
var_01 rotateto(var_01.angles + (0,145,0),var_02,0.05,0.05);
var_01 common_scripts\utility::delaycall(var_02,::connectpaths);
var_01 common_scripts\utility::delaycall(2,::disconnectpaths);
var_03 = getent("bedroom_2_door","targetname");
getent(var_03.target,"targetname") linkto(var_03);
var_03.angles = var_03.angles + (0,85,0);
var_03 connectpaths();
var_03 disconnectpaths();
maps\_utility::array_spawn_noteworthy("training_s1_bedroom_spawners",1);
common_scripts\utility::flag_wait(param_00);
var_01 rotateto(var_01.angles + (0,-145,0),var_02,0.05,0.05);
var_01 common_scripts\utility::delaycall(var_02,::connectpaths);
var_01 common_scripts\utility::delaycall(2,::disconnectpaths);
var_03.angles = var_03.angles + (0,-85,0);
var_03 connectpaths();
var_03 disconnectpaths();
}
//Function Number: 146
training_s1_bedroom_spawners_think()
{
maps\_utility::set_battlechatter(0);
bloody_death();
}
//Function Number: 147
training_s2_drone_manager()
{
common_scripts\utility::flag_set("training_s2_drone_start");
level notify("training_s2_drone_start");
level.player setweaponhudiconoverride("actionslot3","dpad_icon_drone_off");
common_scripts\utility::flag_set("flag_disable_exo");
training_s2_player_drone_control();
common_scripts\utility::flag_clear("flag_disable_exo");
common_scripts\utility::flag_clear("flag_player_using_drone");
common_scripts\utility::flag_set("training_s2_drone_attack_done");
}
//Function Number: 148
training_s2_player_drone_control()
{
var_00 = getent("training_s2_pdrone","targetname");
var_01 = common_scripts\utility::getstruct("pdrone_player_spawnstruct_1","targetname");
var_02 = common_scripts\utility::getstruct("pdrone_player_nothreat_return","targetname");
var_03 = getnode("pdrone_player_spawnnode_1","targetname");
var_04 = vehicle_scripts\_pdrone_player::pdrone_deploy(var_00,0,var_01);
vehicle_scripts\_pdrone_player::pdrone_player_use(var_04,"training_drone_space",undefined,undefined);
var_04 vehicle_scripts\_pdrone_player::pdrone_player_add_vehicle_target("script_noteworthy","training_s2_patio_vehicles");
level.player.drone = var_04;
var_04 vehicle_scripts\_pdrone_player::pdrone_player_enter(1,var_03,var_02);
soundscripts\_snd::snd_message("rec_player_drone_start",var_04);
var_04 vehicle_scripts\_pdrone_player::pdrone_player_loop();
soundscripts\_snd::snd_message("rec_player_drone_end");
if(var_04.customhealth <= 0)
{
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_drone_down");
}
var_04 vehicle_scripts\_pdrone_player::pdrone_player_exit(1);
var_04 delete();
}
//Function Number: 149
training_s2_enemies_patio_think(param_00,param_01,param_02)
{
self endon("death");
thread maps\_stealth_utility::enable_stealth_for_ai();
maps\_utility::disable_long_death();
self thermaldrawenable();
thread attach_flashlight_on_gun();
thread maps\_stealth_utility::disable_stealth_system();
self notify("awareness_alert_level","warning");
thread maps\_utility::set_battlechatter(1);
common_scripts\utility::flag_wait(param_02);
thread maps\_utility::player_seek_enable();
common_scripts\utility::flag_wait(param_00);
bloody_death();
}
//Function Number: 150
training_s2_patio_enemies_alert_think()
{
self endon("death");
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
self notify("alerted");
common_scripts\utility::flag_set("training_s2_patio_alert");
}
//Function Number: 151
training_s2_patio_enemies_damaged(param_00)
{
self endon("death");
self waittill("damage");
maps\_stealth_utility::disable_stealth_system();
common_scripts\utility::flag_set(param_00);
}
//Function Number: 152
training_s2_shield_tutorial()
{
if(level.player maps\_player_exo::exo_shield_is_on() == 0)
{
if(level.player.exobatterylevel == 0)
{
maps\recovery_code::give_overdrive_battery();
}
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_use_your_shield");
thread maps\_utility::display_hint_timeout("shield_prompt_sim",3);
}
}
//Function Number: 153
training_s1_drone_attack_think()
{
self endon("death");
thread maps\_shg_utility::make_emp_vulnerable();
self laseron();
if(isdefined(self.animation))
{
self.animname = "drone";
var_00 = getent("training_s1_drone_attack_scene","targetname");
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
var_00 thread maps\_anim::anim_single_solo(self,self.animation);
}
}
//Function Number: 154
training_s2_drone_ambush_attack_think()
{
self endon("death");
thread maps\_shg_utility::make_emp_vulnerable();
self laseron();
common_scripts\utility::flag_wait("training_s2_living_room_drone_attack_done");
wait(randomfloatrange(0.5,1.5));
self notify("death");
}
//Function Number: 155
training_s2_drone_attack_think(param_00,param_01)
{
self endon("death");
self.pacifist = 1;
thread maps\_shg_utility::make_emp_vulnerable();
self laseron();
thread training_s2_drone_damaged(param_01);
thread training_s2_drone_attack_death(param_01);
common_scripts\utility::flag_wait(param_01);
self notify("awareness_alert_level","warning");
self.pacifist = 0;
self.ignoreall = 0;
self.engage_enemy = 1;
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 156
training_s2_drone_damaged(param_00)
{
self endon("death");
self waittill("damage");
maps\_stealth_utility::disable_stealth_system();
common_scripts\utility::flag_set(param_00);
}
//Function Number: 157
training_s2_drone_attack_death(param_00)
{
self waittill("death");
level.drones_s2_dead = level.drones_s2_dead + 1;
maps\_stealth_utility::disable_stealth_system();
common_scripts\utility::flag_set(param_00);
}
//Function Number: 158
set_tv_screen_broken()
{
var_00 = getentarray("tv_screen_broken","targetname");
var_01 = getentarray("tv_screen_unbroken","targetname");
foreach(var_03 in var_00)
{
var_03 common_scripts\utility::show_solid();
}
foreach(var_03 in var_01)
{
var_03 common_scripts\utility::hide_notsolid();
}
}
//Function Number: 159
set_tv_screen_unbroken()
{
var_00 = getentarray("tv_screen_broken","targetname");
var_01 = getentarray("tv_screen_unbroken","targetname");
foreach(var_03 in var_00)
{
var_03 common_scripts\utility::hide_notsolid();
}
foreach(var_03 in var_01)
{
var_03 common_scripts\utility::show_solid();
}
}
//Function Number: 160
training_s1_breack_tv_screen()
{
set_tv_screen_unbroken();
common_scripts\utility::flag_wait("training_s1_flag_screen_smash");
set_tv_screen_broken();
}
//Function Number: 161
training_s1_breach_enemy_think()
{
self endon("death");
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
self.animname = "generic";
self.ignoreme = 1;
maps\_utility::disable_long_death();
self.ignoresonicaoe = 1;
if(self.animation == "training_s1_exo_breach_kva2_start")
{
thread training_s1_breach_enemy_death_check();
self endon("killed");
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
thread training_s1_breach_enemy_stop_death_check();
var_00 maps\_anim::anim_single_solo(self,self.animation);
self.noragdoll = 1;
self.a.nodeath = 1;
self.allowdeath = 1;
maps\_utility::set_battlechatter(0);
self kill();
return;
}
if(self.animation == "training_s1_exo_breach_kva3_start")
{
self disableaimassist();
}
self.allowdeath = 0;
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
var_00 maps\_anim::anim_single_solo(self,self.animation);
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
maps\_utility::set_battlechatter(0);
self kill();
}
//Function Number: 162
training_s1_breach_enemy_stop_death_check()
{
self endon("death");
self endon("killed");
wait(7);
self notify("killed2");
}
//Function Number: 163
training_s1_breach_enemy_death_check()
{
self endon("death");
self endon("killed2");
var_00 = 0;
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
while(var_00 < 5)
{
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
var_00 = var_00 + var_05;
}
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
{
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
soundscripts\_snd::snd_message("rec_chair_kva_gets_shot",var_01);
}
self notify("killed");
self stopanimscripted();
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_0B maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva2_death");
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
maps\_utility::set_battlechatter(0);
self kill();
}
}
//Function Number: 164
training_s1_breach_enemy_monitor_death()
{
var_00 = 0;
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
while(var_00 < 5)
{
self waittill("damage",var_04,var_05,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
var_00 = var_00 + var_04;
}
if(isdefined(var_01) && isdefined(var_02))
{
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
soundscripts\_snd::snd_message("rec_kva_with_president_gets_shot",var_01);
}
}
thread training_s1_breach_slomo_end();
if(common_scripts\utility::flag("training_s1_flag_president_dead") == 0)
{
common_scripts\utility::flag_set("training_s1_breach_enemy_dead");
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_0B thread maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_success");
wait 0.05;
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
maps\_utility::set_battlechatter(0);
self kill();
}
else
{
self.allowdeath = 1;
maps\_utility::set_battlechatter(0);
self kill();
}
if(var_03 == "j_head")
{
waittillframeend;
level.player.hud_damagefeedback fadeovertime(0.05);
level.player.hud_damagefeedback.alpha = 0;
level.player maps\_damagefeedback::updatedamagefeedback(self,1);
level.player maps\_upgrade_challenge::give_player_challenge_headshot(1);
}
else
{
level.player maps\_upgrade_challenge::give_player_challenge_kill(1);
}
wait(1);
level.player.hud_damagefeedback fadeovertime(1);
}
//Function Number: 165
training_s1_breach_slomo_end()
{
var_00 = 0.65;
maps\_utility::slowmo_setlerptime_out(var_00);
maps\_utility::slowmo_lerp_out();
maps\_utility::slowmo_end();
level.player setmovespeedscale(1);
}
//Function Number: 166
training_s1_breach_kva_think()
{
self endon("shot");
self endon("death");
self.ignoresonicaoe = 1;
self.animname = "generic";
self.ignoreme = 1;
self.allowdeath = 0;
maps\_utility::disable_long_death();
maps\_utility::forceuseweapon("iw5_titan45_sp","primary");
thread maps\_utility::set_battlechatter(0);
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
thread training_s1_breach_enemy_monitor_death();
var_00 maps\_anim::anim_first_frame_solo(self,"training_s1_exo_breach_kva1_start");
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_start");
var_00 thread maps\_anim::anim_loop_solo(self,"training_s1_exo_breach_kva1_idle","stop_loop");
wait(1.5);
var_00 notify("stop_loop");
level.president notify("stop_idle_loop_s1");
if(common_scripts\utility::flag("training_s1_breach_enemy_dead") == 0)
{
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_fail");
}
}
//Function Number: 167
training_s1_president_breach_setup(param_00)
{
self endon("death");
self.allowdeath = 0;
self.animname = "president";
self.name = "POTUS";
self.pacifist = 1;
self.ignoreme = 1;
self.ignoreall = 1;
thread maps\_utility::set_battlechatter(0);
thread training_s1_president_breach_monitor_death();
self.team = "allies";
level maps\_utility::clear_color_order("y","allies");
maps\_utility::set_force_color("y");
common_scripts\utility::flag_wait(param_00);
if(isdefined(self.magic_bullet_shield))
{
maps\_utility::stop_magic_bullet_shield();
}
self delete();
}
//Function Number: 168
training_s1_president_dead()
{
common_scripts\utility::flag_wait("training_s1_flag_president_shot");
playfxontag(common_scripts\utility::getfx("recovery_blood_impact_burst"),level.president,"j_head");
common_scripts\utility::flag_set("training_s1_flag_president_dead");
level.president notify("shot");
soundscripts\_snd::snd_message("rec_s1_president_killed");
wait(2);
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
maps\_utility::missionfailedwrapper();
}
//Function Number: 169
training_s1_president_breach_monitor_death()
{
self endon("breach_s1_end");
var_00 = 0;
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
while(var_00 < 5)
{
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
var_00 = var_00 + var_05;
}
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
{
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
soundscripts\_snd::snd_message("rec_plr_kills_president",var_01);
}
}
common_scripts\utility::flag_set("training_s1_flag_president_dead");
self.allowdeath = 1;
self kill();
if(isplayer(var_04))
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_MURDERED");
}
else
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
}
maps\_utility::missionfailedwrapper();
}
//Function Number: 170
training_s1_bathroom_enemy_think()
{
self endon("death");
self.ignoresonicaoe = 1;
self.animname = "kva";
self.ignoreme = 1;
self.allowdeath = 1;
self.health = 1;
maps\_utility::disable_long_death();
thread training_s1_bathroom_enemy_flag_death();
thread training_s1_bathroom_force_death();
thread maps\_utility::set_battlechatter(0);
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
thread training_s1_bathroom_enemy_dialog();
var_00 maps\_anim::anim_first_frame_solo(self,"training_s1_exo_breach_kva_bathroom_start");
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva_bathroom_start");
self.allowdeath = 0;
self.health = 100;
var_00 thread maps\_anim::anim_loop_solo(self,"training_s1_exo_breach_kva_bathroom_idle","stop_loop");
self.ignoreme = 0;
level.joker.ignoreall = 0;
thread training_s1_bathroom_enemy_monitor_death();
self waittill("shot");
var_00 notify("stop_loop");
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva_bathroom_death");
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
wait(0.05);
self kill();
}
//Function Number: 171
training_s1_bathroom_enemy_dialog()
{
self endon("death");
wait(3.5);
common_scripts\utility::flag_set("flag_vo_training_s1_kva_what");
}
//Function Number: 172
training_s1_bathroom_enemy_monitor_death()
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(isdefined(var_03) && isdefined(var_04))
{
if(var_04 == "MOD_PISTOL_BULLET" || var_04 == "MOD_RIFLE_BULLET" || var_04 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_03);
}
}
self notify("shot");
}
//Function Number: 173
training_s1_bathroom_enemy_flag_death()
{
self waittill("death");
common_scripts\utility::flag_set("training_s1_bathroom_enemy_dead");
}
//Function Number: 174
training_s1_bathroom_force_death()
{
common_scripts\utility::flag_wait("training_s1_flag_bathroom_guy_shot");
self kill();
}
//Function Number: 175
training_s1_exo_breach_monitor_enemy_group_death()
{
maps\_utility::waittill_aigroupcleared("training_s1_enemies_breach");
common_scripts\utility::flag_set("training_s1_exo_breach_clear");
}
//Function Number: 176
training_s1_enemies_ambush_think(param_00)
{
self endon("death");
thread maps\_utility::disable_long_death();
attach_flashlight_on_gun();
common_scripts\utility::flag_wait(param_00);
bloody_death();
}
//Function Number: 177
training_s2_enemies_ambush_think(param_00)
{
self endon("death");
thread maps\_utility::disable_long_death();
attach_flashlight_on_gun();
common_scripts\utility::flag_wait(param_00);
bloody_death();
}
//Function Number: 178
training_s1_joker_move()
{
level endon("training_s1_living_room_scene");
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
common_scripts\utility::flag_wait("training_s1_start_alerted");
maps\_utility::waittill_aigroupcleared("training_s1_start");
maps\_utility::waittill_aigroupcleared("training_s1_enemies_start");
var_00 maps\_anim::anim_reach_solo(level.joker,"training_s1_threat_guy_in");
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_threat_guy_in");
}
//Function Number: 179
training_s1_patio_door_breach()
{
var_00 = common_scripts\utility::getstruct("training_s2_patio_door_animnode","targetname");
common_scripts\utility::flag_set("training_s1_patio_doors_joker_in");
var_00 maps\_anim::anim_reach_solo(level.joker,"training_s1_patio_joker_door_in");
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_in");
var_00 thread maps\_anim::anim_loop_solo(level.joker,"training_s1_patio_joker_door_idle","stop_loop1");
thread training_s1_patio_door_breach_monitor(var_00);
common_scripts\utility::flag_wait("training_s1_joker_search_drones_cover");
level.joker maps\_utility::cqb_walk("on");
if(common_scripts\utility::flag("training_s1_search_drones_attack") == 1)
{
var_00 notify("stop_loop2");
var_00 thread maps\_anim::anim_single_solo_run(level.joker,"training_s1_patio_joker_door_out");
common_scripts\utility::flag_set("training_s1_breach_patio_doors_open");
}
else
{
var_00 notify("stop_loop1");
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_slow_in");
common_scripts\utility::flag_set("training_s1_slow_patio_doors_open");
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_slow_open");
var_00 thread maps\_anim::anim_single_solo_run(level.joker,"training_s1_patio_joker_door_slow_out");
}
level notify("advance_to_patio");
}
//Function Number: 180
training_s1_patio_door_breach_monitor(param_00)
{
self endon("training_s1_search_drones_done");
common_scripts\utility::flag_wait("training_s1_search_drones_attack");
param_00 notify("stop_loop1");
param_00 thread maps\_anim::anim_loop_solo(level.joker,"training_s1_patio_joker_door_alert_idle","stop_loop2");
}
//Function Number: 181
training_s1_patio_door_clip()
{
var_00 = getent("french_door_clip_01","targetname");
var_01 = getent("french_door_clip_02","targetname");
var_02 = getent("training_patio_french_doors","targetname");
var_00 linkto(var_02,"door_r");
var_01 linkto(var_02,"door_l");
var_00 connectpaths();
var_01 connectpaths();
common_scripts\utility::flag_wait("training_s1_end");
wait(1);
var_00 disconnectpaths();
var_01 disconnectpaths();
}
//Function Number: 182
training_s2_breach_enemy_think()
{
self endon("death");
self.ignoresonicaoe = 1;
self.animname = "generic";
self.ignoreme = 1;
self.allowdeath = 1;
self.health = 5;
maps\_utility::disable_long_death();
thread maps\_utility::set_battlechatter(0);
if(isdefined(self.animation))
{
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
var_00 maps\_anim::anim_single_solo(self,self.animation);
}
}
//Function Number: 183
training_s2_breach_enemy_stop_death_check()
{
self endon("death");
self endon("killed");
wait(7);
self notify("killed2");
}
//Function Number: 184
training_s2_breach_enemy_death_check()
{
self endon("death");
self endon("killed2");
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(isdefined(var_03) && isdefined(var_04) && isplayer(var_01))
{
if(var_04 == "MOD_PISTOL_BULLET" || var_04 == "MOD_RIFLE_BULLET" || var_04 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_03);
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_03);
}
self notify("killed");
self stopanimscripted();
var_05 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_05 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva2_death");
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
thread maps\_utility::set_battlechatter(0);
self kill();
}
}
//Function Number: 185
training_s2_breach_kva_think()
{
self endon("shot");
self endon("death");
self.ignoresonicaoe = 1;
self.animname = "generic";
self.ignoreme = 1;
self.allowdeath = 0;
maps\_utility::disable_long_death();
maps\_utility::forceuseweapon("iw5_titan45_sp","primary");
thread maps\_utility::set_battlechatter(0);
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
thread training_s2_breach_enemy_monitor_death();
var_00 maps\_anim::anim_first_frame_solo(self,"training_s2_exo_breach_kva1_react");
var_00 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_react");
var_00 thread maps\_anim::anim_loop_solo(self,"training_s2_exo_breach_kva1_react_idle","stop_loop");
wait(3);
var_00 notify("stop_loop");
level.president notify("stop_idle_loop_s2");
if(common_scripts\utility::flag("training_s2_breach_enemy_dead") == 0)
{
var_00 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_fail");
}
}
//Function Number: 186
training_s1_bathroom_breach_door()
{
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_01 = getent("training_exo_breach_bathroom_door","targetname");
var_01.animname = "door_prop";
var_01 maps\_utility::assign_animtree();
var_02 = getent("breach_bathroom_door_clip","targetname");
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_bathroom_door");
soundscripts\_snd::snd_message("rec_bathroom_guy",var_01);
var_02 linkto(var_01,"door");
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_bathroom_door");
var_02 connectpaths();
}
//Function Number: 187
training_s2_breach_enemy_monitor_death()
{
var_00 = 0;
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
while(var_00 < 5)
{
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
var_00 = var_00 + var_05;
}
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
{
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_01);
}
}
if(common_scripts\utility::flag("training_s2_flag_president_dead") == 0)
{
common_scripts\utility::flag_set("training_s2_breach_enemy_dead");
self notify("shot");
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_0B thread maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_success");
wait 0.05;
self.noragdoll = 1;
self.allowdeath = 1;
self.a.nodeath = 1;
thread maps\_utility::set_battlechatter(0);
self kill();
}
else
{
common_scripts\utility::flag_set("training_s2_breach_enemy_dead");
self notify("shot");
self.allowdeath = 1;
thread maps\_utility::set_battlechatter(0);
self kill();
}
if(var_03 == "j_head")
{
waittillframeend;
level.player.hud_damagefeedback fadeovertime(0.05);
level.player.hud_damagefeedback.alpha = 0;
level.player maps\_damagefeedback::updatedamagefeedback(self,1);
level.player maps\_upgrade_challenge::give_player_challenge_headshot(1);
}
else
{
level.player maps\_upgrade_challenge::give_player_challenge_kill(1);
}
wait(1);
level.player.hud_damagefeedback fadeovertime(1);
}
//Function Number: 188
training_s2_breach_enemies_monitor()
{
common_scripts\utility::flag_wait("training_s2_breach_enemy_dead");
maps\_utility::waittill_aigroupcleared("training_s2_enemies_breach");
var_00 = 0.65;
maps\_utility::slowmo_setlerptime_out(var_00);
maps\_utility::slowmo_lerp_out();
maps\_utility::slowmo_end();
level.player setmovespeedscale(1);
common_scripts\utility::flag_set("training_s2_breach_enemies_dead");
}
//Function Number: 189
training_s2_president_setup()
{
self endon("death");
maps\_utility::magic_bullet_shield();
self.animname = "president";
self.name = "POTUS";
self.pacifist = 1;
self.ignoreme = 1;
self.ignoreall = 1;
thread maps\_utility::set_battlechatter(0);
self.team = "allies";
level maps\_utility::clear_color_order("y","allies");
maps\_utility::set_force_color("y");
}
//Function Number: 190
training_s2_breach_president_setup()
{
self endon("death");
self.allowdeath = 0;
self.animname = "president";
self.name = "POTUS";
self.pacifist = 1;
self.ignoreme = 1;
self.ignoreall = 1;
thread maps\_utility::set_battlechatter(0);
thread training_s2_president_breach_monitor_death();
self.team = "allies";
level maps\_utility::clear_color_order("y","allies");
maps\_utility::set_force_color("y");
}
//Function Number: 191
training_s2_president_breach_monitor_death()
{
self endon("breach_s2_end");
var_00 = 0;
var_01 = 0;
var_02 = 0;
var_03 = 0;
while(var_00 < 5)
{
self waittill("damage",var_04,var_03,var_05,var_01,var_02);
var_00 = var_00 + var_04;
}
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_03))
{
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
{
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_01);
}
}
common_scripts\utility::flag_set("training_s2_flag_president_dead");
self.allowdeath = 1;
self kill();
if(isplayer(var_03))
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_MURDERED");
}
else
{
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
}
maps\_utility::missionfailedwrapper();
}
//Function Number: 192
training_s2_president_dead()
{
common_scripts\utility::flag_wait("training_s2_flag_president_shot");
wait(0.2);
playfxontag(common_scripts\utility::getfx("recovery_blood_impact_burst"),level.president,"j_head");
common_scripts\utility::flag_set("training_s2_flag_president_dead");
level.president notify("shot_s2");
wait(2);
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
maps\_utility::missionfailedwrapper();
}
//Function Number: 193
training_s2_exo_breach_knife()
{
var_00 = maps\_utility::spawn_anim_model("knife_prop");
var_00.animname = "knife_prop";
var_01 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
var_01 maps\_anim::anim_first_frame_solo(var_00,"training_s2_exo_knife");
var_01 maps\_anim::anim_single_solo(var_00,"training_s2_exo_knife");
var_00 delete();
}
//Function Number: 194
training_s2_open_patio_door()
{
var_00 = common_scripts\utility::getstruct("training_s2_patio_door_animnode","targetname");
var_00 maps\_anim::anim_reach_solo(level.gideon,"training_s2_patio_gideon_door_in");
level.patio_doors notify("in2");
var_00 maps\_anim::anim_single_solo(level.gideon,"training_s2_patio_gideon_door_in");
var_00 thread maps\_anim::anim_loop_solo(level.gideon,"training_s2_patio_gideon_door_idle","stop_loop");
common_scripts\utility::flag_wait("training_s2_living_room_drone_attack_done");
var_00 notify("stop_loop");
if(level.broken_door == 0)
{
common_scripts\utility::flag_set("training_s2_gideon_smash_french_door");
var_00 maps\_anim::anim_reach_solo(level.gideon,"training_s2_patio_gideon_door_out");
level.patio_doors notify("go2");
level.gideon maps\_utility::cqb_walk("on");
var_00 thread maps\_anim::anim_single_solo_run(level.gideon,"training_s2_patio_gideon_door_out");
}
maps\_utility::activate_trigger("training_s2_patio_color_trigger","targetname");
}
//Function Number: 195
training_s2_player_drone()
{
level endon("training_s2_drone_enemies_killed");
level.player.showhint = 1;
maps\_utility::display_hint_timeout("drone_deploy_prompt",10);
for(;;)
{
level.player waittill("use_drone");
while(level.player isjumping())
{
wait 0.05;
}
if(vehicle_scripts\_pdrone_player::pdrone_deploy_check(85))
{
break;
}
else
{
level.player.showhint = 0;
wait(0.25);
level.player.showhint = 1;
maps\_utility::display_hint_timeout("drone_deploy_fail_prompt",2);
wait(2);
level.player.showhint = 0;
wait(0.25);
level.player.showhint = 1;
maps\_utility::display_hint_timeout("drone_deploy_prompt",10);
}
}
level.player.showhint = 0;
if(common_scripts\utility::flag("training_s2_drone_attack_done") == 0)
{
common_scripts\utility::flag_set("training_s2_drone_start");
level notify("training_s2_drone_start");
maps\_utility::array_spawn_noteworthy("training_s2_enemies2_patio",1);
common_scripts\utility::flag_set("training_s2_patio_alert");
common_scripts\utility::flag_set("flag_player_using_drone");
thread training_s2_drone_manager();
}
}
//Function Number: 196
training_s2_player_drone_delete()
{
self endon("death");
common_scripts\utility::flag_wait("training_s2_drone_start");
self delete();
}
//Function Number: 197
training_s2_spawn_search_vehicle()
{
var_00 = getent("training_s2_patio_vehicles","script_noteworthy");
var_01 = var_00 maps\_vehicle::spawn_vehicle_and_gopath();
var_01 thread training_s2_drone_attack_vehicles_think();
}
//Function Number: 198
training_s2_drone_attack_vehicles_think()
{
self endon("death");
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_back_right");
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_back_left");
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_front_right");
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_front_left");
foreach(var_01 in self.riders)
{
var_01 thread training_s2_unload_drone_attack_think();
}
self waittill("reached_end_node");
maps\_vehicle::vehicle_unload("all_but_gunner");
}
//Function Number: 199
training_s2_unload_drone_attack_think()
{
self endon("death");
if(isdefined(self.vehicle_position))
{
thread attach_flashlight_on_vehicle_unload();
thread maps\_utility::set_battlechatter(0);
}
common_scripts\utility::flag_wait("training_s2_patio_alert");
self notify("awareness_alert_level","warning");
thread maps\_utility::set_battlechatter(1);
common_scripts\utility::flag_wait("flag_training_s2_patio_enemies_charge");
thread maps\_utility::player_seek_enable();
common_scripts\utility::flag_wait("training_s2_clear_patio_spawn");
bloody_death(randomfloatrange(0.5,1.5));
}
//Function Number: 200
training_s2_patio_enemies_alert_check()
{
self endon("death");
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(var_01 == level.player)
{
wait(2);
common_scripts\utility::flag_set("training_s2_patio_alert");
self notify("alerted");
}
}
//Function Number: 201
training_s2_ambush_vehicles_think(param_00)
{
self endon("death");
foreach(var_02 in self.riders)
{
var_02 thread training_s2_unload1_think(param_00);
}
self waittill("reached_end_node");
maps\_vehicle::vehicle_unload();
common_scripts\utility::flag_wait(param_00);
wait(randomfloatrange(0.5,4.5));
self kill();
}
//Function Number: 202
training_s2_unload1_think(param_00)
{
self endon("death");
if(isdefined(self.vehicle_position))
{
thread attach_flashlight_on_vehicle_unload();
maps\_utility::disable_long_death();
}
common_scripts\utility::flag_wait(param_00);
wait(randomintrange(1,6));
bloody_death();
}
//Function Number: 203
training_s2_kva_ambush1_think(param_00)
{
self endon("death");
thread attach_flashlight_on_gun();
maps\_utility::disable_long_death();
maps\_utility::ai_ignore_everything();
maps\_utility::delaythread(3,::maps\_utility::ai_unignore_everything);
common_scripts\utility::flag_wait(param_00);
wait(randomintrange(1,6));
bloody_death();
}
//Function Number: 204
training_s2_drone_end_think(param_00)
{
self endon("death");
thread maps\_shg_utility::make_emp_vulnerable();
self laseron();
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 205
training_s2_guard_house_doors()
{
var_00 = getent("guard_door_01","targetname");
getent(var_00.target,"targetname") linkto(var_00);
var_01 = getent("guard_door_02","targetname");
getent(var_01.target,"targetname") linkto(var_01);
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
var_00 connectpaths();
var_01 connectpaths();
wait(4);
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
var_00 disconnectpaths();
var_01 disconnectpaths();
}
//Function Number: 206
training_s1_set_squad_passive_and_ignore()
{
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreall,1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreme,1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_battlechatter,0);
}
//Function Number: 207
training_s1_set_sqaud_cqb_enable()
{
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::enable_cqbwalk);
}
//Function Number: 208
training_s1_set_squad_active_and_target()
{
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreall,0);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreme,0);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_battlechatter,1);
}
//Function Number: 209
training_s1_set_sqaud_cqb_disable()
{
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::disable_cqbwalk);
}
//Function Number: 210
training_s2_set_squad_passive_and_ignore()
{
level.allies_s2 = maps\_utility::array_removedead(level.allies_s2);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreall,1);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreme,1);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_battlechatter,0);
}
//Function Number: 211
training_s2_set_squad_active_and_target()
{
level.allies_s2 = maps\_utility::array_removedead(level.allies_s2);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreall,0);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreme,0);
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_battlechatter,1);
}
//Function Number: 212
warbird_heavy_shooting_think(param_00)
{
level.player endon("death");
self endon("death");
self.mgturret[0] setmode("manual");
self.mgturret[1] setmode("manual");
if(!maps\_utility::ent_flag_exist("fire_turrets"))
{
maps\_utility::ent_flag_init("fire_turrets");
}
maps\_utility::ent_flag_set("fire_turrets");
thread warbird_heavy_fire_monitor();
for(;;)
{
self waittill("warbird_fire");
maps\_utility::ent_flag_set("fire_turrets");
thread warbird_heavy_fire(param_00);
self waittill("warbird_stop_firing");
maps\_utility::ent_flag_clear("fire_turrets");
}
}
//Function Number: 213
warbird_heavy_fire(param_00)
{
self endon("death");
var_01 = self.mgturret[0];
var_02 = self.mgturret[1];
var_01 notify("stop_burst_fire_unmanned");
var_02 notify("stop_burst_fire_unmanned");
var_03 = 0.4;
var_04 = var_03 / 2;
var_01 thread burst_fire_warbird(var_03,0);
var_02 thread burst_fire_warbird(var_03,var_04);
var_05 = common_scripts\utility::get_enemy_team(self.script_team);
while(maps\_utility::ent_flag("fire_turrets"))
{
var_06 = getaiarray(var_05);
if(isdefined(level.flying_attack_drones))
{
var_07 = level.flying_attack_drones;
}
else
{
var_07 = [];
}
if(isdefined(level.drones) && isdefined(level.drones[var_05].array))
{
var_06 = common_scripts\utility::array_combine(var_06,level.drones[var_05].array);
}
if(var_05 == level.player.team)
{
var_06 = common_scripts\utility::array_add(var_06,level.player);
}
var_06 = common_scripts\utility::array_combine(var_06,var_07);
var_08 = [];
foreach(var_0A in var_06)
{
if(isdefined(var_0A.ignoreme) && var_0A.ignoreme)
{
continue;
}
else
{
var_08[var_08.size] = var_0A;
}
}
var_08 = sortbydistance(var_08,self.origin);
var_0C = undefined;
foreach(var_0A in var_08)
{
if(!isdefined(var_0A))
{
continue;
}
if(!isalive(var_0A))
{
continue;
}
if(isdefined(param_00) && param_00)
{
var_0E = self.mgturret[0] gettagorigin("tag_flash");
var_0F = var_0A geteye();
var_10 = vectornormalize(var_0F - var_0E);
var_11 = var_0E + var_10 * 20;
if(!sighttracepassed(var_11,var_0F,0,var_0A,self.mgturret[0]))
{
continue;
}
}
var_0C = var_0A;
break;
}
if(isdefined(var_0C))
{
var_01 settargetentity(var_0C);
var_02 settargetentity(var_0C);
var_01 turretfireenable();
var_02 turretfireenable();
var_01 startfiring();
var_02 startfiring();
wait_for_warbird_fire_target_done(var_0C,param_00);
var_01 notify("stop_firing");
var_02 notify("stop_firing");
var_01 cleartargetentity();
var_02 cleartargetentity();
var_01 turretfiredisable();
var_02 turretfiredisable();
}
wait(0.05);
}
var_01 turretfiredisable();
var_02 turretfiredisable();
}
//Function Number: 214
warbird_heavy_fire_monitor()
{
self endon("death");
self waittill("warbird_stop_firing");
maps\_utility::ent_flag_clear("fire_turrets");
}
//Function Number: 215
burst_fire_warbird(param_00,param_01)
{
self endon("death");
self endon("stop_burst_fire_warbird");
var_02 = 1;
var_03 = 1;
var_04 = 1;
var_05 = 1;
var_06 = gettime();
var_07 = "start";
for(;;)
{
var_08 = var_06 - gettime() * 0.001;
if(self isfiringturret() && var_08 <= 0)
{
if(var_07 != "fire")
{
var_07 = "fire";
thread doshoottuned(param_00,param_01);
}
var_08 = var_04 + randomfloat(var_05);
thread turrettimer(var_08);
self waittill("turretstatechange");
var_08 = var_02 + randomfloat(var_03);
var_06 = gettime() + int(var_08 * 1000);
continue;
}
if(var_07 != "aim")
{
var_07 = "aim";
}
thread turrettimer(var_08);
self waittill("turretstatechange");
}
}
//Function Number: 216
doshoottuned(param_00,param_01)
{
self endon("death");
self endon("turretstatechange");
if(isdefined(param_01) && param_01 > 0)
{
wait(param_01);
}
for(;;)
{
self shootturret();
wait(param_00);
}
}
//Function Number: 217
turrettimer(param_00)
{
if(param_00 <= 0)
{
return;
}
self endon("turretstatechange");
wait(param_00);
if(isdefined(self))
{
self notify("turretstatechange");
}
}
//Function Number: 218
military_drone_stationary_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
if(isdefined(self.animation))
{
self.idleanim = self.animation;
}
else
{
self.idleanim = %patrol_bored_idle;
}
self.spawner thread maps\_anim::anim_generic_loop(self,self.idleanim);
self.name = " ";
self setlookattext(self.name,&"");
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 219
military_drone_runners_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
self.animname = "generic";
self.name = " ";
self.runanim = maps\_utility::getanim(self.animation);
self.idleanim = %patrol_bored_idle;
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 220
military_drone_guards_stationary_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
if(isdefined(self.animation))
{
self.idleanim = self.animation;
}
else
{
self.idleanim = %patrol_bored_idle;
}
thread maps\_anim::anim_generic_loop(self,self.idleanim);
common_scripts\utility::flag_waitopen(param_00);
self delete();
}
//Function Number: 221
military_drone_guards_patrol_think(param_00)
{
self pushplayer(1);
self.animname = "generic";
self.idleanim = %patrol_bored_idle;
maps\_utility::set_run_anim("active_patrolwalk_gundown");
maps\_utility::ai_ignore_everything();
maps\_utility::disable_arrivals();
maps\_utility::disable_exits();
self.goalradius = 16;
maps\_utility::set_battlechatter(0);
common_scripts\utility::flag_waitopen(param_00);
self delete();
}
//Function Number: 222
grenade_range_enemy_think()
{
self waittill("death",var_00);
level.grenade_range_container.aikills++;
level.grenade_range_container notify("score_change");
if(!isplayer(var_00))
{
return;
}
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
{
}
level notify("grenade_range_point_scored_100");
}
//Function Number: 223
grenade_range_drone_think()
{
self endon("no_score");
grenade_range_drone_death_detect();
level.grenade_range_container.dronekills++;
level.grenade_range_container notify("score_change");
var_00 = self.mod;
if(var_00 == "EMP")
{
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
{
}
level notify("grenade_range_point_scored_100");
}
if(var_00 == "grenade")
{
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
{
}
level notify("grenade_range_point_scored_100");
}
if(var_00 == "bullet")
{
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
{
}
level notify("grenade_range_point_scored_50");
}
}
//Function Number: 224
grenade_range_drone_death_detect()
{
self.mod = "EMP";
self endon("emp_death");
self waittill("death",var_00,var_01,var_02);
switch(var_01)
{
case "MOD_RIFLE_BULLET":
case "MOD_PISTOL_BULLET":
self.mod = "bullet";
break;
case "MOD_EXPLOSIVE":
case "MOD_GRENADE_SPLASH":
case "MOD_GRENADE":
self.mod = "grenade";
break;
default:
break;
}
}
//Function Number: 225
civilian_drone_repair_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
if(self.weapon != "none")
{
maps\_utility::gun_remove();
}
if(isdefined(self.animation))
{
self.idleanim = self.animation;
}
else
{
self.idleanim = %cliffhanger_welder_engine;
}
self.eaniment = self.spawner;
self.eaniment.origin = self.eaniment.origin + (0,0,-3);
self attach("machinery_welder_handle","tag_inhand");
thread flashing_welding();
self.spawner thread maps\_anim::anim_generic_loop(self,"cliffhanger_welder_engine");
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 226
civilian_drone_stationary_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
if(self.weapon != "none")
{
maps\_utility::gun_remove();
}
if(isdefined(self.animation))
{
self.idleanim = self.animation;
}
else
{
self.idleanim = %civilian_stand_idle;
}
self.spawner thread maps\_anim::anim_generic_loop(self,self.idleanim);
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 227
civilian_drone_runners_think(param_00)
{
self endon("death");
if(isdefined(self.script_parameters))
{
self.script_noteworthy = self.script_parameters;
}
self.animname = "generic";
self.runanim = maps\_utility::getanim(self.animation);
if(self.weapon != "none")
{
maps\_utility::gun_remove();
}
self.idleanim = %civilian_stand_idle;
common_scripts\utility::flag_wait(param_00);
self delete();
}
//Function Number: 228
flashing_welding()
{
self endon("death");
thread stop_sparks();
playfxontag(level._effect["welding_sparks_oneshot_sml"],self,"tag_tip_fx");
}
//Function Number: 229
stop_sparks()
{
self endon("death");
for(;;)
{
self waittillmatch("spark off","looping anim");
self notify("spark off");
}
}
//Function Number: 230
setup_deck_deploy_warbird()
{
waittillframeend;
self notify("warbird_fire");
var_00 = get_passengers();
var_00 thread ignore_until_unloaded();
}
//Function Number: 231
get_passengers()
{
var_00 = self.riders;
var_01 = [];
foreach(var_03 in var_00)
{
if(!isdefined(var_03.drivingvehicle))
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 232
ignore_until_unloaded()
{
var_00 = 1;
foreach(var_02 in self)
{
var_02.ignoreme = 1;
var_02 thread wait_until_unloaded(var_00);
var_00++;
}
}
//Function Number: 233
wait_until_unloaded(param_00)
{
self endon("death");
self waittill("jumpedout");
self.ignoreme = 0;
goto_node("zipline_path0" + param_00,0,256);
self waittill("goal");
wait(5);
self delete();
}
//Function Number: 234
warbird_fire(param_00)
{
self endon("death");
var_01 = self.mgturret[0];
var_02 = self.mgturret[1];
var_03 = 3;
while(maps\_utility::ent_flag("fire_turrets"))
{
var_04 = getaiarray("allies");
if(!maps\_utility::ent_flag_exist("dont_shoot_player") || !maps\_utility::ent_flag("dont_shoot_player"))
{
var_05 = 33;
if(randomint(100) <= var_05)
{
var_04 = common_scripts\utility::array_add(var_04,level.player);
}
}
var_06 = [];
foreach(var_08 in var_04)
{
if(isdefined(var_08.ignoreme) && var_08.ignoreme)
{
continue;
}
else
{
var_06[var_06.size] = var_08;
}
}
var_06 = sortbydistance(var_06,self.origin);
var_0A = undefined;
foreach(var_08 in var_06)
{
if(!isdefined(var_08))
{
continue;
}
if(!isalive(var_08))
{
continue;
}
if(isdefined(param_00) && param_00)
{
var_0C = self.mgturret[0] gettagorigin("tag_flash");
var_0D = var_08 geteye();
var_0E = vectornormalize(var_0D - var_0C);
var_0F = var_0D + var_0E * 20;
if(!sighttracepassed(var_0F,var_0D,0,var_08,self.mgturret[0]))
{
continue;
}
}
var_0A = var_08;
break;
}
if(isdefined(var_0A))
{
var_01 settargetentity(var_0A);
var_02 settargetentity(var_0A);
var_01 turretfireenable();
var_02 turretfireenable();
var_01 startfiring();
var_02 startfiring();
wait_for_warbird_fire_target_done(var_0A,param_00);
var_01 cleartargetentity();
var_02 cleartargetentity();
var_01 turretfiredisable();
var_02 turretfiredisable();
}
wait(var_03);
}
var_01 turretfiredisable();
var_02 turretfiredisable();
}
//Function Number: 235
wait_for_warbird_fire_target_done(param_00,param_01)
{
param_00 endon("death");
if(!maps\_utility::ent_flag("fire_turrets"))
{
return;
}
self endon("fire_turrets");
if(param_00 == level.player)
{
var_02 = 0.6;
}
else
{
var_02 = 3;
}
var_03 = 0;
while(var_03 < var_02)
{
if(isdefined(param_01) && param_01)
{
var_04 = self.mgturret[0] gettagorigin("tag_flash");
var_05 = param_00 geteye();
var_06 = vectornormalize(var_05 - var_04);
var_07 = var_04 + var_06 * 20;
if(!sighttracepassed(var_07,var_05,0,param_00,self.mgturret[0]))
{
return;
}
}
var_03 = var_03 + 0.3;
wait(0.3);
}
}
//Function Number: 236
prep_user_for_drone()
{
self disableweapons();
self.ignoreme = 1;
self enableinvulnerability();
var_00 = getaiarray("axis");
foreach(var_02 in var_00)
{
var_02 thermaldrawenable();
}
var_04 = getaiarray("allies");
foreach(var_02 in var_04)
{
var_02 thermaldrawenable();
}
wait 0.05;
level.player thermalvisionon();
}
//Function Number: 237
make_drone_fully_controllable(param_00)
{
param_00 endon("death");
level.player thread monitor_drone_stick_deflection(param_00);
wait 0.05;
for(;;)
{
var_01 = level.player.drone_control["stick_input_move"] * 10;
var_02 = getdroneperlinovertime(5,3,2,0.5);
var_03 = param_00 setvehgoalpos(param_00.origin + var_01 + var_02);
wait 0.05;
}
}
//Function Number: 238
getdroneperlinovertime(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 1;
}
var_04 = (perlinnoise2d(gettime() * 0.001 * 0.05,10,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,20,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,30,param_00,param_01,param_02) * param_03);
return var_04;
}
//Function Number: 239
monitor_drone_stick_deflection(param_00)
{
param_00 endon("death");
for(;;)
{
var_01 = self getnormalizedmovement();
var_01 = (var_01[0],var_01[1] * -1,0);
var_02 = self.angles;
var_03 = vectortoangles(var_01);
var_04 = common_scripts\utility::flat_angle(combineangles(var_02,var_03));
var_05 = anglestoforward(var_04) * length(var_01);
self.drone_control["stick_input_move"] = var_05;
wait 0.05;
}
}
//Function Number: 240
unlink_player_from_drone(param_00)
{
level.player.dronetag unlink();
level.player unlink();
level.player maps\_utility::teleport_player(param_00);
wait 0.05;
level.player remove_user_from_drone();
level.player lerpfov(65,0);
}
//Function Number: 241
remove_user_from_drone()
{
self enableweapons();
self.ignoreme = 0;
self disableinvulnerability();
level.player thermalvisionoff();
}
//Function Number: 242
recovery_breach_setup_player()
{
level.player enableinvulnerability();
level.player disableweaponswitch();
level.player disableoffhandweapons();
level.player allowcrouch(0);
level.player allowprone(0);
level.player allowsprint(0);
level.player allowjump(0);
}
//Function Number: 243
recovery_breach_cleanup_player()
{
level.player disableinvulnerability();
level.player enableweaponswitch();
level.player enableoffhandweapons();
level.player allowcrouch(1);
level.player allowprone(1);
level.player allowsprint(1);
level.player allowjump(1);
}
//Function Number: 244
breach_slow_down(param_00)
{
}
//Function Number: 245
enable_player_control(param_00)
{
level.player unlink();
level.player_rig delete();
}
//Function Number: 246
spawn_player_rig(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = "player_rig";
}
if(!isdefined(param_01))
{
param_01 = level.player.origin;
}
var_02 = maps\_utility::spawn_anim_model(param_00);
return var_02;
}
//Function Number: 247
disable_trigger_while_player_animating(param_00)
{
level endon(param_00);
for(;;)
{
if(isdefined(self.trigger_off))
{
common_scripts\utility::trigger_on();
}
wait(0.05);
}
}
//Function Number: 248
goto_node(param_00,param_01,param_02)
{
self endon("stop_goto_node");
if(!isdefined(param_02))
{
param_02 = 16;
}
maps\_utility::set_goal_radius(param_02);
if(isstring(param_00))
{
var_03 = getnode(param_00,"script_noteworthy");
}
else
{
var_03 = param_01;
}
if(isdefined(var_03))
{
maps\_utility::set_goal_node(var_03);
}
else
{
var_03 = common_scripts\utility::getstruct(param_00,"script_noteworthy");
maps\_utility::set_goal_pos(var_03.origin);
}
if(param_01)
{
self waittill("goal");
}
}
//Function Number: 249
leaderboard_precache()
{
precachemodel("rec_sb_row");
for(var_00 = 0;var_00 <= 9;var_00++)
{
precachemodel("rec_sb_" + var_00);
}
for(var_00 = 1;var_00 <= 9;var_00++)
{
precachemodel("rec_sb_name_0" + var_00);
}
precachemodel("rec_sb_name_10");
precachemodel("rec_sb_name_11");
precachemodel("rec_sb_drone_range");
precachemodel("rec_sb_ar_range");
precachemodel("rec_sb_shooting_range");
}
//Function Number: 250
leaderboard_make(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.isleaderboard = 1;
var_03.maxentries = param_00;
var_03.range_name = param_01;
if(isdefined(param_02))
{
var_03.shouldsortscoresinascendingorder = param_02;
}
else
{
var_03.shouldsortscoresinascendingorder = 0;
}
var_03.playerscores = [];
var_03 leaderboard_defaults(param_01);
var_03.leaderboard_screen = var_03 leaderboard_screen_make();
var_03 leaderboard_screen_update();
return var_03;
}
//Function Number: 251
leaderboard_compare_scores(param_00,param_01)
{
var_02 = self;
return (var_02.shouldsortscoresinascendingorder && param_01 < param_00) || !var_02.shouldsortscoresinascendingorder && param_01 > param_00;
}
//Function Number: 252
leaderboard_sort_scores()
{
var_00 = self.playerscores;
for(var_01 = 0;var_01 < var_00.size - 1;var_01++)
{
for(var_02 = var_01 + 1;var_02 < var_00.size;var_02++)
{
if(leaderboard_compare_scores(var_00[var_01].playerscore,var_00[var_02].playerscore) || var_00[var_02].playerscore == var_00[var_01].playerscore && var_00[var_02].playername == "player")
{
var_03 = var_00[var_02];
var_00[var_02] = var_00[var_01];
var_00[var_01] = var_03;
}
}
}
self.playerscores = var_00;
}
//Function Number: 253
leaderboard_record(param_00,param_01)
{
var_02 = self;
if(param_00 == "player")
{
for(var_03 = 0;var_03 < var_02.playerscores.size;var_03++)
{
var_04 = var_02.playerscores[var_03];
if(var_04.playername == param_00)
{
if(var_02 leaderboard_compare_scores(var_04.playerscore,param_01))
{
var_04.playerscore = param_01;
var_02 leaderboard_sort_scores();
}
return;
}
}
}
if(var_02.playerscores.size == var_02.maxentries && var_02 leaderboard_compare_scores(param_01,var_02.playerscores[var_02.maxentries - 1].playerscore))
{
return;
}
var_04 = spawnstruct();
var_04.isleaderboardentry = 1;
var_04.playername = param_00;
var_04.playerscore = param_01;
if(var_02.playerscores.size == var_02.maxentries)
{
var_02.playerscores[var_02.maxentries - 1] = var_04;
}
else
{
var_02.playerscores[var_02.playerscores.size] = var_04;
}
var_02 leaderboard_sort_scores();
}
//Function Number: 254
leaderboard_defaults(param_00)
{
var_01 = [];
var_01["drone_range"] = "sb_drone_range";
var_01["grenade_range"] = "sb_grenade_range";
var_01["shooting_range"] = "sb_shooting_range";
var_02 = [];
var_02["drone_range"] = "rec_sb_drone_range";
var_02["grenade_range"] = "rec_sb_ar_range";
var_02["shooting_range"] = "rec_sb_shooting_range";
if(param_00 == "shooting_range")
{
leaderboard_record("name_01",2375);
leaderboard_record("name_02",2050);
leaderboard_record("name_03",1825);
leaderboard_record("name_04",1650);
leaderboard_record("name_05",1300);
leaderboard_record("name_06",1150);
leaderboard_record("name_07",975);
leaderboard_record("name_08",775);
leaderboard_record("name_09",425);
leaderboard_record("name_10",200);
leaderboard_record("player",0);
}
else if(param_00 == "grenade_range")
{
leaderboard_record("name_01",1800);
leaderboard_record("name_02",1550);
leaderboard_record("name_03",1400);
leaderboard_record("name_04",1200);
leaderboard_record("name_05",950);
leaderboard_record("name_06",750);
leaderboard_record("name_07",600);
leaderboard_record("name_08",300);
leaderboard_record("name_09",250);
leaderboard_record("name_10",100);
}
else if(param_00 == "drone_range")
{
leaderboard_record("name_01",15);
leaderboard_record("name_02",21);
leaderboard_record("name_03",26);
leaderboard_record("name_04",31);
leaderboard_record("name_05",34);
leaderboard_record("name_06",36);
leaderboard_record("name_07",40);
leaderboard_record("name_08",49);
leaderboard_record("name_09",57);
leaderboard_record("name_10",60);
}
var_03 = [];
var_03["player"] = "rec_sb_name_01";
var_03["name_01"] = "rec_sb_name_11";
var_03["name_02"] = "rec_sb_name_02";
var_03["name_03"] = "rec_sb_name_03";
var_03["name_04"] = "rec_sb_name_04";
var_03["name_05"] = "rec_sb_name_05";
var_03["name_06"] = "rec_sb_name_06";
var_03["name_07"] = "rec_sb_name_07";
var_03["name_08"] = "rec_sb_name_08";
var_03["name_09"] = "rec_sb_name_09";
var_03["name_10"] = "rec_sb_name_10";
var_04 = spawnstruct();
var_04.titlemap = var_02;
var_04.namemodelmap = var_03;
var_04.screennamemap = var_01;
self.settings = var_04;
}
//Function Number: 255
leaderboard_screen_make()
{
var_00 = self.range_name;
var_01 = getent(self.settings.screennamemap[var_00],"targetname");
var_01.isleaderboardscreen = 1;
var_02 = spawn("script_model",var_01.origin);
var_02 setmodel(self.settings.titlemap[var_00]);
var_02 linkto(var_01,"title",(0,0,0),(0,90,0));
var_01.rows = [];
for(var_03 = 0;var_03 < 10;var_03++)
{
var_04 = spawn("script_model",var_01.origin);
var_04.isleaderboardscreenrow = 1;
var_01.rows[var_03] = var_04;
var_04 setmodel("rec_sb_row");
var_04 linkto(var_01,"row" + var_03 + 1,(0,0,0),(0,0,0));
var_04.nametagmodel = spawn("script_model",var_01.origin);
var_04.nametagmodel linkto(var_04,"name1",(0,0,0),(0,90,0));
var_04.digitmodels = [];
var_04.digitmodels[0] = spawn("script_model",var_01.origin);
var_04.digitmodels[0] linkto(var_04,"digit1",(0,0,0),(0,90,0));
var_04.digitmodels[1] = spawn("script_model",var_01.origin);
var_04.digitmodels[1] linkto(var_04,"digit2",(0,0,0),(0,90,0));
var_04.digitmodels[2] = spawn("script_model",var_01.origin);
var_04.digitmodels[2] linkto(var_04,"digit3",(0,0,0),(0,90,0));
var_04.digitmodels[3] = spawn("script_model",var_01.origin);
var_04.digitmodels[3] linkto(var_04,"digit4",(0,0,0),(0,90,0));
}
return var_01;
}
//Function Number: 256
leaderboard_score_to_digits(param_00)
{
var_01 = [];
var_02 = param_00;
var_03 = var_02 % 10;
var_02 = int(var_02 / 10);
var_01[0] = "rec_sb_" + var_03;
var_03 = var_02 % 10;
var_02 = int(var_02 / 10);
var_01[1] = "rec_sb_" + var_03;
var_03 = var_02 % 10;
var_02 = int(var_02 / 10);
var_01[2] = "rec_sb_" + var_03;
var_03 = var_02 % 10;
var_02 = int(var_02 / 10);
var_01[3] = "rec_sb_" + var_03;
var_01 = common_scripts\utility::array_reverse(var_01);
return var_01;
}
//Function Number: 257
leaderboard_screen_update()
{
var_00 = self;
var_01 = self.leaderboard_screen;
for(var_02 = 0;var_02 < 10;var_02++)
{
var_03 = var_01.rows[var_02];
var_04 = var_00.playerscores[var_02];
var_05 = var_00.settings.namemodelmap[var_04.playername];
var_03.nametagmodel setmodel(var_05);
var_06 = leaderboard_score_to_digits(var_04.playerscore);
var_03.digitmodels[0] setmodel(var_06[0]);
var_03.digitmodels[1] setmodel(var_06[1]);
var_03.digitmodels[2] setmodel(var_06[2]);
var_03.digitmodels[3] setmodel(var_06[3]);
}
}
//Function Number: 258
play_reload_malfunction_on_next_reload(param_00)
{
level notify("play_reload_malfunction_on_next_reload_stop");
level endon("play_reload_malfunction_on_next_reload_stop");
if(!common_scripts\utility::flag_exist("reload_malfunction"))
{
common_scripts\utility::flag_init("reload_malfunction");
}
common_scripts\utility::flag_set("reload_malfunction");
if(isdefined(param_00))
{
level endon(param_00);
}
if(!isdefined(level.player.numofreloadmalfunctions))
{
level.player.numofreloadmalfunctions = 0;
}
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
childthread reload_malfunction_disable_on_grenade_throw();
for(;;)
{
wait 0.05;
if(!common_scripts\utility::flag("reload_malfunction"))
{
common_scripts\utility::flag_wait("reload_malfunction");
}
var_01 = level.player getcurrentweapon();
var_02 = weaponclipsize(var_01);
var_03 = level.player getweaponammoclip(var_01);
var_04 = [];
var_05 = [];
if(issubstr(var_01,"bal27"))
{
var_04 = [1,2];
var_05 = [%vm_bal_27_reload_exo_malfunction_1,%vm_bal_27_reload_exo_malfunction_2];
}
else if(issubstr(var_01,"titan45"))
{
var_04 = [3,4];
var_05 = [%vm_titan45_reload_exo_malfunction_1,%vm_titan45_reload_exo_malfunction_2];
}
else if(issubstr(var_01,"ak12"))
{
var_04 = [5,6];
var_05 = [%vm_ak12_reload_exo_malfunction_1,%vm_ak12_reload_exo_malfunction_2];
}
else if(issubstr(var_01,"vbr"))
{
var_04 = [7,8];
var_05 = [%vm_vbr_reload_exo_malfunction_1,%vm_vbr_reload_exo_malfunction_2];
}
else if(issubstr(var_01,"kf5"))
{
var_04 = [11,12];
var_05 = [%vm_kf5_reload_exo_malfunction_1,%vm_kf5_reload_exo_malfunction_2];
}
else if(issubstr(var_01,"rhino"))
{
var_04 = [9,10];
var_05 = [%vm_rhino_reload_exo_malfunction_1,%vm_rhino_reload_exo_malfunction_2];
}
else
{
continue;
}
if(var_03 < var_02 && level.player usebuttonpressed() && !level.player isholdinggrenade() && !level.player isreloading())
{
break;
}
if(var_03 < 2)
{
break;
}
}
thread play_reload_malfunction(var_04[level.player.numofreloadmalfunctions],var_05[level.player.numofreloadmalfunctions],var_01,var_02,var_03);
level.player.numofreloadmalfunctions = level.player.numofreloadmalfunctions + 1 % var_04.size;
level notify("play_reload_malfunction_on_next_reload_stop");
}
//Function Number: 259
reload_malfunction_disable_on_grenade_throw()
{
for(;;)
{
level.player common_scripts\utility::waittill_any("grenade_fire","grenade_pullback");
common_scripts\utility::flag_clear("reload_malfunction");
wait(1.5);
common_scripts\utility::flag_set("reload_malfunction");
}
}
//Function Number: 260
play_reload_malfunction(param_00,param_01,param_02,param_03,param_04)
{
thread play_rumble_training_s1_reload_malfunction();
common_scripts\utility::flag_set("flag_vo_training_s1_reload_malfunction");
level.player allowmantle(0);
level.player allowads(0);
level.player disableweaponpickup();
level.player disableweaponswitch();
level.player enableinvulnerability();
setsaveddvar("ammoCounterHide","1");
soundscripts\_snd::snd_message("camp_david_reload_malfunction",param_00,param_02);
level.player setviewmodelanim(param_00);
var_05 = level.player setweaponammostock(param_02);
level.player setweaponammoclip(param_02,param_03);
level.player setweaponammostock(param_02,var_05 - param_03 - param_04);
wait(getanimlength(param_01));
level.player allowads(1);
level.player enableweaponpickup();
level.player enableweaponswitch();
level.player allowmantle(1);
level.player disableinvulnerability();
setsaveddvar("ammoCounterHide","0");
}
//Function Number: 261
lerp_anim_weight_on_actor_over_time(param_00,param_01,param_02,param_03)
{
var_04 = int(param_01 / 0.05);
var_05 = param_03 - param_02 / var_04;
var_06 = param_02;
for(var_07 = 0;var_07 < var_04;var_07++)
{
self setanim(param_00,var_06,0.05,1);
var_06 = var_06 + var_05;
wait 0.05;
}
}
//Function Number: 262
lerp_in_turn_rate(param_00)
{
var_01 = 0;
var_02 = 1 / param_00 / 0.05;
var_03 = getdvarint("aim_turnrate_pitch");
var_04 = getdvarint("aim_turnrate_pitch_ads");
var_05 = getdvarint("aim_turnrate_yaw");
var_06 = getdvarint("aim_turnrate_yaw_ads");
var_07 = getdvarint("aim_accel_turnrate_lerp");
while(var_01 <= 1)
{
setsaveddvar("aim_turnrate_pitch",int(var_01 * var_03));
setsaveddvar("aim_turnrate_pitch_ads",int(var_01 * var_04));
setsaveddvar("aim_turnrate_yaw",int(var_01 * var_05));
setsaveddvar("aim_turnrate_yaw_ads",int(var_01 * var_06));
setsaveddvar("aim_accel_turnrate_lerp",int(var_01 * var_07));
wait 0.05;
var_01 = var_01 + var_02;
}
setsaveddvar("aim_turnrate_pitch",var_03);
setsaveddvar("aim_turnrate_pitch_ads",var_04);
setsaveddvar("aim_turnrate_yaw",var_05);
setsaveddvar("aim_turnrate_yaw_ads",var_06);
setsaveddvar("aim_accel_turnrate_lerp",var_07);
}
//Function Number: 263
waittill_drones_dead(param_00)
{
foreach(var_02 in param_00)
{
if(isdefined(var_02) && !isremovedentity(var_02))
{
var_02 waittill("death");
}
}
}
//Function Number: 264
waittill_s2_drone_ambush_done(param_00)
{
while(param_00.size > 0 && !common_scripts\utility::flag("training_s2_start_enter_patio"))
{
param_00 = maps\_utility::array_removedead(param_00);
wait 0.05;
}
}
//Function Number: 265
training_s2_drone_ambush_attack()
{
level endon("training_s2_living_room_drone_attack_done");
var_00 = common_scripts\utility::getstruct("attacklocation3","targetname");
var_01 = common_scripts\utility::getstructarray(var_00.target,"targetname");
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[0].origin);
wait(1);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[1].origin);
wait(0.5);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[2].origin);
wait(0.5);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[3].origin);
wait(0.5);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[4].origin);
wait(0.25);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[5].origin);
wait(0.5);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[6].origin);
wait(0.5);
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[7].origin);
}