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 12925ffc613..319dae0d88b 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 c38ed72ab12..64209f675b3 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 07250e2dd3b..aed23c4288e 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 3a0118e9b8f..f6cc6b169d0 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 514a5b38f9f..8294a6f23ee 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 b79588b78f3..0d09d57c645 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 e36dd4759d7..bff4401de22 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 d660cee8254..9f0fddd1992 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 8bbbe6a5cc5..212b266c56c 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 3e34179da3b..0cd4a4dd2d9 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 c3ba549526f..9f35f4c2c75 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 ed215172d34..ba16b51f615 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 06b913a335e..15705005a4f 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 cb03feb5997..874ce3fd6d3 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