diff --git a/README.md b/README.md index bdae7310..97491233 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,9 @@ * Plane fuel automatically picked up * Players no longer respawn in the Acid Trap +#### Cell Block +* Added Smoke Grenades to the Mystery Box + ### Buried * Power automatically on * Removed Turbine diff --git a/scripts/zm/main/_zm_reimagined_zgrief.gsc b/scripts/zm/main/_zm_reimagined_zgrief.gsc index ffd076e7..94fc8c50 100644 --- a/scripts/zm/main/_zm_reimagined_zgrief.gsc +++ b/scripts/zm/main/_zm_reimagined_zgrief.gsc @@ -47,6 +47,12 @@ init() setroundsplayed(level.round_number); // don't show first round animation + if(isDefined(level.zombie_weapons["willy_pete_zm"])) + { + register_tactical_grenade_for_level( "willy_pete_zm" ); + level.zombie_weapons["willy_pete_zm"].is_in_box = 1; + } + borough_move_quickrevive_machine(); borough_move_speedcola_machine(); borough_move_staminup_machine(); @@ -200,6 +206,7 @@ grief_onplayerconnect() self thread on_player_bleedout(); self thread on_player_revived(); self thread headstomp_watcher(); + self thread smoke_grenade_cluster_watcher(); self thread maps/mp/gametypes_zm/zmeat::create_item_meat_watcher(); self.killsconfirmed = 0; } @@ -385,6 +392,36 @@ headstomp_watcher() } } +smoke_grenade_cluster_watcher() +{ + self endon("disconnect"); + + while(1) + { + self waittill("grenade_fire", grenade, weapname); + + if(weapname == "willy_pete_zm" && !isDefined(self.smoke_grenade_cluster)) + { + grenade thread smoke_grenade_cluster(self); + } + } +} + +smoke_grenade_cluster(owner) +{ + self waittill("explode", pos); + + playsoundatposition( "zmb_land_meat", pos ); + + owner.smoke_grenade_cluster = true; + owner magicgrenadetype( "willy_pete_zm", pos, (0, 0, 0), 0 ); + owner magicgrenadetype( "willy_pete_zm", pos, (0, 0, 0), 0 ); + + wait 0.05; + + owner.smoke_grenade_cluster = undefined; +} + round_start_wait(time, initial) { level endon("end_game");