diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 4036bab9..8f02e79e 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -192,6 +192,8 @@ #define COMPONENT_NO_MOUSEDROP 1 #define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" + +#define COMSIG_MICRO_PICKUP_FEET "micro_force_grabbed" //From /datum/element/mob_holder/micro // /area signals ///from base of area/Entered(): (atom/movable/M) diff --git a/hyperstation/code/datums/elements/holder_micro.dm b/hyperstation/code/datums/elements/holder_micro.dm index 84940bcc..d784db0c 100644 --- a/hyperstation/code/datums/elements/holder_micro.dm +++ b/hyperstation/code/datums/elements/holder_micro.dm @@ -15,6 +15,13 @@ RegisterSignal(target, COMSIG_CLICK_ALT, .proc/mob_try_pickup_micro, override = TRUE) RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine, override = TRUE) + RegisterSignal(target, COMSIG_MICRO_PICKUP_FEET, .proc/mob_pickup_micro_feet) + +/datum/element/mob_holder/micro/Detach(datum/source, force) + . = ..() + UnregisterSignal(source, COMSIG_CLICK_ALT) + UnregisterSignal(source, COMSIG_PARENT_EXAMINE) + UnregisterSignal(source, COMSIG_MICRO_PICKUP_FEET) /datum/element/mob_holder/micro/proc/mob_pickup_micro(mob/living/source, mob/user) var/obj/item/clothing/head/mob_holder/micro/holder = new(get_turf(source), source, worn_state, alt_worn, right_hand, left_hand, inv_slots) diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm index 4ff4e9b0..a5621f14 100644 --- a/hyperstation/code/modules/resize/resizing.dm +++ b/hyperstation/code/modules/resize/resizing.dm @@ -162,10 +162,12 @@ mob/living/get_effective_size() else if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle") tmob.visible_message("[src] snatches up [tmob] underneath their tail!", "[src]'s tail winds around you and snatches you in its coils!") - //tmob.mob_pickup_micro_feet(H) //These two procs have been disabled. Hopefully temporarily. + //tmob.mob_pickup_micro_feet(H) + SEND_SIGNAL(tmob, COMSIG_MICRO_PICKUP_FEET, H) else tmob.visible_message("[src] stomps down on [tmob], curling their toes and picking them up!", "[src]'s toes pin you down and curl around you, picking you up!") //tmob.mob_pickup_micro_feet(H) + SEND_SIGNAL(tmob, COMSIG_MICRO_PICKUP_FEET, H) return 1 if(abs(tmob.get_effective_size()/get_effective_size()) >= 2)