mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
118 lines
3.4 KiB
Plaintext
118 lines
3.4 KiB
Plaintext
#include maps\mp\zm_highrise_sq_atd;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\_utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include maps\mp\zombies\_zm_sidequests;
|
|
#include maps\mp\zm_highrise_sq;
|
|
|
|
init()
|
|
{
|
|
flag_init( "sq_atd_elevator0" );
|
|
flag_init( "sq_atd_elevator1" );
|
|
flag_init( "sq_atd_elevator2" );
|
|
flag_init( "sq_atd_elevator3" );
|
|
flag_init( "sq_atd_elevator_activated" );
|
|
flag_init( "sq_atd_drg_puzzle_1st_error" );
|
|
flag_init( "sq_atd_drg_puzzle_complete" );
|
|
declare_sidequest_stage( "sq", "atd", ::init_stage, ::stage_logic, ::exit_stage_1 );
|
|
sq_atd_dragon_icon_setup();
|
|
}
|
|
|
|
stage_logic()
|
|
{
|
|
sq_atd_elevators();
|
|
sq_atd_drg_puzzle();
|
|
stage_completed( "sq", level._cur_stage_name );
|
|
}
|
|
|
|
sq_atd_elevators()
|
|
{
|
|
a_elevators = array( "elevator_bldg1b_trigger", "elevator_bldg1d_trigger", "elevator_bldg3b_trigger", "elevator_bldg3c_trigger" );
|
|
a_elevator_flags = array( "sq_atd_elevator0", "sq_atd_elevator1", "sq_atd_elevator2", "sq_atd_elevator3" );
|
|
|
|
for ( i = 0; i < a_elevators.size; i++ )
|
|
{
|
|
trig_elevator = getent( a_elevators[i], "targetname" );
|
|
trig_elevator thread sq_atd_watch_elevator( a_elevator_flags[i] );
|
|
}
|
|
|
|
while ( !flag( "sq_atd_elevator0" ) || !flag( "sq_atd_elevator1" ) || !flag( "sq_atd_elevator2" ) || !flag( "sq_atd_elevator3" ) )
|
|
{
|
|
flag_wait_any_array( a_elevator_flags );
|
|
wait 0.5;
|
|
}
|
|
|
|
flag_set( "sq_atd_elevator_activated" );
|
|
vo_richtofen_atd_elevators();
|
|
level thread vo_maxis_atd_elevators();
|
|
}
|
|
|
|
sq_atd_watch_elevator( str_flag )
|
|
{
|
|
level endon( "sq_atd_elevator_activated" );
|
|
|
|
while ( true )
|
|
{
|
|
self waittill( "trigger", e_who );
|
|
|
|
if ( !isplayer( e_who ) )
|
|
{
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
a_dragon_icons = getentarray( "elevator_dragon_icon", "targetname" );
|
|
foreach ( m_icon in a_dragon_icons )
|
|
{
|
|
if ( issubstr( self.targetname, m_icon.script_noteworthy ) )
|
|
{
|
|
v_off_pos = m_icon.m_lit_icon.origin;
|
|
m_icon.m_lit_icon unlink();
|
|
m_icon unlink();
|
|
m_icon.m_lit_icon.origin = m_icon.origin;
|
|
m_icon.origin = v_off_pos;
|
|
m_icon.m_lit_icon linkto( m_icon.m_elevator );
|
|
m_icon linkto( m_icon.m_elevator );
|
|
m_icon playsound( "zmb_sq_symbol_light" );
|
|
break;
|
|
}
|
|
}
|
|
|
|
flag_set( str_flag );
|
|
return;
|
|
}
|
|
}
|
|
|
|
sq_atd_drg_puzzle()
|
|
{
|
|
level.sq_atd_cur_drg = 0;
|
|
a_puzzle_trigs = getentarray( "trig_atd_drg_puzzle", "targetname" );
|
|
a_puzzle_trigs = array_randomize( a_puzzle_trigs );
|
|
|
|
for ( i = 0; i < a_puzzle_trigs.size; i++ )
|
|
a_puzzle_trigs[i] thread drg_puzzle_trig_think( i );
|
|
|
|
while ( level.sq_atd_cur_drg < 4 )
|
|
wait 1;
|
|
|
|
flag_set( "sq_atd_drg_puzzle_complete" );
|
|
level thread vo_maxis_atd_order_complete();
|
|
}
|
|
|
|
drg_puzzle_trig_think( n_order_id )
|
|
{
|
|
self.drg_active = 0;
|
|
m_unlit = getent( self.target, "targetname" );
|
|
m_lit = m_unlit.lit_icon;
|
|
v_top = m_unlit.origin;
|
|
v_hidden = m_lit.origin;
|
|
|
|
self waittill( "trigger", e_who );
|
|
|
|
m_lit.origin = v_top;
|
|
m_unlit.origin = v_hidden;
|
|
m_lit playsound( "zmb_sq_symbol_light" );
|
|
self.drg_active = 1;
|
|
level thread vo_richtofen_atd_order( level.sq_atd_cur_drg );
|
|
level.sq_atd_cur_drg++;
|
|
} |