diff --git a/README.md b/README.md index 324e888e..1b003eb3 100644 --- a/README.md +++ b/README.md @@ -491,6 +491,7 @@ * Grief: added Smoke Grenades to the Mystery Box * Grief: added Richtofen's Head meat powerup model * Fixed being able to hit a death barrier when jumping off the Upper Docks +* Fixed locked hint string not showing on Blundergat Upgrade buildable table #### Docks * Added Grief game mode diff --git a/scripts/zm/replaced/_zm_ai_brutus.gsc b/scripts/zm/replaced/_zm_ai_brutus.gsc index f9350f31..88c93855 100644 --- a/scripts/zm/replaced/_zm_ai_brutus.gsc +++ b/scripts/zm/replaced/_zm_ai_brutus.gsc @@ -71,7 +71,7 @@ init() 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 = maps\mp\zombies\_zm_ai_brutus::check_craftable_table_valid; + level.custom_craftable_validation = ::check_craftable_table_valid; level.custom_plane_validation = maps\mp\zombies\_zm_ai_brutus::check_plane_valid; } @@ -179,6 +179,51 @@ setup_interaction_matrix() } } +craftable_table_lock() +{ + self endon( "death" ); + table_struct = self.priority_item; + + if ( !isdefined( table_struct ) ) + { + return; + } + + craftable_table = table_struct get_trigger_for_craftable(); + int_struct = level.interaction_types["craftable_table"]; + craftable_table.lock_fx = spawn( "script_model", table_struct.origin ); + craftable_table.lock_fx.angles = table_struct.angles; + craftable_table.lock_fx = offset_fx_struct( int_struct, craftable_table.lock_fx ); + craftable_table.lock_fx setmodel( "tag_origin" ); + playfxontag( level._effect["brutus_lockdown_lg"], craftable_table.lock_fx, "tag_origin" ); + craftable_table.lock_fx playsound( "zmb_ai_brutus_clang" ); + craftable_table.is_locked = 1; + craftable_table.locked_cost = get_scaling_lock_cost( "craftable_table", craftable_table ); + craftable_table.hint_string = get_lock_hint_string( craftable_table.locked_cost ); + + if ( !isdefined( craftable_table.equipname ) ) + { + craftable_table sethintstring( craftable_table.hint_string ); + } + + if ( isdefined( craftable_table.targetname ) && craftable_table.targetname == "blundergat_upgrade" ) + { + level.lockdown_track["craft_kit"] = 1; + + t_upgrade = getent( "blundergat_upgrade", "targetname" ); + t_upgrade.is_locked = 1; + t_upgrade sethintstring( craftable_table.hint_string ); + } + + if ( isdefined( craftable_table.weaponname ) && craftable_table.weaponname == "alcatraz_shield_zm" ) + { + level.lockdown_track["craft_shield"] = 1; + } + + level notify( "brutus_locked_object" ); + self.priority_item = undefined; +} + brutus_find_flesh() { self endon( "death" ); diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index a84759ac..ddfab967 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -611,7 +611,7 @@ craftabletrigger_update_prompt( player ) { can_use = self.stub craftablestub_update_prompt( player ); - if (can_use && is_true(self.stub.crafted)) + if (can_use && is_true(self.stub.crafted) && !is_true(self.stub.is_locked)) { self sethintstring( self.stub.hint_string, " [Cost: " + self.stub.cost + "]" ); }