diff --git a/aurorastation.dme b/aurorastation.dme index dcb322985d9..c114fb7c338 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1601,6 +1601,7 @@ #include "code\modules\clothing\head\misc_special.dm" #include "code\modules\clothing\head\pilot_helmet.dm" #include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\head\woolen_hats.dm" #include "code\modules\clothing\head\xenos\diona.dm" #include "code\modules\clothing\head\xenos\skrell.dm" #include "code\modules\clothing\head\xenos\tajara.dm" diff --git a/code/__defines/accessories.dm b/code/__defines/accessories.dm index e16feb8c915..2815c07b65b 100644 --- a/code/__defines/accessories.dm +++ b/code/__defines/accessories.dm @@ -7,4 +7,5 @@ #define ACCESSORY_SLOT_LEG_GUARDS "leg guards" #define ACCESSORY_SLOT_ARM_GUARDS "arm guards" #define ACCESSORY_SLOT_ARMOR_PIN "armor pin" -#define ACCESSORY_SLOT_ARMOR_POCKETS "armor pockets" \ No newline at end of file +#define ACCESSORY_SLOT_ARMOR_POCKETS "armor pockets" +#define ACCESSORY_SLOT_HEAD "head" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_ears.dm b/code/modules/client/preference_setup/loadout/loadout_ears.dm index 7b35ac1b105..e24879a1d7e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_ears.dm +++ b/code/modules/client/preference_setup/loadout/loadout_ears.dm @@ -9,6 +9,11 @@ path = /obj/item/clothing/ears/earmuffs slot = null +/datum/gear/ears/double/ear_warmers + display_name = "ear warmers, colourable" + path = /obj/item/clothing/accessory/ear_warmers + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION + /datum/gear/ears/double/headphones display_name = "headphone selection" description = "A selection of headphones." diff --git a/code/modules/client/preference_setup/loadout/loadout_factions.dm b/code/modules/client/preference_setup/loadout/loadout_factions.dm index af91018ba04..f1a71e6ad05 100644 --- a/code/modules/client/preference_setup/loadout/loadout_factions.dm +++ b/code/modules/client/preference_setup/loadout/loadout_factions.dm @@ -20,6 +20,8 @@ idris_headwear["idris cap, alt"] = /obj/item/clothing/head/softcap/idris/alt idris_headwear["idris beret"] = /obj/item/clothing/head/beret/corporate/idris idris_headwear["idris beret, alt"] = /obj/item/clothing/head/beret/corporate/idris/alt + idris_headwear["idris woolen hat"] = /obj/item/clothing/head/wool/idris + idris_headwear["idris woolen hat, alt"] = /obj/item/clothing/head/wool/idris/alt gear_tweaks += new /datum/gear_tweak/path(idris_headwear) /datum/gear/faction/idris_sec_uniforms @@ -132,6 +134,8 @@ zavodskoi_headwear["zavodskoi beret, alt"] = /obj/item/clothing/head/beret/corporate/zavod/alt zavodskoi_headwear["zavodskoi cap"] = /obj/item/clothing/head/softcap/zavod zavodskoi_headwear["zavodskoi cap, alt"] = /obj/item/clothing/head/softcap/zavod/alt + zavodskoi_headwear["zavodskoi woolen hat"] = /obj/item/clothing/head/wool/zavod + zavodskoi_headwear["zavodskoi woolen hat, alt"] = /obj/item/clothing/head/wool/zavod/alt gear_tweaks += new /datum/gear_tweak/path(zavodskoi_headwear) /datum/gear/faction/zavod_sec_uniforms @@ -299,6 +303,8 @@ pmcg_headwear["PMCG softcap, alt"] = /obj/item/clothing/head/softcap/pmc/alt pmcg_headwear["EPMC beret"] = /obj/item/clothing/head/beret/corporate/pmc/epmc pmcg_headwear["EPMC softcap"] = /obj/item/clothing/head/softcap/pmc/epmc + pmcg_headwear["PMCG woolen hat"] = /obj/item/clothing/head/wool/pmc + pmcg_headwear["EPMC woolen hat"] = /obj/item/clothing/head/wool/pmc/alt gear_tweaks += new /datum/gear_tweak/path(pmcg_headwear) /datum/gear/faction/pmc_modsuit @@ -390,18 +396,20 @@ //Zeng-Hu /datum/gear/faction/zenghu_beret - display_name = "zeng-hu beret selection" - description = "A selection of Zeng-Hu berets." + display_name = "zeng-hu headwear selection" + description = "A selection of Zeng-Hu headwear." path = /obj/item/clothing/head/beret/corporate/zeng slot = slot_head faction = "Zeng-Hu Pharmaceuticals" /datum/gear/faction/zenghu_beret/New() ..() - var/list/zenghu_berets = list() - zenghu_berets["beret, zeng-hu"] = /obj/item/clothing/head/beret/corporate/zeng - zenghu_berets["beret alt, zeng-hu"] = /obj/item/clothing/head/beret/corporate/zeng/alt - gear_tweaks += new /datum/gear_tweak/path(zenghu_berets) + var/list/zenghu_headwear = list() + zenghu_headwear["beret, zeng-hu"] = /obj/item/clothing/head/beret/corporate/zeng + zenghu_headwear["beret alt, zeng-hu"] = /obj/item/clothing/head/beret/corporate/zeng/alt + zenghu_headwear["zeng-hu woolen hat"] = /obj/item/clothing/head/wool/zeng + zenghu_headwear["zeng-hu woolen hat, alt"] = /obj/item/clothing/head/wool/zeng/alt + gear_tweaks += new /datum/gear_tweak/path(zenghu_headwear) /datum/gear/faction/zenghu_labcoat display_name = "zeng-hu coat selection" @@ -464,11 +472,19 @@ gear_tweaks += new /datum/gear_tweak/path(heph_labcoats) /datum/gear/faction/heph_beret - display_name = "hephaestus beret" + display_name = "hephaestus headwear selection" + description = "A selection of Hephaestus headwear" path = /obj/item/clothing/head/beret/corporate/heph slot = slot_head faction = "Hephaestus Industries" +/datum/gear/faction/heph_beret/New() + ..() + var/list/heph_headwear = list() + heph_headwear["beret, hephaestus"] = /obj/item/clothing/head/beret/corporate/heph + heph_headwear["hephaestus woolen hat"] = /obj/item/clothing/head/wool/heph + gear_tweaks += new /datum/gear_tweak/path(heph_headwear) + /datum/gear/faction/heph_passcard display_name = "hephaestus burzsia passcard" path = /obj/item/clothing/accessory/badge/passcard/burzsia @@ -502,8 +518,56 @@ faction = "NanoTrasen" allowed_roles = list("Janitor") -//SCC +/datum/gear/faction/nt_headwear + display_name = "nanotrasen headwear selection" + description = "A selection of NanoTrasen headwear" + path = /obj/item/clothing/head/beret/corporate + slot = slot_head + faction = "NanoTrasen" +/datum/gear/faction/nt_headwear/New() + ..() + var/list/nt_headwear = list() + nt_headwear["beret, nanotrasen"] = /obj/item/clothing/head/beret/corporate + nt_headwear["nanotrasen woolen hat"] = /obj/item/clothing/head/wool/nt + gear_tweaks += new /datum/gear_tweak/path(nt_headwear) + +//Orion +/datum/gear/faction/orion_coat + display_name = "orion coat selection" + description = "A selection of Orion coats" + path = /obj/item/clothing/suit/storage/toggle/labcoat/orion + slot = slot_wear_suit + faction = "Orion Express" + +/datum/gear/faction/orion_coat/New() + ..() + var/list/orion_labcoats = list() + orion_labcoats["orion labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat/orion + orion_labcoats["orion letterman labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat/orion/letterman + orion_labcoats["orion labcoat, long"] = /obj/item/clothing/suit/storage/toggle/longcoat/orion + orion_labcoats["orion corporate jacket"] = /obj/item/clothing/suit/storage/toggle/corp/orion + orion_labcoats["orion corporate jacket, alt"] = /obj/item/clothing/suit/storage/toggle/corp/orion/alt + orion_labcoats["orion winter coat"] = /obj/item/clothing/suit/storage/hooded/wintercoat/orion + orion_labcoats["orion winter coat, alt"] = /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt + gear_tweaks += new /datum/gear_tweak/path(orion_labcoats) + +/datum/gear/faction/orion_headwear + display_name = "orion headwear selection" + description = "A selection of Orion headwear" + path = /obj/item/clothing/head/beret/corporate/orion + slot = slot_head + faction = "Orion Express" + +/datum/gear/faction/orion_headwear/New() + ..() + var/list/orion_headwear = list() + orion_headwear["beret, orion"] = /obj/item/clothing/head/beret/corporate/orion + orion_headwear["orion woolen hat"] = /obj/item/clothing/head/wool/orion + orion_headwear["orion woolen hat, alt"] = /obj/item/clothing/head/wool/orion/alt + gear_tweaks += new /datum/gear_tweak/path(orion_headwear) + +//SCC /datum/gear/faction/scc_armband display_name = "SCC armband" path = /obj/item/clothing/accessory/armband/scc @@ -540,29 +604,18 @@ gear_tweaks += new /datum/gear_tweak/path(scc_jackets) /datum/gear/faction/scc_beret - display_name = "SCC beret" + display_name = "SCC headwear selection" + description = "A selection of SCC headwear" path = /obj/item/clothing/head/beret/scc slot = slot_head sort_category = "Factions" cost = 1 faction = null -//Orion -/datum/gear/faction/orion_coat - display_name = "orion coat selection" - description = "A selection of Orion coats" - path = /obj/item/clothing/suit/storage/toggle/labcoat/orion - slot = slot_wear_suit - faction = "Orion Express" - -/datum/gear/faction/orion_coat/New() +/datum/gear/faction/scc_beret/New() ..() - var/list/orion_labcoats = list() - orion_labcoats["orion labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat/orion - orion_labcoats["orion letterman labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat/orion/letterman - orion_labcoats["orion labcoat, long"] = /obj/item/clothing/suit/storage/toggle/longcoat/orion - orion_labcoats["orion corporate jacket"] = /obj/item/clothing/suit/storage/toggle/corp/orion - orion_labcoats["orion corporate jacket, alt"] = /obj/item/clothing/suit/storage/toggle/corp/orion/alt - orion_labcoats["orion winter coat"] = /obj/item/clothing/suit/storage/hooded/wintercoat/orion - orion_labcoats["orion winter coat, alt"] = /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt - gear_tweaks += new /datum/gear_tweak/path(orion_labcoats) + var/list/scc_headwear = list() + scc_headwear["beret, SCC"] = /obj/item/clothing/head/beret/scc + scc_headwear["SCC woolen hat"] = /obj/item/clothing/head/wool/scc + scc_headwear["SCC woolen hat, alt"] = /obj/item/clothing/head/wool/scc/alt + gear_tweaks += new /datum/gear_tweak/path(scc_headwear) diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index 01a34bfd198..d1ad000bdae 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -10,6 +10,11 @@ path = /obj/item/clothing/gloves/fingerless/colour flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION +/datum/gear/gloves/mittens + display_name = "mittens, colourable" + path = /obj/item/clothing/gloves/mittens + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION + /datum/gear/gloves/color display_name = "gloves selection" path = /obj/item/clothing/gloves/black diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 2bb8c07f986..4049a0d12b2 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -231,6 +231,7 @@ var/list/hats_colourable = list() hats_colourable["hat, flatcap"] = /obj/item/clothing/head/flatcap/colourable hats_colourable["hat, feather trilby"] = /obj/item/clothing/head/feathertrilby/colourable + hats_colourable["hat, woolen"] = /obj/item/clothing/head/wool gear_tweaks += new /datum/gear_tweak/path(hats_colourable) /datum/gear/head/hijab diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 273ee82ddf4..e97b6908ce6 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -510,6 +510,8 @@ drop_sound = 'sound/items/drop/hat.ogg' pickup_sound = 'sound/items/pickup/hat.ogg' + valid_accessory_slots = list(ACCESSORY_SLOT_HEAD) + var/allow_hair_covering = TRUE //in case if you want to allow someone to switch the BLOCKHEADHAIR var from the helmet or not var/light_overlay = "helmet_light" @@ -640,6 +642,14 @@ /obj/item/clothing/head/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) var/image/I = ..() + if(slot == slot_l_hand_str || slot == slot_r_hand_str) + for(var/obj/item/clothing/accessory/A in accessories) + A.accessory_mob_overlay.cut_overlays() + else + for(var/obj/item/clothing/accessory/A in accessories) + var/image/accessory_image = A.get_accessory_mob_overlay(H) + I.add_overlay(accessory_image) + if(blood_DNA && slot != slot_l_hand_str && slot != slot_r_hand_str) var/image/bloodsies = image(H.species.blood_mask, icon_state = "helmetblood") bloodsies.color = blood_color diff --git a/code/modules/clothing/ears/earmuffs.dm b/code/modules/clothing/ears/earmuffs.dm index 58245017a87..def33119a1c 100644 --- a/code/modules/clothing/ears/earmuffs.dm +++ b/code/modules/clothing/ears/earmuffs.dm @@ -59,3 +59,33 @@ desc_extended = "Oh god, they can't hear us! They've got earbuds on!" icon_state = "earbuds" item_state = "earbuds" + +/obj/item/clothing/accessory/ear_warmers + name = "ear warmers" + desc = "A pair of fuzzy ear warmers, incase that's the only place you're worried about getting frost bite." + icon = 'icons/obj/clothing/ears/earmuffs.dmi' + icon_state = "ear_warmers" + item_state = "ear_warmers" + contained_sprite = TRUE + build_from_parts = TRUE + worn_overlay = "over" + slot_flags = SLOT_EARS | SLOT_TWOEARS + slot = ACCESSORY_SLOT_HEAD + +/obj/item/clothing/accessory/ear_warmers/attack_hand(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_ear != src && H.r_ear != src) + return ..() + + if(slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/OE = (H.l_ear == src ? H.r_ear : H.l_ear) + qdel(OE) + + ..() + +/obj/item/clothing/accessory/ear_warmers/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_l_ear() + M.update_inv_r_ear() \ No newline at end of file diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index f5aca963218..b80a1b8f6a0 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -214,4 +214,13 @@ icon = 'icons/clothing/kit/skrell_armor.dmi' icon_state = "kala_gloves" item_state = "kala_gloves" - contained_sprite = TRUE \ No newline at end of file + contained_sprite = TRUE + +/obj/item/clothing/gloves/mittens + name = "mittens" + desc = "These wool mittens are very warm, if you can handle the impracticality of them lacking individual fingers. They also accomodate most hands, clawed or not." + icon = 'icons/obj/item/clothing/gloves/mittens.dmi' + icon_state = "mittens" + item_state = "mittens" + contained_sprite = TRUE + species_restricted = list("exclude", null) \ No newline at end of file diff --git a/code/modules/clothing/head/woolen_hats.dm b/code/modules/clothing/head/woolen_hats.dm new file mode 100644 index 00000000000..6866bfef3a0 --- /dev/null +++ b/code/modules/clothing/head/woolen_hats.dm @@ -0,0 +1,81 @@ +/obj/item/clothing/head/wool + name = "woolen hat" + desc = "A warm woolen hat with a bobble. How cozy!" + icon = 'icons/obj/item/clothing/head/wool_hats.dmi' + icon_state = "hat" + item_state = "hat" + contained_sprite = TRUE + +/obj/item/clothing/head/wool/idris + name = "idris woolen hat" + desc = "A warm woolen hat in Idris Incorporated colors. Have an Idris (and warm) day!" + icon_state = "hat_idris" + item_state = "hat_idris" + +/obj/item/clothing/head/wool/idris/alt + icon_state = "hat_idris_alt" + item_state = "hat_idris_alt" + +/obj/item/clothing/head/wool/zavod + name = "zavodskoi woolen hat" + desc = "A warm woolen hat in Zavodskoi Interstellar colors. For only the snuggest of badasses!" + icon_state = "hat_zavod" + item_state = "hat_zavod" + +/obj/item/clothing/head/wool/zavod/alt + icon_state = "hat_zavod_alt" + item_state = "hat_zavod_alt" + +/obj/item/clothing/head/wool/pmc + name = "pmcg woolen hat" + desc = "A warm woolen hat in PMCG colors. Because mercenaries get cold too!" + icon_state = "hat_pmc" + item_state = "hat_pmc" + +/obj/item/clothing/head/wool/pmc/alt + name = "epmc woolen hat" + desc = "A warm woolen hat in EPMC colors. It even comes with a holographic bobble!" + icon_state = "hat_epmc" + item_state = "hat_epmc" + +/obj/item/clothing/head/wool/heph + name = "hephaestus woolen hat" + desc = "A warm woolen hat in Hephaetus Indrustries colors. Industiral strength head heating!" + icon_state = "hat_heph" + item_state = "hat_heph" + +/obj/item/clothing/head/wool/nt + name = "nanotrasen woolen hat" + desc = "A warm woolen hat in NanoTrasen Corporation colors. Rumor has it this will keep you as hot as a phoron fire!" + icon_state = "hat_nt" + item_state = "hat_nt" + +/obj/item/clothing/head/wool/zeng + name = "zeng-hu woolen hat" + desc = "A warm woolen hat in Zeng-Hu Pharmaceuticals colors. Shivering isn't very professional!" + icon_state = "hat_zeng" + item_state = "hat_zeng" + +/obj/item/clothing/head/wool/zeng/alt + icon_state = "hat_zeng_alt" + item_state = "hat_zeng_alt" + +/obj/item/clothing/head/wool/orion + name = "orion woolen hat" + desc = "A warm woolen hat in Orion Express colors. Cozy employees deliver cargo faster!" + icon_state = "hat_orion" + item_state = "hat_orion" + +/obj/item/clothing/head/wool/orion/alt + icon_state = "hat_orion_alt" + item_state = "hat_orion_alt" + +/obj/item/clothing/head/wool/scc + name = "scc woolen hat" + desc = "A warm woolen hat in SCC colors. Is that real gold in the wool?" + icon_state = "hat_scc" + item_state = "hat_scc" + +/obj/item/clothing/head/wool/scc/alt + icon_state = "hat_scc_alt" + item_state = "hat_scc_alt" \ No newline at end of file diff --git a/html/changelogs/woolenstuff.yml b/html/changelogs/woolenstuff.yml new file mode 100644 index 00000000000..f781bbedf57 --- /dev/null +++ b/html/changelogs/woolenstuff.yml @@ -0,0 +1,10 @@ +author: Sparky_hotdog + +delete-after: True + +changes: + - rscadd: "Added woolen hats to the colourable hat selection in the loadout." + - rscadd: "Added corporate woolen hats to the relevant faction headwear selections." + - rscadd: "Added NanoTrasen and Orion berets to the loadout in their faction headwear selections." + - rscadd: "Added ear warmers to the earwear section of the loadout. These can be worn like earmuffs or attached to headwear." + - rscadd: "Added mittens to the gloves section of the loadout. These can be worn by all species." diff --git a/icons/obj/clothing/ears/earmuffs.dmi b/icons/obj/clothing/ears/earmuffs.dmi index 72530e2ac0f..f226779dfd6 100644 Binary files a/icons/obj/clothing/ears/earmuffs.dmi and b/icons/obj/clothing/ears/earmuffs.dmi differ diff --git a/icons/obj/item/clothing/gloves/mittens.dmi b/icons/obj/item/clothing/gloves/mittens.dmi new file mode 100644 index 00000000000..63fb3a0173c Binary files /dev/null and b/icons/obj/item/clothing/gloves/mittens.dmi differ diff --git a/icons/obj/item/clothing/head/wool_hats.dmi b/icons/obj/item/clothing/head/wool_hats.dmi new file mode 100644 index 00000000000..a96cc5934d3 Binary files /dev/null and b/icons/obj/item/clothing/head/wool_hats.dmi differ