diff --git a/README.md b/README.md index d15cbd54..b006e8b7 100644 --- a/README.md +++ b/README.md @@ -384,7 +384,7 @@ * No longer needs to be powered by a Turbine * Gets destroyed after being deployed for 30 seconds * Kills on any round (normally stops killing after round 50) -* Can kill unlimited zombies at once +* Kills zombies instantly * No longer kills players without Juggernog instantly * Decreased player damage from 75 to 25 * Decreased player shellshock time from 2.5 seconds to 1.25 seconds @@ -522,6 +522,9 @@ * Plane reappears immediately after coming back from the Golden Gate Bridge * Key no longer shows on HUD * Acid Trap: kills on any round (normally stops killing after round 158 on PC) +* Acid Trap: kills zombies instantly +* Acid Trap: decreased player damage from 75% of max health to 50% of max health +* Acid Trap: increased time between player damage from 1 second to 1.5 seconds * Tower Trap: kills on any round in 1 shot * Tower Trap (upgraded): kills on any round in 1 shot * Tower Trap (upgraded): stays upgraded until the end of the round diff --git a/scripts/zm/replaced/zm_alcatraz_traps.gsc b/scripts/zm/replaced/zm_alcatraz_traps.gsc index b1ea5d18..ce22ed02 100644 --- a/scripts/zm/replaced/zm_alcatraz_traps.gsc +++ b/scripts/zm/replaced/zm_alcatraz_traps.gsc @@ -9,6 +9,45 @@ #include maps\mp\zombies\_zm_ai_brutus; #include maps\mp\zm_alcatraz_traps; +zombie_acid_damage() +{ + self endon( "death" ); + self setclientfield( "acid_trap_death_fx", 1 ); + + if ( !isdefined( self.is_brutus ) ) + { + self.a.gib_ref = random( array( "right_arm", "left_arm", "head", "right_leg", "left_leg", "no_legs" ) ); + self thread maps\mp\animscripts\zm_death::do_gib(); + } + + self dodamage( self.health + 1000, self.origin ); +} + +player_acid_damage( t_damage ) +{ + self endon( "death" ); + self endon( "disconnect" ); + t_damage endon( "acid_trap_finished" ); + + if ( !isdefined( self.is_in_acid ) && !self player_is_in_laststand() ) + { + self.is_in_acid = 1; + self thread player_acid_damage_cooldown(); + + self dodamage( self.maxhealth / 2, self.origin, t_damage, t_damage, "none", "MOD_UNKNOWN", 0, "none" ); + wait 1.5; + } +} + +player_acid_damage_cooldown() +{ + self endon( "disconnect" ); + wait 1.5; + + if ( isdefined( self ) ) + self.is_in_acid = undefined; +} + tower_trap_trigger_think() { self.range_trigger = getent( self.target, "targetname" ); diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index 4dde85a1..8d4f5372 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -29,6 +29,8 @@ main() replaceFunc(maps\mp\zm_alcatraz_utility::blundergat_upgrade_station, scripts\zm\replaced\zm_alcatraz_utility::blundergat_upgrade_station); replaceFunc(maps\mp\zm_alcatraz_sq::track_quest_status_thread, scripts\zm\replaced\zm_alcatraz_sq::track_quest_status_thread); replaceFunc(maps\mp\zm_alcatraz_sq::plane_flight_thread, scripts\zm\replaced\zm_alcatraz_sq::plane_flight_thread); + replaceFunc(maps\mp\zm_alcatraz_traps::zombie_acid_damage, scripts\zm\replaced\zm_alcatraz_traps::zombie_acid_damage); + replaceFunc(maps\mp\zm_alcatraz_traps::player_acid_damage, scripts\zm\replaced\zm_alcatraz_traps::player_acid_damage); replaceFunc(maps\mp\zm_alcatraz_traps::tower_trap_trigger_think, scripts\zm\replaced\zm_alcatraz_traps::tower_trap_trigger_think); replaceFunc(maps\mp\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager, scripts\zm\replaced\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager); replaceFunc(maps\mp\zombies\_zm_afterlife::afterlife_add, scripts\zm\replaced\_zm_afterlife::afterlife_add);