From eff871035a0025c8dfb81e3e5c7a871d7388730d Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Tue, 11 Apr 2023 01:30:10 -0700 Subject: [PATCH] Powerups: add last powerup fx --- README.md | 1 + scripts/zm/_zm_reimagined.gsc | 1 + scripts/zm/replaced/_zm_powerups.gsc | 36 ++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/README.md b/README.md index 240455b4..cfc3eaa1 100644 --- a/README.md +++ b/README.md @@ -354,6 +354,7 @@ ## Powerups * Grabbing time based powerups that are already active add to timer instead of resetting timer +* An fx plays when a powerup drops if it is the last powerup of a cycle ### Nuke * Kills all zombies instantly diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index 1b5a20d4..6e595d00 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -83,6 +83,7 @@ main() replaceFunc(maps\mp\zombies\_zm_perks::turn_tombstone_on, scripts\zm\replaced\_zm_perks::turn_tombstone_on); replaceFunc(maps\mp\zombies\_zm_perks::wait_for_player_to_take, scripts\zm\replaced\_zm_perks::wait_for_player_to_take); replaceFunc(maps\mp\zombies\_zm_power::standard_powered_items, scripts\zm\replaced\_zm_power::standard_powered_items); + replaceFunc(maps\mp\zombies\_zm_powerups::get_next_powerup, scripts\zm\replaced\_zm_powerups::get_next_powerup); replaceFunc(maps\mp\zombies\_zm_powerups::powerup_grab, scripts\zm\replaced\_zm_powerups::powerup_grab); replaceFunc(maps\mp\zombies\_zm_powerups::full_ammo_powerup, scripts\zm\replaced\_zm_powerups::full_ammo_powerup); replaceFunc(maps\mp\zombies\_zm_powerups::nuke_powerup, scripts\zm\replaced\_zm_powerups::nuke_powerup); diff --git a/scripts/zm/replaced/_zm_powerups.gsc b/scripts/zm/replaced/_zm_powerups.gsc index 571c1d0e..90e9d641 100644 --- a/scripts/zm/replaced/_zm_powerups.gsc +++ b/scripts/zm/replaced/_zm_powerups.gsc @@ -2,6 +2,42 @@ #include common_scripts\utility; #include maps\mp\zombies\_zm_utility; +get_next_powerup() +{ + powerup = level.zombie_powerup_array[level.zombie_powerup_index]; + level.zombie_powerup_index++; + + if ( level.zombie_powerup_index >= level.zombie_powerup_array.size ) + { + level.zombie_powerup_index = 0; + randomize_powerups(); + level thread play_fx_on_powerup_dropped(); + } + + return powerup; +} + +play_fx_on_powerup_dropped() +{ + level waittill( "powerup_dropped", powerup ); + + if ( powerup.solo ) + { + playfx( level._effect["powerup_grabbed_solo"], powerup.origin ); + playfx( level._effect["powerup_grabbed_wave_solo"], powerup.origin ); + } + else if ( powerup.caution ) + { + playfx( level._effect["powerup_grabbed_caution"], powerup.origin ); + playfx( level._effect["powerup_grabbed_wave_caution"], powerup.origin ); + } + else + { + playfx( level._effect["powerup_grabbed"], powerup.origin ); + playfx( level._effect["powerup_grabbed_wave"], powerup.origin ); + } +} + powerup_grab( powerup_team ) { if ( isdefined( self ) && self.zombie_grabbable )