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

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