1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 15:17:57 -05:00
Files
BO2-Reimagined/scripts/zm/replaced/zm_highrise_sq_ssp.gsc
2023-12-16 20:01:17 -08:00

103 lines
2.4 KiB
Plaintext

#include maps\mp\zm_highrise_sq_ssp;
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_sidequests;
#include maps\mp\zombies\_zm_spawner;
#include maps\mp\zm_highrise_sq;
ssp1_watch_ball(str_complete_flag)
{
self watch_model_sliquification(10, str_complete_flag);
self thread ssp1_rotate_ball();
self playloopsound("zmb_sq_ball_rotate_loop", 0.25);
}
watch_model_sliquification(n_end_limit, str_complete_flag)
{
n_count = 0;
self setcandamage(1);
while (!flag(str_complete_flag))
{
self waittill("damage", amount, attacker, direction, point, mod, tagname, modelname, partname, weaponname);
if (issubstr(weaponname, "slipgun") && !flag("sq_ball_picked_up"))
{
n_count++;
if (n_count >= n_end_limit)
{
self notify("sq_sliquified");
if (isdefined(self.t_pickup))
self.t_pickup delete();
flag_set(str_complete_flag);
}
else if (n_count == 1)
level notify("ssp1_ball_first_sliquified");
else if (n_count == 5)
level notify("ssp1_ball_sliquified_2");
}
}
}
init_2()
{
flag_init("ssp2_maxis_keep_going_said");
flag_init("ssp2_maxis_reincarnate_said");
flag_init("ssp2_corpses_in_place");
flag_init("ssp2_resurrection_done");
flag_init("ssp2_statue_complete");
maps\mp\zombies\_zm_spawner::add_custom_zombie_spawn_logic(::ssp_2_zombie_death_check);
declare_sidequest_stage("sq_2", "ssp_2", ::init_stage_2, ::stage_logic_2, ::exit_stage_2);
}
stage_logic_2()
{
level thread ssp2_advance_dragon();
corpse_room_watcher();
stage_completed("sq_2", "ssp_2");
}
ssp_2_zombie_death_check()
{
self waittill("death");
if (!isdefined(self))
return;
t_corpse_room = getent("corpse_room_trigger", "targetname");
if (self istouching(t_corpse_room))
level notify("ssp2_corpse_made", 1);
}
corpse_room_watcher()
{
t_corpse_room = getent("corpse_room_trigger", "targetname");
n_count = 0;
while (!flag("ssp2_resurrection_done"))
{
level waittill("ssp2_corpse_made", is_in_room);
if (is_in_room)
n_count++;
else
n_count = 0;
if (n_count == 1 && !flag("ssp2_maxis_keep_going_said"))
{
flag_set("ssp2_maxis_keep_going_said");
level thread maps\mp\zm_highrise_sq::maxissay("vox_maxi_sidequest_reincar_zombie_0");
}
else if (n_count >= 15)
{
flag_set("ssp2_corpses_in_place");
vo_maxis_ssp_complete();
flag_set("ssp2_resurrection_done");
}
}
}