mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-10 07:30:36 +01:00
Grab and Drag Animations
Grab and Drag Animations, allowing players to see whos dragging who, via a pixel shift.
This commit is contained in:
@@ -45,7 +45,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -109,7 +109,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -132,7 +132,7 @@
|
||||
piping_layer = PIPING_LAYER_MAX
|
||||
pixel_x = PIPING_LAYER_P_X
|
||||
pixel_y = PIPING_LAYER_P_Y
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/supplymain
|
||||
name="main air supply pipe"
|
||||
pipe_color=rgb(130,43,255)
|
||||
@@ -141,7 +141,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/supplymain/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/supplymain/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -172,7 +172,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/yellow/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/yellow/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/yellow/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/yellow/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -203,7 +203,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -216,7 +216,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -234,7 +234,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/green/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/green/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/green/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -265,7 +265,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -278,7 +278,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -296,7 +296,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/purple/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/purple/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -309,7 +309,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/purple/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/purple/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -327,7 +327,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/dark/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/dark/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -340,7 +340,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/dark/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -358,7 +358,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/violet/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/violet/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -371,7 +371,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/violet/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/violet/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -389,7 +389,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/brown/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/brown/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -402,7 +402,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/brown/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
icon_state = "manifold4w_center[invis]"
|
||||
|
||||
cut_overlays()
|
||||
|
||||
//Add non-broken pieces
|
||||
for(var/i in 1 to device_type)
|
||||
if(nodes[i])
|
||||
@@ -36,7 +35,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/general/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/general/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -49,7 +48,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/general/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/general/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -81,7 +80,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -100,7 +99,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -123,7 +122,7 @@
|
||||
piping_layer = PIPING_LAYER_MAX
|
||||
pixel_x = PIPING_LAYER_P_X
|
||||
pixel_y = PIPING_LAYER_P_Y
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supplymain
|
||||
name="main air supply pipe"
|
||||
pipe_color=rgb(130,43,255)
|
||||
@@ -132,7 +131,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -145,7 +144,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -163,7 +162,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -176,7 +175,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -194,7 +193,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -207,7 +206,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -225,7 +224,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/green/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/green/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -238,7 +237,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/green/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/green/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -256,7 +255,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/orange/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/orange/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -269,7 +268,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -287,7 +286,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/purple/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/purple/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -300,7 +299,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/purple/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/purple/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -318,7 +317,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/dark/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/dark/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -331,7 +330,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/dark/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/dark/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -349,7 +348,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/violet/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/violet/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -362,7 +361,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/violet/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/violet/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -380,7 +379,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/brown/visible
|
||||
level = PIPE_VISIBLE_LEVEL
|
||||
layer = GAS_PIPE_VISIBLE_LAYER
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/brown/visible/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
@@ -393,7 +392,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/brown/hidden
|
||||
level = PIPE_HIDDEN_LEVEL
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/brown/hidden/layer1
|
||||
piping_layer = PIPING_LAYER_MIN
|
||||
pixel_x = -PIPING_LAYER_P_X
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
AM.setDir(current_dir)
|
||||
now_pushing = 0
|
||||
|
||||
/mob/living/start_pulling(atom/movable/AM, supress_message = 0)
|
||||
/mob/living/start_pulling(atom/movable/AM, state, supress_message = FALSE)
|
||||
if(!AM || !src)
|
||||
return FALSE
|
||||
if(!(AM.can_be_pulled(src)))
|
||||
@@ -305,6 +305,44 @@
|
||||
var/mob/living/carbon/C = L
|
||||
if(HAS_TRAIT(src, TRAIT_STRONG_GRABBER))
|
||||
C.grippedby(src)
|
||||
set_pull_offsets(M, state)
|
||||
|
||||
/mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE)
|
||||
if(M.buckled)
|
||||
return //don't make them change direction or offset them if they're buckled into something or in combat mode.
|
||||
var/offset = 0
|
||||
switch(grab_state)
|
||||
if(GRAB_PASSIVE)
|
||||
offset = GRAB_PIXEL_SHIFT_PASSIVE
|
||||
if(GRAB_AGGRESSIVE)
|
||||
offset = GRAB_PIXEL_SHIFT_AGGRESSIVE
|
||||
if(GRAB_NECK)
|
||||
offset = GRAB_PIXEL_SHIFT_NECK
|
||||
if(GRAB_KILL)
|
||||
offset = GRAB_PIXEL_SHIFT_NECK
|
||||
M.setDir(get_dir(M, src))
|
||||
switch(M.dir)
|
||||
if(NORTH)
|
||||
animate(M, pixel_x = 0, pixel_y = offset, 3)
|
||||
if(SOUTH)
|
||||
animate(M, pixel_x = 0, pixel_y = -offset, 3)
|
||||
if(EAST)
|
||||
if(M.lying == 270) //update the dragged dude's direction if we've turned
|
||||
M.lying = 90
|
||||
M.update_transform() //force a transformation update, otherwise it'll take a few ticks for update_mobility() to do so
|
||||
M.lying_prev = M.lying
|
||||
animate(M, pixel_x = offset, pixel_y = 0, 3)
|
||||
if(WEST)
|
||||
if(M.lying == 90)
|
||||
M.lying = 270
|
||||
M.update_transform()
|
||||
M.lying_prev = M.lying
|
||||
animate(M, pixel_x = -offset, pixel_y = 0, 3)
|
||||
|
||||
/mob/living/proc/reset_pull_offsets(mob/living/M, override)
|
||||
if(!override && M.buckled)
|
||||
return
|
||||
animate(M, pixel_x = 0, pixel_y = 0, 1)
|
||||
|
||||
//mob verbs are a lot faster than object verbs
|
||||
//for more info on why this is not atom/pull, see examinate() in mob.dm
|
||||
@@ -318,6 +356,8 @@
|
||||
stop_pulling()
|
||||
|
||||
/mob/living/stop_pulling()
|
||||
if(ismob(pulling))
|
||||
reset_pull_offsets(pulling)
|
||||
..()
|
||||
update_pull_hud_icon()
|
||||
|
||||
@@ -547,8 +587,12 @@
|
||||
var/turf/T = loc
|
||||
. = ..()
|
||||
|
||||
if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move.
|
||||
if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1 && (pulledby != moving_from_pull))//separated from our puller and not in the middle of a diagonal move.
|
||||
pulledby.stop_pulling()
|
||||
else
|
||||
if(isliving(pulledby))
|
||||
var/mob/living/L = pulledby
|
||||
L.set_pull_offsets(src, pulledby.grab_state)
|
||||
|
||||
if(active_storage && !(CanReach(active_storage.parent,view_only = TRUE)))
|
||||
active_storage.close(src)
|
||||
|
||||
@@ -203,6 +203,7 @@
|
||||
update_canmove() //we fall down
|
||||
if(!buckled && !density)
|
||||
Move(user.loc)
|
||||
user.set_pull_offsets(src, grab_state)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -26,3 +26,11 @@
|
||||
add_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = T.slowdown)
|
||||
else
|
||||
remove_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD)
|
||||
|
||||
/mob/living/Move_Pulled(atom/A)
|
||||
. = ..()
|
||||
if(!. || !isliving(A))
|
||||
return
|
||||
var/mob/living/L = A
|
||||
set_pull_offsets(L, grab_state)
|
||||
|
||||
|
||||
@@ -117,15 +117,16 @@
|
||||
for(var/obj/O in mob.user_movement_hooks)
|
||||
O.intercept_user_move(direct, mob, n, oldloc)
|
||||
|
||||
var/atom/movable/P = mob.pulling
|
||||
if(P && !ismob(P) && P.density)
|
||||
mob.setDir(turn(mob.dir, 180))
|
||||
if(L.pulling)
|
||||
L.setDir(turn(L.dir, 180))
|
||||
|
||||
///Process_Grab()
|
||||
///Called by client/Move()
|
||||
///Checks to see if you are being grabbed and if so attemps to break it
|
||||
/client/proc/Process_Grab()
|
||||
if(mob.pulledby)
|
||||
if((mob.pulledby == mob.pulling) && (mob.pulledby.grab_state == GRAB_PASSIVE)) //Don't autoresist passive grabs if we're grabbing them too.
|
||||
return
|
||||
if(mob.incapacitated(ignore_restraints = 1))
|
||||
move_delay = world.time + 10
|
||||
return TRUE
|
||||
|
||||
Reference in New Issue
Block a user