Files
Paradise/code/modules/mob/pulling.dm
Crazylemon64 ff91d4818a Picky nits
2017-01-01 21:53:31 -08:00

42 lines
1.0 KiB
Plaintext

//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()