+22
-77
@@ -118,7 +118,7 @@
|
||||
if(self_message)
|
||||
msg = self_message
|
||||
else
|
||||
if(M.see_invisible<invisibility)//if src is invisible
|
||||
if(M.see_invisible<invisibility)//if src is invisible to us,
|
||||
if(blind_message) // then people see blind message if there is one, otherwise nothing.
|
||||
msg = blind_message
|
||||
else
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
/mob/proc/reset_perspective(atom/A)
|
||||
if(client)
|
||||
if(istype(A, /atom/movable))
|
||||
if(ismovableatom(A))
|
||||
client.perspective = EYE_PERSPECTIVE
|
||||
client.eye = A
|
||||
else
|
||||
@@ -308,17 +308,11 @@
|
||||
//this and stop_pulling really ought to be /mob/living procs
|
||||
/mob/proc/start_pulling(atom/movable/AM, supress_message = 0)
|
||||
if(!AM || !src)
|
||||
return
|
||||
if(AM == src || !isturf(AM.loc))
|
||||
return
|
||||
if(AM.anchored || AM.throwing)
|
||||
return
|
||||
if(isliving(AM))
|
||||
var/mob/living/L = AM
|
||||
if(L.buckled && L.buckled.buckle_prevents_pull)
|
||||
return
|
||||
return FALSE
|
||||
if(!(AM.can_be_pulled(src)))
|
||||
return FALSE
|
||||
if(throwing || incapacitated())
|
||||
return
|
||||
return FALSE
|
||||
|
||||
AM.add_fingerprint(src)
|
||||
|
||||
@@ -376,9 +370,9 @@
|
||||
|
||||
if(pulling)
|
||||
pulling.pulledby = null
|
||||
if(ismob(pulling))
|
||||
var/mob/M = pulling
|
||||
M.update_canmove()// mob gets up if it was lyng down in a chokehold
|
||||
if(isliving(pulling))
|
||||
var/mob/living/L = pulling
|
||||
L.update_canmove()// mob gets up if it was lyng down in a chokehold
|
||||
pulling = null
|
||||
grab_state = 0
|
||||
update_pull_hud_icon()
|
||||
@@ -441,14 +435,8 @@
|
||||
set name = "Respawn"
|
||||
set category = "OOC"
|
||||
|
||||
if(!client)
|
||||
log_game("[usr.key] AM failed due to disconnect.")
|
||||
return
|
||||
if (!( GLOB.abandon_allowed ))
|
||||
if(!(client.holder))
|
||||
return
|
||||
log_game("[usr.name]/[usr.key] was allowed to bypass the respawn restriction because they are an admin.")
|
||||
to_chat(src, "<span class='notice'>You have been allowed to bypass the respawn configuration due to being an admin.</span>")
|
||||
return
|
||||
if ((stat != 2 || !( SSticker )))
|
||||
to_chat(usr, "<span class='boldnotice'>You must be dead to use this!</span>")
|
||||
return
|
||||
@@ -457,6 +445,9 @@
|
||||
|
||||
to_chat(usr, "<span class='boldnotice'>Please roleplay correctly!</span>")
|
||||
|
||||
if(!client)
|
||||
log_game("[usr.key] AM failed due to disconnect.")
|
||||
return
|
||||
client.screen.Cut()
|
||||
client.screen += client.void
|
||||
if(!client)
|
||||
@@ -499,7 +490,7 @@
|
||||
var/t1 = text("window=[href_list["mach_close"]]")
|
||||
unset_machine()
|
||||
src << browse(null, t1)
|
||||
|
||||
|
||||
if(href_list["flavor_more"])
|
||||
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", name, replacetext(flavor_text, "\n", "<BR>")), text("window=[];size=500x200", name))
|
||||
onclose(usr, "[name]")
|
||||
@@ -674,52 +665,6 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
|
||||
//Robots, animals and brains have their own version so don't worry about them
|
||||
/mob/proc/update_canmove()
|
||||
var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH)
|
||||
var/chokehold = pulledby && pulledby.grab_state >= GRAB_NECK
|
||||
var/buckle_lying = !(buckled && !buckled.buckle_lying)
|
||||
var/has_legs = get_num_legs()
|
||||
var/has_arms = get_num_arms()
|
||||
var/ignore_legs = get_leg_ignore()
|
||||
if(ko || resting || stunned || chokehold)
|
||||
drop_all_held_items()
|
||||
unset_machine()
|
||||
if(pulling)
|
||||
stop_pulling()
|
||||
else if(has_legs || ignore_legs)
|
||||
lying = 0
|
||||
|
||||
if(buckled)
|
||||
lying = 90*buckle_lying
|
||||
else if(!lying)
|
||||
if(resting)
|
||||
fall()
|
||||
else if(ko || (!has_legs && !ignore_legs) || chokehold)
|
||||
fall(forced = 1)
|
||||
canmove = !(ko || resting || stunned || chokehold || buckled || (!has_legs && !ignore_legs && !has_arms))
|
||||
density = !lying
|
||||
if(lying)
|
||||
if(layer == initial(layer)) //to avoid special cases like hiding larvas.
|
||||
layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs
|
||||
else
|
||||
if(layer == LYING_MOB_LAYER)
|
||||
layer = initial(layer)
|
||||
update_transform()
|
||||
update_action_buttons_icon(status_only=TRUE)
|
||||
if(isliving(src))
|
||||
var/mob/living/L = src
|
||||
if(L.has_status_effect(/datum/status_effect/freon))
|
||||
canmove = 0
|
||||
if(!lying && lying_prev)
|
||||
if(client)
|
||||
client.move_delay = world.time + movement_delay()
|
||||
lying_prev = lying
|
||||
return canmove
|
||||
|
||||
|
||||
/mob/proc/fall(forced)
|
||||
drop_all_held_items()
|
||||
|
||||
@@ -767,8 +712,8 @@
|
||||
/mob/proc/activate_hand(selhand)
|
||||
return
|
||||
|
||||
/mob/proc/assess_threat() //For sec bot threat assessment
|
||||
return
|
||||
/mob/proc/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //For sec bot threat assessment
|
||||
return 0
|
||||
|
||||
/mob/proc/get_ghost(even_if_they_cant_reenter = 0)
|
||||
if(mind)
|
||||
@@ -968,12 +913,12 @@
|
||||
GLOB.dead_mob_list += src
|
||||
. = ..()
|
||||
switch(var_name)
|
||||
if("weakened")
|
||||
SetWeakened(var_value)
|
||||
if("stunned")
|
||||
SetStunned(var_value)
|
||||
if("paralysis")
|
||||
SetParalysis(var_value)
|
||||
if("knockdown")
|
||||
SetKnockdown(var_value)
|
||||
if("stun")
|
||||
SetStun(var_value)
|
||||
if("unconscious")
|
||||
SetUnconscious(var_value)
|
||||
if("sleeping")
|
||||
SetSleeping(var_value)
|
||||
if("eye_blind")
|
||||
|
||||
Reference in New Issue
Block a user