#include maps\_anim; #include maps\_utility; #include common_scripts\utility; main_anim() { ride_vehicle_anims(); ride_player_anims(); generic_human(); dialog(); vehicles(); } //notetrack_gun_2_chest( guy ) //{ // level notify( "gun_2_chest" ); //} // //notetrack_shotgun_pickup( guy ) //{ // level notify( "shotgun_pickup" ); //} notetrack_notify_attach_rocket( guy ) { guy notify( "attach rocket" ); } notetrack_notify_fire_rocket( guy ) { guy notify( "fire rocket" ); } notetrack_notify_drop_rocket( guy ) { guy notify( "drop rocket" ); } #using_animtree( "vehicles" ); ride_vehicle_anims() { level.scr_anim[ "generic" ][ "boneyard_UAZ_door" ] = %boneyard_UAZ_door; } //called by main contingency script #using_animtree( "vehicles" ); ride_uaz_door() { anim_model = self maps\_vehicle_aianim::getanimatemodel(); anim_model setflaggedanimknob( "uaz_door_anim", level.scr_anim[ "generic" ][ "boneyard_UAZ_door" ], 1, .2, 1 ); anim_model waittillmatch( "uaz_door_anim", "end" ); anim_model ClearAnim( level.scr_anim[ "generic" ][ "boneyard_UAZ_door" ], 0 ); /* flag_wait( "wait_for_player" ); anim_model = self maps\_vehicle_aianim::getanimatemodel(); anim_model maps\_vehicle_aianim::setanimrestart_once( %uaz_passenger_exit_into_stand_door, false ); flag_wait( "uaz_mounted" ); anim_model ClearAnim( %uaz_passenger_exit_into_stand_door, 0 ); anim_model maps\_vehicle_aianim::setanimrestart_once( %uaz_passenger_enter_from_huntedrun_door, true ); */ } #using_animtree( "player" ); ride_player_anims() { level.scr_animtree[ "player_rig" ] = #animtree; level.scr_model[ "player_rig" ] = "viewhands_player_arctic_wind"; level.scr_anim[ "player_rig" ][ "boneyard_uaz_mount" ] = %boneyard_player_enter_UAZ; } #using_animtree( "generic_human" ); generic_human() { level.scr_anim[ "price" ][ "intro" ] = %contengency_price_intro; level.scr_anim[ "generic" ][ "cqb_stand_idle_scan" ] = %patrol_bored_react_look_v1; //level.scr_anim[ "generic" ][ "cqb_stand_idle_scan" ] = %cqb_stand_idle_scan; level.scr_anim[ "price" ][ "slide" ] = %contengency_price_slide; level.scr_anim[ "price" ][ "caution_stop" ] = %afgan_caves_intro_stop; level.scr_anim[ "generic" ][ "tear_gas_guy1" ] = %contingency_teargas_1; level.scr_anim[ "generic" ][ "tear_gas_guy2" ] = %contingency_teargas_2; level.scr_anim[ "generic" ][ "tear_gas_guy3" ] = %contingency_teargas_3; //FRAME 29 "attach rocket" //FRAME 47 "fire rocket" //FRAME 80 "drop rocket" addNotetrack_customFunction( "price", "price_land", ::price_land_fx ); addNotetrack_customFunction( "price", "price_land_settle", ::price_land_settle_fx ); addNotetrack_customFunction( "price", "price_slide_start", ::price_slide_fx ); addNotetrack_customFunction( "price", "price_slide_end", ::price_stop_slide_fx ); level.scr_anim[ "bricktop" ][ "at4_fire" ] = %contengency_rocket_moment; addNotetrack_customFunction( "bricktop", "attach rocket", ::notetrack_notify_attach_rocket, "at4_fire" ); addNotetrack_customFunction( "bricktop", "fire rocket", ::notetrack_notify_fire_rocket, "at4_fire" ); addNotetrack_customFunction( "bricktop", "drop rocket", ::notetrack_notify_drop_rocket, "at4_fire" ); level.scr_anim[ "rasta" ][ "at4_fire" ] = %contengency_rocket_moment; addNotetrack_customFunction( "rasta", "attach rocket", ::notetrack_notify_attach_rocket, "at4_fire" ); addNotetrack_customFunction( "rasta", "fire rocket", ::notetrack_notify_fire_rocket, "at4_fire" ); addNotetrack_customFunction( "rasta", "drop rocket", ::notetrack_notify_drop_rocket, "at4_fire" ); level.scr_anim[ "price" ][ "at4_fire" ] = %contengency_rocket_moment; addNotetrack_customFunction( "price", "attach rocket", ::notetrack_notify_attach_rocket, "at4_fire" ); addNotetrack_customFunction( "price", "fire rocket", ::notetrack_notify_fire_rocket, "at4_fire" ); addNotetrack_customFunction( "price", "drop rocket", ::notetrack_notify_drop_rocket, "at4_fire" ); //level.scr_anim[ "price" ][ "at4_fire" ] = %launchfacility_a_at4_fire; // level.scr_anim[ "generic" ][ "shotgun_stand_pullout" ] = %shotgun_stand_pullout; // // //addNotetrack_customFunction( , , , ); // addNotetrack_customFunction( "generic", "gun_2_chest", ::notetrack_gun_2_chest, "shotgun_stand_pullout" ); // addNotetrack_customFunction( "generic", "shotgun_pickup", ::notetrack_shotgun_pickup, "shotgun_stand_pullout" ); maps\_hand_signals::initHandSignals(); // cold patrol level.scr_anim[ "generic" ][ "_stealth_patrol_search_a" ] = %patrolwalk_cold_gunup_idle; level.scr_anim[ "generic" ][ "_stealth_patrol_search_b" ] = %patrolwalk_cold_gunup_idle; level.scr_anim[ "generic" ][ "patrol_cold_huddle" ][0] = %patrolwalk_cold_huddle_idle; level.scr_anim[ "generic" ][ "patrol_cold_huddle" ][1] = %patrolwalk_cold_huddle_twitch; level.scr_anim[ "generic" ][ "patrol_cold_huddle_pause" ] = %patrolwalk_cold_huddle_stand_idle; level.scr_anim[ "generic" ][ "patrol_cold_huddle_stop" ] = %patrolwalk_cold_huddle_walk2stand; level.scr_anim[ "generic" ][ "patrol_cold_huddle_start" ] = %patrolwalk_cold_huddle_stand2walk; level.scr_anim[ "generic" ][ "patrol_cold_crossed" ][0] = %patrolwalk_cold_crossed_idle; level.scr_anim[ "generic" ][ "patrol_cold_crossed" ][1] = %patrolwalk_cold_crossed_twitch; level.scr_anim[ "generic" ][ "patrol_cold_crossed_pause" ] = %patrolwalk_cold_crossed_stand_idle; level.scr_anim[ "generic" ][ "patrol_cold_crossed_stop" ] = %patrolwalk_cold_crossed_walk2stand; level.scr_anim[ "generic" ][ "patrol_cold_crossed_start" ] = %patrolwalk_cold_crossed_stand2walk; level.scr_anim[ "generic" ][ "sprint" ] = %sprint1_loop; weights = []; weights[0] = 8; weights[1] = 2; level.scr_anim[ "generic" ][ "patrol_twitch_weights" ] = get_cumulative_weights( weights ); level.scr_anim[ "generic" ][ "patrol_cold_gunup_search" ] = %patrolwalk_cold_gunup_idle; level.scr_anim[ "generic" ][ "patrol_cold_gunup" ][0] = %patrolwalk_cold_gunup_idle; level.scr_anim[ "generic" ][ "patrol_cold_gunup" ][1] = %patrolwalk_cold_gunup_twitchA; level.scr_anim[ "generic" ][ "patrol_cold_gunup" ][2] = %patrolwalk_cold_gunup_twitchB; weights = []; weights[0] = 4; weights[1] = 3; weights[2] = 3; level.scr_anim[ "generic" ][ "patrol_gunup_twitch_weights" ] = get_cumulative_weights( weights ); //TRUCKRIDE level.scr_anim[ "generic" ][ "truckride_climbin" ] = %traverse_stepup_52; //JEEPCRASH // level.scr_anim[ "generic" ][ "cliff_jeep_crash_price" ] = %cliff_jeep_crash_price; } price_caution_stop() { //level.price.goalradius = 64; level endon( "run_to_woods" ); self anim_reach_solo( level.price, "caution_stop" ); self anim_single_solo( level.price, "caution_stop" ); level.price setgoalnode( self ); } #using_animtree( "vehicles" ); vehicles() { level.scr_anim[ "gauntlet" ][ "radar_spinup" ] = %sa15_radar_spinup; level.scr_anim[ "gauntlet" ][ "radar_spinloop" ] = %sa15_radar_spinloop; level.scr_anim[ "gauntlet" ][ "radar_spindown" ] = %sa15_radar_spindown; level.scr_anim[ "gauntlet" ][ "turret_scanloop" ] = %sa15_turret_scanloop; level.scr_animtree[ "contingency_btr_slide" ] = #animtree; level.scr_anim[ "contingency_btr_slide" ][ "contingency_btr_slide" ] = %contingency_btr_slide; level.scr_model[ "contingency_btr_slide" ] = "vehicle_btr80_snow"; addNotetrack_customFunction( "contingency_btr_slide", "btr_fire", ::btr80_notetrack_fire, "contingency_btr_slide" ); //addNotetrack_customFunction( , , , ); //addNotetrack_customFunction( "btr80", "BTRfire", ::btr80_notetrack_fire, "invasion_opening_BTR" ); } btr80_notetrack_fire( guy ) { guy fireWeapon(); //println( "fire" ); level notify ( "btr_fired" ); } //animate_gauntlet1() //{ // self.animname = "gauntlet"; // // //anim_loop_solo( guy, anime, ender, tag ) // self anim_single_solo( self, "radar_spinloop" ); //} // //animate_gauntlet2() //{ // self.animname = "gauntlet"; // // //anim_loop_solo( guy, anime, ender, tag ) // self thread anim_single_solo( self, "turret_scanloop" ); // self anim_single_solo( self, "radar_spinloop" ); //} price_land_fx ( price ) { //iprintlnbold( "land" ); //playfxontag( getfx( "price_landing" ), price, "J_Ankle_RI"); tagPos = price gettagorigin( "J_Ankle_RI" ); // rough tag to play fx on tagPos = PhysicsTrace( tagPos + ( 0,0,64), tagPos + ( 0,0,-64) ); playfx( level._effect[ "price_landing" ], tagPos ); } price_land_settle_fx ( price ) { //iprintlnbold( "settle " ); tagPos = price gettagorigin( "J_Ankle_LE" ); // rough tag to play fx on tagPos = PhysicsTrace( tagPos + ( 0,0,64), tagPos + ( 0,0,-64) ); playfx( level._effect[ "price_landing" ], tagPos ); } price_slide_fx( price ) { //iprintlnbold( "slide " ); self endon( "stop_slide_fx" ); while ( true ) { playfxontag( getfx( "price_sliding" ), price, "J_Ankle_LE" ); wait( .1 ); } } price_stop_slide_fx( price ) { //iprintlnbold( "stop sliding " ); self notify( "stop_slide_fx" ); } dialog() { //replacements: //Take them out or leave them be. Your call. cont_pri_yourcall //Use a suppressed weapon. We'll have to take them out at the same time. cont_pri_cantslipby //You take the handler and his dog on the left. cont_pri_twoonleft //A Predator drone loaded with Hellfires is enroute to your position. cont_cmt_almostinpos //Roach take control of the Predator drone. cont_pri_controluav //There's a mobile SAM site in the village. It just shot down our Predator. cont_pri_mobilesaminvillage //Soap, we need another Predator with Hellfire missiles! cont_pri_uavsharpish //Roger that. The second Predator is almost in position. Make it count, these things don't grow on trees. cont_cmt_2nduav //Heads up, two trucks, ten plus guys to our north east! cont_rst_headsup //Firing an unsuppressed weapon is going to alert a lot of enemies, Roach. level.scr_radio[ "cont_pri_alertenemies" ] = "cont_pri_alertenemies"; //Looks like they found a body. level.scr_radio[ "cont_pri_foundabody" ] = "cont_pri_foundabody"; //They found a body. level.scr_radio[ "cont_pri_foundabody2" ] = "cont_pri_foundabody2"; //Let them pass. level.scr_radio[ "cont_pri_letpass" ] = "cont_pri_letpass"; //You handle the two on the left. level.scr_radio[ "cont_pri_twoonleft" ] = "cont_pri_twoonleft"; //Take them out or try to slip past. Your call. level.scr_radio[ "cont_pri_slippast" ] = "cont_pri_slippast"; //Nicely done. level.scr_radio[ "cont_pri_nicelydone" ] = "cont_pri_nicelydone"; //Well done. level.scr_radio[ "cont_pri_welldone" ] = "cont_pri_welldone"; //Good. level.scr_radio[ "cont_pri_good" ] = "cont_pri_good"; //Not bad, but I've seen better. level.scr_radio[ "cont_pri_seenbetter" ] = "cont_pri_seenbetter"; //Good work. level.scr_radio[ "cont_pri_goodwork" ] = "cont_pri_goodwork"; //Impressive. level.scr_radio[ "cont_pri_impressive" ] = "cont_pri_impressive"; //Two of them have stopped for a smoke. Take one and I'll take out the other. level.scr_radio[ "cont_pri_forasmoke" ] = "cont_pri_forasmoke"; //Take out the two in the woods on the other side of the bridge. level.scr_radio[ "cont_pri_twoinwoods" ] = "cont_pri_twoinwoods"; //I'm ready. Lets take them all out at once. level.scr_radio[ "cont_pri_imready" ] = "cont_pri_imready"; //Sometimes you can't end a war with a bullet, Soap. level.scr_radio[ "cont_pri_endawar" ] = "cont_pri_endawar"; //level.scr_sound[ "price" ][ "cliff_pri_noidea" ] = "cliff_pri_noidea"; //level.scr_radio[ "outrunthem" ] = "cliff_pri_outrunthem"; //IN ---- //Soap, I've found Roach. He appears to be intact. level.scr_sound[ "price" ][ "cont_pri_foundroach" ] = "cont_pri_foundroach"; level.scr_radio[ "cont_pri_foundroach" ] = "cont_pri_foundroach"; //We're going to head northwest to the sub base, over. level.scr_sound[ "price" ][ "cont_pri_headnw" ] = "cont_pri_headnw"; level.scr_radio[ "cont_pri_headnw" ] = "cont_pri_headnw"; //Copy that. I've located Rasta and Bricktop, they landed pretty far to the east. level.scr_radio[ "cont_cmt_fareast" ] = "cont_cmt_fareast"; //Tell them to proceed with the mission, we'll regroup if possible. level.scr_sound[ "price" ][ "cont_pri_proceed" ] = "cont_pri_proceed"; level.scr_radio[ "cont_pri_proceed" ] = "cont_pri_proceed"; //Have you found us some transport? level.scr_sound[ "price" ][ "cont_pri_foundtransport" ] = "cont_pri_foundtransport"; level.scr_radio[ "cont_pri_foundtransport" ] = "cont_pri_foundtransport"; //I'm working on it. Out. level.scr_radio[ "cont_cmt_workingonit" ] = "cont_cmt_workingonit"; //IN ---- //Roach, follow me and stay out of sight. level.scr_radio[ "cont_pri_outofsight" ] = "cont_pri_outofsight"; //Contact. Enemy patrol 30 meters to our front. level.scr_radio[ "cont_pri_30metersfront" ] = "cont_pri_30metersfront"; //Let's follow them quietly, and pick off any stragglers. level.scr_radio[ "cont_pri_pickoffstragglers" ] = "cont_pri_pickoffstragglers"; //IN ---- //Convoy coming, get out of sight. level.scr_sound[ "price" ][ "cont_pri_convoycoming" ] = "cont_pri_convoycoming"; level.scr_radio[ "cont_pri_convoycoming" ] = "cont_pri_convoycoming"; //Let them pass. level.scr_sound[ "price" ][ "cont_pri_letthempass" ] = "cont_pri_letpass"; level.scr_radio[ "cont_pri_letthempass" ] = "cont_pri_letpass"; //Soap, our intel was off. The Russians have mobile SAMs. level.scr_sound[ "price" ][ "cont_pri_intelwasoff" ] = "cont_pri_intelwasoff"; level.scr_radio[ "cont_pri_intelwasoff" ] = "cont_pri_intelwasoff"; //Roger that. level.scr_sound[ "price" ][ "cont_cmt_rogerthat" ] = "cont_cmt_rogerthat"; level.scr_radio[ "cont_cmt_rogerthat" ] = "cont_cmt_rogerthat"; //IN ---- //Looks like they saw your parachute. level.scr_radio[ "cont_pri_yourparachute" ] = "cont_pri_yourparachute"; //Let's keep moving. level.scr_radio[ "cont_pri_keepmoving" ] = "cont_pri_keepmoving"; //Helicopters coming! Get down! level.scr_radio[ "cont_pri_getdown" ] = "cont_pri_getdown"; //Hug the walls! level.scr_radio[ "cont_pri_hugthewalls" ] = "cont_pri_hugthewalls"; //That was close. Lets keep moving. level.scr_radio[ "cont_pri_thatwasclose" ] = "cont_pri_thatwasclose"; //We're sitting ducks out here! Get off the bridge! Move! level.scr_radio[ "cont_pri_sittingducks" ] = "cont_pri_sittingducks"; /////////////////////// ///// MISC STEALTH //STEALTH BROKEN! ---- //We're spotted! Go loud! Take them out! level.scr_radio[ "cont_pri_goloud" ] = "cont_pri_goloud"; //They're on to us! Open fire! level.scr_radio[ "cont_pri_ontous" ] = "cont_pri_ontous"; //We're spotted! Take them out! level.scr_radio[ "cont_pri_werespotted" ] = "cont_pri_werespotted"; //first stragglers //Patience…don't do anything stupid. ----- level.scr_radio[ "cont_pri_patience" ] = "cont_pri_patience"; //We'll have to take 'em out at the same time. ----- level.scr_radio[ "cont_pri_sametime" ] = "cont_pri_sametime"; //Now's your chance. Take one of 'em out. ---- level.scr_radio[ "cont_pri_yourchance" ] = "cont_pri_yourchance"; //STEALTH TIPS //Don't get so close. level.scr_radio[ "cont_pri_dontgetclose" ] = "cont_pri_dontgetclose"; //Wait for me to get into position. level.scr_radio[ "cont_pri_waitposition" ] = "cont_pri_waitposition"; //Wait for me. level.scr_radio[ "cont_pri_waitforme" ] = "cont_pri_waitforme"; //I'm in position - take the shot when you're ready. level.scr_radio[ "cont_pri_whenyoureready" ] = "cont_pri_whenyoureready"; //STEALTH RECOVERY ----- //What the hell was that? You trying to get us killed? level.scr_radio[ "cont_pri_getuskilled" ] = "cont_pri_getuskilled"; //Does the word stealth mean anything to you? level.scr_radio[ "cont_pri_thewordstealth" ] = "cont_pri_thewordstealth"; //Don't give away our position, Roach. This is only going to get harder. level.scr_radio[ "cont_pri_giveawayposition" ] = "cont_pri_giveawayposition"; //Roach, we can't afford to keep giving away our position like that. Maintain a low profile! level.scr_radio[ "cont_pri_lowprofile" ] = "cont_pri_lowprofile"; //MOVE //Move up. level.scr_radio[ "cont_pri_moveup" ] = "cont_pri_moveup"; //Move. level.scr_radio[ "cont_pri_move" ] = "cont_pri_move"; //ALERTED ALONG THE ROAD ---- //Quick! Hide in the woods! You alerted one of them! level.scr_radio[ "cont_pri_hideinwoods" ] = "cont_pri_hideinwoods"; //Get into the woods! Hide! level.scr_radio[ "cont_pri_getintowoods" ] = "cont_pri_getintowoods"; //They're alerted! Hide in the woods! Move! level.scr_radio[ "cont_pri_theyrealerted" ] = "cont_pri_theyrealerted"; //STRAGGLERS //Take him out when the others aren't looking. level.scr_radio[ "cont_pri_arentlooking" ] = "cont_pri_arentlooking"; //They're splitting up. Take him down. level.scr_radio[ "cont_pri_splittingup" ] = "cont_pri_splittingup"; //GOOD JOB ---- //Beautiful. level.scr_radio[ "cont_pri_beautiful" ] = "cont_pri_beautiful"; //Good shot. level.scr_radio[ "cont_pri_goodshot" ] = "cont_pri_goodshot"; //PRICE KILLS ----- //Got one. level.scr_radio[ "cont_pri_gotone" ] = "cont_pri_gotone"; //He's down. level.scr_radio[ "cont_pri_hesdown2" ] = "cont_pri_hesdown2"; //Tango down. level.scr_radio[ "cont_pri_tangodown" ] = "cont_pri_tangodown"; //Good night. level.scr_radio[ "cont_pri_goodnight" ] = "cont_pri_goodnight"; //Target eliminated. level.scr_radio[ "cont_pri_targeteliminated" ] = "cont_pri_targeteliminated"; //Target down. level.scr_radio[ "cont_pri_targetdown" ] = "cont_pri_targetdown"; //ALERTED! //He noticed that! Hide! level.scr_radio[ "cont_pri_henoticed" ] = "cont_pri_henoticed"; //Get out of sight! That one's coming over here! level.scr_radio[ "cont_pri_getoutofsight" ] = "cont_pri_getoutofsight"; //Hide! One of them's been alerted! level.scr_radio[ "cont_pri_hidebeenalerted" ] = "cont_pri_hidebeenalerted"; //He's alerted! Hide! level.scr_radio[ "cont_pri_hesalerted" ] = "cont_pri_hesalerted"; //WOODS PATROL CALLOUTS //Dog patrol. ------ level.scr_radio[ "cont_pri_dogpatrol" ] = "cont_pri_dogpatrol"; //Three man patrol dead ahead. ----- level.scr_radio[ "cont_pri_3manpatrol" ] = "cont_pri_3manpatrol"; //Large patrol at 12 o'clock. ----- level.scr_radio[ "cont_pri_largepatrol12" ] = "cont_pri_largepatrol12"; //We got another dog patrol. ----- level.scr_radio[ "cont_pri_anotherdogpatrol" ] = "cont_pri_anotherdogpatrol"; //Another patrol up ahead. level.scr_radio[ "cont_pri_anotherpatrol" ] = "cont_pri_anotherpatrol"; //YOUR DECISION //Take them out or leave them be. It's your call. ------ level.scr_radio[ "cont_pri_yourcall" ] = "cont_pri_yourcall"; //We can't slip by them. Get ready to take them out quickly. ------ level.scr_radio[ "cont_pri_cantslipby" ] = "cont_pri_cantslipby"; //Take them out or go around. level.scr_radio[ "cont_pri_outoraround" ] = "cont_pri_outoraround"; //BTR80 moment //Incoming! Look out! level.scr_sound[ "price" ][ "cont_pri_incoming" ] = "cont_pri_incoming"; level.scr_radio[ "cont_pri_incoming" ] = "cont_pri_incoming"; //Get down! level.scr_radio[ "cont_pri_getdown2" ] = "cont_pri_getdown2"; //INTO THE WOODS! LETS GO! LETS GO! level.scr_sound[ "price" ][ "cont_pri_intothewoods" ] = "cont_pri_intothewoods"; level.scr_radio[ "cont_pri_intothewoods" ] = "cont_pri_intothewoods"; //FOLLOW ME! level.scr_sound[ "price" ][ "cont_pri_followme" ] = "cont_pri_followme"; level.scr_radio[ "cont_pri_followme" ] = "cont_pri_followme"; //now in woods //Slow down. They cant follow us this far. level.scr_sound[ "price" ][ "cont_pri_slowdown" ] = "cont_pri_slowdown"; level.scr_radio[ "cont_pri_slowdown" ] = "cont_pri_slowdown"; //Dogs. I hate dogs. You go first. level.scr_radio[ "cont_pri_hatedogs" ] = "cont_pri_hatedogs"; //Got'm. level.scr_radio[ "cont_pri_gotm" ] = "cont_pri_gotm"; //Hes down. level.scr_radio[ "cont_pri_hesdown" ] = "cont_pri_hesdown"; //Down boy. level.scr_radio[ "cont_pri_downboy" ] = "cont_pri_downboy"; //Nap time. level.scr_radio[ "cont_pri_naptime" ] = "cont_pri_naptime"; //Soap, what's the status of our air support? level.scr_sound[ "price" ][ "cont_pri_airsupport" ] = "cont_pri_airsupport"; level.scr_radio[ "cont_pri_airsupport" ] = "cont_pri_airsupport"; //The UAV is almost in position. level.scr_radio[ "cont_cmt_almostinpos" ] = "cont_cmt_almostinpos"; //Roger that. level.scr_sound[ "price" ][ "cont_pri_rogerthat" ] = "cont_pri_rogerthat"; level.scr_radio[ "cont_pri_rogerthat" ] = "cont_pri_rogerthat"; //This ridge is perfect. level.scr_sound[ "price" ][ "cont_pri_ridgeisperfect" ] = "cont_pri_ridgeisperfect"; level.scr_radio[ "cont_pri_ridgeisperfect" ] = "cont_pri_ridgeisperfect"; //Roach take control of the UAV. level.scr_sound[ "price" ][ "cont_pri_controluav" ] = "cont_pri_controluav"; level.scr_radio[ "cont_pri_controluav" ] = "cont_pri_controluav"; //Bollocks! level.scr_sound[ "price" ][ "cont_pri_bollocks" ] = "cont_pri_bollocks"; level.scr_radio[ "cont_pri_bollocks" ] = "cont_pri_bollocks"; //What just happened? level.scr_radio[ "cont_cmt_whathappened" ] = "cont_cmt_whathappened"; //There's a mobile SAM site in the village. It just took out our UAV. level.scr_sound[ "price" ][ "cont_pri_mobilesaminvillage" ] = "cont_pri_mobilesaminvillage"; level.scr_radio[ "cont_pri_mobilesaminvillage" ] = "cont_pri_mobilesaminvillage"; //Soap, we need another UAV, sharpish! level.scr_sound[ "price" ][ "cont_pri_uavsharpish" ] = "cont_pri_uavsharpish"; level.scr_radio[ "cont_pri_uavsharpish" ] = "cont_pri_uavsharpish"; //Roach - let's go. level.scr_sound[ "price" ][ "cont_pri_roachletsgo" ] = "cont_pri_roachletsgo"; level.scr_radio[ "cont_pri_roachletsgo" ] = "cont_pri_roachletsgo"; ////////////////////// STOP RADIO???? //Stand back! level.scr_sound[ "rasta" ][ "cont_rst_standback" ] = "cont_rst_standback"; //Get back! level.scr_sound[ "rasta" ][ "cont_rst_getback" ] = "cont_rst_getback"; //Check your fire! Check your fire! Friendlies coming in at your 12! level.scr_sound[ "rasta" ][ "cont_rst_checkfire" ] = "cont_rst_checkfire"; //Nice work on that SAM site. level.scr_sound[ "price" ][ "cont_pri_nicework" ] = "cont_pri_nicework"; //Thanks, but we better get moving - those explosions are gonna attract a lot of attention. level.scr_sound[ "rasta" ][ "cont_rst_getmoving" ] = "cont_rst_getmoving"; //Roach, they know we're here. You might want to grab a different weapon. level.scr_sound[ "price" ][ "cont_pri_grabweapon" ] = "cont_pri_grabweapon"; //Soap - Rasta and Bricktop are here. level.scr_sound[ "price" ][ "cont_pri_rastaandbricktop" ] = "cont_pri_rastaandbricktop"; //Roger that. The second UAV is almost in position. level.scr_radio[ "cont_cmt_2nduav" ] = "cont_cmt_2nduav"; //race through base //There's the submarine! Right below that crane! level.scr_sound[ "price" ][ "cont_pri_belowcrane" ] = "cont_pri_belowcrane"; //Roach, soften up their defenses with the Hellfires! level.scr_sound[ "price" ][ "cont_pri_softendefenses" ] = "cont_pri_softendefenses"; //That got their attention! level.scr_radio[ "cont_cmt_gotattention" ] = "cont_cmt_gotattention"; //The whole base has gone on alert! level.scr_radio[ "cont_cmt_baseonalert" ] = "cont_cmt_baseonalert"; //You'd better hurry. You've only got a couple of minutes before that submarine dives. level.scr_radio[ "cont_cmt_betterhurry" ] = "cont_cmt_betterhurry"; //We're moving! level.scr_sound[ "price" ][ "cont_pri_weremoving" ] = "cont_pri_weremoving"; //You're halfway there! level.scr_radio[ "cont_cmt_halwaythere" ] = "cont_cmt_halwaythere"; //90 seconds! level.scr_radio[ "cont_cmt_90secs" ] = "cont_cmt_90secs"; //60 seconds! level.scr_radio[ "cont_cmt_60secs" ] = "cont_cmt_60secs"; //30 seconds! Move! level.scr_radio[ "cont_cmt_30secs" ] = "cont_cmt_30secs"; //We've got to hurry! That sub isn't going to wait for us! level.scr_sound[ "price" ][ "cont_pri_subwontwait" ] = "cont_pri_subwontwait"; //Go go go! level.scr_sound[ "price" ][ "cont_pri_gogogo" ] = "cont_pri_gogogo"; //Get to the sub! Hurry! level.scr_sound[ "price" ][ "cont_pri_gettosub" ] = "cont_pri_gettosub"; //Soap, we've reached the sub! level.scr_sound[ "price" ][ "cont_pri_reachedsub" ] = "cont_pri_reachedsub"; //Roger that! level.scr_radio[ "cont_cmt_rogerthat2" ] = "cont_cmt_rogerthat2"; //enter sub //Roach! Get your mask on! level.scr_sound[ "price" ][ "cont_pri_getmaskon" ] = "cont_pri_getmaskon"; //Down the hatch, lets go! level.scr_sound[ "price" ][ "cont_pri_downthehatch" ] = "cont_pri_downthehatch"; //Roach! I need a few minutes! Cover me! level.scr_sound[ "price" ][ "cont_pri_needfewminutes" ] = "cont_pri_needfewminutes"; //Alert! The use of nuclear weapons has been authorized. //Price! I'm on my way to the east gate with our transport, over! level.scr_radio[ "cont_cmt_eastgate" ] = "cont_cmt_eastgate"; //Copy that Soap! level.scr_sound[ "price" ][ "cont_pri_copythatsoap" ] = "cont_pri_copythatsoap"; //Launch codes verified authentic. Launch codes accepted. //Set condition one-SQ. Nuclear missile launch authorized. //Now spinning up missiles 1 through 4 and 8 through 12 for strategic missile launch… //Target package 572 has been authorized. Standing by for target confirmation and launch order. //Roach! I'm almost done! Hold your ground!! level.scr_sound[ "price" ][ "cont_pri_almostdone" ] = "cont_pri_almostdone"; //Price! How much longer do you need to sink the sub? We're almost at the gate! level.scr_radio[ "cont_cmt_muchlonger" ] = "cont_cmt_muchlonger"; //Soap, I'm not sinking the sub - I'm launching the nukes. level.scr_sound[ "price" ][ "cont_pri_notsinking" ] = "cont_pri_notsinking"; //The bloody hell you are!!!! level.scr_radio[ "cont_cmt_bloodyhell" ] = "cont_cmt_bloodyhell"; //There's no time to explain! Roach! Turn that key over there! Hurry! They've scrambled MiGs to take us out! level.scr_sound[ "price" ][ "cont_pri_notime" ] = "cont_pri_notime"; //Roach! We're running out of time! Turn the key!!! level.scr_sound[ "price" ][ "cont_pri_runningout" ] = "cont_pri_runningout"; //Roach! Trust me! Turn - your - key!!! level.scr_sound[ "price" ][ "cont_pri_trustme" ] = "cont_pri_trustme"; //Missiles are ready for launch. Ten…Nine…Eight…Seven…Six...Five…Four…Three…Two…One…ignition on missiles 1 through 4 and 8 through 12 for strategic missile launch. //We're done here! Let's go! level.scr_sound[ "price" ][ "cont_pri_donehereletsgo" ] = "cont_pri_donehereletsgo"; //Roach! Get to the truck! Move! Move!! level.scr_sound[ "price" ][ "cont_pri_gettotruck" ] = "cont_pri_gettotruck"; //Bloody 'ell Price...God help us all if you're wrong… //Sometimes you can't end a war with a bullet, Soap. level.scr_sound[ "price" ][ "cont_pri_endawar" ] = "cont_pri_endawar"; //////////////////////////////// //Use a Hellfire on that truck! level.scr_sound[ "price" ][ "cont_pri_usehellfire" ] = "cont_pri_usehellfire"; //Take out that helicopter! level.scr_sound[ "price" ][ "cont_pri_takeoutheli" ] = "cont_pri_takeoutheli"; //Five men, automatic rifles, frag grenades. One German Shepherd. level.scr_radio[ "cont_pri_fivemen" ] = "cont_pri_fivemen"; //Dogs... I hate dogs. level.scr_radio[ "cont_cmt_hatedogs" ] = "cont_cmt_hatedogs"; //Take the two on the right. level.scr_radio[ "cont_pri_twoonright" ] = "cont_pri_twoonright"; //Looks like they're searching for us. level.scr_radio[ "cont_pri_searchingforus" ] = "cont_pri_searchingforus"; //Destroy that armored vehicle! level.scr_sound[ "price" ][ "cont_pri_armoredvehicle" ] = "cont_pri_armoredvehicle"; //split up //I'm going for the sub! level.scr_sound[ "price" ][ "cont_pri_goingforsub" ] = "cont_pri_goingforsub"; //Cover me from that guardhouse by the west gate! level.scr_sound[ "price" ][ "cont_pri_coverme" ] = "cont_pri_coverme"; //Roger that! level.scr_sound[ "rasta" ][ "cont_gst_rogerthat" ] = "cont_gst_rogerthat"; //Roach, we have to get to that guardhouse by the west gate to cover Price! Follow me! level.scr_sound[ "rasta" ][ "cont_gst_guardhouse" ] = "cont_gst_guardhouse"; //All right, I'm inside the sub! Cover me, I need a few minutes! level.scr_radio[ "cont_pri_insidesub" ] = "cont_pri_insidesub"; //defend //Incoming! Two trucks to the east! level.scr_sound[ "rasta" ][ "cont_gst_twotruckseast" ] = "cont_gst_twotruckseast"; //More vehicles to the east! Use the Hellfires! level.scr_sound[ "rasta" ][ "cont_gst_morevehicleseast" ] = "cont_gst_morevehicleseast"; //Contact to the south, on the dock next to the sub! level.scr_sound[ "rasta" ][ "cont_gst_nexttosub" ] = "cont_gst_nexttosub"; //Price, are you there? The silo doors are opening on the sub, I repeat, the silo doors are opening on the sub! level.scr_sound[ "rasta" ][ "cont_gst_youthere" ] = "cont_gst_youthere"; //Price, come in!! They're opening the silo doors on the sub!!! Hurry!!! level.scr_sound[ "rasta" ][ "cont_gst_comein" ] = "cont_gst_comein"; //Price, do you copy??? The silo doors are open, I repeat, the silo doors are open!! level.scr_sound[ "rasta" ][ "cont_gst_doyoucopy" ] = "cont_gst_doyoucopy"; //Good. level.scr_radio[ "cont_pri_good2" ] = "cont_pri_good2"; //What…? Wait...wait, Price - no!!! level.scr_sound[ "rasta" ][ "cont_gst_whatwait" ] = "cont_gst_whatwait"; //We have a nuclear missile launch, missile in the air missile in the air!! Code black code black!! level.scr_sound[ "rasta" ][ "cont_gst_codeblack" ] = "cont_gst_codeblack"; //Price what have you done??? level.scr_sound[ "rasta" ][ "cont_gst_whathaveyoudone" ] = "cont_gst_whathaveyoudone"; //Launch codes verified authentic. Launch codes accepted. //cont_rsc_launchcodes //Alert! The use of nuclear weapons has been authorized. //cont_rsc_alert //Set condition one-SQ. Nuclear missile launch authorized. //cont_rsc_setcondition //Now spinning up missiles 1 through 4 and 8 through 12 for strategic missile launch… //cont_rsc_spinningup //Target package 572 has been authorized. Standing by for target confirmation and launch order. //cont_rsc_launchorder //Missiles are ready for launch. Ten…Nine…Eight…Seven…Six...Five…Four…Three…Two…One…ignition on missiles 1 through 4 and 8 through 12 for strategic missile launch. //cont_rsc_missilesready //These Russian dogs are like pussycats compared to the ones in Pripyat. level.scr_radio[ "cont_pri_russiandogs" ] = "cont_pri_russiandogs"; //Its good to have you back, old man. level.scr_radio[ "cont_cmt_haveyouback" ] = "cont_cmt_haveyouback"; //Roger that. level.scr_radio[ "cont_pri_rogerthat2" ] = "cont_pri_rogerthat2"; //Direct hit on the enemy helo. Nice shot Roach. level.scr_radio[ "cont_cmt_directhitshelo" ] = "cont_cmt_directhitshelo"; //Good effect on target. BTR destroyed. level.scr_radio[ "cont_cmt_btrdestroyed" ] = "cont_cmt_btrdestroyed"; //Direct hit on that jeep. level.scr_radio[ "cont_cmt_directhitjeep" ] = "cont_cmt_directhitjeep"; //Good kill. Truck destroyed. level.scr_radio[ "cont_cmt_goodkilltruck" ] = "cont_cmt_goodkilltruck"; //Good hit. Multiple vehicles destroyed. level.scr_radio[ "cont_cmt_goodhitvehicles" ] = "cont_cmt_goodhitvehicles"; //Good effect on target. Multiple enemy vehicles KIA. level.scr_radio[ "cont_cmt_goodeffectkia" ] = "cont_cmt_goodeffectkia"; //Five plus KIAs. Good hit. Good hit. level.scr_radio[ "cont_cmt_fivepluskias" ] = "cont_cmt_fivepluskias"; //Multiple confirmed kills. Nice work. level.scr_radio[ "cont_cmt_mutlipleconfirmed" ] = "cont_cmt_mutlipleconfirmed"; //Good hit. Looks like at least three kills. level.scr_radio[ "cont_cmt_3kills" ] = "cont_cmt_3kills"; //They're down. level.scr_radio[ "cont_cmt_theyredown" ] = "cont_cmt_theyredown"; //Direct hit. level.scr_radio[ "cont_cmt_directhit" ] = "cont_cmt_directhit"; //He's down. level.scr_radio[ "cont_cmt_hesdown" ] = "cont_cmt_hesdown"; // Sets up the dialog for remotemissile online/offline only level.uav_radio_initialized = true; level.scr_radio[ "uav_reloading" ] = "cont_cmt_rearmhellfires"; level.scr_radio[ "uav_offline" ] = "cont_cmt_hellfiresoffline"; level.scr_radio[ "uav_online" ] = "cont_cmt_hellfireonline"; level.scr_radio[ "uav_online_repeat" ] = "cont_cmt_repeatonline"; level.scr_radio[ "uav_down" ] = "cont_cmt_predatordown"; //Rearming Hellfires. Standby. //level.scr_radio[ "cont_cmt_rearmhellfires" ] = "cont_cmt_rearmhellfires"; //Arming AGMs. Standby. //cont_cmt_armagm //Arming Hellfires. Standby. //cont_cmt_armhellfire //Price, I can barely see Roach's chute on my satellite feed. Too much interference. Do you see him, over? level.scr_radio[ "cont_cmt_barelysee" ] = "cont_cmt_barelysee"; //Watch for the blinking strobes. That’s us. level.scr_sound[ "price" ][ "cont_pri_strobes" ] = "cont_pri_strobes"; }