diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
deleted file mode 100644
index ca35d27f8ee..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
+++ /dev/null
@@ -1,513 +0,0 @@
-/mob/living/carbon/human/tajaran/examine()
- set src in oview()
-
- if(!usr || !src) return
- if(((usr.disabilities & 128) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
- usr << "Something is there but you can't see it."
- return
-
- var/skipgloves = 0
- var/skipsuitstorage = 0
- var/skipjumpsuit = 0
- var/skipshoes = 0
- var/skipmask = 0
- var/skipears = 0
- var/skipeyes = 0
-
- //exosuits and helmets obscure our view and stuff.
- if (src.wear_suit)
- skipgloves = src.wear_suit.flags_inv & HIDEGLOVES
- skipsuitstorage = src.wear_suit.flags_inv & HIDESUITSTORAGE
- skipjumpsuit = src.wear_suit.flags_inv & HIDEJUMPSUIT
- skipshoes = src.wear_suit.flags_inv & HIDESHOES
-
- if (src.head)
- skipmask = src.head.flags_inv & HIDEMASK
- skipeyes = src.head.flags_inv & HIDEEYES
- skipears = src.head.flags_inv & HIDEEARS
-
- // crappy hacks because you can't do \his[src] etc. I'm sorry this proc is so unreadable, blame the text macros :<
- var/t_He = "It" //capitalised for use at the start of each line.
- var/t_his = "its"
- var/t_him = "it"
- var/t_has = "has"
- var/t_is = "is"
-
- var/msg = "*---------*\nThis is "
-
- if( skipjumpsuit && (wear_mask || skipmask) ) //big suits/masks 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(MALE)
- t_He = "He"
- t_his = "his"
- t_him = "him"
- if(FEMALE)
- t_He = "She"
- t_his = "her"
- t_him = "her"
-
- msg += "\a [src], one of the cat-like Tajarans!\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"
- else
- msg += "[t_He] [t_is] wearing \icon[src.w_uniform] \a [src.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"
- else
- msg += "[t_He] [t_is] wearing \icon[src.head] \a [src.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"
- else
- msg += "[t_He] [t_is] wearing \icon[src.wear_suit] \a [src.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"
- else
- msg += "[t_He] [t_is] carrying \icon[src.s_store] \a [src.s_store] on [t_his] [src.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"
- else
- msg += "[t_He] [t_has] \icon[src.back] \a [src.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"
- else
- msg += "[t_He] [t_is] holding \icon[src.l_hand] \a [src.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"
- else
- msg += "[t_He] [t_is] holding \icon[src.r_hand] \a [src.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"
- 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] blood-stained hands!\n"
-
- //handcuffed?
- if (src.handcuffed)
- msg += "[t_He] [t_is] \icon[src.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"
- else
- msg += "[t_He] [t_has] \icon[src.belt] \a [src.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"
- else
- msg += "[t_He] [t_is] wearing \icon[src.shoes] \a [src.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"
- else
- msg += "[t_He] [t_has] \icon[src.wear_mask] \a [src.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"
- else
- msg += "[t_He] [t_has] \icon[src.glasses] \a [src.glasses] covering [t_his] eyes.\n"
-
- if (src.l_ear && !skipears)
- msg += "[t_He] [t_has] has a \icon[src.l_ear] [src.l_ear.name] on [t_his] left ear.\n"
-
- if (src.r_ear && !skipears)
- msg += "[t_He] [t_has] has a \icon[src.r_ear] [src.r_ear.name] on [t_his] right ear.\n"
-
- //ID
- if (src.wear_id)
- var/id
- if(istype(src.wear_id, /obj/item/device/pda))
- var/obj/item/device/pda/pda = src.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
- 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"
- else
- msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id].\n"
-
- //Jitters
- if (src.is_jittery)
- if(src.jitteriness >= 300)
- msg += "[t_He] [t_is] convulsing violently!\n"
- else if(src.jitteriness >= 200)
- msg += "[t_He] [t_is] extremely jittery.\n"
- else if(src.jitteriness >= 100)
- msg += "[t_He] [t_is] twitching ever so slightly.\n"
-
- var/distance = get_dist(usr,src)
- if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything
- distance = 1
-
- if (src.stat == 1 || stat == 2)
- msg += "[name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep.\n"
- if((!isbreathing || holdbreath) && distance <= 3)
- msg += "[name] does not appear to be breathing.\n"
- if(istype(usr, /mob/living/carbon/human) && usr.stat == 0 && src.stat == 1 && distance <= 1)
- for(var/mob/O in viewers(usr.loc, null))
- O.show_message("[usr] checks [src]'s pulse.", 1)
- spawn(15)
- usr << "\blue [name] has a pulse!"
-
- if (src.stat == 2 || (changeling && changeling.changeling_fakedeath == 1))
- if(distance <= 1)
- if(istype(usr, /mob/living/carbon/human) && usr.stat == 0)
- for(var/mob/O in viewers(usr.loc, null))
- O.show_message("[usr] checks [src]'s pulse.", 1)
- spawn(15)
- usr << "\red [name] has no pulse!"
-
-/* if (src.getBruteLoss())
- if (src.getBruteLoss() < 30)
- usr << "\red [src.name] looks slightly injured!"
- else
- usr << "\red [src.name] looks severely injured!"*/
-
- if (src.cloneloss)
- if (src.cloneloss < 30)
- msg += "[src.name] looks slightly... unfinished?\n"
- else
- msg += "[src.name] looks very... unfinished?\n"
-
-/* if (src.getFireLoss())
- if (src.getFireLoss() < 30)
- usr << "\red [src.name] looks slightly burned!"
- else
- usr << "\red [src.name] looks severely burned!"*/
- msg += ""
- if (src.nutrition < 100)
- msg += "[t_He] [t_is] severely malnourished.\n"
- else if (src.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.getBrainLoss() >= 60 && !stat)
- msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n"
-
- if (!src.client)
- msg += "[t_He] [t_has] a vacant, braindead stare...\n"
-
- var/list/wound_descriptions = list()
- var/list/wound_flavor_text = list()
- for(var/named in organs)
- var/datum/organ/external/temp = organs[named]
- if(temp)
- if(temp.destroyed)
- wound_flavor_text["[temp.display_name]"] = "[t_He] is missing [t_his] [temp.display_name].\n"
- continue
- if(temp.robot)
- if(!(temp.brute_dam + temp.burn_dam))
- wound_flavor_text["[temp.display_name]"] = "[t_He] has a robot arm!\n"
- else
- wound_flavor_text["[temp.display_name]"] = "[t_He] has a robot arm, it has"
- switch(temp.brute_dam)
- if(0)
- wound_flavor_text["[temp.display_name]"] += ""
- else if(0 to 20)
- wound_flavor_text["[temp.display_name]"] += " some dents"
- else if(20 to INFINITY)
- wound_flavor_text["[temp.display_name]"] += pick(" a lot of dents"," severe denting")
- if(temp.brute_dam && temp.brute_dam)
- wound_flavor_text["[temp.display_name]"] += " and"
- switch(temp.burn_dam)
- if(0)
- wound_flavor_text["[temp.display_name]"] += ""
- else if(0 to 20)
- wound_flavor_text["[temp.display_name]"] += " some burns"
- else if(20 to INFINITY)
- wound_flavor_text["[temp.display_name]"] += pick(" a lot of burns"," severe melting")
- wound_flavor_text["[temp.display_name]"] += "!\n"
- else if(temp.wounds)
- var/list/wounds = list(list(),list(),list(),list(),list(),list())
- for(var/datum/organ/wound/w in temp.wounds)
- switch(w.healing_state)
- if(0)
- var/list/cut = wounds[1]
- cut += w
- wounds[1] = cut
- if(1)
- var/list/cut = wounds[2]
- cut += w
- wounds[2] = cut
- if(2)
- var/list/cut = wounds[3]
- cut += w
- wounds[3] = cut
- if(3)
- var/list/cut = wounds[4]
- cut += w
- wounds[4] = cut
- if(4)
- var/list/cut = wounds[5]
- cut += w
- wounds[5] = cut
- if(5)
- var/list/cut = wounds[6]
- cut += w
- wounds[6] = cut
- wound_descriptions["[temp.display_name]"] = wounds
- else
- wound_flavor_text["[temp.display_name]"] = ""
- //Now that we have a big list of all the wounds, on all the limbs.
- var/list/is_bleeding = list()
- for(var/named in wound_descriptions)
- var/list/wound_states = wound_descriptions[named]
- var/list/flavor_text = list()
- for(var/i = 1, i <= 6, i++)
- var/list/wound_state = wound_states[i] //All wounds at this level of healing.
- var/list/tally = list("cut" = 0, "deep cut" = 0, "flesh wound" = 0, "gaping wound" = 0, "big gaping wound" = 0, "massive wound" = 0,\
- "tiny bruise" = 0, "small bruise" = 0, "moderate bruise" = 0, "large bruise" = 0, "huge bruise" = 0, "monumental bruise" = 0,\
- "small burn" = 0, "moderate burn" = 0, "large burn" = 0, "severe burn" = 0, "deep burn" = 0, "carbonised area" = 0) //How many wounds of what size.
- for(var/datum/organ/wound/w in wound_state)
- if(w.bleeding && !is_bleeding[named]) is_bleeding[named] = 1
- switch(w.wound_size)
- if(1)
- switch(w.wound_type)
- if(0)
- tally["cut"] += 1
- if(1)
- tally["tiny bruise"] += 1
- if(2)
- tally["small burn"] += 1
- if(2)
- switch(w.wound_type)
- if(0)
- tally["deep cut"] += 1
- if(1)
- tally["small bruise"] += 1
- if(2)
- tally["moderate burn"] += 1
- if(3)
- switch(w.wound_type)
- if(0)
- tally["flesh wound"] += 1
- if(1)
- tally["moderate bruise"] += 1
- if(2)
- tally["large burn"] += 1
- if(4)
- switch(w.wound_type)
- if(0)
- tally["gaping wound"] += 1
- if(1)
- tally["large bruise"] += 1
- if(2)
- tally["severe burn"] += 1
- if(5)
- switch(w.wound_type)
- if(0)
- tally["big gaping wound"] += 1
- if(1)
- tally["huge bruise"] += 1
- if(2)
- tally["deep burn"] += 1
- if(6)
- switch(w.wound_type)
- if(0)
- tally["massive wound"] += 1
- if(1)
- tally["monumental bruise"] += 1
- if(2)
- tally["carbonised area"] += 1
- for(var/tallied in tally)
- if(!tally[tallied])
- continue
- //if(flavor_text_string && tally[tallied])
- // for(
- // flavor_text_string += pick(list(", as well as", ", in addition to")) //add more later.
- var/tallied_rename = list("cut" = "cut","deep cut" = "deep cut", "flesh wound" = "flesh wound",\
- "gaping wound" = "gaping wound", "big gaping wound" = "big gaping wound", "massive wound" = "massive wound",\
- "tiny bruise" = "tiny bruise", "small bruise" = "small bruise", "moderate bruise" = "moderate bruise",\
- "large bruise" = "large bruise", "huge bruise" = "huge bruise", "monumental bruise" = "monumental bruise",\
- "small burn" = "small burn", "moderate burn" = "moderate burn", "large burn" = "large burn",\
- "severe burn" = "severe burn", "deep burn" = "deep burn", "carbonised area" = "carbonised area")
- switch(i)
- if(2) //Healing wounds.
- if(tallied in list("cut","tiny bruise","small burn"))
- continue
- tallied_rename = list("deep cut" = "clotted cut", "flesh wound" = "small bandaged wound",\
- "gaping wound" = "bandaged wound", "big gaping wound" = "gauze wrapped wound",\
- "massive wound" = "massive blood soaked bandage", "small bruise" = "small bruise",\
- "moderate bruise" = "moderate bruise", "large bruise" = "large bruise",\
- "huge bruise" = "huge bruise", "monumental bruise" = "monumental bruise",\
- "moderate burn" = "moderate salved burn", "large burn" = "large salved burn",\
- "severe burn" = "severe salved burn", "deep burn" = "deep salved burn",\
- "carbonised area" = "treated carbonised area")
- if(3)
- if(tallied in list("cut","tiny bruise","small burn"))
- continue
- tallied_rename = list("deep cut" = "fading cut", "flesh wound" = "small healing wound",\
- "gaping wound" = "healing wound", "big gaping wound" = "big healing wound",\
- "massive wound" = "massive healing wound", "small bruise" = "tiny bruise",\
- "moderate bruise" = "small bruise", "large bruise" = "moderate bruise",\
- "huge bruise" = "large bruise", "monumental bruise" = "huge bruise",\
- "moderate burn" = "healing moderate burn", "large burn" = "healing large burn",\
- "severe burn" = "healing severe burn", "deep burn" = "healing deep burn",\
- "carbonised area" = "slowly healing carbonised area")
- if(4)
- if(tallied in list("cut","deep cut","tiny bruise", "small bruise","small burn", "moderate burn"))
- continue
- tallied_rename = list("flesh wound" = "small red scar", "gaping wound" = "angry straight scar",\
- "big gaping wound" = "jagged angry scar", "massive wound" = "gigantic angry scar",\
- "moderate bruise" = "tiny bruise", "large bruise" = "small bruise",\
- "huge bruise" = "moderate bruise", "monumental bruise" = "large bruise",\
- "large burn" = "large burn scar", "severe burn" = "severe burn scar",\
- "deep burn" = "deep burn scar", "carbonised area" = "healing carbonised area")
- if(5)
- if(tallied in list("cut","deep cut","tiny bruise", "small bruise", "moderate bruise","small burn", "moderate burn"))
- continue
- tallied_rename = list("flesh wound" = "small scar", "gaping wound" = "straight scar",\
- "big gaping wound" = "jagged scar", "massive wound" = "gigantic scar",\
- "large bruise" = "tiny bruise",\
- "huge bruise" = "small bruise", "monumental bruise" = "moderate bruise",\
- "large burn" = "large burn scar", "severe burn" = "severe burn scar",\
- "deep burn" = "deep burn scar", "carbonised area" = "large scarred area")
- if(6)
- if(tallied in list("cut","deep cut","flesh wound","tiny bruise", "small bruise", "moderate bruise", "large bruise", "huge bruise","small burn", "moderate burn"))
- continue
- tallied_rename = list("gaping wound" = "straight scar",\
- "big gaping wound" = "jagged scar", "massive wound" = "gigantic scar",\
- "monumental bruise" = "tiny bruise",\
- "large burn" = "large burn scar", "severe burn" = "severe burn scar",\
- "deep burn" = "deep burn scar", "carbonised area" = "large scarred area")
- var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\
- "huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area")
- switch(tally[tallied])
- if(1)
- if(!flavor_text.len)
- flavor_text += "\The [src] has[prob(4) && !(tallied in no_exclude) ? " what might be" : ""] a [tallied_rename[tallied]]"
- else
- flavor_text += "[prob(4) && !(tallied in no_exclude) ? " what might be" : ""] a [tallied_rename[tallied]]"
- if(2)
- if(!flavor_text.len)
- flavor_text += "\The [src] has[prob(4) && !(tallied in no_exclude) ? " what might be" : ""] a pair of [tallied_rename[tallied]]s"
- else
- flavor_text += "[prob(4) && !(tallied in no_exclude) ? " what might be" : ""] a pair of [tallied_rename[tallied]]s"
- if(3 to 5)
- if(!flavor_text.len)
- flavor_text += "\The [src] has several [tallied_rename[tallied]]s"
- else
- flavor_text += " several [tallied_rename[tallied]]s"
- if(6 to INFINITY)
- if(!flavor_text.len)
- flavor_text += "\The [src] has a bunch of [tallied_rename[tallied]]s"
- else
- flavor_text += " a ton of [tallied_rename[tallied]]s"
- if(flavor_text.len)
- var/flavor_text_string = ""
- for(var/text = 1, text <= flavor_text.len, text++)
- if(text == flavor_text.len && flavor_text.len > 1)
- flavor_text_string += ", and"
- else if(flavor_text.len > 1)
- flavor_text_string += ","
- flavor_text_string += flavor_text[text]
- flavor_text_string += " on [t_his] [named].
"
- wound_flavor_text["[named]"] = flavor_text_string
- var/display_chest = 0
- var/display_shoes = 0
- var/display_gloves = 0
- if(wound_flavor_text["head"] && (is_destroyed["head"] || (!skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))))
- msg += wound_flavor_text["head"]
- else if(is_bleeding["head"])
- msg += "[src] has blood running down [t_his] face!\n"
- if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit) //No need. A missing chest gibs you.
- msg += wound_flavor_text["chest"]
- else if(is_bleeding["chest"])
- display_chest = 1
- if(wound_flavor_text["left arm"] && (is_destroyed["left arm"] || (!w_uniform && !skipjumpsuit)))
- msg += wound_flavor_text["left arm"]
- else if(is_bleeding["left arm"])
- display_chest = 1
- if(wound_flavor_text["left hand"] && (is_destroyed["left hand"] || (!gloves && !skipgloves)))
- msg += wound_flavor_text["left hand"]
- else if(is_bleeding["left hand"])
- display_gloves = 1
- if(wound_flavor_text["right arm"] && (is_destroyed["right arm"] || (!w_uniform && !skipjumpsuit)))
- msg += wound_flavor_text["right arm"]
- else if(is_bleeding["right arm"])
- display_chest = 1
- if(wound_flavor_text["right hand"] && (is_destroyed["right hand"] || (!gloves && !skipgloves)))
- msg += wound_flavor_text["right hand"]
- else if(is_bleeding["right hand"])
- display_gloves = 1
- if(wound_flavor_text["groin"] && (is_destroyed["groin"] || (!w_uniform && !skipjumpsuit)))
- msg += wound_flavor_text["groin"]
- else if(is_bleeding["groin"])
- display_chest = 1
- if(wound_flavor_text["left leg"] && (is_destroyed["left leg"] || (!w_uniform && !skipjumpsuit)))
- msg += wound_flavor_text["left leg"]
- else if(is_bleeding["left leg"])
- display_chest = 1
- if(wound_flavor_text["left foot"]&& (is_destroyed["left foot"] || (!shoes && !skipshoes)))
- msg += wound_flavor_text["left foot"]
- else if(is_bleeding["left foot"])
- display_shoes = 1
- if(wound_flavor_text["right leg"] && (is_destroyed["right leg"] || (!w_uniform && !skipjumpsuit)))
- msg += wound_flavor_text["right leg"]
- else if(is_bleeding["right leg"])
- display_chest = 1
- if(wound_flavor_text["right foot"]&& (is_destroyed["right foot"] || (!shoes && !skipshoes)))
- msg += wound_flavor_text["right foot"]
- else if(is_bleeding["right foot"])
- display_shoes = 1
- if(display_chest)
- msg += "[src] has blood soaking through from under [t_his] clothing!\n"
- if(display_shoes)
- msg += "[src] has blood running from [t_his] shoes!\n"
- if(display_gloves)
- msg += "[src] has blood running from under [t_his] gloves!\n"
-
-
-// if(w.bleeding)
-// usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
-// continue
-
- msg += "[print_flavor_text()]\n"
-
- msg += "\blue *---------*"
- usr << msg
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/say.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/say.dm
deleted file mode 100644
index f350024247b..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/say.dm
+++ /dev/null
@@ -1,511 +0,0 @@
-//their language needs to hook into radios as well
-
-/mob/living/carbon/human/tajaran/say_quote(var/text,var/is_speaking_taj)
- //work out if the listener can understand or not
-
- var/ending = copytext(text, length(text))
- /*if (src.disease_symptoms & DISEASE_HOARSE)
- return "rasps, \"[text]\"";*/
- if (src.stuttering)
- return "stammers, \"[text]\"";
- if (src.slurring)
- return "slurrs, \"[text]\"";
- if (src.brainloss >= 60)
- return "gibbers, \"[text]\"";
-
- if(is_speaking_taj)
- return "mrowls, \"[text]\""//pick("yowls, \"[text]\"", "growls, \"[text]\"","mewls, \"[text]\"", "mrowls, \"[text]\"", "meows, \"[text]\"", "purrs, \"[text]\"");
-
- if (ending == "?")
- return "asks, \"[text]\"";
- else if (ending == "!")
- return "exclaims, \"[text]\"";
-
- return "says, \"[text]\"";
-
-//convert message to an indecipherable series of sounds for anyone who isnt tajaran
-/mob/living/carbon/human/tajaran/proc/tajspeak(var/message)
- //return stars(message)
- var/te = html_decode(message)
- var/t = ""
- var/n = length(message)
- var/p = 1
- while(p <= n)
- if (copytext(te, p, p + 1) != " ")
- t = text("[][]", t, pick(tajspeak_letters))
- p++
- return html_encode(t)
- /*if (pr == null)
- pr = 25
- if (pr <= 0)
- return null
- else
- if (pr >= 100)
- return n
- var/te = html_decode(n)
- var/t = ""
- n = length(n)
- var/p = null
- p = 1
- while(p <= n)
- if ((copytext(te, p, p + 1) == " " || prob(pr)))
- t = text("[][]", t, copytext(te, p, p + 1))
- else
- t = text("[]*", t)
- p++
- return html_encode(t)*/
-
-/mob/living/carbon/human/tajaran/say(var/message)
- var/message_old = message
- message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
-
- if (!message)
- return
-
- log_say("[name]/[key] : [message]")
-
- if (length(message) >= 1)
- if (miming && copytext(message, 1, 2) != "*")
- return
-
- if (stat == 2)
- return say_dead(message)
-
- if (silent)
- return
-
- if (src.client && (client.muted || src.client.muted_complete))
- src << "You are muted."
- return
-
- // wtf?
- if (stat)
- return
-
- // Mute disability
- if (disabilities & 64)
- return
-
- if (istype(wear_mask, /obj/item/clothing/mask/muzzle))
- return
-
- // emotes
- if (copytext(message, 1, 2) == "*" && !stat)
- return emote(copytext(message, 2))
-
- var/alt_name = ""
- if (istype(src, /mob/living/carbon/human) && name != real_name)
- var/mob/living/carbon/human/H = src
- alt_name = " (as [H.get_visible_name()])"
- var/italics = 0
- var/message_range = null
- var/message_mode = null
-
- if (brainloss >= 60 && prob(50))
- if (ishuman(src))
- message_mode = "headset"
- // Special message handling
- else if (copytext(message, 1, 2) == ";")
- if (ishuman(src))
- message_mode = "headset"
- else if(istype(src, /mob/living/silicon/pai) || istype(src, /mob/living/silicon/robot))
- message_mode = "pAI"
- message = copytext(message, 2)
-
- else if (length(message) >= 2)
- var/channel_prefix = copytext(message, 1, 3)
-
- message_mode = department_radio_keys[channel_prefix]
- //world << "channel_prefix=[channel_prefix]; message_mode=[message_mode]"
- if (message_mode)
- message = trim(copytext(message, 3))
- if (!ishuman(src) && (message_mode=="department" || (message_mode in radiochannels)))
- message_mode = null //only humans can use headsets
-
- if (!message)
- return
-
- //work out if we're speaking tajaran or not
- var/is_speaking_taj = 0
- if(copytext(message, 1, 3) == ":j" || copytext(message, 1, 3) == ":J")
- message = copytext(message, 3)
- if(taj_talk_understand || universal_speak)
- is_speaking_taj = 1
-
- if( !message_mode && (disease_symptoms & DISEASE_WHISPER))
- message_mode = "whisper"
-
- if(src.stunned > 0 || (traumatic_shock > 61 && prob(50)))
- message_mode = "" //Stunned people shouldn't be able to physically turn on their radio/hold down the button to speak into it
-
-
- message = capitalize(message) //capitalize the first letter of what they actually say
-
- // :downs:
- if (brainloss >= 60)
- message = dd_replacetext(message, " am ", " ")
- message = dd_replacetext(message, " is ", " ")
- message = dd_replacetext(message, " are ", " ")
- message = dd_replacetext(message, "you", "u")
- message = dd_replacetext(message, "help", "halp")
- message = dd_replacetext(message, "grief", "grife")
- message = dd_replacetext(message, "space", "spess")
- message = dd_replacetext(message, "carp", "crap")
- message = dd_replacetext(message, "reason", "raisin")
- if(prob(50))
- message = uppertext(message)
- message += "[stutter(pick("!", "!!", "!!!"))]"
- if(!stuttering && prob(15))
- message = stutter(message)
-
- if (stuttering)
- message = stutter(message)
- if (slurring)
- message = slur(message)
-
-/* //qw do not have beesease atm.
- if(virus)
- if(virus.name=="beesease" && virus.stage>=2)
- if(prob(virus.stage*10))
- var/bzz = length(message)
- message = "B"
- for(var/i=0,i[gender=="male"?"Mr.":"Mrs."] [changeling.changelingID]: [message]"
- return
-////SPECIAL HEADSETS START
- else
- //world << "SPECIAL HEADSETS"
- if (message_mode in radiochannels)
- if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
- src:l_ear.talk_into(src, message, message_mode)
- used_radios += src:l_ear
- else if (src:r_ear)
- src:r_ear.talk_into(src, message, message_mode)
- used_radios += src:r_ear
- message_range = 1
- italics = 1
-/////SPECIAL HEADSETS END
-
- var/list/listening
-/*
- if(istype(loc, /obj/item/device/aicard)) // -- TLE
- var/obj/O = loc
- if(istype(O.loc, /mob))
- var/mob/M = O.loc
- listening = hearers(message_range, M)
- else
- listening = hearers(message_range, O)
- else
- listening = hearers(message_range, src)
-
- for (var/obj/O in view(message_range, src))
- for (var/mob/M in O)
- listening += M // maybe need to check if M can hear src
- spawn (0)
- if (O)
- O.hear_talk(src, message)
-
- if (!(src in listening))
- listening += src
-
-*/
- var/turf/T = get_turf(src)
- listening = hearers(message_range, T)
- var/list/V = view(message_range, T)
- var/list/W = V
- //find mobs in lockers, cryo, intellicards, brains, MMIs, and so on.
- for (var/mob/M in world)
- if (!M.client)
- continue //skip monkeys and leavers
- if (istype(M, /mob/new_player))
- continue
- if (M.stat <2) //is alive
- if (isturf(M.loc))
- continue //if M can hear us it was already found by hearers()
- if (get_turf(M) in V) //this is slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
- listening+=M
- else
- if (M.client && M.client.ghost_ears)
- listening|=M
-
- var/list/eavesdroppers = get_mobs_in_view(7, src)
- for(var/mob/M in listening)
- eavesdroppers.Remove(M)
- for(var/mob/M in eavesdroppers)
- if(M.stat)
- eavesdroppers.Remove(M)
-
- for (var/obj/O in ((W | contents)-used_radios))
- W |= O
-
- for (var/mob/M in W)
- W |= M.contents
- if(hasorgans(M))
- var/mob/living/carbon/G = M
- for(var/name in G:organs)
- var/datum/organ/external/F = G:organs[name]
- for(var/obj/item/weapon/implant/I in F.implant)
- W |= I
-
- for (var/obj/item/device/pda/M in W)
- W |= M.contents
-
- for (var/obj/O in W) //radio in pocket could work, radio in backpack wouldn't --rastaf0
- spawn (0)
- if(O && !istype(O.loc, /obj/item/weapon/storage))
- O.hear_talk(src, message)
-
- if(isbrain(src))//For brains to properly talk if they are in an MMI..or in a brain. Could be extended to other mobs I guess.
- for(var/obj/O in loc)//Kinda ugly but whatever.
- if(O)
- spawn(0)
- O.hear_talk(src, message)
-
- var/list/heard_a = list() // understood us
- var/list/heard_b = list() // didn't understand us
-
- for (var/mob/M in listening)
- //if speaking in tajaran, only let other tajs understand
- if ( M.say_understands(src) && (M.taj_talk_understand || !is_speaking_taj || M.universal_speak) )
- heard_a += M
- else
- heard_b += M
-
- var/speech_bubble_test = say_test(message)
- var/image/speech_bubble = image('talk.dmi',src,"h[speech_bubble_test]")
-
- var/rendered = null
- if (length(heard_a))
- var/message_a = say_quote(message,is_speaking_taj)
- if (italics)
- message_a = "[message_a]"
- if (!istype(src, /mob/living/carbon/human))
- rendered = "[name] [message_a]"
- else if(istype(wear_mask, /obj/item/clothing/mask/gas/voice))
- if(wear_mask:vchange)
- rendered = "[wear_mask:voice] [message_a]"
- else
- rendered = "[name] [message_a]"
- else
- rendered = "[real_name][alt_name] [message_a]"
-
-
-/*
- // Create speech bubble
- var/obj/effect/speech_bubble/B = new/obj/effect/speech_bubble
- B.icon = 'speechbubble.dmi'
- B.parent = src
- B.mouse_opacity = 0
- B.invisibility = invisibility
- B.layer = 10
-
- // Determine if the speech bubble's going to have a special look
- var/presay = ""
- if(istype(src, /mob/living/silicon))
- presay = "bot"
- if(istype(src, /mob/living/carbon/alien))
- presay = "xeno"
- if(istype(src, /mob/living/carbon/metroid))
- presay = "metroid"
-*/
- for (var/mob/M in heard_a)
-
- M.show_message(rendered, 2)
- M << speech_bubble
- spawn(30) del(speech_bubble)
- //spawn(30) del(speech_bubble)
- /*
- if(M.client)
-
- // If this client has bubbles disabled, obscure the bubble
- if(!M.client.bubbles || M == src)
- var/image/I = image('speechbubble.dmi', B, "override")
- I.override = 1
- M << I
- */
-
- /*
- // find the suffix, if bot, human or monkey
- var/punctuation = ""
- if(presay == "bot" || presay == "")
- var/ending = copytext(text, length(text))
- if (ending == "?")
- punctuation = "question"
- else if (ending == "!")
- punctuation = "exclamation"
- else
- punctuation = ""
-
- // flick the bubble
- flick("[presay]say[punctuation]", B)
-
- if(istype(loc, /turf))
- B.loc = loc
- else
- B.loc = loc.loc
-
- spawn()
- sleep(11)
- del(B)
- */
-
- if (length(heard_b))
- var/message_b = tajspeak(message)
- message_b = say_quote(message_b,1)
-
- if (italics)
- message_b = "[message_b]"
-
- rendered = "[voice_name] [message_b]"
-
-
- /*
- // Create speech bubble
- var/obj/effect/speech_bubble/B = new/obj/effect/speech_bubble
- B.icon = 'speechbubble.dmi'
- B.parent = src
- B.mouse_opacity = 0
- B.invisibility = invisibility
- B.layer = 10
-
- // Determine if the speech bubble's going to have a special look
- var/presay = ""
- if(istype(src, /mob/living/silicon))
- presay = "bot"
- if(istype(src, /mob/living/carbon/alien))
- presay = "xeno"
- if(istype(src, /mob/living/carbon/metroid))
- presay = "metroid"
- */
-
- for (var/mob/M in heard_b)
- M.show_message(rendered, 2)
- M << speech_bubble
- spawn(30) del(speech_bubble)
-
- /*
- if(M.client)
-
- if(!M.client.bubbles || M == src)
- var/image/I = image('speechbubble.dmi', B, "override")
- I.override = 1
- M << I
-
-
- flick("[presay]say", B)
-
- if(istype(loc, /turf))
- B.loc = loc
- else
- B.loc = loc.loc
-
- spawn()
- sleep(11)
- del(B)
- */
-
- if (length(eavesdroppers))
-
- for (var/mob/M in eavesdroppers)
- M << "\blue [src] speaks into their radio..."
- M << speech_bubble
- spawn(30) del(speech_bubble)
-
-/mob/living/carbon/human/tajaran/say_understands(var/other)
- if (istype(other, /mob/living/silicon/ai))
- return 1
- if (istype(other, /mob/living/silicon/decoy))
- return 1
- if (istype(other, /mob/living/silicon/pai))
- return 1
- if (istype(other, /mob/living/silicon/robot))
- return 1
- if (istype(other, /mob/living/carbon/brain))
- return 1
- if (istype(other, /mob/living/carbon/metroid))
- return 1
- if (istype(other, /mob/living/carbon/human))
- return 1
- return ..()
\ No newline at end of file
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm
deleted file mode 100644
index 8a42b794f0a..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm
+++ /dev/null
@@ -1,74 +0,0 @@
-/mob/living/carbon/human/proc/Tajaraize()
- if (monkeyizing)
- return
- monkeyizing = 1
- canmove = 0
- icon = null
- invisibility = 101
- overlays = list()
-
- var/atom/movable/overlay/animation = new /atom/movable/overlay( loc )
- animation.icon_state = "blank"
- animation.icon = 'mob.dmi'
- animation.master = src
- flick("h2monkey", animation)
- sleep(18)
- //animation = null
- var/mob/living/carbon/human/tajaran/O = new /mob/living/carbon/human/tajaran( loc )
- del(animation)
- O.organs.Cut()
- O.organs = organs
- for(var/name in O.organs) //Ensuring organ trasnfer
- var/datum/organ/external/organ = O.organs[name]
- organ.owner = O
- for(var/obj/item/weapon/implant/implant in organ.implant)
- implant.imp_in = O
- for(var/obj/hud/H in contents) //Lets not get a duplicate hud
- del(H)
- for(var/named in vars) //Making them keep their crap.
- if(istype(vars[named], /obj/item))
- O.vars[named] = vars[named]
- else if (named == "contents")
- O.vars[named] = vars[named]
-
- O.real_name = real_name
- O.name = name
- O.dna = dna
- updateappearance(O,O.dna.uni_identity)
- O.loc = loc
- O.viruses = viruses
- O.s_tone = s_tone
- viruses = list()
- for(var/datum/disease/D in O.viruses)
- D.affected_mob = O
- O.flavor_text = flavor_text
- O.universal_speak = 1 //hacky fix until someone can figure out how to make them only understand humans
-
- if (client)
- client.mob = O
- if(mind)
- mind.transfer_to(O)
-
- del(O.stand_icon) //Force it to update.
- del(O.lying_icon)
-
- O.update_body()
- O.update_face()
- spawn(1)
- O.rebuild_appearance()
- O << "You are now a Tajara."
- spawn(0)//To prevent the proc from returning null.
- del(src)
- return
-
-/client/proc/make_tajaran(mob/living/carbon/human/H as mob)
- set category = "Fun"
- set name = "Make Tajaran"
- set desc = "Make (mob) into a tajaran."
-
- if (!holder)
- src << "Only administrators may use this command."
- return
-
- if(istype(H))
- H:Tajaraize()
\ No newline at end of file
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
deleted file mode 100644
index d000dba7c3a..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
+++ /dev/null
@@ -1,613 +0,0 @@
-/mob/living/carbon/human/tajaran
- name = "tajaran"
- real_name = "tajaran"
- voice_name = "tajaran"
- icon = 'tajaran.dmi'
- icon_state = "m_none"
- var/list/tajspeak_letters = list("~","*","-")
- //universal_speak = 1 (I think I fixed it, need testy testy) hacky fix until someone can figure out how to make them only understand humans
- taj_talk_understand = 1
- voice_message = "mrowls"
- examine_text = "one of the cat-like Tajarans"
-
-/mob/living/carbon/human/tajaran/New()
- var/g = "m"
- if (gender == FEMALE)
- g = "f"
-
- spawn (1)
- if(!stand_icon)
- stand_icon = new /icon('tajaran.dmi', "body_[g]_s")
- if(!lying_icon)
- lying_icon = new /icon('tajaran.dmi', "body_[g]_l")
- icon = stand_icon
- rebuild_appearance()
- src << "\blue Your icons have been generated!"
-
- ..()
-
- spawn(33)
- update_clothing()
- update_body()
- update_face()
-
-/mob/living/carbon/human/tajaran/rebuild_appearance()
- update_clothing()
-
-/mob/living/carbon/human/tajaran/update_body_appearance()
- update_clothing()
-
-/mob/living/carbon/human/tajaran/update_clothing()
-// ..()
-
- if (monkeyizing)
- return
-
- overlays = null
-
- // lol
- var/fat = ""
- /*if (FAT in mutation)
- fat = "fat"*/
-/*
- if (HULK in mutations)
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]")
-*/
- if (COLD_RESISTANCE in mutations)
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "fire[fat][!lying ? "_s" : "_l"]")
-
- if (TK in mutations)
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "telekinesishead[fat][!lying ? "_s" : "_l"]")
-
- if (LASER in mutations)
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "lasereyes[!lying ? "_s" : "_l"]")
-
- if (mutantrace)
- switch(mutantrace)
- if("golem","metroid")
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace][fat][!lying ? "_s" : "_l"]")
- if(face_standing)
- del(face_standing)
- if(face_lying)
- del(face_lying)
- if(stand_icon)
- del(stand_icon)
- if(lying_icon)
- del(lying_icon)
- if("lizard")
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace][fat]_[gender][!lying ? "_s" : "_l"]")
- if(face_standing)
- del(face_standing)
- if(face_lying)
- del(face_lying)
- if(stand_icon)
- del(stand_icon)
- if(lying_icon)
- del(lying_icon)
- if("skrell")
- body_overlays_standing += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace]_[gender]_s")
- body_overlays_lying += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace]_[gender]_l")
-// This needs to be matched up with humans, but I'm too lazy right now
-// if(face_standing)
-// del(face_standing)
-// if(face_lying)
-// del(face_lying)
- if(stand_icon)
- del(stand_icon)
- if(lying_icon)
- del(lying_icon)
- if("plant")
- if(stat != 2) //if not dead, that is
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace][fat]_[gender][!lying ? "_s" : "_l"]")
- else
- overlays += image("icon" = 'genetics.dmi', "icon_state" = "[mutantrace]_d")
- if(face_standing)
- del(face_standing)
- if(face_lying)
- del(face_lying)
- if(stand_icon)
- del(stand_icon)
- if(lying_icon)
- del(lying_icon)
- else
- if(!face_standing || !face_lying)
- update_face()
- if(!stand_icon || !lying_icon)
- update_body()
-
- if(buckled)
- if(istype(buckled, /obj/structure/stool/bed))
- lying = 1
- else
- lying = 0
-
- // Automatically drop anything in store / id / belt if you're not wearing a uniform.
- if (!w_uniform)
- for (var/obj/item/thing in list(r_store, l_store, wear_id, belt))
- if (thing)
- u_equip(thing)
- if (client)
- client.screen -= thing
-
- if (thing)
- thing.loc = loc
- thing.dropped(src)
- thing.layer = initial(thing.layer)
-
-
- //if (zone_sel)
- // zone_sel.overlays = null
- // zone_sel.overlays += body_standing
- // zone_sel.overlays += image("icon" = 'zone_sel.dmi', "icon_state" = text("[]", zone_sel.selecting))
-
- if (lying)
- icon = lying_icon
-
- overlays += damageicon_lying
-
- if (face_lying)
- overlays += face_lying
- else
- icon = stand_icon
-
- overlays += damageicon_standing
-
- if (face_standing)
- overlays += face_standing
-
- // Uniform
- if(w_uniform)
- /*if ((FAT in mutations) && !(w_uniform.flags & ONESIZEFITSALL))
- src << "\red You burst out of the [w_uniform.name]!"
- var/obj/item/clothing/c = w_uniform
- u_equip(c)
- if(client)
- client.screen -= c
- if(c)
- c:loc = loc
- c:dropped(src)
- c:layer = initial(c:layer)*/
- if(w_uniform)//I should really not need these
- w_uniform.screen_loc = ui_iclothing
- if(istype(w_uniform, /obj/item/clothing/under))
- var/t1 = w_uniform.color
- if (!t1)
- t1 = icon_state
- /*if (FAT in mutations)
- overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER)
- else*/
- overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
- if (w_uniform.blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]")
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
-
- if (wear_id)
- if(wear_id.over_jumpsuit)
- overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
-
- if (client)
- client.screen -= hud_used.intents
- client.screen -= hud_used.mov_int
-
-
- //Screenlocs for these slots are handled by the huds other_update()
- //because theyre located on the 'other' inventory bar.
-
- // Gloves
- var/datum/organ/external/lo = organs["l_hand"]
- var/datum/organ/external/ro = organs["r_hand"]
- if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED))
- if (gloves)
- var/t1 = gloves.item_state
- if (!t1)
- t1 = gloves.icon_state
- var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
- if(lo.status & ORGAN_DESTROYED)
- gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
- else if(ro.status & ORGAN_DESTROYED)
- gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
- overlays += image(gloves_icon, "layer" = MOB_LAYER)
- if (gloves.blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
- if(lo.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
- else if(ro.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
- else if (blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
- if(lo.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
- else if(ro.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
- // Glasses
- if (glasses)
- var/t1 = glasses.icon_state
- overlays += image("icon" = 'eyes.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- // Ears
- if (l_ear)
- var/t1 = l_ear.icon_state
- overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- if (r_ear)
- var/t1 = r_ear.icon_state
- overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- // Shoes
- lo = organs["l_foot"]
- ro = organs["r_foot"]
- if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED) && shoes)
- var/t1 = shoes.icon_state
- var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
- if(lo.status & ORGAN_DESTROYED && !lying)
- shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY)
- else if(ro.status & ORGAN_DESTROYED && !lying)
- shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
- overlays += image(shoes_icon, "layer" = MOB_LAYER)
- if (shoes.blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "shoesblood[!lying ? "" : "2"]")
- if(lo.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
- else if(ro.status & ORGAN_DESTROYED)
- stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER) // Radio
-/* if (w_radio)
- overlays += image("icon" = 'ears.dmi', "icon_state" = "headset[!lying ? "" : "2"]", "layer" = MOB_LAYER) */
-
- if (s_store)
- var/t1 = s_store.item_state
- if (!t1)
- t1 = s_store.icon_state
- if(!istype(wear_suit, /obj/item/clothing/suit/storage/armoredundersuit))
- overlays += image("icon" = 'belt_mirror.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- s_store.screen_loc = ui_sstore1
-
- if(client) hud_used.other_update() //Update the screenloc of the items on the 'other' inventory bar
- //to hide / show them.
- if (client)
- if (i_select)
- if (intent)
- client.screen += hud_used.intents
-
- var/list/L = dd_text2list(intent, ",")
- L[1] += ":-11"
- i_select.screen_loc = dd_list2text(L,",") //ICONS4, FUCKING SHIT
- else
- i_select.screen_loc = null
- if (m_select)
- if (m_int)
- client.screen += hud_used.mov_int
-
- var/list/L = dd_text2list(m_int, ",")
- L[1] += ":-11"
- m_select.screen_loc = dd_list2text(L,",") //ICONS4, FUCKING SHIT
- else
- m_select.screen_loc = null
-
- var/tail_shown = 1
- if (wear_suit)
- /*if ((FAT in mutations) && !(wear_suit.flags & ONESIZEFITSALL))
- src << "\red You burst out of the [wear_suit.name]!"
- var/obj/item/clothing/c = wear_suit
- u_equip(c)
- if(client)
- client.screen -= c
- if(c)
- c:loc = loc
- c:dropped(src)
- c:layer = initial(c:layer)*/
- if (istype(wear_suit, /obj/item/clothing/suit))
- var/t1 = wear_suit.icon_state
- overlays += image("icon" = 'suit.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- if (wear_suit)
- if (wear_suit.blood_DNA)
- var/icon/stain_icon = null
- if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/storage/wcoat))
- stain_icon = icon('blood.dmi', "armorblood[!lying ? "" : "2"]")
- else if (istype(wear_suit, /obj/item/clothing/suit/storage/det_suit || /obj/item/clothing/suit/storage/labcoat))
- stain_icon = icon('blood.dmi', "coatblood[!lying ? "" : "2"]")
- else
- stain_icon = icon('blood.dmi', "suitblood[!lying ? "" : "2"]")
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
- wear_suit.screen_loc = ui_oclothing
- if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
- if (handcuffed)
- handcuffed.loc = loc
- handcuffed.layer = initial(handcuffed.layer)
- handcuffed = null
- if ((l_hand || r_hand))
- var/h = hand
- hand = 1
- drop_item()
- hand = 0
- drop_item()
- hand = h
- //if wearing some suits, hide the tail
- if ( istype(wear_suit, /obj/item/clothing/suit/bio_suit) || istype(wear_suit, /obj/item/clothing/suit/bomb_suit) || istype(wear_suit, /obj/item/clothing/suit/space) )
- tail_shown = 0
- if(tail_shown)
- overlays += image("icon" = icon('tajaran.dmi', "tail_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER)
-
- if (lying)
- if (face_lying)
- overlays += face_lying
- else
- if (face_standing)
- overlays += face_standing
-
- if (wear_mask)
- if (istype(wear_mask, /obj/item/clothing/mask))
- var/t1 = wear_mask.icon_state
- overlays += image("icon" = 'mask.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- if (!istype(wear_mask, /obj/item/clothing/mask/cigarette))
- if (wear_mask.blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "maskblood[!lying ? "" : "2"]")
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
- wear_mask.screen_loc = ui_mask
-
- // Head
- if (head)
- var/t1 = head.icon_state
- var/icon/head_icon = icon('head.dmi', text("[][]", t1, (!( lying ) ? null : "2")))
- if(istype(head,/obj/item/clothing/head/kitty))
- head_icon = (( lying ) ? head:mob2 : head:mob)
- overlays += image("icon" = head_icon, "layer" = MOB_LAYER)
- if(gimmick_hat)
- overlays += image("icon" = icon('gimmick_head.dmi', "[gimmick_hat][!lying ? "" : "2"]"), "layer" = MOB_LAYER)
- if (head.blood_DNA)
- var/icon/stain_icon = icon('blood.dmi', "helmetblood[!lying ? "" : "2"]")
- overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
- head.screen_loc = ui_head
- else
- var/datum/organ/external/head = organs["head"]
- if(!(head.status & ORGAN_DESTROYED))
- //if not wearing anything on the head, show the ears
- overlays += image("icon" = icon('tajaran.dmi', "ears_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER)
-
- // Belt
- if (belt)
- var/t1 = belt.item_state
- if (!t1)
- t1 = belt.icon_state
- overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- belt.screen_loc = ui_belt
-
-
- name = get_visible_name()
-
- if (wear_id)
- wear_id.screen_loc = ui_id
-
- if (l_store)
- l_store.screen_loc = ui_storage1
-
- if (r_store)
- r_store.screen_loc = ui_storage2
-
- if (back)
- var/t1 = back.icon_state
- overlays += image("icon" = 'back.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
- back.screen_loc = ui_back
-
- if (handcuffed)
- pulling = null
- if (!lying)
- overlays += image("icon" = 'mob.dmi', "icon_state" = "handcuff1", "layer" = MOB_LAYER)
- else
- overlays += image("icon" = 'mob.dmi', "icon_state" = "handcuff2", "layer" = MOB_LAYER)
-
- if (client)
- client.screen -= contents
- client.screen += contents
-
- if (r_hand)
- overlays += image("icon" = 'items_righthand.dmi', "icon_state" = r_hand.item_state ? r_hand.item_state : r_hand.icon_state, "layer" = MOB_LAYER+1)
-
- r_hand.screen_loc = ui_rhand
-
- if (l_hand)
- overlays += image("icon" = 'items_lefthand.dmi', "icon_state" = l_hand.item_state ? l_hand.item_state : l_hand.icon_state, "layer" = MOB_LAYER+1)
-
- l_hand.screen_loc = ui_lhand
-
- var/shielded = 0
- for (var/obj/item/weapon/cloaking_device/S in src)
- if (S.active)
- shielded = 2
- break
-
- if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_active)
- shielded = 3
-
- switch(shielded)
- if(1)
- overlays += image("icon" = 'effects.dmi', "icon_state" = "shield", "layer" = MOB_LAYER+1)
- if(2)
- invisibility = 2
- //New stealth. Hopefully doesn't lag too much. /N
- if(istype(loc, /turf))//If they are standing on a turf.
- AddCamoOverlay(loc)//Overlay camo.
- if(3)
- if(istype(loc, /turf))
- //Ninjas may flick into view once in a while if they are stealthed.
- if(prob(90))
- NinjaStealthActive(loc)
- else
- NinjaStealthMalf()
- else
- invisibility = 0
-
- if(client && client.admin_invis)
- invisibility = 100
- else if (shielded == 2)
- invisibility = 2
- else
- invisibility = 0
- if(targeted_by && target_locked)
- overlays += target_locked
- else if(targeted_by)
- target_locked = new /obj/effect/target_locked(src)
- overlays += target_locked
- else if(!targeted_by && target_locked)
- del(target_locked)
-
-/*
- for (var/mob/M in viewers(1, src))//For the love of god DO NOT REFRESH EVERY SECOND - Mport
- if ((M.client && M.machine == src))
- spawn (0)
- show_inv(M)
- return
-*/
- last_b_state = stat
-
-/mob/living/carbon/human/tajaran/update_body()
- if(stand_icon)
- del(stand_icon)
- if(lying_icon)
- del(lying_icon)
-
- if (mutantrace)
- return
-
- var/g = "m"
- if (gender == MALE)
- g = "m"
- else if (gender == FEMALE)
- g = "f"
-
- stand_icon = new /icon('tajaran.dmi', "torso_[g]_s")
- lying_icon = new /icon('tajaran.dmi', "torso_[g]_l")
-
-
-
- var/husk = (HUSK in mutations)
- //var/obese = (FAT in mutations)
-
- stand_icon.Blend(new /icon('tajaran.dmi', "chest_[g]_s"), ICON_OVERLAY)
- lying_icon.Blend(new /icon('tajaran.dmi', "chest_[g]_l"), ICON_OVERLAY)
-
- var/datum/organ/external/head = organs["head"]
- if(!(head.status & ORGAN_DESTROYED))
- stand_icon.Blend(new /icon('tajaran.dmi', "head_[g]_s"), ICON_OVERLAY)
- lying_icon.Blend(new /icon('tajaran.dmi', "head_[g]_l"), ICON_OVERLAY)
-
- for(var/name in organs)
- var/datum/organ/external/part = organs[name]
- if(!istype(part, /datum/organ/external/groin) \
- && !istype(part, /datum/organ/external/chest) \
- && !istype(part, /datum/organ/external/head) \
- && !(part.status & ORGAN_DESTROYED))
- var/icon/temp = new /icon('tajaran.dmi', "[part.icon_name]_s")
- if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
- stand_icon.Blend(temp, ICON_OVERLAY)
- temp = new /icon('tajaran.dmi', "[part.icon_name]_l")
- if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
- lying_icon.Blend(temp , ICON_OVERLAY)
-
- stand_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_s"), ICON_OVERLAY)
- lying_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_l"), ICON_OVERLAY)
-
- if (husk)
- var/icon/husk_s = new /icon('tajaran.dmi', "husk_s")
- var/icon/husk_l = new /icon('tajaran.dmi', "husk_l")
-
- for(var/name in organs)
- var/datum/organ/external/part = organs[name]
- if(!istype(part, /datum/organ/external/groin) \
- && !istype(part, /datum/organ/external/chest) \
- && !istype(part, /datum/organ/external/head) \
- && (part.status & ORGAN_DESTROYED))
- husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT)
- husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT)
-
- stand_icon.Blend(husk_s, ICON_OVERLAY)
- lying_icon.Blend(husk_l, ICON_OVERLAY)
- /*else if(obese)
- stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY)
- lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)*/
-
- // Skin tone
- if (s_tone >= 0)
- stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
- lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
- else
- stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
- lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
-
- if (underwear > 0)
- //if(!obese)
- stand_icon.Blend(new /icon('tajaran.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY)
- lying_icon.Blend(new /icon('tajaran.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY)
-
-
-/mob/living/carbon/human/tajaran/update_face()
- if(organs)
- var/datum/organ/external/head = organs["head"]
- if(head)
- if(head.status & ORGAN_DESTROYED)
- del(face_standing)
- del(face_lying)
- return
-
- //if(!facial_hair_style || !hair_style) return//Seems people like to lose their icons, this should stop the runtimes for now
- del(face_standing)
- del(face_lying)
-
- if (mutantrace)
- return
-
- var/g = "m"
- if (gender == MALE)
- g = "m"
- else if (gender == FEMALE)
- g = "f"
-
- var/icon/eyes_s = new/icon("icon" = 'tajaran_face.dmi', "icon_state" = "eyes_s")
- var/icon/eyes_l = new/icon("icon" = 'tajaran_face.dmi', "icon_state" = "eyes_l")
- eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
- eyes_l.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
-
- //var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
- //var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l")
- //hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
- //hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
-
- //var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
- //var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l")
- //facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
- //facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
-
- var/icon/mouth_s = new/icon("icon" = 'tajaran_face.dmi', "icon_state" = "mouth_[g]_s")
- var/icon/mouth_l = new/icon("icon" = 'tajaran_face.dmi', "icon_state" = "mouth_[g]_l")
-
- // if the head or mask has the flag BLOCKHAIR (equal to 5), then do not apply hair
- //if((!(head && (head.flags & BLOCKHAIR))) && !(wear_mask && (wear_mask.flags & BLOCKHAIR)))
- //eyes_s.Blend(hair_s, ICON_OVERLAY)
- //eyes_l.Blend(hair_l, ICON_OVERLAY)
-
- eyes_s.Blend(mouth_s, ICON_OVERLAY)
- eyes_l.Blend(mouth_l, ICON_OVERLAY)
-
- // if BLOCKHAIR, do not apply facial hair
- //if((!(head && (head.flags & BLOCKHAIR))) && !(wear_mask && (wear_mask.flags & BLOCKHAIR)))
- //eyes_s.Blend(facial_s, ICON_OVERLAY)
- //eyes_l.Blend(facial_l, ICON_OVERLAY)
-
-
- face_standing = new /image()
- face_lying = new /image()
- face_standing.icon = eyes_s
- face_standing.layer = MOB_LAYER
- face_lying.icon = eyes_l
- face_lying.layer = MOB_LAYER
-
- del(mouth_l)
- del(mouth_s)
- //del(facial_l)
- //del(facial_s)
- //del(hair_l)
- //del(hair_s)
- del(eyes_l)
- del(eyes_s)
-
-/mob/living/carbon/human/tajaran/co2overloadtime = null
-/mob/living/carbon/human/tajaran/temperature_resistance = T0C+70
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dmi b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dmi
deleted file mode 100644
index 2cc2970bfd7..00000000000
Binary files a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dmi and /dev/null differ
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi
deleted file mode 100644
index eb08f03e9c6..00000000000
Binary files a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi and /dev/null differ
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_placeholder.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_placeholder.dm
deleted file mode 100644
index 38b80bb4ef8..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_placeholder.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-//todo: this
-/mob/living/carbon/human/tajaran
-
-/mob/var/taj_talk_understand = 0
\ No newline at end of file
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/whisper.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/whisper.dm
deleted file mode 100644
index 78354ba903f..00000000000
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/whisper.dm
+++ /dev/null
@@ -1,170 +0,0 @@
-/mob/living/carbon/human/tajaran/whisper(message as text)
- //Figured it out. If you use say :w (message) it HTML encodes it, THEN passes it to the whisper code, which does so again. Jeez. --SkyMarshal
- message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
-
- if (!message)
- return
-
- if (silent)
- return
-
- log_whisper("[src.name]/[src.key] : [message]")
-
- if (src.client && (src.client.muted || src.client.muted_complete))
- src << "You are muted."
- return
-
- if (src.stat == 2)
- return src.say_dead(message)
-
- if (src.stat)
- return
-
- var/alt_name = ""
- if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
- var/mob/living/carbon/human/H = src
- alt_name = " (as [H.get_visible_name()])"
- // Mute disability
- if (src.disabilities & 64)
- return
-
- if (istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
- return
-
- var/italics = 1
- var/message_range = 1
-
- //work out if we're speaking tajaran or not
- var/is_speaking_taj = 0
- if(copytext(message, 1, 4) == ":j ")
- message = copytext(message, 4)
- if(taj_talk_understand || universal_speak)
- is_speaking_taj = 1
-
- if(istype(src.wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja)&&src.wear_mask:voice=="Unknown")
- if(copytext(message, 1, 2) != "*")
- var/list/temp_message = dd_text2list(message, " ")
- var/list/pick_list = list()
- for(var/i = 1, i <= temp_message.len, i++)
- pick_list += i
- for(var/i=1, i <= abs(temp_message.len/3), i++)
- var/H = pick(pick_list)
- if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
- temp_message[H] = ninjaspeak(temp_message[H])
- pick_list -= H
- message = dd_list2text(temp_message, " ")
- message = dd_replaceText(message, "o", "¤")
- message = dd_replaceText(message, "p", "þ")
- message = dd_replaceText(message, "l", "£")
- message = dd_replaceText(message, "s", "§")
- message = dd_replaceText(message, "u", "µ")
- message = dd_replaceText(message, "b", "ß")
-
- message = capitalize(message)
-
- if (src.stuttering)
- message = stutter(message)
- if (src.slurring)
- message = slur(message)
-
- for (var/obj/O in view(message_range, src))
- spawn (0)
- if (O)
- O.hear_talk(src, message)
-
- var/list/listening = hearers(message_range, src)
- listening -= src
- listening += src
- var/list/eavesdropping = hearers(2, src)
- eavesdropping -= src
- eavesdropping -= listening
- var/list/watching = hearers(5, src)
- watching -= src
- watching -= listening
- watching -= eavesdropping
-
- var/list/heard_a = list() // understood us
- var/list/heard_b = list() // didn't understand us
-
- for (var/mob/M in listening)
- if ( M.say_understands(src) && (M.taj_talk_understand || !is_speaking_taj || M.universal_speak) )
- heard_a += M
- else
- heard_b += M
-
- var/rendered = null
-
- for (var/mob/M in watching)
- if ( (M.say_understands(src) && !is_speaking_taj) || istype(M,/mob/living/carbon/human/tajaran) )
- rendered = "[src.name] [is_speaking_taj ? "quietly mrowls" : "whispers"] something."
- else
- rendered = "[src.voice_name] [is_speaking_taj ? "quietly mrowls" : "whispers"] something."
- M.show_message(rendered, 2)
-
- if (length(heard_a))
- var/message_a = message
-
- if (italics)
- message_a = "[message_a]"
- //This appears copied from carbon/living say.dm so the istype check for mob is probably not needed. Appending for src is also not needed as the game will check that automatically.
- if (!istype(src, /mob/living/carbon/human))
- rendered = "[name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message_a]\""
- else if (istype(wear_mask, /obj/item/clothing/mask/gas/voice))
- if (wear_mask:vchange)
- rendered = "[wear_mask:voice] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message_a]\""
- else
- rendered = "[name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message_a]\""
- else
- rendered = "[real_name][alt_name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message_a]\""
-
- for (var/mob/M in heard_a)
- M.show_message(rendered, 2)
-
- if (length(heard_b))
- var/message_b
-
- message_b = tajspeak(message)
-
- if (italics)
- message_b = "[message_b]"
-
- rendered = "[src.voice_name] mrows quietly, \"[message_b]\""
-
- for (var/mob/M in heard_b)
- M.show_message(rendered, 2)
-
- for (var/mob/M in eavesdropping)
- if (M.say_understands(src))
- var/message_c = tajspeak(message)
- if (!istype(src, /mob/living/carbon/human))
- rendered = "[name] mrowls quietly, \"[message_c]\""
- else if(istype(wear_mask, /obj/item/clothing/mask/gas/voice))
- if(wear_mask:vchange)
- rendered = "[wear_mask:voice] mrowls quietly, \"[message_c]\""
- else
- rendered = "[name] mrowls quietly, \"[message_c]\""
- else
- rendered = "[real_name][alt_name] mrowls quietly, \"[message_c]\""
- M.show_message(rendered, 2)
- else
- rendered = "[src.voice_name] quietly mrowls something."
- M.show_message(rendered, 2)
-
- if (italics)
- message = "[message]"
-
- if (!istype(src, /mob/living/carbon/human))
- rendered = "[name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message]\""
- else if (istype(src.wear_mask, /obj/item/clothing/mask/gas/voice))
- if(wear_mask:vchange)
- rendered = "[wear_mask:voice] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message]\""
- else
- rendered = "[name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message]\""
- else
- rendered = "[real_name][alt_name] [is_speaking_taj ? "mrowls quietly" : "whispers"], \"[message]\""
-
- for (var/mob/M in world)
- if (istype(M, /mob/new_player))
- continue
- if (M.stat > 1 && !(M in heard_a))
- M.show_message(rendered, 2)