1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-12 08:08:00 -05:00
Files
BO2-Reimagined/scripts/zm/replaced/zm_tomb_dig.gsc
2023-03-30 18:45:51 -07:00

164 lines
6.3 KiB
Plaintext

#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\zombies\_zm_utility;
#include maps\mp\zombies\_zm_unitrigger;
#include maps\mp\zm_tomb_utility;
#include maps\mp\zombies\_zm_audio;
#include maps\mp\zombies\_zm_audio_announcer;
#include maps\mp\zombies\_zm_zonemgr;
#include maps\mp\zombies\_zm_stats;
#include maps\mp\zm_tomb_main_quest;
#include maps\mp\zombies\_zm_powerups;
#include maps\mp\zombies\_zm_weap_claymore;
#include maps\mp\zombies\_zm_powerup_zombie_blood;
#include maps\mp\zm_tomb_dig;
init_shovel()
{
precachemodel( "p6_zm_tm_dig_mound" );
precachemodel( "p6_zm_tm_dig_mound_blood" );
precachemodel( "p6_zm_tm_shovel" );
precachemodel( "zombie_pickup_perk_bottle" );
precachemodel( "t6_wpn_claymore_world" );
maps\mp\zombies\_zm_audio_announcer::createvox( "blood_money", "powerup_blood_money" );
onplayerconnect_callback( ::init_shovel_player );
level.get_player_perk_purchase_limit = ::get_player_perk_purchase_limit;
level.bonus_points_powerup_override = ::bonus_points_powerup_override;
level thread dig_powerups_tracking();
level thread dig_spots_init();
registerclientfield( "world", "shovel_player1", 14000, 2, "int", undefined, 0 );
registerclientfield( "world", "shovel_player2", 14000, 2, "int", undefined, 0 );
registerclientfield( "world", "shovel_player3", 14000, 2, "int", undefined, 0 );
registerclientfield( "world", "shovel_player4", 14000, 2, "int", undefined, 0 );
registerclientfield( "world", "helmet_player1", 14000, 1, "int", undefined, 0 );
registerclientfield( "world", "helmet_player2", 14000, 1, "int", undefined, 0 );
registerclientfield( "world", "helmet_player3", 14000, 1, "int", undefined, 0 );
registerclientfield( "world", "helmet_player4", 14000, 1, "int", undefined, 0 );
}
init_shovel_player()
{
self.dig_vars["has_shovel"] = 1;
self.dig_vars["has_upgraded_shovel"] = 0;
self.dig_vars["has_helmet"] = 0;
self.dig_vars["n_spots_dug"] = 0;
self.dig_vars["n_losing_streak"] = 0;
n_player = self getentitynumber() + 1;
level setclientfield( "shovel_player" + n_player, 1 );
self thread dig_disconnect_watch( n_player );
}
dig_disconnect_watch( n_player )
{
self waittill( "disconnect" );
level setclientfield( "shovel_player" + n_player, 0 );
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();
}