From dcae40e4e656741a5dacfef7b94a9a8afd943509 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Sun, 13 Apr 2025 06:58:43 +0200 Subject: [PATCH] Invisible walls can be leaned on (#90564) By dragging yourself onto a tile with an invisible wall on it, you can lean on one. --- code/datums/components/leanable.dm | 2 +- code/game/objects/effects/forcefields.dm | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/code/datums/components/leanable.dm b/code/datums/components/leanable.dm index 2f11bacc8eb..ec88303fce2 100644 --- a/code/datums/components/leanable.dm +++ b/code/datums/components/leanable.dm @@ -1,4 +1,4 @@ -/// Things with this component can be leaned onto, optionally exclusive to RMB dragging +/// Things with this component can be leaned onto /datum/component/leanable /// How much will mobs that lean onto this object be offset var/leaning_offset = 11 diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index bc9f8a0bfd6..377bf58fda6 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -62,6 +62,24 @@ desc = "You have a bad feeling about this." alpha = 0 +/obj/effect/forcefield/mime/Initialize(mapload) + . = ..() + var/static/list/loc_connections = list( + COMSIG_MOUSEDROPPED_ONTO = PROC_REF(mousedrop_receive), + ) + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/effect/forcefield/mime/proc/mousedrop_receive(atom/source, atom/movable/dropped, mob/user, params) + SIGNAL_HANDLER + // Reroute the call to ourselves so leanable component can trigger + if (dropped == user) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom, mouse_drop_receive), dropped, user, params) + return COMPONENT_CANCEL_MOUSEDROPPED_ONTO + +/obj/effect/forcefield/mime/mouse_drop_receive(mob/living/dropping, mob/user, params) + . = ..() + LoadComponent(/datum/component/leanable, dropping) + /obj/effect/forcefield/mime/advanced name = "invisible blockade" desc = "You're gonna be here awhile."