diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm index 48b542d0..a8588c58 100644 --- a/hyperstation/code/modules/resize/resizing.dm +++ b/hyperstation/code/modules/resize/resizing.dm @@ -108,7 +108,21 @@ mob/living/get_effective_size() sizediffBruteloss(tmob) return 1 -// if(src.a_inent == "grab"... goes here... WIP + 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) @@ -130,6 +144,11 @@ mob/living/get_effective_size() var/S = (get_effective_size()/tmob.get_effective_size()*25) //macro divided by micro, times 25 tmob.Knockdown(S) //final result in stamina knockdown +//Proc for scaling stuns on size difference (for grab intent) +/mob/living/proc/sizediffStun(var/mob/living/tmob) + var/T = (get_effective_size()/tmob.get_effective_size()*15) //Macro divided by micro, times 15 + tmob.Stun(T) + //Proc for scaling brute damage on size difference /mob/living/proc/sizediffBruteloss(var/mob/living/tmob) var/B = (get_effective_size()/tmob.get_effective_size()*2) //macro divided by micro, times 2