mirror of
https://github.com/jmarshall23/Quake_4_Alpha.git
synced 2026-08-16 00:02:13 +02:00
1814 lines
35 KiB
Plaintext
1814 lines
35 KiB
Plaintext
#include "scripts/doom_defs.script"
|
|
|
|
|
|
float room1_cleared_counter = 0;
|
|
float uplink_room_cleared = 0;
|
|
float processor_room_reached = 0;
|
|
float player_beyond_momentary_doors = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PlayerBeyondMomentaryDoors()
|
|
{
|
|
sys.trigger( $momentary_door_a );
|
|
|
|
sys.wait( 0.5 );
|
|
|
|
sys.trigger( $momentary_door_lock );
|
|
$momentary_door_frame.setShaderParm( 7, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MomentaryDoorOpen()
|
|
{
|
|
aiScriptedMoveWait( $tak, $tak_pos_51, 8, 0 );
|
|
aiScriptedFaceWait( $tak, $momentart_doors_console, 0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_hmmnexacc" );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $tak, "console_stand_end", 0, 0 );
|
|
|
|
sys.trigger( $momentary_door_lock );
|
|
$momentary_door_frame.setShaderParm( 7, 1 );
|
|
|
|
sys.wait( 0.5 );
|
|
|
|
sys.trigger( $momentary_door_a );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void oldPlayerBeyondMomentaryDoors()
|
|
{
|
|
player_beyond_momentary_doors = 1;
|
|
}
|
|
|
|
|
|
|
|
void oldMomentaryDoorOpen()
|
|
{
|
|
aiScriptedMoveWait( $tak, $tak_pos_51, 8, 0 );
|
|
aiScriptedFaceWait( $tak, $momentart_doors_console, 0 );
|
|
|
|
while ( player_beyond_momentary_doors == 0 )
|
|
{
|
|
aiSpeakWait( $tak, "lipsync_tak_hmmnexacc" );
|
|
|
|
// sys.wait( 3.0 );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $tak, "console_stand_end", 0, 0 );
|
|
|
|
sys.trigger( $momentary_door_lock );
|
|
$momentary_door_frame.setShaderParm( 7, 1 );
|
|
|
|
sys.wait( 0.5 );
|
|
|
|
sys.trigger( $momentary_door_a );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
sys.trigger( $momentary_door_a );
|
|
|
|
sys.wait( 0.5 );
|
|
|
|
sys.trigger( $momentary_door_lock );
|
|
$momentary_door_frame.setShaderParm( 7, 0 );
|
|
|
|
sys.wait( 5.0 );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Leaper1Start()
|
|
{
|
|
$leaper_clip_1.becomeNonSolid();
|
|
sys.wait( 0.5 );
|
|
sys.trigger( $leaper_strogg_marine_1 );
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $leaper_strogg_marine_2 );
|
|
sys.wait( 2.0 );
|
|
$leaper_clip_1.becomeSolid();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ClimberGruntStart()
|
|
{
|
|
// $leaper_clip_2.becomeNonSolid();
|
|
sys.wait( 0.5 );
|
|
sys.trigger( $proc_q4x_grunt_1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
void ResetGruntBarrier()
|
|
{
|
|
$leaper_clip_2.becomeSolid();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TakToFloorPanel()
|
|
{
|
|
aiScriptedMoveWait( $tak, $tak_pos_51, 8, 0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_hmmnexacc" );
|
|
|
|
aiScriptedFaceWait( $tak, $tak_floor_panel, 0 );
|
|
aiScriptedAnimWait( $tak, "point_down", 0, 0 );
|
|
|
|
aiScriptedAnimWait( $tak, "stand_to_crouch", 0, 0 );
|
|
|
|
aiScriptedAnim( $tak, "crouch_to_stand", 0, 0 );
|
|
|
|
setNewTimes( $tak_floor_panel, 5 , 1 , 1 );
|
|
$tak_floor_panel.rotateOnce( '90 0 0' );
|
|
sys.waitFor( $tak_floor_panel );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TakToTakElevator()
|
|
{
|
|
aiScriptedMoveWait( $tak, $tak_pos_47, 8, 0 );
|
|
|
|
sys.trigger( $trigger_playerOnTakElevator );
|
|
|
|
aiScriptedFaceWait( $tak, $tak_elevator_panel, 1 );
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TeamOnTakElevator()
|
|
{
|
|
sys.trigger( $tak_elevator_playerclip );
|
|
|
|
setNewTimes( $tak_elevator , 5.0 , 1.0 , 1.0 );
|
|
|
|
$tak_elevator.move( UP, 608 );
|
|
sys.waitFor( $tak_elevator );
|
|
}
|
|
|
|
|
|
|
|
|
|
void TakOnOthersideOfUpDoor()
|
|
{
|
|
aiScriptedFaceWait( $tak, $elevator3_call_1, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TeammateLiftDoor( entity teammate, entity look_target )
|
|
{
|
|
aiScriptedFaceWait( teammate, look_target, 0 );
|
|
aiScriptedAnimWait( teammate, "tr_doorlift_start", 0, 0 );
|
|
aiScriptedAnimWait( teammate, "tr_doorlift_loop_1", 0, 0 );
|
|
}
|
|
|
|
|
|
void TeammateLiftDoorHigher( entity teammate )
|
|
{
|
|
aiScriptedAnimWait( teammate, "tr_doorlift_higher", 0, 0 );
|
|
aiScriptedAnimWait( teammate, "tr_doorlift_loop_2", 0, 0 );
|
|
}
|
|
|
|
|
|
void DarnellMitchellDropDoor()
|
|
{
|
|
aiScriptedAnim( $darnell, "tr_doorlift_end", 0, 0 );
|
|
aiScriptedAnim( $mitchell, "tr_doorlift_end", 0, 0 );
|
|
|
|
setNewTimes( $stuck_door, 0.5, 0.0, 0.1 );
|
|
$stuck_door.move( DOWN, 48 );
|
|
sys.waitFor( $stuck_door );
|
|
}
|
|
|
|
|
|
|
|
void DarnellMitchellOpenDoor()
|
|
{
|
|
aiScriptedMoveWait( $darnell, $darnell_door_pos, 8, 0 );
|
|
aiScriptedMoveWait( $mitchell, $mitchell_door_pos, 8, 0 );
|
|
aiScriptedMoveWait( $tak, $tak_door_pos_before, 8, 0 );
|
|
|
|
sys.println( "got here #1" );
|
|
|
|
aiSpeak( $darnell, "lipsync_darn_hmmonlyway" );
|
|
|
|
thread TeammateLiftDoor( $darnell, $darnell_stuck_door_look_target );
|
|
thread TeammateLiftDoor( $mitchell, $mitchell_stuck_door_look_target );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
setNewTimes( $stuck_door, 0.8, 0.0, 0.2 );
|
|
$stuck_door.move( UP, 32 );
|
|
sys.waitFor( $stuck_door );
|
|
|
|
aiSpeak( $darnell, "lipsync_darn_takgetunderths" );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_door_pos_before, 8, 0 );
|
|
aiScriptedAnimWait( $tak, "tr_tak_duck", 0, 0 );
|
|
aiScriptedMoveWait( $tak, $tak_door_pos_console, 8, 0 );
|
|
|
|
thread TakOnOthersideOfUpDoor();
|
|
|
|
aiSpeakWait( $darnell, "lipsync_darn_pain" );
|
|
aiSpeakWait( $darnell, "lipsync_darn_dekforget" );
|
|
|
|
thread TeammateLiftDoorHigher( $darnell );
|
|
thread TeammateLiftDoorHigher( $mitchell );
|
|
|
|
$stuck_door.move( UP, 16 );
|
|
sys.waitFor( $stuck_door );
|
|
|
|
aiSpeakWait( $mitchell, "lipsync_mitch_pain" );
|
|
aiSpeakWait( $darnell, "lipsync_darn_dekhrry" );
|
|
aiSpeakWait( $mitchell, "lipsync_mitch_cntholdlng" );
|
|
|
|
aiSpeakWait( $darnell, "lipsync_darn_comondek" );
|
|
aiSpeakWait( $darnell, "lipsync_darn_pain2" );
|
|
aiSpeakWait( $mitchell, "lipsync_mitch_pain2" );
|
|
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_darn_takmeetmarks" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void NexusNear()
|
|
{
|
|
aiSpeakWait( $tak, "lipsync_tak_comnexus" );
|
|
}
|
|
|
|
|
|
|
|
|
|
void NexusAccessPoint()
|
|
{
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_tak_lkarounddek" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void FlashLightsOn()
|
|
{
|
|
$tak.flashlight( 1 );
|
|
sys.wait( 1.0 );
|
|
$navajas.flashlight( 1 );
|
|
sys.wait( 0.5 );
|
|
$markswell.flashlight( 1 );
|
|
sys.wait( 1.0 );
|
|
$darnell.flashlight( 1 );
|
|
sys.wait( 1.0 );
|
|
$mitchell.flashlight( 1 );
|
|
sys.wait( 0.5 );
|
|
$razor1.flashlight( 1 );
|
|
$razor2.flashlight( 1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void FlashLightsOff()
|
|
{
|
|
$tak.flashlight( 0 );
|
|
sys.wait( 1.0 );
|
|
$navajas.flashlight( 0 );
|
|
sys.wait( 0.5 );
|
|
$markswell.flashlight( 0 );
|
|
sys.wait( 1.0 );
|
|
$darnell.flashlight( 0 );
|
|
sys.wait( 1.0 );
|
|
$mitchell.flashlight( 0 );
|
|
sys.wait( 0.5 );
|
|
$razor1.flashlight( 0 );
|
|
$razor2.flashlight( 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void gruntBlasted()
|
|
{
|
|
$fx_death_gib.setWorldOrigin( $mon_grunt_wrestle.getJointPos( $mon_grunt_wrestle.getJointHandle( "chest")));
|
|
$fx_death_gib.setAngles( $mon_grunt_wrestle.getAngles());
|
|
sys.trigger( $fx_death_gib);
|
|
|
|
//let's see what we can do. We want him to topple ass-over-teakettle, y positive
|
|
$mon_grunt_wrestle.kill();
|
|
sys.waitFrame();
|
|
vector vHead = $mon_grunt_wrestle.getWorldOrigin();
|
|
vHead_z += 48;
|
|
|
|
$mon_grunt_wrestle.applyImpulse( $mon_grunt_wrestle, vHead, '0 20000 2000');
|
|
$mon_grunt_wrestle.applyImpulse( $mon_grunt_wrestle, $mon_grunt_wrestle.getWorldOrigin(), '-1000 30000 2000');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ReleaseGruntWrestler()
|
|
{
|
|
sys.trigger( $razor2 );
|
|
sys.trigger( $razor3 );
|
|
|
|
sys.trigger( $processor_subroom_2_lock );
|
|
$processor_subroom_2_frame.setShaderParm( 7, 1 );
|
|
|
|
sys.trigger( $processor_subroom_2_doora );
|
|
|
|
aiSpeak( $razor1, "lipsync_razor1_getoff" );
|
|
|
|
aiScriptedAnim( $mon_grunt_wrestle, "ad_jump", 1, 0 );
|
|
aiScriptedAnimWait( $razor1, "ad_fights_grunt_1", 1, 0 );
|
|
|
|
aiSpeak( $razor1, "lipsync_razor1_pain" );
|
|
|
|
$razor1.setAnimRate( 1.2 );
|
|
aiScriptedAnim( $razor1, "ad_fights_grunt_2", 1, 1 );
|
|
$razor1.setAnimRate( 1 );
|
|
|
|
aiSpeak( $razor2, "lipsync_razor2_ivegotem" );
|
|
|
|
thread gruntBlasted();
|
|
|
|
$razor1.setTalkState( TALK_OK ); // , "idle");
|
|
sys.wait( 1.0 );
|
|
|
|
aiSpeak( $razor2, "lipsync_razor2_pain" );
|
|
|
|
// sys.trigger( $ai_tether_radius_razor1_1 );
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_8, 16, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TakDead()
|
|
{
|
|
// sys.trigger( $objective_3_failed );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TeamToGenerator()
|
|
{
|
|
aiScriptedMove( $razor1, $razor1_pos_20, 32, 1 );
|
|
aiScriptedMove( $markswell, $markswell_pos_20, 32, 1 );
|
|
aiScriptedMoveWait( $tak, $tak_pos_20, 32, 1 );
|
|
|
|
// aiScriptedMoveWait( $markswell, $markswell_pos_21, 32, 1 );
|
|
// aiScriptedMoveWait( $razor1, $razor1_pos_21, 32, 1 );
|
|
// aiScriptedMoveWait( $tak, $tak_pos_21, 32, 1 );
|
|
|
|
// sys.wait( 4.0 );
|
|
|
|
// aiScriptedMove( $markswell, $markswell_pos_22, 32, 1 );
|
|
// aiScriptedMove( $razor1, $razor1_pos_22, 32, 1 );
|
|
// aiScriptedMoveWait( $tak, $tak_pos_22, 32, 1 );
|
|
|
|
// sys.wait( 4.0 );
|
|
|
|
// aiScriptedMoveWait( $markswell, $markswell_pos_23, 32, 0 );
|
|
// aiScriptedMoveWait( $tak, $tak_pos_23, 32, 0 );
|
|
// aiScriptedMoveWait( $razor1, $razor1_pos_23, 32, 0 );
|
|
}
|
|
|
|
|
|
void TeamToCoreCannon()
|
|
{
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_24, 8, 0 );
|
|
aiScriptedFaceWait( $razor1, $weapon_spikegun_1, 0 );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_pos_24, 8, 0 );
|
|
aiScriptedFaceWait( $tak, $weapon_spikegun_1, 0 );
|
|
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_24, 8, 0 );
|
|
aiScriptedFaceWait( $markswell, $weapon_spikegun_1, 0 );
|
|
|
|
sys.trigger( $core_cannon_site_trigger );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ElevatorChatter()
|
|
{
|
|
sys.wait( 1.0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_darn_ltmitchwnd" );
|
|
sys.wait( 1.0 );
|
|
aiSpeakWait( $markswell, "lipsync_marks_rogerthtterm" );
|
|
sys.wait( 1.0 );
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_darn_yessir" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CoreCannonSite()
|
|
{
|
|
aiSpeak( $razor1, "lipsync_razor1_whereteamamb" );
|
|
aiScriptedAnimWait( $razor1, "idle_look_back_lt", 0, 0 );
|
|
|
|
aiSpeak( $razor1, "lipsync_razor1_theretrianth" );
|
|
aiScriptedAnimWait( $razor1, "point_down", 0, 0 );
|
|
|
|
aiScriptedFaceWait( $tak, $weapon_spikegun_1, 0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_hmmletmesee" );
|
|
|
|
aiSpeak( $tak, "lipsync_tak_herekedshoots" );
|
|
|
|
aiScriptedAnimWait( $tak, "player_gift2_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "player_gift2_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "player_gift2_end", 0, 0 );
|
|
|
|
$weapon_spikegun_1.remove();
|
|
sys.trigger( $target_give_3 );
|
|
|
|
aiScriptedMove( $markswell, $markswell_pos_25, 32, 1 );
|
|
aiScriptedMove( $razor1, $razor1_pos_25, 32, 0 );
|
|
aiScriptedMoveWait( $tak, $tak_pos_25, 32, 0 );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_genjustup" );
|
|
|
|
aiScriptedFaceWait( $tak, $tak_elevA_panel, 1 );
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
|
|
// Open the gate
|
|
setNewTimes( $elevGateA_1 , 1 , .5 , .2 );
|
|
$elevGateA_1.rotateOnce( '-90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
thread ElevatorChatter();
|
|
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_26, 32, 0 );
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_26, 32, 0 );
|
|
aiScriptedMoveWait( $tak, $tak_pos_26, 32, 0 );
|
|
|
|
sys.trigger( $trigger_playerOnElevator );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void NavajasToWoundedRaven2()
|
|
{
|
|
aiScriptedMoveWait( $navajas, $navajas_pos_8, 16, 0 );
|
|
aiScriptedFaceWait( $navajas, $razor3, 0 );
|
|
aiScriptedAnim( $navajas, "crouch_cover_idle", 1, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TeamInProcessorRoom()
|
|
{
|
|
thread NavajasToWoundedRaven2();
|
|
|
|
sys.wait( 2.0 );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_pos_8, 16, 0 );
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_8, 16, 0 );
|
|
|
|
|
|
aiScriptedFace( $markswell, $razor1, 0 );
|
|
aiScriptedFace( $tak, $razor1, 0 );
|
|
aiScriptedFace( $razor1, $markswell, 0 );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_damnglad" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_howmaysurv" );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_there4surv" );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_machineproc" );
|
|
|
|
aiSpeakWait( $razor2, "lipsync_razor2_squadpush" );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_foundstrg" );
|
|
|
|
aiSpeakWait( $razor2, "lipsync_razor2_ltwordemp" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_nowordnoth" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_hereplannav" );
|
|
|
|
aiSpeakWait( $navajas, "lipsync_nava_understood" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_letsgo3" );
|
|
|
|
sys.trigger( $blast_door_lock );
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $blast_door_1 );
|
|
|
|
// sys.wait( 3.0 );
|
|
|
|
sys.trigger( $item_objective_3 );
|
|
|
|
thread TeamToGenerator();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TeamOnElevator()
|
|
{
|
|
setNewTimes( $elevGateA_1 , 1 , .5 , .2 );
|
|
$elevGateA_1.rotateOnce( '90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
$elevAControls.guiEvent( "anim_up" );
|
|
|
|
setNewTimes( $elevA , 10, 2, 2 );
|
|
|
|
$elevA.move( UP , 1440 );
|
|
sys.waitFor( $elevA );
|
|
|
|
$elevAControls.guiEvent( "anim_up_reset" );
|
|
|
|
$elevGateA_1.rotateOnce( '-90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_pos_27, 32, 1 );
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_27, 32, 1 );
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_27, 32, 0 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ReleaseRepairBot( float bot_count )
|
|
{
|
|
entity proc_bot;
|
|
entity proc_bot_target;
|
|
entity proc_bot_spot;
|
|
|
|
proc_bot = sys.getEntity( "proc_bot_" + bot_count );
|
|
proc_bot_target = sys.getEntity( "proc_bot_target_" + bot_count );
|
|
proc_bot_spot = sys.getEntity( "proc_bot_spot_" + bot_count );
|
|
|
|
// sys.println("proc_bot_spot_" + bot_count );
|
|
|
|
// if ( bot_count == 2 )
|
|
// {
|
|
// sys.trigger( $proc_bot_sentry_1 );
|
|
// aiScriptedMoveWait( $proc_bot_sentry_1, $proc_bot_sentry_1_pos_1, 32, 1 );
|
|
// $proc_bot_sentry_1.becomeAggressive();
|
|
// }
|
|
// if ( bot_count == 4 )
|
|
// {
|
|
// sys.trigger( $proc_bot_sentry_2 );
|
|
// aiScriptedMoveWait( $proc_bot_sentry_2, $proc_bot_sentry_2_pos_1, 32, 1 );
|
|
// $proc_bot_sentry_2.becomeAggressive();
|
|
// }
|
|
|
|
aiScriptedMoveWait( proc_bot, proc_bot_spot, 8, 0 );
|
|
aiScriptedFaceWait( proc_bot, proc_bot_target, 0 );
|
|
$repbot_1.bind( proc_bot_spot );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
while ( isLivingEntity( proc_bot ) )
|
|
{
|
|
aiScriptedActionWait( proc_bot, proc_bot_target, 0 );
|
|
sys.wait( 8.0 );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ProcRepairBot()
|
|
{
|
|
float i;
|
|
|
|
for ( i = 1; i <= 6; i++ )
|
|
{
|
|
thread ReleaseRepairBot( i );
|
|
sys.wait( 3.0 );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TeamToGeneratorRoom()
|
|
{
|
|
aiScriptedMove( $markswell, $markswell_pos_28, 32, 1 );
|
|
aiScriptedMove( $tak, $tak_pos_28, 32, 1 );
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_28, 32, 0 );
|
|
|
|
aiScriptedMoveWait( $razor1, $razor1_pos_29, 32, 0 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_pos_29, 32, 1 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_29, 32, 1 );
|
|
|
|
aiScriptedFaceWait( $razor1, $gen_screen_1, 0 );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_genctrl" );
|
|
aiSpeakWait( $razor1, "lipsync_razor1_okshutdwn" );
|
|
|
|
thread ProcRepairBot();
|
|
|
|
aiSpeak( $razor1, "lipsync_razor1_overload" );
|
|
aiScriptedAnimWait( $razor1, "console_stand_start", 0, 0 );
|
|
aiSpeak( $razor1, "lipsync_razor1_gen125" );
|
|
aiScriptedAnimWait( $razor1, "console_stand_loop", 0, 0 );
|
|
aiSpeak( $razor1, "lipsync_razor1_gen150" );
|
|
aiScriptedAnimWait( $razor1, "console_stand_end", 0, 0 );
|
|
|
|
aiScriptedAnim( $razor1, "point_left", 0, 0 );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_whathellrep" );
|
|
sys.wait( 1.0 );
|
|
aiSpeakWait( $razor1, "lipsync_razor1_damnpowdrp" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_shootrepbot" );
|
|
|
|
aiScriptedMove( $markswell, $markswell_pos_28, 32, 1 );
|
|
aiScriptedMoveWait( $tak, $tak_pos_28, 32, 1 );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_tkoutrep" );
|
|
|
|
sys.wait( 2.0 );
|
|
|
|
aiSpeakWait( $razor1, "lipsync_razor1_gdpwrlv" );
|
|
aiSpeakWait( $razor1, "lipsync_razor1_whathte" );
|
|
aiSpeakWait( $razor1, "lipsync_razor1_pain2" );
|
|
|
|
$gen_retch_holder_1.remove();
|
|
sys.trigger( $gen_retch_1 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
$razor1.kill();
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_takeout2" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void MarkswellToElevator()
|
|
{
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_26, 32, 0 );
|
|
|
|
$elevGateA_1.rotateOnce( '-90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
$elevA.move( DOWN , 1440 );
|
|
sys.waitFor( $elevA );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TakToGeneratorConsole()
|
|
{
|
|
sys.trigger( $music_access_node );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_takctrlstat" );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_yessir2" );
|
|
|
|
aiScriptedMoveWait( $tak, $razor1_pos_29, 32, 0 );
|
|
|
|
aiScriptedFaceWait( $tak, $gen_screen_1, 1 );
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_darn_mitchlocterm" );
|
|
aiSpeakWait( $markswell, "lipsync_marks_standdarn" );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_genat175" );
|
|
aiSpeakWait( $tak, "lipsync_tak_genreachcrit" );
|
|
aiSpeakWait( $tak, "lipsync_tak_thatgenfall" );
|
|
aiSpeakWait( $tak, "lipsync_tak_gen1failred" );
|
|
aiSpeakWait( $tak, "lipsync_tak_andgen2fail" );
|
|
|
|
sys.trigger( $core_explosion_trigger_1 );
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $core_explosion_trigger_2 );
|
|
sys.wait( 0.5 );
|
|
sys.trigger( $core_explosion_trigger_3 );
|
|
sys.wait( 3.0 );
|
|
sys.trigger( $core_explosion_trigger_4 );
|
|
sys.wait( 1.0 );
|
|
|
|
sys.trigger( $music_core_explode );
|
|
|
|
sys.trigger( $core_explosion_trigger_5 );
|
|
sys.wait( 0.5 );
|
|
sys.trigger( $core_explosion_trigger_6 );
|
|
|
|
sys.wait( 2.0 );
|
|
|
|
sys.trigger( $item_objective_4 );
|
|
|
|
aiScriptedMove( $tak, $tak_pos_29, 32, 0 );
|
|
aiScriptedMoveWait( $markswell, $markswell_pos_29, 32, 0 );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_alsplitting" );
|
|
|
|
aiScriptedAnimWait( $markswell, "idle_wrist_gui_start", 0, 0 );
|
|
aiSpeak( $markswell, "lipsync_marks_darnloctermd" );
|
|
aiScriptedAnimWait( $markswell, "idle_wrist_gui_loop", 0, 0 );
|
|
aiScriptedAnimWait( $markswell, "idle_wrist_gui_end", 0, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_darn_copylttell" );
|
|
|
|
aiSpeakWait( $markswell, "lipsync_marks_headback" );
|
|
|
|
thread MarkswellToElevator();
|
|
|
|
sys.trigger( $gen_door_1a_lock );
|
|
$gen_door_frame_1.setShaderParm( 7, 1 );
|
|
sys.trigger( $gen_door_1a );
|
|
|
|
sys.wait( 0.5 );
|
|
|
|
aiScriptedMove( $tak, $tak_pos_31, 32, 1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OpenGenRoomExit()
|
|
{
|
|
sys.trigger( $machine_room3_lock );
|
|
$machine_room3_door_frame.setShaderParm( 7, 1 );
|
|
|
|
sys.trigger( $room3_strogg_marine_5 );
|
|
sys.trigger( $monster_berserker_3 );
|
|
sys.trigger( $gen_room_grunt_1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void FoundDarnellMitchell()
|
|
{
|
|
aiSpeakWait( $darnell, "lipsync_darn_gladjoin" );
|
|
sys.wait( 5.0 );
|
|
aiSpeakWait( $mitchell, "lipsync_mitch_termbetter" );
|
|
sys.wait( 1.0 );
|
|
aiSpeakWait( $darnell, "lipsync_darn_calmmitch" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ReleaseGenRetch2()
|
|
{
|
|
thread OpenGenRoomExit();
|
|
|
|
$gen_retch_holder_2.remove();
|
|
sys.trigger( $gen_retch_2 );
|
|
|
|
// sys.trigger( $gen_retch_3 );
|
|
// sys.wait( .1 );
|
|
// aiScriptedMoveWait($gen_retch_3, $gen_retch_3_pos_1, 8, 1);
|
|
// $gen_retch_3.scriptedJumpDown( 90 ); // this is the jump angle
|
|
// aiScriptedWait( $gen_retch_3 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TakOpenProcessorDoor()
|
|
{
|
|
aiSpeak( $tak, "lipsync_tak_letmegetdr" );
|
|
|
|
aiScriptedMove( $markswell, $markswell_processor_door_pos, 32, 0 );
|
|
aiScriptedMove( $navajas, $navajas_processor_door_pos, 32, 0 );
|
|
aiScriptedMoveWait( $tak, $tak_processor_door_pos, 5, 0 );
|
|
|
|
aiScriptedFaceWait( $tak, $processor_door_panel, 0 );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
|
|
aiSpeak( $tak, "lipsync_tak_done3" );
|
|
sys.trigger( $item_objectivecomplete_1 );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
|
|
sys.trigger( $processor_door_lock );
|
|
$func_static_10074b_5.setShaderParm( 7, 1 );
|
|
|
|
// sys.wait( 2.0 );
|
|
|
|
aiScriptedMove( $markswell, $markswell_processor_pos, 5, 1 );
|
|
aiScriptedMove( $navajas, $navajas_processor_pos, 5, 1 );
|
|
aiScriptedMoveWait( $tak, $tak_processor_pos, 5, 1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TakOpenProcessorDoor2()
|
|
{
|
|
aiScriptedMove( $markswell, $markswell_pos_4, 32, 1 );
|
|
aiScriptedMove( $navajas, $navajas_pos_4, 32, 1 );
|
|
aiScriptedMoveWait( $tak, $tak_pos_4, 5, 0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_letmegetdr" );
|
|
|
|
aiScriptedFaceWait( $tak, $processor_door2_panel, 0 );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_razor1_garret" );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_done3" );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_holshitdead" );
|
|
aiSpeakWait( $markswell, "lipsync_marks_apparentnot" );
|
|
aiSpeakWait( $markswell, "lipsync_marks_wereadrazor" );
|
|
|
|
sys.trigger( $processor_door2_lock );
|
|
$processor_door2_frame.setShaderParm( 7, 1 );
|
|
|
|
sys.trigger( $monster_tactical_blaster_1 );
|
|
sys.trigger( $processor_tactical_1 );
|
|
sys.trigger( $processor_tactical_2 );
|
|
|
|
// sys.wait( 2.0 );
|
|
|
|
aiScriptedMove( $tak, $tak_pos_4a, 5, 1 );
|
|
aiScriptedMove( $markswell, $markswell_pos_4a, 32, 1 );
|
|
aiScriptedMove( $navajas, $navajas_pos_4a, 32, 1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AmbientAABlastSound( float blast_no )
|
|
{
|
|
entity blast_sound;
|
|
float random_wait;
|
|
|
|
blast_sound = sys.getEntity( "AA_blastsound_" + blast_no );
|
|
|
|
sys.wait( blast_no * 6 );
|
|
sys.trigger( blast_sound );
|
|
sys.trigger( $AA_blastsound_dust_relay );
|
|
|
|
while ( 1 )
|
|
{
|
|
random_wait = sys.random( 30 ) + 10;
|
|
sys.wait( random_wait );
|
|
sys.trigger( $AA_blastsound_dust_relay );
|
|
sys.wait( 1.0 );
|
|
// sys.println("BlastSound = " + blast_no );
|
|
sys.trigger( blast_sound );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void AmbientAABlastSounds()
|
|
{
|
|
thread AmbientAABlastSound( 1 );
|
|
thread AmbientAABlastSound( 2 );
|
|
thread AmbientAABlastSound( 3 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TakEntrance()
|
|
{
|
|
sys.trigger( $item_objective_1 );
|
|
|
|
aiScriptedFace( $markswell, $player1, 0 );
|
|
aiScriptedFace( $tak, $markswell, 0 );
|
|
aiScriptedFace( $navajas, $markswell, 0 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
sys.trigger( $AA_blastsound_1 );
|
|
|
|
aiSpeak( $markswell, "lipsync_marks_hadesatlas" );
|
|
aiScriptedAnimWait( $markswell, "point_left", 0, 0 );
|
|
// aiScriptedAnimWait( $markswell, "idle_look_back_lt", 0, 0 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
sys.trigger( $AA_blastsound_dust_relay );
|
|
// sys.wait( 1.0 );
|
|
sys.trigger( $AA_blastsound_3 );
|
|
|
|
// aiScriptedAnim( $tak, "idle_checks_time", 0, 0 );
|
|
sys.wait( 0.3 );
|
|
aiScriptedAnim( $navajas, "at_attention_end", 0, 0 );
|
|
sys.wait( 0.3 );
|
|
aiScriptedAnim( $tak, "at_attention_end", 0, 0 );
|
|
// aiScriptedAnimWait( $tak, "idle_look_back_lt", 0, 0 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
aiScriptedFaceWait( $tak, $player1, 1 );
|
|
|
|
// sys.wait( 1.0 );
|
|
|
|
aiScriptedAnim( $markswell, "idle_look_back_lt", 0, 0 );
|
|
// aiScriptedAnim( $markswell, "reload", 0, 0 );
|
|
// aiScriptedAnim( $markswell, "idle_stretching_3", 0, 0 );
|
|
|
|
aiScriptedFace( $navajas, $player1, 1 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_holdupdek" );
|
|
|
|
aiScriptedAnimWait( $tak, "player_gift2_start", 0, 0 );
|
|
aiScriptedAnim( $navajas, "idle_checks_time", 0, 0 );
|
|
// aiScriptedAnimWait( $tak, "player_gift2_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "player_gift2_end", 0, 0 );
|
|
|
|
sys.trigger( $target_give_2 );
|
|
|
|
// sys.wait( 4.0 );
|
|
|
|
sys.trigger( $func_door_69 );
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_okdngren" );
|
|
|
|
aiSpeak( $markswell, "lipsync_marks_letsmove2" );
|
|
|
|
sys.trigger( $music_intro );
|
|
|
|
// sys.wait( 2.0 );
|
|
|
|
thread AmbientAABlastSounds();
|
|
|
|
aiScriptedMove( $markswell, $markswell_pos_1, 5, 1 );
|
|
sys.wait( 1.0 );
|
|
aiScriptedMove( $tak, $tak_pos_1, 5, 1 );
|
|
sys.wait( 1.0 );
|
|
aiScriptedMoveWait( $navajas, $navajas_pos_1, 5, 1 );
|
|
|
|
aiSpeak( $markswell, "lipsync_marks_keepittight" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void BringOnTheTankScreens()
|
|
{
|
|
sys.wait( 3.0 );
|
|
|
|
// sys.trigger( $boss_screen_1_light );
|
|
sys.trigger( $light_9761 );
|
|
$boss_screen_1_off.hide();
|
|
$boss_screen_1_on.show();
|
|
|
|
// $boss_screen_4_off.hide();
|
|
// $boss_screen_4_on.show();
|
|
|
|
sys.wait( 3.0 );
|
|
|
|
// sys.trigger( $boss_screen_2_light );
|
|
sys.trigger( $light_9764 );
|
|
$boss_screen_2_off.hide();
|
|
$boss_screen_2_on.show();
|
|
|
|
sys.wait( 2.0 );
|
|
|
|
// sys.trigger( $boss_screen_3_light );
|
|
sys.trigger( $light_9762 );
|
|
$boss_screen_3_off.hide();
|
|
$boss_screen_3_on.show();
|
|
|
|
sys.wait( 4.0 );
|
|
|
|
// sys.trigger( $boss_screen_5_light );
|
|
sys.trigger( $light_9763 );
|
|
$boss_screen_5_off.hide();
|
|
$boss_screen_5_on.show();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OpenCoreBossDoor( float door_no )
|
|
{
|
|
entity core_boss_door;
|
|
entity core_boss_door_lock;
|
|
|
|
core_boss_door = sys.getEntity( "tank_door_" + door_no + "_east" );
|
|
core_boss_door_lock = sys.getEntity( "tank_door_team_" + door_no + "_lock" );
|
|
|
|
sys.trigger( core_boss_door_lock );
|
|
sys.wait( 1.5 );
|
|
sys.trigger( core_boss_door );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CloseCoreBossDoor( float door_no )
|
|
{
|
|
entity core_boss_door;
|
|
entity core_boss_door_lock;
|
|
|
|
core_boss_door = sys.getEntity( "tank_door_" + door_no + "_east" );
|
|
core_boss_door_lock = sys.getEntity( "tank_door_team_" + door_no + "_lock" );
|
|
|
|
sys.trigger( core_boss_door );
|
|
sys.wait( 1.5 );
|
|
sys.trigger( core_boss_door_lock );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void BringOnTheTank()
|
|
{
|
|
sys.trigger( $dekard );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
$dekard.setOrigin( $dekard_console_pos_1.getOrigin() );
|
|
aiScriptedFace( $dekard, $boss_screen_4_off, 0 );
|
|
|
|
sys.setCamera( $core_boss_cam_1 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $dekard, "console_stand_loop", 1, 0 );
|
|
|
|
thread BringOnTheTankScreens();
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_ltdeki" );
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_marks_rogmakeitfast" );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_end", 0, 0 );
|
|
|
|
aiScriptedAnim( $dekard, "idle_wrist_gui_start", 0, 0 );
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_dek_takinpos" );
|
|
// aiScriptedAnimWait( $dekard, "idle_wrist_gui_loop", 0, 0 );
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_end", 0, 0 );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $dekard, "console_stand_loop", 1, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_rogdek3" );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_gooddataacc" );
|
|
|
|
sys.trigger( $music_tank_intro );
|
|
|
|
aiScriptedAnim( $dekard, "console_stand_loop", 1, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_swtmoth" );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_end", 0, 0 );
|
|
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_start", 0, 0 );
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_dek_yrguess" );
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_loop", 0, 0 );
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_end", 0, 0 );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $dekard, "console_stand_loop", 1, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_keepopensome" );
|
|
|
|
aiScriptedAnim( $dekard, "console_stand_loop", 1, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_almostdown" );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_end", 0, 0 );
|
|
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_start", 0, 0 );
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_dek_rptlattrans" );
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_loop", 0, 0 );
|
|
aiScriptedAnimWait( $dekard, "idle_wrist_gui_end", 0, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_thatdatserious" );
|
|
|
|
aiScriptedAnimWait( $dekard, "console_stand_start", 0, 0 );
|
|
aiScriptedAnim( $dekard, "console_stand_end", 0, 0 );
|
|
|
|
$core_boss.setMoveSpeed( AIMOVESPEED_RUN );
|
|
|
|
// sys.wait( 10.0 );
|
|
|
|
thread OpenCoreBossDoor( 2 );
|
|
// sys.wait( 3.0 );
|
|
|
|
thread OpenCoreBossDoor( 1 );
|
|
|
|
sys.trigger( $core_boss );
|
|
|
|
sys.setCamera( $core_boss_cam_2 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
// thread CloseCoreBossDoor( 2 );
|
|
|
|
aiScriptedMove( $core_boss, $core_boss_pos_1, 32, 1 );
|
|
|
|
sys.wait( 3.0 );
|
|
|
|
sys.setCamera( $core_boss_cam_3 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
sys.wait( 3.0 );
|
|
|
|
thread CloseCoreBossDoor( 1 );
|
|
|
|
$core_boss.becomePassive( 0 );
|
|
sys.trigger( $core_boss_healthbar );
|
|
|
|
$dekard.setOrigin( $dekard_ending_pos_4.getOrigin() );
|
|
|
|
sys.firstPerson();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TakNavajasCarryingTrian()
|
|
{
|
|
sys.trigger( $tak_ending );
|
|
sys.trigger( $navajas_ending );
|
|
sys.trigger( $darnell_ending );
|
|
|
|
$trian_container.time( 4.0 );
|
|
|
|
aiScriptedAnim( $darnell_ending, "point_left", 0, 0 );
|
|
|
|
aiScriptedAnim( $tak_ending, "lugging_crate_rear", 0, 0 );
|
|
aiScriptedAnim( $navajas_ending, "lugging_crate_front", 0, 0 );
|
|
$trian_container.move( EAST, 64 );
|
|
sys.waitFor( $trian_container );
|
|
|
|
aiScriptedAnim( $tak_ending, "lugging_crate_rear", 0, 0 );
|
|
aiScriptedAnim( $navajas_ending, "lugging_crate_front", 0, 0 );
|
|
$trian_container.move( EAST, 64 );
|
|
sys.waitFor( $trian_container );
|
|
|
|
aiScriptedAnim( $tak_ending, "lugging_crate_rear", 0, 0 );
|
|
aiScriptedAnim( $navajas_ending, "lugging_crate_front", 0, 0 );
|
|
$trian_container.move( EAST, 64 );
|
|
sys.waitFor( $trian_container );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void LandDropShip()
|
|
{
|
|
// playAnimWait( $env_dropship_1, ANIMCHANNEL_ALL, "hangar_land");
|
|
$env_dropship_1.playAnim( ANIMCHANNEL_ALL, "hangar_land");
|
|
$env_dropship_1.playCycle( ANIMCHANNEL_ALL, "hangar_idle");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void BossKilled()
|
|
{
|
|
thread LandDropShip();
|
|
|
|
sys.trigger( $music_tank_defeated );
|
|
|
|
sys.wait( 5.0 );
|
|
|
|
sys.setCamera( $core_boss_cam_4 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
$dekard.setOrigin( $dekard_ending_pos_1.getOrigin() );
|
|
|
|
$darnell.setMoveSpeed( AIMOVESPEED_RUN );
|
|
|
|
// thread OpenCoreBossDoor( 2 );
|
|
thread OpenCoreBossDoor( 1 );
|
|
|
|
aiScriptedMoveWait( $dekard, $dekard_ending_pos_2, 5, 0 );
|
|
|
|
sys.setCamera( $core_boss_cam_5 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
thread TakNavajasCarryingTrian();
|
|
|
|
aiScriptedMove( $dekard, $dekard_ending_pos_3, 5, 0 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_vansen_gunfalc1" );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_marks_rogfalc1" );
|
|
|
|
sys.setCamera( $core_boss_cam_6 );
|
|
sys.fadeIn( '0 0 0', 1 );
|
|
|
|
aiScriptedMove( $darnell, $darnell_ending_pos_2, 5, 0 );
|
|
|
|
aiScriptedMoveWait( $dekard, $dekard_ending_pos_4, 5, 0 );
|
|
|
|
sys.fadeOut( '0 0 0', 3 );
|
|
|
|
sys.wait( 5.0 );
|
|
|
|
sys.trigger( $target_endlevel );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Razor1ForwardPos( entity new_pos )
|
|
{
|
|
// sys.println("tak_pos_" + new_pos.getName());
|
|
aiScriptedMove( $razor1, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
|
|
void TakForwardPos( entity new_pos )
|
|
{
|
|
// sys.println("tak_pos_" + new_pos.getName());
|
|
aiScriptedMove( $tak, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
|
|
void MarkswellForwardPos( entity new_pos )
|
|
{
|
|
aiScriptedMove( $markswell, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
|
|
void NavajasForwardPos( entity new_pos )
|
|
{
|
|
aiScriptedMove( $navajas, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
void DarnellForwardPos( entity new_pos )
|
|
{
|
|
aiScriptedMove( $darnell, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
void MitchellForwardPos( entity new_pos )
|
|
{
|
|
// sys.println("mitchell_pos_" + new_pos.getName());
|
|
aiScriptedMove( $mitchell, new_pos, 32, 1 );
|
|
sys.wait( 0.1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void InitCharacters()
|
|
{
|
|
sys.trigger( $target_give_1 );
|
|
|
|
$tak.setHealth( 300 );
|
|
|
|
$mon_grunt_wrestle.setHealth( 100 );
|
|
|
|
$tak.setUndying( 1 );
|
|
$markswell.setUndying( 1 );
|
|
$darnell.setUndying( 1 );
|
|
$navajas.setUndying( 1 );
|
|
$mitchell.setUndying( 1 );
|
|
|
|
$razor1.setUndying( 1 );
|
|
|
|
$razor2.disableHeal();
|
|
|
|
setNewTimes( $elevGateA_1 , 1 , .5 , .2 );
|
|
$elevGateA_1.rotateOnce( '90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
// setNewTimes( $elevGateAbar_1 , 2 , .5 , .2 );
|
|
// $elevGateAbar_1.move( UP, 16 );
|
|
// sys.waitFor( $elevGateAbar_1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ResetGenRoomStroggMarine2Barrier()
|
|
{
|
|
sys.wait( 2.0 );
|
|
|
|
$genroom_strogg_marine_2_barrier.becomeSolid();
|
|
}
|
|
|
|
|
|
void GenRoomStroggMarine2()
|
|
{
|
|
sys.trigger( $genroom_strogg_marine_2 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GenRoomJumper1()
|
|
{
|
|
sys.trigger( $genroom_strogg_marine_3 );
|
|
sys.wait( .1 );
|
|
aiScriptedMoveWait($genroom_strogg_marine_3, $genroom_strogg_marine_3_pos_1, 8, 1);
|
|
$genroom_strogg_marine_3.scriptedJumpDown( 0 ); // this is the jump angle
|
|
aiScriptedWait( $genroom_strogg_marine_3 );
|
|
|
|
sys.wait( 1.0 );
|
|
|
|
// sys.trigger( $genroom_strogg_marine_4 );
|
|
// sys.wait( .1 );
|
|
// aiScriptedMoveWait($genroom_strogg_marine_4, $genroom_strogg_marine_4_pos_1, 8, 1);
|
|
// $genroom_strogg_marine_4.scriptedJumpDown( 90 ); // this is the jump angle
|
|
// aiScriptedWait( $genroom_strogg_marine_4 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TeamToCompRoomPanel()
|
|
{
|
|
aiScriptedMoveWait( $tak, $tak_pos_38, 32, 0 );
|
|
aiScriptedMoveWait( $darnell, $darnell_pos_38, 32, 1 );
|
|
aiScriptedMoveWait( $mitchell, $mitchell_pos_38, 32, 1 );
|
|
|
|
sys.trigger( $comp_room_attack_trigger );
|
|
}
|
|
|
|
|
|
|
|
void TeamAtCompRoomPanel()
|
|
{
|
|
aiScriptedFaceWait( $tak, $comp_room_panel, 0 );
|
|
|
|
aiSpeak( $tak, "lipsync_tak_wowtermseen" );
|
|
|
|
aiScriptedAnimWait( $tak, "console_stand_start", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_loop", 0, 0 );
|
|
aiScriptedAnimWait( $tak, "console_stand_end", 0, 0 );
|
|
|
|
sys.trigger( $comproom_firstwave_1 );
|
|
aiScriptedMove( $comproom_firstwave_1, $comproom_wave_1_pos_1, 32, 1 );
|
|
sys.trigger( $comproom_firstwave_2 );
|
|
aiScriptedMove( $comproom_firstwave_2, $comproom_wave_2_pos_1, 32, 1 );
|
|
|
|
aiSpeakWait( $darnell, "lipsync_darn_strogg3" );
|
|
|
|
sys.wait( 3.0 );
|
|
|
|
sys.trigger( $comproom_firstwave_3 );
|
|
aiScriptedMove( $comproom_firstwave_3, $comproom_wave_3_pos_1, 32, 1 );
|
|
sys.trigger( $comproom_firstwave_4 );
|
|
aiScriptedMove( $comproom_firstwave_4, $comproom_wave_4_pos_1, 32, 1 );
|
|
|
|
aiSpeakWait( $mitchell, "lipsync_mitch_thereanother" );
|
|
aiSpeakWait( $tak, "lipsync_tak_keepemoff" );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CompRoomFinished()
|
|
{
|
|
sys.trigger( $datamine_room_door_lock );
|
|
$datamine_room_door_frame.setShaderParm( 7, 1 );
|
|
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_tak_ltaccord" );
|
|
sys.wait( 1.0 );
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_marks_rogetakst" );
|
|
sys.wait( 1.0 );
|
|
radioChatterPlayWait( $razor1_radiochatter_1, "vo_marks_okfalcgoc" );
|
|
sys.wait( 1.0 );
|
|
radioChatterPlay( $razor1_radiochatter_1, "vo_makrs_dekyouandyour" );
|
|
|
|
aiScriptedMoveWait( $tak, $tak_pos_41, 32, 0 );
|
|
aiScriptedMoveWait( $darnell, $darnell_pos_41, 32, 1 );
|
|
aiScriptedMoveWait( $mitchell, $mitchell_pos_41, 32, 1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
void CompRoomFirstWave1Death()
|
|
{
|
|
sys.trigger( $comproom_secondwave_1 );
|
|
aiScriptedMove( $comproom_secondwave_1, $comproom_wave_1_pos_1, 32, 1 );
|
|
}
|
|
|
|
void CompRoomFirstWave2Death()
|
|
{
|
|
sys.trigger( $comproom_secondwave_2 );
|
|
aiScriptedMove( $comproom_secondwave_2, $comproom_wave_2_pos_1, 32, 1 );
|
|
}
|
|
|
|
void CompRoomFirstWave3Death()
|
|
{
|
|
sys.trigger( $comproom_secondwave_3 );
|
|
aiScriptedMove( $comproom_secondwave_3, $comproom_wave_3_pos_1, 32, 1 );
|
|
}
|
|
|
|
void CompRoomFirstWave4Death()
|
|
{
|
|
sys.trigger( $comproom_secondwave_4 );
|
|
aiScriptedMove( $comproom_secondwave_4, $comproom_wave_4_pos_1, 32, 1 );
|
|
}
|
|
|
|
|
|
|
|
void CompRoomSecondWaveDeath()
|
|
{
|
|
uplink_room_cleared += 1;
|
|
if ( uplink_room_cleared >= 4 )
|
|
thread CompRoomFinished();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ShaftChatter()
|
|
{
|
|
// aiSpeakWait( $tak, "lipsync_tak_whoawallsraw" );
|
|
// sys.wait( 1.0 );
|
|
|
|
$crystal_protector.remove();
|
|
|
|
aiSpeakWait( $tak, "lipsync_tak_watchfire" );
|
|
aiSpeak( $tak, "lipsync_tak_trianthuns" );
|
|
|
|
// sys.trigger( $shaftroom_q4x_grunt_1 );
|
|
sys.trigger( $monster_q4x_strogg_marine_mgun_1 );
|
|
sys.trigger( $monster_sentry_1 );
|
|
|
|
sys.wait( 3.0 );
|
|
|
|
sys.trigger( $shaftroom_q4x_tactical_blaster_1 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PlaytestStartAtProc()
|
|
{
|
|
sys.wait( 1.0 );
|
|
$tak.setOrigin( $tak_pos_7.getOrigin() );
|
|
$markswell.setOrigin( $markswell_pos_7.getOrigin() );
|
|
$navajas.setOrigin( $navajas_pos_7.getOrigin() );
|
|
}
|
|
|
|
void PlaytestStartAtGen()
|
|
{
|
|
$elevA.move( UP , 1440 );
|
|
sys.waitFor( $elevA );
|
|
setNewTimes( $elevGateA_1 , 1 , .5 , .2 );
|
|
$elevGateA_1.rotateOnce( '-90 0 0' );
|
|
sys.waitFor( $elevGateA_1 );
|
|
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $razor1 );
|
|
$tak.setOrigin( $tak_pos_27.getOrigin() );
|
|
$markswell.setOrigin( $markswell_pos_27.getOrigin() );
|
|
$razor1.setOrigin( $razor1_pos_27.getOrigin() );
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlaytestStartAfterGen()
|
|
{
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $machine_room3_lock );
|
|
$tak.setOrigin( $tak_pos_31.getOrigin() );
|
|
$markswell.setOrigin( $markswell_pos_31.getOrigin() );
|
|
// $razor1.setOrigin( $razor1_pos_31.getOrigin() );
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlaytestStartAfterPanel()
|
|
{
|
|
sys.wait( 1.0 );
|
|
sys.trigger( $darnell );
|
|
sys.trigger( $mitchell );
|
|
$tak.setOrigin( $tak_pos_44.getOrigin() );
|
|
$darnell.setOrigin( $darnell_pos_44.getOrigin() );
|
|
$mitchell.setOrigin( $mitchell_pos_44.getOrigin() );
|
|
$markswell.setOrigin( $markswell_pos_31.getOrigin() );
|
|
// $razor1.setOrigin( $razor1_pos_31.getOrigin() );
|
|
}
|
|
|
|
|
|
|
|
void PlaytestStartBeforeTank()
|
|
{
|
|
sys.wait( 1.0 );
|
|
$tak.setOrigin( $tak_pos_50.getOrigin() );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void main()
|
|
{
|
|
thread InitCharacters();
|
|
|
|
thread TakEntrance();
|
|
// thread PlaytestStartAtProc();
|
|
// thread PlaytestStartAtGen();
|
|
// thread PlaytestStartAfterGen();
|
|
// thread PlaytestStartAfterPanel();
|
|
// thread PlaytestStartBeforeTank();
|
|
|
|
playAnimWait( $uplink_power_pump, ANIMCHANNEL_ALL, "stop");
|
|
}
|
|
|