mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-20 12:10:28 -05:00
Die Rise: elevators can be locked at their current floor
Die Rise: escape pod can be called up or down Die Rise: elevators and escape pod triggers require look at
This commit is contained in:
@ -23,12 +23,12 @@ escape_pod()
|
||||
used_at_least_once = 0;
|
||||
escape_pod setanim( level.escape_elevator_1_state );
|
||||
escape_pod setclientfield( "clientfield_escape_pod_light_fx", 1 );
|
||||
escape_pod thread escape_pod_state_run();
|
||||
escape_pod_trigger thread escape_pod_walk_on_off( escape_pod );
|
||||
|
||||
while ( true )
|
||||
{
|
||||
escape_pod setanim( level.escape_elevator_idle );
|
||||
flag_clear( "escape_pod_needs_reset" );
|
||||
|
||||
if ( isdefined( escape_pod_blocker_door ) )
|
||||
{
|
||||
@ -41,38 +41,17 @@ escape_pod()
|
||||
if ( is_true( used_at_least_once ) )
|
||||
wait 3;
|
||||
|
||||
escape_pod thread escape_pod_state_run();
|
||||
level thread escape_pod_wait_for_players_inside( escape_pod, escape_pod_trigger );
|
||||
|
||||
while ( true )
|
||||
{
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
flag_set( "escape_pod_needs_reset" );
|
||||
|
||||
if ( players_in_escape_pod.size == 0 )
|
||||
{
|
||||
escape_pod.escape_pod_state = 1;
|
||||
wait 0.05;
|
||||
continue;
|
||||
}
|
||||
level waittill( "reset_escape_pod" );
|
||||
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
|
||||
if ( players_in_escape_pod.size > 0 )
|
||||
{
|
||||
escape_pod.escape_pod_state = 2;
|
||||
|
||||
escape_pod thread escape_pod_tell_fx();
|
||||
wait 3;
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
|
||||
if ( players_in_escape_pod.size > 0 )
|
||||
break;
|
||||
}
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
flag_clear( "escape_pod_needs_reset" );
|
||||
|
||||
level notify( "escape_pod_falling_begin" );
|
||||
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
foreach ( player in players_in_escape_pod )
|
||||
{
|
||||
player.riding_escape_pod = 1;
|
||||
@ -154,6 +133,42 @@ escape_pod()
|
||||
}
|
||||
}
|
||||
|
||||
escape_pod_wait_for_players_inside( escape_pod, escape_pod_trigger )
|
||||
{
|
||||
level endon( "reset_escape_pod" );
|
||||
|
||||
while ( true )
|
||||
{
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
|
||||
if ( players_in_escape_pod.size == 0 )
|
||||
{
|
||||
escape_pod.escape_pod_state = 1;
|
||||
wait 0.05;
|
||||
continue;
|
||||
}
|
||||
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
|
||||
if ( players_in_escape_pod.size > 0 )
|
||||
{
|
||||
escape_pod.escape_pod_state = 2;
|
||||
|
||||
escape_pod thread escape_pod_tell_fx();
|
||||
wait 3;
|
||||
players_in_escape_pod = escape_pod_trigger escape_pod_get_all_alive_players_inside();
|
||||
|
||||
if ( players_in_escape_pod.size > 0 )
|
||||
break;
|
||||
}
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
level notify( "reset_escape_pod" );
|
||||
}
|
||||
|
||||
|
||||
escape_pod_get_all_alive_players_inside()
|
||||
{
|
||||
players = get_players();
|
||||
|
@ -249,6 +249,29 @@ elevator_think( elevator )
|
||||
}
|
||||
}
|
||||
|
||||
elevator_initial_wait( elevator, minwait, maxwait, delaybeforeleaving )
|
||||
{
|
||||
elevator.body endon( "forcego" );
|
||||
elevator.body waittill_any_or_timeout( randomintrange( minwait, maxwait ), "depart_early" );
|
||||
|
||||
if ( !is_true( elevator.body.lock_doors ) && !is_true( elevator.body.elevator_stop ) )
|
||||
elevator.body setanim( level.perk_elevators_anims[elevator.body.perk_type][0] );
|
||||
|
||||
if ( !is_true( elevator.body.departing_early ) )
|
||||
wait( delaybeforeleaving );
|
||||
|
||||
if ( elevator.body.perk_type == "specialty_weapupgrade" )
|
||||
{
|
||||
while ( flag( "pack_machine_in_use" ) )
|
||||
wait 0.5;
|
||||
|
||||
wait( randomintrange( 1, 3 ) );
|
||||
}
|
||||
|
||||
while ( isdefined( level.elevators_stop ) && level.elevators_stop || isdefined( elevator.body.elevator_stop ) && elevator.body.elevator_stop )
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
faller_location_logic()
|
||||
{
|
||||
wait 1;
|
||||
|
Reference in New Issue
Block a user