diff --git a/code/datums/movement/mob.dm b/code/datums/movement/mob.dm index e464ade578a8a..17cf456106759 100644 --- a/code/datums/movement/mob.dm +++ b/code/datums/movement/mob.dm @@ -271,8 +271,18 @@ return // Something with pulling things - var/extra_delay = HandleGrabs(direction, old_turf) + // [SIERRA-EDIT] - SSINPUT + // var/extra_delay = HandleGrabs(direction, old_turf) // SIERRA-EDIT - ORIGINAL + // mob.ExtraMoveCooldown(extra_delay) // SIERRA-EDIT - ORIGINAL + var/extra_delay = 0 + for (var/obj/item/grab/G in mob) + if(G.assailant == G.affecting) + return + extra_delay = max(extra_delay, G.grab_slowdown()) + mob.ExtraMoveCooldown(extra_delay) + HandleGrabs(direction, old_turf) + // [/SIERRA-EDIT] for (var/obj/item/grab/G in mob) if (G.assailant_reverse_facing()) diff --git a/code/modules/mob/grab/grab_datum.dm b/code/modules/mob/grab/grab_datum.dm index 0a3850da87f3d..81678e9f17100 100644 --- a/code/modules/mob/grab/grab_datum.dm +++ b/code/modules/mob/grab/grab_datum.dm @@ -177,6 +177,9 @@ var/adir = get_dir(assailant, affecting) if(same_tile) + // [SIERRA-ADD] - SSINPUT + affecting.set_glide_size(assailant.glide_size) + // [/SIERRA-ADD] affecting.forceMove(assailant.loc) adir = assailant.dir affecting.set_dir(assailant.dir) diff --git a/mods/ssinput/README.md b/mods/ssinput/README.md index f997f046907d8..67d5577e6f49c 100644 --- a/mods/ssinput/README.md +++ b/mods/ssinput/README.md @@ -30,11 +30,13 @@ ID мода: SSINPUT - `code/__defines/subsystem-priority.dm`: `#define SS_PRIORITY_INPUT` - `code/__defines/subsystems.dm`: `#define SS_INIT_INPUT` - `code/_onclick/click.dm`: `/mob/proc/MiddleClickOn()` +- `code/datums/movement/mob.dm`: `/datum/movement_handler/mob/movement/DoMove()` - `code/game/objects/buckling.dm`: `/obj/Move()`, `/obj/forceMove()` - `code/game/verbs/ooc.dm`: `/client/verb/ooc()`, `/client/verb/looc()` - `code/modules/admin/callproc/callproc.dm`: `/client/Click()` - `code/modules/client/client_procs.dm`: `/client/New()`, `/client/verb/toggle_fullscreen()` - `code/modules/goonchat/browserOutput.dm`: `/datum/chatOutput/Topic()` +- `code/modules/mob/grab/grab_datum.dm`: `/datum/grab/proc/adjust_position()` - `code/modules/mob/living/silicon/robot/login.dm`: `/mob/living/silicon/robot/Login()` - `code/modules/mob/observer/ghost/ghost.dm`: `/mob/observer/ghost/appearance_flags` - `code/modules/mob/login.dm`: `/mob/Login()`