Files
2026-08-06 14:45:27 -07:00

4217 lines
113 KiB
Plaintext

//------------------------------------------------------------------------------------
// Air Assault ver. #34,564
//
// (c) Ritual Entertainment 2005
// Author: JSchuch
//------------------------------------------------------------------------------------
namespace map_m03aa
{
#include "scripts/doom_defs.script"
float f; //Generic float used for various things
entity e; //Generic entity used for various things
float t; //Generic float used for various things
entity n; //Generic entity used for various things
entity starget; //Global entity for passing targets to the func_vehicle_drivers
//Conditionals
boolean RAMPUP; //Rear ramp up/down
boolean RAMPACTIVE;
boolean INTOPGUN; //Player in the top turret
boolean INBOTTOMGUN; //Player in the bottom turret
boolean FRIENDLY_1_KILL; //Friendly dropship that gets blasted
boolean FRIENDLY_1_READYTODIE;
boolean FRIENDLY_2_KILL; //Friendly dropship that gets blasted
boolean FRIENDLY_2_READYTODIE;
boolean FRIENDLY_3_KILL; //Friendly dropship that gets blasted
boolean FRIENDLY_3_READYTODIE;
boolean DRIVER_STOP_FIRING; //Tells the func_vehicle_driver when to stop shooting at bad guys
boolean DRIVER_FIRING; //Whether or not the driver is already firing at something
boolean DRIVER; //For checking whether its the player or func_vehicle_driver entering turrets
boolean GUIARMACTIVE; //GUI on arms by the ramp
boolean INGUIARMAREA; //GUI on arms by the ramp
boolean LIGHTS_ON;
boolean REDALERT;
boolean EVENT_FIRE_REAR;
boolean EVENT_FIRE_CARGO;
boolean EVENT_AMMO;
boolean EVENT_ENGINE;
boolean GUNMOVING;
//Objective events
boolean FIRE_SUPRESSED; //Player has/hasn't put out the rear fire
boolean STARTED_REAR_FIRE_SEQ;
boolean CARGO_DUMPED; //Player has/hasn't dumped the cargo
boolean AMMO_JAM_FIXED; //Player has helped Navajas with the ammo jam
boolean STARTED_AMMO_JAM_SEQ; //Make the ammo jam only happen once
boolean ENGINE_FIRE_OUT; //Player has put out the engine fire
boolean PLAYER_BACK_AT_CHAIR; //Player has returned to chair at end
boolean CARGO_FIRE_BURNING; //Whether or not the player has put out the cargo fire
boolean STARTED_CARGO_FIRE_SEQ;
boolean STARTED_ENGINE_FIRE_SEQ;
boolean PLAYER_EVENT_IN_PROGRESS;
boolean ENGINE_STEP_1;
boolean ENGINE_STEP_2;
boolean INTROCIN;
boolean NAVAJAS_READY_AMMO;
boolean NO_EVASIVES;
//Tracking variables
float WAVE = 0; //Current wave of Strogg ships
float STROGG_WAVE_SHIP_COUNTER = 0; //Tracking spawned and killed Strogg ships
float TOTAL_PLAYER_KILLS = 0;
//Dropship Health Monitoring
float DROPSHIP_HEALTH = 25000; //healh of the dropship
float DSHEALTHADD = 0;
boolean WARN_SEVENTYFIVE_PERCENT; //Dropship health reached 75%
boolean WARN_FIFTY_PERCENT; //Dropship health reached 50%
boolean WARN_TWENTYFIVE_PERCENT; //Dropship health reached 25%
float GLOBAL_DS_HEALTH_SEVENTYFIVE;
float GLOBAL_DS_HEALTH_FIFTY;
float GLOBAL_DS_HEALTH_TWENTYFIVE;
float GLOBAL_DS_HEALTH_90;
float GLOBAL_DS_HEALTH_80;
float GLOBAL_DS_HEALTH_70;
float GLOBAL_DS_HEALTH_60;
float GLOBAL_DS_HEALTH_50;
float GLOBAL_DS_HEALTH_40;
float GLOBAL_DS_HEALTH_30;
float GLOBAL_DS_HEALTH_20;
float GLOBAL_DS_HEALTH_10;
boolean GUI_90;
boolean GUI_80;
boolean GUI_70;
boolean GUI_60;
boolean GUI_50;
boolean GUI_40;
boolean GUI_30;
boolean GUI_20;
boolean GUI_10;
//Gameplay Tweaking Variables
float WAVE1_KILLCOUNT = 12; //How many kills the player must get
float WAVE1_PLAYERKILLS = 0; //How many kills the player has gotten
float WAVE2_KILLCOUNT = 14;
float WAVE2_PLAYERKILLS = 0;
float WAVE3_KILLCOUNT = 12;
float WAVE3_PLAYERKILLS = 0;
float WAVE4_KILLCOUNT = 12;
float WAVE4_PLAYERKILLS = 0;
float WAVE5_KILLCOUNT = 16;
float WAVE5_PLAYERKILLS = 0;
//Enemy Ships
#define SHIP_1 1 //Fighters
#define SHIP_2 2
#define SHIP_3 3
#define SHIP_4 4
#define SHIP_5 5
#define SHIP_6 6
#define SHIP_7 7
#define SHIP_8 8
#define SHIP_9 9
#define SHIP_10 10
#define SHIP_11 11
#define SHIP_12 12
#define SHIP_13 13 //Bombers
#define SHIP_14 14
#define SHIP_15 15
#define SHIP_16 16
#define SHIP_17 17 //New fighter 0_1
#define SHIP_18 18 //New fighter 0_2
#define SHIP_19 19 //New fighter 90_1
#define SHIP_20 20 //New fighter 90_2
#define SHIP_21 21 //New fighter 180_1
#define SHIP_22 22 //New fighter 180_2
#define SHIP_23 23 //New fighter 270_1
#define SHIP_24 24 //New fighter 270_2
boolean SPLINE_1_COMPLETED;
boolean SPLINE_2_COMPLETED;
boolean SPLINE_3_COMPLETED;
boolean SPLINE_4_COMPLETED;
boolean SPLINE_5_COMPLETED;
boolean SPLINE_6_COMPLETED;
boolean SPLINE_7_COMPLETED;
boolean SPLINE_8_COMPLETED;
boolean SPLINE_9_COMPLETED;
boolean SPLINE_10_COMPLETED;
boolean SPLINE_11_COMPLETED;
boolean SPLINE_12_COMPLETED;
boolean SPLINE_13_COMPLETED;
boolean SPLINE_14_COMPLETED;
boolean SPLINE_15_COMPLETED;
boolean SPLINE_16_COMPLETED;
boolean SPLINE_17_COMPLETED;
boolean SPLINE_18_COMPLETED;
boolean SPLINE_19_COMPLETED;
boolean SPLINE_20_COMPLETED;
boolean SPLINE_21_COMPLETED;
boolean SPLINE_22_COMPLETED;
boolean SPLINE_23_COMPLETED;
boolean SPLINE_24_COMPLETED;
//Dialogue callouts
boolean WAVE1_CALLOUT_1;
boolean WAVE1_CALLOUT_2;
boolean WAVE2_CALLOUT_1;
boolean WAVE2_CALLOUT_2;
boolean WAVE3_CALLOUT_1;
boolean WAVE3_CALLOUT_2;
boolean WAVE4_CALLOUT_1;
boolean WAVE4_CALLOUT_2;
boolean WAVE5_CALLOUT_1;
boolean WAVE5_CALLOUT_2;
boolean WAVE5_CALLOUT_3;
boolean WAVE4_BOMBER;
boolean WAVE5_BOMBER;
boolean WAVE4BOMBER_ALIVE;
boolean WAVE5BOMBER_ALIVE;
boolean WAVE3_FIGHTER;
boolean WAVE3_FIGHTER2;
boolean WAVE3FIGHTER_ALIVE;
boolean WAVE3FIGHTER2_ALIVE;
///////////////////////////////////////////////////////////////
// Teammates //
///////////////////////////////////////////////////////////////
void mitchellDead()
{
sys.trigger( $item_objectivefailed_1 );
}
void takDead()
{
sys.trigger( $item_objectivefailed_1 );
}
void navajasDead()
{
sys.trigger( $item_objectivefailed_1 );
}
void darnellDead()
{
sys.trigger( $item_objectivefailed_1 );
}
///////////////////////////////////////////////////////////////
// GUI console //
///////////////////////////////////////////////////////////////
void playerGUILights()
{
if( LIGHTS_ON ) {
$white_ship_light.Off();
$chair_light_static_flares.setColor( 0, 0, 0 );
$seat_light_1.Off();
$seat_light_2.Off();
$seat_light_3.Off();
$seat_light_4.Off();
$seat_light_5.Off();
$ds_redlight_1.Off();
$ds_redlight_2.Off();
$ds_redlight_rot_flare_1.hide();
$ds_redlight_rot_flare_2.hide();
$player_console_light.Off();
$player_console_static.setColor( 0, 0, 0 );
$tak_console_light.Off();
$tak_console_static.setColor( 0, 0, 0 );
LIGHTS_ON = false;
}
else {
if( REDALERT ) {
$chair_light_static_flares.setColor( 0.5, 0.03, 0 ); //red
}
else {
$chair_light_static_flares.setColor( 0.6, 1, 0.9 ); //bluegreen
}
$seat_light_1.On();
$seat_light_2.On();
$seat_light_3.On();
$seat_light_4.On();
$seat_light_5.On();
$white_ship_light.On();
$ds_redlight_1.On();
$ds_redlight_2.On();
$ds_redlight_rot_flare_1.show();
$ds_redlight_rot_flare_2.show();
$player_console_light.On();
$player_console_static.setColor( 1, 0.73, 0.34 );
$tak_console_light.On();
$tak_console_static.setColor( 1, 0.73, 0.34 );
LIGHTS_ON = true;
}
}
///////////////////////////////////////////////////////////////
// GUI on arm by ramp //
///////////////////////////////////////////////////////////////
void gui_arm_screen_rotate()
{
$gui_arm_screen_mover.time( 1.5 );
$gui_arm_screen_mover.rotateOnce( '0 180 0' );
sys.waitFor( $reargui );
}
void gui_arm_screen_rotate_reverse()
{
$gui_arm_screen_mover.time( 1.5 );
$gui_arm_screen_mover.rotateOnce( '0 -180 0' );
sys.waitFor( $reargui );
}
void gui_arm_extend()
{
thread gui_arm_screen_rotate();
sys.trigger( $reargui_speaker );
$gui_arm_1.time( 1 );
$gui_arm_1.accelTime( 0.1 );
$gui_arm_1.decelTime( 0.1 );
$gui_arm_2.time( 1 );
$gui_arm_2.accelTime( 0.1 );
$gui_arm_2.decelTime( 0.1 );
$gui_arm_1.rotateOnce( '0 90 0' );
$gui_arm_2.rotateOnce( '0 0 -180' );
sys.waitFor( $gui_arm_1 );
sys.waitFor( $gui_arm_2 );
$gui_arm_2.time( 0.5 );
$gui_arm_2.accelTime( 0.1 );
$gui_arm_2.decelTime( 0.1 );
$gui_arm_2.rotateOnce( '0 0 25' );
sys.waitFor( $gui_arm_2 );
$reargui.setGuiParm( "noninteractive", 0 );
}
void gui_arm_retract()
{
$reargui.setGuiParm( "noninteractive", 1 );
thread gui_arm_screen_rotate_reverse();
sys.trigger( $reargui_speaker );
$gui_arm_2.time( 0.5 );
$gui_arm_2.accelTime( 0.1 );
$gui_arm_2.decelTime( 0.1 );
$gui_arm_2.rotateOnce( '0 0 -25' );
sys.waitFor( $gui_arm_2 );
$gui_arm_1.time( 1 );
$gui_arm_1.accelTime( 0.1 );
$gui_arm_1.decelTime( 0.1 );
$gui_arm_2.time( 1 );
$gui_arm_2.accelTime( 0.1 );
$gui_arm_2.decelTime( 0.1 );
$gui_arm_1.rotateOnce( '0 -90 0' );
$gui_arm_2.rotateOnce( '0 0 180' );
sys.waitFor( $gui_arm_1 );
sys.waitFor( $gui_arm_2 );
}
///////////////////////////////////////////////////////////////
// Player Fell out //
///////////////////////////////////////////////////////////////
void playerFalling()
{
$player1.disableWeapon();
sys.fadeOut( '1 0 0', 1 );
sys.wait( 1.5 );
$player1.bind( $drop_ship );
sys.trigger( $item_objectivefailed_1 );
}
///////////////////////////////////////////////////////////////
// Dropship health monitoring //
///////////////////////////////////////////////////////////////
void shipImpactEffectLight()
{
if( WAVE == 1 || WAVE == 2 ) {
sys.trigger( $amb_shake_low );
}
if( WAVE == 3 || WAVE == 4 ) {
sys.trigger( $amb_shake_med );
}
if( WAVE == 5 ) {
sys.trigger( $amb_shake_high );
}
sys.waitFrame();
sys.trigger( $ship_hit_shake );
sys.wait( 1 );
if( WAVE == 1 || WAVE == 2 ) {
sys.trigger( $amb_shake_low );
}
if( WAVE == 3 || WAVE == 4 ) {
sys.trigger( $amb_shake_med );
}
if( WAVE == 5 ) {
sys.trigger( $amb_shake_high );
}
}
void shipImpactEffectHeavy()
{
if( WAVE == 1 || WAVE == 2 ) {
sys.trigger( $amb_shake_low );
}
if( WAVE == 3 || WAVE == 4 ) {
sys.trigger( $amb_shake_med );
}
if( WAVE == 5 ) {
sys.trigger( $amb_shake_high );
}
sys.waitFrame();
sys.trigger( $ship_hit_shake_heavy );
sys.wait( 0.5 );
aiScriptedAnim( $bottomgun, "impact_heavy", 4, 0 );
aiScriptedAnim( $topgun, "impact_heavy", 4, 0 );
sys.wait( 1 );
if( WAVE == 1 || WAVE == 2 ) {
sys.trigger( $amb_shake_low );
}
if( WAVE == 3 || WAVE == 4 ) {
sys.trigger( $amb_shake_med );
}
if( WAVE == 5 ) {
sys.trigger( $amb_shake_high );
}
}
void dropshipDead()
{
sys.trigger( $item_objectivefailed_1 );
}
void dropshiphealthcheck()
{
float h = DROPSHIP_HEALTH; //current health
float p = DROPSHIP_HEALTH; //previous health
float d; //difference
$drop_ship.setHealth( DROPSHIP_HEALTH );
while( 1 ) {
h = $drop_ship.getHealth();
d = ( p - h );
if( d >= 1 && d <= 30) {
thread shipImpactEffectLight();
}
if( d >= 75 ) {
thread shipImpactEffectHeavy();
}
p = h;
if( (h + DSHEALTHADD) <= 0 ) {
//$topgun.setGuiParm( "shealth", 0 );
//$bottomgun.setGuiParm( "shealth", 0 );
thread dropshipDead();
break;
}
if( h <= GLOBAL_DS_HEALTH_SEVENTYFIVE && !WARN_SEVENTYFIVE_PERCENT ) {
WARN_SEVENTYFIVE_PERCENT = true;
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_minordamtoseconday" ); //%%%%%%%% VO %%%%%%%%%%
}
}
if( h <= GLOBAL_DS_HEALTH_FIFTY && !WARN_FIFTY_PERCENT ) {
WARN_FIFTY_PERCENT = true;
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_powersysst" ); //%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_tak_wehavemajdam" ); //%%%%%%%% VO %%%%%%%%%%
}
}
if( h <= GLOBAL_DS_HEALTH_TWENTYFIVE && !WARN_TWENTYFIVE_PERCENT ) {
WARN_TWENTYFIVE_PERCENT = true;
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_damagelevcrty" ); //%%%%%%%% VO %%%%%%%%%%
}
}
//Update the GUI status
if( h <= GLOBAL_DS_HEALTH_80 && !GUI_80 ) {
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_health_01_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_health_01_on" );
GUI_80 = true ;
}
if( h <= GLOBAL_DS_HEALTH_60 && !GUI_60 ) {
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_health_02_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_health_02_on" );
GUI_60 = true ;
}
if( h <= GLOBAL_DS_HEALTH_40 && !GUI_40 ) {
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_health_03_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_health_03_on" );
GUI_40 = true ;
}
if( h <= GLOBAL_DS_HEALTH_20 && !GUI_20 ) {
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_health_04_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_health_04_on" );
GUI_20 = true ;
}
if( h <= GLOBAL_DS_HEALTH_10 && !GUI_10 ) {
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_health_05_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_health_05_on" );
GUI_10 = true ;
}
//$topgun.setGuiParm( "shealth", h );
//$bottomgun.setGuiParm( "shealth", h );
sys.wait( 0.1 );
}
}
///////////////////////////////////////////////////////////////
// Spawning ships on splines //
///////////////////////////////////////////////////////////////
void stroggKilledFeedback( entity self, entity killer )
{
float i;
STROGG_WAVE_SHIP_COUNTER--;
//sys.println( self.getName() + " " + killer.getName() );
//Wave 1
if( killer == $player1 && WAVE == 1 ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
WAVE1_PLAYERKILLS++;
TOTAL_PLAYER_KILLS++;
}
//Wave 2
if( killer == $player1 && WAVE == 2 ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
WAVE2_PLAYERKILLS++;
TOTAL_PLAYER_KILLS++;
}
//Wave 3
if( killer == $player1 && WAVE == 3 ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
WAVE3_PLAYERKILLS++;
TOTAL_PLAYER_KILLS++;
}
//Wave 4
if( killer == $player1 && WAVE == 4 ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
WAVE4_PLAYERKILLS++;
TOTAL_PLAYER_KILLS++;
}
//Wave 5
if( killer == $player1 && WAVE == 5 ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
WAVE5_PLAYERKILLS++;
TOTAL_PLAYER_KILLS++;
}
if( killer == $topgun_driver || killer == $bottomgun_driver ) {
self.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
}
//Darnell feedback
i = randomRoundFloat(1, 50);
if( i == 2 && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter_pilot, "vo_darn_watchtarg" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( i == 3 && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter_pilot, "vo_darn_flydown" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( i == 4 && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter_pilot, "vo_darn_threemore" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
void splinePathCompleted( float shipId, boolean completed )
{
//Fighters
if(shipId == SHIP_1)
SPLINE_1_COMPLETED = completed;
if(shipId == SHIP_2)
SPLINE_2_COMPLETED = completed;
if(shipId == SHIP_3)
SPLINE_3_COMPLETED = completed;
if(shipId == SHIP_4)
SPLINE_4_COMPLETED = completed;
if(shipId == SHIP_5)
SPLINE_5_COMPLETED = completed;
if(shipId == SHIP_6)
SPLINE_6_COMPLETED = completed;
if(shipId == SHIP_7)
SPLINE_7_COMPLETED = completed;
if(shipId == SHIP_8)
SPLINE_8_COMPLETED = completed;
if(shipId == SHIP_9)
SPLINE_9_COMPLETED = completed;
if(shipId == SHIP_10)
SPLINE_10_COMPLETED = completed;
if(shipId == SHIP_11)
SPLINE_11_COMPLETED = completed;
if(shipId == SHIP_12)
SPLINE_12_COMPLETED = completed;
//Bombers
if(shipId == SHIP_13)
SPLINE_13_COMPLETED = completed;
if(shipId == SHIP_14)
SPLINE_14_COMPLETED = completed;
if(shipId == SHIP_15)
SPLINE_15_COMPLETED = completed;
if(shipId == SHIP_16)
SPLINE_16_COMPLETED = completed;
//New fighters
if(shipId == SHIP_17)
SPLINE_17_COMPLETED = completed;
if(shipId == SHIP_18)
SPLINE_18_COMPLETED = completed;
if(shipId == SHIP_19)
SPLINE_19_COMPLETED = completed;
if(shipId == SHIP_20)
SPLINE_20_COMPLETED = completed;
if(shipId == SHIP_21)
SPLINE_21_COMPLETED = completed;
if(shipId == SHIP_22)
SPLINE_22_COMPLETED = completed;
if(shipId == SHIP_23)
SPLINE_23_COMPLETED = completed;
if(shipId == SHIP_24)
SPLINE_24_COMPLETED = completed;
}
void moveShipAlongSpline( entity shipEntity, entity moverEntity, entity splinePath, float shipId, float flytime )
{
string tempShip;
tempShip = shipEntity.getName();
splinePathCompleted( shipId, false );
shipEntity.setScript( "death", "stroggKilledFeedback" );
STROGG_WAVE_SHIP_COUNTER++;
shipEntity.bind( moverEntity );
sys.waitFrame();
moverEntity.time( flytime );
moverEntity.accelTime( (flytime*0.25) );
moverEntity.startSpline( splinePath );
sys.waitFor( moverEntity );
shipEntity = sys.getEntity( tempShip );
if( isValidEntity( shipEntity ) ) {
shipEntity.kill();
}
sys.wait( 0.1 );
moverEntity.stopSpline();
sys.waitFrame();
moverEntity.removeBinds();
sys.waitFrame();
thread splinePathCompleted( shipId, true );
}
//Fighters__________________________________________________________________
void fighter_spawn_1_shipSpawned( entity spawnedstrogg1 )
{
if( SPLINE_1_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg1, $fighter_spawn_1_mover, $fighter_spline_1, SHIP_1, 13 );
sys.trigger( $flyby_high_1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NE" );
}
}
void fighter_spawn_2_shipSpawned( entity spawnedstrogg2 )
{
if( SPLINE_2_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg2, $fighter_spawn_2_mover, $fighter_spline_2, SHIP_2, 15 );
sys.trigger( $flyby_high_2 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NE" );
}
}
void fighter_spawn_3_shipSpawned( entity spawnedstrogg3 )
{
if( SPLINE_3_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg3, $fighter_spawn_3_mover, $fighter_spline_3, SHIP_3, 14 );
sys.trigger( $flyby_high_3 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NE" );
}
}
void fighter_spawn_4_shipSpawned( entity spawnedstrogg4 )
{
if( SPLINE_4_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg4, $fighter_spawn_4_mover, $fighter_spline_4, SHIP_4, 15 );
if( WAVE == 3 || WAVE == 4 || WAVE == 5 ) {
starget = spawnedstrogg4;
sys.trigger( $flyby_high_4 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SW" );
}
}
}
void fighter_spawn_5_shipSpawned( entity spawnedstrogg5 )
{
if( SPLINE_5_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg5, $fighter_spawn_5_mover, $fighter_spline_5, SHIP_5, 13 );
sys.trigger( $flyby_high_5 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SW" );
}
}
void fighter_spawn_6_shipSpawned( entity spawnedstrogg6 )
{
if( SPLINE_6_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg6, $fighter_spawn_6_mover, $fighter_spline_6, SHIP_6, 13 );
sys.trigger( $flyby_high_6 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SW" );
}
}
void fighter_spawn_7_shipSpawned( entity spawnedstrogg7 )
{
if( SPLINE_7_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg7, $fighter_spawn_7_mover, $fighter_spline_7, SHIP_7, 14 );
if( WAVE == 1 || WAVE == 2 ) {
starget = spawnedstrogg7;
sys.trigger( $flyby_low_1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NW" );
}
}
}
void fighter_spawn_8_shipSpawned( entity spawnedstrogg8 )
{
if( SPLINE_8_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg8, $fighter_spawn_8_mover, $fighter_spline_8, SHIP_8, 13 );
sys.trigger( $flyby_low_2 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NW" );
}
}
void fighter_spawn_9_shipSpawned( entity spawnedstrogg9 )
{
if( SPLINE_9_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg9, $fighter_spawn_9_mover, $fighter_spline_9, SHIP_9, 15 );
sys.trigger( $flyby_low_3 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NW" );
}
}
void fighter_spawn_10_shipSpawned( entity spawnedstrogg10 )
{
if( SPLINE_10_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg10, $fighter_spawn_10_mover, $fighter_spline_10, SHIP_10, 13 );
sys.trigger( $flyby_low_4 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SE" );
}
}
void fighter_spawn_11_shipSpawned( entity spawnedstrogg11 )
{
if( SPLINE_11_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg11, $fighter_spawn_11_mover, $fighter_spline_11, SHIP_11, 14 );
sys.trigger( $flyby_low_5 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SE" );
}
}
void fighter_spawn_12_shipSpawned( entity spawnedstrogg12 )
{
if( SPLINE_12_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg12, $fighter_spawn_12_mover, $fighter_spline_12, SHIP_12, 14 );
sys.trigger( $flyby_low_6 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_SE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_SE" );
}
}
//Bombers__________________________________________________________________
void bomber_spawn_1_shipSpawned( entity spawnedstroggb1 )
{
if( SPLINE_13_COMPLETED ) {
thread moveShipAlongSpline( spawnedstroggb1, $bomber_spawn_1_mover, $bomber_spline_1, SHIP_13, 50 );
sys.trigger( $flyby_bomber_1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NE" );
}
}
void bomber_spawn_2_shipSpawned( entity spawnedstroggb2 )
{
if( SPLINE_14_COMPLETED ) {
thread moveShipAlongSpline( spawnedstroggb2, $bomber_spawn_2_mover, $bomber_spline_2, SHIP_14, 50 );
sys.trigger( $flyby_bomber_2 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NE" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NE" );
}
}
void bomber_spawn_3_shipSpawned( entity spawnedstroggb3 )
{
if( SPLINE_15_COMPLETED ) {
thread moveShipAlongSpline( spawnedstroggb3, $bomber_spawn_3_mover, $bomber_spline_3, SHIP_15, 50 );
sys.trigger( $flyby_bomber_3 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NW" );
}
}
void bomber_spawn_4_shipSpawned( entity spawnedstroggb4 )
{
if( SPLINE_16_COMPLETED ) {
thread moveShipAlongSpline( spawnedstroggb4, $bomber_spawn_4_mover, $bomber_spline_4, SHIP_16, 50 );
sys.trigger( $flyby_bomber_4 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_NW" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_NW" );
}
}
//New fighters____________________________________________________________
void fighter_spawn_0_1_shipSpawned( entity spawnedstrogg01 )
{
if( SPLINE_17_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg01, $fighter_spawn_0_1_mover, $fighter_spline_0_1, SHIP_17, 12 );
sys.trigger( $flyby_high_7 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_N" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_N" );
}
}
void fighter_spawn_0_2_shipSpawned( entity spawnedstrogg02 )
{
if( SPLINE_18_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg02, $fighter_spawn_0_2_mover, $fighter_spline_0_2, SHIP_18, 12 );
sys.trigger( $flyby_high_8 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_N" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_N" );
}
}
void fighter_spawn_90_1_shipSpawned( entity spawnedstrogg901 )
{
if( SPLINE_19_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg901, $fighter_spawn_90_1_mover, $fighter_spline_90_1, SHIP_19, 12 );
sys.trigger( $flyby_low_7 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_E" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_E" );
}
}
void fighter_spawn_90_2_shipSpawned( entity spawnedstrogg902 )
{
if( SPLINE_20_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg902, $fighter_spawn_90_2_mover, $fighter_spline_90_2, SHIP_20, 12 );
sys.trigger( $flyby_low_8 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_E" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_E" );
}
}
void fighter_spawn_180_1_shipSpawned( entity spawnedstrogg1801 )
{
if( SPLINE_21_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg1801, $fighter_spawn_180_1_mover, $fighter_spline_180_1, SHIP_21, 12 );
sys.trigger( $flyby_low_9 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_S" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_S" );
}
}
void fighter_spawn_180_2_shipSpawned( entity spawnedstrogg1802 )
{
if( SPLINE_22_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg1802, $fighter_spawn_180_2_mover, $fighter_spline_180_2, SHIP_22, 12 );
sys.trigger( $flyby_low_10 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_S" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_S" );
}
}
void fighter_spawn_270_1_shipSpawned( entity spawnedstrogg2701 )
{
if( SPLINE_23_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg2701, $fighter_spawn_270_1_mover, $fighter_spline_270_1, SHIP_23, 12 );
sys.trigger( $flyby_high_9 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_W" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_W" );
}
}
void fighter_spawn_270_2_shipSpawned( entity spawnedstrogg2702 )
{
if( SPLINE_24_COMPLETED ) {
thread moveShipAlongSpline( spawnedstrogg2702, $fighter_spawn_270_2_mover, $fighter_spline_270_2, SHIP_24, 12 );
sys.trigger( $flyby_high_10 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "warning_W" );
sys.sendNamedEvent( GUI_PLAYERHUD, "warning_W" );
}
}
///////////////////////////////////////////////////////////////
// Skybox Functions //
///////////////////////////////////////////////////////////////
void loopSkyboxTerrain()
{
float a = 0;
while( 1 ) {
$terrain_1.time( 30 );
$terrain_1.move( 180, 512 );
$terrain_2.time( 30 );
$terrain_2.move( 180, 512 );
sys.waitFor( $terrain_1 );
sys.waitFor( $terrain_2 );
if( a == 1 ) {
$skybox_bld_1.hide();
}
if( a == 2 ) {
$skybox_bld_2.hide();
}
if( a == 3 ) {
$skybox_bld_3.hide();
}
if( a == 4 ) {
$skybox_bld_4.hide();
}
$terrain_1.hide();
$terrain_1.time( 0.01 );
$terrain_1.move( 360, 1024 );
sys.waitFor( $terrain_1 );
$terrain_1.show();
a = randomRoundFloat(1, 10);
if( a == 1 ) {
$skybox_bld_1.show();
}
if( a == 2 ) {
$skybox_bld_2.show();
}
if( a == 3 ) {
$skybox_bld_3.show();
}
if( a == 4 ) {
$skybox_bld_4.show();
}
$terrain_1.time( 30 );
$terrain_1.move( 180, 512 );
$terrain_2.time( 30 );
$terrain_2.move( 180, 512 );
sys.waitFor( $terrain_1 );
sys.waitFor( $terrain_2 );
$terrain_2.hide();
$terrain_2.time( 0.01 );
$terrain_2.move( 360, 1024 );
sys.waitFor( $terrain_2 );
$terrain_2.show();
sys.waitFrame();
}
}
///////////////////////////////////////////////////////////////
// Turret Functions //
///////////////////////////////////////////////////////////////
void hideInterior()
{
if( DRIVER ) {
return;
}
if( INTOPGUN ) {
$ship_top_facade.show();
}
if( INBOTTOMGUN ) {
$ship_bottom_facade.show();
}
if( !EVENT_FIRE_CARGO ) {
$mitchell.hide();
$wounded.hide();
}
$navajas.hide();
$tak.hide();
$ship_interior.hide();
$ramp.hide();
$cargodoor.hide();
$rightdoor.hide();
$leftdoor.hide();
$box1.hide();
$box2.hide();
$box3.hide();
$box4.hide();
if( !CARGO_DUMPED ) {
$cargo_crate_1.hide();
$cargo_crate_2.hide();
}
$ammocrate.hide();
$gui_arm_1.hide();
$gui_arm_2.hide();
$gui_arm_3.hide();
$chair_light_static_flares.hide();
$chair_light_wires.hide();
$chair_light_statics_off.hide();
$seat_light_1.Off();
$seat_light_2.Off();
$seat_light_3.Off();
$seat_light_4.Off();
$seat_light_5.Off();
$ds_redlight_static_1.hide();
$ds_redlight_rot_1.hide();
$ds_redlight_1.Off();
$ds_redlight_static_2.hide();
$ds_redlight_rot_2.hide();
$ds_redlight_2.Off();
$takgui_1.hide();
$takgui_2.hide();
$forward_light.Off();
$navajas_chair.hide();
$tak_chair.hide();
$empty_chair_1.hide();
$tak_chair_side.hide();
$empty_chair_3.hide();
$empty_chair_4.hide();
$dekard_chair.hide();
$navajas_chair_side.hide();
$mitchell_chair.hide();
$darnell_chair.hide();
$reargui.hide();
$forwardgui.hide();
$forwardgui_amb.hide();
$engine_thrust_fx_1.hide();
$engine_thrust_fx_2.hide();
$ladder.hide();
$ammostuff.hide();
$nava_gui_1.hide();
$nava_gui_2.hide();
$nava_gui_arm_1.hide();
$nava_gui_arm_2.hide();
$nava_gui_arm_3.hide();
$nava_gui_arm_4.hide();
}
void showInterior()
{
if( DRIVER ) {
return;
}
$ship_bottom_facade.hide();
$ship_top_facade.hide();
$ship_interior.show();
$ramp.show();
$cargodoor.show();
$rightdoor.show();
$leftdoor.show();
if( !EVENT_FIRE_CARGO ) {
$mitchell.show();
$wounded.show();
}
$navajas.show();
$tak.show();
$box1.show();
$box2.show();
$box3.show();
$box4.show();
if( !CARGO_DUMPED ) {
$cargo_crate_1.show();
$cargo_crate_2.show();
}
$ammocrate.show();
$gui_arm_1.show();
$gui_arm_2.show();
$gui_arm_3.show();;
$chair_light_static_flares.show();
$chair_light_wires.show();
$chair_light_statics_off.show();
$seat_light_1.On();
$seat_light_2.On();
$seat_light_3.On();
$seat_light_4.On();
$seat_light_5.On();
$ds_redlight_static_1.show();
$ds_redlight_rot_1.show();
if( !INTROCIN ) {
$ds_redlight_1.On();
$ds_redlight_2.On();
}
$ds_redlight_static_2.show();
$ds_redlight_rot_2.show();
$takgui_1.show();
$takgui_2.show();
$forward_light.On();
$navajas_chair.show();
$tak_chair.show();
$empty_chair_1.show();
$tak_chair_side.show();
$empty_chair_3.show();
$empty_chair_4.show();
$dekard_chair.show();
$navajas_chair_side.show();
$mitchell_chair.show();
$darnell_chair.show();
$reargui.show();
$forwardgui.show();
$forwardgui_amb.show();
$engine_thrust_fx_1.show();
$engine_thrust_fx_2.show();
$ladder.show();
$ammostuff.show();
$nava_gui_1.show();
$nava_gui_2.show();
$nava_gui_arm_1.show();
$nava_gui_arm_2.show();
$nava_gui_arm_3.show();
$nava_gui_arm_4.show();
}
void shipMovement( entity gun )
{
float a;
while( 1 ) {
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 5' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 -10' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 10' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 -5' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 -5' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 10' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 -10' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
$dropship_mover.time( 1.5 );
$dropship_mover.accelTime( 0.75 );
$dropship_mover.decelTime( 0.75 );
$dropship_mover.rotateOnce( '0 0 5' );
sys.waitFor( $dropship_mover );
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
a = randomRoundFloat( 1, 8 );
if( a == 1 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Hard right tilt
gun.lock( 1 );
radioChatterPlay( $radiochatter_pilot, "vo_vansen_evasiv2" ); // %%%%%%%%%% VO %%%%%%%%%%
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.3 );
$dropship_mover.decelTime( 0.6 );
$dropship_mover.rotateOnce( '0 0 45' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 0.5 );
$dropship_mover.rotateOnce( '0 0 -55' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 0.5 );
$dropship_mover.rotateOnce( '0 0 10' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 2 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Hard left tilt
gun.lock( 1 );
radioChatterPlay( $radiochatter_pilot, "vo_vansen_evasiveman" ); // %%%%%%%%%% VO %%%%%%%%%%
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.3 );
$dropship_mover.decelTime( 0.6 );
$dropship_mover.rotateOnce( '0 0 -45' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 0.5 );
$dropship_mover.rotateOnce( '0 0 55' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 1 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 0.5 );
$dropship_mover.rotateOnce( '0 0 -10' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 3 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Long, slow tilt right
gun.lock( 1 );
$dropship_mover.time( 3 );
$dropship_mover.accelTime( 1 );
$dropship_mover.decelTime( 1.5 );
$dropship_mover.rotateOnce( '0 0 25' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 3 );
$dropship_mover.accelTime( 1 );
$dropship_mover.decelTime( 1.5 );
$dropship_mover.rotateOnce( '0 0 -25' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 4 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Long, slow tilt left
gun.lock( 1 );
$dropship_mover.time( 3 );
$dropship_mover.accelTime( 1 );
$dropship_mover.decelTime( 1.5 );
$dropship_mover.rotateOnce( '0 0 -25' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 3 );
$dropship_mover.accelTime( 1 );
$dropship_mover.decelTime( 1.5 );
$dropship_mover.rotateOnce( '0 0 25' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 5 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Pitch nose down
gun.lock( 1 );
radioChatterPlay( $radiochatter_pilot, "vo_vansen_evasive3" ); // %%%%%%%%%% VO %%%%%%%%%%
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '25 0 0' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '-25 0 0' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 6 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Pitch nose up
gun.lock( 1 );
radioChatterPlay( $radiochatter_pilot, "vo_vansen_hangon" ); // %%%%%%%%%% VO %%%%%%%%%%
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '-25 0 0' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '25 0 0' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 7 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Pitch nose down & tilt left
gun.lock( 1 );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '25 0 -15' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '-25 0 15' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
if( !INBOTTOMGUN && !INTOPGUN ) {
break;
}
if( a == 8 && !PLAYER_EVENT_IN_PROGRESS && !NO_EVASIVES ) { //Pitch nose up & tilt right
gun.lock( 1 );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '-25 0 15' );
sys.waitFor( $dropship_mover );
$dropship_mover.time( 2 );
$dropship_mover.accelTime( 0.5 );
$dropship_mover.decelTime( 1.4 );
$dropship_mover.rotateOnce( '25 0 -15' );
sys.waitFor( $dropship_mover );
gun.lock( 0 );
}
sys.waitFrame();
}
}
void topGunEntered()
{
if( DRIVER ) {
return;
}
INTOPGUN = true;
sys.setcvar( "g_fov", "80" );
sys.trigger( $comm_chatter );
$dropship_mover.setAngles( '0 0 0' );
thread hideInterior();
$topgun.lock( 1 );
$topgun.disableWeapon();
sys.waitFrame();
aiScriptedAnim( $topgun, "intro", 4, 0 );
sys.wait( 2 );
$topgun.enableWeapon();
sys.waitFrame();
$topgun.lock( 0 );
thread shipMovement( $topgun );
}
void topGunExited()
{
INTOPGUN = false;
thread showInterior();
sys.setcvar( "g_fov", "90" );
sys.waitFrame();
$topgun.lock( 1 );
sys.trigger( $comm_chatter );
aiScriptedAnimLoop( $topgun, "idle", 0 );
sys.wait( 1 );
$topgun.lock( 0 );
}
void bottomGunEntered()
{
if( DRIVER ) {
return;
}
INBOTTOMGUN = true;
$ship_bottom_fill_light.On();
sys.setcvar( "g_fov", "80" );
$dropship_mover.setAngles( '0 0 0' );
sys.trigger( $comm_chatter );
thread hideInterior();
$bottomgun.lock( 1 );
$bottomgun.disableWeapon();
sys.waitFrame();
aiScriptedAnim( $bottomgun, "intro", 4, 0 );
sys.wait( 2 );
$bottomgun.enableWeapon();
sys.waitFrame();
$bottomgun.lock( 0 );
thread shipMovement( $bottomgun );
}
void bottomGunExited()
{
INBOTTOMGUN = false;
thread showInterior();
$ship_bottom_fill_light.Off();
sys.setcvar( "g_fov", "90" );
sys.waitFrame();
$bottomgun.lock( 1 );
sys.trigger( $comm_chatter );
aiScriptedAnimLoop( $bottomgun, "idle", 0 );
sys.wait( 1 );
$bottomgun.lock( 0 );
}
///////////////////////////////////////////////////////////////
// Ramp Functions //
///////////////////////////////////////////////////////////////
void moveRampDown()
{
RAMPACTIVE = true;
sys.trigger( $ramp_open_speaker );
sys.trigger( $wind1 );
$ramp.time( 5 );
$ramp.accelTime( 1 );
$ramp.decelTime( 2 );
$ramp.rotateOnce( '-40 0 0' );
sys.waitFor( $ramp );
RAMPUP = false;
sys.wait( 0.5 );
RAMPACTIVE = false;
}
void moveRampUp()
{
RAMPACTIVE = true;
sys.trigger( $ramp_close_speaker );
$ramp.time( 5 );
$ramp.accelTime( 1 );
$ramp.decelTime( 2 );
$ramp.rotateOnce( '40 0 0' );
sys.waitFor( $ramp );
RAMPUP = true;
sys.trigger( $wind1 );
sys.wait( 0.5 );
RAMPACTIVE = false;
}
void toggleRamp()
{
if( RAMPACTIVE ) {
return;
}
if( RAMPUP ) {
moveRampDown();
}
else {
moveRampUp();
}
}
///////////////////////////////////////////////////////////////
// Friendly Ships Functions //
///////////////////////////////////////////////////////////////
void loopFriendlyDropshipOne()
{
$friendly_dropship_1_mover.disableSplineAngles();
while( 1 ) {
$friendly_dropship_1_mover.time( 4 );
$friendly_dropship_1_mover.startSpline( $friendly_dropship_1_spline );
sys.waitFor( $friendly_dropship_1_mover );
sys.waitFrame();
if( FRIENDLY_1_KILL ) {
break;
}
}
FRIENDLY_1_READYTODIE = true;
}
void loopFriendlyDropshipTwo()
{
$friendly_dropship_2_mover.disableSplineAngles();
while( 1 ) {
$friendly_dropship_2_mover.time( 4 );
$friendly_dropship_2_mover.startSpline( $friendly_dropship_2_spline );
sys.waitFor( $friendly_dropship_2_mover );
sys.waitFrame();
if( FRIENDLY_2_KILL ) {
break;
}
}
FRIENDLY_2_READYTODIE = true;
}
void loopFriendlyDropshipThree()
{
$friendly_dropship_3_mover.disableSplineAngles();
while( 1 ) {
$friendly_dropship_3_mover.time( 4 );
$friendly_dropship_3_mover.startSpline( $friendly_dropship_3_spline );
sys.waitFor( $friendly_dropship_3_mover );
sys.waitFrame();
if( FRIENDLY_3_KILL ) {
break;
}
}
FRIENDLY_3_READYTODIE = true;
}
void initFriendlies()
{
$friendly_dropship_1.playCycle( ANIMCHANNEL_ALL, "idle_all_closed" );
$friendly_dropship_2.playCycle( ANIMCHANNEL_ALL, "idle_all_closed" );
$friendly_dropship_3.playCycle( ANIMCHANNEL_ALL, "idle_all_closed" );
thread loopFriendlyDropshipOne();
thread loopFriendlyDropshipTwo();
thread loopFriendlyDropshipThree();
}
void killFriendlyDropship1()
{
if( FRIENDLY_1_KILL ) {
return;
}
FRIENDLY_1_KILL = true;
while( !FRIENDLY_1_READYTODIE ) {
sys.wait( 0.1 );
}
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_eagle15hit" ); // %%%%%%%%%% VO %%%%%%%%%%
}
$ds_1_launcher_1.remove();
$ds_1_launcher_2.remove();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_eagle15_wehitgodown" ); // %%%%%%%%%% VO %%%%%%%%%%
}
$friendly_dropship_1_mover.stopSpline();
$friendly_dropship_1_death_mover.disableSplineAngles();
$friendly_dropship_1_mover.bind( $friendly_dropship_1_death_mover );
$friendly_dropship_1_death_mover.time( 8 );
$friendly_dropship_1_death_mover.accelTime( 1 );
$friendly_dropship_1_death_mover.decelTime( 0 );
$friendly_dropship_1_death_mover.startSpline( $friendly_dropship_1_death_spline );
$friendly_dropship_1_mover.rotate( '0 0 180' );
sys.wait( 6.75 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
//radioChatterPlay( $radiochatter, "vo_eagle15_shouting" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_w_scream" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.waitFor( $friendly_dropship_1_death_mover );
sys.trigger( $friendly_dropship_1_deathfx_1 );
sys.wait( 0.1 );
sys.trigger( $friendly_dropship_1_deathfx_2 );
sys.trigger( $friendly_dropship_1_enginefx_1 );
$friendly_dropship_1_clip.remove();
$friendly_dropship_1.remove();
$friendly_dropship_1_mover.remove();
$friendly_dropship_1_death_mover.remove();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_marks_eagle15dest" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
void killFriendlyDropship2()
{
if( FRIENDLY_2_KILL ) {
return;
}
FRIENDLY_2_KILL = true;
while( !FRIENDLY_2_READYTODIE ) {
sys.wait( 0.1 );
}
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_raven8_shitfire" ); // %%%%%%%%%% VO %%%%%%%%%%
}
$ds_2_launcher_1.remove();
$ds_2_launcher_2.remove();
$friendly_dropship_2_mover.stopSpline();
$friendly_dropship_2_death_mover.disableSplineAngles();
$friendly_dropship_2_death_mover.removeInitialSplineAngles();
$friendly_dropship_2_mover.bind( $friendly_dropship_2_death_mover );
$friendly_dropship_2_death_mover.time( 8 );
$friendly_dropship_2_death_mover.accelTime( 1 );
$friendly_dropship_2_death_mover.decelTime( 0 );
$friendly_dropship_2_death_mover.startSpline( $friendly_dropship_2_death_spline );
$friendly_dropship_2_mover.rotate( '0 0 -90' );
sys.wait( 1 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_markswell_raven8com" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.wait( 2 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_raven8_die" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.wait( 3 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_makrs_exploraven8" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.waitFor( $friendly_dropship_2_death_mover );
sys.trigger( $friendly_dropship_2_deathfx_1 );
sys.wait( 0.1 );
sys.trigger( $friendly_dropship_2_deathfx_2 );
sys.trigger( $friendly_dropship_2_smokefx );
$friendly_dropship_2_enginefx_1.remove();
$friendly_dropship_2_enginefx_2.remove();
$friendly_dropship_2_clip.remove();
$friendly_dropship_2.remove();
$friendly_dropship_2_mover.remove();
$friendly_dropship_2_death_mover.remove();
}
void killFriendlyDropship3()
{
if( FRIENDLY_3_KILL ) {
return;
}
FRIENDLY_3_KILL = true;
while( !FRIENDLY_3_READYTODIE ) {
sys.wait( 0.1 );
}
$ds_3_launcher_1.remove();
$ds_3_launcher_2.remove();
//Kamikaze
$kamikaze.removeInitialSplineAngles();
$kamikaze.disableSplineAngles();
$kamikaze.show();
sys.trigger( $kamikaze_smoke_fx );
$kamikaze.time( 4 );
$kamikaze.accelTime( 1 );
$kamikaze.rotateOnce( '1024 0 0' );
$kamikaze.startSpline( $kamikaze_spline );
sys.waitFor( $kamikaze );
$kamikaze_smoke_fx.remove();
$kamikaze.remove();
sys.trigger( $friendly_dropship_3_deathfx_1 );
sys.wait( 0.1 );
sys.trigger( $friendly_dropship_3_deathfx_2 );
$friendly_dropship_3_clip.remove();
$friendly_dropship_3.remove();
$friendly_dropship_3_mover.remove();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_marks_23isgone" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
///////////////////////////////////////////////////////////////
// Player Special Actions //
///////////////////////////////////////////////////////////////
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//REAR FIRE
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void spreadRearFire()
{
sys.wait( 5 );
for(t=2;t<=7;t++) {
n = sys.getEntity( "rearfire_fx_" + t );
sys.wait( 3.5 );
sys.trigger( n );
if( t == 4 ) {
radioChatterPlayWait( $radiochatter, "vo_nava_firegrow" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( t == 6 ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekfirectrln" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( FIRE_SUPRESSED ) {
return;
}
}
sys.trigger( $navajas_fire_launcher );
}
void fireSurpressionRear()
{
if( !EVENT_FIRE_REAR ) {
return;
}
for(f=1;f<=6;f++) {
e = sys.getEntity( "rear_supression_fx_" + f );
sys.trigger( e );
}
FIRE_SUPRESSED = true;
$forwardgui.startSoundShader( "fire_suppress_sys", SND_CHANNEL_ANY );
radioChatterPlay( $radiochatter, "vo_marks_goodbackbell" ); // %%%%%%%%%% VO %%%%%%%%%%
DSHEALTHADD+=5000;
sys.wait( 2 );
for(f=1;f<=7;f++) {
e = sys.getEntity( "rearfire_fx_" + f );
e.remove();
}
sys.wait( 2 );
for(f=1;f<=6;f++) {
e = sys.getEntity( "rear_supression_fx_" + f );
e.remove();
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_04_off" );
sys.trigger( $item_objectivecomplete_2 );
//sys.music( "m03_slow1" ); // ====######## MUSIC #########====
sys.trigger( $musicevent );
sys.trigger( $musicslow1 );
radioChatterPlayWait( $radiochatter, "vo_mitch_navayouneedmed" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_nava_firedidnt" ); // %%%%%%%%%% VO %%%%%%%%%%
while( !INBOTTOMGUN ) {
sys.wait( 0.5 );
}
PLAYER_EVENT_IN_PROGRESS = false;
sys.wait( 0.1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_04_off" );
}
void spinNavajasAroundforFire()
{
aiScriptedFaceWait( $navajas, $navajas_turnaround, 0 );
$navajas_chair.playCycle( ANIMCHANNEL_ALL, "fire" );
aiScriptedAnimLoop( $navajas, "aa_back_chair_fire", 0 );
}
void causeRearFire()
{
thread spinNavajasAroundforFire();
while ( !FIRE_SUPRESSED ) {
sys.wait( 1 );
}
$navajas_chair.playCycle( ANIMCHANNEL_ALL, "sitting_idle" );
aiScriptedAnimLoop( $navajas, "aa_back_chair_idle2", 0 );
EVENT_FIRE_REAR = false;
}
void rearFireInit()
{
STARTED_REAR_FIRE_SEQ = true;
EVENT_FIRE_REAR = true;
PLAYER_EVENT_IN_PROGRESS = true;
sys.trigger( $rearfire_fx_1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_04_on" );
radioChatterPlayWait( $radiochatter, "vo_nava_firemunit" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_vansen_cookinghyd" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_darn_illkeepcov" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_marks_dekgetofire" ); // %%%%%%%%%% VO %%%%%%%%%%
thread causeRearFire();
thread spreadRearFire();
sys.trigger( $item_objective_2 );
while( INBOTTOMGUN ) {
sys.wait( 0.5 );
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_04_on" );
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//CARGO DUMP
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void closeCargo()
{
$cargodoor.time( 3 );
$cargodoor.accelTime( 1 );
$cargodoor.decelTime( 1 );
$cargodoor.rotateOnce( '-55 0 0' );
sys.waitFor( $cargodoor );
}
void timeCargoFire()
{
float d;
for(d=40;d>=0;d--) {
sys.wait( 1 );
if( CARGO_DUMPED ) {
return;
}
}
//Time is up, blow up the cargo, mission failed
sys.trigger( $cargo_explode_inside_fx );
sys.wait( 1 );
sys.trigger( $item_objectivefailed_1 );
}
void dumpCargoOut()
{
if( !EVENT_FIRE_CARGO ) {
return;
}
EVENT_FIRE_CARGO = false;
DSHEALTHADD+=3000;
$topgun.lock( 0 );
$bottomgun.lock( 1 );
CARGO_DUMPED = true;
thread moveRampDown();
$cargodoor.time( 3 );
$cargodoor.accelTime( 1 );
$cargodoor.decelTime( 1 );
$cargodoor.rotateOnce( '55 0 0' );
sys.waitFor( $cargodoor );
$cargo_crate_1.unbind();
$cargo_crate_2.unbind();
sys.wait( 0.1 );
$cargo_crate_2.applyImpulse( $cargo_crate_2, $cargo_crate_2.getWorldOrigin(), '-16500 0 0' );
sys.wait( 0.2 );
$cargo_crate_1.applyImpulse( $cargo_crate_1, $cargo_crate_1.getWorldOrigin(), '-16500 0 0' ); //22500
sys.wait( 1 );
$cargo_smoke_hurt.remove();
sys.trigger( $interior_smoke_fx_1 );
sys.trigger( $interior_smoke_fx_2 );
sys.trigger( $interior_smoke_fx_3 );
sys.trigger( $interior_smoke_fx_4 );
sys.trigger( $interior_smoke_fx_5 );
sys.trigger( $interior_smoke_fx_6 );
radioChatterPlay( $radiochatter, "vo_tak_cargoaway" ); // %%%%%%%%%% VO %%%%%%%%%%
thread closeCargo();
sys.wait( 2.2 );
sys.trigger( $cargoexp_fx_1 );
$cargo_crate_1.remove();
$cargo_smolder_1.remove();
sys.wait( 0.3 );
sys.trigger( $cargoexp_fx_2 );
$cargo_crate_2.remove();
$cargo_smolder_2.remove();
sys.trigger( $amb_shake_low );
sys.waitFrame();
sys.trigger( $ship_hit_shake_super );
sys.wait( 2 );
sys.trigger( $amb_shake_low );
thread moveRampUp();
DRIVER = true;
sys.waitFrame();
$topgun_driver.exitVehicle( 1 );
sys.waitFrame();
$topgun_driver.remove();
sys.waitFrame();
aiScriptedAnim( $topgun, "idle", 4, 1 );
sys.waitFrame();
$bottomgun_driver.enterVehicle( $bottomgun );
sys.waitFrame();
DRIVER = false;
radioChatterPlayWait( $radiochatter_pilot, "vo_vansen_whathelltht" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_tak_thatwastoo" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_dekgettotop" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.trigger( $item_objectivecomplete_3 );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_02_off" );
//sys.music( "m03_medium1" ); // ====######## MUSIC #########====
sys.trigger( $musicevent );
sys.trigger( $musicmedium1 );
while( !INTOPGUN ) {
if( !INTOPGUN ) {
sys.wait( 7 );
}
if( !INTOPGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dektopturr" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( !INTOPGUN ) {
sys.wait( 7 );
}
if( !INTOPGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_movedektopturr" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
$mitchell_helping.remove();
$wounded_ground.remove();
$mitchell_chair.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
$empty_chair_4.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
PLAYER_EVENT_IN_PROGRESS = false;
sys.wait( 0.1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_02_off" );
}
void cargoFireOut()
{
//radioChatterPlayWait( $radiochatter, "vo_marks_goodjbdek" ); // %%%%%%%%%% VO %%%%%%%%%%
$player1.disableWeapon();
$func_fire_volume_1.remove();
$func_fire_volume_2.remove();
CARGO_FIRE_BURNING = false;
radioChatterPlayWait( $radiochatter, "vo_tak_trianthtoohot" ); // %%%%%%%%%% VO %%%%%%%%%%
dumpCargoOut();
/*
radioChatterPlay( $radiochatter, "vo_marks_dekgettoeject" ); // %%%%%%%%%% VO %%%%%%%%%%
thread gui_arm_extend();
while( !CARGO_DUMPED ) {
if( !CARGO_DUMPED ) {
sys.wait( 7 );
}
if( !CARGO_DUMPED ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekejectvol" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( !CARGO_DUMPED ) {
sys.wait( 7 );
}
if( !CARGO_DUMPED ) {
radioChatterPlayWait( $radiochatter, "vo_marks_getcrgo" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
*/
}
void causeCargoFire()
{
sys.trigger( $fire_on_1 );
sys.trigger( $fire_on_2 );
sys.trigger( $func_fire_volume_1 );
sys.trigger( $func_fire_volume_2 );
$cargo_smolder_1.show();
$cargo_smolder_2.show();
EVENT_FIRE_CARGO = true;
}
void cargoFireInit()
{
STARTED_CARGO_FIRE_SEQ = true;
PLAYER_EVENT_IN_PROGRESS = true;
$mitchell.hide();
$wounded.hide();
$mitchell_helping.show();
$wounded_ground.show();
$mitchell_helping.hideSurface("models/weapons/mp_guns/w_mg_lo");
$wounded_ground.hideSurface("models/weapons/mp_guns/w_mg_lo");
$mitchell_helping.setTalkState( TALK_BUSY );
$wounded_ground.setTalkState( TALK_BUSY );
aiScriptedAnimLoop( $mitchell_helping, "medic_treating1", 0 );
aiScriptedAnimLoop( $wounded_ground, "ad_wounded_on_knee_loop", 0 );
$mitchell_chair.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
$empty_chair_4.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
thread causeCargoFire();
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_02_on" );
radioChatterPlayWait( $radiochatter, "vo_tak_nastyfire" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 1 );
radioChatterPlayWait( $radiochatter, "vo_tak_firespread" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 2 );
radioChatterPlayWait( $radiochatter, "vo_tak_holyshit2" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_mitch_trianthrupt" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_mitch_damnrazor" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_takhitsupp" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_tak_suppdead" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_marks_taktact" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.trigger( $cargo_smoke_hurt );
EVENT_FIRE_CARGO = true;
thread timeCargoFire();
sys.trigger( $item_objective_3 );
while( INBOTTOMGUN ) {
sys.wait( 0.5 );
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_02_on" );
$player1.enableWeapon();
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//AMMO JAM
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void monitorAmmoJam()
{
while( !AMMO_JAM_FIXED ) {
sys.wait( 0.5 );
}
$topgun.enableWeapon();
$topgun.enableMovement();
}
void ammoNavajasInstruct()
{
radioChatterPlayWait( $radiochatter, "vo_nava_okdekon3" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 0.1 );
NAVAJAS_READY_AMMO = true;
}
void ammoUnjam()
{
thread gui_arm_retract();
AMMO_JAM_FIXED = true;
EVENT_AMMO = false;
$topgun.guiEvent( "JammedTextOff" );
$reargui.startSoundShader( "space_cannon_jamcleared", SND_CHANNEL_ANY );
DSHEALTHADD+=2000;
radioChatterPlayWait( $radiochatter, "vo_nava_lookinggood" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.trigger( $item_objectivecomplete_4 );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_01_off" );
//sys.music( "m03_medium1" ); // ====######## MUSIC #########====
sys.trigger( $musicevent );
sys.trigger( $musicmedium1 );
sys.wait( 4 );
radioChatterPlayWait( $radiochatter, "vo_nava_jamisfree" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_darn_firingweback" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_dekmovetopt" ); // %%%%%%%%%% VO %%%%%%%%%%
while( !INTOPGUN ) {
if( !INTOPGUN ) {
sys.wait( 7 );
}
if( !INTOPGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_movedek2" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
PLAYER_EVENT_IN_PROGRESS = false;
sys.wait( 0.1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_01_off" );
}
void ammoJamInit()
{
STARTED_AMMO_JAM_SEQ = true;
EVENT_AMMO = true;
PLAYER_EVENT_IN_PROGRESS = true;
$topgun.disableWeapon();
$topgun.disableMovement();
$topgun.guiEvent( "JammedTextOn" );
$topgun.startSoundShader( "space_cannon_jam", SND_CHANNEL_ANY );
sys.wait( 1.5 );
$topgun.startSoundShader( "vo_computer_munitjam", SND_CHANNEL_ANY ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 2 );
radioChatterPlayWait( $radiochatter, "vo_darn_shitgunsdead" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_nava_feedjam" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_dekhelpnavfe" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_darn_sittduck" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_01_on" );
sys.trigger( $item_objective_4 );
while( INTOPGUN ) {
if( INTOPGUN ) {
sys.wait( 3 );
}
if( INTOPGUN ) {
radioChatterPlay( $radiochatter, "vo_marks_getfeednow" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_01_on" );
radioChatterPlayWait( $radiochatter_pilot, "vo_vansen_whatquick" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_nava_detammofeed" ); // %%%%%%%%%% VO %%%%%%%%%%
thread gui_arm_extend();
thread ammoNavajasInstruct();
thread monitorAmmoJam();
NAVAJAS_READY_AMMO = false;
}
void ammoGuiUse()
{
if( !EVENT_AMMO ) {
return;
}
if( !NAVAJAS_READY_AMMO ) {
$reargui.startSoundShader( "space_cannon_jam", SND_CHANNEL_ANY );
radioChatterPlayWait( $radiochatter, "vo_nava_dammwaitsig" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 0.2 );
thread ammoNavajasInstruct();
}
if( NAVAJAS_READY_AMMO ) {
thread ammoUnjam();
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENGINE FIRE
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void timeEngineFire()
{
sys.wait( 5 );
sys.trigger( $enginesmoke_fx_1 );
sys.wait( 7 );
sys.trigger( $enginesmoke_fx_2 );
sys.wait( 40 );
if( ENGINE_FIRE_OUT ) {
return;
}
sys.trigger( $item_objectivefailed_1 );
}
void engineFireOut()
{
if( !EVENT_ENGINE ) {
return;
}
if( ENGINE_STEP_1 ) {
ENGINE_STEP_1 = false;
ENGINE_STEP_2 = true;
sys.trigger( $enginefire_fx_1 );
sys.trigger( $enginefire_fx_2 );
sys.trigger( $enginefire_fx_3 );
$enginesmoke_fx_1.remove();
$enginesmoke_fx_2.remove();
$engine_thrust_fx_1.hide();
$forwardgui.guiEvent( "enginestep1" );
sys.waitFrame();
$forwardgui.setGuiParm( "noninteractive", 1 );
radioChatterPlayWait( $radiochatter, "vo_vansen_okport" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 2 );
radioChatterPlayWait( $radiochatter, "vo_vansen_reactclr" ); // %%%%%%%%%% VO %%%%%%%%%%
$forwardgui.guiEvent( "enginestep2" );
radioChatterPlay( $radiochatter, "vo_vansen_pressengag" ); // %%%%%%%%%% VO %%%%%%%%%%
$forwardgui.setGuiParm( "noninteractive", 0 );
while( EVENT_ENGINE ) {
if( EVENT_ENGINE ) {
sys.wait( 5 );
}
if( EVENT_ENGINE ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekprsseng" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( EVENT_ENGINE ) {
sys.wait( 3 );
}
if( EVENT_ENGINE ) {
radioChatterPlayWait( $radiochatter, "vo_marks_deknow" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
}
if( ENGINE_STEP_2 ) {
EVENT_ENGINE = false;
ENGINE_FIRE_OUT = true;
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_04_off" );
$forwardgui.startSoundShader( "dropship_gaineng", SND_CHANNEL_ANY );
sys.wait( 1 );
$engine_thrust_fx_1.show();
sys.waitFrame();
$forwardgui.guiEvent( "enginenormal" );
sys.waitFrame();
radioChatterPlayWait( $radiochatter, "vo_vansen_portenginback" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.waitFrame();
radioChatterPlayWait( $radiochatter, "vo_marks_grtworkdek" ); // %%%%%%%%%% VO %%%%%%%%%%
DSHEALTHADD+=1000;
sys.trigger( $item_objectivecomplete_5 );
//sys.music( "m03_fast1" ); // ====######## MUSIC #########====
sys.trigger( $musicevent );
sys.trigger( $musicfast1 );
while( !INTOPGUN ) {
if( !INTOPGUN ) {
sys.wait( 7 );
}
if( !INTOPGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekmovetopt" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
PLAYER_EVENT_IN_PROGRESS = false;
sys.wait( 0.1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_04_off" );
}
}
void engineFireInit()
{
STARTED_ENGINE_FIRE_SEQ = true;
EVENT_ENGINE = true;
PLAYER_EVENT_IN_PROGRESS = true;
sys.trigger( $enginefire_fx_1 );
sys.trigger( $enginefire_fx_2 );
sys.trigger( $enginefire_fx_3 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_04_on" );
$topgun.startSoundShader( "dropship_loseeng", SND_CHANNEL_ANY );
sys.wait( 1 );
radioChatterPlayWait( $radiochatter, "vo_vansen_shitportract" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_dekgettosec" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.trigger( $item_objective_5 );
radioChatterPlayWait( $radiochatter, "vo_vansen_portfail" ); // %%%%%%%%%% VO %%%%%%%%%%
thread timeEngineFire();
while( INTOPGUN ) {
if( INTOPGUN ) {
sys.wait( 7 );
}
if( INTOPGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekgetengin" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_04_on" );
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//PLAYER RETURN TO CHAIR AT END
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void playerBackToChair()
{
PLAYER_BACK_AT_CHAIR = true;
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_03_off" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_03_off" );
}
///////////////////////////////////////////////////////////////
// Vehicle Drivers //
///////////////////////////////////////////////////////////////
void gunVehicleDriverFire( entity gunner )
{
float a;
float b;
float c;
if( DRIVER_FIRING ) {
return;
}
DRIVER_FIRING = true;
a = starget.getHealth();
a += randomRoundFloat(350, 500);
starget.setHealth( a );
while( a > 0 ) {
sys.wait( 2 );
gunner.lookAt( starget );
sys.wait( 0.5 );
c = randomRoundFloat(1, 10);
if( c <= 9 ) {
gunner.fireWeapon( 0, 0.75 );
}
else {
gunner.fireWeapon( 1, 0.75 );
}
sys.wait( 2 );
a = starget.getHealth();
if( DRIVER_STOP_FIRING ) {
break;
}
}
DRIVER_FIRING = false;
}
///////////////////////////////////////////////////////////////
// Flak //
///////////////////////////////////////////////////////////////
void flakFire()
{
sys.trigger( $flak_1 );
sys.wait( sys.random(2) );
sys.trigger( $flak_2 );
thread shipImpactEffectLight();
sys.wait( sys.random(2) );
sys.trigger( $flak_3 );
sys.wait( sys.random(2) );
sys.trigger( $flak_4 );
thread shipImpactEffectLight();
sys.wait( sys.random(2) );
sys.trigger( $flak_5 );
sys.wait( sys.random(2) );
sys.trigger( $flak_6 );
sys.wait( sys.random(2) );
sys.trigger( $flak_7 );
sys.wait( sys.random(2) );
sys.trigger( $flak_direct );
thread shipImpactEffectHeavy();
sys.trigger( $flak_8 );
sys.wait( sys.random(2) );
sys.trigger( $flak_9 );
sys.wait( sys.random(2) );
sys.trigger( $flak_10 );
thread shipImpactEffectLight();
sys.wait( sys.random(2) );
sys.trigger( $flak_11 );
sys.wait( sys.random(2) );
sys.trigger( $flak_12 );
thread shipImpactEffectLight();
sys.wait( sys.random(2) );
sys.trigger( $flak_1 );
sys.wait( sys.random(2) );
sys.trigger( $flak_2 );
thread shipImpactEffectLight();
sys.wait( sys.random(2) );
sys.trigger( $flak_3 );
sys.wait( sys.random(2) );
sys.trigger( $flak_direct );
thread shipImpactEffectHeavy();
sys.trigger( $flak_4 );
}
void flakFireLight()
{
sys.trigger( $flak_1 );
sys.wait( sys.random(3) );
sys.trigger( $flak_4 );
sys.wait( sys.random(6) );
sys.trigger( $flak_10 );
sys.wait( sys.random(3) );
sys.trigger( $flak_3 );
}
///////////////////////////////////////////////////////////////
// Banners //
///////////////////////////////////////////////////////////////
void flapBanners()
{
$banner1.playCycle( ANIMCHANNEL_ALL, "wall01" );
sys.wait( 1.4 );
$banner2.playCycle( ANIMCHANNEL_ALL, "wall01" );
sys.wait( 2.1 );
$banner3.playCycle( ANIMCHANNEL_ALL, "wall01" );
sys.wait( 1.2 );
$banner4.playCycle( ANIMCHANNEL_ALL, "left01" );
sys.wait( 2.4 );
$banner5.playCycle( ANIMCHANNEL_ALL, "left02" );
sys.wait( 1.5 );
$banner6.playCycle( ANIMCHANNEL_ALL, "left01" );
}
///////////////////////////////////////////////////////////////
// Biggun shots //
///////////////////////////////////////////////////////////////
void biggunShotsFire()
{
sys.trigger( $biggunshot_1 );
$biggunshot_mover_1.time( 10 );
$biggunshot_mover_1.accelTime( 5 );
$biggunshot_mover_1.moveTo( $biggunshot_target_1 );
sys.wait( 1.5 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_incomingairdef" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.trigger( $biggunshot_speaker_1 );
sys.waitFor( $biggunshot_mover_1 );
sys.trigger( $biggunshot_1 );
sys.wait( 15 );
sys.trigger( $biggunshot_2 );
$biggunshot_mover_2.time( 10 );
$biggunshot_mover_2.accelTime( 5 );
$biggunshot_mover_2.moveTo( $biggunshot_target_2 );
sys.wait( 1.5 );
sys.trigger( $biggunshot_speaker_2 );
sys.waitFor( $biggunshot_mover_2 );
sys.trigger( $biggunshot_2 );
}
///////////////////////////////////////////////////////////////
// Friendly ship firing //
///////////////////////////////////////////////////////////////
void toggleFriendlyShipLasers()
{
if( isValidEntity( $friendly_dropship_1 ) ) {
sys.trigger( $ds_1_launcher_1 );
sys.trigger( $ds_1_launcher_2 );
}
if( isValidEntity( $friendly_dropship_2 ) ) {
sys.trigger( $ds_2_launcher_1 );
sys.trigger( $ds_2_launcher_2 );
}
if( isValidEntity( $friendly_dropship_3 ) ) {
sys.trigger( $ds_3_launcher_1 );
sys.trigger( $ds_3_launcher_2 );
}
}
///////////////////////////////////////////////////////////////
// Special bombers and FIGHTERS that tail the gunship //
///////////////////////////////////////////////////////////////
void wave3Fighter()
{
WAVE3FIGHTER_ALIVE = true;
sys.trigger( $wave3fighter_spawn );
sys.waitFrame();
$wave3fighter.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
$wave3fighter_mover.time( 10 );
$wave3fighter_mover.decelTime( 2 );
$wave3fighter_mover.startSpline( $wave3fighter_spline );
sys.waitFor( $wave3fighter_mover );
while( WAVE3FIGHTER_ALIVE ) {
if( WAVE3FIGHTER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE3FIGHTER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekfightt" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( WAVE3FIGHTER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE3FIGHTER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_takeoutt6" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
}
}
void wave3Fighter2()
{
WAVE3FIGHTER2_ALIVE = true;
sys.trigger( $wave3fighter_spawn_2 );
sys.waitFrame();
$wave3fighter_2.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
$wave3fighter_mover_2.time( 10 );
$wave3fighter_mover_2.decelTime( 2 );
$wave3fighter_mover_2.startSpline( $wave3fighter_spline_2 );
sys.waitFor( $wave3fighter_mover_2 );
while( WAVE3FIGHTER2_ALIVE ) {
if( WAVE3FIGHTER2_ALIVE ) {
sys.wait( 6 );
}
if( WAVE3FIGHTER2_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekfightt" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( WAVE3FIGHTER2_ALIVE ) {
sys.wait( 6 );
}
if( WAVE3FIGHTER2_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_takeoutt6" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
}
}
void wave4Bomber()
{
WAVE4BOMBER_ALIVE = true;
sys.trigger( $wave4bomber_spawn );
sys.waitFrame();
$wave4bomber.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
$wave4bomber_mover.time( 20 );
$wave4bomber_mover.decelTime( 2 );
$wave4bomber_mover.startSpline( $wave4bomber_spline );
sys.waitFor( $wave4bomber_mover );
while( WAVE4BOMBER_ALIVE ) {
if( WAVE4BOMBER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE4BOMBER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dektakedest" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( WAVE4BOMBER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE4BOMBER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_takeoutt6" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
}
}
void wave5Bomber()
{
WAVE5BOMBER_ALIVE = true;
sys.trigger( $wave5bomber_spawn );
sys.waitFrame();
$wave5bomber.setKey( "fx_death", "effects/monsters/flyer_space/q4x_explode_atmos.fx" );
$wave5bomber_mover.time( 20 );
$wave5bomber_mover.decelTime( 2 );
$wave5bomber_mover.startSpline( $wave5bomber_spline );
sys.waitFor( $wave5bomber_mover );
while( WAVE5BOMBER_ALIVE ) {
if( WAVE5BOMBER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE5BOMBER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dektakedest" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( WAVE5BOMBER_ALIVE ) {
sys.wait( 6 );
}
if( WAVE5BOMBER_ALIVE ) {
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_marks_takeoutt6" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
}
}
void wave3fighterdead()
{
WAVE3FIGHTER_ALIVE = false;
}
void wave3fighterdead_2()
{
WAVE3FIGHTER2_ALIVE = false;
}
void wave4bomberdead()
{
WAVE4BOMBER_ALIVE = false;
}
void wave5bomberdead()
{
WAVE5BOMBER_ALIVE = false;
}
///////////////////////////////////////////////////////////////
// Draw player kills on turret hud //
///////////////////////////////////////////////////////////////
void updatePlayerKills()
{
while( 1 ) {
$topgun.setGuiParm( "pkills", TOTAL_PLAYER_KILLS );
$bottomgun.setGuiParm( "pkills", TOTAL_PLAYER_KILLS );
sys.wait( 1 );
}
}
///////////////////////////////////////////////////////////////
// Cinematics //
///////////////////////////////////////////////////////////////
void shakeIntroCam()
{
while( INTROCIN ) {
$intro_cam_shaker.time( 0.01 );
$intro_cam_shaker.move( -1, 0.04 );
sys.waitFor( $intro_cam_shaker );
$intro_cam_shaker.time( 0.01 );
$intro_cam_shaker.move( -2, 0.07 );
sys.waitFor( $intro_cam_shaker );
$intro_cam_shaker.time( 0.01 );
$intro_cam_shaker.move( -1, 0.07 );
sys.waitFor( $intro_cam_shaker );
$intro_cam_shaker.time( 0.01 );
$intro_cam_shaker.move( -2, 0.04 );
sys.waitFor( $intro_cam_shaker );
sys.waitFrame();
}
}
void moveEndCameraFirst()
{
$end_camera_mover.time( 12 );
$end_camera_mover.accelTime( 4 );
$end_camera_mover.decelTime( 4 );
$end_camera_mover.moveTo( $end_camera_null_1 );
sys.waitFor( $end_camera_mover );
}
void moveEndCameraSecond()
{
$end_camera_mover.time( 15 );
$end_camera_mover.accelTime( 2 );
$end_camera_mover.decelTime( 4 );
$end_camera_mover.moveTo( $end_camera_null_2 );
$end_camera_mover.rotateOnce( '0 -80 0' );
sys.waitFor( $end_camera_mover );
}
void introCinEndMoveNavajas()
{
sys.wait( 2 );
$navajas_chair_side.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
aiScriptedAnimWait( $navajas, "aa_chair_exit", 12, 0 );
aiScriptedMoveWait( $navajas, $navajas_null_1, 8, 0 );
aiScriptedMoveWait( $navajas, $navajas_goback, 16, 0 );
aiScriptedMoveWait( $navajas, $navajas_backchair_null, 2, 0 );
aiScriptedFaceWait( $navajas, $navajas_sit_face2, 0 );
$navajas_chair.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
aiScriptedAnimWait( $navajas, "aa_back_chair_enter", 12, 0 );
sys.wait( 0.25 );
$navajas_chair.playCycle( ANIMCHANNEL_ALL, "sitting_idle" );
aiScriptedAnimLoop( $navajas, "aa_back_chair_idle1", 0 );
}
void introCinEndMoveMarkswell()
{
aiScriptedMoveWait( $markswell, $markswell_null_3, 8, 0 );
aiScriptedMoveWait( $markswell, $markswell_null_2, 8, 0 );
aiScriptedMoveWait( $markswell, $markswell_null_1, 8, 0 );
$markswell.remove();
}
void introCinEndMoveTak()
{
$tak_chair.playAnim( ANIMCHANNEL_ALL, "standing_to_idle" );
aiScriptedAnimWait( $tak, "aa_tak_turnaround_end", 12, 0 );
sys.wait( 0.1 );
$tak_chair.playCycle( ANIMCHANNEL_ALL, "idle" );
aiScriptedAnimLoop( $tak, "aa_tak_idle_loop", 0 );
$tak.lookAt( $player_console_static );
}
void introCinStandTak()
{
$tak_chair.playAnim( ANIMCHANNEL_ALL, "idle_to_standing" );
aiScriptedAnimWait( $tak, "aa_tak_turnaround_intro", 12, 0 );
sys.wait( 0.1 );
$tak_chair.playCycle( ANIMCHANNEL_ALL, "standing_idle" );
aiScriptedAnimLoop( $tak, "aa_tak_turnaround_loop", 0 );
$tak.lookAt( $markswell );
}
void introCinEndMoveDarnell()
{
$darnell_chair.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
aiScriptedAnimWait( $darnell, "aa_chair_exit", 12, 0 );
aiScriptedMoveWait( $darnell, $darnell_null_1, 8, 0 );
aiScriptedMoveWait( $darnell, $darnell_null_2, 8, 0 );
$darnell.hide();
}
//-------------------------------------------------------------
void moveNavajasBacktoChair()
{
$navajas.show();
sys.waitFrame();
$navajas_chair.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
aiScriptedAnimWait( $navajas, "aa_back_chair_exit", 12, 0 );
sys.wait( 0.1 );
$navajas_chair.playCycle( ANIMCHANNEL_ALL, "idle" );
aiScriptedMoveWait( $navajas, $navajas_goback, 16, 0 );
aiScriptedMoveWait( $navajas, $navajas_sit, 4, 0 );
aiScriptedFaceWait( $navajas, $navajas_sit_face, 0 );
aiScriptedAnim( $navajas, "aa_chair_enter", 12, 0 );
$navajas_chair_side.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
}
void moveDarnellBacktoChair()
{
$darnell.show();
sys.waitFrame();
aiScriptedMoveWait( $darnell, $darnell_sit, 4, 0 );
aiScriptedFaceWait( $darnell, $darnell_sit_face, 0 );
aiScriptedAnim( $darnell, "aa_chair_enter", 12, 0 );
$darnell_chair.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
}
void moveTakBacktoChair()
{
$tak.show();
sys.waitFrame();
$tak_chair.playAnim( ANIMCHANNEL_ALL, "idle_to_standing" );
aiScriptedAnimWait( $tak, "aa_tak_turnaround_intro", 12, 0 );
sys.wait( 0.1 );
aiScriptedMoveWait( $tak, $tak_sit, 4, 0 );
aiScriptedFaceWait( $tak, $tak_sit_face, 0 );
aiScriptedAnim( $tak, "aa_chair_enter", 12, 0 );
$tak_chair_side.playAnim( ANIMCHANNEL_ALL, "idle_to_sitting" );
$tak.lookAt( $tak_sitting_lookat_target );
}
void endofbattle_vo()
{
radioChatterPlayWait( $radiochatter, "vo_vansen_lz150" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_everybdyback" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_03_on" );
radioChatterPlayWait( $radiochatter, "vo_vansen_gocgunf1lz" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_goc_rogfalc1altlz" ); // %%%%%%%%%% VO %%%%%%%%%%
}
void introCinGunship()
{
while( INTROCIN ) {
$intro_gunship_mover.time( 1.5 );
$intro_gunship_mover.accelTime( 0.75 );
$intro_gunship_mover.decelTime( 0.75 );
$intro_gunship_mover.move( -2, 48 );
$intro_gunship_mover.rotateOnce( '0 0 5' );
sys.waitFor( $intro_gunship_mover );
$intro_gunship_mover.time( 1.5 );
$intro_gunship_mover.accelTime( 0.75 );
$intro_gunship_mover.decelTime( 0.75 );
$intro_gunship_mover.move( -1, 48 );
$intro_gunship_mover.rotateOnce( '0 0 -10' );
sys.waitFor( $intro_gunship_mover );
$intro_gunship_mover.time( 1.5 );
$intro_gunship_mover.accelTime( 0.75 );
$intro_gunship_mover.decelTime( 0.75 );
$intro_gunship_mover.move( -1, 48 );
$intro_gunship_mover.rotateOnce( '0 0 10' );
sys.waitFor( $intro_gunship_mover );
$intro_gunship_mover.time( 1.5 );
$intro_gunship_mover.accelTime( 0.75 );
$intro_gunship_mover.decelTime( 0.75 );
$intro_gunship_mover.move( -2, 48 );
$intro_gunship_mover.rotateOnce( '0 0 -5' );
sys.waitFor( $intro_gunship_mover );
sys.waitFrame();
}
}
///////////////////////////////////////////////////////////////
// Initialize //
///////////////////////////////////////////////////////////////
void initStuff()
{
//Variables
GLOBAL_DS_HEALTH_SEVENTYFIVE = ( DROPSHIP_HEALTH * 0.75 );
GLOBAL_DS_HEALTH_FIFTY = ( DROPSHIP_HEALTH * 0.5 );
GLOBAL_DS_HEALTH_TWENTYFIVE = ( DROPSHIP_HEALTH * 0.25 );
GLOBAL_DS_HEALTH_90 = ( DROPSHIP_HEALTH * 0.9 );
GLOBAL_DS_HEALTH_80 = ( DROPSHIP_HEALTH * 0.8 );
GLOBAL_DS_HEALTH_70 = ( DROPSHIP_HEALTH * 0.7 );
GLOBAL_DS_HEALTH_60 = ( DROPSHIP_HEALTH * 0.6 );
GLOBAL_DS_HEALTH_50 = ( DROPSHIP_HEALTH * 0.5 );
GLOBAL_DS_HEALTH_40 = ( DROPSHIP_HEALTH * 0.4 );
GLOBAL_DS_HEALTH_30 = ( DROPSHIP_HEALTH * 0.3 );
GLOBAL_DS_HEALTH_20 = ( DROPSHIP_HEALTH * 0.2 );
GLOBAL_DS_HEALTH_10 = ( DROPSHIP_HEALTH * 0.1 );
GUI_90 = false;
GUI_80 = false;
GUI_70 = false;
GUI_60 = false;
GUI_50 = false;
GUI_40 = false;
GUI_30 = false;
GUI_20 = false;
GUI_10 = false;
WARN_SEVENTYFIVE_PERCENT = false;
WARN_FIFTY_PERCENT = false;
WARN_TWENTYFIVE_PERCENT = false;
RAMPUP = true;
RAMPACTIVE = false;
STARTED_REAR_FIRE_SEQ = false;
FIRE_SUPRESSED = false;
CARGO_DUMPED = false;
AMMO_JAM_FIXED = false;
STARTED_AMMO_JAM_SEQ = false;
ENGINE_FIRE_OUT = false;
SPLINE_1_COMPLETED = true;
SPLINE_2_COMPLETED = true;
SPLINE_3_COMPLETED = true;
SPLINE_4_COMPLETED = true;
SPLINE_5_COMPLETED = true;
SPLINE_6_COMPLETED = true;
SPLINE_7_COMPLETED = true;
SPLINE_8_COMPLETED = true;
SPLINE_9_COMPLETED = true;
SPLINE_10_COMPLETED = true;
SPLINE_11_COMPLETED = true;
SPLINE_12_COMPLETED = true;
SPLINE_13_COMPLETED = true;
SPLINE_14_COMPLETED = true;
SPLINE_15_COMPLETED = true;
SPLINE_16_COMPLETED = true;
SPLINE_17_COMPLETED = true;
SPLINE_18_COMPLETED = true;
SPLINE_19_COMPLETED = true;
SPLINE_20_COMPLETED = true;
SPLINE_21_COMPLETED = true;
SPLINE_22_COMPLETED = true;
SPLINE_23_COMPLETED = true;
SPLINE_24_COMPLETED = true;
FRIENDLY_1_KILL = false;
FRIENDLY_2_KILL = false;
FRIENDLY_3_KILL = false;
DRIVER_STOP_FIRING = false;
DRIVER_FIRING = false;
PLAYER_BACK_AT_CHAIR = false;
DRIVER = false;
CARGO_FIRE_BURNING = false;
GUIARMACTIVE = false;
INGUIARMAREA = false;
LIGHTS_ON = true;
REDALERT = false;
EVENT_FIRE_REAR = false;
EVENT_FIRE_CARGO = false;
EVENT_AMMO = false;
EVENT_ENGINE = false;
STARTED_CARGO_FIRE_SEQ = false;
STARTED_ENGINE_FIRE_SEQ = false;
ENGINE_STEP_1 = true;
ENGINE_STEP_2 = false;
NAVAJAS_READY_AMMO = false;
WAVE1_CALLOUT_1 = false;
WAVE1_CALLOUT_2 = false;
WAVE2_CALLOUT_1 = false;
WAVE2_CALLOUT_2 = false;
WAVE3_CALLOUT_1 = false;
WAVE3_CALLOUT_2 = false;
WAVE4_CALLOUT_1 = false;
WAVE4_CALLOUT_2 = false;
WAVE5_CALLOUT_1 = false;
WAVE5_CALLOUT_2 = false;
WAVE5_CALLOUT_3 = false;
WAVE3_FIGHTER = false;
WAVE3_FIGHTER2 = false;
WAVE4_BOMBER = false;
WAVE5_BOMBER = false;
PLAYER_EVENT_IN_PROGRESS = true;
NO_EVASIVES = true;
//Characters
$markswell.hideSurface("models/weapons/mp_guns/w_mg_lo");
$mitchell.hideSurface("models/weapons/mp_guns/w_mg_lo");
$navajas.hideSurface("models/weapons/mp_guns/w_mg_lo");
$tak.hideSurface("models/weapons/mp_guns/w_mg_lo");
$dekard.hideSurface("models/weapons/mp_guns/w_mg_lo");
$wounded.hideSurface("models/weapons/mp_guns/w_mg_lo");
$darnell.hideSurface("models/weapons/mp_guns/w_mg_lo");
aiScriptedAnimLoop( $navajas, "aa_chair_idle3", 0 );
aiScriptedAnimLoop( $tak, "aa_tak_idle_loop", 0 );
aiScriptedAnimLoop( $mitchell, "aa_chair_idle2", 0 );
aiScriptedAnimLoop( $dekard, "aa_chair_idle4", 0 );
aiScriptedAnimLoop( $darnell, "aa_chair_idle1", 0 );
aiScriptedAnimLoop( $wounded, "aa_chair_idle4", 0 );
$wounded.lookAt( $wounded_look );
$wounded.setTalkState( TALK_BUSY );
aiScriptedAnim( $topgun, "idle", 4, 1 );
aiScriptedAnim( $bottomgun, "idle", 4, 1 );
$cargo_crate_1.bind( $drop_ship );
$cargo_crate_2.bind( $drop_ship );
$navajas_chair.playCycle( ANIMCHANNEL_ALL, "idle" );
$tak_chair.playCycle( ANIMCHANNEL_ALL, "idle" );
sys.setcvar( "g_fov", "90" );
$reargui.setGuiParm( "noninteractive", 1 );
sys.sendNamedEvent( GUI_PLAYERHUD, "aa_showShipStatusOn" );
$player1.disableWeapon();
}
///////////////////////////////////////////////////////////////
// Main //
///////////////////////////////////////////////////////////////
void main()
{
float a;
sys.fadeOut( '0 0 0', 0 );
a = thread initStuff();
sys.waitForThread( a );
//sys.music( "m03_intro_cinematic" ); // ====######## MUSIC #########====
sys.trigger( $musicintro );
//These are in the .map for AAS generation only
$remove_me_bomber.remove();
$remove_me_flyer.remove();
$player1.disableTarget();
// $topgun.lock( 0 );
// $bottomgun.lock( 0 );
DRIVER = true;
$topgun_driver.enterVehicle( $topgun );
sys.waitFrame();
DRIVER = false;
thread loopSkyboxTerrain();
thread initFriendlies();
thread dropshiphealthcheck();
sys.trigger( $amb_shake_low );
//---------------------------- cinematic --------------------------------------------------
//------ exterior -------
$intro1_cam_1_mover.time( 0.01 );
$intro1_cam_1_mover.accelTime( 0 );
$intro1_cam_1_mover.decelTime( 0 );
$intro1_cam_1_mover.rotateOnce( '-45 0 0' );
sys.waitFor( $intro1_cam_1_mover );
INTROCIN = true;
thread hideInterior();
thread introCinGunship();
sys.wait( 0.1 );
sys.trigger( $intro1_cam_1 );
sys.fadeIn( '0 0 0', 1 );
$intro1_cam_1_mover.time( 10 );
$intro1_cam_1_mover.accelTime( 2 );
$intro1_cam_1_mover.decelTime( 0 );
$intro1_cam_1_mover.moveTo( $intro1_cam_1_target_2 );
$intro1_cam_1_mover.rotateOnce( '45 -5 0' );
sys.waitFor( $intro1_cam_1_mover );
$intro1_cam_1_mover.time( 3 );
$intro1_cam_1_mover.accelTime( 0 );
$intro1_cam_1_mover.decelTime( 2.5 );
$intro1_cam_1_mover.moveTo( $intro1_cam_1_target_1 );
$intro1_cam_1_mover.rotateOnce( '0 -40 0' );
sys.waitFor( $intro1_cam_1_mover );
sys.wait( 2 );
sys.fadeOut( '0 0 0', 0.25 );
sys.wait( 0.3 );
thread showInterior();
sys.trigger( $intro_engine_thrust_fx_1 );
sys.trigger( $intro_engine_thrust_fx_2 );
$intro_gunship_top.remove();
$intro_gunship_bottom.remove();
$markswell.hide();
//------ interior -------
//camera 1, wide shot from rear
//camera 2, Navajas
//camera 3, Mitchell
//camera 4, Darnell
//camera 5, Tak
//camera 5b, Tak standing close-up
//camera 6, Dekard
thread shakeIntroCam();
sys.trigger( $intro_cam_1 );
sys.fadeIn( '0 0 0', 0.1 );
$intro_cam_1_mover.time( 4 );
$intro_cam_1_mover.accelTime( 0.5 );
$intro_cam_1_mover.decelTime( 0.5 );
$intro_cam_1_mover.rotateOnce( '0 -45 0' );
sys.waitFor( $intro_cam_1_mover );
sys.wait( 2 );
sys.trigger( $intro_cam_2 );
$navajas.lookAt( $wounded );
$musicintro.fadeSound( SND_CHANNEL_ANY, -4, 1 ); // ====######## MUSIC #########====
aiSpeakWait( $navajas, "lipsync_nava_howhedo" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_3 );
$mitchell.lookAt( $wounded );
aiSpeakWait( $mitchell, "lipsync_mitch_aswell" );
$mitchell.lookAt( $navajas );
aiSpeakWait( $mitchell, "lipsync_mitch_gladfalc" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_2 );
$navajas.lookAt( $mitchell );
$mitchell.lookAt( $darnell );
aiSpeakWait( $navajas, "lipsync_nava_considwedid" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_4 );
$darnell.lookAt( $navajas );
aiSpeakWait( $darnell, "lipsync_darn_townsatk" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_2 );
$navajas.lookAt( $darnell );
aiSpeak( $navajas, "lipsync_nava_yeahwellwe" );
sys.wait( 2 );
$navajas.lookAt( $tak );
sys.wait( 3.75 );
aiScriptedMove( $markswell, $markswell_null_1, 8, 0 );
sys.wait( 0.2 );
sys.trigger( $intro_cam_5 );
$tak.lookAt( $tak_backwards_look );
aiSpeakWait( $tak, "lipsync_tak_sciconftac" );
$markswell.show();
$dekard.lookAt( $markswell );
$darnell.lookAt( $markswell );
$navajas.lookAt( $markswell );
$mitchell.lookAt( $markswell );
sys.wait( 0.2 );
sys.trigger( $intro_cam_1 );
$intro_cam_1_mover.time( 3 );
$intro_cam_1_mover.accelTime( 1.5 );
$intro_cam_1_mover.decelTime( 1.5 );
$intro_cam_1_mover.moveTo( $cam1_markswell_cu );
thread introCinStandTak();
aiScriptedMoveWait( $markswell, $markswell_null_4, 8, 0 );
sys.waitFor( $intro_cam_1_mover );
aiScriptedAnimLoop( $markswell, "weaponless_idle2_loop", 16 );
sys.waitFrame();
$markswell.lookAt( $darnell );
aiSpeakWait( $markswell, "lipsync_marks_goodbadworse" );
$markswell.lookAt( $dekard );
aiSpeakWait( $markswell, "lipsync_marks_goodfirst" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_4 );
aiSpeakWait( $darnell, "lipsync_darn_goodhobtakdek" );
$dekard.lookAt( $darnell );
sys.wait( 0.1 );
sys.trigger( $intro_cam_6 );
sys.wait( 1.5 );
sys.trigger( $intro_cam_1 );
$intro_cam_1_mover.time( 15 );
$intro_cam_1_mover.accelTime( 7 );
$intro_cam_1_mover.decelTime( 7 );
$intro_cam_1_mover.move( EAST, 16 );
$intro_cam_1_mover.rotateOnce( '0 -9 0' );
$markswell.lookAt( $darnell );
aiSpeakWait( $markswell, "lipsync_marks_worsenews" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_3 );
aiSpeak( $navajas, "lipsync_nava_what2" );
sys.wait( 0.1 );
aiSpeak( $mitchell, "lipsync_mitch_holyshit" );
sys.wait( 0.15 );
aiSpeakWait( $darnell, "lipsync_darn_whathellwar" );
sys.trigger( $intro_cam_1 );
$markswell.lookAt( $tak );
aiSpeakWait( $tak, "lipsync_tak_straussconv" );
aiSpeakWait( $markswell, "lipsync_marks_empeffortf" );
sys.trigger( $intro_cam_5b );
aiSpeakWait( $tak, "lipsync_tak_straussalive" );
sys.trigger( $intro_cam_1 );
$markswell.lookAt( $dekard );
aiSpeakWait( $markswell, "lipsync_marks_yeshannib" );
$markswell.lookAt( $darnell );
aiSpeakWait( $markswell, "lipsync_marks_nowbadnews" );
$markswell.lookAt( $dekard );
aiSpeakWait( $markswell, "lipsync_marks_theirgoal" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_4 );
aiSpeak( $darnell, "lipsync_darnell_wetwomen" );
aiSpeakWait( $navajas, "lipsync_nava_anothershit" );
sys.wait( 0.2 );
sys.trigger( $intro_cam_1 );
radioChatterPlayWait( $radiochatter, "vo_vansen_ltwing3" );
$markswell.lookAt( $darnell );
aiSpeakWait( $markswell, "lipsync_marks_iknowshort" );
radioChatterPlayWait( $radiochatter, "vo_vansen_wegotincom1" );
$musicintro.fadeSound( SND_CHANNEL_ANY, 4, 1 ); // ====######## MUSIC #########====
sys.waitFor( $intro_cam_1_mover );
REDALERT = true;
$white_ship_light.Off();
$markswell_intro_fill_light.On();
$chair_light_static_flares.setColor( 0.5, 0.03, 0 );
$seat_light_1.setColor( 0.5, 0.03, 0 );
$seat_light_2.setColor( 0.5, 0.03, 0 );
$seat_light_3.setColor( 0.5, 0.03, 0 );
$seat_light_4.setColor( 0.5, 0.03, 0 );
$seat_light_5.setColor( 0.5, 0.03, 0 );
sys.trigger( $ds_redlight_rot_1 );
$ds_redlight_rot_flare_1.show();
$ds_redlight_1.On();
sys.wait( 0.5 );
sys.trigger( $ds_redlight_rot_2 );
$ds_redlight_rot_flare_2.show();
$ds_redlight_2.On();
aiSpeakWait( $markswell, "lipsync_marks_everystation" ); // %%%%%%%%%% VO %%%%%%%%%%
aiScriptedAnimLoop( $navajas, "aa_chair_alert_reaction3", 0 );
sys.wait( 0.1 );
aiScriptedAnimLoop( $mitchell, "aa_chair_alert_reaction2", 0 );
sys.wait( 0.1 );
aiScriptedAnimLoop( $dekard, "aa_chair_alert_reaction4", 0 );
sys.wait( 0.1 );
aiScriptedAnimLoop( $darnell, "aa_chair_alert_reaction1", 0 );
thread introCinEndMoveNavajas();
thread introCinEndMoveMarkswell();
thread introCinEndMoveTak();
thread introCinEndMoveDarnell();
$intro_cam_1_mover.time( 3 );
$intro_cam_1_mover.accelTime( 0.75 );
$intro_cam_1_mover.decelTime( 0.5 );
$intro_cam_1_mover.moveTo( $intro_cam_rearpos );
$intro_cam_1_mover.rotateOnce( '0 9 0' );
sys.waitFor( $intro_cam_1_mover );
sys.wait( 3 );
sys.fadeOut( '0 0 0', 1 );
sys.wait( 1 );
sys.trigger( $intro_cam_1 );
$dekard.remove();
sys.wait( 0.5 );
$leftdoor.lock( 1 );
$rightdoor.lock( 1 );
sys.trigger( $engine_thrust_fx_1 );
sys.trigger( $engine_thrust_fx_2 );
$topgun.show();
$bottomgun.show();
$markswell_intro_fill_light.remove();
INTROCIN = false;
//------------------------------- end opening cinematic -------------------------------------
//sys.music( "m03_bed" ); // ====######## MUSIC #########====
$musicintro.fadeSound( SND_CHANNEL_ANY, -80, 1 );
$musicintro.remove();
sys.trigger( $musicbed );
sys.fadeIn( '0 0 0', 2 );
$dekard_chair.playAnim( ANIMCHANNEL_ALL, "sitting_to_idle" );
aiScriptedAnimLoop( $mitchell, "aa_chair_idle2", 0 );
$mitchell.lookAt( $wounded );
sys.wait( 1 );
sys.trigger( $func_savegame_1 );
sys.wait( 4 );
sys.trigger( $item_objective_1 );
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_05_on" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_05_on" );
radioChatterPlayWait( $radiochatter, "vo_marks_dekgbelly" ); // %%%%%%%%%% VO %%%%%%%%%%
thread updatePlayerKills();
while( !INBOTTOMGUN ) {
if( !INBOTTOMGUN ) {
sys.wait( 7 );
}
if( !INBOTTOMGUN ) {
radioChatterPlayWait( $radiochatter, "vo_marks_dekmanbell" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( !INBOTTOMGUN ) {
sys.wait( 7 );
}
if( !INBOTTOMGUN ) {
radioChatterPlayWait( $radiochatter, "vo_makrs_movedek1" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
sys.sendNamedEvent( GUI_VEHICLEHUD, "ship_target_05_off" );
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_05_off" );
$bottomgun.startSoundShader( "vo_computer_targsysonline", SND_CHANNEL_ANY ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 5 );
radioChatterPlayWait( $radiochatter, "vo_marks_okstations" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter_pilot, "vo_vansen_pilotrog" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_nava_munitonline" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_tak_tactnavradar" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_darn_topsideturr" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_mitchremain" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_mitch_roger1" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_dekfloat" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_takwherearewe" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_tak_we75clk" ); // %%%%%%%%%% VO %%%%%%%%%%
// radioChatterPlayWait( $radiochatter, "vo_marks_thirdwingf1" ); // %%%%%%%%%% VO %%%%%%%%%%
// radioChatterPlayWait( $radiochatter_pilot, "vo_eagle23_ready" ); // %%%%%%%%%% VO %%%%%%%%%%
// radioChatterPlayWait( $radiochatter_pilot, "vo_eagle15_ready" ); // %%%%%%%%%% VO %%%%%%%%%%
// radioChatterPlayWait( $radiochatter_pilot, "vo_raven8_combatrdy" ); // %%%%%%%%%% VO %%%%%%%%%%
thread flakFire();
sys.wait( 2 );
radioChatterPlayWait( $radiochatter, "vo_tak_strgairbursts" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlay( $radiochatter, "vo_marks_hangon" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 16 ) ;
radioChatterPlayWait( $radiochatter, "vo_tak_hol60inb" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 1 );
radioChatterPlay( $radiochatter, "vo_tak_strggflyers12low" ); // %%%%%%%%%% VO %%%%%%%%%%
PLAYER_EVENT_IN_PROGRESS = false;
$tak.setTalkState( TALK_NEVER );
$mitchell.setTalkState( TALK_NEVER );
$navjas.setTalkState( TALK_NEVER );
//sys.music( "m03_slow1" ); // ====######## MUSIC #########====
$musicbed.fadeSound( SND_CHANNEL_ANY, -80, 1 );
$musicbed.remove();
sys.trigger( $musicslow1 );
thread toggleFriendlyShipLasers();
NO_EVASIVES = false;
//________________________________________________________________________________________
WAVE = 1;
//________________________________________________________________________________________
while ( 1 ) {
if( WAVE1_PLAYERKILLS >= WAVE1_KILLCOUNT ) {
break;
}
if( SPLINE_7_COMPLETED ) {
sys.trigger( $fighter_spawn_7 ); //NW corner high
thread gunVehicleDriverFire( $topgun_driver );
}
if( SPLINE_17_COMPLETED )
sys.trigger( $fighter_spawn_0_1 ); //Forward Low
sys.wait( 1 );
if( SPLINE_18_COMPLETED )
sys.trigger( $fighter_spawn_0_2 ); //Forward Low
sys.wait( 1 );
if( !WAVE1_CALLOUT_2 && WAVE1_CALLOUT_1 && WAVE1_PLAYERKILLS >= 4 && SPLINE_1_COMPLETED && INBOTTOMGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_contact10oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE1_CALLOUT_2 = true;
}
if( WAVE1_PLAYERKILLS >= WAVE1_KILLCOUNT ) {
break;
}
if( SPLINE_1_COMPLETED )
sys.trigger( $fighter_spawn_1 ); //NE corner low
sys.wait( 1 );
if( SPLINE_2_COMPLETED )
sys.trigger( $fighter_spawn_2 ); //NE corner low
sys.wait( 1 );
if( !WAVE1_CALLOUT_1 && INBOTTOMGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_flyers9oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE1_CALLOUT_1 = true;
}
if( WAVE1_PLAYERKILLS >= WAVE1_KILLCOUNT ) {
break;
}
if( SPLINE_23_COMPLETED )
sys.trigger( $fighter_spawn_270_1 ); //Port Low
sys.wait( 1 );
if( SPLINE_24_COMPLETED )
sys.trigger( $fighter_spawn_270_2 ); //Port Low
sys.wait( 1 );
if( WAVE1_PLAYERKILLS >= WAVE1_KILLCOUNT ) {
break;
}
if( SPLINE_4_COMPLETED )
sys.trigger( $fighter_spawn_4 ); //SW corner low
sys.wait( 1 );
if( SPLINE_5_COMPLETED )
sys.trigger( $fighter_spawn_5 ); //SW corner low
sys.wait( 1 );
if( SPLINE_7_COMPLETED ) {
sys.trigger( $fighter_spawn_7 ); //NW corner high
thread gunVehicleDriverFire( $topgun_driver );
}
}
NO_EVASIVES = true;
//Wait until all ships have been killed before proceeding
while( STROGG_WAVE_SHIP_COUNTER > 0 ) {
sys.wait( 1 );
}
//____________________________________________________________
thread flakFireLight();
sys.trigger( $friendly_dropship_1_enginefx_1 );
killFriendlyDropship1();
//=============================
// DAMAGE #1 - Ceiling
//=============================
$broken_ceiling.hide();
$broken_fray_ceiling.show();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_50targ" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_hullbrmain" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.trigger( $wind1 );
DRIVER_STOP_FIRING = true;
sys.wait( 5 );
DRIVER_STOP_FIRING = false;
aiScriptedAnim( $topgun, "idle", 4, 1 );
//sys.music( "m03_medium1" ); // ====######## MUSIC #########====
$musicslow1.fadeSound( SND_CHANNEL_ANY, -80, 1 );
$musicslow1.remove();
sys.trigger( $musicmedium1 );
NO_EVASIVES = false;
//________________________________________________________________________________________
WAVE = 2;
//________________________________________________________________________________________
while ( 1 ) {
//+++++++++++++++++++++++++++++++++++++++++
//Cargo Fire
//+++++++++++++++++++++++++++++++++++++++++
if( WAVE2_PLAYERKILLS >= 2 && !STARTED_CARGO_FIRE_SEQ ) {
thread cargoFireInit();
//sys.music( "m03_event" ); // ====######## MUSIC #########====
sys.trigger( $musicmedium1 );
sys.trigger( $musicevent );
sys.trigger( $interior_smoke_fx_1 );
sys.trigger( $interior_smoke_fx_2 );
sys.trigger( $interior_smoke_fx_3 );
sys.trigger( $interior_smoke_fx_4 );
sys.trigger( $interior_smoke_fx_5 );
sys.trigger( $interior_smoke_fx_6 );
}
if( WAVE2_PLAYERKILLS >= WAVE2_KILLCOUNT ) {
break;
}
if( SPLINE_17_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_0_1 ); //Forward Low
sys.wait( 1 );
if( SPLINE_18_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_0_2 ); //Forward Low
sys.wait( 1 );
if( SPLINE_1_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_1 ); //NE corner low
sys.wait( 1 );
if( !WAVE1_CALLOUT_2 && WAVE2_CALLOUT_1 && WAVE2_PLAYERKILLS >= 9 && SPLINE_21_COMPLETED && CARGO_DUMPED && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_flyerson6" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE1_CALLOUT_2 = true;
}
if( SPLINE_21_COMPLETED && CARGO_DUMPED )
sys.trigger( $fighter_spawn_180_1 ); //Aft high
sys.wait( 1 );
if( SPLINE_22_COMPLETED && CARGO_DUMPED )
sys.trigger( $fighter_spawn_180_2 ); //Aft high
sys.wait( 1 );
if( SPLINE_19_COMPLETED && CARGO_DUMPED )
sys.trigger( $fighter_spawn_90_1 ); //Starboard high
sys.wait( 1 );
if( !WAVE2_CALLOUT_1 && INBOTTOMGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_flyers9oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE2_CALLOUT_1 = true;
}
if( SPLINE_23_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_270_1 ); //Port Low
sys.wait( 1 );
if( SPLINE_24_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_270_2 ); //Port Low
sys.wait( 1 );
if( SPLINE_2_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_2 ); //NE corner low
sys.wait( 1 );
if( SPLINE_4_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_4 ); //SW corner low
sys.wait( 1 );
if( SPLINE_7_COMPLETED && !CARGO_DUMPED ) {
sys.trigger( $fighter_spawn_7 ); //NW corner high
thread gunVehicleDriverFire( $topgun_driver );
}
sys.wait( 1 );
if( SPLINE_5_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_5 ); //SW corner low
sys.wait( 1 );
if( SPLINE_3_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_3 ); //NE corner low
sys.wait( 1 );
if( SPLINE_6_COMPLETED && !CARGO_DUMPED )
sys.trigger( $fighter_spawn_6 ); //SW corner low
sys.wait( 1 );
}
NO_EVASIVES = true;
//Wait until all ships have been killed before proceeding
while( STROGG_WAVE_SHIP_COUNTER > 0 ) {
sys.wait( 1 );
}
//____________________________________________________________
sys.trigger( $friendly_dropship_2_enginefx_1 );
sys.trigger( $friendly_dropship_2_enginefx_2 );
sys.trigger( $friendly_dropship_2_smokefx );
killFriendlyDropship2();
//=============================
// DAMAGE #2 - Left Side
//=============================
$broken_left.hide();
$broken_fray_left.show();
sys.trigger( $wind2 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_40targ" ); // %%%%%%%%%% VO %%%%%%%%%%
}
DRIVER_STOP_FIRING = true;
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_50clickslz" ); // %%%%%%%%%% VO %%%%%%%%%%
}
sys.wait( 5 );
sys.trigger( $func_savegame_1 );
sys.wait( 1 );
sys.trigger( $amb_shake_low );
sys.trigger( $amb_shake_med );
DRIVER_STOP_FIRING = false;
NO_EVASIVES = false;
//________________________________________________________________________________________
WAVE = 3;
//________________________________________________________________________________________
while ( 1 ) {
if( WAVE3_PLAYERKILLS >= WAVE3_KILLCOUNT ) {
break;
}
if( !WAVE3_CALLOUT_1 && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_fly3oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE3_CALLOUT_1 = true;
}
if( !WAVE3_FIGHTER ) {
thread wave3Fighter();
WAVE3_FIGHTER = true;
}
if( SPLINE_19_COMPLETED )
sys.trigger( $fighter_spawn_90_1 ); //Starboard high
sys.wait( 1 );
if( SPLINE_20_COMPLETED )
sys.trigger( $fighter_spawn_90_2 ); //Starboard high
sys.wait( 1 );
if( SPLINE_4_COMPLETED ) {
sys.trigger( $fighter_spawn_4 ); //SW corner low
thread gunVehicleDriverFire( $bottomgun_driver );
}
sys.wait( 3 );
if( WAVE3_PLAYERKILLS >= WAVE3_KILLCOUNT ) {
break;
}
if( SPLINE_21_COMPLETED )
sys.trigger( $fighter_spawn_180_1 ); //Aft high
sys.wait( 1 );
if( SPLINE_22_COMPLETED )
sys.trigger( $fighter_spawn_180_2 ); //Aft high
sys.wait( 1 );
if( SPLINE_10_COMPLETED )
sys.trigger( $fighter_spawn_10 ); //SE corner high
sys.wait( 1 );
if( !WAVE3_CALLOUT_2 && WAVE3_CALLOUT_1 && WAVE3_PLAYERKILLS >= 4 && SPLINE_8_COMPLETED && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_cont8oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE3_CALLOUT_2 = true;
}
if( WAVE3_PLAYERKILLS >= WAVE3_KILLCOUNT ) {
break;
}
if( SPLINE_8_COMPLETED )
sys.trigger( $fighter_spawn_8 ); //NW corner high
sys.wait( 1 );
if( SPLINE_11_COMPLETED )
sys.trigger( $fighter_spawn_11 ); //SE corner high
sys.wait( 1 );
if( WAVE3_FIGHTER && !WAVE3_FIGHTER2 ) {
while( WAVE3FIGHTER_ALIVE ) {
sys.wait( 1 );
}
thread wave3Fighter2();
WAVE3_FIGHTER2 = true;
}
}
NO_EVASIVES = true;
if( WAVE3FIGHTER_ALIVE ) {
$wave3fighter.kill();
}
if( WAVE3FIGHTER2_ALIVE ) {
$wave3fighter_2.kill();
}
//Wait until all ships have been killed before proceeding
while( STROGG_WAVE_SHIP_COUNTER > 0 ) {
sys.wait( 1 );
}
//____________________________________________________________
thread flakFireLight();
//=============================
// DAMAGE #3 - Floor
//=============================
$broken_floor.hide();
$broken_fray_floor.show();
sys.trigger( $wind3 );
$floor_hole_fullclip.remove();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_30targ" ); // %%%%%%%%%% VO %%%%%%%%%%
}
DRIVER_STOP_FIRING = true;
sys.wait( 5 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_30clickslz" ); // %%%%%%%%%% VO %%%%%%%%%%
}
DRIVER_STOP_FIRING = false;
//sys.music( "m03_fast1" ); // ====######## MUSIC #########====
$musicmedium1.fadeSound( SND_CHANNEL_ANY, -80, 1 );
$musicmedium1.remove();
sys.trigger( $musicfast1 );
NO_EVASIVES = false;
//________________________________________________________________________________________
WAVE = 4;
//________________________________________________________________________________________
while ( 1 ) {
if( WAVE4_PLAYERKILLS >= WAVE4_KILLCOUNT ) {
break;
}
if( !WAVE4_BOMBER ) {
thread wave4Bomber();
WAVE4_BOMBER = true;
sys.wait( 10 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_vansen_desttail" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( SPLINE_4_COMPLETED ) {
sys.trigger( $fighter_spawn_4 ); //SW corner low
thread gunVehicleDriverFire( $bottomgun_driver );
}
sys.wait( 1 );
if( SPLINE_13_COMPLETED )
sys.trigger( $bomber_spawn_1 ); //NE corner low - Bomber
sys.wait( 1 );
if( !WAVE4_CALLOUT_2 && WAVE4_CALLOUT_1 && WAVE4_PLAYERKILLS >= 6 && SPLINE_19_COMPLETED && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_fly3oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE4_CALLOUT_2 = true;
}
if( SPLINE_19_COMPLETED )
sys.trigger( $fighter_spawn_90_1 ); //Starboard high
sys.wait( 1 );
if( SPLINE_20_COMPLETED )
sys.trigger( $fighter_spawn_90_2 ); //Starboard high
sys.wait( 1 );
if( !WAVE4_CALLOUT_1 && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_targs2oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE4_CALLOUT_1 = true;
}
if( SPLINE_10_COMPLETED )
sys.trigger( $fighter_spawn_10 ); //SE corner high
sys.wait( 1 );
if( SPLINE_11_COMPLETED )
sys.trigger( $fighter_spawn_11 ); //SE corner high
sys.wait( 1 );
if( SPLINE_15_COMPLETED )
sys.trigger( $bomber_spawn_3 ); //NW corner low - Bomber
sys.wait( 1 );
if( SPLINE_12_COMPLETED )
sys.trigger( $fighter_spawn_12 ); //SE corner high
sys.wait( 3 );
if( SPLINE_7_COMPLETED )
sys.trigger( $fighter_spawn_7 ); //NW corner high
sys.wait( 1 );
if( SPLINE_21_COMPLETED )
sys.trigger( $fighter_spawn_180_1 ); //Aft high
sys.wait( 1 );
if( SPLINE_22_COMPLETED )
sys.trigger( $fighter_spawn_180_2 ); //Aft high
sys.wait( 1 );
if( SPLINE_8_COMPLETED )
sys.trigger( $fighter_spawn_8 ); //NW corner high
sys.wait( 1 );
}
NO_EVASIVES = true;
if( WAVE4BOMBER_ALIVE ) {
$wave4bomber.kill();
}
//Wait until all ships have been killed before proceeding
while( STROGG_WAVE_SHIP_COUNTER > 0 ) {
sys.wait( 1 );
}
//____________________________________________________________
thread flakFireLight();
killFriendlyDropship3();
//=============================
// DAMAGE #4 - Right Side
//=============================
$broken_right.hide();
$broken_fray_right.show();
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_15targ" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_wehavemajdam" ); // %%%%%%%%%% VO %%%%%%%%%%
}
DRIVER_STOP_FIRING = true;
sys.wait( 5 );
sys.trigger( $func_savegame_1 );
$amb_shake_med.remove();
sys.trigger( $amb_shake_high );
sys.wait( 3 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_almost10clk" ); // %%%%%%%%%% VO %%%%%%%%%%
}
DRIVER_STOP_FIRING = false;
thread biggunShotsFire();
NO_EVASIVES = false;
//________________________________________________________________________________________
WAVE = 5;
//________________________________________________________________________________________
while ( 1 ) {
//+++++++++++++++++++++++++++++++++++++++++
//Engine Fire
//+++++++++++++++++++++++++++++++++++++++++
if( WAVE5_PLAYERKILLS >= 6 && !STARTED_ENGINE_FIRE_SEQ ) {
thread engineFireInit();
//sys.music( "m03_event" ); // ====######## MUSIC #########====
sys.trigger( $musicfast1 );
sys.trigger( $musicevent );
}
if( WAVE5_PLAYERKILLS >= (WAVE5_KILLCOUNT - 5) && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlayWait( $radiochatter, "vo_tak_5targ" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( WAVE5_PLAYERKILLS >= WAVE5_KILLCOUNT ) {
break;
}
if( !WAVE5_BOMBER ) {
thread wave5Bomber();
WAVE5_BOMBER = true;
thread flakFireLight();
sys.wait( 10 );
if( !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_vansen_cantshkd" ); // %%%%%%%%%% VO %%%%%%%%%%
}
}
if( SPLINE_4_COMPLETED ) {
sys.trigger( $fighter_spawn_4 ); //SW corner low
thread gunVehicleDriverFire( $bottomgun_driver );
}
sys.wait( 1 );
if( SPLINE_19_COMPLETED )
sys.trigger( $fighter_spawn_90_1 ); //Starboard high
sys.wait( 1 );
if( SPLINE_20_COMPLETED )
sys.trigger( $fighter_spawn_90_2 ); //Starboard high
sys.wait( 1 );
if( !WAVE5_CALLOUT_3 && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
WAVE5_CALLOUT_3 = true;
radioChatterPlay( $radiochatter, "vo_tak_dest2oclock" ); // %%%%%%%%%% VO %%%%%%%%%%
}
if( SPLINE_13_COMPLETED )
sys.trigger( $bomber_spawn_1 ); //NE corner low - Bomber
sys.wait( 1 );
if( SPLINE_7_COMPLETED )
sys.trigger( $fighter_spawn_7 ); //NW corner high
sys.wait( 3 );
if( SPLINE_16_COMPLETED )
sys.trigger( $bomber_spawn_4 ); //NW corner low - Bomber
sys.wait( 1 );
if( SPLINE_10_COMPLETED )
sys.trigger( $fighter_spawn_10 ); //SE corner high
sys.wait( 1 );
if( !WAVE5_CALLOUT_1 && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_theyeveryw" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE5_CALLOUT_1 = true;
}
if( SPLINE_8_COMPLETED )
sys.trigger( $fighter_spawn_8 ); //NW corner high
sys.wait( 1 );
if( SPLINE_14_COMPLETED )
sys.trigger( $bomber_spawn_2 ); //NE corner low - Bomber
sys.wait( 1 );
if( SPLINE_21_COMPLETED )
sys.trigger( $fighter_spawn_180_1 ); //Aft high
sys.wait( 1 );
if( !WAVE5_CALLOUT_2 && WAVE5_CALLOUT_1 && WAVE5_PLAYERKILLS >= 3 && SPLINE_22_COMPLETED && INTOPGUN && !PLAYER_EVENT_IN_PROGRESS ) {
radioChatterPlay( $radiochatter, "vo_tak_multtargallq" ); // %%%%%%%%%% VO %%%%%%%%%%
WAVE5_CALLOUT_2 = true;
}
if( SPLINE_22_COMPLETED )
sys.trigger( $fighter_spawn_180_2 ); //Aft high
sys.wait( 3 );
if( SPLINE_11_COMPLETED )
sys.trigger( $fighter_spawn_11 ); //SE corner high
sys.wait( 1 );
if( SPLINE_9_COMPLETED )
sys.trigger( $fighter_spawn_9 ); //NW corner high
sys.wait( 1 );
if( SPLINE_15_COMPLETED )
sys.trigger( $bomber_spawn_3 ); //NW corner low - Bomber
sys.wait( 1 );
if( SPLINE_12_COMPLETED )
sys.trigger( $fighter_spawn_12 ); //SE corner high
sys.wait( 1 );
}
NO_EVASIVES = true;
if( WAVE5BOMBER_ALIVE ) {
$wave5bomber.kill();
}
thread moveDarnellBacktoChair();
//sys.music( "m03_exit_cinematic" ); // ====######## MUSIC #########====
$musicfast1.fadeSound( SND_CHANNEL_ANY, -80, 1 );
$musicfast1.remove();
sys.trigger( $musicexit );
//Wait until all ships have been killed before proceeding
while( STROGG_WAVE_SHIP_COUNTER > 0 ) {
sys.wait( 1 );
}
//____________________________________________________________
DRIVER_STOP_FIRING = true;
PLAYER_EVENT_IN_PROGRESS = true;
sys.wait( 5 );
sys.trigger( $playerchairtrigger );
sys.trigger( $item_objectivecomplete_1 );
radioChatterPlayWait( $radiochatter, "vo_vansen_weapprchlz" ); // %%%%%%%%%% VO %%%%%%%%%%
radioChatterPlayWait( $radiochatter, "vo_marks_everyprep" ); // %%%%%%%%%% VO %%%%%%%%%%
thread endofbattle_vo();
REDALERT = false;
sys.trigger( $ds_redlight_rot_1 );
$ds_redlight_rot_flare_1.hide();
$ds_redlight_1.Off();
sys.trigger( $ds_redlight_rot_2 );
$ds_redlight_rot_flare_2.hide();
$ds_redlight_2.Off();
$chair_light_static_flares.setColor( 0.6, 1, 0.9 );
$seat_light_1.setColor( 0.6, 1, 0.9 );
$seat_light_2.setColor( 0.6, 1, 0.9 );
$seat_light_3.setColor( 0.6, 1, 0.9 );
$seat_light_4.setColor( 0.6, 1, 0.9 );
$seat_light_5.setColor( 0.6, 1, 0.9 );
$white_ship_light.On();
thread moveNavajasBacktoChair();
thread moveTakBacktoChair();
while( INTOPGUN ) {
sys.wait( 0.1 );
}
sys.sendNamedEvent( GUI_PLAYERHUD, "ship_target_03_on" );
sys.wait( 5 );
while( !PLAYER_BACK_AT_CHAIR ) {
sys.wait( 0.1 );
}
$player1.bind( $drop_ship );
sys.fadeOut( '0 0 0', 1 );
sys.wait( 1 );
//-------------------------------------- end cinematic ------------------------------------
thread flapBanners();
$sky_camera_mover.time( 0.1 );
$sky_camera_mover.moveTo( $sky_2_null );
sys.waitFor( $sky_camera_mover );
sys.trigger( $end_camera );
thread moveEndCameraFirst();
$end_dropship.show();
$end_dropship.time( 12 );
$end_dropship.decelTime( 4 );
$end_dropship.startSpline( $end_dropship_spline );
sys.wait( 1 );
sys.fadeIn( '0 0 0', 1 );
sys.waitFor( $end_dropship );
sys.wait( 2 );
$markswell_end.show();
aiScriptedMoveWait( $markswell_end, $markswell_end_null_1, 16, 0 );
aiScriptedFaceWait( $markswell_end, $end_dropship, 0 );
sys.trigger( $end_camera_cu );
sys.wait( 0.5 );
$musicexit.fadeSound( SND_CHANNEL_ANY, -20, 0.5 ); // ====######## MUSIC #########====
aiSpeak( $markswell_end, "lipsync_marks_everybdyout" ); // %%%%%%%%%% VO %%%%%%%%%%
$navajas_end.show();
aiScriptedMove( $navajas_end, $navajas_end_null_1, 16, 0 );
sys.wait( 1.25 );
$mitchell_end.show();
aiScriptedMove( $mitchell_end, $mitchell_end_null_1, 16, 0 );
sys.wait( 1.25 );
sys.trigger( $end_camera );
sys.wait( 0.2 );
radioChatterPlay( $radiochatter, "vo_vansen_delivpack" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 1 );
$navajas_end.lookAt( $markswell_end );
aiScriptedFace( $navajas_end, $markswell_end, 0 );
$mitchell_end.lookAt( $markswell_end );
aiScriptedFace( $mitchell_end, $markswell_end, 0 );
$tak_end.show();
aiScriptedMove( $tak_end, $tak_end_null_1, 16, 0 );
sys.wait( 1 );
$darnell_end.show();
aiScriptedMove( $darnell_end, $darnell_end_null_1, 16, 0 );
sys.wait( 1 );
$dekard_end.show();
aiScriptedMoveWait( $dekard_end, $deckard_end_null_1, 16, 0 );
$tak_end.lookAt( $markswell_end );
aiScriptedFace( $tak_end, $markswell_end, 0 );
$darnell_end.lookAt( $markswell_end );
aiScriptedFace( $darnell_end, $markswell_end, 0 );
$dekard_end.lookAt( $markswell_end );
aiScriptedFace( $dekard_end, $markswell_end, 0 );
sys.wait( 1 );
sys.trigger( $end_camera_cu );
sys.wait( 0.5 );
$markswell_end.lookAt( $dekard_end );
aiScriptedFace( $markswell_end, $dekard_end, 0 );
aiSpeak( $markswell_end, "lipsync_marks_infiltopsid" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 8 );
$markswell_end.lookAt( $navajas_end );
aiScriptedFace( $markswell_end, $navajas_end, 0 );
sys.wait( 6 );
aiSpeakWait( $markswell_end, "lipsync_marks_moveout3" ); // %%%%%%%%%% VO %%%%%%%%%%
sys.wait( 0.2 );
$musicexit.fadeSound( SND_CHANNEL_ANY, 20, 0.5 ); // ====######## MUSIC #########====
sys.trigger( $end_camera );
sys.wait( 1 );
$tak_end.lookAt( $end_doors );
$darnell_end.lookAt( $end_doors );
$dekard_end.lookAt( $end_doors );
aiScriptedMove( $navajas_end, $navajas_end_null_2, 16, 0 );
sys.wait( 0.85 );
aiScriptedMove( $markswell_end, $markswell_end_null_2, 16, 0 );
sys.wait( 0.85 );
aiScriptedMove( $mitchell_end, $mitchell_end_null_2, 16, 0 );
thread moveEndCameraSecond();
aiScriptedMove( $darnell_end, $darnell_end_null_2, 16, 0 );
sys.wait( 0.85 );
aiScriptedMove( $dekard_end, $deckard_end_null_2, 16, 0 );
sys.wait( 0.85 );
aiScriptedMoveWait( $tak_end, $tak_end_null_2a, 16, 0 );
aiScriptedFaceWait( $tak_end, $exitdoorgui, 0 );
$tak_end.lookAt( $exitdoorgui );
aiScriptedAnimWait( $tak_end, "tram1_console_stand_start", 12, 0 );
aiScriptedAnimWait( $tak_end, "tram1_console_stand_loop", 0, 0 );
aiScriptedAnimWait( $tak_end, "tram1_console_stand_end", 0, 0 );
sys.wait( 0.5 );
sys.trigger( $end_doors );
aiScriptedMoveWait( $tak_end, $tak_end_null_2b, 16, 0 );
sys.wait( 1 );
aiScriptedMove( $darnell_end, $darnell_end_null_3, 16, 0 );
sys.wait( 0.5 );
aiScriptedMove( $tak_end, $tak_end_null_3, 16, 0 );
sys.wait( 0.75 );
aiScriptedMoveWait( $dekard_end, $deckard_end_null_3, 16, 0 );
sys.fadeOut( '0 0 0', 2 );
sys.trigger( $end_doors );
sys.wait( 2 );
sys.trigger( $end_camera );
sys.wait( 0.1 );
sys.sendNamedEvent( GUI_PLAYERHUD, "aa_showShipStatusOff" );
$player1.enableWeapon();
sys.waitFrame();
sys.trigger( $endlevel );
}
//end namespace
}
/*
Old, unused stuff that's being taken out for now. Leaving here in case I need to put it back in.
//+++++++++++++++++++++++++++++++++++++++++
//Rear Fire
//+++++++++++++++++++++++++++++++++++++++++
if( WAVE2_PLAYERKILLS >= 6 && !STARTED_REAR_FIRE_SEQ ) {
thread rearFireInit();
//sys.music( "m03_event" ); // ====######## MUSIC #########====
sys.trigger( $musicslow1 );
sys.trigger( $musicevent );
}
//+++++++++++++++++++++++++++++++++++++++++
//Ammo jam
//+++++++++++++++++++++++++++++++++++++++++
if( WAVE3_PLAYERKILLS >= 5 && !STARTED_AMMO_JAM_SEQ ) {
thread ammoJamInit();
//sys.music( "m03_event" ); // ====######## MUSIC #########====
sys.trigger( $musicmedium1 );
sys.trigger( $musicevent );
}
*/