mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
107 lines
3.1 KiB
Plaintext
107 lines
3.1 KiB
Plaintext
#include maps\mp\zm_alcatraz_weap_quest;
|
|
#include maps\mp\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
|
|
#using_animtree("fxanim_props");
|
|
|
|
grief_soul_catcher_state_manager()
|
|
{
|
|
wait 1;
|
|
|
|
if (is_true(level.scr_zm_ui_gametype_pro))
|
|
{
|
|
for (i = 0; i < level.soul_catchers.size; i++)
|
|
{
|
|
level.soul_catchers[i].is_charged = 1;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
while ( true )
|
|
{
|
|
level setclientfield( self.script_parameters, 0 );
|
|
|
|
self waittill( "first_zombie_killed_in_zone" );
|
|
|
|
if ( isdefined( level.soul_catcher_clip[self.script_noteworthy] ) )
|
|
level.soul_catcher_clip[self.script_noteworthy] setvisibletoall();
|
|
|
|
level setclientfield( self.script_parameters, 1 );
|
|
anim_length = getanimlength( %o_zombie_dreamcatcher_intro );
|
|
wait( anim_length );
|
|
|
|
while ( !self.is_charged )
|
|
{
|
|
level setclientfield( self.script_parameters, 2 );
|
|
self waittill_either( "fully_charged", "finished_eating" );
|
|
}
|
|
|
|
level setclientfield( self.script_parameters, 6 );
|
|
anim_length = getanimlength( %o_zombie_dreamcatcher_outtro );
|
|
wait( anim_length );
|
|
|
|
if ( isdefined( level.soul_catcher_clip[self.script_noteworthy] ) )
|
|
level.soul_catcher_clip[self.script_noteworthy] delete();
|
|
|
|
self.souls_received = 0;
|
|
level thread wolf_spit_out_powerup();
|
|
wait 20;
|
|
self thread soul_catcher_check();
|
|
}
|
|
}
|
|
|
|
wolf_spit_out_powerup()
|
|
{
|
|
if ( !( isdefined( level.enable_magic ) && level.enable_magic ) )
|
|
return;
|
|
|
|
power_origin_struct = getstruct( "wolf_puke_powerup_origin", "targetname" );
|
|
|
|
if ( level.scr_zm_ui_gametype_obj != "zmeat" && randomint( 100 ) < 20 )
|
|
{
|
|
for ( i = 0; i < level.zombie_powerup_array.size; i++ )
|
|
{
|
|
if ( level.zombie_powerup_array[i] == "meat_stink" )
|
|
{
|
|
level.zombie_powerup_index = i;
|
|
found = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
while ( true )
|
|
{
|
|
level.zombie_powerup_index = randomint( level.zombie_powerup_array.size );
|
|
|
|
if ( level.zombie_powerup_array[level.zombie_powerup_index] == "nuke" )
|
|
{
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
if ( level.scr_zm_ui_gametype_obj == "zmeat" && level.zombie_powerup_array[level.zombie_powerup_index] == "meat_stink" )
|
|
{
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (getDvar("ui_zm_mapstartlocation_fake") == "docks")
|
|
{
|
|
power_origin_struct = spawnStruct();
|
|
power_origin_struct.origin = ( 41.4695, 6096.17, -102.9326 );
|
|
}
|
|
|
|
spawn_infinite_powerup_drop( power_origin_struct.origin, level.zombie_powerup_array[level.zombie_powerup_index] );
|
|
power_ups = get_array_of_closest( power_origin_struct.origin, level.active_powerups, undefined, undefined, 100 );
|
|
|
|
if ( isdefined( power_ups[0] ) )
|
|
power_ups[0] movez( 120, 4 );
|
|
} |