From cb054b5a1f2ce4527e9cc72e482fe20275cd1c85 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Thu, 28 Dec 2023 01:04:53 -0800 Subject: [PATCH] Brutus: no longer locks perks and the Mystery Box on Grief --- README.md | 3 +-- scripts/zm/replaced/_zm_ai_brutus.gsc | 38 ++++++++++++++++----------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ec4f33fa..cbae6344 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ ## Zombies * Health capped at 100,000 -* Decreased damage from 60 to 50 +* Decreased player damage from 60 to 50 * Changed height to 60 (normally either 48 or 72) * Increased damage taken to make a crawler from 10% of current health to 25% of current health * Amount of zombies scales linearly with the amount of players @@ -115,7 +115,6 @@ * No longer receives additional damage from Ray Gun Mark 2 * Teleports away less frequently * Grief: spawns every 4-6 minutes -* Grief: can lock perks and the Mystery Box ### Panzersoldat * No longer receives additional damage from Boomhilda or Ray Gun Mark 2 diff --git a/scripts/zm/replaced/_zm_ai_brutus.gsc b/scripts/zm/replaced/_zm_ai_brutus.gsc index 9067bf7d..cf632df2 100644 --- a/scripts/zm/replaced/_zm_ai_brutus.gsc +++ b/scripts/zm/replaced/_zm_ai_brutus.gsc @@ -68,11 +68,14 @@ init() registerclientfield("actor", "brutus_lock_down", 9000, 1, "int"); level thread maps\mp\zombies\_zm_ai_brutus::brutus_spawning_logic(); - level thread maps\mp\zombies\_zm_ai_brutus::get_brutus_interest_points(); + if (!level.brutus_in_grief) + { + level thread maps\mp\zombies\_zm_ai_brutus::get_brutus_interest_points(); - level.custom_perk_validation = maps\mp\zombies\_zm_ai_brutus::check_perk_machine_valid; - level.custom_craftable_validation = ::check_craftable_table_valid; - level.custom_plane_validation = maps\mp\zombies\_zm_ai_brutus::check_plane_valid; + level.custom_perk_validation = maps\mp\zombies\_zm_ai_brutus::check_perk_machine_valid; + level.custom_craftable_validation = ::check_craftable_table_valid; + level.custom_plane_validation = maps\mp\zombies\_zm_ai_brutus::check_plane_valid; + } } setup_interaction_matrix() @@ -335,7 +338,9 @@ brutus_find_flesh() player_zone = undefined; self.prev_zone = brutus_zone; - if (!isdefined(player)) + if (level.brutus_in_grief) + brutus_start_basic_find_flesh(); + else if (!isdefined(player)) self.priority_item = self get_priority_item_for_brutus(brutus_zone, 1); else { @@ -410,19 +415,22 @@ get_brutus_spawn_pos_val(brutus_pos) score += n_score_addition; } - interaction_types = getarraykeys(level.interaction_types); - interact_array = level.interaction_types; - - for (i = 0; i < interaction_types.size; i++) + if ( !level.brutus_in_grief ) { - int_type = interaction_types[i]; - interaction = interact_array[int_type]; - interact_points = [[interaction.get_func]](zone_name); + interaction_types = getarraykeys(level.interaction_types); + interact_array = level.interaction_types; - for (j = 0; j < interact_points.size; j++) + for (i = 0; i < interaction_types.size; i++) { - if (interact_points[j][[interaction.validity_func]]()) - score += interaction.spawn_bias; + int_type = interaction_types[i]; + interaction = interact_array[int_type]; + interact_points = [[interaction.get_func]](zone_name); + + for (j = 0; j < interact_points.size; j++) + { + if (interact_points[j][[interaction.validity_func]]()) + score += interaction.spawn_bias; + } } }