Merge pull request #6053 from Crazylemon64/secure_buckles

Shuttles no longer disable buckling
This commit is contained in:
Fox McCloud
2017-01-06 08:14:22 -05:00
committed by GitHub
5 changed files with 51 additions and 43 deletions
+5 -4
View File
@@ -148,17 +148,18 @@
return 1
/mob/living/forceMove(atom/destination)
stop_pulling()
if(buckled)
buckled.unbuckle_mob(src,force=1)
// in lieu of "unbuckle_all_mobs"
addtimer(src, "check_buckled", 1, TRUE)
if(buckled_mob)
unbuckle_mob(buckled_mob,force=1)
addtimer(buckled_mob, "check_buckled", 1, TRUE)
if(pulling)
addtimer(src, "check_pull", 1, TRUE)
. = ..()
if(client)
reset_perspective(destination)
update_canmove() //if the mob was asleep inside a container and then got forceMoved out we need to make them fall.
//called when src is thrown into hit_atom
/atom/movable/proc/throw_impact(atom/hit_atom, var/speed)
if(istype(hit_atom,/mob/living))
+4
View File
@@ -113,3 +113,7 @@
"<span class='italics'>You hear metal clanking.</span>")
add_fingerprint(user)
return M
/mob/living/proc/check_buckled()
if(buckled && !(buckled in loc))
buckled.unbuckle_mob(src, force=1)
-39
View File
@@ -894,45 +894,6 @@ var/list/slot_equipment_priority = list( \
if(!Adjacent(usr)) return
show_inv(usr)
//this and stop_pulling really ought to be /mob/living procs
/mob/proc/start_pulling(atom/movable/AM)
if(src == AM) // Trying to pull yourself is a shortcut to stop pulling
stop_pulling()
return
if(!AM || !isturf(AM.loc)) //if there's no object or the object being pulled is inside something: abort!
return
if(!(AM.anchored))
AM.add_fingerprint(src)
// If we're pulling something then drop what we're currently pulling and pull this instead.
if(pulling)
// Are we trying to pull something we are already pulling? Then just stop here, no need to continue.
if(AM == pulling)
return
stop_pulling()
src.pulling = AM
AM.pulledby = src
if(pullin)
pullin.update_icon(src)
if(ismob(AM))
var/mob/M = AM
if(!iscarbon(src))
M.LAssailant = null
else
M.LAssailant = usr
/mob/verb/stop_pulling()
set name = "Stop Pulling"
set category = "IC"
if(pulling)
pulling.pulledby = null
pulling = null
if(pullin)
pullin.update_icon(src)
/mob/proc/can_use_hands()
return
+41
View File
@@ -0,0 +1,41 @@
//this and stop_pulling really ought to be /mob/living procs
/mob/proc/start_pulling(atom/movable/AM)
if(src == AM) // Trying to pull yourself is a shortcut to stop pulling
stop_pulling()
return
if(!AM || !isturf(AM.loc)) //if there's no object or the object being pulled is inside something: abort!
return
if(!(AM.anchored))
AM.add_fingerprint(src)
// If we're pulling something then drop what we're currently pulling and pull this instead.
if(pulling)
// Are we trying to pull something we are already pulling? Then just stop here, no need to continue.
if(AM == pulling)
return
stop_pulling()
src.pulling = AM
AM.pulledby = src
if(pullin)
pullin.update_icon(src)
if(ismob(AM))
var/mob/M = AM
if(!iscarbon(src))
M.LAssailant = null
else
M.LAssailant = usr
/mob/verb/stop_pulling()
set name = "Stop Pulling"
set category = "IC"
if(pulling)
pulling.pulledby = null
pulling = null
if(pullin)
pullin.update_icon(src)
/mob/living/proc/check_pull()
if(pulling && !(pulling in orange(1)))
stop_pulling()