diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index de8436b9285..9bc55a7212e 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -136,13 +136,13 @@ datum/mind
text += "YES|no"
if (objectives.len==0)
text += "
Objectives are empty! Randomize!"
- if (current.absorbed_dna.len>0 && current.real_name != current.absorbed_dna[1])
+ if (current.changeling && (current.changeling.absorbed_dna.len>0 && current.real_name != current.changeling.absorbed_dna[1]))
text += "
Transform to initial appearance."
else
text += "yes|NO"
- var/datum/game_mode/changeling/changeling = ticker.mode
- if (istype(changeling) && changeling.changelingdeath)
- text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds."
+// var/datum/game_mode/changeling/changeling = ticker.mode
+// if (istype(changeling) && changeling.changelingdeath)
+// text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds."
sections["changeling"] = text
/** NUCLEAR ***/
@@ -576,11 +576,8 @@ datum/mind
ticker.mode.changelings -= src
special_role = null
current.remove_changeling_powers()
- current.absorbed_dna = null
- current.chem_charges = 0
- current.changeling_fakedeath = 0
- current.sting_range = 1
- current.changeling_level = 0
+ if(current.changeling)
+ del(current.changeling)
current << "\red You have been brainwashed! You are no longer a changeling!"
if("changeling")
if(!(src in ticker.mode.changelings))
@@ -593,11 +590,11 @@ datum/mind
usr << "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually."
if("initialdna")
- if (!usr.absorbed_dna[1])
+ if (!usr.changeling || !usr.changeling.absorbed_dna[1])
usr << "\red Resetting DNA failed!"
else
- usr.dna = usr.absorbed_dna[usr.absorbed_dna[1]]
- usr.real_name = usr.absorbed_dna[1]
+ usr.dna = usr.changeling.absorbed_dna[usr.changeling.absorbed_dna[1]]
+ usr.real_name = usr.changeling.absorbed_dna[1]
updateappearance(usr, usr.dna.uni_identity)
domutcheck(usr, null)
diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm
index 5f653ee1607..151ffbb5c97 100644
--- a/code/defines/mob/mob.dm
+++ b/code/defines/mob/mob.dm
@@ -197,13 +197,15 @@
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
+/*
//Changeling mode stuff//Carbon
var/changeling_level = 0
var/list/absorbed_dna = list()
var/changeling_fakedeath = 0
var/chem_charges = 20.00
var/sting_range = 1
-
+*/
+ var/datum/changeling/changeling = null
var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
var/obj/control_object // Hacking in to control objects -- TLE
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 25286d41254..5c5ed684c77 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -47,13 +47,11 @@
waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
- changelingdeathtime //timestamp when last changeling was killed
- const/TIME_TO_GET_REVIVED = 3000
- changelingdeath = 0
+ const/changeling_amount = 4
/datum/game_mode/changeling/announce()
world << "The current game mode is - Changeling!"
- world << "There is an alien changeling on the station. Do not let the changeling succeed!"
+ world << "There are alien changelings on the station. Do not let the changelings succeed!"
/*/datum/game_mode/changeling/can_start()
for(var/mob/new_player/P in world)
@@ -70,10 +68,12 @@
possible_changelings -= player
if(possible_changelings.len>0)
- var/datum/mind/changeling = pick(possible_changelings)
- //possible_changelings-=changeling
- changelings += changeling
- modePlayer += changelings
+ for(var/i = 0, i < changeling_amount, i++)
+ if(!possible_changelings.len) break
+ var/datum/mind/changeling = pick(possible_changelings)
+ possible_changelings -= changeling
+ changelings += changeling
+ modePlayer += changelings
return 1
else
return 0
@@ -148,6 +148,7 @@
/datum/game_mode/proc/greet_changeling(var/datum/mind/changeling, var/you_are=1)
if (you_are)
changeling.current << "\red You are a changeling!"
+ changeling.current << "\red Use say \":g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them."
changeling.current << "You must complete the following tasks:"
var/obj_count = 1
@@ -157,7 +158,7 @@
return
/datum/game_mode/changeling/check_finished()
- var/changelings_alive = 0
+/* var/changelings_alive = 0
for(var/datum/mind/changeling in changelings)
if(!istype(changeling.current,/mob/living/carbon))
continue
@@ -175,7 +176,8 @@
if(world.time-changelingdeathtime > TIME_TO_GET_REVIVED)
return 1
else
- return ..()
+ return ..()*/
+ return 0
/datum/game_mode/proc/grant_changeling_powers(mob/living/carbon/human/changeling_mob)
if (!istype(changeling_mob))
@@ -188,7 +190,7 @@
var/changeling_name
var/totalabsorbed = 0
if (changeling.current)
- totalabsorbed = changeling.current.absorbed_dna.len - 1
+ totalabsorbed = changeling.current.changeling.absorbed_dna.len - 1
if(changeling.current)
changeling_name = "[changeling.current.real_name] (played by [changeling.key])"
@@ -212,3 +214,25 @@
else
world << "The changeling has failed!"
return 1
+
+/datum/changeling //stores changeling powers, changeling recharge thingie, changeling absorbed DNA and changeling ID (for changeling hivemind)
+ var/changeling_level = 0
+ var/list/absorbed_dna = list()
+ var/changeling_fakedeath = 0
+ var/chem_charges = 20.00
+ var/sting_range = 1
+ var/changelingID = null
+ var/mob/living/host = null
+
+/datum/changeling/New()
+ ..()
+ var/list/possibleIDs = list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")
+
+ for(var/mob/living/carbon/aChangeling in world)
+ if(aChangeling.changeling)
+ possibleIDs -= aChangeling.changeling.changelingID
+
+ if(possibleIDs.len)
+ changelingID = pick(possibleIDs)
+ else
+ changelingID = "[rand(1,1000)]"
\ No newline at end of file
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 00eb5725f7b..48ab79e588d 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -1,4 +1,7 @@
/mob/proc/make_lesser_changeling()
+ if(!changeling) changeling = new
+ changeling.host = src
+
src.verbs += /client/proc/changeling_lesser_transform
src.verbs += /client/proc/changeling_fakedeath
@@ -6,10 +9,13 @@
src.verbs += /client/proc/changeling_deaf_sting
src.verbs += /client/proc/changeling_silence_sting
- src.changeling_level = 1
+ changeling.changeling_level = 1
return
/mob/proc/make_changeling()
+ if(!changeling) changeling = new
+ changeling.host = src
+
src.verbs += /client/proc/changeling_absorb_dna
src.verbs += /client/proc/changeling_transform
src.verbs += /client/proc/changeling_lesser_form
@@ -22,11 +28,11 @@
src.verbs += /client/proc/changeling_transformation_sting
src.verbs += /client/proc/changeling_boost_range
- src.changeling_level = 2
- if (!src.absorbed_dna)
- src.absorbed_dna = list()
- if (src.absorbed_dna.len == 0)
- src.absorbed_dna[src.real_name] = src.dna
+ changeling.changeling_level = 2
+ if (!changeling.absorbed_dna)
+ changeling.absorbed_dna = list()
+ if (changeling.absorbed_dna.len == 0)
+ changeling.absorbed_dna[src.real_name] = src.dna
return
/mob/proc/make_greater_changeling()
@@ -51,6 +57,10 @@
set category = "Changeling"
set name = "Absorb DNA"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
@@ -70,7 +80,7 @@
usr << "\red We must have a tighter grip to absorb this creature."
return
- usr.chem_charges += 5
+ usr.changeling.chem_charges += 5
var/mob/living/carbon/human/T = M
@@ -100,9 +110,16 @@
usr.visible_message(text("\red [usr] sucks the fluids from [T]!"))
T << "\red You have been absorbed by the changeling!"
- usr.absorbed_dna[T.real_name] = T.dna
+ usr.changeling.absorbed_dna[T.real_name] = T.dna
if(usr.nutrition < 400) usr.nutrition = min((usr.nutrition + T.nutrition), 400)
- usr.chem_charges += 5
+ usr.changeling.chem_charges += 5
+ if(T.changeling)
+ if(T.changeling.absorbed_dna)
+ usr.changeling.absorbed_dna |= T.changeling.absorbed_dna //steal all their loot
+ T.changeling.absorbed_dna = list()
+ T.changeling.absorbed_dna[T.real_name] = T.dna
+ usr.changeling.chem_charges += T.changeling.chem_charges
+ T.changeling.chem_charges = 0
T.death(0)
T.real_name = "Unknown"
@@ -114,28 +131,33 @@
/client/proc/changeling_transform()
set category = "Changeling"
set name = "Transform (5)"
+
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
- if (usr.absorbed_dna.len <= 0)
+ if (usr.changeling.absorbed_dna.len <= 0)
usr << "\red We have not yet absorbed any compatible DNA."
return
- if(usr.chem_charges < 5)
+ if(usr.changeling.chem_charges < 5)
usr << "\red We don't have enough stored chemicals to do that!"
return
- var/S = input("Select the target DNA: ", "Target DNA", null) in usr.absorbed_dna
+ var/S = input("Select the target DNA: ", "Target DNA", null) in usr.changeling.absorbed_dna
if (S == null)
return
- usr.chem_charges -= 5
+ usr.changeling.chem_charges -= 5
usr.visible_message(text("\red [usr] transforms!"))
- usr.dna = usr.absorbed_dna[S]
+ usr.dna = usr.changeling.absorbed_dna[S]
usr.real_name = S
updateappearance(usr, usr.dna.uni_identity)
domutcheck(usr, null)
@@ -151,15 +173,19 @@
set category = "Changeling"
set name = "Lesser Form (1)"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 1)
+ if(usr.changeling.chem_charges < 1)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges--
+ usr.changeling.chem_charges--
usr.remove_changeling_powers()
@@ -189,7 +215,7 @@
var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey(src)
O.dna = usr.dna
usr.dna = null
- O.absorbed_dna = usr.absorbed_dna
+ O.changeling = usr.changeling
for(var/obj/T in usr)
del(T)
@@ -222,30 +248,34 @@
set category = "Changeling"
set name = "Transform (1)"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
- if (usr.absorbed_dna.len <= 0)
+ if (usr.changeling.absorbed_dna.len <= 0)
usr << "\red We have not yet absorbed any compatible DNA."
return
- if(usr.chem_charges < 1)
+ if(usr.changeling.chem_charges < 1)
usr << "\red We don't have enough stored chemicals to do that!"
return
- var/S = input("Select the target DNA: ", "Target DNA", null) in usr.absorbed_dna
+ var/S = input("Select the target DNA: ", "Target DNA", null) in usr.changeling.absorbed_dna
if (S == null)
return
- usr.chem_charges -= 1
+ usr.changeling.chem_charges -= 1
usr.remove_changeling_powers()
usr.visible_message(text("\red [usr] transforms!"))
- usr.dna = usr.absorbed_dna[S]
+ usr.dna = usr.changeling.absorbed_dna[S]
var/list/implants = list()
for (var/obj/item/weapon/implant/I in usr) //Still preserving implants
@@ -280,7 +310,7 @@
O.gender = MALE
O.dna = usr.dna
usr.dna = null
- O.absorbed_dna = usr.absorbed_dna
+ O.changeling = usr.changeling
O.real_name = S
for(var/obj/T in usr)
@@ -312,21 +342,25 @@
set category = "Changeling"
set name = "Regenerative Stasis (20)"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat == 2)
usr << "\red We are dead."
return
- if(usr.chem_charges < 20)
+ if(usr.changeling.chem_charges < 20)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 20
+ usr.changeling.chem_charges -= 20
usr << "\blue We will regenerate our form."
usr.lying = 1
usr.canmove = 0
- usr.changeling_fakedeath = 1
+ usr.changeling.changeling_fakedeath = 1
usr.remove_changeling_powers()
usr.emote("gasp")
@@ -351,10 +385,10 @@
usr << "\blue We have regenerated."
usr.visible_message(text("\red [usr] appears to wake from the dead, having healed all wounds."))
- usr.changeling_fakedeath = 0
- if (usr.changeling_level == 1)
+ usr.changeling.changeling_fakedeath = 0
+ if (usr.changeling.changeling_level == 1)
usr.make_lesser_changeling()
- else if (usr.changeling_level == 2)
+ else if (usr.changeling.changeling_level == 2)
usr.make_changeling()
return
@@ -364,18 +398,22 @@
set name = "Ranged Sting (10)"
set desc="Your next sting ability can be used against targets 3 squares away."
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 10)
+ if(usr.changeling.chem_charges < 10)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 10
+ usr.changeling.chem_charges -= 10
usr << "\blue Your throat adjusts to launch the sting."
- usr.sting_range = 3
+ usr.changeling.sting_range = 3
usr.verbs -= /client/proc/changeling_boost_range
@@ -389,8 +427,12 @@
set name = "Silence sting (10)"
set desc="Sting target"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr:sting_range))
+ for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
@@ -399,17 +441,20 @@
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 10)
+ if(usr.changeling.chem_charges < 10)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 10
- usr.sting_range = 1
+ usr.changeling.chem_charges -= 10
+ usr.changeling.sting_range = 1
usr << "\blue We stealthily sting [T]."
- T << "You feel a small prick and a burning sensation in your throat."
- T.silent += 30
+ if(!T.changeling)
+ T << "You feel a small prick and a burning sensation in your throat."
+ T.silent += 30
+ else
+ T << "You feel a small prick."
usr.verbs -= /client/proc/changeling_silence_sting
@@ -423,8 +468,12 @@
set name = "Blind sting (20)"
set desc="Sting target"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr.sting_range))
+ for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
@@ -432,12 +481,12 @@
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 20)
+ if(usr.changeling.chem_charges < 20)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 20
- usr.sting_range = 1
+ usr.changeling.chem_charges -= 20
+ usr.changeling.sting_range = 1
usr << "\blue We stealthily sting [T]."
@@ -452,12 +501,14 @@
spawn(5)
del(B)
T.canmove = 1
- T << text("\blue Your eyes cry out in pain!")
- T.disabilities |= 1
- spawn(300)
- T.disabilities &= ~1
- T.eye_blind = 10
- T.eye_blurry = 20
+
+ if(!T.changeling)
+ T << text("\blue Your eyes cry out in pain!")
+ T.disabilities |= 1
+ spawn(300)
+ T.disabilities &= ~1
+ T.eye_blind = 10
+ T.eye_blurry = 20
usr.verbs -= /client/proc/changeling_blind_sting
@@ -471,8 +522,12 @@
set name = "Deaf sting (5)"
set desc="Sting target:"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr.sting_range))
+ for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
@@ -481,18 +536,19 @@
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 5)
+ if(usr.changeling.chem_charges < 5)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 5
- usr.sting_range = 1
+ usr.changeling.chem_charges -= 5
+ usr.changeling.sting_range = 1
usr << "\blue We stealthily sting [T]."
- T.sdisabilities |= 4
- spawn(300)
- T.sdisabilities &= ~4
+ if(!T.changeling)
+ T.sdisabilities |= 4
+ spawn(300)
+ T.sdisabilities &= ~4
usr.verbs -= /client/proc/changeling_deaf_sting
@@ -506,8 +562,12 @@
set name = "Paralysis sting (30)"
set desc="Sting target"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr.sting_range))
+ for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
@@ -517,18 +577,22 @@
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 30)
+ if(usr.changeling.chem_charges < 30)
usr << "\red We don't have enough stored chemicals to do that!"
return
- usr.chem_charges -= 30
- usr.sting_range = 1
+ usr.changeling.chem_charges -= 30
+ usr.changeling.sting_range = 1
usr << "\blue We stealthily sting [T]."
- T << "You feel a small prick and a burning sensation."
- if (T.reagents)
- T.reagents.add_reagent("zombiepowder", 20)
+ if(!T.changeling)
+ T << "You feel a small prick and a burning sensation."
+
+ if (T.reagents)
+ T.reagents.add_reagent("zombiepowder", 20)
+ else
+ T << "You feel a small prick."
usr.verbs -= /client/proc/changeling_paralysis_sting
@@ -542,8 +606,12 @@
set name = "Transformation sting (30)"
set desc="Sting target"
+ if(!usr.changeling)
+ usr << "\red You're not a changeling, something's wrong!"
+ return
+
var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr.sting_range))
+ for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
@@ -552,7 +620,7 @@
usr << "\red Not when we are incapacitated."
return
- if(usr.chem_charges < 30)
+ if(usr.changeling.chem_charges < 30)
usr << "\red We don't have enough stored chemicals to do that!"
return
@@ -560,22 +628,23 @@
usr << "\red We can't transform that target!"
return
- var/S = input("Select the target DNA: ", "Target DNA", null) in usr.absorbed_dna
+ var/S = input("Select the target DNA: ", "Target DNA", null) in usr.changeling.absorbed_dna
if (S == null)
return
- usr.chem_charges -= 30
- usr.sting_range = 1
+ usr.changeling.chem_charges -= 30
+ usr.changeling.sting_range = 1
usr << "\blue We stealthily sting [T]."
- T.visible_message(text("\red [T] transforms!"))
+ if(!T.changeling)
+ T.visible_message(text("\red [T] transforms!"))
- T.dna = usr.absorbed_dna[S]
- T.real_name = S
- updateappearance(T, T.dna.uni_identity)
- domutcheck(T, null)
+ T.dna = usr.changeling.absorbed_dna[S]
+ T.real_name = S
+ updateappearance(T, T.dna.uni_identity)
+ domutcheck(T, null)
usr.verbs -= /client/proc/changeling_transformation_sting
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 7ce7bc636ef..bb18d81e40e 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -428,7 +428,7 @@ datum/objective/absorb
return target_amount
check_completion()
- if(owner && owner.current && owner.current.absorbed_dna && ((owner.current.absorbed_dna.len - 1) >= target_amount))
+ if(owner && owner.current && owner.current.changeling && owner.current.changeling.absorbed_dna && ((owner.current.changeling.absorbed_dna.len - 1) >= target_amount))
return 1
else
return 0
diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm
index 7742a335955..551e5684ab2 100644
--- a/code/game/gamemodes/wizard/spells.dm
+++ b/code/game/gamemodes/wizard/spells.dm
@@ -5,10 +5,7 @@
set name = "Blind"
set desc = "This spell temporarly blinds a single person and does not require wizard garb."
- var/list/victims = list()
- for(var/mob/living/carbon/C in oview(usr.sting_range))
- victims += C
- var/mob/M = input(usr, "Who do you wish to sting?") as null | anything in victims
+ var/mob/M = input(usr, "Who do you wish to blind?") as mob in oview()
if(M)
if(usr.stat)
diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm
index 131e81c83d5..72e705fc250 100644
--- a/code/game/objects/devices/scanners.dm
+++ b/code/game/objects/devices/scanners.dm
@@ -194,7 +194,7 @@ MASS SPECTROMETER
O.show_message(text("\red [] has analyzed []'s vitals!", user, M), 1)
//Foreach goto(67)
var/fake_oxy = max(rand(1,40), M.oxyloss, (300 - (M.toxloss + M.fireloss + M.bruteloss)))
- if(M.changeling_fakedeath || M.reagents && M.reagents.has_reagent("zombiepowder"))
+ if((M.reagents && M.reagents.has_reagent("zombiepowder")) || (M.changeling && M.changeling.changeling_fakedeath))
user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, "dead"), 1)
user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", fake_oxy < 50 ? "\red [fake_oxy]" : fake_oxy , M.toxloss > 50 ? "\red [M.toxloss]" : M.toxloss, M.fireloss > 50 ? "\red[M.fireloss]" : M.fireloss, M.bruteloss > 50 ? "\red[M.bruteloss]" : M.bruteloss), 1)
else
@@ -202,7 +202,7 @@ MASS SPECTROMETER
user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", M.oxyloss > 50 ? "\red [M.oxyloss]" : M.oxyloss, M.toxloss > 50 ? "\red [M.toxloss]" : M.toxloss, M.fireloss > 50 ? "\red[M.fireloss]" : M.fireloss, M.bruteloss > 50 ? "\red[M.bruteloss]" : M.bruteloss), 1)
user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1)
user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1)
- if(M.changeling_fakedeath || M.reagents && M.reagents.has_reagent("zombiepowder"))
+ if((M.changeling && M.changeling.changeling_fakedeath) || (M.reagents && M.reagents.has_reagent("zombiepowder")))
user.show_message(text("\blue [] | [] | [] | []", fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.toxloss > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.fireloss > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.bruteloss > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1)
else
user.show_message(text("\blue [] | [] | [] | []", M.oxyloss > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.toxloss > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.fireloss > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.bruteloss > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 268e021ef79..3f256136b23 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1620,7 +1620,7 @@
dat += "