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

Nuketown: perk changes

This commit is contained in:
Jbleezy
2023-04-11 23:35:59 -07:00
parent f68b52d2dc
commit d98cd216ca
3 changed files with 133 additions and 0 deletions

View File

@ -556,6 +556,12 @@
* No perks
* Pack-a-Punch
### Nuketown
* Initial perk is no longer always Quick Revive in solo
* Initial perk no longer always spawns in the starting area in solo
* Initial perk spawns at round 1 in coop
* Perks spawn every 5th round
### Die Rise
* Removed key
* Elevators and escape pod can be called without key

View File

@ -0,0 +1,119 @@
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_weapons;
#include maps\mp\zombies\_zm_perks;
#include maps\mp\animscripts\zm_death;
#include maps\mp\zombies\_zm_game_module;
#include maps\mp\zm_nuked_perks;
init_nuked_perks()
{
level.perk_arrival_vehicle = getent( "perk_arrival_vehicle", "targetname" );
level.perk_arrival_vehicle setmodel( "tag_origin" );
flag_init( "perk_vehicle_bringing_in_perk" );
structs = getstructarray( "zm_perk_machine", "targetname" );
for ( i = 0; i < structs.size; i++ )
structs[i] structdelete();
level.nuked_perks = [];
level.nuked_perks[0] = spawnstruct();
level.nuked_perks[0].model = "zombie_vending_revive";
level.nuked_perks[0].script_noteworthy = "specialty_quickrevive";
level.nuked_perks[0].turn_on_notify = "revive_on";
level.nuked_perks[1] = spawnstruct();
level.nuked_perks[1].model = "zombie_vending_sleight";
level.nuked_perks[1].script_noteworthy = "specialty_fastreload";
level.nuked_perks[1].turn_on_notify = "sleight_on";
level.nuked_perks[2] = spawnstruct();
level.nuked_perks[2].model = "zombie_vending_doubletap2";
level.nuked_perks[2].script_noteworthy = "specialty_rof";
level.nuked_perks[2].turn_on_notify = "doubletap_on";
level.nuked_perks[3] = spawnstruct();
level.nuked_perks[3].model = "zombie_vending_jugg";
level.nuked_perks[3].script_noteworthy = "specialty_armorvest";
level.nuked_perks[3].turn_on_notify = "juggernog_on";
level.nuked_perks[4] = spawnstruct();
level.nuked_perks[4].model = "p6_anim_zm_buildable_pap";
level.nuked_perks[4].script_noteworthy = "specialty_weapupgrade";
level.nuked_perks[4].turn_on_notify = "Pack_A_Punch_on";
level.override_perk_targetname = "zm_perk_machine_override";
random_perk_structs = [];
perk_structs = getstructarray( "zm_random_machine", "script_noteworthy" );
for ( i = 0; i < perk_structs.size; i++ )
{
random_perk_structs[i] = getstruct( perk_structs[i].target, "targetname" );
random_perk_structs[i].script_int = perk_structs[i].script_int;
}
level.random_perk_structs = array_randomize( random_perk_structs );
for ( i = 0; i < 5; i++ )
{
level.random_perk_structs[i].targetname = "zm_perk_machine_override";
level.random_perk_structs[i].model = level.nuked_perks[i].model;
level.random_perk_structs[i].blocker_model = getent( level.random_perk_structs[i].target, "targetname" );
level.random_perk_structs[i].script_noteworthy = level.nuked_perks[i].script_noteworthy;
level.random_perk_structs[i].turn_on_notify = level.nuked_perks[i].turn_on_notify;
if ( !isdefined( level.struct_class_names["targetname"]["zm_perk_machine_override"] ) )
level.struct_class_names["targetname"]["zm_perk_machine_override"] = [];
level.struct_class_names["targetname"]["zm_perk_machine_override"][level.struct_class_names["targetname"]["zm_perk_machine_override"].size] = level.random_perk_structs[i];
}
}
perks_from_the_sky()
{
level thread turn_perks_on();
top_height = 8000;
machines = [];
machine_triggers = [];
machines[0] = getent( "vending_revive", "targetname" );
if ( !isdefined( machines[0] ) )
return;
machine_triggers[0] = getent( "vending_revive", "target" );
move_perk( machines[0], top_height, 5.0, 0.001 );
machine_triggers[0] trigger_off();
machines[1] = getent( "vending_doubletap", "targetname" );
machine_triggers[1] = getent( "vending_doubletap", "target" );
move_perk( machines[1], top_height, 5.0, 0.001 );
machine_triggers[1] trigger_off();
machines[2] = getent( "vending_sleight", "targetname" );
machine_triggers[2] = getent( "vending_sleight", "target" );
move_perk( machines[2], top_height, 5.0, 0.001 );
machine_triggers[2] trigger_off();
machines[3] = getent( "vending_jugg", "targetname" );
machine_triggers[3] = getent( "vending_jugg", "target" );
move_perk( machines[3], top_height, 5.0, 0.001 );
machine_triggers[3] trigger_off();
machine_triggers[4] = getent( "specialty_weapupgrade", "script_noteworthy" );
machines[4] = getent( machine_triggers[4].target, "targetname" );
move_perk( machines[4], top_height, 5.0, 0.001 );
machine_triggers[4] trigger_off();
flag_wait( "initial_blackscreen_passed" );
wait( randomintrange( 10, 20 ) );
bring_random_perk( machines, machine_triggers );
wait_for_round_range( 5, 6 );
wait( randomintrange( 30, 60 ) );
bring_random_perk( machines, machine_triggers );
wait_for_round_range( 10, 11 );
wait( randomintrange( 30, 60 ) );
bring_random_perk( machines, machine_triggers );
wait_for_round_range( 15, 16 );
wait( randomintrange( 60, 120 ) );
bring_random_perk( machines, machine_triggers );
wait_for_round_range( 20, 21 );
wait( randomintrange( 60, 120 ) );
bring_random_perk( machines, machine_triggers );
}

View File

@ -2,6 +2,14 @@
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
#include scripts\zm\replaced\zm_nuked_perks;
main()
{
replaceFunc(maps\mp\zm_nuked_perks::init_nuked_perks, scripts\zm\replaced\zm_nuked_perks::init_nuked_perks);
replaceFunc(maps\mp\zm_nuked_perks::perks_from_the_sky, scripts\zm\replaced\zm_nuked_perks::perks_from_the_sky);
}
init()
{
level.zombie_init_done = ::zombie_init_done;