Files
Quake_4_Alpha/q4xbase/maps/game/m02_trianfac.script
T
2026-08-06 14:45:27 -07:00

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");
}