From 66f694db7d1e2d4cd42a9ad83f7cebe15248c95b Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Thu, 11 May 2023 18:59:44 -0700 Subject: [PATCH] MOTD: Tower Trap changes --- README.md | 2 + scripts/zm/replaced/zm_alcatraz_traps.gsc | 68 +++++++++++------------ 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 90319239..d68e9df4 100644 --- a/README.md +++ b/README.md @@ -653,6 +653,8 @@ * Tower Trap: kills on any round in 1 shot * Tower Trap (upgraded): kills on any round in 1-2 shots * Tower Trap (upgraded): stays upgraded until the end of the round +* Tower Trap (upgraded): can be upgraded while the trap is not active +* Tower Trap (upgraded): upgrading no longer resets the duration of the trap * Zombies spawn in the Docks zone when in the Docks Gates zone * Zombies spawn in the Docks Gates zone when in the Docks zone * Quest: number pad only needs each number to be shocked once in order to complete diff --git a/scripts/zm/replaced/zm_alcatraz_traps.gsc b/scripts/zm/replaced/zm_alcatraz_traps.gsc index 99070693..73daddaf 100644 --- a/scripts/zm/replaced/zm_alcatraz_traps.gsc +++ b/scripts/zm/replaced/zm_alcatraz_traps.gsc @@ -236,6 +236,11 @@ tower_trap_trigger_think() self.upgrade_trigger.in_use = 0; self.upgrade_trigger.is_available = 1; + if (is_gametype_active("zclassic")) + { + self thread tower_upgrade_trigger_think(); + } + while ( true ) { self hint_string( &"ZM_PRISON_TOWER_TRAP", self.cost ); @@ -280,13 +285,6 @@ tower_trap_trigger_think() self thread activate_tower_trap(); self thread tower_trap_timer(); - if (is_true(self.upgrade_trigger.is_available) && is_gametype_active("zclassic")) - { - self thread tower_upgrade_trigger_think(); - level thread open_tower_trap_upgrade_panel(); - level thread tower_trap_upgrade_panel_closes_early(); - } - self waittill( "tower_trap_off" ); self.sndtowerent stoploopsound( 1 ); @@ -304,6 +302,32 @@ tower_trap_trigger_think() } } +tower_upgrade_trigger_think() +{ + while (1) + { + level thread open_tower_trap_upgrade_panel(); + + level waittill( self.upgrade_trigger.script_string ); + + self.upgrade_trigger.in_use = 1; + self.upgrade_trigger.is_available = 0; + + level.trapped_track["tower_upgrade"] = 1; + level notify( "tower_trap_upgraded" ); + level notify( "close_tower_trap_upgrade_panel" ); + self upgrade_tower_trap_weapon(); + + level waittill( "end_of_round" ); + + self tower_trap_weapon(); + self.upgrade_trigger notify( "afterlife_interact_reset" ); + self.upgrade_trigger notify( "available" ); + self.upgrade_trigger.in_use = 0; + self.upgrade_trigger.is_available = 1; + } +} + tower_trap_weapon() { self.weapon_name = "tower_trap_zm"; @@ -407,34 +431,4 @@ tower_trap_fires( a_zombies ) continue; } } -} - -tower_upgrade_trigger_think() -{ - self endon( "tower_trap_off" ); - - level waittill( self.upgrade_trigger.script_string ); - - self.upgrade_trigger.in_use = 1; - self.upgrade_trigger.is_available = 0; - - level.trapped_track["tower_upgrade"] = 1; - level notify( "tower_trap_upgraded" ); - level notify( "close_tower_trap_upgrade_panel" ); - self upgrade_tower_trap_weapon(); - self notify( "tower_trap_reset_timer" ); - self thread tower_trap_timer(); - - self thread tower_upgrade_reset_after_round(); -} - -tower_upgrade_reset_after_round() -{ - level waittill( "end_of_round" ); - - self tower_trap_weapon(); - self.upgrade_trigger notify( "afterlife_interact_reset" ); - self.upgrade_trigger notify( "available" ); - self.upgrade_trigger.in_use = 0; - self.upgrade_trigger.is_available = 1; } \ No newline at end of file