Final commit of the examine/damage overhaul.

This commit is contained in:
SkyMarshal
2012-03-28 22:37:08 -07:00
parent d65a912c8e
commit 736c3f46e1
44 changed files with 1164 additions and 2728 deletions

View File

@@ -24,7 +24,6 @@
#define FILE_DIR "code/defines/mob/living/silicon"
#define FILE_DIR "code/defines/mob/simple_animal"
#define FILE_DIR "code/defines/obj"
#define FILE_DIR "code/defines/obj/clothing"
#define FILE_DIR "code/defines/procs"
#define FILE_DIR "code/defines/sd_procs"
#define FILE_DIR "code/FEA"
@@ -92,6 +91,7 @@
#define FILE_DIR "code/modules/chemical"
#define FILE_DIR "code/modules/clothing"
#define FILE_DIR "code/modules/clothing/glasses"
#define FILE_DIR "code/modules/clothing/head"
#define FILE_DIR "code/modules/clothing/spacesuits"
#define FILE_DIR "code/modules/clothing/suits"
#define FILE_DIR "code/modules/clothing/uniforms"
@@ -334,14 +334,6 @@
#include "code\defines\obj\vending.dm"
#include "code\defines\obj\weapon.dm"
#include "code\defines\obj\window.dm"
#include "code\defines\obj\clothing\costume.dm"
#include "code\defines\obj\clothing\ears.dm"
#include "code\defines\obj\clothing\gimmick.dm"
#include "code\defines\obj\clothing\gloves.dm"
#include "code\defines\obj\clothing\head.dm"
#include "code\defines\obj\clothing\jumpsuit.dm"
#include "code\defines\obj\clothing\mask.dm"
#include "code\defines\obj\clothing\shoes.dm"
#include "code\defines\procs\AStar.dm"
#include "code\defines\procs\captain_announce.dm"
#include "code\defines\procs\church_name.dm"
@@ -801,12 +793,21 @@
#include "code\modules\chemical\Chemistry-Reagents.dm"
#include "code\modules\chemical\Chemistry-Recipes.dm"
#include "code\modules\chemical\Chemistry-Tools.dm"
#include "code\modules\clothing\costume.dm"
#include "code\modules\clothing\ears.dm"
#include "code\modules\clothing\gimmick.dm"
#include "code\modules\clothing\glasses.dm"
#include "code\modules\clothing\hardhat.dm"
#include "code\modules\clothing\gloves.dm"
#include "code\modules\clothing\jumpsuit.dm"
#include "code\modules\clothing\mask.dm"
#include "code\modules\clothing\shoes.dm"
#include "code\modules\clothing\spacesuit.dm"
#include "code\modules\clothing\suit.dm"
#include "code\modules\clothing\glasses\glasses.dm"
#include "code\modules\clothing\glasses\hud.dm"
#include "code\modules\clothing\head\hardhat.dm"
#include "code\modules\clothing\head\hats.dm"
#include "code\modules\clothing\head\helmets.dm"
#include "code\modules\clothing\spacesuits\captain.dm"
#include "code\modules\clothing\spacesuits\miscellaneous.dm"
#include "code\modules\clothing\spacesuits\ninja.dm"

View File

