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)