diff --git a/code/modules/mob/living/inhand_holder.dm b/code/modules/mob/living/inhand_holder.dm
index bd51e930..c91ec665 100644
--- a/code/modules/mob/living/inhand_holder.dm
+++ b/code/modules/mob/living/inhand_holder.dm
@@ -73,6 +73,15 @@
L.put_in_hands(holder)
return
+//shoehorned (get it?) and lazy way to do instant foot pickups cause haha funny.
+/mob/living/proc/mob_pickupfeet(mob/living/L)
+ var/obj/item/clothing/head/mob_holder/holder = generate_mob_holder()
+ if(!holder)
+ return
+ drop_all_held_items()
+ L.equip_to_slot(holder, SLOT_SHOES)
+ return
+
/mob/living/proc/mob_try_pickup(mob/living/user)
if(!ishuman(user) || !src.Adjacent(user) || user.incapacitated() || !can_be_held)
return FALSE
diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm
index a8588c58..2d161a5c 100644
--- a/hyperstation/code/modules/resize/resizing.dm
+++ b/hyperstation/code/modules/resize/resizing.dm
@@ -67,68 +67,86 @@ mob/living/get_effective_size()
now_pushing = 0
return 1
-//Stepping on disarm intent
+//Stepping on disarm intent -- TO DO, OPTIMIZE ALL OF THIS SHIT
/mob/living/proc/handle_micro_bump_other(var/mob/living/tmob)
ASSERT(isliving(tmob))
+ if(ishuman(src))
+ var/mob/living/carbon/human/H = src
//Both small
- if(src.get_effective_size() <= RESIZE_A_SMALLTINY && tmob.get_effective_size() <= RESIZE_A_SMALLTINY)
- now_pushing = 0
- src.forceMove(tmob.loc)
- return 1
-
- if(abs(get_effective_size()/tmob.get_effective_size()) >= 2)
- if(src.a_intent == "disarm" && src.canmove && !src.buckled)
+ if(H.get_effective_size() <= RESIZE_A_SMALLTINY && tmob.get_effective_size() <= RESIZE_A_SMALLTINY)
now_pushing = 0
- src.forceMove(tmob.loc)
- if(get_effective_size() > tmob.get_effective_size() && iscarbon(src))
- if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
- to_chat(src,"You carefully roll over [tmob] with your tail!")
- to_chat(tmob,"[src]'s huge tail rolls over you!")
- sizediffStamLoss(tmob)
- else
- to_chat(src,"You painfully but harmlessly step on [tmob]!")
- to_chat(tmob,"[src] steps onto you with force!")
- sizediffStamLoss(tmob)
- return 1
+ H.forceMove(tmob.loc)
+ return 1
- if(src.a_intent == "harm" && src.canmove && !src.buckled)
+ if(abs(get_effective_size()/tmob.get_effective_size()) >= 2)
+ if(H.a_intent == "disarm" && H.canmove && !H.buckled)
+ now_pushing = 0
+ H.forceMove(tmob.loc)
+ if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
+ if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
+ to_chat(H,"You carefully roll over [tmob] with your tail!")
+ to_chat(tmob,"[H]'s huge tail rolls over you!")
+ sizediffStamLoss(tmob)
+ else
+ to_chat(H,"You painfully but harmlessly step on [tmob]!")
+ to_chat(tmob,"[H] steps onto you with force!")
+ sizediffStamLoss(tmob)
+ return 1
+
+ if(H.a_intent == "harm" && H.canmove && !H.buckled)
+ now_pushing = 0
+ H.forceMove(tmob.loc)
+ if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
+ if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
+ to_chat(H,"You grind [tmob] into the floor with your tail!")
+ to_chat(tmob,"[H]'s massive tail plows you into the floor!")
+ sizediffStamLoss(tmob)
+ sizediffBruteloss(tmob)
+ else
+ to_chat(H,"You pound [tmob] into the floor underfoot!")
+ to_chat(tmob,"[H] slams you into the ground, crushing you!")
+ sizediffStamLoss(tmob)
+ sizediffBruteloss(tmob)
+ return 1
+
+ if(H.a_intent == "grab" && H.canmove && !H.buckled)
+ now_pushing = 0
+ H.forceMove(tmob.loc)
+ if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
+ var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET) || (H.shoes && (H.shoes.body_parts_covered & FEET)))
+ if(feetCover)
+ if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
+ to_chat(H,"You pin [tmob] underneath your tail!")
+ to_chat(tmob,"[H]'s plows you into the ground, pinning you helplessly!")
+ sizediffStamLoss(tmob)
+ sizediffStun(tmob)
+ else
+ to_chat(H,"You pin [tmob] helplessly to the floor with your foot!")
+ to_chat(tmob,"[H] weightfully pins you to the ground!")
+ sizediffStamLoss(tmob)
+ sizediffStun(tmob)
+ return 1
+ else
+ if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
+ to_chat(H,"You curl [tmob] up in the coils of your tail!")
+ to_chat(tmob,"[H]'s tail winds around you and snatches you in its coils!")
+ sizediffStamLoss(tmob)
+ sizediffStun(tmob)
+ tmob.mob_pickupfeet(H)
+ else
+ to_chat(H,"You stomp your foot into [tmob], curling your toes and picking them up!")
+ to_chat(tmob,"span class='danger'>[H]'s toes pin you down and curl around you, picking you up!'")
+ sizediffStamLoss(tmob)
+ sizediffStun(tmob)
+ tmob.mob_pickupfeet(H)
+ return 1
+
+ if(tmob.get_effective_size() > get_effective_size())
+ micro_step_under(tmob)
+ H.forceMove(tmob.loc)
now_pushing = 0
- src.forceMove(tmob.loc)
- if(get_effective_size() > tmob.get_effective_size() && iscarbon(src))
- if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
- to_chat(src,"You grind [tmob] into the floor with your tail!")
- to_chat(tmob,"[src]'s massive tail plows you into the floor!")
- sizediffStamLoss(tmob)
- sizediffBruteloss(tmob)
- else
- to_chat(src,"You pound [tmob] into the floor underfoot!")
- to_chat(tmob,"[src] slams you into the ground, crushing you!")
- sizediffStamLoss(tmob)
- sizediffBruteloss(tmob)
- return 1
-
- if(src.a_intent == "grab" && src.canmove && !src.buckled)
- now_pushing = 0
- src.forceMove(tmob.loc)
- if(get_effective_size() > tmob.get_effective_size() && iscarbon(src))
- if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
- to_chat(src,"You curl [tmob] up into your tail!")
- to_chat(tmob,"[src]'s massive tail catches you and wraps around you!")
- sizediffStamLoss(tmob)
- sizediffStun(tmob)
- else
- to_chat(src,"You pin [tmob] helplessly to the floor with your foot!")
- to_chat(tmob,"[src] weightfully pins you to the ground!")
- sizediffStamLoss(tmob)
- sizediffStun(tmob)
- return 1
-
- if(tmob.get_effective_size() > get_effective_size())
- micro_step_under(tmob)
- src.forceMove(tmob.loc)
- now_pushing = 0
- return 1
+ return 1
//smaller person stepping under another person
/mob/living/proc/micro_step_under(var/mob/living/tmob)