1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 15:17:57 -05:00

Avogadro: respawns same round if too far away

This commit is contained in:
Jbleezy
2023-05-06 21:55:11 -07:00
parent 1064d20ada
commit 091d9d0210
2 changed files with 66 additions and 1 deletions

View File

@ -89,6 +89,7 @@
### Avogadro
* Drops a random powerup when killed
* Decreased minimum distance away from players to be able to attack
* Respawns on the same round if exited due to being too far away from players (normally respawns on the next round)
### Denizens
* Changed max amount that can be spawned at once from 2 total to 1 per player in the fog

View File

@ -110,7 +110,7 @@ avogadro_exit( from )
self linkto( self.anchor );
if ( isdefined( from ) && from == "exit_idle" )
self.return_round = level.round_number + 1;
self.return_round = level.round_number;
else
self.return_round = level.round_number + randomintrange( 2, 5 );
@ -128,4 +128,68 @@ avogadro_exit( from )
}
powerup_origin delete();
}
cloud_update_fx()
{
self endon( "cloud_fx_end" );
level endon( "end_game" );
region = [];
region[0] = "bus";
region[1] = "diner";
region[2] = "farm";
region[3] = "cornfield";
region[4] = "power";
region[5] = "town";
if ( !isdefined( self.sndent ) )
{
self.sndent = spawn( "script_origin", ( 0, 0, 0 ) );
self.sndent playloopsound( "zmb_avogadro_thunder_overhead" );
}
cloud_time = gettime();
for ( vo_counter = 0; 1; vo_counter++ )
{
if ( gettime() >= cloud_time )
{
if ( isdefined( self.current_region ) )
{
exploder_num = level.transit_region[self.current_region].exploder;
stop_exploder( exploder_num );
}
rand_region = array_randomize( region );
region_str = rand_region[0];
if ( !isdefined( self.current_region ) )
region_str = region[4];
self.current_region = region_str;
exploder_num = level.transit_region[region_str].exploder;
exploder( exploder_num );
self.sndent moveto( level.transit_region[region_str].sndorigin, 3 );
cloud_time = gettime() + 30000;
}
if ( vo_counter > 50 )
{
player = self get_player_in_region();
if ( isdefined( player ) )
{
if ( isdefined( self._in_cloud ) && self._in_cloud )
player thread do_player_general_vox( "general", "avogadro_above", 90, 10 );
else
player thread do_player_general_vox( "general", "avogadro_arrive", 60, 40 );
}
else
level thread avogadro_storm_vox();
vo_counter = 0;
}
wait 0.1;
}
}