From 3bc5c3c2a286531dc267b56cf2a58ec6bcee0211 Mon Sep 17 00:00:00 2001 From: vincibrv Date: Sat, 8 Mar 2025 09:43:53 +0100 Subject: [PATCH] updates climbing changes --- code/game/turfs/open_space.dm | 20 +++++++++++++++++++- code/game/turfs/turf.dm | 13 ++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index e7fc7c13371a..cdcc13e3539c 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -18,6 +18,12 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr ADD_TRAIT(src, TURF_Z_TRANSPARENT_TRAIT, TRAIT_SOURCE_INHERENT) return INITIALIZE_HINT_LATELOAD +/turf/open_space/attack_alien(mob/user) + attack_hand(user) + +/turf/open_space/attack_hand(mob/user) + climb_down(user) + /turf/open_space/Entered(atom/movable/entered_movable, atom/old_loc) . = ..() @@ -35,9 +41,21 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr if(!istype(current_turf, /turf/open_space)) return + var/climb_down_time = 1 SECONDS + + if(ishuman_strict(user)) + climb_down_time = 2.5 SECONDS + + if(isxeno(user)) + var/mob/living/carbon/xenomorph/xeno_victim = user + if(xeno_victim.mob_size >= MOB_SIZE_BIG) + climb_down_time = 3 SECONDS + else + climb_down_time = 1.5 SECONDS + user.visible_message(SPAN_WARNING("[user] starts climbing down."), SPAN_WARNING("You start climbing down.")) - if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + if(!do_after(user, climb_down_time, INTERRUPT_ALL, BUSY_ICON_GENERIC)) to_chat(user, SPAN_WARNING("You were interrupted!")) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index d769a07905bd..78e9954fc6b9 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -974,15 +974,14 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( found_rleg?.fracture(100 * fracture_modifier) found_lleg?.fracture(100 * fracture_modifier) - if(isxeno(victim) && victim.mob_size >= MOB_SIZE_BIG) + if(isxeno(victim)) var/mob/living/carbon/xenomorph/xeno_victim = victim if(stun_modifier > 0) - xeno_victim.KnockDown(5 * height * stun_modifier) - xeno_victim.Stun(5 * height * stun_modifier) - - if (damage_modifier > 0) - var/total_damage = ((60 * height) ** 1.3) * damage_modifier - xeno_victim.apply_damage(total_damage / 2, BRUTE) + var/base_stun_duration = 2 + if(xeno_victim.mob_size >= MOB_SIZE_BIG) + base_stun_duration = 5 + xeno_victim.KnockDown(base_stun_duration * height * stun_modifier) + xeno_victim.Stun(base_stun_duration * height * stun_modifier) if(damage_modifier > 0.5) playsound(loc, "slam", 50, 1)