@@ -1,198 +1,461 @@
/mob/living/carbon/human/tajaran/examine()
set src in view()
set src in oview()
usr << "\blue *---------*"
if(!usr || !src) return
if(((usr.disabilities & 128) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
usr << "<span class='notice'>Something is there but you can't see it.</span>"
return
usr << "\blue This is \icon[src.icon] <B>[src.name]</B>! One of the cat-like Tajarans."
var/skipgloves = 0
var/skipsuitstorage = 0
var/skipjumpsuit = 0
var/skipshoes = 0
var/skipmask = 0
var/skipears = 0
var/skipeyes = 0
// crappy hack because you can't do \his[src] etc
//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"
if (src.gender == MALE)
t_his = "his"
t_him = "him"
else if (src.gender == FEMALE)
t_his = "her"
t_him = "her"
var/t_has = "has"
var/t_is = "is"
if (src.w_uniform)
var/msg = "<span class='info'>*---------*\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 += "<EM>\a [src], one of the cat-like Tajarans.</EM>!\n"
//uniform
if (src.w_uniform && !skipjumpsuit)
if (src.w_uniform.blood_DNA)
usr << "\red [src.name] is wearing a[src.w_uniform.blood_DNA ? " bloody " : " "] \icon[src.w_uniform] [src.w_uniform.name]!"
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.w_uniform] [src.w_uniform.gender==PLURAL?"some":"a"] blood-stained [src.w_uniform.name]!</span>\n"
else
usr << "\blue [src.name] is wearing a \icon[src.w_uniform] [src.w_uniform.name]."
msg += "[t_He] [t_is] wearing \icon[src.w_uniform] \a [src.w_uniform].\n"
if (src.handcuffed)
usr << "\blue [src.name] is \icon[src.handcuffed] handcuffed!"
//head
if (src.head)
if (src.head.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.head] [src.head.gender==PLURAL?"some":"a"] blood-stained [src.head.name] on [t_his] head!</span>\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)
usr << "\red [src.name] has a[src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name] on!"
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_suit] [src.wear_suit.gender==PLURAL?"some":"a"] blood-stained [src.wear_suit.name]!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.wear_suit] [src.wear_suit.name] on."
msg += "[t_He] [t_is] wearing \icon[src.wear_suit] \a [src.wear_suit].\n"
if (src.l_ear)
usr << "\blue [src.name] has a \icon[src.l_ear] [src.l_ear.name] on [t_his] left ear."
//suit/armour storage
if(src.s_store && !skipsuitstorage)
if(src.s_store.blood_DNA)
msg += "<span class='warning'>[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]!</span>\n"
else
msg += "[t_He] [t_is] carrying \icon[src.s_store] \a [src.s_store] on [t_his] [src.wear_suit.name].\n"
if (src.r_ear)
usr << "\blue [src.name] has a \icon[src.r_ear] [src.r_ear.name] on [t_his] right ear."
if (src.wear_mask)
if (src.wear_mask.blood_DNA)
usr << "\red [src.name] has a[src.wear_mask.blood_DNA ? " bloody " : " "] \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face!"
//back
if (src.back)
if (src.back.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[src.back] [src.back.gender==PLURAL?"some":"a"] blood-stained [src.back] on [t_his] back.</span>\n"
else
usr << "\blue [src.name] has a \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face."
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)
usr << "\red [src.name] has a[src.l_hand.blood_DNA ? " bloody " : " "] \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand!"
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand."
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)
usr << "\red [src.name] has a[src.r_hand.blood_DNA ? " bloody " : " "] \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand!"
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand."
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 += "<span class='warning'>[t_He] [t_has] \icon[src.gloves] [src.gloves.gender==PLURAL?"some":"a"] blood-stained [src.gloves.name] on [t_his] hands!</span>\n"
else
msg += "[t_He] [t_has] \icon[src.gloves] \a [src.gloves] on [t_his] hands.\n"
else if (src.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] blood-stained hands!</span>\n"
//handcuffed?
if (src.handcuffed)
msg += "[t_He] [t_is] \icon[src.handcuffed] handcuffed!\n"
//belt
if (src.belt)
if (src.belt.blood_DNA)
usr << "\red [src.name] has a[src.belt.blood_DNA ? " bloody " : " "] \icon[src.belt] [src.belt.name] on [t_his] belt!"
msg += "<span class='warning'>[t_He] [t_has] \icon[src.belt] [src.belt.gender==PLURAL?"some":"a"] blood-stained [src.belt.name] about [t_his] waist!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.belt] [src.belt.name] on [t_his] belt."
if(src.s_store)
if(src.s_store.blood_DNA)
usr << "\red [src.name] has a[src.s_store.blood_DNA ? " bloody " : " "] \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]!"
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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.shoes] [src.shoes.gender==PLURAL?"some":"a"] blood-stained [src.shoes.name] on [t_his] feet!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]."
if (src.shoes)
usr << "[src.shoes.blood_DNA ? "\red" : "\blue"][src.name] has a[src.shoes.blood_DNA ? " bloody " : " "] \icon[src.shoes] [src.shoes.name] on [t_his] feet."
msg += "[t_He] [t_is] wearing \icon[src.shoes] \a [src.shoes] on [t_his] feet.\n"
if (src.gloves)
if (src.gloves.blood_DNA)
usr << "\red [src.name] has bloody \icon[src.gloves] [src.gloves.name] on [t_his] hands!"
//mask
if (src.wear_mask && !skipmask)
if (src.wear_mask.blood_DNA)
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has \icon[src.gloves] [src.gloves.name] on [t_his] hands."
else if (src.blood_DNA)
usr << "\red [src.name] has bloody hands!"
msg += "[t_He] [t_has] \icon[src.wear_mask] \a [src.wear_mask] on [t_his] face.\n"
if (src.back)
usr << "\blue [src.name] has a \icon[src.back] [src.back.name] on [t_his] back."
//eyes
if (src.glasses && !skipeyes)
if (src.glasses.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[src.glasses] [src.glasses.gender==PLURAL?"some":"a"] blood-stained [src.glasses] covering [t_his] eyes!</span>\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
var/photo = 0
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id] yet something doesn't seem right...</span>\n"
else
id = src.wear_id.registered_name
if (src.wear_id.PHOTO)
photo = 1
if (id != src.real_name && in_range(src, usr) && prob(10))
if (photo)
usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
else
usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
else
if (photo)
usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
else
usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id].\n"
//Jitters
if (src.is_jittery)
switch(src.jitteriness)
if(300 to INFINITY)
usr << "\red [src] is violently convulsing."
if(200 to 300)
usr << "\red [src] looks extremely jittery."
if(100 to 200)
usr << "\red [src] is twitching ever so slightly."
if(src.jitteriness >= 300)
msg += "<span class='warning'><B>[t_He] [t_is] convulsing violently!</B></span>\n"
else if(src.jitteriness >= 200)
msg += "<span class='warning'>[t_He] [t_is] extremely jittery.</span>\n"
else if(src.jitteriness >= 100)
msg += "<span class='warning'>[t_He] [t_is] twitching ever so slightly.</span>\n"
if (src.suiciding)
switch(src.suiciding)
if(1)
usr << "\red [src.name] appears to have bitten [t_his] tongue off!"
msg += "<span class='warning'>[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!</span>\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)
usr << "\red [name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep."
if(health < 0 && distance <= 3)
usr << "\red [name] does not appear to be breathing."
if(ishuman(src) && usr.stat == 0 && src.stat == 1 && distance <= 1)
msg += "<span class='warning'>[name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep.</span>\n"
if((!isbreathing || holdbreath) && distance <= 3)
msg += "<span class='warning'>[name] does not appear to be breathing.</span>\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)
sleep(15)
usr << "\blue [name] has a pulse!"
spawn(15)
usr << "\blue [name] has a pulse!"
if (src.stat == 2 || (changeling && changeling.changeling_fakedeath == 1))
if(distance <= 1)
if(ishuman(usr) && usr.stat == 0)
for(var/mob/O in viewers(usr.loc, null) )
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)
sleep(15)
usr << "\red [name] has no pulse!"
else
if (src.getBruteLoss())
if (src.getBruteLoss() < 30)
usr << "\red [src.name] looks slightly injured!"
else
usr << "\red <B>[src.name] looks severely injured!</B>"
spawn(15)
usr << "\red [name] has no pulse!"
if (src.cloneloss)
if (src.cloneloss < 30)
usr << "\red [src.name] looks slightly... unfinished?"
else
usr << "\red <B>[src.name] looks very... unfinished?</B>"
/* if (src.getBruteLoss())
if (src.getBruteLoss() < 30)
usr << "\red [src.name] looks slightly injured!"
else
usr << "\red <B>[src.name] looks severely injured!</B>"*/
if (src.getFireLoss())
if (src.getFireLoss() < 30)
usr << "\red [src.name] looks slightly burned!"
else
usr << "\red <B>[src.name] looks severely burned!</B>"
if (src.cloneloss)
if (src.cloneloss < 30)
msg += "<span class='warning'>[src.name] looks slightly... unfinished?</span>\n"
else
msg += "<span class='warning'>[src.name] looks very... unfinished?</B></span>\n"
if (src.nutrition < 100)
usr << "\red [src.name] looks like flesh and bones."
else if (src.nutrition >= 500)
if (usr.nutrition < 100)
usr << "\red [src.name] looks very round and delicious. Like a little piggy. A tasty piggy."
else
usr << "\blue [src.name] looks quite chubby."
/* if (src.getFireLoss())
if (src.getFireLoss() < 30)
usr << "\red [src.name] looks slightly burned!"
else
usr << "\red <B>[src.name] looks severely burned!</B>"*/
msg += "<span class='warning'>"
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"
else if (src.brainloss >= 60)
usr << "\red [src.name] has a stupid expression on [t_his] face."
if (!src.client)
usr << "\red [src.name] doesn't seem as though they want to talk."
msg += "</span>"
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.destroyed)
usr << "\red [src.name] is missing [t_his] [temp.display_name]."
if(temp.wounds)
for(var/datum/organ/external/wound/w in temp.wounds)
var/size = w.wound_size
var/sizetext
switch(size)
if(temp)
if(temp.destroyed)
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>[src.name] is missing [t_his] [temp.display_name].</b></span>\n"
continue
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.
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)
switch(w.wound_size)
if(1)
sizetext = "cut"
switch(w.wound_type)
if(0)
tally["cut"] += 1
if(1)
tally["tiny bruise"] += 1
if(2)
tally["small burn"] += 1
if(2)
sizetext = "deep cut"
switch(w.wound_type)
if(0)
tally["deep cut"] += 1
if(1)
tally["small bruise"] += 1
if(2)
tally["moderate burn"] += 1
if(3)
sizetext = "flesh wound"
switch(w.wound_type)
if(0)
tally["flesh wound"] += 1
if(1)
tally["moderate bruise"] += 1
if(2)
tally["large burn"] += 1
if(4)
sizetext = "gaping wound"
switch(w.wound_type)
if(0)
tally["gaping wound"] += 1
if(1)
tally["large bruise"] += 1
if(2)
tally["severe burn"] += 1
if(5)
sizetext = "big gaping wound"
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)
sizetext = "massive wound"
if(w.bleeding)
usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
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 += "<span class='warning'>[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 += "<span class='warning'>[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 += "<span class='warning'>[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 += "<span class='warning'>[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].</span><br>"
wound_flavor_text["[named]"] = flavor_text_string
if(wound_flavor_text["head"] && !skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))
msg += wound_flavor_text["head"]
if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["chest"]
if(wound_flavor_text["left arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left arm"]
if(wound_flavor_text["left hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["left hand"]
if(wound_flavor_text["right arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right arm"]
if(wound_flavor_text["right hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["right hand"]
if(wound_flavor_text["groin"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["groin"]
if(wound_flavor_text["left leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left leg"]
if(wound_flavor_text["left foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["left foot"]
if(wound_flavor_text["right leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right leg"]
if(wound_flavor_text["right foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["right foot"]
print_flavor_text()
usr << "\blue *---------*"
// if(w.bleeding)
// usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
// continue
msg += print_flavor_text()
msg += "\blue *---------*"
usr << msg

View File

@@ -2,6 +2,7 @@
layer = 2
var/level = 2
var/flags = FPRINT
var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
var/list/fingerprints
var/list/fingerprintshidden
var/fingerprintslast = null

View File

@@ -1,168 +0,0 @@
//Costume spawner
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
var/list/options = typesof(/obj/effect/landmark/costume)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
del(src)
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
del(src)
/obj/effect/landmark/costume/justice/New()
new /obj/item/clothing/suit/justice(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/justice , /obj/item/clothing/head/justice/blue , /obj/item/clothing/head/justice/yellow , /obj/item/clothing/head/justice/green , /obj/item/clothing/head/justice/pink )
new CHOICE(src.loc)
del(src)
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havanian(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
del(src)
/obj/effect/landmark/costume/nyangirl/New()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
del(src)
/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/blindfold(src.loc)
del(src)
/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/suit/storage/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
del(src)
/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/scratch(src.loc)
// if (prob(30))
// new /obj/item/clothing/head/helmet/cueball(src.loc)
del(src)
/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
del(src)
/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/suit/storage/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowlerhat, /obj/item/clothing/head/that)
new CHOICE(src.loc)
new /obj/item/clothing/shoes/black(src.loc)
new /obj/item/weapon/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/gas/fakemoustache(src.loc)
del(src)
/obj/effect/landmark/costume/plaguedoctor/New()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
del(src)
/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/owl_mask(src.loc)
del(src)
/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/storage/apron(src.loc)
del(src)
/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/under/pirate(src.loc)
new /obj/item/clothing/suit/pirate(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
del(src)
/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
del(src)
/*
/obj/effect/landmark/costume/nurse/New()
new /obj/item/clothing/under/rank/nursesuit(src.loc)
new /obj/item/clothing/head/nursehat(src.loc)
new /obj/item/clothing/glasses/regular(src.loc)
new /obj/item/clothing/gloves/latex(src.loc)
new /obj/item/clothing/mask/surgical(src.loc)
del(src)*/
/obj/effect/landmark/costume/imperium_monk/New()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
del(src)
/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
del(src)
/*
/obj/effect/landmark/costume/spiderman/New()
new /obj/item/clothing/under/spiderman(src.loc)
new /obj/item/clothing/mask/spiderman(src.loc)
del(src)*/
/obj/effect/landmark/costume/marisawizard/New()
new /obj/item/clothing/head/wizard/marisa(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa(src.loc)
del(src)
/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
del(src)
/obj/effect/landmark/costume/sexyclown/New()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
del(src)
/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
del(src)
/*
/obj/effect/landmark/costume/cyborg/New()
new /obj/item/clothing/mask/gas/cyborg(src.loc)
new /obj/item/clothing/shoes/cyborg(src.loc)
new /obj/item/clothing/suit/cyborg_suit(src.loc)
new /obj/item/clothing/gloves/cyborg(src.loc)
var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id(src.loc)
var/name = "Cyborg"
name += " [pick(rand(1, 999))]"
W.name = "Fake Cyborg Card"
W.access = list(access_theatre)
W.assignment = "Kill all humans! Beep. Boop."
W.registered = name
del(src)
*/

View File

@@ -1,62 +0,0 @@
// EARS
/obj/item/clothing/ears
name = "ears"
w_class = 1.0
throwforce = 2
var/twoeared = 0
/obj/item/clothing/ears/attack_hand(mob/user as mob)
if (!user) return
if (src.loc != user || !istype(user,/mob/living/carbon/human))
..()
return
var/mob/living/carbon/human/H = user
if(H.l_ear != src && H.r_ear != src)
..()
return
if(!canremove)
return
var/obj/item/clothing/ears/O
if(twoeared)
O = (H.l_ear == src ? H.r_ear : H.l_ear)
user.u_equip(O)
if(!istype(src,/obj/item/clothing/ears/offear))
del(O)
O = src
else
O = src
user.u_equip(src)
if (O)
user.put_in_hand(O)
O.add_fingerprint(user)
if(istype(src,/obj/item/clothing/ears/offear))
del(src)
/obj/item/clothing/ears/offear
name = "Other ear"
w_class = 5.0
icon = 'screen1_old.dmi'
icon_state = "block"
twoeared = 1
New(var/obj/O)
name = O.name
desc = O.desc
icon = O.icon
icon_state = O.icon_state
dir = O.dir
/obj/item/clothing/ears/earmuffs
name = "earmuffs"
desc = "Protects your hearing from loud noises, and quiet ones as well."
icon_state = "earmuffs"
protective_temperature = 500
item_state = "earmuffs"
twoeared = 1

View File

@@ -1,679 +0,0 @@
/obj/item/clothing/head/rabbitears
name = "Rabbit Ears"
desc = "Wearing these makes you looks useless, and only good for your sex appeal."
icon_state = "bunny"
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/kitty
name = "Kitty Ears"
desc = "A pair of kitty ears. Meow!"
icon_state = "kitty"
flags = FPRINT | TABLEPASS
var/icon/mob
var/icon/mob2
update_icon(var/mob/living/carbon/human/user)
if(!istype(user)) return
mob = new/icon("icon" = 'head.dmi', "icon_state" = "kitty")
mob2 = new/icon("icon" = 'head.dmi', "icon_state" = "kitty2")
mob.Blend(rgb(user.r_hair, user.g_hair, user.b_hair), ICON_ADD)
mob2.Blend(rgb(user.r_hair, user.g_hair, user.b_hair), ICON_ADD)
var/icon/earbit = new/icon("icon" = 'head.dmi', "icon_state" = "kittyinner")
var/icon/earbit2 = new/icon("icon" = 'head.dmi', "icon_state" = "kittyinner2")
mob.Blend(earbit, ICON_OVERLAY)
mob2.Blend(earbit2, ICON_OVERLAY)
/obj/item/clothing/shoes/red
name = "red shoes"
desc = "Stylish red shoes."
icon_state = "red"
color = "red"
/obj/item/clothing/shoes/rainbow
name = "rainbow shoes"
desc = "Very gay shoes."
icon_state = "rain_bow"
color = "rainbow"
/obj/item/clothing/mask/owl_mask
name = "Owl mask"
desc = "Twoooo!"
icon_state = "owl"
/obj/item/clothing/under/owl
name = "Owl uniform"
desc = "A jumpsuit with owl wings. Photorealistic owl feathers! Twooooo!"
icon_state = "owl"
color = "owl"
/obj/item/clothing/gloves/cyborg
desc = "beep boop borp"
name = "cyborg gloves"
icon_state = "black"
item_state = "r_hands"
siemens_coefficient = 1
/obj/item/clothing/mask/gas/cyborg
name = "cyborg visor"
desc = "Beep boop"
icon_state = "death"
/obj/item/clothing/shoes/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume"
icon_state = "boots"
/obj/item/clothing/suit/cyborg_suit
name = "cyborg suit"
desc = "Suit for a cyborg costume."
icon_state = "death"
item_state = "death"
flags = FPRINT | TABLEPASS | CONDUCT
fire_resist = T0C+5200
/*/obj/item/clothing/under/nazi1
name = "Nazi uniform"
desc = "SIEG HEIL!"
icon_state = "nazi"
color = "nazi1"*/ //no direction sprites
/obj/item/clothing/suit/greatcoat
name = "great coat"
desc = "A Nazi great coat."
icon_state = "nazi"
item_state = "nazi"
flags = FPRINT | TABLEPASS
/obj/item/clothing/under/johnny
name = "Johnny~~"
desc = "Johnny~~"
icon_state = "johnny"
color = "johnny"
/obj/item/clothing/suit/johnny_coat
name = "Johnny~~"
desc = "Johnny~~"
icon_state = "johnny"
item_state = "johnny"
flags = FPRINT | TABLEPASS
/obj/item/clothing/under/rainbow
name = "rainbow"
desc = "rainbow"
icon_state = "rainbow"
item_state = "rainbow"
color = "rainbow"
/obj/item/clothing/under/cloud
name = "cloud"
desc = "cloud"
icon_state = "cloud"
color = "cloud"
/*/obj/item/clothing/under/yay
name = "yay"
desc = "Yay!"
icon_state = "yay"
color = "yay"*/ // no sprite --errorage
// UNUSED COLORS
/obj/item/clothing/under/psyche
name = "psychedelic"
desc = "Groovy!"
icon_state = "psyche"
color = "psyche"
/*
/obj/item/clothing/under/maroon
name = "maroon"
desc = "maroon"
icon_state = "maroon"
color = "maroon"*/ // no sprite -- errorage
/obj/item/clothing/under/lightblue
name = "lightblue"
desc = "lightblue"
icon_state = "lightblue"
color = "lightblue"
/obj/item/clothing/under/aqua
name = "aqua"
desc = "aqua"
icon_state = "aqua"
color = "aqua"
/obj/item/clothing/under/purple
name = "purple"
desc = "purple"
icon_state = "purple"
item_state = "p_suit"
color = "purple"
/obj/item/clothing/under/lightpurple
name = "lightpurple"
desc = "lightpurple"
icon_state = "lightpurple"
color = "lightpurple"
/obj/item/clothing/under/lightgreen
name = "lightgreen"
desc = "lightgreen"
icon_state = "lightgreen"
color = "lightgreen"
/obj/item/clothing/under/lightblue
name = "lightblue"
desc = "lightblue"
icon_state = "lightblue"
color = "lightblue"
/obj/item/clothing/under/lightbrown
name = "lightbrown"
desc = "lightbrown"
icon_state = "lightbrown"
color = "lightbrown"
/obj/item/clothing/under/brown
name = "brown"
desc = "brown"
icon_state = "brown"
color = "brown"
/obj/item/clothing/under/yellowgreen
name = "yellowgreen"
desc = "yellowgreen"
icon_state = "yellowgreen"
color = "yellowgreen"
/obj/item/clothing/under/darkblue
name = "darkblue"
desc = "darkblue"
icon_state = "darkblue"
color = "darkblue"
/obj/item/clothing/under/lightred
name = "lightred"
desc = "lightred"
icon_state = "lightred"
color = "lightred"
/obj/item/clothing/under/darkred
name = "darkred"
desc = "darkred"
icon_state = "darkred"
color = "darkred"
// STEAMPUNK STATION
/obj/item/clothing/glasses/monocle
name = "monocle"
desc = "Such a dapper eyepiece!"
icon_state = "monocle"
item_state = "headset" // lol
/obj/item/clothing/under/gimmick/rank/captain/suit
name = "Captain's Suit"
desc = "A green suit and yellow necktie. Exemplifies authority."
icon_state = "green_suit"
item_state = "dg_suit"
color = "green_suit"
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit
name = "Head of Personnel's Suit"
desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble."
icon_state = "teal_suit"
item_state = "g_suit"
color = "teal_suit"
/obj/item/clothing/under/suit_jacket
name = "Black Suit"
desc = "A black suit and red tie. Very formal."
icon_state = "black_suit"
item_state = "bl_suit"
color = "black_suit"
/obj/item/clothing/under/suit_jacket/really_black
name = "Executive Suit"
desc = "A formal black suit and red tie, intended for the station's finest."
icon_state = "really_black_suit"
item_state = "bl_suit"
color = "black_suit"
/obj/item/clothing/under/suit_jacket/red
name = "Red Suit"
desc = "A red suit and blue tie. Somewhat formal."
icon_state = "red_suit"
item_state = "r_suit"
color = "red_suit"
/obj/item/clothing/under/blackskirt
name = "Black skirt"
desc = "A black skirt, very fancy!"
icon_state = "blackskirt"
color = "blackskirt"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
/obj/item/clothing/under/schoolgirl
name = "schoolgirl uniform"
desc = "It's just like one of my Japanese animes!"
icon_state = "schoolgirl"
item_state = "schoolgirl"
color = "schoolgirl"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
/obj/item/clothing/under/gimmick/rank/police
name = "Police Uniform"
desc = "Move along, nothing to see here."
icon_state = "police"
item_state = "b_suit"
color = "police"
/obj/item/clothing/head/flatcap
name = "flat cap"
desc = "A working man's cap."
icon_state = "flat_cap"
item_state = "detective"
/obj/item/clothing/under/overalls
name = "Laborer's Overalls"
desc = "A set of durable overalls for getting the job done."
icon_state = "overalls"
item_state = "lb_suit"
color = "overalls"
/obj/item/weapon/melee/classic_baton
name = "police baton"
desc = "A wooden truncheon for beating criminal scum."
icon = 'weapons.dmi'
icon_state = "baton"
item_state = "classic_baton"
flags = FPRINT | ONBELT | TABLEPASS
force = 10
/obj/item/clothing/under/pirate
name = "Pirate Outfit"
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
color = "pirate"
/obj/item/clothing/head/pirate
name = "pirate hat"
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
/obj/item/clothing/head/hgpiratecap
name = "pirate hat"
desc = "Yarr."
icon_state = "hgpiratecap"
item_state = "hgpiratecap"
/obj/item/clothing/suit/pirate
name = "pirate coat"
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
flags = FPRINT | TABLEPASS
/obj/item/clothing/suit/hgpirate
name = "pirate captain coat"
desc = "Yarr."
icon_state = "hgpirate"
item_state = "hgpirate"
flags = FPRINT | TABLEPASS
/obj/item/clothing/glasses/eyepatch
name = "eyepatch"
desc = "Yarr."
icon_state = "eyepatch"
item_state = "eyepatch"
/obj/item/clothing/head/bandana
name = "pirate bandana"
desc = "Yarr."
icon_state = "bandana"
item_state = "bandana"
/obj/item/clothing/under/soviet
name = "soviet uniform"
desc = "For the Motherland!"
icon_state = "soviet"
item_state = "soviet"
color = "soviet"
/obj/item/clothing/under/redcoat
name = "redcoat uniform"
desc = "Looks old."
icon_state = "redcoat"
item_state = "redcoat"
color = "redcoat"
/obj/item/clothing/head/ushanka
name = "ushanka"
desc = "Perfect for winter in Siberia, da?"
icon_state = "ushankadown"
item_state = "ushankadown"
/obj/item/clothing/head/collectable //Hat Station 13
name = "Collectable Hat"
desc = "A rare collectable hat."
/obj/item/clothing/head/collectable/petehat
name = "Ultra Rare! Pete's Hat!"
desc = "It smells faintly of plasma"
icon_state = "petehat"
/obj/item/clothing/head/collectable/metroid
name = "Collectable Metroid Cap!"
desc = "It just latches right in place!"
icon_state = "metroid"
/obj/item/clothing/head/collectable/xenom
name = "Collectable Xenomorph Helmet!"
desc = "Hiss hiss hiss!"
icon_state = "xenom"
/obj/item/clothing/head/collectable/chef
name = "Collectable Chef's Hat"
desc = "A rare Chef's Hat meant for hat collectors!"
icon_state = "chef"
item_state = "chef"
/obj/item/clothing/head/collectable/paper
name = "Collectable Paper Hat"
desc = "What looks like an ordinary paper hat, is actually a rare and valuable collector's edition paper hat. Keep away from water, fire and Librarians."
icon_state = "paper"
/obj/item/clothing/head/collectable/tophat
name = "Collectable Top Hat"
desc = "A top hat worn by only the most prestigious hat collectors."
icon_state = "tophat"
item_state = "that"
/obj/item/clothing/head/collectable/captain
name = "Collectable Captain's Hat"
desc = "A Collectable Hat that'll make you look just like a real comdom!"
icon_state = "captain"
item_state = "caphat"
/obj/item/clothing/head/collectable/police
name = "Collectable Police Officer's Hat"
desc = "A Collectable Police Officer's Hat. This hat emphasizes that you are THE LAW."
icon_state = "policehelm"
/obj/item/clothing/head/collectable/beret
name = "Collectable Beret"
desc = "A Collectable red beret. It smells faintly of garlic."
icon_state = "beret"
/obj/item/clothing/head/collectable/welding
name = "Collectable Welding Helmet"
desc = "A Collectable Welding Helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this Helmet is done so at the owner's own risk!"
icon_state = "welding"
item_state = "welding"
/obj/item/clothing/head/collectable/slime
name = "Collectable Slime Hat"
desc = "Just like a real Brain Slug!"
icon_state = "headslime"
item_state = "headslime"
/obj/item/clothing/head/collectable/flatcap
name = "Collectable Flat Cap"
desc = "A Collectible farmer's Flat Cap!"
icon_state = "flat_cap"
item_state = "detective"
/obj/item/clothing/head/collectable/pirate
name = "Collectable Pirate Hat"
desc = "You'd make a great Dread Syndie Roberts!"
icon_state = "pirate"
item_state = "pirate"
/obj/item/clothing/head/collectable/kitty
name = "Collectable Kitty Ears"
desc = "The fur feels.....a bit too realistic."
icon_state = "kitty"
item_state = "kitty"
/obj/item/clothing/head/collectable/rabbitears
name = "Collectable Rabbit Ears"
desc = "Not as lucky as the feet!"
icon_state = "bunny"
item_state = "bunny"
/obj/item/clothing/head/collectable/wizard
name = "Collectable Wizard's Hat"
desc = "NOTE:Any magical powers gained from wearing this hat are purely coincidental."
icon_state = "wizard"
/obj/item/clothing/head/collectable/hardhat
name = "Collectable Hard Hat"
desc = "WARNING! Offers no real protection, or luminosity, but it is damn fancy!"
icon_state = "hardhat0_yellow"
item_state = "hardhat0_yellow"
/obj/item/clothing/head/collectable/HoS
name = "Collectable HoS Hat"
desc = "Now you can beat prisoners, set silly sentences and arrest for no reason too!"
icon_state = "hoscap"
/obj/item/clothing/head/collectable/thunderdome
name = "Collectable Thunderdome helmet"
desc = "Go Red! I mean Green! I mean Red! No Green!"
icon_state = "thunderdome"
item_state = "thunderdome"
/obj/item/clothing/head/collectable/swat
name = "Collectable SWAT Helmet"
desc = "Now you can be in the Deathsquad too!"
icon_state = "swat"
item_state = "swat"
//obj/item/clothing/head/collectable
/* no left/right sprites
/obj/item/clothing/under/mario
name = "Mario costume"
desc = "Worn by Italian plumbers everywhere. Probably."
icon_state = "mario"
item_state = "mario"
color = "mario"
/obj/item/clothing/under/luigi
name = "Mario costume"
desc = "Player two. Couldn't you get the first controller?"
icon_state = "luigi"
item_state = "luigi"
color = "luigi"
*/
/obj/item/clothing/under/kilt
name = "kilt"
desc = "Includes shoes and plaid."
icon_state = "kilt"
item_state = "kilt"
color = "kilt"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|FEET
/obj/item/clothing/under/sexymime
name = "Sexy mime outfit"
desc = "The only time when you DON'T enjoy looking at someone's rack."
icon_state = "sexymime"
item_state = "sexymime"
color = "sexymime"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
/obj/item/clothing/head/bowler
name = "bowler-hat"
desc = "Gentleman, elite aboard!"
icon_state = "bowler"
item_state = "bowler"
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/justice
name = "Justice Hat"
desc = "Fight for what's righteous!"
icon_state = "justicered"
item_state = "justicered"
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
/obj/item/clothing/head/justice/blue
icon_state = "justiceblue"
item_state = "justiceblue"
/obj/item/clothing/head/justice/yellow
icon_state = "justiceyellow"
item_state = "justiceyellow"
/obj/item/clothing/head/justice/green
icon_state = "justicegreen"
item_state = "justicegreen"
/obj/item/clothing/head/justice/pink
icon_state = "justicepink"
item_state = "justicepink"
obj/item/clothing/suit/justice
name = "Justice Suit"
desc = "This pretty much looks ridiculous."
icon_state = "justice"
item_state = "justice"
flags = FPRINT | TABLEPASS
//stylish new hats
/obj/item/clothing/head/bowlerhat
name = "Bowler hat"
icon_state = "bowler_hat"
item_state = "bowler_hat"
desc = "For the gentleman of distinction."
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/beaverhat
name = "Beaver hat"
icon_state = "beaver_hat"
item_state = "beaver_hat"
desc = "Soft felt make this hat both comfortable and elegant."
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/boaterhat
name = "Boater hat"
icon_state = "boater_hat"
item_state = "boater_hat"
desc = "The ultimate in summer fashion."
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/fedora
name = "Fedora"
icon_state = "fedora"
item_state = "fedora"
desc = "A sharp, stylish hat."
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/feathertrilby
name = "Feather trilby"
icon_state = "feather_trilby"
item_state = "feather_trilby"
desc = "A sharp, stylish hat with a feather."
flags = FPRINT|TABLEPASS
//pyjamas
/obj/item/clothing/under/bluepyjamas
name = "Blue pyjamas"
desc = "Slightly old-fashioned sleepwear."
icon_state = "blue_pyjamas"
item_state = "blue_pyjamas"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
/obj/item/clothing/under/redpyjamas
name = "Red pyjamas"
desc = "Slightly old-fashioned sleepwear."
icon_state = "red_pyjamas"
item_state = "red_pyjamas"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
//scarves (fit in in mask slot)
/obj/item/clothing/mask/bluescarf
name = "Blue neck scarf"
desc = "A blue neck scarf."
icon_state = "blueneckscarf"
item_state = "blueneckscarf"
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
/obj/item/clothing/mask/redscarf
name = "Red scarf"
desc = "A red and white checkered neck scarf."
icon_state = "redwhite_scarf"
item_state = "redwhite_scarf"
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
/obj/item/clothing/mask/greenscarf
name = "Green scarf"
desc = "A green neck scarf."
icon_state = "green_scarf"
item_state = "green_scarf"
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
/obj/item/clothing/mask/ninjascarf
name = "Ninja scarf"
desc = "A stealthy, dark scarf."
icon_state = "ninja_scarf"
item_state = "ninja_scarf"
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
//shoes
/obj/item/clothing/shoes/laceups
name = "Laceup shoes"
desc = "Stylish black leather."
icon_state = "laceups"
item_state = "laceups"
color = "black"
//suits
/obj/item/clothing/suit/leathercoat
name = "Leather Coat"
desc = "A long, thick black leather coat."
icon_state = "leathercoat"
item_state = "leathercoat"
flags = FPRINT | TABLEPASS
/obj/item/clothing/suit/browncoat
name = "Brown Leather Coat"
desc = "A long, brown leather coat."
icon_state = "browncoat"
item_state = "browncoat"
flags = FPRINT | TABLEPASS
/obj/item/clothing/suit/neocoat
name = "Black coat"
desc = "A flowing, black coat."
icon_state = "neocoat"
item_state = "neocoat"
flags = FPRINT | TABLEPASS
/obj/item/clothing/suit/creamsuit
name = "Cream suit"
desc = "A cream coloured, genteel suit."
icon_state = "creamsuit"
item_state = "creamsuit"
flags = FPRINT | TABLEPASS

View File

@@ -1,226 +0,0 @@
// NO GLOVES NO LOVES
/obj/item/clothing/gloves
name = "gloves"
w_class = 2.0
icon = 'gloves.dmi'
protective_temperature = 400
heat_transfer_coefficient = 0.25
siemens_coefficient = 0.50
var/siemens_coefficient_archived = 0
var/wired = 0
var/obj/item/weapon/cell/cell = 0
body_parts_covered = HANDS
/obj/item/clothing/gloves/white
name = "White Gloves"
desc = "These look pretty fancy."
icon_state = "latex"
item_state = "lgloves"
color="mime"
redcoat
color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way.
/obj/item/clothing/gloves/black
desc = "These gloves are fire-resistant."
name = "Black Gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
protective_temperature = 1500
heat_transfer_coefficient = 0.01
hos
color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
ce
color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
/obj/item/clothing/gloves/detective
desc = "Made of well worn leather. These gloves are comfortable, useful, and stylish!"
name = "The Detective's Gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/hos
desc = "These gloves belong to the man in charge of the guns."
name = "Head of Security's Gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/cyborg
desc = "Beep. Boop. Beep."
name = "cyborg gloves"
icon_state = "black"
item_state = "r_hands"
siemens_coefficient = 1.0
/obj/item/clothing/gloves/latex
name = "Latex Gloves"
desc = "Sterile latex gloves."
icon_state = "latex"
item_state = "lgloves"
siemens_coefficient = 0.30
permeability_coefficient = 0.01
protective_temperature = 310
heat_transfer_coefficient = 0.90
color="white"
cmo
color = "medical" //Exists for washing machines. Is not different from latex gloves in any way.
/obj/item/clothing/gloves/swat
desc = "These tactical gloves are somewhat fire and impact-resistant."
name = "SWAT Gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/combat //Combined effect of SWAT gloves and insulated gloves
desc = "These tactical gloves are somewhat fire and impact resistant."
name = "combat gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/space_ninja
desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance."
name = "ninja gloves"
icon_state = "s-ninja"
item_state = "s-ninja"
siemens_coefficient = 0
protective_temperature = 1100
heat_transfer_coefficient = 0.05
var/draining = 0
var/candrain = 0
var/mindrain = 200
var/maxdrain = 400
//BEEP BEEP IT'S THE COMMENT BRIGADE -Pete (gloves overhaul)
/*
/obj/item/clothing/gloves/stungloves/
name = "Stungloves"
desc = "These gloves are electrically charged."
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0.30
elecgen = 1
uses = 10
*/
/obj/item/clothing/gloves/yellow
desc = "These gloves will protect the wearer from electric shock."
name = "insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1000
heat_transfer_coefficient = 0.01
color="yellow"
/obj/item/clothing/gloves/captain
desc = "Regal blue gloves, with a nice gold trim. Swanky."
name = "Captain Gloves"
icon_state = "captain"
item_state = "egloves"
color = "captain"
/obj/item/clothing/gloves/botanic_leather
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
name = "botanic leather gloves"
icon_state = "leather"
item_state = "ggloves"
siemens_coefficient = 0.50
permeability_coefficient = 0.9
protective_temperature = 400
heat_transfer_coefficient = 0.70
/obj/item/clothing/gloves/orange
name = "Orange Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "orange"
item_state = "orangegloves"
color="orange"
/obj/item/clothing/gloves/red
desc = "Heavily padded heavy-duty red gloves."
name = "red gloves"
icon_state = "red"
item_state = "redgloves"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/rainbow
name = "Rainbow Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "rainbow"
item_state = "rainbowgloves"
color = "rainbow"
clown
color = "clown"
/obj/item/clothing/gloves/blue
name = "Blue Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "blue"
item_state = "bluegloves"
color="blue"
/obj/item/clothing/gloves/purple
name = "Purple Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "purple"
item_state = "purplegloves"
color="purple"
/obj/item/clothing/gloves/green
name = "Green Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "green"
item_state = "greengloves"
color="green"
/obj/item/clothing/gloves/grey
name = "Grey Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "gray"
item_state = "graygloves"
color="grey"
rd
color = "director" //Exists for washing machines. Is not different from gray gloves in any way.
hop
color = "hop" //Exists for washing machines. Is not different from gray gloves in any way.
/obj/item/clothing/gloves/light_brown
name = "Light Brown Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "lightbrown"
item_state = "lightbrowngloves"
color="light brown"
/obj/item/clothing/gloves/brown
name = "Brown Gloves"
desc = "A pair of gloves. They don't look special in any way."
icon_state = "brown"
item_state = "browngloves"
color="brown"
cargo
color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way.

View File

@@ -1,190 +0,0 @@
// HATS. OH MY WHAT A FINE CHAPEAU, GOOD SIR.
/obj/item/clothing/head
name = "head"
icon = 'hats.dmi'
body_parts_covered = HEAD
var/list/allowed = list()
/obj/item/clothing/head/cakehat
name = "cakehat"
desc = "It is a cakehat!"
icon_state = "cake0"
var/onfire = 0.0
var/status = 0
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
var/fire_resist = T0C+1300 //this is the max temp it can stand before you start to cook. although it might not burn away, you take damage
/obj/item/clothing/head/caphat
name = "Captain's hat"
icon_state = "captain"
desc = "It's good being the king."
flags = FPRINT|TABLEPASS
item_state = "caphat"
/obj/item/clothing/head/centhat
name = "Cent. Comm. hat"
icon_state = "centcom"
desc = "It's even better to be the emperor."
flags = FPRINT|TABLEPASS
item_state = "centhat"
/obj/item/clothing/head/deathsquad/beret
name = "officer's beret"
desc = "An armored beret commonly used by special operations officers."
icon_state = "beret_badge"
flags = FPRINT|TABLEPASS
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
/obj/item/clothing/head/powdered_wig
name = "powdered wig"
desc = "A powdered wig."
icon_state = "pwig"
item_state = "pwig"
/obj/item/clothing/head/that
name = "Top hat"
desc = "An amish looking hat."
icon_state = "tophat"
item_state = "that"
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/chefhat
name = "Chef's Hat"
icon_state = "chef"
item_state = "chef"
desc = "The commander in chef's head wear."
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/redcoat
name = "Redcoat hat"
icon_state = "redcoat"
desc = "I guess it's a redhead."
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/mailman
name = "Mailman Hat"
icon_state = "mailman"
desc = "Right-on-time mail service head wear."
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/plaguedoctorhat
name = "Plague doctor's hat"
desc = "Once used by Plague doctors. Now useless."
icon_state = "plaguedoctor"
flags = FPRINT | TABLEPASS
permeability_coefficient = 0.01
/obj/item/clothing/head/beret
name = "beret"
desc = "A beret. A mime's favorite headwear."
icon_state = "beret"
flags = FPRINT | TABLEPASS
// CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN.
/obj/item/clothing/head/helmet/cueball
name = "cueball helmet"
desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
item_state="cueball"
/obj/item/clothing/head/secsoft
name = "Soft Cap"
desc = "A baseball hat in tasteful red."
icon_state = "secsoft"
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
item_state = "helmet"
/obj/item/clothing/head/syndicatefake
name = "red space helmet replica"
icon_state = "syndicate"
item_state = "syndicate"
desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!"
see_face = 0.0
flags = FPRINT | TABLEPASS | BLOCKHAIR
/obj/item/clothing/head/helmet/swat
name = "swat helmet"
desc = "Used by highly trained Swat Members."
icon_state = "swat"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
item_state = "swat"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
/obj/item/clothing/head/helmet/thunderdome
name = "Thunderdome helmet"
desc = "Let the battle commence!"
icon_state = "thunderdome"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
item_state = "thunderdome"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
/obj/item/clothing/head/helmet/welding
name = "welding helmet"
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
icon_state = "welding"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
see_face = 0.0
item_state = "welding"
protective_temperature = 1300
m_amt = 3000
g_amt = 1000
var/up = 0
armor = list(melee = 10, bullet = 5, laser = 10,energy = 5, bomb = 10, bio = 5, rad = 10)
/obj/item/clothing/head/helmet/that
name = "Sturdy Top hat"
desc = "An amish looking, armored top hat."
icon_state = "tophat"
item_state = "that"
flags = FPRINT|TABLEPASS
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/helmet/greenbandana
name = "Green Bandana"
desc = "A green bandana with some fine nanotech lining."
icon_state = "greenbandana"
item_state = "greenbandana"
flags = FPRINT|TABLEPASS
armor = list(melee = 5, bullet = 5, laser = 5,energy = 5, bomb = 15, bio = 15, rad = 15)
/obj/item/clothing/head/helmet/riot
name = "Riot Helmet"
desc = "A helmet specifically designed to protect against close range attacks."
icon_state = "riot"
item_state = "helmet"
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES
armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
/obj/item/clothing/head/helmet/cap
name = "Captain's cap"
desc = "For irresponsible Captains."
icon_state = "capcap"
flags = FPRINT|TABLEPASS|SUITSPACE
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/chaplain_hood
name = "Chaplain's hood"
desc = "A hood that covers the head. Keeps you warm during the space winters."
icon_state = "chaplain_hood"
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
/obj/item/clothing/head/hasturhood
name = "Hastur's Hood"
desc = "This hood is unspeakably stylish"
icon_state = "hasturhood"
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
/obj/item/clothing/head/nursehat
name = "Nurse Hat"
desc = "For quick identification of trained medical personnel."
icon_state = "nursehat"
flags = FPRINT|TABLEPASS

View File

@@ -1,546 +0,0 @@
// UNDERS AND BY THAT, NATURALLY I MEAN UNIFORMS/JUMPSUITS
/obj/item/clothing/under
icon = 'uniforms.dmi'
name = "under"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
protective_temperature = T0C + 50
heat_transfer_coefficient = 0.30
permeability_coefficient = 0.90
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
var/has_sensor = 1//For the crew computer 2 = unable to change mode
var/sensor_mode = 0
/*
1 = Report living/dead
2 = Report detailed damages
3 = Report location
*/
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
// Colors
/obj/item/clothing/under/chameleon
//starts off as black
name = "Black Jumpsuit"
icon_state = "black"
item_state = "bl_suit"
color = "black"
desc = "A plain jumpsuit. It seems to have a small dial on the wrist."
origin_tech = "syndicate=3"
var/list/clothing_choices = list()
armor = list(melee = 10, bullet = 0, laser = 50,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/chameleon/psyche
item_state = "bl_suit"
name = "Groovy Jumpsuit"
desc = "A groovy jumpsuit! It seems to have a small dial on the wrist, that won't stop spinning."
icon_state = "psyche"
color = "psyche"
/obj/item/clothing/under/chameleon/all
/obj/item/clothing/under/color/black
name = "Black Jumpsuit"
icon_state = "black"
item_state = "bl_suit"
color = "black"
/obj/item/clothing/under/color/blackf
name = "Female Black Jumpsuit"
desc = "This one is a lady-size!"
icon_state = "black"
item_state = "bl_suit"
color = "blackf"
/obj/item/clothing/under/color/blue
name = "Blue Jumpsuit"
icon_state = "blue"
item_state = "b_suit"
color = "blue"
/obj/item/clothing/under/color/green
name = "Green Jumpsuit"
icon_state = "green"
item_state = "g_suit"
color = "green"
/obj/item/clothing/under/color/grey
name = "Grey Jumpsuit"
icon_state = "grey"
item_state = "gy_suit"
color = "grey"
/obj/item/clothing/under/color/orange
name = "Orange Jumpsuit"
desc = "Standard Nanotrasen prisoner wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "orange"
item_state = "o_suit"
color = "orange"
has_sensor = 2
sensor_mode = 3
/obj/item/clothing/under/color/pink
name = "Pink Jumpsuit"
icon_state = "pink"
item_state = "p_suit"
color = "pink"
/obj/item/clothing/under/color/red
name = "Red Jumpsuit"
icon_state = "red"
item_state = "r_suit"
color = "red"
/obj/item/clothing/under/color/white
desc = "Made of a special fiber that gives protection against biohazards."
name = "White Jumpsuit"
icon_state = "white"
item_state = "w_suit"
color = "white"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/color/yellow
name = "Yellow Jumpsuit"
icon_state = "yellow"
item_state = "y_suit"
color = "yellow"
// RANKS
/obj/item/clothing/under/rank
/obj/item/clothing/under/rank/atmospheric_technician
desc = "A jumpsuit used by atmospheric technicians."
name = "Atmospherics Jumpsuit"
icon_state = "atmos"
item_state = "atmos_suit"
color = "atmos"
/obj/item/clothing/under/rank/captain
desc = "A blue jumpsuit with gold marking denoting the rank of \"Captain\"."
name = "Captain Jumpsuit"
icon_state = "captain"
item_state = "caparmor"
color = "captain"
/obj/item/clothing/under/rank/chaplain
desc = "A black jumpsuit, worn by religious folk."
name = "Chaplain Jumpsuit"
icon_state = "chaplain"
item_state = "bl_suit"
color = "chapblack"
/obj/item/clothing/under/rank/engineer
desc = "An orange high visibility jumpsuit. Used by Nanotrasen Engineers, has minor radiation shielding."
name = "Engineering Jumpsuit"
icon_state = "engine"
item_state = "engi_suit"
color = "engine"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
/obj/item/clothing/under/rank/forensic_technician
desc = "It has a Forensics rank stripe on it."
name = "Forensics Jumpsuit"
icon_state = "darkred"
item_state = "r_suit"
color = "forensicsred"
/obj/item/clothing/under/rank/warden
desc = "Made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. This one has the word \"Warden\" written on the shoulders."
name = "Warden Jumpsuit"
icon_state = "darkred"
item_state = "r_suit"
color = "darkred"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/rank/security
name = "Security Jumpsuit"
desc = "Made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection."
icon_state = "red"
item_state = "r_suit"
color = "red"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/rank/vice
name = "Vice officer Jumpsuit"
desc = "Your standard issue pretty-boy outfit, as seen on TV."
icon_state = "vice"
item_state = "gy_suit"
color = "vice"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/rank/geneticist
desc = "Made of a special fiber that gives special protection against biohazards. Has a genetics rank stripe on it."
name = "Genetics Jumpsuit"
icon_state = "genetics"
item_state = "w_suit"
color = "geneticswhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/chemist
desc = "Made of a special fiber that gives special protection against biohazards. Has a chemist rank stripe on it."
name = "Chemist Jumpsuit"
icon_state = "genetics"
item_state = "w_suit"
color = "chemistrywhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/virologist
desc = "Made of a special fiber that gives special protection against biohazards. Has a virologist rank stripe on it."
name = "Virology Jumpsuit"
icon_state = "virology"
item_state = "w_suit"
color = "virologywhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/head_of_personnel
desc = "A jumpsuit worn by someone who works in the position of \"Head of Personnel\"."
name = "Head of Personnel Jumpsuit"
icon_state = "hop"
item_state = "b_suit"
color = "hop"
/obj/item/clothing/under/rank/centcom_officer
desc = "A jumpsuit worn by Centcom Officers."
name = "CentCom Officer Jumpsuit"
icon_state = "centcom"
item_state = "g_suit"
color = "centcom"
/obj/item/clothing/under/rank/centcom_commander
desc = "A jumpsuit worn by Centcom's highest level Commanders."
name = "CentCom Officer Jumpsuit"
icon_state = "officer"
item_state = "dg_suit"
color = "officer"
/obj/item/clothing/under/rank/miner
desc = "A snappy jumpsuit with a sturdy set of overalls. It is very dirty."
name = "Shaft Miner Jumpsuit"
icon_state = "miner"
item_state = "miner"
color = "miner"
/obj/item/clothing/under/rank/roboticist
desc = "A slimming black with reinforced seams. Great for industrial work."
name = "Roboticist Jumpsuit"
icon_state = "robotics"
item_state = "robotics"
color = "robotics"
/obj/item/clothing/under/rank/head_of_security
desc = "A jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". Has slight armor to protect the wearer."
name = "Head of Security Jumpsuit"
icon_state = "hos"
item_state = "r_suit"
color = "hosred"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/rank/chief_engineer
desc = "A high visibility jumpsuit given to those engineers committed enough to their jobs to achieve the rank of \"Chief engineer\". Has minor radiation shielding."
name = "Chief Engineer Jumpsuit"
icon_state = "chiefengineer"
item_state = "g_suit"
color = "chief"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
/obj/item/clothing/under/rank/research_director
desc = "A jumpsuit worn by those dedicated to all that is science and have achieved the position of \"Research Director\". Has minor biological anomaly protection."
name = "Research Director Jumpsuit"
icon_state = "director"
item_state = "g_suit"
color = "director"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/janitor
desc = "Official clothing of the station's janitor. Has minor protection from biohazards."
name = "Janitor's Jumpsuit"
icon_state = "janitor"
color = "janitor"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/scientist
desc = "Made of a special fiber that gives special protection against biohazards. Has markings denoting the wearer as a scientist."
name = "Scientist's Jumpsuit"
icon_state = "toxins"
item_state = "w_suit"
color = "toxinswhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/under/rank/medical
desc = "Made of a special fiber that gives special protection against biohazards. Has a cross on the chest denoting that the wearer is trained medical personnel."
name = "Medical Doctor's Jumpsuit"
icon_state = "medical"
item_state = "w_suit"
color = "medical"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/chief_medical_officer
desc = "A jumpsuit worn by those with the dedication to the medical profession who have achieved the position of \"Chief Medical Officer\". Has minor biological protection."
name = "Chief Medical Officer's Jumpsuit"
icon_state = "medical"
item_state = "w_suit"
color = "medical"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/hydroponics
desc = "A jumpsuit designed to protect against minor plant-related hazards."
name = "Hydroponics Jumpsuit"
icon_state = "hydroponics"
item_state = "g_suit"
color = "hydroponics"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/cargo
name = "Quartermaster's Jumpsuit"
desc = "What can brown do for you?"
icon_state = "lightbrown"
item_state = "lb_suit"
color = "cargo"
/obj/item/clothing/under/rank/cargotech
name = "Cargotech's Jumpsuit"
desc = "Shooooorts! They're comfy and easy to wear!"
icon_state = "cargotech"
item_state = "cargotech"
color = "cargotech"
/obj/item/clothing/under/rank/mailman
name = "Mailman Jumpsuit"
desc = "Special delivery!"
icon_state = "mailman"
item_state = "b_suit"
color = "mailman"
/obj/item/clothing/under/sexyclown
name = "Sexyclown suit"
desc = "What can I do for you?"
icon_state = "sexyclown"
item_state = "sexyclown"
color = "sexyclown"
/obj/item/clothing/under/rank/bartender
desc = "It looks like it could use more flair."
name = "Bartender's Uniform"
icon_state = "ba_suit"
item_state = "ba_suit"
color = "ba_suit"
/obj/item/clothing/under/rank/clown
name = "clown suit"
desc = "Wearing this, all the children love you, for all the wrong reasons."
icon_state = "clown"
item_state = "clown"
color = "clown"
/obj/item/clothing/under/rank/chef
desc = "Issued only to the most hardcore chefs in space."
name = "Chef's Uniform"
icon_state = "chef"
color = "chef"
/obj/item/clothing/under/rank/geneticist_new
desc = "Made of a special fiber that gives special protection against biohazards."
name = "Genetics Jumpsuit"
icon_state = "genetics_new"
item_state = "w_suit"
color = "genetics_new"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/chemist_new
desc = "Made of a special fiber that gives special protection against biohazards."
name = "Chemist Jumpsuit"
icon_state = "chemist_new"
item_state = "w_suit"
color = "chemist_new"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/rank/scientist_new
desc = "Made of a special fiber that gives special protection against biohazards and small explosions."
name = "Scientist Jumpsuit"
icon_state = "scientist_new"
item_state = "w_suit"
color = "scientist_new"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/under/rank/virologist_new
desc = "Made of a special fiber that gives increased protection against biohazards."
name = "Virologist Jumpsuit"
icon_state = "virologist_new"
item_state = "w_suit"
color = "virologist_new"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
// OTHER NONRANKED STATION JOBS
/obj/item/clothing/under/det
name = "Hard worn suit"
desc = "Someone who wears this means business."
icon_state = "detective"
item_state = "det"
color = "detective"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
var/obj/item/weapon/gun
/obj/item/clothing/under/scratch
name = "White Suit"
desc = "A white suit, suitable for an excellent host"
flags = FPRINT | TABLEPASS
icon_state = "scratch"
item_state = "scratch"
color = "scratch"
/obj/item/clothing/under/jensen
desc = "You never asked for anything this stylish."
name = "Head of Security Jumpsuit"
icon_state = "jensen"
item_state = "jensen"
color = "jensen"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/sl_suit
desc = "A very amish looking suit."
name = "Amish Suit"
icon_state = "sl_suit"
color = "sl_suit"
/obj/item/clothing/under/syndicate
name = "Tactical Turtleneck"
desc = "Non-descript, slightly suspicious civilian clothing."
icon_state = "syndicate"
item_state = "bl_suit"
color = "syndicate"
has_sensor = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/syndicate/tacticool
name = "Tacticool Turtleneck"
desc = "Wearing this makes you feel like buying an SKS, going into the woods, and operating."
icon_state = "tactifool"
item_state = "bl_suit"
color = "tactifool"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/under/syndicate/combat
name = "Combat Turtleneck"
/obj/item/clothing/under/librarian
name = "Sensible Suit"
desc = "It's very... sensible."
icon_state = "red_suit"
item_state = "red_suit"
color = "red_suit"
/obj/item/clothing/under/mime
name = "Mime Outfit"
desc = "It's not very colourful."
icon_state = "mime"
item_state = "mime"
color = "mime"
/obj/item/clothing/under/waiter
name = "Waiter Outfit"
desc = "There is a special pocket for tip."
icon_state = "waiter"
item_state = "waiter"
color = "waiter"
// Athletic shorts.. heh
/obj/item/clothing/under/shorts
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
flags = FPRINT | TABLEPASS
body_parts_covered = LOWER_TORSO
/obj/item/clothing/under/shorts/red
icon_state = "redshorts"
color = "redshorts"
/obj/item/clothing/under/shorts/green
icon_state = "greenshorts"
color = "greenshorts"
/obj/item/clothing/under/shorts/blue
icon_state = "blueshorts"
color = "blueshorts"
/obj/item/clothing/under/shorts/black
icon_state = "blackshorts"
color = "blackshorts"
/obj/item/clothing/under/shorts/grey
icon_state = "greyshorts"
color = "greyshorts"
/obj/item/clothing/under/space
name = "NASA Jumpsuit"
icon_state = "black"
item_state = "bl_suit"
color = "black"
desc = "Has a NASA logo on it, made of space proofed materials."
w_class = 4//bulky item
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
heat_transfer_coefficient = 0.02
protective_temperature = 1000
flags = FPRINT | TABLEPASS | SUITSPACE
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
/obj/item/clothing/under/spiderman
name = "Deadpool Suit"
desc = "A suit of Deadpool!"
icon_state = "spiderman"
item_state = "spiderman"
color = "spiderman"
/obj/item/clothing/under/rank/nursesuit
desc = "Made of a special fiber that gives special protection against biohazards. A jumpsuit commonly worn by nursing staff in the medical department."
name = "Nurse Suit"
icon_state = "nursesuit"
item_state = "nursesuit"
color = "nursesuit"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/acj
name = "Administrative Cybernetic Jumpsuit"
icon_state = "syndicate"
item_state = "bl_suit"
color = "syndicate"
desc = "A cybernetically enhanced jumpsuit used in administrative duties."
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
heat_transfer_coefficient = 0.01
protective_temperature = 100000
flags = FPRINT | TABLEPASS | SUITSPACE
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
/obj/item/clothing/under/rank/medical_sleeve
desc = "Made of a special fiber that gives special protection against biohazards. Has a cross on the chest denoting that the wearer is trained medical personneland short sleeves."
name = "Short Sleeve Medical Jumpsuit"
icon_state = "medical_sleeve"
item_state = "w_suit"
color = "medical_sleeve"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/under/jumpsuitdown
desc = "A rolled down jumpsuit. Great for mechanics."
name = "Rolled Down Jumpsuit"
icon_state = "jumpsuitdown"
item_state = "jumpsuitdown"
color = "jumpsuitdown"

View File

@@ -1,149 +0,0 @@
// MASK WAS THAT MOVIE WITH THAT GUY WITH THE MESSED UP FACE. WHAT'S HIS NAME . . . JIM CARREY, I THINK.
/obj/item/clothing/mask
name = "mask"
icon = 'masks.dmi'
body_parts_covered = HEAD
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/mask/breath
desc = "A close-fitting mask that can be connected to an air supply."
name = "Breath Mask"
icon_state = "breath"
item_state = "breath"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | MASKCOVERSMOUTH | HALFMASK
w_class = 2
protective_temperature = 420
heat_transfer_coefficient = 0.90
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50
/obj/item/clothing/mask/medical
desc = "A close-fitting sterile mask that can be connected to an air supply."
name = "Medical Mask"
icon_state = "medical"
item_state = "medical"
flags = FPRINT|TABLEPASS|SUITSPACE|HEADSPACE|MASKCOVERSMOUTH
w_class = 3
protective_temperature = 420
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.10
/obj/item/clothing/mask/spiderman
desc = "A mask of Deadpool!"
name = "Deadpool mask"
icon_state = "spiderman"
item_state = "spiderman"
flags = FPRINT|TABLEPASS|SUITSPACE|HEADSPACE|MASKCOVERSMOUTH|BLOCKHAIR
w_class = 3
protective_temperature = 420
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
/obj/item/clothing/mask/muzzle
name = "muzzle"
desc = "To stop that awful noise."
icon_state = "muzzle"
item_state = "muzzle"
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
/obj/item/clothing/mask/surgical
name = "Sterile Mask"
desc = "A sterile mask designed to help prevent the spread of diseases."
icon_state = "sterile"
item_state = "sterile"
w_class = 1
flags = FPRINT|TABLEPASS|HEADSPACE|MASKCOVERSMOUTH
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.05
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
/obj/item/clothing/mask/gas
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply."
icon_state = "gas_mask"
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
w_class = 3.0
see_face = 0.0
item_state = "gas_mask"
protective_temperature = 500
heat_transfer_coefficient = 0.01
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
/obj/item/clothing/mask/gas/plaguedoctor
name = "Plague doctor mask"
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
icon_state = "plaguedoctor"
item_state = "gas_mask"
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
/obj/item/clothing/mask/gas/emergency
name = "emergency gas mask"
desc = "A face-covering mask that can be connected to an air supply. For use in emergencies."
icon_state = "gas_alt"
item_state = "gas_alt"
/obj/item/clothing/mask/gas/swat
name = "SWAT Mask"
desc = "A close-fitting tactical mask that can be connected to an air supply."
icon_state = "swat"
/obj/item/clothing/mask/gas/syndicate
name = "syndicate mask"
desc = "A close-fitting tactical mask that can be connected to an air supply."
icon_state = "swat"
/obj/item/clothing/mask/gas/voice
name = "gas mask"
//desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics."
icon_state = "gas_mask"
var/mode = 0// 0==Scouter | 1==Night Vision | 2==Thermal | 3==Meson
var/voice = "Unknown"
var/vchange = 0//This didn't do anything before. It now checks if the mask has special functions/N
origin_tech = "syndicate=4"
/obj/item/clothing/mask/gas/voice/space_ninja
name = "ninja mask"
desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement."
icon_state = "s-ninja"
item_state = "s-ninja_mask"
vchange = 1
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
icon_state = "clown"
item_state = "clown_hat"
/obj/item/clothing/mask/gas/sexyclown
name = "sexy clown mask"
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
icon_state = "sexyclown"
item_state = "sexyclown"
/obj/item/clothing/mask/gas/mime
name = "mime mask"
desc = "The traditional mime's mask. It has an eerie facial posture."
icon_state = "mime"
item_state = "mime"
/obj/item/clothing/mask/gas/monkeymask
name = "monkey mask"
desc = "A mask used when acting as a monkey."
icon_state = "monkeymask"
item_state = "monkeymask"
/obj/item/clothing/mask/gas/sexymime
name = "sexy mime mask"
desc = "A traditional female mime's mask."
icon_state = "sexymime"
item_state = "sexymime"
/obj/item/clothing/mask/gas/fakemoustache
name = "fake moustache"
desc = "Warning: moustache is fake."
icon_state = "fake-moustache"

View File

@@ -1,162 +0,0 @@
// OMG SHOES
/obj/item/clothing/shoes
name = "shoes"
icon = 'shoes.dmi'
desc = "Comfortable-looking shoes."
body_parts_covered = FEET
protective_temperature = 500
heat_transfer_coefficient = 0.10
permeability_coefficient = 0.50
slowdown = SHOES_SLOWDOWN
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/shoes/syndigaloshes
desc = "A pair of brown shoes. They seem to have extra grip."
name = "Brown Shoes"
icon_state = "brown"
item_state = "brown"
permeability_coefficient = 0.05
flags = NOSLIP
origin_tech = "syndicate=3"
var/list/clothing_choices = list()
/obj/item/clothing/shoes/syndigaloshes/all
/obj/item/clothing/shoes/black
name = "Black Shoes"
icon_state = "black"
color = "black"
desc = "A pair of black shoes."
redcoat
color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way.
/obj/item/clothing/shoes/brown
name = "Brown Shoes"
desc = "A pair of brown shoes."
icon_state = "brown"
color = "brown"
captain
color = "captain" //Exists for washing machines. Is not different from brown shoes in any way.
hop
color = "hop" //Exists for washing machines. Is not different from brown shoes in any way.
ce
color = "chief" //Exists for washing machines. Is not different from brown shoes in any way.
rd
color = "director" //Exists for washing machines. Is not different from brown shoes in any way.
cmo
color = "medical" //Exists for washing machines. Is not different from brown shoes in any way.
cmo
color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way.
/obj/item/clothing/shoes/blue
name = "Blue Shoes"
icon_state = "blue"
color = "blue"
/obj/item/clothing/shoes/green
name = "Green Shoes"
icon_state = "green"
color = "green"
/obj/item/clothing/shoes/yellow
name = "Yellow Shoes"
icon_state = "yellow"
color = "yellow"
/obj/item/clothing/shoes/mime
name = "Mime Shoes"
icon_state = "mime"
color = "mime"
/obj/item/clothing/shoes/purple
name = "Purple Shoes"
icon_state = "purple"
color = "purple"
/obj/item/clothing/shoes/brown
name = "Brown Shoes"
icon_state = "brown"
color = "brown"
/obj/item/clothing/shoes/orange
name = "Orange Shoes"
icon_state = "orange"
var/chained = 0
color = "orange"
/obj/item/clothing/shoes/swat
name = "SWAT shoes"
desc = "When you want to turn up the heat."
icon_state = "swat"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
flags = NOSLIP
/obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes.
name = "combat boots"
desc = "When you REALLY want to turn up the heat"
icon_state = "swat"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
flags = NOSLIP
/obj/item/clothing/shoes/space_ninja
name = "ninja shoes"
desc = "A pair of running shoes. Excellent for running and even better for smashing skulls."
icon_state = "s-ninja"
protective_temperature = 700
permeability_coefficient = 0.01
flags = NOSLIP
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
/obj/item/clothing/shoes/white
name = "White Shoes"
icon_state = "white"
permeability_coefficient = 0.25
color = "white"
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."
name = "sandals"
icon_state = "wizard"
/obj/item/clothing/shoes/sandal/marisa
desc = "A pair of magic, black shoes."
name = "Magic Shoes"
icon_state = "black"
/obj/item/clothing/shoes/galoshes
desc = "Rubber boots"
name = "galoshes"
icon_state = "galoshes"
permeability_coefficient = 0.05
flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
/obj/item/clothing/shoes/magboots
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle."
name = "magboots"
icon_state = "magboots0"
protective_temperature = 800
heat_transfer_coefficient = 0.01
var/magpulse = 0
// flags = NOSLIP //disabled by default
/obj/item/clothing/shoes/clown_shoes
desc = "The prankster's standard-issue clowning shoes. Damn they're huge!"
name = "clown shoes"
icon_state = "clown"
item_state = "clown_shoes"
slowdown = SHOES_SLOWDOWN+1
color = "clown"
/obj/item/clothing/shoes/jackboots
name = "Jackboots"
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
icon_state = "jackboots"
item_state = "jackboots"
color = "hosred"

View File

@@ -70,6 +70,7 @@
layer = 2
icon = 'drip.dmi'
icon_state = "1"
track_amt = 0
/obj/effect/decal/cleanable/mucus
name = "Mucus"

View File

@@ -27,6 +27,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade)
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/head/magus
name = "magus helm"
@@ -45,4 +46,5 @@
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade)
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT

View File

@@ -124,11 +124,12 @@ var/list/nonhuman_positions = list(
return 0
if("Chaplain","Botanist","Hydroponicist","Medical Doctor","Atmospheric Technician","Geneticist")
return 1
if("Quartermaster","Cargo Technician","Chemist", "Engineer","Roboticist", "Security Officer", "Forensic Technician","Detective", "Scientist","Shaft Miner")
if("Quartermaster","Cargo Technician","Chemist", "Engineer","Roboticist", "Security Officer", "Forensic Technician","Detective", "Scientist","Shaft Miner","Chief Medical Officer")
return 2
if("Research Director","Chief Medical Officer","Head of Security","Chief Engineer","Warden")
if("Research Director","Head of Security","Chief Engineer","Warden")
return 3
if("Captain","Head of Personnel","Wizard","MODE")
return 4
else
world << "\"[job]\" NOT GIVEN RANK, REPORT JOBS.DM ERROR TO A CODER"
message_admins("\"[job]\" NOT GIVEN RANK, REPORT JOBS.DM ERROR TO A CODER")
return 2

View File

@@ -221,7 +221,7 @@
A.yo = U.y - T.y
A.xo = U.x - T.x
spawn( 0 )
A.process()
A.fired()
return
@@ -591,6 +591,6 @@
A.current = curloc
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
A.process()
A.fired()
sleep(2)
return

View File

@@ -474,7 +474,8 @@
istype(W, /obj/item/weapon/kitchen/utensil/knife) || \
istype(W, /obj/item/weapon/shard) || \
istype(W, /obj/item/weapon/reagent_containers/syringe) || \
istype(W, /obj/item/weapon/kitchen/utensil/fork) && W.icon_state != "forkloaded" \
istype(W, /obj/item/weapon/kitchen/utensil/fork) && W.icon_state != "forkloaded" || \
istype(W,/obj/item/projectile)\
)
/proc/is_cut(obj/item/W as obj)
@@ -488,7 +489,8 @@
istype(W, /obj/item/weapon/butch) || \
istype(W, /obj/item/weapon/scalpel) || \
istype(W, /obj/item/weapon/kitchen/utensil/knife) || \
istype(W, /obj/item/weapon/shard) \
istype(W, /obj/item/weapon/shard) || \
istype(W,/obj/item/projectile) \
)
/proc/is_burn(obj/item/W as obj)
@@ -496,7 +498,8 @@
istype(W, /obj/item/weapon/weldingtool) && W:welding || \
istype(W, /obj/item/weapon/zippo) && W:lit || \
istype(W, /obj/item/weapon/match) && W:lit || \
istype(W, /obj/item/clothing/mask/cigarette) && W:lit \
istype(W, /obj/item/clothing/mask/cigarette) && W:lit || \
istype(W,/obj/item/projectile/beam)\
)
/obj/item/weapon/paper/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)

View File

@@ -258,12 +258,14 @@ THERMAL GLASSES
src.up = !src.up
src.see_face = !src.see_face
src.flags |= HEADCOVERSEYES
flags_inv |= HIDEMASK|HIDEEARS|HIDEEYES
icon_state = "welding"
usr << "You flip the mask down to protect your eyes."
else
src.up = !src.up
src.see_face = !src.see_face
src.flags &= ~HEADCOVERSEYES
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES)
icon_state = "weldingup"
usr << "You push the mask up out of your face."
usr.update_clothing()
@@ -416,4 +418,4 @@ THERMAL GLASSES
src.flags &= ~HEADCOVERSEYES
icon_state = "engspace_helmet_clear"
usr << "You toggle the reflective tint off."
usr.update_clothing()
usr.update_clothing()

View File

@@ -1,4 +1,4 @@
/proc/parse_zone(zone)
/*/proc/parse_zone(zone)
if(zone == "r_hand") return "right hand"
else if (zone == "l_hand") return "left hand"
else if (zone == "l_arm") return "left arm"
@@ -7,7 +7,7 @@
else if (zone == "r_leg") return "right leg"
else if (zone == "l_foot") return "left foot"
else if (zone == "r_foot") return "right foot"
else return zone
else return zone*/
/proc/text2dir(direction)
switch(uppertext(direction))

View File

@@ -246,6 +246,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
return
hear(var/msg)
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
msg = sanitize_simple(msg, replacechars)
if(findtext(msg,phrase))
if(istype(loc, /mob/))
var/mob/T = loc
@@ -258,6 +260,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
implanted(mob/source as mob)
phrase = input("Choose activation phrase:") as text
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
phrase = sanitize_simple(phrase, replacechars)
usr.mind.store_memory("Explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."

View File

@@ -16,6 +16,16 @@ MEDICAL
user << "\red \The [M] is dead, you cannot help [t_him]!"
return
if (!istype(M))
user << "\red \The [src] cannot be applied to [M]!"
return 1
if ( ! (istype(user, /mob/living/carbon/human) || \
istype(user, /mob/living/silicon) || \
istype(user, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
user << "\red You don't have the dexterity to do this!"
return 1
var/stoppedblood = 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -28,78 +38,75 @@ MEDICAL
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
if(H.bloodloss > 0 && heal_brute > 0) // fix wounds too if bruise pack
for(var/datum/organ/wound/W in affecting.wounds)
if(W.bleeding)
if(stoppedblood)
stoppedblood = 2
break
for(var/datum/organ/wound/W in affecting.wounds)
if(W.bleeding || !W.healing_state)
if(heal_brute && W.wound_type == 2)
continue
if(heal_burn && W.wound_type < 2)
continue
if(W.wound_size > 3)
W.bleeding = 0
else
W.stopbleeding()
stoppedblood = 1
stoppedblood = 1
break
if (user)
if (user && stoppedblood)
if (M != user)
H.visible_message("\red [user] patches [stoppedblood - 1 ? "some of" : "the last of"] [H]'s wounds with [src]", "\red You patch up [stoppedblood - 1 ? "some of" : "the last of"] [H]'s wounds", "\red You hear something like gauze being ripped.")
H.visible_message("\red You bandage up [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts", "\red [user] bandages [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts with [src]", "\red You hear something like gauze being ripped.")
else
H.visible_message("\red [user] patches [stoppedblood - 1 ? "some of" : "the last of"] their own wounds with [src]", "\red You patch up [stoppedblood - 1 ? "some of" : "the last of"] your wounds", "\red You hear something like gauze being ripped.")
if (M.health < 50 && !stoppedblood)
var/t_him = "it"
if (M.gender == MALE)
t_him = "him"
else if (M.gender == FEMALE)
t_him = "her"
user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
return
if (!istype(M))
user << "\red \The [src] cannot be applied to [M]!"
return 1
if ( ! (istype(user, /mob/living/carbon/human) || \
istype(user, /mob/living/silicon) || \
istype(user, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
user << "\red You don't have the dexterity to do this!"
return 1
if (user)
if (M != user)
user.visible_message( \
"\blue [M] has been applied with [src] by [user].", \
"\blue You apply \the [src] to [M]." \
)
else
var/t_himself = "itself"
if (user.gender == MALE)
t_himself = "himself"
else if (user.gender == FEMALE)
t_himself = "herself"
user.visible_message( \
"\blue [M] applied [src] on [t_himself].", \
"\blue You apply \the [src] on yourself." \
)
if (istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("chest")
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
else
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
H.UpdateDamageIcon()
M.updatehealth()
H.visible_message("\red You bandage up [stoppedblood - 1 ? "some of" : "the last of"] your cuts", "\red [user] bandages [stoppedblood - 1 ? "some of" : "the last of"] their own cuts with [src]", "\red You hear something like gauze being ripped.")
else if(user)
user << "\red Nothing to patch up!"
return
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
use(1)
// if (M.health < 50 && !stoppedblood)
// var/t_him = "it"
// if (M.gender == MALE)
// t_him = "him"
// else if (M.gender == FEMALE)
// t_him = "her"
// user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
// return
// if (user)
// if (M != user)
// user.visible_message( \
// "\blue [M] has been applied with [src] by [user].", \
// "\blue You apply \the [src] to [M]." \
// )
// else
// var/t_himself = "itself"
// if (user.gender == MALE)
// t_himself = "himself"
// else if (user.gender == FEMALE)
// t_himself = "herself"
// user.visible_message( \
// "\blue [M] applied [src] on [t_himself].", \
// "\blue You apply \the [src] on yourself." \
// )
// if (istype(M, /mob/living/carbon/human))
// var/mob/living/carbon/human/H = M
// var/datum/organ/external/affecting = H.get_organ("chest")
// if(istype(user, /mob/living/carbon/human))
// var/mob/living/carbon/human/user2 = user
// affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
// else
// if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
// affecting = H.get_organ("head")
//
// if (affecting.heal_damage(src.heal_brute, src.heal_burn))
// H.UpdateDamageIcon()
// M.updatehealth()
/obj/item/stack/medical/advanced/attack(mob/living/carbon/M as mob, mob/user as mob)
@@ -112,6 +119,16 @@ MEDICAL
user << "\red \The [M] is dead, you cannot help [t_him]!"
return
if (!istype(M))
user << "\red \The [src] cannot be applied to [M]!"
return 1
if ( ! (istype(user, /mob/living/carbon/human) || \
istype(user, /mob/living/silicon) || \
istype(user, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
user << "\red You don't have the dexterity to do this!"
return 1
var/stoppedblood = 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -124,73 +141,24 @@ MEDICAL
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
if(H.bloodloss > 0 && heal_brute > 0) // fix wounds too if bruise pack
for(var/datum/organ/wound/W in affecting.wounds)
if(W.bleeding)
if(stoppedblood)
stoppedblood = 2
break
W.stopbleeding()
stoppedblood = 1
for(var/datum/organ/wound/W in affecting.wounds)
if(W.bleeding || !W.healing_state)
if(heal_brute && W.wound_type == 2)
continue
if(heal_burn && W.wound_type < 2)
continue
W.stopbleeding()
stoppedblood = 1
break
if (user)
if (user && stoppedblood)
if (M != user)
H.visible_message("\red [user] patches [stoppedblood - 1 ? "some of" : "the last of"] [H]'s wounds with [src]", "\red You patch up [stoppedblood - 1 ? "some of" : "the last of"] [H]'s wounds", "\red You hear something like gauze being ripped.")
H.visible_message("\red You bandage up [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts", "\red [user] bandages [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts with [src]", "\red You hear something like gauze being ripped.")
else
H.visible_message("\red [user] patches [stoppedblood - 1 ? "some of" : "the last of"] their own wounds with [src]", "\red You patch up [stoppedblood - 1 ? "some of" : "the last of"] your wounds", "\red You hear something like gauze being ripped.")
if (M.health < 0 && !stoppedblood)
var/t_him = "it"
if (M.gender == MALE)
t_him = "him"
else if (M.gender == FEMALE)
t_him = "her"
user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
return
if (!istype(M))
user << "\red \The [src] cannot be applied to [M]!"
return 1
if ( ! (istype(user, /mob/living/carbon/human) || \
istype(user, /mob/living/silicon) || \
istype(user, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
user << "\red You don't have the dexterity to do this!"
return 1
if (user)
if (M != user)
user.visible_message( \
"\blue [M] has been applied with [src] by [user].", \
"\blue You apply \the [src] to [M]." \
)
else
var/t_himself = "itself"
if (user.gender == MALE)
t_himself = "himself"
else if (user.gender == FEMALE)
t_himself = "herself"
user.visible_message( \
"\blue [M] applied [src] on [t_himself].", \
"\blue You apply \the [src] on yourself." \
)
if (istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("chest")
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
else
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
H.UpdateDamageIcon()
M.updatehealth()
H.visible_message("\red You bandage up [stoppedblood - 1 ? "some of" : "the last of"] your cuts", "\red [user] bandages [stoppedblood - 1 ? "some of" : "the last of"] their own cuts with [src]", "\red You hear something like gauze being ripped.")
else if(user)
user << "\red Nothing to patch up!"
return
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))

View File

@@ -510,11 +510,15 @@ Traitors and the like can also be revived with the previous role mostly intact.
e.destroyed = 0
e.perma_injury = 0
e.update_icon()
for(var/datum/organ/wound/W in e.wounds)
if(W.bleeding)
W.stopbleeding()
H.vessel = new/datum/reagents(560)
H.vessel.my_atom = H
H.vessel.add_reagent("blood",560)
spawn(1)
H.fixblood()
H.pale = 0
H.update_body()
H.update_face()
H.UpdateDamageIcon()

View File

@@ -96,7 +96,7 @@ datum
blood
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"virus2"=null,"antibodies"=0)
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"virus2"=null,"antibodies"=0)
name = "Blood"
id = "blood"
reagent_state = LIQUID
@@ -105,7 +105,7 @@ datum
if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type))
M.adjustToxLoss(rand(1.5,3))
M.adjustOxyLoss(rand(1.5,3))
..()
..()
return
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)

View File

@@ -1,30 +0,0 @@
/obj/item/clothing/head/helmet/hardhat
name = "hard hat"
desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight."
icon_state = "hardhat0_yellow"
flags = FPRINT | TABLEPASS | SUITSPACE
item_state = "hardhat0_yellow"
var/brightness_on = 4 //luminosity when on
var/on = 0
color = "yellow" //Determines used sprites: hardhat[on]_[color] and hardhat[on]_[color]2 (lying down sprite)
armor = list(melee = 30, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)
/obj/item/clothing/head/helmet/hardhat/orange
icon_state = "hardhat0_orange"
item_state = "hardhat0_orange"
color = "orange"
/obj/item/clothing/head/helmet/hardhat/red
icon_state = "hardhat0_red"
item_state = "hardhat0_red"
color = "red"
/obj/item/clothing/head/helmet/hardhat/white
icon_state = "hardhat0_white"
item_state = "hardhat0_white"
color = "white"
/obj/item/clothing/head/helmet/hardhat/dblue
icon_state = "hardhat0_dblue"
item_state = "hardhat0_dblue"
color = "dblue"

View File

@@ -13,6 +13,7 @@ Space suit parts
item_state = "space"
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
/obj/item/clothing/suit/space
@@ -30,4 +31,5 @@ Space suit parts
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 3
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT

View File

@@ -24,3 +24,4 @@
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
slowdown = 1.5
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT

View File

@@ -2,23 +2,7 @@
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/helmet
name = "helmet"
desc = "Standard Security gear. Protects the head from impacts."
icon_state = "helmet"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES
item_state = "helmet"
armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0)
protective_temperature = 500
heat_transfer_coefficient = 0.10
/obj/item/clothing/head/helmet/warden
name = "Warden Hat"
desc = "A special helmet issued to the Warden of a securiy force. Protects the head from impacts."
icon_state = "policehelm"
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/armor/vest
@@ -38,6 +22,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 1
armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/armor/bulletproof
@@ -63,6 +48,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
flags_inv = 0
/obj/item/clothing/suit/armor/reactive
name = "Reactive Teleport Armor"

View File

@@ -5,6 +5,7 @@
permeability_coefficient = 0.01
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 10)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
/obj/item/clothing/suit/bio_suit
name = "bio suit"
@@ -20,6 +21,7 @@
slowdown = 1.0
allowed = list(/obj/item/weapon/tank/emergency_oxygen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/head/bio_hood/general

View File

@@ -4,6 +4,7 @@
icon_state = "bombsuit"
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
/obj/item/clothing/suit/bomb_suit
name = "bomb suit"
@@ -18,6 +19,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 2
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/head/bomb_hood/security

View File

@@ -11,6 +11,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/extinguisher)
slowdown = 1.0
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/fire/firefighter
@@ -50,3 +51,4 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 1.5
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
flags_inv = HIDEJUMPSUIT

View File

@@ -7,6 +7,7 @@
w_class = 4//bulky item
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/armor/heavy
name = "heavy armor"
@@ -17,9 +18,11 @@
gas_transfer_coefficient = 0.90
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 3
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/armor/tdome
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/armor/tdome/red
name = "Thunderdome suit (red)"
@@ -47,6 +50,7 @@
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 1
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 0, rad = 0)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/storage/officer
name = "officer jacket"
@@ -62,6 +66,7 @@
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 1
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 0, rad = 0)
flags_inv = 0
/obj/item/clothing/suit/storage/armoredundersuit
name = "armoured undersuit"
@@ -72,5 +77,6 @@
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
flags_inv = 0

View File

@@ -1,10 +1,10 @@
/obj/item/clothing/head/helmet/HoS
name = "Head of Security Hat"
desc = "The hat of the Head of Security. For showing the officers who's in charge."
icon_state = "hoscap"
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
flags_inv = HIDEEARS
/obj/item/clothing/head/helmet/HoS/dermal
name = "Dermal Armour Patch"
@@ -19,6 +19,7 @@
item_state = "hos"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/armor/hos/jensen
@@ -26,3 +27,4 @@
desc = "A trenchoat augmented with a special alloy for some protection and style"
icon_state = "jensencoat"
item_state = "jensencoat"
flags_inv = 0

View File

@@ -4,6 +4,7 @@
icon_state = "straight_jacket"
item_state = "straight_jacket"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/storage/wcoat
@@ -66,6 +67,7 @@
w_class = 3
flags = FPRINT | TABLEPASS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/storage/captunic
@@ -74,6 +76,7 @@
icon_state = "captunic"
item_state = "bio_suit"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/nun
@@ -82,6 +85,7 @@
icon_state = "nun"
item_state = "nun"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
flags_inv = HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/monk
name = "monk's robe"
@@ -104,6 +108,7 @@
icon_state = "hastur"
item_state = "hastur"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/imperium_monk
@@ -112,6 +117,7 @@
icon_state = "imperium_monk"
item_state = "imperium_monk"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/chickensuit
@@ -120,6 +126,7 @@
icon_state = "chickensuit"
item_state = "chickensuit"
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HEAD
flags_inv = HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/monkeysuit
@@ -128,6 +135,7 @@
icon_state = "monkeysuit"
item_state = "monkeysuit"
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/holidaypriest
@@ -136,5 +144,6 @@
icon_state = "holidaypriest"
item_state = "holidaypriest"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT

View File

@@ -37,6 +37,7 @@
body_parts_covered = FULL_BODY //It's magic, I ain't gotta explain shit. --NEO
armor = list(melee = 30, bullet = 20, laser = 20,energy = 20, bomb = 20, bio = 20, rad = 20)
allowed = list(/obj/item/weapon/teleportation_scroll)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/wizrobe/red

View File

@@ -5,6 +5,7 @@
desc = "Slick threads."
name = "Lawyer suit"
flags = FPRINT | TABLEPASS
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/under/lawyer/black

View File

@@ -1,250 +1,461 @@
/mob/living/carbon/human/examine()
set src in view()
set src in oview()
usr << "\blue *---------*"
if(!usr || !src) return
if(((usr.disabilities & 128) || usr.blinded || usr.stat) && !(istype(usr,/mob/dead/observer/)))
usr << "<span class='notice'>Something is there but you can't see it.</span>"
return
usr << "\blue This is \icon[src.icon] <B>[src.name]</B>!"
// crappy hack because you can't do \his[src] etc
var/t_his = "its"
var/t_him = "it"
if (src.gender == MALE)
t_his = "his"
t_him = "him"
else if (src.gender == FEMALE)
t_his = "her"
t_him = "her"
if (src.w_uniform)
if (src.w_uniform.blood_DNA)
usr << "\red [src.name] is wearing a[src.w_uniform.blood_DNA ? " bloody " : " "] \icon[src.w_uniform] [src.w_uniform.name]!"
else
usr << "\blue [src.name] is wearing a \icon[src.w_uniform] [src.w_uniform.name]."
if (src.handcuffed)
usr << "\blue [src.name] is \icon[src.handcuffed] handcuffed!"
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)
if (src.wear_suit.blood_DNA)
usr << "\red [src.name] has a[src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name] on!"
else
usr << "\blue [src.name] has a \icon[src.wear_suit] [src.wear_suit.name] on."
if (src.l_ear)
usr << "\blue [src.name] has a \icon[src.l_ear] [src.l_ear.name] on [t_his] left ear."
if (src.r_ear)
usr << "\blue [src.name] has a \icon[src.r_ear] [src.r_ear.name] on [t_his] right ear."
if (src.wear_mask)
if (src.wear_mask.blood_DNA)
usr << "\red [src.name] has a[src.wear_mask.blood_DNA ? " bloody " : " "] \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face!"
else
usr << "\blue [src.name] has a \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face."
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)
usr << "\blue [src.name] is wearing a[src.head.blood_DNA ? " bloody " : " "] \icon[src.head] [src.head.name] on [t_his] head!"
skipmask = src.head.flags_inv & HIDEMASK
skipeyes = src.head.flags_inv & HIDEEYES
skipears = src.head.flags_inv & HIDEEARS
if (src.glasses)
usr << "\blue [src.name] is wearing a pair of [src.glasses.blood_DNA ? " bloody " : " "] \icon[src.glasses] [src.glasses.name]!"
// 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 = "<span class='info'>*---------*\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 += "<EM>\a [src]</EM>!\n"
//uniform
if (src.w_uniform && !skipjumpsuit)
if (src.w_uniform.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[src.w_uniform] [src.w_uniform.gender==PLURAL?"some":"a"] blood-stained [src.w_uniform.name]!</span>\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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.head] [src.head.gender==PLURAL?"some":"a"] blood-stained [src.head.name] on [t_his] head!</span>\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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_suit] [src.wear_suit.gender==PLURAL?"some":"a"] blood-stained [src.wear_suit.name]!</span>\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 += "<span class='warning'>[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]!</span>\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 += "<span class='warning'>[t_He] [t_has] \icon[src.back] [src.back.gender==PLURAL?"some":"a"] blood-stained [src.back] on [t_his] back.</span>\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)
usr << "\red [src.name] has a[src.l_hand.blood_DNA ? " bloody " : " "] \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand!"
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand."
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)
usr << "\red [src.name] has a[src.r_hand.blood_DNA ? " bloody " : " "] \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand!"
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand."
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 += "<span class='warning'>[t_He] [t_has] \icon[src.gloves] [src.gloves.gender==PLURAL?"some":"a"] blood-stained [src.gloves.name] on [t_his] hands!</span>\n"
else
msg += "[t_He] [t_has] \icon[src.gloves] \a [src.gloves] on [t_his] hands.\n"
else if (src.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] blood-stained hands!</span>\n"
//handcuffed?
if (src.handcuffed)
msg += "[t_He] [t_is] \icon[src.handcuffed] handcuffed!\n"
//belt
if (src.belt)
if (src.belt.blood_DNA)
usr << "\red [src.name] has a[src.belt.blood_DNA ? " bloody " : " "] \icon[src.belt] [src.belt.name] on [t_his] belt!"
msg += "<span class='warning'>[t_He] [t_has] \icon[src.belt] [src.belt.gender==PLURAL?"some":"a"] blood-stained [src.belt.name] about [t_his] waist!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.belt] [src.belt.name] on [t_his] belt."
if(src.s_store)
if(src.s_store.blood_DNA)
usr << "\red [src.name] has a[src.s_store.blood_DNA ? " bloody " : " "] \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]!"
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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.shoes] [src.shoes.gender==PLURAL?"some":"a"] blood-stained [src.shoes.name] on [t_his] feet!</span>\n"
else
usr << "\blue [src.name] has a \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]."
if (src.shoes)
usr << "[src.shoes.blood_DNA ? "\red" : "\blue"] [src.name] has a[src.shoes.blood_DNA ? " bloody " : " "] \icon[src.shoes] [src.shoes.name] on [t_his] feet."
msg += "[t_He] [t_is] wearing \icon[src.shoes] \a [src.shoes] on [t_his] feet.\n"
if (src.gloves)
if (src.gloves.blood_DNA)
usr << "\red [src.name] has bloody \icon[src.gloves] [src.gloves.name] on [t_his] hands!"
//mask
if (src.wear_mask && !skipmask)
if (src.wear_mask.blood_DNA)
msg += "<span class='warning'>[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!</span>\n"
else
usr << "\blue [src.name] has \icon[src.gloves] [src.gloves.name] on [t_his] hands."
else if (src.blood_DNA)
usr << "\red [src.name] has bloody hands!"
msg += "[t_He] [t_has] \icon[src.wear_mask] \a [src.wear_mask] on [t_his] face.\n"
if (src.back)
usr << "\blue [src.name] has a \icon[src.back] [src.back.name] on [t_his] back."
//eyes
if (src.glasses && !skipeyes)
if (src.glasses.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[src.glasses] [src.glasses.gender==PLURAL?"some":"a"] blood-stained [src.glasses] covering [t_his] eyes!</span>\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
var/photo = 0
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_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 += "<span class='warning'>[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id] yet something doesn't seem right...</span>\n"
else
id = src.wear_id.registered_name
if (src.wear_id.PHOTO)
photo = 1
if (id != src.real_name && in_range(src, usr))
if (photo)
usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
else
usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
else
if (photo)
usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
else
usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
msg += "[t_He] [t_is] wearing \icon[src.wear_id] \a [src.wear_id].\n"
//Jitters
if (src.is_jittery)
switch(src.jitteriness)
if(300 to INFINITY)
usr << "\red [src] is violently convulsing."
if(200 to 300)
usr << "\red [src] looks extremely jittery."
if(100 to 200)
usr << "\red [src] is twitching ever so slightly."
if(src.jitteriness >= 300)
msg += "<span class='warning'><B>[t_He] [t_is] convulsing violently!</B></span>\n"
else if(src.jitteriness >= 200)
msg += "<span class='warning'>[t_He] [t_is] extremely jittery.</span>\n"
else if(src.jitteriness >= 100)
msg += "<span class='warning'>[t_He] [t_is] twitching ever so slightly.</span>\n"
if (src.suiciding)
switch(src.suiciding)
if(1)
usr << "\red [src.name] appears to have bitten [t_his] tongue off!"
msg += "<span class='warning'>[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!</span>\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)
usr << "\red [name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep."
msg += "<span class='warning'>[name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep.</span>\n"
if((!isbreathing || holdbreath) && distance <= 3)
usr << "\red [name] does not appear to be breathing."
msg += "<span class='warning'>[name] does not appear to be breathing.</span>\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)
sleep(15)
usr << "\blue [name] has a pulse!"
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)
sleep(15)
usr << "\red [name] has no pulse!"
spawn(15)
usr << "\red [name] has no pulse!"
if (src.getBruteLoss())
/* if (src.getBruteLoss())
if (src.getBruteLoss() < 30)
usr << "\red [src.name] looks slightly injured!"
else
usr << "\red <B>[src.name] looks severely injured!</B>"
usr << "\red <B>[src.name] looks severely injured!</B>"*/
if (src.cloneloss)
if (src.cloneloss < 30)
usr << "\red [src.name] looks slightly... unfinished?"
msg += "<span class='warning'>[src.name] looks slightly... unfinished?</span>\n"
else
usr << "\red <B>[src.name] looks very... unfinished?</B>"
msg += "<span class='warning'>[src.name] looks very... unfinished?</B></span>\n"
if (src.getFireLoss())
/* if (src.getFireLoss())
if (src.getFireLoss() < 30)
usr << "\red [src.name] looks slightly burned!"
else
usr << "\red <B>[src.name] looks severely burned!</B>"
usr << "\red <B>[src.name] looks severely burned!</B>"*/
msg += "<span class='warning'>"
if (src.nutrition < 100)
usr << "\red [src.name] looks like flesh and bones."
msg += "[t_He] [t_is] severely malnourished.\n"
else if (src.nutrition >= 500)
if (usr.nutrition < 100)
usr << "\red [src.name] looks very round and delicious. Like a little piggy. A tasty piggy."
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
usr << "\blue [src.name] looks quite chubby."
msg += "[t_He] [t_is] quite chubby.\n"
if(!stat)
if (src.brainloss >= 60)
usr << "\red [src.name] has a stupid expression on [t_his] face."
msg += "</span>"
if (src.getBrainLoss() >= 60 && !stat)
msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n"
if (!src.client)
usr << "\red [src.name] doesn't seem as though they want to talk."
msg += "[t_He] [t_has] a vacant, braindead stare...\n"
spawn(10) // I think we might be overloading the clients.
var/list/wound_descriptions = list()
for(var/named in organs)
var/datum/organ/external/temp = organs[named]
if(temp)
if(temp.destroyed)
usr << "\red [src.name] is missing [t_his] [temp.display_name]."
continue
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
//Now that we have a big list of all the wounds, on all the limbs.
var/list/wound_flavor_text = list()
for(var/named in wound_descriptions)
var/list/wound_states = wound_descriptions[named]
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) //How many wounds of what size.
for(var/datum/organ/wound/w in wound_state)
switch(w.wound_size)
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]"] = "<span class='warning'><b>[src.name] is missing [t_his] [temp.display_name].</b></span>\n"
continue
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)
tally["cut"] += 1
var/list/cut = wounds[2]
cut += w
wounds[2] = cut
if(2)
tally["deep cut"] += 1
var/list/cut = wounds[3]
cut += w
wounds[3] = cut
if(3)
tally["flesh wound"] += 1
var/list/cut = wounds[4]
cut += w
wounds[4] = cut
if(4)
tally["gaping wound"] += 1
var/list/cut = wounds[5]
cut += w
wounds[5] = cut
if(5)
tally["big gaping wound"] += 1
if(6)
tally["massive wound"] += 1
for(var/tallied in tally)
if(!tally[tallied])
continue
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.
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)
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 += "<span class='warning'>[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 += "<span class='warning'>[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 += "<span class='warning'>[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 += "<span class='warning'>[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].</span><br>"
wound_flavor_text["[named]"] = flavor_text_string
if(wound_flavor_text["head"] && !skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))
msg += wound_flavor_text["head"]
if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["chest"]
if(wound_flavor_text["left arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left arm"]
if(wound_flavor_text["left hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["left hand"]
if(wound_flavor_text["right arm"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right arm"]
if(wound_flavor_text["right hand"] && !gloves && !skipgloves)
msg += wound_flavor_text["right hand"]
if(wound_flavor_text["groin"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["groin"]
if(wound_flavor_text["left leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["left leg"]
if(wound_flavor_text["left foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["left foot"]
if(wound_flavor_text["right leg"] && !w_uniform && !skipjumpsuit)
msg += wound_flavor_text["right leg"]
if(wound_flavor_text["right foot"]&& !shoes && !skipshoes)
msg += wound_flavor_text["right foot"]
// if(w.bleeding)
// usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
// continue
print_flavor_text()
msg += print_flavor_text()
usr << "\blue *---------*"
msg += "\blue *---------*"
usr << msg

View File

@@ -129,21 +129,19 @@
/mob/living/carbon/human/proc/fixblood()
for(var/datum/reagent/blood/B in vessel.reagent_list)
if(B.id == "blood")
B.data["blood_type"] = dna.b_type
B.data["blood_DNA"] = dna.unique_enzymes
B.data["donor"] = src
if(virus2)
B.data["virus2"] = virus2.getcopy()
B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.b_type,"resistances"=null,"trace_chem"=null,"virus2"=(virus2 ? virus2.getcopy() : null),"antibodies"=0)
/mob/living/carbon/human/proc/drip(var/amt as num)
if(!amt)
return
var/turf/T = get_turf(src)
var/list/obj/effect/decal/cleanable/blood/drip/nums
var/list/obj/effect/decal/cleanable/blood/drip/nums = list()
var/amm = 0.1 * amt
vessel.remove_reagent("blood",amm)
var/list/hax = list("1","2","3","4","5")
for(var/obj/effect/decal/cleanable/blood/drip/G in T)
nums += G
hax.Remove(G.icon_state)
if(nums.len >= 3)
var/obj/effect/decal/cleanable/blood/drip/D = pick(nums)
D.blood_DNA.len++
@@ -151,9 +149,8 @@
if(virus2)
D.virus2 += virus2.getcopy()
return
var/obj/effect/decal/cleanable/blood/this = new(T)
var/hax = pick("1","2","3","4","5")
this.icon_state = hax
var/obj/effect/decal/cleanable/blood/drip/this = new(T)
this.icon_state = pick(hax)
this.blood_DNA = list(list(dna.unique_enzymes,dna.b_type))
this.blood_owner = src
if(virus2)

View File

@@ -90,9 +90,12 @@ emp_act
if(!I || !user) return 0
var/datum/organ/external/affecting = get_organ(ran_zone(user.zone_sel.selecting))
var/hit_area = parse_zone(affecting.name)
var/hit_area = affecting.display_name
visible_message("\red <B>[src] has been attacked in the [hit_area] with [I.name] by [user]!</B>")
if(affecting.destroyed)
visible_message("\red <B>[src] has been attacked in the [hit_area] with [I.name] by [user]!</B>")
else
user << "What [affecting]?"
if((user != src) && check_shields(I.force, "the [I.name]"))
return 0

View File

@@ -180,7 +180,7 @@
// a.hallucinate(src)
if(!handling_hal && hallucination > 20)
spawn handle_hallucinations() //The not boring kind!
hallucination -= 2
hallucination = max(hallucination - 2, 0)
//if(health < 0)
// for(var/obj/a in hallucinations)
// del a
@@ -827,10 +827,6 @@
return //TODO: DEFERRED
updatepale()
pale = !pale
update_body()
handle_regular_status_updates()
var/leg_tally = 2
for(var/name in organs)
@@ -864,11 +860,11 @@
else if(blood_volume > 448)
if(pale)
pale = 0
updatepale()
update_body()
else if(blood_volume <= 448 && blood_volume > 336)
if(!pale)
updatepale()
pale = 1
update_body()
var/word = pick("dizzy","woosey","faint")
src << "\red You feel [word]"
if(prob(1))
@@ -876,8 +872,8 @@
src << "\red You feel [word]"
else if(blood_volume <= 336 && blood_volume > 244)
if(!pale)
updatepale()
pale = 1
update_body()
eye_blurry += 6
if(prob(15))
paralysis += rand(1,3)
@@ -958,6 +954,7 @@
src << "\red Your face has become disfigured."
face_op_stage = 0.0
warn_flavor_changed()
var/blood_max = 0
for(var/name in organs)
var/datum/organ/external/temp = organs[name]
if(!temp.bleeding)
@@ -966,9 +963,10 @@
// if(prob(35))
// bloodloss += rand(1,10)
if(temp.wounds)
for(var/datum/organ/external/wound/W in temp.wounds)
if(prob(10*W.woundsize) && W.bleeding)
bloodloss++
for(var/datum/organ/wound/W in temp.wounds)
if(W.wound_size && W.bleeding)
blood_max += W.wound_size
bloodloss = min(bloodloss+1,sqrt(blood_max))
if (eye_blind)
eye_blind--
blinded = 1

View File

@@ -56,6 +56,6 @@
P.on_hit(src,2)
return 2
if(!P.nodamage)
apply_damage((P.damage/(absorb+1)), P.damage_type, used_weapon = P.name)
apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, sharp = 1, used_weapon = P.name)
P.on_hit(src, absorb)
return absorb

View File

@@ -121,8 +121,8 @@ proc/isorgan(A)
zone = "head"
if("mouth")
zone = "head"
if("groin")
zone = "chest"
// if("groin")
// zone = "chest"
return zone
@@ -139,7 +139,7 @@ proc/isorgan(A)
if(4 to 6) return "l_arm"
if(7 to 9) return "r_arm"
if(prob(probability * 0.75)) return zone
if(prob(probability)) return zone
return "chest"

View File

@@ -55,7 +55,7 @@
perma_dmg = 0
broken = 0
destroyed = 0
destspawn
destspawn = 0 //Has it spawned the broken limb?
min_broken_damage = 30
datum/organ/external/parent
damage_msg = "\red You feel a intense pain"
@@ -80,22 +80,28 @@
if(owner) owner.pain(display_name, (brute+burn)*3, 1)
if(sharp)
var/chance = rand(1,5)
var/nux = brute * chance
var/nux = brute * rand(10,15)
if(brute_dam >= max_damage)
if(prob(5 * brute))
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [display_name] flies off.")
// for(var/mob/M in viewers(owner))
// M.show_message("\red [owner.name]'s [display_name] flies off.")
destroyed = 1
droplimb()
return
else if(prob(nux))
createwound(rand(1,5))
createwound(max(1,min(6,round(brute/10) + rand(-1,1))),0,brute)
owner << "You feel something wet on your [display_name]"
if((src.brute_dam + src.burn_dam + brute + burn) < src.max_damage)
src.brute_dam += brute
src.burn_dam += burn
if((brute_dam + burn_dam + brute + burn) < max_damage)
if(brute)
brute_dam += brute
if(prob(brute) && brute > 20 && !sharp)
createwound(rand(4,6),0,brute)
else if(!sharp)
createwound(max(1,min(6,round(brute/10) + rand(-1,1))),1,brute)
if(burn)
burn_dam += burn
createwound(max(1,min(6,round(burn/10) + rand(-1,1))),2,burn)
else
var/can_inflict = src.max_damage - (src.brute_dam + src.burn_dam)
if(can_inflict)
@@ -109,9 +115,11 @@
if (brute > 0)
brute = can_inflict
src.brute_dam += brute
if(!sharp) createwound(max(1,min(6,round(brute/10) + rand(-1,1))),1,brute)
else
burn = can_inflict
src.burn_dam += burn
createwound(max(1,min(6,round(burn/10) + rand(-1,1))),2,burn)
else
return 0
@@ -125,8 +133,51 @@
proc/heal_damage(brute, burn, internal = 0)
brute_dam = max(0, brute_dam - brute)
burn_dam = max(0, burn_dam - burn)
var/brute_to_heal = 0
var/brute_wounds = list()
var/burn_to_heal = 0
var/burn_wounds = list()
for(var/datum/organ/wound/W in wounds)
if(W.wound_type > 1 && W.damage)
burn_to_heal += W.damage
burn_wounds += W
else if(W.damage)
brute_to_heal += W.damage
brute_wounds += W
if(brute && brute >= brute_to_heal)
for(var/datum/organ/wound/W in brute_wounds)
if(brute >= W.damage)
brute_dam -= W.damage
brute -= W.damage
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
else
W.damage -= brute
W.initial_dmg -= brute
else if(brute)
for(var/datum/organ/wound/W in brute_wounds)
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
brute_dam = 0
if(burn && burn >= burn_to_heal)
for(var/datum/organ/wound/W in burn_wounds)
if(burn >= W.damage)
burn_dam -= W.damage
burn -= W.damage
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
else
W.damage -= burn
W.initial_dmg -= burn
else if(burn)
for(var/datum/organ/wound/W in burn_wounds)
W.damage = 0
W.initial_dmg = 0
W.stopbleeding()
burn_dam = 0
if(internal)
broken = 0
perma_injury = 0
@@ -162,7 +213,7 @@
process()
if(destroyed)
if(destspawn)
if(!destspawn)
droplimb()
return
if(broken == 0)
@@ -251,7 +302,7 @@
if(!S.destroyed)
var/obj/item/weapon/organ/r_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off.")
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
var/lol = pick(cardinal)
@@ -264,7 +315,7 @@
if(!S.destroyed)
var/obj/item/weapon/organ/l_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in arc.")
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
var/lol = pick(cardinal)
@@ -277,7 +328,7 @@
if(!S.destroyed)
var/obj/item/weapon/organ/r_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off flies off in arc.")
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
var/lol = pick(cardinal)
@@ -290,35 +341,97 @@
if(!S.destroyed)
var/obj/item/weapon/organ/l_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off.")
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
var/lol = pick(cardinal)
step(H,lol)
destroyed = 1
if(HAND_RIGHT)
var/obj/item/weapon/organ/r_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(HAND_LEFT)
var/obj/item/weapon/organ/l_hand/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(FOOT_RIGHT)
var/obj/item/weapon/organ/r_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
if(FOOT_LEFT)
var/obj/item/weapon/organ/l_foot/X = new(owner.loc, owner)
for(var/mob/M in viewers(owner))
M.show_message("\red [owner.name]'s [X.name] flies off in an arc.")
var/lol2 = pick(cardinal)
step(X,lol2)
destroyed = 1
destspawn = 1
src.owner.update_clothing()
proc/createwound(var/size = 1)
if(ishuman(src.owner))
proc/createwound(var/size = 1, var/type = 0, var/damage)
if(ishuman(owner))
var/datum/organ/wound/W = new(src)
bleeding = 1
owner:bloodloss += 10 * size
bleeding = !type //Sharp objects cause bleeding.
W.bleeding = !type
// owner:bloodloss += 10 * size
W.damage = damage
W.initial_dmg = damage
W.wound_type = type
W.wound_size = size
W.owner = src.owner
W.owner = owner
W.parent = src
spawn W.start_close() //Let small cuts close themselves.
wounds += W
/datum/organ/wound
name = "wound"
var/wound_type = 0 //0 = cut, 1 = bruise, 2 = burn
var/damage = 0 //How much damage it caused.
var/initial_dmg = 0
var/wound_size = 1
var/datum/organ/external/parent
var/bleeding = 1 //You got wounded, of course it's bleeding.
var/bleeding = 0 //You got wounded, of course it's bleeding. -- Scratch that. Rewrote it.
var/healing_state = 0
proc/start_close()
sleep(rand(1800,3000)) //3-5 minutes
if(prob(50) && wound_size == 1)
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(33) && wound_size < 3)
stopbleeding()
return
sleep(rand(1800,3000))
if(wound_size == 1) //Small cuts heal in 3-10 minutes.
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(50) && wound_size < 5 && bleeding)
stopbleeding()
return
if(wound_size < 5 && bleeding) //Give it a chance to stop bleeding on it's own.
spawn(1)
sleep(1200)
if(prob(50))
stopbleeding()
return
return
proc/stopbleeding()
if(!bleeding)
if(!bleeding && !healing_state)
return 0
owner:bloodloss -= 10 * src.wound_size
// owner:bloodloss -= 10 * src.wound_size
parent.bleeding = 0
for(var/datum/organ/wound/W in parent)
if(W.bleeding && W != src)
@@ -329,16 +442,52 @@
proc/become_scar()
healing_state = 1 //Patched
update_health(0.5) //Heals some.
sleep(rand(1800,3000)) //3-5 minutes
if(parent.owner.stat == 2)
return
if(prob(80) && wound_size < 2) //Small cuts heal.
update_health(1)
parent.wounds.Remove(src)
del(src)
healing_state = 2 //Noticibly healing.
update_health(1) //Heals the rest of the way.
sleep(rand(1800,3000)) //3-5 minutes
if(parent.owner.stat == 2)
return
if(prob(60) && wound_size < 3) //Cuts heal up
parent.wounds.Remove(src)
del(src)
healing_state = 3 //Angry red scar
sleep(rand(6000,9000)) //10-15 minutes
if(parent.owner.stat == 2)
return
if(prob(80) && wound_size < 4) //Minor wounds heal up fully.
parent.wounds.Remove(src)
del(src)
healing_state = 4 //Scar
sleep(rand(6000,9000)) //10-15 minutes
if(parent.owner.stat == 2)
return
if(prob(30) || wound_size < 4 || wound_type == 1) //Small chance for the scar to disappear, any small remaining wounds deleted.
parent.wounds.Remove(src)
del(src)
healing_state = 5 //Faded scar
return
proc/update_health(var/percent = 1)
damage -= damage/percent //Remove that amount of the damage
if(wound_type > 1)
parent.burn_dam -= initial_dmg - damage
else
parent.brute_dam -= initial_dmg - damage
initial_dmg = damage //reset it for further updates.
parent.owner.updatehealth()
/****************************************************
INTERNAL ORGANS

View File

@@ -464,7 +464,7 @@ mob/proc
target_locked
icon = 'icons/effects/Targeted.dmi'
icon_state = "locked"
layer = 99
layer = 17.9
// captured
// icon = 'Captured.dmi'
// layer = 99

View File

@@ -72,7 +72,7 @@
#define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) // Boom 3x3 base explosion
#define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) // +1 for each SCALE kPa aboe threshold
// was 2 atm
#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE
#define MAX_EXPLOSION_RANGE 1024 // Defaults to 12 (was 8) -- TLE
#define NORMPIPERATE 30 //pipe-insulation rate divisor
@@ -128,6 +128,15 @@
//turf-only flags
#define NOJAUNT 1
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
#define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!!
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!!
#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!!
//Cant seem to find a mob bitflags area other than the powers one
#define NOGRAV 1

View File

@@ -122,4 +122,21 @@ h1.alert, h2.alert
font-weight: bold;
color: #f00;
}
.emote { font-style: italic;}
.attack {color: #ff0000;}
.moderate {color: #CC0000;}
.disarm {color: #990000;}
.passive {color: #660000;}
.danger {color: #ff0000; font-weight: bold;}
.warning {color: #ff0000; font-style: italic;}
.rose {color: #ff5050;}
.info {color: #0000CC;}
.notice {color: #000099;}
.alien {color: #543354;}
.newscaster {color: #800000;}
</style>"}