From 3959de6eb778390294a52333e22016b4285de317 Mon Sep 17 00:00:00 2001 From: GDN <96800819+GDNgit@users.noreply.github.com> Date: Sat, 15 Apr 2023 14:59:43 -0500 Subject: [PATCH] Changes hardstuns on vendor shoves to be reduced, removes vendor chaining (#20631) * Update vending.dm * flatskrell.net * charlie's request --- code/__HELPERS/traits.dm | 1 + code/_globalvars/traits.dm | 3 ++- code/datums/components/squish.dm | 3 ++- code/game/machinery/vendors/vending.dm | 6 +++++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm index 7bd16243633..44dfa43fc80 100644 --- a/code/__HELPERS/traits.dm +++ b/code/__HELPERS/traits.dm @@ -199,6 +199,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ELITE_CHALLENGER "elite_challenger" #define TRAIT_SOAPY_MOUTH "soapy_mouth" #define TRAIT_UNREVIVABLE "unrevivable" // Prevents changeling revival +#define TRAIT_FLATTENED "flattened" //***** ITEM AND MOB TRAITS *****// /// Show what machine/door wires do when held. diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 5889271442c..d4afd981894 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -71,7 +71,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SOAPY_MOUTH" = TRAIT_SOAPY_MOUTH, "TRAIT_UNREVIVABLE" = TRAIT_UNREVIVABLE, "TRAIT_SHOW_WIRE_INFO" = TRAIT_SHOW_WIRE_INFO, - "TRAIT_CAN_BE_EATEN_BY_LIZARDS" = TRAIT_EDIBLE_BUG + "TRAIT_CAN_BE_EATEN_BY_LIZARDS" = TRAIT_EDIBLE_BUG, + "TRAIT_FLATTENED" = TRAIT_FLATTENED ), /obj/item = list( "TRAIT_SHOW_WIRE_INFO" = TRAIT_SHOW_WIRE_INFO, diff --git a/code/datums/components/squish.dm b/code/datums/components/squish.dm index 232c584dae0..364b12f680c 100644 --- a/code/datums/components/squish.dm +++ b/code/datums/components/squish.dm @@ -19,6 +19,7 @@ var/mob/living/carbon/C = target var/was_lying = C.body_position == LYING_DOWN addtimer(CALLBACK(src, PROC_REF(Detach), C, was_lying, reverse), duration) + ADD_TRAIT(target, TRAIT_FLATTENED, "vendor_flattening") if(reverse) C.transform = C.transform.Scale(SHORT_SCALE, TALL_SCALE) @@ -30,7 +31,7 @@ if(!istype(C)) return var/is_lying = C.body_position == LYING_DOWN - + REMOVE_TRAIT(C, TRAIT_FLATTENED, "vendor_flattening") if(reverse) is_lying = !is_lying diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index c76e6ba1e81..396478cc116 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -1014,11 +1014,14 @@ // Damage to deal outright var/damage_to_deal = squish_damage if(!from_combat) + L.Weaken(6 SECONDS) if(crit) // increase damage if you knock it over onto yourself damage_to_deal *= crit_damage_factor else damage_to_deal *= self_knockover_factor + else + L.Weaken(4 SECONDS) if(iscarbon(L)) var/throw_spec = handle_squish_carbon(victim, damage_to_deal, crit, from_combat) @@ -1039,7 +1042,6 @@ add_attack_logs(null, L, "crushed by [src]") . = TRUE - L.Weaken(6 SECONDS) L.KnockDown(12 SECONDS) playsound(L, "sound/effects/blobattack.ogg", 40, TRUE) @@ -1083,6 +1085,8 @@ transform = M /obj/machinery/economy/vending/shove_impact(mob/living/target, mob/living/attacker) + if(HAS_TRAIT(target, TRAIT_FLATTENED)) + return add_attack_logs(attacker, target, "shoved into a vending machine ([src])") tilt(target, from_combat = TRUE) return TRUE