From 3e5117e3ebc2efdfeb55c24f42ecaf7a35becd84 Mon Sep 17 00:00:00 2001 From: MagmaRam Date: Tue, 11 Nov 2014 11:27:11 -0500 Subject: [PATCH] All coats that can be buttoned are now subtypes of /obj/item/clothing/suit/storage/toggle This includes labcoats, IA jackets, first responder jackets, and the brown leather jackets. This way, code for button toggling doesn't have to be duplicated for labcoats and other coats, and it's easier to add other types of coats that can be buttoned up if someone wants. --- code/datums/supplypacks.dm | 4 +- code/game/jobs/job/civilian.dm | 2 +- code/game/jobs/job/medical.dm | 12 ++--- code/game/jobs/job/science.dm | 4 +- code/game/objects/effects/landmarks.dm | 2 +- code/game/objects/structures/coathanger.dm | 4 +- .../crates_lockers/closets/secure/medical.dm | 6 +-- .../crates_lockers/closets/wardrobe.dm | 12 ++--- code/modules/awaymissions/corpse.dm | 2 +- code/modules/client/preferences_gear.dm | 10 ++-- code/modules/clothing/suits/jobs.dm | 43 +++-------------- code/modules/clothing/suits/labcoat.dm | 47 +++++-------------- code/modules/clothing/suits/miscellaneous.dm | 30 +++--------- code/modules/clothing/suits/storage.dm | 24 +++++++++- 14 files changed, 77 insertions(+), 125 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 12925ffc61..319dae0d88 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -450,7 +450,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet/crate containername = "Wooden planks crate" group = "Engineering" - + /datum/supply_packs/plastic50 name = "50 plastic sheets" contains = list(/obj/item/stack/sheet/mineral/plastic) @@ -980,7 +980,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/clothing/under/rank/mailman, /obj/item/clothing/under/dress/dress_saloon, /obj/item/clothing/suit/suspenders, - /obj/item/clothing/suit/storage/labcoat/mad, + /obj/item/clothing/suit/storage/toggle/labcoat/mad, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/under/schoolgirl, /obj/item/clothing/under/owl, diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index c38ed72ab1..64209f675b 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -352,7 +352,7 @@ if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/internalaffairs(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/internalaffairs(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/internalaffairs(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(H), slot_glasses) H.equip_to_slot_or_del(new /obj/item/device/pda/lawyer(H), slot_belt) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 07250e2dd3..aed23c4288 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -27,7 +27,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/heads/cmo(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/cmo(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand) H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store) if(H.backbag == 1) @@ -62,13 +62,13 @@ switch(H.mind.role_alt_title) if("Emergency Physician") H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/fr_jacket(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/fr_jacket(H), slot_wear_suit) if("Surgeon") H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(H), slot_head) if("Virologist") - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask) switch(H.backbag) @@ -125,7 +125,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/chemist(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(H), slot_wear_suit) switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back) @@ -155,7 +155,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/genetics(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store) switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) @@ -232,4 +232,4 @@ if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) else - H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 3a0118e9b8..f6cc6b169d 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -58,7 +58,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit) switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back) @@ -89,7 +89,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit) switch(H.backbag) if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 514a5b38f9..8294a6f23e 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -133,7 +133,7 @@ /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/suit/storage/toggle/labcoat/mad(src.loc) new /obj/item/clothing/glasses/gglasses(src.loc) del(src) diff --git a/code/game/objects/structures/coathanger.dm b/code/game/objects/structures/coathanger.dm index b79588b78f..0d09d57c64 100644 --- a/code/game/objects/structures/coathanger.dm +++ b/code/game/objects/structures/coathanger.dm @@ -45,9 +45,9 @@ /obj/structure/coatrack/update_icon() overlays.Cut() - if (istype(coat, /obj/item/clothing/suit/storage/labcoat)) + if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat)) overlays += image(icon, icon_state = "coat_lab") - if (istype(coat, /obj/item/clothing/suit/storage/labcoat/cmo)) + if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat/cmo)) overlays += image(icon, icon_state = "coat_cmo") if (istype(coat, /obj/item/clothing/suit/storage/det_suit)) overlays += image(icon, icon_state = "coat_det") \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index e36dd4759d..bff4401de2 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -95,7 +95,7 @@ new /obj/item/clothing/under/rank/nurse(src) new /obj/item/clothing/under/rank/orderly(src) new /obj/item/clothing/suit/storage/labcoat(src) - new /obj/item/clothing/suit/storage/fr_jacket(src) + new /obj/item/clothing/suit/storage/toggle/fr_jacket(src) new /obj/item/clothing/shoes/white(src) // new /obj/item/weapon/cartridge/medical(src) new /obj/item/device/radio/headset/headset_med(src) @@ -134,8 +134,8 @@ new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/head/surgery/purple(src) new /obj/item/clothing/under/rank/chief_medical_officer(src) - new /obj/item/clothing/suit/storage/labcoat/cmo(src) - new /obj/item/clothing/suit/storage/labcoat/cmoalt(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src) new /obj/item/weapon/cartridge/cmo(src) new /obj/item/clothing/gloves/latex(src) new /obj/item/clothing/shoes/brown (src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index d660cee825..9f0fddd199 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -281,8 +281,8 @@ new /obj/item/clothing/under/rank/chemist(src) new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/shoes/white(src) - new /obj/item/clothing/suit/storage/labcoat/chemist(src) - new /obj/item/clothing/suit/storage/labcoat/chemist(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(src) return @@ -297,8 +297,8 @@ new /obj/item/clothing/under/rank/geneticist(src) new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/shoes/white(src) - new /obj/item/clothing/suit/storage/labcoat/genetics(src) - new /obj/item/clothing/suit/storage/labcoat/genetics(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(src) return @@ -313,8 +313,8 @@ new /obj/item/clothing/under/rank/virologist(src) new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/shoes/white(src) - new /obj/item/clothing/suit/storage/labcoat/virologist(src) - new /obj/item/clothing/suit/storage/labcoat/virologist(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(src) + new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(src) new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/mask/surgical(src) return diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 8bbbe6a5cc..212b266c56 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -181,7 +181,7 @@ name = "Scientist" corpseradio = /obj/item/device/radio/headset/headset_sci corpseuniform = /obj/item/clothing/under/rank/scientist - corpsesuit = /obj/item/clothing/suit/storage/labcoat/science + corpsesuit = /obj/item/clothing/suit/storage/toggle/labcoat/science corpseback = /obj/item/weapon/storage/backpack corpseshoes = /obj/item/clothing/shoes/white corpseid = 1 diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 3e34179da3..0cd4a4dd2d 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -18,13 +18,13 @@ var/global/list/gear_datums = list() //create a list of gear datums to sort for(var/type in typesof(/datum/gear)-/datum/gear) var/datum/gear/G = new type() - + var/category = (G.sort_category in sort_categories)? G.sort_category : "unknown" sort_categories[category][G.display_name] = G - + for (var/category in sort_categories) gear_datums.Add(sortAssoc(sort_categories[category])) - + return 1 /datum/gear @@ -475,13 +475,13 @@ var/global/list/gear_datums = list() /datum/gear/brown_jacket display_name = "leather jacket, brown" - path = /obj/item/clothing/suit/storage/brown_jacket + path = /obj/item/clothing/suit/storage/toggle/brown_jacket cost = 3 slot = slot_wear_suit /datum/gear/brown_jacket_nt display_name = "leather jacket, NanoTrasen, brown" - path = /obj/item/clothing/suit/storage/brown_jacket/nanotrasen + path = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen cost = 3 slot = slot_wear_suit diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index c3ba549526..9f35f4c2c7 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -158,62 +158,31 @@ body_parts_covered = UPPER_TORSO|ARMS //Internal Affairs -/obj/item/clothing/suit/storage/internalaffairs +/obj/item/clothing/suit/storage/toggle/internalaffairs name = "Internal Affairs Jacket" desc = "A smooth black jacket." icon_state = "ia_jacket_open" item_state = "ia_jacket" + icon_open = "ia_jacket_open" + icon_closed = "ia_jacket" blood_overlay_type = "coat" body_parts_covered = UPPER_TORSO|ARMS - verb/toggle() - set name = "Toggle Coat Buttons" - set category = "Object" - set src in usr - if(!usr.canmove || usr.stat || usr.restrained()) - return 0 - - switch(icon_state) - if("ia_jacket_open") - src.icon_state = "ia_jacket" - usr << "You button up the jacket." - if("ia_jacket") - src.icon_state = "ia_jacket_open" - usr << "You unbutton the jacket." - else - usr << "You attempt to button-up the velcro on your [src], before promptly realising how retarded you are." - return - update_clothing_icon() //so our overlays update //Medical -/obj/item/clothing/suit/storage/fr_jacket +/obj/item/clothing/suit/storage/toggle/fr_jacket name = "first responder jacket" desc = "A high-visibility jacket worn by medical first responders." icon_state = "fr_jacket_open" item_state = "fr_jacket" + icon_open = "fr_jacket_open" + icon_closed = "fr_jacket" blood_overlay_type = "armor" allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \ /obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen) body_parts_covered = UPPER_TORSO|ARMS - verb/toggle() - set name = "Toggle Jacket Buttons" - set category = "Object" - set src in usr - - if(!usr.canmove || usr.stat || usr.restrained()) - return 0 - - switch(icon_state) - if("fr_jacket_open") - src.icon_state = "fr_jacket" - usr << "You button up the jacket." - if("fr_jacket") - src.icon_state = "fr_jacket_open" - usr << "You unbutton the jacket." - update_clothing_icon() //so our overlays update - //Mime /obj/item/clothing/suit/suspenders name = "suspenders" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index ed215172d3..ba16b51f61 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/suit/storage/labcoat +/obj/item/clothing/suit/storage/toggle/labcoat name = "labcoat" desc = "A suit that protects against minor chemical spills." icon_state = "labcoat_open" @@ -8,29 +8,8 @@ allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) sprite_sheets = list("Vox" = 'icons/mob/species/vox/suit.dmi') - /obj/item/clothing/suit/storage/labcoat/var/icon_open = "labcoat_open" - /obj/item/clothing/suit/storage/labcoat/var/icon_closed = "labcoat_closed" - verb/toggle() - set name = "Toggle Labcoat Buttons" - set category = "Object" - set src in usr - - if(!usr.canmove || usr.stat || usr.restrained()) - return 0 - - if(icon_state == icon_open) //Changes whatever the current icon state is for the other, tells user about it. - icon_state = icon_closed - usr << "You button up the labcoat." - else if(icon_state == icon_closed) - icon_state = icon_open - usr << "You unbutton the labcoat." - else //Left in in case an admin does something silly and changes the icon state without changing labcoat_open or labcoat_closed - usr << "You attempt to button-up the velcro on your [src], before promptly realising how silly you are." - return - update_clothing_icon() //so our overlays update - -/obj/item/clothing/suit/storage/labcoat/red +/obj/item/clothing/suit/storage/toggle/labcoat/red name = "red labcoat" desc = "A suit that protects against minor chemical spills. This one is red." icon_state = "red_labcoat_open" @@ -38,7 +17,7 @@ icon_open = "red_labcoat_open" icon_closed = "red_labcoat" -/obj/item/clothing/suit/storage/labcoat/blue +/obj/item/clothing/suit/storage/toggle/labcoat/blue name = "blue labcoat" desc = "A suit that protects against minor chemical spills. This one is blue." icon_state = "blue_labcoat_open" @@ -46,7 +25,7 @@ icon_open = "blue_labcoat_open" icon_closed = "blue_labcoat" -/obj/item/clothing/suit/storage/labcoat/purple +/obj/item/clothing/suit/storage/toggle/labcoat/purple name = "purple labcoat" desc = "A suit that protects against minor chemical spills. This one is purple." icon_state = "purple_labcoat_open" @@ -54,7 +33,7 @@ icon_open = "purple_labcoat_open" icon_closed = "purple_labcoat" -/obj/item/clothing/suit/storage/labcoat/orange +/obj/item/clothing/suit/storage/toggle/labcoat/orange name = "orange labcoat" desc = "A suit that protects against minor chemical spills. This one is orange." icon_state = "orange_labcoat_open" @@ -62,7 +41,7 @@ icon_open = "orange_labcoat_open" icon_closed = "orange_labcoat" -/obj/item/clothing/suit/storage/labcoat/green +/obj/item/clothing/suit/storage/toggle/labcoat/green name = "green labcoat" desc = "A suit that protects against minor chemical spills. This one is green." icon_state = "green_labcoat_open" @@ -70,7 +49,7 @@ icon_open = "green_labcoat_open" icon_closed = "green_labcoat" -/obj/item/clothing/suit/storage/labcoat/cmo +/obj/item/clothing/suit/storage/toggle/labcoat/cmo name = "chief medical officer's labcoat" desc = "Bluer than the standard model." icon_state = "labcoat_cmo_open" @@ -78,14 +57,14 @@ icon_open = "labcoat_cmo_open" icon_closed = "labcoat_cmo" -/obj/item/clothing/suit/storage/labcoat/cmoalt +/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt name = "chief medical officer labcoat" desc = "A labcoat with command blue highlights." icon_state = "labcoat_cmoalt_open" icon_open = "labcoat_cmoalt_open" icon_closed = "labcoat_cmoalt" -/obj/item/clothing/suit/storage/labcoat/mad +/obj/item/clothing/suit/storage/toggle/labcoat/mad name = "The Mad's labcoat" desc = "It makes you look capable of konking someone on the noggin and shooting them into space." icon_state = "labgreen_open" @@ -93,21 +72,21 @@ icon_open = "labgreen_open" icon_closed = "labgreen" -/obj/item/clothing/suit/storage/labcoat/genetics +/obj/item/clothing/suit/storage/toggle/labcoat/genetics name = "Geneticist labcoat" desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder." icon_state = "labcoat_gen_open" icon_open = "labcoat_gen_open" icon_closed = "labcoat_gen" -/obj/item/clothing/suit/storage/labcoat/chemist +/obj/item/clothing/suit/storage/toggle/labcoat/chemist name = "Chemist labcoat" desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder." icon_state = "labcoat_chem_open" icon_open = "labcoat_chem_open" icon_closed = "labcoat_chem" -/obj/item/clothing/suit/storage/labcoat/virologist +/obj/item/clothing/suit/storage/toggle/labcoat/virologist name = "Virologist labcoat" desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder." icon_state = "labcoat_vir_open" @@ -115,7 +94,7 @@ icon_closed = "labcoat_vir" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) -/obj/item/clothing/suit/storage/labcoat/science +/obj/item/clothing/suit/storage/toggle/labcoat/science name = "Scientist labcoat" desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." icon_state = "labcoat_tox_open" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 06b913a335..15705005a4 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -401,38 +401,20 @@ icon_state = "leather_jacket_nt" //This one has buttons for some reason -/obj/item/clothing/suit/storage/brown_jacket +/obj/item/clothing/suit/storage/toggle/brown_jacket name = "leather jacket" desc = "A brown leather coat." icon_state = "brown_jacket" item_state = "brown_jacket" - var/open_state = "brown_jacket_open" + icon_open = "brown_jacket_open" + icon_closed = "brown_jacket" body_parts_covered = UPPER_TORSO|ARMS -/obj/item/clothing/suit/storage/brown_jacket/nanotrasen +/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen desc = "A brown leather coat. The letters NT are proudly displayed on the back." icon_state = "brown_jacket_nt" - open_state = "brown_jacket_nt_open" - -/obj/item/clothing/suit/storage/brown_jacket/verb/toggle() - set name = "Toggle Jacket Buttons" - set category = "Object" - set src in usr - - if(!usr.canmove || usr.stat || usr.restrained()) - return 0 - - //The inhand sprite (the mob sprite that appears when holding the item in your hand) - //is unchanged, so update only icon_state, not item_state. - if(icon_state == open_state) - usr << "You button up the jacket." - src.icon_state = initial(icon_state) - - else if(icon_state == initial(icon_state)) - usr << "You unbutton the jacket." - src.icon_state = open_state - - update_clothing_icon() //so our overlays update + icon_open = "brown_jacket_nt_open" + icon_closed = "brown_jacket_nt" /obj/item/clothing/suit/hoodie name = "grey hoodie" diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm index cb03feb599..874ce3fd6d 100644 --- a/code/modules/clothing/suits/storage.dm +++ b/code/modules/clothing/suits/storage.dm @@ -26,4 +26,26 @@ /obj/item/clothing/suit/storage/hear_talk(mob/M, var/msg) pockets.hear_talk(M, msg) - ..() \ No newline at end of file + ..() + +//Jackets with buttons, used for labcoats, IA jackets, First Responder jackets, and brown jackets. +/obj/item/clothing/suit/storage/toggle + /obj/item/clothing/suit/storage/toggle/var/icon_open + /obj/item/clothing/suit/storage/toggle/var/icon_closed + verb/toggle() + set name = "Toggle Coat Buttons" + set category = "Object" + set src in usr + if(!usr.canmove || usr.stat || usr.restrained()) + return 0 + + if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user + icon_state = icon_closed + usr << "You button up the coat." + else if(icon_state == icon_closed) + icon_state = icon_open + usr << "You unbutton the coat." + else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed + usr << "You attempt to button-up the velcro on your [src], before promptly realising how retarded you are." + return + update_clothing_icon() //so our overlays update \ No newline at end of file