mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
610 lines
18 KiB
Plaintext
610 lines
18 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: lab_breach.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 32
|
|
* Decompile Time: 468 ms
|
|
* Timestamp: 4/22/2024 2:32:37 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init_facility_breach()
|
|
{
|
|
common_scripts\utility::flag_init("breach_done");
|
|
common_scripts\utility::flag_init("lab_breach_all_guys_dead");
|
|
common_scripts\utility::flag_init("flag_burke_kills_guy");
|
|
common_scripts\utility::flag_init("burke_is_in_position_for_facility_breach");
|
|
level.breachfriendlies = [];
|
|
level.breachfriendlies[level.breachfriendlies.size] = level.burke;
|
|
level.breachfriendlies[level.breachfriendlies.size] = level.cormack;
|
|
level.breachfriendlies[level.breachfriendlies.size] = level.knox;
|
|
var_00 = "none";
|
|
if(level.currentgen)
|
|
{
|
|
if(istransientloaded("lab_intro_tr"))
|
|
{
|
|
var_00 = "intro";
|
|
}
|
|
else if(istransientloaded("lab_middle_tr"))
|
|
{
|
|
var_00 = "middle";
|
|
}
|
|
else if(istransientloaded("lab_outro_tr"))
|
|
{
|
|
var_00 = "outro";
|
|
}
|
|
}
|
|
|
|
init_facility_breach_anims(var_00);
|
|
if(level.currentgen)
|
|
{
|
|
if(var_00 == "intro")
|
|
{
|
|
thread notetrack_setup_middle();
|
|
}
|
|
|
|
if(var_00 == "intro" || var_00 == "middle")
|
|
{
|
|
thread notetrack_setup_outro();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
init_facility_breach_anims(param_00)
|
|
{
|
|
init_facility_breach_model_anims(param_00);
|
|
init_facility_breach_npc_anims(param_00);
|
|
init_facility_breach_view_model_anims(param_00);
|
|
}
|
|
|
|
//Function Number: 3
|
|
init_facility_breach_model_anims(param_00)
|
|
{
|
|
level.scr_animtree["facility_breach_charge"] = #animtree;
|
|
level.scr_model["facility_breach_charge"] = "breach_charge";
|
|
level.scr_anim["facility_breach_charge"]["facility_breach"] = %lab_breachroom_breach_charge;
|
|
level.scr_animtree["facility_breach_mute_device"] = #animtree;
|
|
level.scr_model["facility_breach_mute_device"] = "muteCharge";
|
|
level.scr_anim["facility_breach_mute_device"]["facility_breach"] = %lab_breachroom_breach_mute;
|
|
if(level.nextgen || param_00 == "middle")
|
|
{
|
|
maps\_anim::addnotetrack_customfunction("facility_breach_mute_device","vfx_mute_device_plant",::maps\lab_fx::mute_device_plant_fx,"facility_breach");
|
|
}
|
|
|
|
level.scr_animtree["facility_breach_crate"] = #animtree;
|
|
level.scr_model["facility_breach_crate"] = "genericProp";
|
|
level.scr_anim["facility_breach_crate"]["facility_breach"] = %lab_breachroom_breach_box;
|
|
}
|
|
|
|
//Function Number: 4
|
|
init_facility_breach_npc_anims(param_00)
|
|
{
|
|
level.scr_anim["burke"]["facility_breach"] = %lab_breachroom_breach_hero_01;
|
|
level.scr_anim["burke"]["facility_breach_idle"][0] = %lab_breachroom_breach_hero_01_idle;
|
|
level.scr_anim["burke"]["facility_breach_end"] = %lab_breachroom_breach_hero_01_exit;
|
|
if(level.nextgen || param_00 == "middle")
|
|
{
|
|
maps\_anim::addnotetrack_customfunction("burke","interrupt_anim",::no_interrupt,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("burke","glass_break",::break_glass,"facility_breach");
|
|
}
|
|
|
|
level.facility_breach_guys = [];
|
|
level.facility_breach_guys[0] = getent("facility_breach_guy_01","targetname");
|
|
level.facility_breach_guys[0].animname = "facility_breach_guy_01";
|
|
level.scr_anim["facility_breach_guy_01"]["facility_breach"] = %lab_breachroom_breach_guy_01;
|
|
level.facility_breach_guys[1] = getent("facility_breach_guy_02","targetname");
|
|
level.facility_breach_guys[1].animname = "facility_breach_guy_02";
|
|
level.scr_anim["facility_breach_guy_02"]["facility_breach"] = %lab_breachroom_breach_guy_02;
|
|
level.facility_breach_guys[2] = getent("facility_breach_guy_03","targetname");
|
|
level.facility_breach_guys[2].animname = "facility_breach_guy_03";
|
|
level.scr_anim["facility_breach_guy_03"]["facility_breach"] = %lab_breachroom_breach_guy_03;
|
|
level.facility_breach_guys[3] = getent("facility_breach_guy_04","targetname");
|
|
level.facility_breach_guys[3].animname = "facility_breach_guy_04";
|
|
level.scr_anim["facility_breach_guy_04"]["facility_breach"] = %lab_breachroom_breach_guy_04;
|
|
level.facility_breach_guys[4] = getent("facility_breach_guy_05","targetname");
|
|
level.facility_breach_guys[4].animname = "facility_breach_guy_05";
|
|
level.scr_anim["facility_breach_guy_05"]["facility_breach"] = %lab_breachroom_breach_guy_05;
|
|
if(level.nextgen || param_00 == "middle")
|
|
{
|
|
maps\_anim::addnotetrack_customfunction("facility_breach_guy_05","start_ragdoll",::maps\lab_anim::ai_kill,"facility_breach");
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
init_facility_breach_view_model_anims(param_00)
|
|
{
|
|
level.scr_anim["player_rig"]["facility_breach"] = %lab_breachroom_breach_vm;
|
|
if(level.nextgen || param_00 == "middle")
|
|
{
|
|
maps\_anim::addnotetrack_customfunction("player_rig","Start_slowdown",::breach_slow_down,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("player_rig","Blow_charge",::blow_door,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("player_rig","enable_player_control",::enable_player_control,"facility_breach");
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
notetrack_setup_middle()
|
|
{
|
|
level waittill("tff_post_intro_to_middle");
|
|
maps\_anim::addnotetrack_customfunction("facility_breach_mute_device","vfx_mute_device_plant",::maps\lab_fx::mute_device_plant_fx,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("burke","interrupt_anim",::no_interrupt,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("burke","glass_break",::break_glass,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("facility_breach_guy_05","start_ragdoll",::maps\lab_anim::ai_kill,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("player_rig","Start_slowdown",::breach_slow_down,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("player_rig","Blow_charge",::blow_door,"facility_breach");
|
|
maps\_anim::addnotetrack_customfunction("player_rig","enable_player_control",::enable_player_control,"facility_breach");
|
|
}
|
|
|
|
//Function Number: 7
|
|
notetrack_setup_outro()
|
|
{
|
|
level waittill("tff_post_middle_to_outro");
|
|
}
|
|
|
|
//Function Number: 8
|
|
facility_breach_get_burke_into_position()
|
|
{
|
|
var_00 = getnode("node_burke_facility_breach","targetname");
|
|
level.burke setgoalnode(var_00);
|
|
var_01 = level.burke.goalradius;
|
|
level.burke.goalradius = 16;
|
|
level.burke waittill("goal");
|
|
level.burke.goalradius = var_01;
|
|
common_scripts\utility::flag_set("burke_is_in_position_for_facility_breach");
|
|
}
|
|
|
|
//Function Number: 9
|
|
facility_breach_spawn_bad_guys(param_00)
|
|
{
|
|
level.facility_breach_guys = [];
|
|
level.facility_breach_guys[0] = getent("facility_breach_guy_01","targetname") maps\_utility::spawn_ai(1);
|
|
level.facility_breach_guys[0].animname = "facility_breach_guy_01";
|
|
level.facility_breach_guys[1] = getent("facility_breach_guy_02","targetname") maps\_utility::spawn_ai(1);
|
|
level.facility_breach_guys[1].animname = "facility_breach_guy_02";
|
|
level.facility_breach_guys[2] = getent("facility_breach_guy_03","targetname") maps\_utility::spawn_ai(1);
|
|
level.facility_breach_guys[2].animname = "facility_breach_guy_03";
|
|
level.facility_breach_guys[3] = getent("facility_breach_guy_04","targetname") maps\_utility::spawn_ai(1);
|
|
level.facility_breach_guys[3].animname = "facility_breach_guy_04";
|
|
level.facility_breach_guys[4] = getent("facility_breach_guy_05","targetname") maps\_utility::spawn_ai(1);
|
|
level.facility_breach_guys[4].animname = "facility_breach_guy_05";
|
|
param_00 maps\_anim::anim_first_frame(level.facility_breach_guys,"facility_breach");
|
|
foreach(var_02 in level.facility_breach_guys)
|
|
{
|
|
level thread breach_enemy_track_status(var_02);
|
|
var_02.allowdeath = 1;
|
|
var_02.health = 10;
|
|
var_02 maps\_utility::disable_surprise();
|
|
var_02.ignoresonicaoe = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
facility_breach()
|
|
{
|
|
common_scripts\utility::flag_wait("burke_is_in_position_for_facility_breach");
|
|
var_00 = getent("facility_breach_trigger","targetname");
|
|
var_00 thread maps\_utility::addhinttrigger(&"LAB_PLANT_MUTE_HINT",&"LAB_PLANT_MUTE_HINT_PC");
|
|
var_00 thread maps\lab_utility::disable_trigger_while_player_animating("breaching");
|
|
var_01 = var_00 maps\_shg_utility::hint_button_trigger("x");
|
|
for(;;)
|
|
{
|
|
var_00 waittill("trigger");
|
|
if(!isdefined(var_00.trigger_off))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_00 delete();
|
|
var_01 maps\_shg_utility::hint_button_clear();
|
|
common_scripts\utility::flag_set("breach_start");
|
|
var_02 = getent("facility_breach_animation_origin","targetname");
|
|
level.breachenemies_active = 0;
|
|
level.breachenemies_alive = 0;
|
|
level.player_rig = maps\lab_utility::spawn_player_rig();
|
|
level.player_rig hide();
|
|
var_03 = getent("facility_breach_crate_model","targetname");
|
|
var_04 = getent("facility_breach_crate_clip","targetname");
|
|
var_04 linkto(var_03);
|
|
level.facility_breach_crate = maps\_utility::spawn_anim_model("facility_breach_crate",var_03.origin);
|
|
soundscripts\_snd::snd_message("lab_mute_gun_holster");
|
|
var_02 maps\_anim::anim_first_frame_solo(level.facility_breach_crate,"facility_breach");
|
|
var_03 linkto(level.facility_breach_crate,"tag_origin_animated",(0,0,0),(0,0,0));
|
|
level.facility_breach_charge = maps\_utility::spawn_anim_model("facility_breach_charge",var_02.origin);
|
|
level.facility_breach_charge hide();
|
|
var_02 maps\_anim::anim_first_frame_solo(level.facility_breach_charge,"facility_breach");
|
|
level.facility_breach_mute_device = maps\_utility::spawn_anim_model("facility_breach_mute_device",var_02.origin);
|
|
level.facility_breach_mute_device hide();
|
|
var_02 maps\_anim::anim_first_frame_solo(level.facility_breach_mute_device,"facility_breach");
|
|
level notify("breaching");
|
|
breach_friendlies_take_grenades();
|
|
level.player freezecontrols(1);
|
|
level.player maps\_shg_utility::setup_player_for_scene(1);
|
|
maps\_player_exo::player_exo_deactivate();
|
|
thread facility_breach_setup_player();
|
|
var_05 = 0.4;
|
|
var_02 maps\_anim::anim_first_frame_solo(level.player_rig,"facility_breach");
|
|
level.player playerlinktoblend(level.player_rig,"tag_player",var_05);
|
|
level.burke.animname = "burke";
|
|
var_06 = [level.facility_breach_charge,level.facility_breach_mute_device,level.player_rig,level.facility_breach_crate];
|
|
wait(var_05);
|
|
level.facility_breach_mute_device soundscripts\_snd::snd_message("aud_facility_breach_start");
|
|
level.facility_breach_charge show();
|
|
level.facility_breach_mute_device show();
|
|
level.player_rig show();
|
|
var_02 thread maps\_anim::anim_single(var_06,"facility_breach");
|
|
level.burke thread burke_breach(var_02);
|
|
facility_breach_spawn_bad_guys(var_02);
|
|
var_02 thread maps\_anim::anim_single(level.facility_breach_guys,"facility_breach");
|
|
thread burke_breach_interrupt();
|
|
level.facility_breach_guys[0] maps\_utility::delaythread(15,::maps\lab_utility::bloody_death,1,level.burke);
|
|
level.facility_breach_guys[1] maps\_utility::delaythread(15,::maps\lab_utility::bloody_death,1,level.burke);
|
|
level.facility_breach_guys[2] maps\_utility::delaythread(15,::maps\lab_utility::bloody_death,1,level.burke);
|
|
level.facility_breach_guys[3] maps\_utility::delaythread(15,::maps\lab_utility::bloody_death,1,level.burke);
|
|
maps\_utility::delaythread(15,::common_scripts\utility::flag_set,"lab_breach_all_guys_dead");
|
|
level.player thread breach_top_off_weapon();
|
|
var_04 disconnectpaths();
|
|
for(;;)
|
|
{
|
|
if(level.breachenemies_alive <= 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
common_scripts\utility::flag_set("breach_done");
|
|
}
|
|
|
|
//Function Number: 11
|
|
burke_breach(param_00)
|
|
{
|
|
param_00 maps\_anim::anim_single_solo(self,"facility_breach");
|
|
if(common_scripts\utility::flag("flag_burke_kills_guy"))
|
|
{
|
|
param_00 thread maps\_anim::anim_loop_solo(self,"facility_breach_idle","ender");
|
|
common_scripts\utility::flag_wait("flag_breach_patrol_01_clear");
|
|
param_00 notify("ender");
|
|
self stopanimscripted();
|
|
param_00 maps\_anim::anim_single_solo_run(self,"facility_breach_end");
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
burke_breach_interrupt()
|
|
{
|
|
level endon("burke_breach_uninterruptable");
|
|
level.facility_breach_guys[4] waittill("death");
|
|
level.burke notify("single anim","end");
|
|
level.burke stopanimscripted();
|
|
}
|
|
|
|
//Function Number: 13
|
|
facility_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: 14
|
|
facility_breach_cleanup_player()
|
|
{
|
|
level.player disableinvulnerability();
|
|
level.player enableweaponswitch();
|
|
level.player enableoffhandweapons();
|
|
level.player allowcrouch(1);
|
|
level.player allowprone(1);
|
|
level.player allowjump(1);
|
|
}
|
|
|
|
//Function Number: 15
|
|
breach_top_off_weapon(param_00)
|
|
{
|
|
param_00 = self getcurrentweapon();
|
|
if(should_topoff_breach_weapon())
|
|
{
|
|
var_01 = weaponclipsize(param_00);
|
|
if(self getweaponammoclip(param_00) < var_01)
|
|
{
|
|
self setweaponammoclip(param_00,var_01);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
should_topoff_breach_weapon()
|
|
{
|
|
if(level.gameskill > 1)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 17
|
|
breach_slow_down(param_00)
|
|
{
|
|
thread slowmo_begins(1);
|
|
}
|
|
|
|
//Function Number: 18
|
|
enable_player_control(param_00)
|
|
{
|
|
level.player unlink();
|
|
level.player_rig delete();
|
|
maps\_player_exo::player_exo_activate();
|
|
thread facility_breach_cleanup_player();
|
|
}
|
|
|
|
//Function Number: 19
|
|
blow_door(param_00)
|
|
{
|
|
level.facility_breach_charge hide();
|
|
var_01 = getent("facility_breach_door","targetname");
|
|
var_02 = getent("facility_breach_door_clip","targetname");
|
|
var_02 connectpaths();
|
|
var_01 delete();
|
|
var_02 delete();
|
|
level thread maps\lab_fx::mute_breach_explosion();
|
|
level notify("breach_explosion");
|
|
level.player_rig hide();
|
|
level.player enableweapons();
|
|
level.player freezecontrols(0);
|
|
setsaveddvar("ammoCounterHide",0);
|
|
}
|
|
|
|
//Function Number: 20
|
|
slowmo_begins(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0.25;
|
|
}
|
|
|
|
level.slomobreachduration = 3.5;
|
|
var_01 = 0.5;
|
|
var_02 = 0.75;
|
|
if(isdefined(level.breaching) && level.breaching == 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.breaching = 1;
|
|
var_03 = 0.2;
|
|
if(isdefined(level.slomobreachplayerspeed))
|
|
{
|
|
var_03 = level.slomobreachplayerspeed;
|
|
}
|
|
|
|
var_04 = level.player;
|
|
common_scripts\utility::flag_clear("can_save");
|
|
var_04 allowmelee(0);
|
|
maps\_utility::slowmo_setspeed_slow(param_00);
|
|
maps\_utility::slowmo_setlerptime_in(var_01);
|
|
maps\_utility::slowmo_lerp_in();
|
|
var_04 setmovespeedscale(var_03);
|
|
var_05 = gettime();
|
|
var_06 = var_05 + level.slomobreachduration * 1000;
|
|
var_04 thread catch_weapon_switch();
|
|
var_04 thread catch_mission_failed();
|
|
var_07 = 500;
|
|
var_08 = 1000;
|
|
for(;;)
|
|
{
|
|
if(isdefined(level.forced_slowmo_breach_slowdown))
|
|
{
|
|
if(!level.forced_slowmo_breach_slowdown)
|
|
{
|
|
if(isdefined(level.forced_slowmo_breach_lerpout))
|
|
{
|
|
var_02 = level.forced_slowmo_breach_lerpout;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
if(gettime() >= var_06)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(level.breachenemies_active <= 0)
|
|
{
|
|
var_02 = 1.15;
|
|
break;
|
|
}
|
|
|
|
if(!maps\_utility::is_coop())
|
|
{
|
|
if(var_04.lastreloadstarttime >= var_05 + var_07)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(var_04.switchedweapons && gettime() - var_05 > var_08)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(maps\_utility::is_specialop() && common_scripts\utility::flag("special_op_terminated"))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(var_04.breach_missionfailed)
|
|
{
|
|
var_02 = 0.5;
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
level notify("slowmo_breach_ending",var_02);
|
|
level notify("stop_player_heartbeat");
|
|
var_04 thread maps\_utility::play_sound_on_entity("slomo_whoosh");
|
|
maps\_utility::slowmo_setlerptime_out(var_02);
|
|
maps\_utility::slowmo_lerp_out();
|
|
var_04 allowmelee(1);
|
|
maps\_utility::slowmo_end();
|
|
common_scripts\utility::flag_set("can_save");
|
|
level.player_one_already_breached = undefined;
|
|
var_04 slowmo_player_cleanup();
|
|
var_04 allowsprint(1);
|
|
level notify("slomo_breach_over");
|
|
level.breaching = 0;
|
|
setsaveddvar("objectiveHide",0);
|
|
}
|
|
|
|
//Function Number: 21
|
|
slowmo_player_cleanup()
|
|
{
|
|
if(isdefined(level.playerspeed))
|
|
{
|
|
self setmovespeedscale(level.playerspeed);
|
|
return;
|
|
}
|
|
|
|
self setmovespeedscale(1);
|
|
}
|
|
|
|
//Function Number: 22
|
|
breach_enemy_waitfor_death(param_00)
|
|
{
|
|
self endon("breach_status_change");
|
|
param_00 waittill("death");
|
|
self notify("breach_status_change","death");
|
|
}
|
|
|
|
//Function Number: 23
|
|
breach_enemy_waitfor_death_counter(param_00)
|
|
{
|
|
level.breachenemies_alive++;
|
|
param_00 waittill("death");
|
|
level.breachenemies_alive--;
|
|
if(level.breachenemies_alive <= 0)
|
|
{
|
|
breach_friendlies_restore_grenades();
|
|
}
|
|
|
|
level notify("breach_all_enemies_dead");
|
|
}
|
|
|
|
//Function Number: 24
|
|
breach_enemy_catch_exceptions(param_00)
|
|
{
|
|
self endon("breach_status_change");
|
|
while(isalive(param_00))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
self notify("breach_status_change","exception");
|
|
}
|
|
|
|
//Function Number: 25
|
|
breach_enemy_waitfor_breach_ending()
|
|
{
|
|
self endon("breach_status_change");
|
|
level waittill("slowmo_breach_ending");
|
|
self notify("breach_status_change","breach_ending");
|
|
}
|
|
|
|
//Function Number: 26
|
|
breach_enemy_track_status(param_00)
|
|
{
|
|
level.breachenemies_active++;
|
|
var_01 = spawnstruct();
|
|
var_01.enemy = param_00;
|
|
var_01 thread breach_enemy_waitfor_death(param_00);
|
|
var_01 thread breach_enemy_waitfor_death_counter(param_00);
|
|
var_01 thread breach_enemy_catch_exceptions(param_00);
|
|
var_01 thread breach_enemy_waitfor_breach_ending();
|
|
var_01 waittill("breach_status_change",var_02);
|
|
level.breachenemies_active--;
|
|
var_01 = undefined;
|
|
}
|
|
|
|
//Function Number: 27
|
|
catch_mission_failed()
|
|
{
|
|
level endon("slowmo_breach_ending");
|
|
self.breach_missionfailed = 0;
|
|
level waittill("mission failed");
|
|
self.breach_missionfailed = 1;
|
|
}
|
|
|
|
//Function Number: 28
|
|
catch_weapon_switch()
|
|
{
|
|
level endon("slowmo_breach_ending");
|
|
self.switchedweapons = 0;
|
|
common_scripts\utility::waittill_any("weapon_switch_started","night_vision_on","night_vision_off");
|
|
self.switchedweapons = 1;
|
|
}
|
|
|
|
//Function Number: 29
|
|
breach_friendlies_take_grenades()
|
|
{
|
|
if(!isdefined(level.breachfriendlies))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.breachfriendlies_grenades_empty = 1;
|
|
foreach(var_01 in level.breachfriendlies)
|
|
{
|
|
var_01.grenadeammo_prebreach = var_01.grenadeammo;
|
|
var_01.grenadeammo = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
breach_friendlies_restore_grenades()
|
|
{
|
|
if(!isdefined(level.breachfriendlies))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.breachfriendlies_grenades_empty))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_01 in level.breachfriendlies)
|
|
{
|
|
var_01.grenadeammo = var_01.grenadeammo_prebreach;
|
|
var_01.grenadeammo_prebreach = undefined;
|
|
}
|
|
|
|
level.breachfriendlies_grenades_empty = undefined;
|
|
}
|
|
|
|
//Function Number: 31
|
|
no_interrupt(param_00)
|
|
{
|
|
level notify("burke_breach_uninterruptable");
|
|
common_scripts\utility::flag_set("flag_burke_kills_guy");
|
|
level.facility_breach_guys[4].allowdeath = 0;
|
|
}
|
|
|
|
//Function Number: 32
|
|
break_glass(param_00)
|
|
{
|
|
glassradiusdamage(param_00.origin,100,300,100);
|
|
} |