From b55cd63aeade0141ee78cec349c52fff87e69ce4 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Thu, 30 Mar 2023 18:45:51 -0700 Subject: [PATCH] Origins: golden shovel and helmet changes --- README.md | 2 + scripts/zm/replaced/zm_tomb_dig.gsc | 100 ++++++++++++++++++++++ scripts/zm/zm_tomb/zm_tomb_reimagined.gsc | 1 + 3 files changed, 103 insertions(+) diff --git a/README.md b/README.md index df4148ae..bed7825b 100644 --- a/README.md +++ b/README.md @@ -580,6 +580,8 @@ * Der Wunderfizz: all perks have an equal chance of being obtained * Rituals of the Ancients: spend points challenge reward changed from Double Tap perk to a random perk that the player does not have (perk does not change if reward is reopened) * Soul boxes: decreased kill requirement from 30 to 20 +* Dig spots: decreased number of digs to obtain golden shovel from 30 to 20 +* Dig spots: changed number of digs to obtain golden helmet to 40 (normally 5% chance to obtain after obtaining golden shovel) * Perk bottle dig spots: give random perk * Perk bottle dig spots: visible and diggable without Zombie Blood * Perk bottle dig spots: increased number of rounds for next dig spot to spawn from 1 to 4 diff --git a/scripts/zm/replaced/zm_tomb_dig.gsc b/scripts/zm/replaced/zm_tomb_dig.gsc index d53e167d..8aa897fa 100644 --- a/scripts/zm/replaced/zm_tomb_dig.gsc +++ b/scripts/zm/replaced/zm_tomb_dig.gsc @@ -58,6 +58,106 @@ dig_disconnect_watch( n_player ) level setclientfield( "helmet_player" + n_player, 0 ); } +waittill_dug( s_dig_spot ) +{ + while ( true ) + { + self waittill( "trigger", player ); + + if ( isdefined( player.dig_vars["has_shovel"] ) && player.dig_vars["has_shovel"] ) + { + player playsound( "evt_dig" ); + s_dig_spot.dug = 1; + level.n_dig_spots_cur--; + playfx( level._effect["digging"], self.origin ); + player setclientfieldtoplayer( "player_rumble_and_shake", 1 ); + player maps\mp\zombies\_zm_stats::increment_client_stat( "tomb_dig", 0 ); + player maps\mp\zombies\_zm_stats::increment_player_stat( "tomb_dig" ); + s_staff_piece = s_dig_spot maps\mp\zm_tomb_main_quest::dig_spot_get_staff_piece( player ); + + if ( isdefined( s_staff_piece ) ) + { + s_staff_piece maps\mp\zm_tomb_main_quest::show_ice_staff_piece( self.origin ); + player dig_reward_dialog( "dig_staff_part" ); + } + else + { + n_good_chance = 50; + + if ( player.dig_vars["n_spots_dug"] == 0 || player.dig_vars["n_losing_streak"] == 3 ) + { + player.dig_vars["n_losing_streak"] = 0; + n_good_chance = 100; + } + + if ( player.dig_vars["has_upgraded_shovel"] ) + { + if ( !player.dig_vars["has_helmet"] ) + { + player.dig_vars["n_spots_dug"]++; + + if ( player.dig_vars["n_spots_dug"] >= 40 ) + { + player.dig_vars["has_helmet"] = 1; + n_player = player getentitynumber() + 1; + level setclientfield( "helmet_player" + n_player, 1 ); + player playsoundtoplayer( "zmb_squest_golden_anything", player ); + player maps\mp\zombies\_zm_stats::increment_client_stat( "tomb_golden_hard_hat", 0 ); + player maps\mp\zombies\_zm_stats::increment_player_stat( "tomb_golden_hard_hat" ); + return; + } + } + + n_good_chance = 70; + } + + n_prize_roll = randomint( 100 ); + + if ( n_prize_roll > n_good_chance ) + { + if ( cointoss() ) + { + player dig_reward_dialog( "dig_grenade" ); + self thread dig_up_grenade( player ); + } + else + { + player dig_reward_dialog( "dig_zombie" ); + self thread dig_up_zombie( player, s_dig_spot ); + } + + player.dig_vars["n_losing_streak"]++; + } + else if ( cointoss() ) + self thread dig_up_powerup( player ); + else + { + player dig_reward_dialog( "dig_gun" ); + self thread dig_up_weapon( player ); + } + } + + if ( !player.dig_vars["has_upgraded_shovel"] ) + { + player.dig_vars["n_spots_dug"]++; + + if ( player.dig_vars["n_spots_dug"] >= 20 ) + { + player.dig_vars["has_upgraded_shovel"] = 1; + player thread ee_zombie_blood_dig(); + n_player = player getentitynumber() + 1; + level setclientfield( "shovel_player" + n_player, 2 ); + player playsoundtoplayer( "zmb_squest_golden_anything", player ); + player maps\mp\zombies\_zm_stats::increment_client_stat( "tomb_golden_shovel", 0 ); + player maps\mp\zombies\_zm_stats::increment_player_stat( "tomb_golden_shovel" ); + } + } + + return; + } + } +} + increment_player_perk_purchase_limit() { self maps\mp\zombies\_zm_perks::give_random_perk(); diff --git a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc index 22dc8846..7356fae1 100644 --- a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc +++ b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc @@ -42,6 +42,7 @@ main() replaceFunc(maps\mp\zm_tomb_craftables::init_craftables, scripts\zm\replaced\zm_tomb_craftables::init_craftables); replaceFunc(maps\mp\zm_tomb_craftables::include_craftables, scripts\zm\replaced\zm_tomb_craftables::include_craftables); replaceFunc(maps\mp\zm_tomb_dig::init_shovel, scripts\zm\replaced\zm_tomb_dig::init_shovel); + replaceFunc(maps\mp\zm_tomb_dig::waittill_dug, scripts\zm\replaced\zm_tomb_dig::waittill_dug); replaceFunc(maps\mp\zm_tomb_dig::increment_player_perk_purchase_limit, scripts\zm\replaced\zm_tomb_dig::increment_player_perk_purchase_limit); replaceFunc(maps\mp\zm_tomb_giant_robot::robot_cycling, scripts\zm\replaced\zm_tomb_giant_robot::robot_cycling); replaceFunc(maps\mp\zm_tomb_tank::players_on_tank_update, scripts\zm\replaced\zm_tomb_tank::players_on_tank_update);