*---------*\nThis is "
- if( skipjumpsuit && (wear_mask || skipmask) ) //big suits/masks make it hard to tell their gender
+ if( skipjumpsuit && skipface ) //big suits/masks/helmets make it hard to tell their gender
t_He = "They"
t_his = "their"
t_him = "them"
t_has = "have"
t_is = "are"
else
- if(src.icon)
- msg += "\icon[src.icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
- switch(src.gender)
+ if(icon)
+ msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
+ switch(gender)
if(MALE)
t_He = "He"
t_his = "his"
@@ -54,137 +59,137 @@
t_his = "her"
t_him = "her"
- msg += "\a [src]!\n"
+ msg += "[src.name]!\n"
//uniform
- if (src.w_uniform && !skipjumpsuit)
- if (src.w_uniform.blood_DNA)
- msg += "[t_He] [t_is] wearing \icon[src.w_uniform] [src.w_uniform.gender==PLURAL?"some":"a"] blood-stained [src.w_uniform.name]!\n"
+ if(w_uniform && !skipjumpsuit)
+ if(w_uniform.blood_DNA)
+ msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name]!\n"
else
- msg += "[t_He] [t_is] wearing \icon[src.w_uniform] \a [src.w_uniform].\n"
+ msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform].\n"
//head
- if (src.head)
- if (src.head.blood_DNA)
- msg += "[t_He] [t_is] wearing \icon[src.head] [src.head.gender==PLURAL?"some":"a"] blood-stained [src.head.name] on [t_his] head!\n"
+ if(head)
+ if(head.blood_DNA)
+ msg += "[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] blood-stained [head.name] on [t_his] head!\n"
else
- msg += "[t_He] [t_is] wearing \icon[src.head] \a [src.head] on [t_his] head.\n"
+ msg += "[t_He] [t_is] wearing \icon[head] \a [head] on [t_his] head.\n"
//suit/armour
- if (src.wear_suit)
- if (src.wear_suit.blood_DNA)
- msg += "[t_He] [t_is] wearing \icon[src.wear_suit] [src.wear_suit.gender==PLURAL?"some":"a"] blood-stained [src.wear_suit.name]!\n"
+ if(wear_suit)
+ if(wear_suit.blood_DNA)
+ msg += "[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] blood-stained [wear_suit.name]!\n"
else
- msg += "[t_He] [t_is] wearing \icon[src.wear_suit] \a [src.wear_suit].\n"
+ msg += "[t_He] [t_is] wearing \icon[wear_suit] \a [wear_suit].\n"
//suit/armour storage
- if(src.s_store && !skipsuitstorage)
- if(src.s_store.blood_DNA)
- msg += "[t_He] [t_is] carrying \icon[src.s_store] [src.s_store.gender==PLURAL?"some":"a"] blood-stained [src.s_store.name] on [t_his] [src.wear_suit.name]!\n"
+ if(s_store && !skipsuitstorage)
+ if(s_store.blood_DNA)
+ msg += "[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] blood-stained [s_store.name] on [t_his] [wear_suit.name]!\n"
else
- msg += "[t_He] [t_is] carrying \icon[src.s_store] \a [src.s_store] on [t_his] [src.wear_suit.name].\n"
+ msg += "[t_He] [t_is] carrying \icon[s_store] \a [s_store] on [t_his] [wear_suit.name].\n"
//back
- if (src.back)
- if (src.back.blood_DNA)
- msg += "[t_He] [t_has] \icon[src.back] [src.back.gender==PLURAL?"some":"a"] blood-stained [src.back] on [t_his] back.\n"
+ if(back)
+ if(back.blood_DNA)
+ msg += "[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] blood-stained [back] on [t_his] back.\n"
else
- msg += "[t_He] [t_has] \icon[src.back] \a [src.back] on [t_his] back.\n"
+ msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n"
//left hand
- if (src.l_hand)
- if (src.l_hand.blood_DNA)
- msg += "[t_He] [t_is] holding \icon[src.l_hand] [src.l_hand.gender==PLURAL?"some":"a"] blood-stained [src.l_hand.name] in [t_his] left hand!\n"
+ if(l_hand)
+ if(l_hand.blood_DNA)
+ msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n"
else
- msg += "[t_He] [t_is] holding \icon[src.l_hand] \a [src.l_hand] in [t_his] left hand.\n"
+ msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n"
//right hand
- if (src.r_hand)
- if (src.r_hand.blood_DNA)
- msg += "[t_He] [t_is] holding \icon[src.r_hand] [src.r_hand.gender==PLURAL?"some":"a"] blood-stained [src.r_hand.name] in [t_his] right hand!\n"
+ if(r_hand)
+ if(r_hand.blood_DNA)
+ msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n"
else
- msg += "[t_He] [t_is] holding \icon[src.r_hand] \a [src.r_hand] in [t_his] right hand.\n"
+ msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n"
//gloves
- if (src.gloves && !skipgloves)
- if (src.gloves.blood_DNA)
- msg += "[t_He] [t_has] \icon[src.gloves] [src.gloves.gender==PLURAL?"some":"a"] blood-stained [src.gloves.name] on [t_his] hands!\n"
+ if(gloves && !skipgloves)
+ if(gloves.blood_DNA)
+ msg += "[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] blood-stained [gloves.name] on [t_his] hands!\n"
else
- msg += "[t_He] [t_has] \icon[src.gloves] \a [src.gloves] on [t_his] hands.\n"
- else if (src.blood_DNA)
+ msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n"
+ else if(blood_DNA)
msg += "[t_He] [t_has] blood-stained hands!\n"
//handcuffed?
//handcuffed?
- if (src.handcuffed)
- if(istype(src.handcuffed, /obj/item/weapon/handcuffs/cable))
- msg += "[t_He] [t_is] \icon[src.handcuffed] restrained with cable!\n"
+ if(handcuffed)
+ if(istype(handcuffed, /obj/item/weapon/handcuffs/cable))
+ msg += "[t_He] [t_is] \icon[handcuffed] restrained with cable!\n"
else
- msg += "[t_He] [t_is] \icon[src.handcuffed] handcuffed!\n"
+ msg += "[t_He] [t_is] \icon[handcuffed] handcuffed!\n"
//belt
- if (src.belt)
- if (src.belt.blood_DNA)
- msg += "[t_He] [t_has] \icon[src.belt] [src.belt.gender==PLURAL?"some":"a"] blood-stained [src.belt.name] about [t_his] waist!\n"
+ if(belt)
+ if(belt.blood_DNA)
+ msg += "[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] blood-stained [belt.name] about [t_his] waist!\n"
else
- msg += "[t_He] [t_has] \icon[src.belt] \a [src.belt] about [t_his] waist.\n"
+ msg += "[t_He] [t_has] \icon[belt] \a [belt] about [t_his] waist.\n"
//shoes
- if (src.shoes && !skipshoes)
- if(src.shoes.blood_DNA)
- msg += "[t_He] [t_is] wearing \icon[src.shoes] [src.shoes.gender==PLURAL?"some":"a"] blood-stained [src.shoes.name] on [t_his] feet!\n"
+ if(shoes && !skipshoes)
+ if(shoes.blood_DNA)
+ msg += "[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] blood-stained [shoes.name] on [t_his] feet!\n"
else
- msg += "[t_He] [t_is] wearing \icon[src.shoes] \a [src.shoes] on [t_his] feet.\n"
+ msg += "[t_He] [t_is] wearing \icon[shoes] \a [shoes] on [t_his] feet.\n"
//mask
- if (src.wear_mask && !skipmask)
- if (src.wear_mask.blood_DNA)
- msg += "[t_He] [t_has] \icon[src.wear_mask] [src.wear_mask.gender==PLURAL?"some":"a"] blood-stained [src.wear_mask.name] on [t_his] face!\n"
+ if(wear_mask && !skipmask)
+ if(wear_mask.blood_DNA)
+ msg += "[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] blood-stained [wear_mask.name] on [t_his] face!\n"
else
- msg += "[t_He] [t_has] \icon[src.wear_mask] \a [src.wear_mask] on [t_his] face.\n"
+ msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n"
//eyes
- if (src.glasses && !skipeyes)
- if (src.glasses.blood_DNA)
- msg += "[t_He] [t_has] \icon[src.glasses] [src.glasses.gender==PLURAL?"some":"a"] blood-stained [src.glasses] covering [t_his] eyes!\n"
+ if(glasses && !skipeyes)
+ if(glasses.blood_DNA)
+ msg += "[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] blood-stained [glasses] covering [t_his] eyes!\n"
else
- msg += "[t_He] [t_has] \icon[src.glasses] \a [src.glasses] covering [t_his] eyes.\n"
+ msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n"
//ears
- if (src.ears && !skipears)
- msg += "[t_He] [t_has] \icon[src.ears] \a [src.ears] on [t_his] ears.\n"
+ if(ears && !skipears)
+ msg += "[t_He] [t_has] \icon[ears] \a [ears] on [t_his] ears.\n"
//ID
- if (src.wear_id)
+ if(wear_id)
var/id
- if(istype(src.wear_id, /obj/item/device/pda))
- var/obj/item/device/pda/pda = src.wear_id
+ if(istype(wear_id, /obj/item/device/pda))
+ var/obj/item/device/pda/pda = wear_id
id = pda.owner
- else if(istype(src.wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[
- var/obj/item/weapon/card/id/idcard = src.wear_id
+ else if(istype(wear_id, /obj/item/weapon/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :[
+ var/obj/item/weapon/card/id/idcard = wear_id
id = idcard.registered_name
- if (id && (id != src.real_name) && (get_dist(src, usr) <= 1) && prob(10))
- msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id] yet something doesn't seem right...\n"
+ if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10))
+ msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n"
else
- msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id].\n"
+ msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n"
//Jitters
- if (src.is_jittery)
- if(src.jitteriness >= 300)
+ if(is_jittery)
+ if(jitteriness >= 300)
msg += "[t_He] [t_is] convulsing violently!\n"
- else if(src.jitteriness >= 200)
+ else if(jitteriness >= 200)
msg += "[t_He] [t_is] extremely jittery.\n"
- else if(src.jitteriness >= 100)
+ else if(jitteriness >= 100)
msg += "[t_He] [t_is] twitching ever so slightly.\n"
- if (src.suiciding)
+ if(suiciding)
msg += "[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!\n"
- if (src.stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1)))
+ if(stat == DEAD || (changeling && (changeling.changeling_fakedeath == 1)))
msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life"
- if(!src.client)
+ if(!client)
var/foundghost = 0
for(var/mob/dead/observer/G in world)
if(G.client)
@@ -196,48 +201,51 @@
msg += "...\n"
else
+
msg += ""
- var/temp = src.getBruteLoss() //no need to calculate each of these twice
+ var/temp = getBruteLoss() //no need to calculate each of these twice
if(temp)
- if (temp < 30)
+ if(temp < 30)
msg += "[t_He] [t_has] minor bruising.\n"
else
msg += "[t_He] [t_has] severe bruising!\n"
- temp = src.getFireLoss()
- if (temp)
- if (temp < 30)
+ temp = getFireLoss()
+ if(temp)
+ if(temp < 30)
msg += "[t_He] [t_has] minor burns.\n"
else
msg += "[t_He] [t_has] severe burns!\n"
- temp = src.getCloneLoss()
- if (temp)
- if (temp < 30)
+ temp = getCloneLoss()
+ if(temp)
+ if(temp < 30)
msg += "[t_He] [t_has] minor genetic deformities.\n"
else
msg += "[t_He] [t_has] severe genetic deformities.\n"
- if (src.nutrition < 100)
+ if(nutrition < 100)
msg += "[t_He] [t_is] severely malnourished.\n"
- else if (src.nutrition >= 500)
- if (usr.nutrition < 100)
+ else if(nutrition >= 500)
+ if(usr.nutrition < 100)
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
msg += "[t_He] [t_is] quite chubby.\n"
msg += ""
- if (src.stat == UNCONSCIOUS)
+ if(stat == UNCONSCIOUS)
msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n"
- else if (src.getBrainLoss() >= 60)
+ else if(getBrainLoss() >= 60)
msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n"
- if (!src.client)
+ if(!key)
+ msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely\n"
+ else if(!client)
msg += "[t_He] [t_has] a vacant, braindead stare...\n"
- if (src.digitalcamo)
+ if(digitalcamo)
msg += "[t_He] [t_is] repulsively uncanny!\n"
@@ -257,12 +265,12 @@
var/obj/item/device/pda/tempPda = wear_id
perpname = tempPda.owner
else
- perpname = src.name
+ perpname = name
for (var/datum/data/record/E in data_core.general)
- if (E.fields["name"] == perpname)
+ if(E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
- if (R.fields["id"] == E.fields["id"])
+ if(R.fields["id"] == E.fields["id"])
criminal = R.fields["criminal"]
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 867b623c62..a75d436422 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -522,9 +522,10 @@
//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere
/mob/living/carbon/human/proc/get_visible_name()
- if( wear_mask && !wear_mask.see_face ) //Wearing a mask which covers our face, use id-name if possible
+ if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible
return get_id_name("Unknown")
-
+ if( head && (head.flags_inv&HIDEFACE) )
+ return get_id_name("Unknown") //Likewise for hats
var/face_name = get_face_name()
var/id_name = get_id_name("")
if(id_name && (id_name != face_name))
diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm
index 07c7801158..eb027d309c 100644
--- a/code/modules/mob/living/carbon/human/login.dm
+++ b/code/modules/mob/living/carbon/human/login.dm
@@ -1,12 +1,7 @@
/mob/living/carbon/human/Login()
..()
-
update_hud()
-
- if (!isturf(src.loc))
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == DEAD)
- src.verbs += /mob/proc/ghost
-
+ if(!isturf(loc))
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
return
diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm
index 2356f42550..e1e74840bc 100644
--- a/code/modules/mob/living/carbon/metroid/death.dm
+++ b/code/modules/mob/living/carbon/metroid/death.dm
@@ -1,42 +1,20 @@
/mob/living/carbon/metroid/death(gibbed)
- if(src.stat == 2)
- return
+ if(stat == DEAD) return
+ stat = DEAD
+ icon_state = "baby metroid dead"
if(!gibbed)
if(istype(src, /mob/living/carbon/metroid/adult))
-
- if(client)
- var/mob/dead/observer/ghost = new(src)
- ghost.key = key
- if (ghost.client)
- ghost.client.eye = ghost
-
- explosion(src.loc, -1,-1,3,12)
- sleep(2)
- del(src)
+ ghostize(1)
+ explosion(loc, -1,-1,3,12)
+ if(src) del(src)
else
for(var/mob/O in viewers(src, null))
- O.show_message("The [src.name] seizes up and falls limp...", 1) //ded -- Urist
+ O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist
- src.stat = 2
- src.canmove = 0
- if (src.blind)
- src.blind.layer = 0
- src.lying = 1
- src.icon_state = "baby metroid dead"
-
- var/h = src.hand
- src.hand = 0
- drop_item()
- src.hand = 1
- drop_item()
- src.hand = h
+ update_canmove()
+ if(blind) blind.layer = 0
ticker.mode.check_win()
- if (src.key)
- spawn(50)
- if(src.key && src.stat == 2)
- src.verbs += /mob/proc/ghost
-
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index f06272a73b..1c92ed45d2 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -505,7 +505,7 @@
var/number = pick(2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4)
for(var/i=1,i<=number,i++) // reproduce (has a small chance of producing 3 or 4 offspring)
var/mob/living/carbon/metroid/M = new/mob/living/carbon/metroid(loc)
- M.nutrition = round(nutrition * 0.9)
+// M.nutrition = round(nutrition * 0.9)
M.powerlevel = round(powerlevel/number)
M.Friends = Friends
M.tame = tame
@@ -519,7 +519,7 @@
if(!client)
var/mob/living/carbon/metroid/adult/A = new/mob/living/carbon/metroid/adult(src.loc)
A.nutrition = nutrition
- A.nutrition += 100
+// A.nutrition += 100
A.powerlevel = max(0, powerlevel-1)
A.Friends = Friends
A.tame = tame
diff --git a/code/modules/mob/living/carbon/metroid/login.dm b/code/modules/mob/living/carbon/metroid/login.dm
index 831c6e1004..fc88bb4e08 100644
--- a/code/modules/mob/living/carbon/metroid/login.dm
+++ b/code/modules/mob/living/carbon/metroid/login.dm
@@ -1,12 +1,7 @@
/mob/living/carbon/metroid/Login()
..()
-
update_hud()
-
- if (!isturf(src.loc))
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == DEAD)
- src.verbs += /mob/proc/ghost
-
+ if(!isturf(loc))
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
return
diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm
index a150d7c2bf..884ec840df 100644
--- a/code/modules/mob/living/carbon/monkey/death.dm
+++ b/code/modules/mob/living/carbon/monkey/death.dm
@@ -40,33 +40,17 @@
/mob/living/carbon/monkey/death(gibbed)
- if(src.stat == DEAD)
- return
+ if(stat == DEAD) return
+ if(healths) healths.icon_state = "health5"
+ stat = DEAD
- if (src.healths)
- src.healths.icon_state = "health5"
if(!gibbed)
for(var/mob/O in viewers(src, null))
- O.show_message("The [src.name] lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist
+ O.show_message("The [name] lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist
- src.stat = 2
- src.canmove = 0
- if (src.blind)
- src.blind.layer = 0
- src.lying = 1
-
- var/h = src.hand
- src.hand = 0
- drop_item()
- src.hand = 1
- drop_item()
- src.hand = h
+ update_canmove()
+ if(blind) blind.layer = 0
ticker.mode.check_win()
- if (src.key)
- spawn(50)
- if(src.key && src.stat == 2)
- src.verbs += /mob/proc/ghost
-
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/monkey/login.dm b/code/modules/mob/living/carbon/monkey/login.dm
index 0a0c216129..8c5e05c439 100644
--- a/code/modules/mob/living/carbon/monkey/login.dm
+++ b/code/modules/mob/living/carbon/monkey/login.dm
@@ -1,11 +1,7 @@
/mob/living/carbon/monkey/Login()
..()
-
update_hud()
-
- if (!isturf(src.loc))
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == DEAD)
- src.verbs += /mob/proc/ghost
+ if(!isturf(loc))
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
return
diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm
index 636d27a6ac..de8ac18962 100644
--- a/code/modules/mob/living/silicon/ai/death.dm
+++ b/code/modules/mob/living/silicon/ai/death.dm
@@ -1,14 +1,13 @@
/mob/living/silicon/ai/death(gibbed)
- stat = 2
- canmove = 0
- if(blind)
- blind.layer = 0
- sight |= SEE_TURFS
- sight |= SEE_MOBS
- sight |= SEE_OBJS
+ if(stat == DEAD) return
+ stat = DEAD
+ icon_state = "ai-crash"
+
+ update_canmove()
+ if(blind) blind.layer = 0
+ sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = 2
- icon_state = "ai-crash"
var/callshuttle = 0
@@ -56,8 +55,4 @@
tod = worldtime2text() //weasellos time of death patch
if(mind) mind.store_memory("Time of death: [tod]", 0)
- if (key)
- spawn(50)
- if(key && stat == 2)
- client.verbs += /mob/proc/ghost
return ..(gibbed)
diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm
index 8e1c1c1f08..0a176cf1a2 100644
--- a/code/modules/mob/living/silicon/ai/login.dm
+++ b/code/modules/mob/living/silicon/ai/login.dm
@@ -1,32 +1,29 @@
-/mob/living/silicon/ai/Login()
+/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up ¬_¬ ~Carn
+ client.screen.len = 0
+ client.images.len = 0
for(var/obj/effect/rune/rune in world)
var/image/blood = image(loc = rune)
blood.override = 1
client.images += blood
..()
regenerate_icons()
- for(var/S in src.client.screen)
- del(S)
- src.flash = new /obj/screen( null )
- src.flash.icon_state = "blank"
- src.flash.name = "flash"
- src.flash.screen_loc = "1,1 to 15,15"
- src.flash.layer = 17
- src.blind = new /obj/screen( null )
- src.blind.icon_state = "black"
- src.blind.name = " "
- src.blind.screen_loc = "1,1 to 15,15"
- src.blind.layer = 0
- src.client.screen += list( src.blind, src.flash )
- if(!isturf(src.loc))
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == 2)
- src.verbs += /mob/proc/ghost
- else
+ flash = new /obj/screen( null )
+ flash.icon_state = "blank"
+ flash.name = "flash"
+ flash.screen_loc = "1,1 to 15,15"
+ flash.layer = 17
+ blind = new /obj/screen( null )
+ blind.icon_state = "black"
+ blind.name = " "
+ blind.screen_loc = "1,1 to 15,15"
+ blind.layer = 0
+ client.screen += list( blind, flash )
+ if(!isturf(loc))
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
+ if(stat != DEAD)
for(var/obj/machinery/ai_status_display/O in world) //change status
- spawn(0)
- if(O)
- O.mode = 1
- O.emotion = "Neutral"
+ if(O)
+ O.mode = 1
+ O.emotion = "Neutral"
return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/ai/logout.dm b/code/modules/mob/living/silicon/ai/logout.dm
index cf32ea51da..568362d402 100644
--- a/code/modules/mob/living/silicon/ai/logout.dm
+++ b/code/modules/mob/living/silicon/ai/logout.dm
@@ -1,12 +1,9 @@
/mob/living/silicon/ai/Logout()
..()
for(var/obj/machinery/ai_status_display/O in world) //change status
- spawn( 0 )
O.mode = 0
- if(!isturf(src.loc))
- if (src.client)
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == 2)
- src.verbs += /mob/proc/ghost
+ if(!isturf(loc))
+ if (client)
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/decoy/death.dm b/code/modules/mob/living/silicon/decoy/death.dm
index e6af3a4042..d3996e2fa7 100644
--- a/code/modules/mob/living/silicon/decoy/death.dm
+++ b/code/modules/mob/living/silicon/decoy/death.dm
@@ -1,10 +1,10 @@
/mob/living/silicon/decoy/death(gibbed)
- src.stat = 2
- src.icon_state = "ai-crash"
+ if(stat == DEAD) return
+ stat = DEAD
+ icon_state = "ai-crash"
spawn(10)
- explosion(src.loc, 3, 6, 12, 15)
+ explosion(loc, 3, 6, 12, 15)
for(var/obj/machinery/ai_status_display/O in world) //change status
- spawn( 0 )
- O.mode = 2
+ O.mode = 2
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index 7fa3aabbb6..60a7657466 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -1,23 +1,17 @@
/mob/living/silicon/pai/death(gibbed)
- src.stat = 2
- src.canmove = 0
- if(src.blind)
- src.blind.layer = 0
- src.sight |= SEE_TURFS
- src.sight |= SEE_MOBS
- src.sight |= SEE_OBJS
- src.see_in_dark = 8
- src.see_invisible = 2
+ if(stat == DEAD) return
+ stat = DEAD
+ canmove = 0
+ if(blind) blind.layer = 0
+ sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
+ see_in_dark = 8
+ see_invisible = 2
//var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
//mind.store_memory("Time of death: [tod]", 0)
-
//New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here.
//Read as: I have no idea what I'm doing but asking for help got me nowhere so this is what you get. - Nodrak
- del(src.mind)
-
- if(key)
- spawn(50)
- src.ghostize(0)
+ del(mind)
+ if(key) ghostize(0)
del(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm
index 974c041116..5d88687335 100644
--- a/code/modules/mob/living/silicon/pai/hud.dm
+++ b/code/modules/mob/living/silicon/pai/hud.dm
@@ -43,7 +43,7 @@
client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
if(patient.stat == 2)
client.images += image(tempHud,patient,"huddead")
- else if(patient.alien_egg_flag)
+ else if(patient.status_flags & XENO_HOST)
client.images += image(tempHud,patient,"hudxeno")
else if(foundVirus)
client.images += image(tempHud,patient,"hudill")
diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm
index 397a403a2b..709fa2f7bc 100644
--- a/code/modules/mob/living/silicon/robot/death.dm
+++ b/code/modules/mob/living/silicon/robot/death.dm
@@ -41,36 +41,29 @@
/mob/living/silicon/robot/death(gibbed)
- if (!gibbed)
- src.emote("deathgasp")
- src.stat = 2
- src.canmove = 0
+ if(stat == DEAD) return
+ if(!gibbed)
+ emote("deathgasp")
+ stat = DEAD
+ update_canmove()
tension_master.death(src)
- src.camera.status = 0.0
+ camera.status = 0
- if(src.in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
- var/obj/machinery/recharge_station/RC = src.loc
+ if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
+ var/obj/machinery/recharge_station/RC = loc
RC.go_out()
- if(src.blind)
- src.blind.layer = 0
- src.sight |= SEE_TURFS
- src.sight |= SEE_MOBS
- src.sight |= SEE_OBJS
-
- src.see_in_dark = 8
- src.see_invisible = 2
- src.updateicon()
+ if(blind) blind.layer = 0
+ sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
+ see_in_dark = 8
+ see_invisible = 2
+ updateicon()
tod = worldtime2text() //weasellos time of death patch
- store_memory("Time of death: [tod]", 0)
+ if(mind) mind.store_memory("Time of death: [tod]", 0)
sql_report_cyborg_death(src)
- if (src.key)
- spawn(50)
- if(src.key && src.stat == 2)
- src.verbs += /mob/proc/ghost
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm
index 898c15e4b1..23a019099b 100644
--- a/code/modules/mob/living/silicon/robot/login.dm
+++ b/code/modules/mob/living/silicon/robot/login.dm
@@ -1,21 +1,18 @@
/mob/living/silicon/robot/Login(var/syndie = 0)
..()
-
regenerate_icons()
- if (!isturf(src.loc))
- src.client.eye = src.loc
- src.client.perspective = EYE_PERSPECTIVE
- if (src.stat == 2)
- src.verbs += /mob/proc/ghost
- if(src.real_name == "Cyborg")
- src.ident = rand(1, 999)
- src.real_name += " "
- src.real_name += "-[ident]"
- src.name = src.real_name
- /*if(!src.connected_ai)
+ if(!isturf(loc))
+ client.eye = loc
+ client.perspective = EYE_PERSPECTIVE
+ if(real_name == "Cyborg")
+ ident = rand(1, 999)
+ real_name += " "
+ real_name += "-[ident]"
+ name = real_name
+ /*if(!connected_ai)
for(var/mob/living/silicon/ai/A in world)
- src.connected_ai = A
+ connected_ai = A
A.connected_robots += src
break
*/
@@ -54,8 +51,8 @@
var/obj/item/weapon/cell/C = new(src)
C.charge = 1500
cell = C
- if(src.mind)
- ticker.mode.remove_revolutionary(src.mind)
+ if(mind)
+ ticker.mode.remove_revolutionary(mind)
started = 1
return
\ No newline at end of file
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 76d8eae96f..f601170427 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -10,7 +10,6 @@
layer = 4
pressure_resistance = 1
slot_flags = SLOT_HEAD
- see_face = 1
body_parts_covered = HEAD
protective_temperature = 0
diff --git a/code/setup.dm b/code/setup.dm
index e2b5de7587..ee98e1b3dd 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -168,9 +168,10 @@ var/MAX_EXPLOSION_RANGE = 14
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
-#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!!
-#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!!
-#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!!
+#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!!
+#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!!
+#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!!
+#define HIDEFACE 8 //APPLIES ONLY TO HELMETS/MASKS!! Dictates whether we appear as unknown.
//Cant seem to find a mob bitflags area other than the powers one
@@ -342,10 +343,11 @@ var/list/global_mutations = list() // list of hidden mutation things
#define EYE_BLUR "eye_blur"
#define DROWSY "drowsy"
-//Bitflags defining which status effects can be inflicted on a mob
+//Bitflags defining which status effects could be or are inflicted on a mob
#define CANSTUN 1
#define CANWEAKEN 2
#define CANPARALYSE 4
+#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy.
#define DISFIGURED 65536 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system
var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg','hiss5.ogg','hiss6.ogg','Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg','Welder.ogg','Welder2.ogg','airlock.ogg','clownstep1.ogg','clownstep2.ogg')
diff --git a/html/changelog.html b/html/changelog.html
index 63078c1846..b31f43e21e 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -46,6 +46,18 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit tho. Thanks. -->
+
+
+
14 July 2012
+
Carn updated:
+
+ - All living mobs can now ghost whenever they want. Essentially making the suicide verb obsolete. If you ghost whilst still alive however, you may not re-enter your body for the rest of the round.
+ - Humans can no longer suicide whilst restrained (this is purely to prevent meta whilst I finish up the new FUN suicides)
+ - Fixed dem evidence bags. Fixed metroids getting at it like rabbits. Fixed stuff like welding masks not hiding your face. Bunch of other things
+
+
+
+
Saturday July 14th 2012
Giacom updated:
diff --git a/tgstation.dme b/tgstation.dme
index aefda6d5da..1f0fbaa15a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -967,6 +967,7 @@
#include "code\modules\mob\living\carbon\brain\death.dm"
#include "code\modules\mob\living\carbon\brain\hud.dm"
#include "code\modules\mob\living\carbon\brain\life.dm"
+#include "code\modules\mob\living\carbon\brain\login.dm"
#include "code\modules\mob\living\carbon\brain\MMI.dm"
#include "code\modules\mob\living\carbon\brain\say.dm"
#include "code\modules\mob\living\carbon\human\death.dm"