From 0c34286018212eb2e1d7ed38cc2bb0f128eaa9b0 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Thu, 29 Mar 2012 20:40:13 -0700 Subject: [PATCH] Fixes errors from last commit. --- code/game/objects/items/weapons/medical.dm | 18 +- code/modules/clothing/costume.dm | 168 +++++ code/modules/clothing/ears.dm | 62 ++ code/modules/clothing/gimmick.dm | 679 ++++++++++++++++++ code/modules/clothing/gloves.dm | 226 ++++++ code/modules/clothing/head/hardhat.dm | 31 + code/modules/clothing/head/hats.dm | 126 ++++ code/modules/clothing/head/helmets.dm | 81 +++ code/modules/clothing/jumpsuit.dm | 546 ++++++++++++++ code/modules/clothing/mask.dm | 149 ++++ code/modules/clothing/shoes.dm | 162 +++++ .../mob/living/carbon/human/examine.dm | 14 + .../mob/living/carbon/human/human_defense.dm | 3 +- code/modules/mob/living/carbon/human/life.dm | 2 + code/modules/mob/mob.dm | 3 + code/modules/mob/organ/organ.dm | 35 +- 16 files changed, 2278 insertions(+), 27 deletions(-) create mode 100644 code/modules/clothing/costume.dm create mode 100644 code/modules/clothing/ears.dm create mode 100644 code/modules/clothing/gimmick.dm create mode 100644 code/modules/clothing/gloves.dm create mode 100644 code/modules/clothing/head/hardhat.dm create mode 100644 code/modules/clothing/head/hats.dm create mode 100644 code/modules/clothing/head/helmets.dm create mode 100644 code/modules/clothing/jumpsuit.dm create mode 100644 code/modules/clothing/mask.dm create mode 100644 code/modules/clothing/shoes.dm diff --git a/code/game/objects/items/weapons/medical.dm b/code/game/objects/items/weapons/medical.dm index 6b03295bd14..07c90d3bdb3 100644 --- a/code/game/objects/items/weapons/medical.dm +++ b/code/game/objects/items/weapons/medical.dm @@ -37,6 +37,11 @@ MEDICAL else if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0) affecting = H.get_organ("head") + if(affecting.destroyed && !affecting.gauzed) + H.visible_message("\red You do your best to stop the bleeding from [H]'s stump.", "\red [user] does their best to stem [H]'s bleeding from [H.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.") + affecting.gauzed = 1 + use(1) + return for(var/datum/organ/wound/W in affecting.wounds) if(W.bleeding || !W.healing_state) @@ -44,12 +49,14 @@ MEDICAL continue if(heal_burn && W.wound_type < 2) continue + if(stoppedblood) + stoppedblood++ + break if(W.wound_size > 3) W.bleeding = 0 else W.stopbleeding() stoppedblood = 1 - break if (user && stoppedblood) if (M != user) @@ -140,6 +147,11 @@ MEDICAL else if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0) affecting = H.get_organ("head") + if(affecting.destroyed && !affecting.gauzed) + H.visible_message("\red You do your best to stop the bleeding from [H]'s stump.", "\red [user] does their best to stem [H]'s bleeding from [H.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.") + affecting.gauzed = 1 + use(1) + return for(var/datum/organ/wound/W in affecting.wounds) if(W.bleeding || !W.healing_state) @@ -147,9 +159,11 @@ MEDICAL continue if(heal_burn && W.wound_type < 2) continue + if(stoppedblood) + stoppedblood++ + break W.stopbleeding() stoppedblood = 1 - break if (user && stoppedblood) if (M != user) diff --git a/code/modules/clothing/costume.dm b/code/modules/clothing/costume.dm new file mode 100644 index 00000000000..2c589dc2def --- /dev/null +++ b/code/modules/clothing/costume.dm @@ -0,0 +1,168 @@ +//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) + */ \ No newline at end of file diff --git a/code/modules/clothing/ears.dm b/code/modules/clothing/ears.dm new file mode 100644 index 00000000000..05493ff2e10 --- /dev/null +++ b/code/modules/clothing/ears.dm @@ -0,0 +1,62 @@ +// 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 \ No newline at end of file diff --git a/code/modules/clothing/gimmick.dm b/code/modules/clothing/gimmick.dm new file mode 100644 index 00000000000..28d2ce1bf53 --- /dev/null +++ b/code/modules/clothing/gimmick.dm @@ -0,0 +1,679 @@ +/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 diff --git a/code/modules/clothing/gloves.dm b/code/modules/clothing/gloves.dm new file mode 100644 index 00000000000..153b1945fb8 --- /dev/null +++ b/code/modules/clothing/gloves.dm @@ -0,0 +1,226 @@ +// 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. \ No newline at end of file diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm new file mode 100644 index 00000000000..c0f955315f6 --- /dev/null +++ b/code/modules/clothing/head/hardhat.dm @@ -0,0 +1,31 @@ +/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) + flags_inv = 0 + +/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" \ No newline at end of file diff --git a/code/modules/clothing/head/hats.dm b/code/modules/clothing/head/hats.dm new file mode 100644 index 00000000000..915b5b02e71 --- /dev/null +++ b/code/modules/clothing/head/hats.dm @@ -0,0 +1,126 @@ +// 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/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 diff --git a/code/modules/clothing/head/helmets.dm b/code/modules/clothing/head/helmets.dm new file mode 100644 index 00000000000..069d8dba8ed --- /dev/null +++ b/code/modules/clothing/head/helmets.dm @@ -0,0 +1,81 @@ +/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 + flags_inv = HIDEEARS|HIDEEYES + +/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 = 0 + +/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) + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES + +/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) + flags_inv = 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) + flags_inv = 0 + +/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) + flags_inv = HIDEEARS + +/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) + flags_inv = 0 diff --git a/code/modules/clothing/jumpsuit.dm b/code/modules/clothing/jumpsuit.dm new file mode 100644 index 00000000000..a6b2d3c1f49 --- /dev/null +++ b/code/modules/clothing/jumpsuit.dm @@ -0,0 +1,546 @@ +// 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" \ No newline at end of file diff --git a/code/modules/clothing/mask.dm b/code/modules/clothing/mask.dm new file mode 100644 index 00000000000..5873d125701 --- /dev/null +++ b/code/modules/clothing/mask.dm @@ -0,0 +1,149 @@ +// 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" \ No newline at end of file diff --git a/code/modules/clothing/shoes.dm b/code/modules/clothing/shoes.dm new file mode 100644 index 00000000000..d83cecfa01b --- /dev/null +++ b/code/modules/clothing/shoes.dm @@ -0,0 +1,162 @@ +// 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" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 44152d06886..cc75597ada4 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -275,6 +275,7 @@ else wound_flavor_text["[temp.display_name]"] = "" //Now that we have a big list of all the wounds, on all the limbs. + var/list/is_bleeding = list() for(var/named in wound_descriptions) var/list/wound_states = wound_descriptions[named] var/list/flavor_text = list() @@ -284,6 +285,7 @@ "tiny bruise" = 0, "small bruise" = 0, "moderate bruise" = 0, "large bruise" = 0, "huge bruise" = 0, "monumental bruise" = 0,\ "small burn" = 0, "moderate burn" = 0, "large burn" = 0, "severe burn" = 0, "deep burn" = 0, "carbonised area" = 0) //How many wounds of what size. for(var/datum/organ/wound/w in wound_state) + if(w.bleeding && !is_bleeding[named]) is_bleeding[named] = 1 switch(w.wound_size) if(1) switch(w.wound_type) @@ -429,26 +431,38 @@ 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"] + else if(is_bleeding["head"]) + msg += "[src] has blood running down [t_his] face!\n" if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit) msg += wound_flavor_text["chest"] + else if(is_bleeding["chest"]) + msg += "[src] has blood from under [t_his] clothing!\n" 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"] + else if(is_bleeding["left hand"]) + msg += "[src] has blood running from under [t_his] gloves!\n" 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"] + else if(is_bleeding["right hand"]) + msg += "[src] has blood running from under [t_his] gloves!\n" 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"] + else if(is_bleeding["left foot"]) + msg += "[src] has blood running from [t_his] shoes!\n" 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"] + else if(is_bleeding["right foot"]) + msg += "[src] has blood running from [t_his] shoes!\n" // if(w.bleeding) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index a8ca5af66f2..d5806a36423 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -92,10 +92,11 @@ emp_act var/datum/organ/external/affecting = get_organ(ran_zone(user.zone_sel.selecting)) var/hit_area = affecting.display_name - if(affecting.destroyed) + if(!affecting.destroyed) visible_message("\red [src] has been attacked in the [hit_area] with [I.name] by [user]!") else user << "What [affecting]?" + return if((user != src) && check_shields(I.force, "the [I.name]")) return 0 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index fd89280ca30..15ad58ee27f 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -966,6 +966,8 @@ for(var/datum/organ/wound/W in temp.wounds) if(W.wound_size && W.bleeding) blood_max += W.wound_size + if(temp.destroyed && !temp.gauzed) + blood_max += 10 //Yer missing a fucking limb. bloodloss = min(bloodloss+1,sqrt(blood_max)) if (eye_blind) eye_blind-- diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 280986c3611..b030a59c721 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -389,6 +389,9 @@ memory() /mob/proc/update_flavor_text() + set src in usr + if(usr != src) + usr << "No." var/msg = input(usr,"Set the flavor text in your 'examine' verb. Don't metagame!","Flavor Text",html_decode(flavor_text)) as message|null if(msg != null) diff --git a/code/modules/mob/organ/organ.dm b/code/modules/mob/organ/organ.dm index d6e679ac586..5e4977c652f 100644 --- a/code/modules/mob/organ/organ.dm +++ b/code/modules/mob/organ/organ.dm @@ -56,6 +56,7 @@ broken = 0 destroyed = 0 destspawn = 0 //Has it spawned the broken limb? + gauzed = 0 //Has the missing limb been patched? min_broken_damage = 30 datum/organ/external/parent damage_msg = "\red You feel a intense pain" @@ -228,9 +229,7 @@ var/dmgmsg = "[damage_msg] in your [display_name]" owner << dmgmsg //owner.unlock_medal("Broke Yarrr Bones!", 0, "Break a bone.", "easy") - for(var/mob/M in viewers(owner)) - if(M != owner) - M.show_message("\red You hear a loud cracking sound coming from [owner.name].") + owner.visible_message("\red You hear a loud cracking sound coming from [owner.name].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.") owner.emote("scream") broken = 1 wound = "broken" //Randomise in future @@ -300,11 +299,7 @@ if(owner:organs["r_hand"]) var/datum/organ/external/S = owner:organs["r_hand"] 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 in an arc.") - var/lol2 = pick(cardinal) - step(X,lol2) + S.droplimb() var/lol = pick(cardinal) step(H,lol) destroyed = 1 @@ -313,11 +308,7 @@ if(owner:organs["l_hand"]) var/datum/organ/external/S = owner:organs["l_hand"] 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 an arc.") - var/lol2 = pick(cardinal) - step(X,lol2) + S.droplimb() var/lol = pick(cardinal) step(H,lol) destroyed = 1 @@ -326,11 +317,7 @@ if(owner:organs["r_foot"]) var/datum/organ/external/S = owner:organs["r_foot"] 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 in an arc.") - var/lol2 = pick(cardinal) - step(X,lol2) + S.droplimb() var/lol = pick(cardinal) step(H,lol) destroyed = 1 @@ -339,11 +326,7 @@ if(owner:organs["l_foot"]) var/datum/organ/external/S = owner:organs["l_foot"] 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 in an arc.") - var/lol2 = pick(cardinal) - step(X,lol2) + S.droplimb() var/lol = pick(cardinal) step(H,lol) destroyed = 1 @@ -376,6 +359,10 @@ step(X,lol2) destroyed = 1 destspawn = 1 + for(var/datum/organ/wound/W in wounds) + W.update_health() + del(W) + del(wounds) src.owner.update_clothing() proc/createwound(var/size = 1, var/type = 0, var/damage) @@ -429,7 +416,7 @@ return proc/stopbleeding() - if(!bleeding && !healing_state) + if(healing_state) return 0 // owner:bloodloss -= 10 * src.wound_size parent.bleeding = 0