diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 925f3055..1e97d4d3 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -61,16 +61,28 @@ if(client.keys_held["Ctrl"]) switch(SSinput.movement_keys[_key]) if(NORTH) - northface() + if(client.keys_held["Shift"]) + northshift() + else + northface() return if(SOUTH) - southface() + if(client.keys_held["Shift"]) + southshift() + else + southface() return if(WEST) - westface() + if(client.keys_held["Shift"]) + westshift() + else + westface() return if(EAST) - eastface() + if(client.keys_held["Shift"]) + eastshift() + else + eastface() return return ..() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 1716d313..b051b59e 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -1,6 +1,10 @@ /mob/living/Moved() . = ..() update_turf_movespeed(loc) + if(is_shifted) + is_shifted = FALSE + pixel_x = get_standard_pixel_x_offset(lying) + pixel_y = get_standard_pixel_y_offset(lying) /mob/living/toggle_move_intent() . = ..() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 0cb886f1..4f804dd8 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -38,6 +38,7 @@ var/lying = 0 var/lying_prev = 0 var/canmove = 1 + var/is_shifted = FALSE //MOVEMENT SPEED var/list/movespeed_modification //Lazy list, see mob_movespeed.dm diff --git a/hyperstation/icons/obj/bluespace_thread.dmi b/hyperstation/icons/obj/bluespace_thread.dmi index 5edd54e1..8a2a4835 100644 Binary files a/hyperstation/icons/obj/bluespace_thread.dmi and b/hyperstation/icons/obj/bluespace_thread.dmi differ diff --git a/hyperstation/icons/obj/condom.dmi b/hyperstation/icons/obj/condom.dmi index cf74d737..afbec2df 100644 Binary files a/hyperstation/icons/obj/condom.dmi and b/hyperstation/icons/obj/condom.dmi differ diff --git a/modular_citadel/code/modules/mob/mob.dm b/modular_citadel/code/modules/mob/mob.dm index bf6987ab..e2e90ce9 100644 --- a/modular_citadel/code/modules/mob/mob.dm +++ b/modular_citadel/code/modules/mob/mob.dm @@ -23,3 +23,35 @@ var/turf/sourceturf = get_turf(src) if(istype(speakturf) && istype(sourceturf) && !(speakturf in get_hear(5, sourceturf))) . = "[.]" //Don't ask how the fuck this works. It just does. + +/mob/verb/eastshift() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_x <= 16) + pixel_x++ + is_shifted = TRUE + +/mob/verb/westshift() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_x >= -16) + pixel_x-- + is_shifted = TRUE + +/mob/verb/northshift() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_y <= 16) + pixel_y++ + is_shifted = TRUE + +/mob/verb/southshift() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_y >= -16) + pixel_y-- + is_shifted = TRUE \ No newline at end of file