mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
119 lines
2.9 KiB
Plaintext
119 lines
2.9 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++;
|
|
} |