124 lines
3.5 KiB
Plaintext
124 lines
3.5 KiB
Plaintext
#include common_scripts\utility;
|
|
#include maps\_utility;
|
|
|
|
main()
|
|
{
|
|
ReplaceFunc(maps\village_defend::minigun_fallback, ::minigun_fallback);
|
|
ReplaceFunc(maps\village_defend::airstrike_command, ::airstrike_command);
|
|
}
|
|
|
|
minigun_fallback()
|
|
{
|
|
flag_wait( "ridgeline_targeted" );
|
|
|
|
autosave_by_name( "ridgeline_under_mortar_fire" );
|
|
|
|
redshirt1 = getent( "redshirt1", "targetname" );
|
|
redshirt2 = getent( "redshirt2", "targetname" );
|
|
|
|
redshirt_node1 = getnode( "fallback_redshirt1", "targetname" );
|
|
redshirt_node2 = getnode( "fallback_redshirt2", "targetname" );
|
|
|
|
//Left trigger spin functionality for console controllers
|
|
if( level.console || getdvarint("gpad_in_use") )
|
|
{
|
|
level thread maps\village_defend::minigun_firstuse_check();
|
|
//level thread minigun_session_check();
|
|
|
|
add_hint_string( "minigun_spin_left_trigger", &"SCRIPT_PLATFORM_SPOOL_MINIGUN", maps\village_defend::should_break_minigun_spin_hint );
|
|
}
|
|
|
|
//"They're targeting our position with mortars. It's time to fall back."
|
|
//iprintln( "They're targeting our position with mortars. It's time to fall back." );
|
|
radio_dialogue_queue( "targetingour" );
|
|
|
|
thread maps\village_defend::minigun_orders();
|
|
|
|
wait 2;
|
|
|
|
//"Two, falling back."
|
|
radio_dialogue_queue( "twofallingback" );
|
|
|
|
redshirt1 allowedstances ( "stand", "crouch", "prone" );
|
|
redshirt1 setgoalnode( redshirt_node1 );
|
|
wait randomfloatrange( 0.7, 1.2 );
|
|
|
|
//"Three, on the move."
|
|
radio_dialogue_queue( "threeonthemove" );
|
|
|
|
redshirt2 allowedstances ( "stand", "crouch", "prone" );
|
|
redshirt2 setgoalnode( redshirt_node2 );
|
|
|
|
priceNode = getnode( "fallback_price", "targetname" );
|
|
level.price allowedstances ( "stand", "crouch", "prone" );
|
|
level.price setgoalnode( priceNode );
|
|
|
|
//"Three here. Two's in the far eastern building. We've got the eastern road locked down."
|
|
radio_dialogue_queue( "easternroadlocked" );
|
|
|
|
level.price.baseaccuracy = 1;
|
|
level.price.ignoreSuppression = true;
|
|
|
|
redshirt1.baseaccuracy = 1;
|
|
redshirt1.ignoreSuppression = true;
|
|
|
|
redshirt2.baseaccuracy = 1;
|
|
redshirt2.ignoreSuppression = true;
|
|
|
|
thread maps\village_defend_code::friendly_pushplayer( "off" );
|
|
|
|
wait 5;
|
|
|
|
thread maps\village_defend::intro_church_tower_explode();
|
|
}
|
|
|
|
airstrike_command()
|
|
{
|
|
flag_wait( "airstrikes_ready" );
|
|
|
|
thread maps\village_defend::callStrike( level.player.origin, 1, ( 0, 110, 0 ) );
|
|
wait 1.2;
|
|
thread maps\village_defend::callStrike( level.player.origin, 1, ( 0, 96, 0 ) );
|
|
wait 1;
|
|
thread maps\village_defend::callStrike( level.player.origin, 1, ( 0, 126, 0 ) );
|
|
|
|
wait 5;
|
|
|
|
//"Bravo Six, this is Falcon One standing by to provide close air support. Gimme a target over."
|
|
radio_dialogue_queue( "casready" );
|
|
|
|
if ( isdefined( level.console ) && level.console || getdvarint("gpad_in_use"))
|
|
thread maps\village_defend::airstrike_hint_console();
|
|
else
|
|
thread maps\village_defend::airstrike_hint_pc();
|
|
|
|
level.player giveWeapon( "airstrike_support" );
|
|
level.player SetActionSlot( 2, "weapon" , "airstrike_support" );
|
|
|
|
thread maps\village_defend::airstrike_support();
|
|
|
|
wait 3;
|
|
|
|
flag_set( "falcon_one_finished_talking" );
|
|
|
|
flag_wait( "return_trip_begins" );
|
|
|
|
thread maps\village_defend::airstrike_frequency_check();
|
|
|
|
level endon ( "stop_airstrike_reminders" );
|
|
level endon ( "no_airstrike_ammo" );
|
|
|
|
while( 1 )
|
|
{
|
|
startTime = gettime();
|
|
wait 70;
|
|
|
|
if( !level.airstrikeCalledRecently )
|
|
{
|
|
//"Bravo Six, this is Falcon One standing by to provide close air support. Gimme a target over."
|
|
radio_dialogue_queue( "casready" );
|
|
|
|
level.airstrikeCalledRecently = false;
|
|
}
|
|
}
|
|
} |