From 36f42de95e7c1543620c022f3a4970da71ed9cbb Mon Sep 17 00:00:00 2001 From: Cursor <102828457+theselfish@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:27:21 +0000 Subject: [PATCH] Moving Loadouts to Zubbers: Masks (#4890) ## About The Pull Request To prevent myself from having a mental breakdown again. I'm gonna be atomizing this project into bite sized PRs. Part 2 is masks. ## Why It's Good For The Game Org good. ## Proof Of Testing image
Screenshots/Videos
## Changelog :cl: qol: Loadout Masks have been organised and moved to the Zubbers folder. add: Commercial FIR-36 Rebreather is no longer donator only. /:cl: --- .../loadout/categories/donator_personal.dm | 41 --- .../code/modules/loadout/categories/mask.dm | 171 ------------ .../modules/clothing/masks/gasmask.dm | 2 +- .../code/modules/loadout/categories/masks.dm | 260 +++++++++++++++++- tgstation.dme | 1 - 5 files changed, 257 insertions(+), 218 deletions(-) delete mode 100644 modular_skyrat/master_files/code/modules/loadout/categories/mask.dm diff --git a/modular_skyrat/master_files/code/modules/loadout/categories/donator_personal.dm b/modular_skyrat/master_files/code/modules/loadout/categories/donator_personal.dm index c70bf6b2898..a0d18cd468f 100644 --- a/modular_skyrat/master_files/code/modules/loadout/categories/donator_personal.dm +++ b/modular_skyrat/master_files/code/modules/loadout/categories/donator_personal.dm @@ -95,27 +95,6 @@ name = "Britches' dress" item_path = /obj/item/clothing/under/rank/civilian/clown/britches //ckeywhitelist = list("bloodrite") - -/datum/loadout_item/mask/britches_mask - name = "Britches' mask" - item_path = /obj/item/clothing/mask/gas/britches - //ckeywhitelist = list("bloodrite") - -/datum/loadout_item/mask/luchador_mask - name = "Mask of El Red Templar" - item_path = /obj/item/clothing/mask/luchador/enzo - //ckeywhitelist = list("enzoman") - -/datum/loadout_item/mask/nightlight_mask - name = "'Royez' Half-Face Rebreather" - item_path = /obj/item/clothing/mask/gas/nightlight -// ckeywhitelist = list("farsightednightlight", "raxraus", "1ceres", "marcoalbaredaa", "itzshift_yt", "drifter7371", "AvianAviator", "Katty Kat", "Investigator77", "Dalao Azure", "Socialistion", "ChillyLobster", "Sylvara", "AmZee", "Tf4", "rb303", "Kay_Nite", "whataboutism", "taac", "Halkyon", "Lupo_di_rosa", "Merek2", "lowpowermia", "RyeanBread", "Jesterz7", "Saund_Minah", "Ruediger4") - -/datum/loadout_item/mask/fir22 - name = "'Kimball' Rebreather" - item_path = /obj/item/clothing/mask/gas/nightlight/fir22 -// ckeywhitelist = list("farsightednightlight", "raxraus", "1ceres", "marcoalbaredaa", "itzshift_yt", "drifter7371", "AvianAviator", "Katty Kat", "Investigator77", "Dalao Azure", "Socialistion", "ChillyLobster", "Sylvara", "AmZee", "Tf4", "rb303", "Kay_Nite", "whataboutism", "taac", "Halkyon", "Lupo_di_rosa", "Merek2", "lowpowermia", "RyeanBread", "Jesterz7", "Saund_Minah", "Ruediger4") - /datum/loadout_item/head/caligram_cap_tan name = "Blacktide Tan Softcap" item_path = /obj/item/clothing/head/caligram_cap_tan @@ -156,11 +135,6 @@ item_path = /obj/item/clothing/under/wetsuit_norm ckeywhitelist = list("ChillyLobster") -/datum/loadout_item/mask/wolf_mask - name = "Wolf mask" - item_path = /obj/item/clothing/mask/animal/wolf - //ckeywhitelist = list("theooz") - /datum/loadout_item/head/drake_skull name = "Skull of an ashdrake" item_path = /obj/item/clothing/head/drake_skull @@ -203,11 +177,6 @@ item_path = /obj/item/clothing/accessory/medal/steele //ckeywhitelist = list("inferno707") -/datum/loadout_item/mask/hheart - name = "The Hollow Heart" - item_path = /obj/item/clothing/mask/hheart - //ckeywhitelist = list("inferno707") - /datum/loadout_item/toys/darksabre name = "Dark Sabre" item_path = /obj/item/toy/darksabre @@ -311,11 +280,6 @@ item_path = /obj/item/toy/plush/skyrat/voodoo //ckeywhitelist = list("gamerguy14948") -/datum/loadout_item/mask/octusvox - name = "Sinister Visor" - item_path = /obj/item/clothing/mask/breath/vox/octus - //ckeywhitelist = list("octus") - /datum/loadout_item/glasses/roseglasses name = "Rose-Colored Glasses" item_path = /obj/item/clothing/glasses/rosecolored @@ -351,11 +315,6 @@ item_path = /obj/item/clothing/neck/cloak/fluffycloak //ckeywhitelist = list("realwinterfrost") -/datum/loadout_item/mask/larpswat - name = "Foam Force SWAT Mask" - item_path = /obj/item/clothing/mask/gas/larpswat - //ckeywhitelist = list("erdinyobarboza") - /datum/loadout_item/toys/zappplush name = "Lil' Zapp Plushie" item_path = /obj/item/toy/plush/skyrat/zapp diff --git a/modular_skyrat/master_files/code/modules/loadout/categories/mask.dm b/modular_skyrat/master_files/code/modules/loadout/categories/mask.dm deleted file mode 100644 index cc59cf09f61..00000000000 --- a/modular_skyrat/master_files/code/modules/loadout/categories/mask.dm +++ /dev/null @@ -1,171 +0,0 @@ -/datum/loadout_category/mask - category_name = "Masks" - category_ui_icon = FA_ICON_MASK - type_to_generate = /datum/loadout_item/mask - tab_order = /datum/loadout_category/head::tab_order + 12 - -/datum/loadout_item/mask - abstract_type = /datum/loadout_item/mask - -/datum/loadout_item/mask/insert_path_into_outfit(datum/outfit/outfit, mob/living/carbon/human/equipper, visuals_only, loadout_placement_preference) - if(loadout_placement_preference != LOADOUT_OVERRIDE_JOB && outfit.mask) - LAZYADD(outfit.backpack_contents, outfit.mask) - outfit.mask = item_path - -/* -* BANDANAS -*/ - -/datum/loadout_item/mask/black_bandana - name = "Black Bandana" - item_path = /obj/item/clothing/mask/bandana/black - -/datum/loadout_item/mask/blue_bandana - name = "Blue Bandana" - item_path = /obj/item/clothing/mask/bandana/blue - -/datum/loadout_item/mask/gold_bandana - name = "Gold Bandana" - item_path = /obj/item/clothing/mask/bandana/gold - -/datum/loadout_item/mask/green_bandana - name = "Green Bandana" - item_path = /obj/item/clothing/mask/bandana/green - -/datum/loadout_item/mask/red_bandana - name = "Red Bandana" - item_path = /obj/item/clothing/mask/bandana/red - -/datum/loadout_item/mask/skull_bandana - name = "Skull Bandana" - item_path = /obj/item/clothing/mask/bandana/skull - -/* -* BALACLAVAS -*/ - -/datum/loadout_item/mask/balaclavaadj - name = "Adjustable Balaclava" - item_path = /obj/item/clothing/mask/balaclavaadjust - -/datum/loadout_item/mask/balaclavathree - name = "Three-Hole Balaclava (Black)" - item_path = /obj/item/clothing/mask/balaclava/threehole - -/datum/loadout_item/mask/balaclavagreen - name = "Three-Hole Balaclava (Green)" - item_path = /obj/item/clothing/mask/balaclava/threehole/green - -/* -* GAS MASKS -*/ - -/datum/loadout_item/mask/gas_mask - name = "Gas Mask" - item_path = /obj/item/clothing/mask/gas - -/datum/loadout_item/mask/gas_alt - name = "Black Gas Mask" - item_path = /obj/item/clothing/mask/gas/alt - -/datum/loadout_item/mask/gas_glass - name = "Glass Gas Mask" - item_path = /obj/item/clothing/mask/gas/glass - -/datum/loadout_item/mask/respirator - name = "Half Mask Respirator" - item_path = /obj/item/clothing/mask/gas/respirator - -/* -* JOB-LOCKED -*/ - -// Ain't a damn thing - -/* -* MASQUERADE MASKS -*/ - -/datum/loadout_item/mask/masquerade - name = "Masquerade Mask" - item_path = /obj/item/clothing/mask/masquerade - -/datum/loadout_item/mask/masquerade/two_colors - name = "Split Masquerade Mask" - item_path = /obj/item/clothing/mask/masquerade/two_colors - -/datum/loadout_item/mask/masquerade/feathered - name = "Feathered Masquerade Mask" - item_path = /obj/item/clothing/mask/masquerade/feathered - -/datum/loadout_item/mask/masquerade/two_colors/feathered - name = "Feathered Split Masquerade Mask" - item_path = /obj/item/clothing/mask/masquerade/two_colors/feathered - -/* -* FAMILIES -*/ - -/datum/loadout_item/mask/driscoll - name = "Driscoll Mask" - item_path = /obj/item/clothing/mask/gas/driscoll - -/* -* MISC -*/ -/datum/loadout_item/mask/surgical - name = "Recolorable Sterile Mask" - item_path = /obj/item/clothing/mask/surgical/greyscale - -/datum/loadout_item/mask/fake_mustache - name = "Fake Moustache" - item_path = /obj/item/clothing/mask/fakemoustache - -/datum/loadout_item/mask/pipe - name = "Pipe" - item_path = /obj/item/cigarette/pipe - -/datum/loadout_item/mask/corn_pipe - name = "Corn Cob Pipe" - item_path = /obj/item/cigarette/pipe/cobpipe - -/datum/loadout_item/mask/plague_doctor - name = "Plague Doctor Mask" - item_path = /obj/item/clothing/mask/gas/plaguedoctor - -/datum/loadout_item/mask/monkey - name = "Monkey Mask" - item_path = /obj/item/clothing/mask/gas/monkeymask - -/datum/loadout_item/mask/owl - name = "Owl Mask" - item_path = /obj/item/clothing/mask/gas/owl_mask - -/datum/loadout_item/mask/joy - name = "Joy Mask" - item_path = /obj/item/clothing/mask/joy - -/datum/loadout_item/mask/paper - name = "Paper Mask" - item_path = /obj/item/clothing/mask/paper - -/datum/loadout_item/mask/lollipop - name = "Lollipop" - item_path = /obj/item/food/lollipop - -/datum/loadout_item/mask/balaclava - name = "Balaclava" - item_path = /obj/item/clothing/mask/balaclava - - -/* -* DONATOR -*/ - -/datum/loadout_item/mask/donator - donator_only = TRUE - - -/datum/loadout_item/mask/donator/nightlight_mask/alldono - name = "Commercial FIR-36 Rebreather" - item_path = /obj/item/clothing/mask/gas/nightlight/alldono diff --git a/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm b/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm index b348665c8dd..2a9ec37c971 100644 --- a/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm +++ b/modular_skyrat/modules/customization/modules/clothing/masks/gasmask.dm @@ -43,7 +43,7 @@ /obj/item/clothing/mask/gas/soviet name = "soviet gas mask" - desc = "A white gas mask with a green filter, there's a small sticker attached saying it's not got Asbestos anymore." + desc = "A white gas mask with a green filter, there's a small sticker verifying it's Asbestos free! An even smaller sticker has been torn off. Nothing to worry about." icon = 'modular_skyrat/master_files/icons/obj/clothing/masks.dmi' worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/mask.dmi' icon_state = "gp5_mask" diff --git a/modular_zubbers/code/modules/loadout/categories/masks.dm b/modular_zubbers/code/modules/loadout/categories/masks.dm index eae996b9715..be8e8322e1f 100644 --- a/modular_zubbers/code/modules/loadout/categories/masks.dm +++ b/modular_zubbers/code/modules/loadout/categories/masks.dm @@ -1,24 +1,276 @@ //Title Capitalization for names please!!! -/datum/loadout_item/mask/sechailer_half_mask +/datum/loadout_category/mask + category_name = "Masks" + category_ui_icon = FA_ICON_MASK + type_to_generate = /datum/loadout_item/mask + tab_order = /datum/loadout_category/head::tab_order + 12 + +/datum/loadout_item/mask + abstract_type = /datum/loadout_item/mask + +/datum/loadout_item/mask/insert_path_into_outfit(datum/outfit/outfit, mob/living/carbon/human/equipper, visuals_only, loadout_placement_preference) + if(loadout_placement_preference != LOADOUT_OVERRIDE_JOB && outfit.mask) + LAZYADD(outfit.backpack_contents, outfit.mask) + outfit.mask = item_path + +/* +* BANDANAS +*/ + +/datum/loadout_item/mask/bandana + group = "Bandanas & Face Coverings" + abstract_type = /datum/loadout_item/mask/bandana + +/datum/loadout_item/mask/bandana/black + name = "Bandana (Black)" + item_path = /obj/item/clothing/mask/bandana/black + +/datum/loadout_item/mask/bandana/blue + name = "Bandana (Blue)" + item_path = /obj/item/clothing/mask/bandana/blue + +/datum/loadout_item/mask/bandana/gold + name = "Bandana (Gold)" + item_path = /obj/item/clothing/mask/bandana/gold + +/datum/loadout_item/mask/bandana/green + name = "Bandana (Green)" + item_path = /obj/item/clothing/mask/bandana/green + +/datum/loadout_item/mask/bandana/red + name = "Bandana (Red)" + item_path = /obj/item/clothing/mask/bandana/red + +/datum/loadout_item/mask/bandana/driscoll //Technically just looks like one but it's nicer here smiley face. + name = "Bandana (Driscoll)" + item_path = /obj/item/clothing/mask/gas/driscoll + +/datum/loadout_item/mask/bandana/skull + name = "Bandana (Skull)" + item_path = /obj/item/clothing/mask/bandana/skull + +/datum/loadout_item/mask/bandana/stripe + name = "Bandana (Striped)" + item_path = /obj/item/clothing/mask/bandana/striped + +/datum/loadout_item/mask/bandana/facescarf + name = "Facescarf" + item_path = /obj/item/clothing/mask/facescarf + +/datum/loadout_item/mask/bandana/sechailer_half_mask name = "Tacticool Half-Mask" item_path = /obj/item/clothing/mask/gas/half_mask +/datum/loadout_item/mask/bandana/neckgaiter + name = "Neck Gaiter" + item_path = /obj/item/clothing/mask/primitive_catgirl_greyscale_gaiter + + +/* +* BALACLAVAS +*/ + +/datum/loadout_item/mask/balaclava + group = "Balaclavas" + abstract_type = /datum/loadout_item/mask/balaclava + +/datum/loadout_item/mask/balaclava/adj + name = "Adjustable Balaclava" + item_path = /obj/item/clothing/mask/balaclavaadjust + +/datum/loadout_item/mask/balaclava/black + name = "Balaclava" + item_path = /obj/item/clothing/mask/balaclava + +/datum/loadout_item/mask/balaclava/three + name = "Three-Hole Balaclava (Black)" + item_path = /obj/item/clothing/mask/balaclava/threehole + +/datum/loadout_item/mask/balaclava/green + name = "Three-Hole Balaclava (Green)" + item_path = /obj/item/clothing/mask/balaclava/threehole/green + +/* +* GAS MASKS +*/ + +/datum/loadout_item/mask/gas + group = "Gas Masks" + abstract_type = /datum/loadout_item/mask/gas + +/datum/loadout_item/mask/gas/tider + name = "Gas Mask" + item_path = /obj/item/clothing/mask/gas + +/datum/loadout_item/mask/gas/alt + name = "Black Gas Mask" + item_path = /obj/item/clothing/mask/gas/alt + +/datum/loadout_item/mask/gas/glass + name = "Glass Gas Mask" + item_path = /obj/item/clothing/mask/gas/glass + +/datum/loadout_item/mask/gas/respirator + name = "Half Mask Respirator" + item_path = /obj/item/clothing/mask/gas/respirator + /datum/loadout_item/mask/gas/german name = "Black Gas Mask" item_path = /obj/item/clothing/mask/gas/german - restricted_roles = list(ALL_JOBS_SEC,) /datum/loadout_item/mask/gas/soviet name = "Soviet Gas Mask" item_path = /obj/item/clothing/mask/gas/soviet - restricted_roles = list(ALL_JOBS_SEC,) /datum/loadout_item/mask/gas/nri_police name = "Colonial Gas Mask" item_path = /obj/item/clothing/mask/gas/nri_police restricted_roles = list(ALL_JOBS_SEC, JOB_CUSTOMS_AGENT) -/datum/loadout_item/mask/frontier_colonist +/datum/loadout_item/mask/gas/frontier_colonist name = "Frontier Gas Mask" item_path = /obj/item/clothing/mask/gas/atmos/frontier_colonist/loadout + +/datum/loadout_item/mask/gas/nightlight_mask/alldono + name = "Commercial FIR-36 Rebreather" + item_path = /obj/item/clothing/mask/gas/nightlight/alldono + +/datum/loadout_item/mask/gas/nightlight_mask + name = "'Royez' Half-Face Rebreather" + item_path = /obj/item/clothing/mask/gas/nightlight +// ckeywhitelist = list("farsightednightlight", "raxraus", "1ceres", "marcoalbaredaa", "itzshift_yt", "drifter7371", "AvianAviator", "Katty Kat", "Investigator77", "Dalao Azure", "Socialistion", "ChillyLobster", "Sylvara", "AmZee", "Tf4", "rb303", "Kay_Nite", "whataboutism", "taac", "Halkyon", "Lupo_di_rosa", "Merek2", "lowpowermia", "RyeanBread", "Jesterz7", "Saund_Minah", "Ruediger4") + +/datum/loadout_item/mask/gas/fir22 + name = "'Kimball' Rebreather" + item_path = /obj/item/clothing/mask/gas/nightlight/fir22 +// ckeywhitelist = list("farsightednightlight", "raxraus", "1ceres", "marcoalbaredaa", "itzshift_yt", "drifter7371", "AvianAviator", "Katty Kat", "Investigator77", "Dalao Azure", "Socialistion", "ChillyLobster", "Sylvara", "AmZee", "Tf4", "rb303", "Kay_Nite", "whataboutism", "taac", "Halkyon", "Lupo_di_rosa", "Merek2", "lowpowermia", "RyeanBread", "Jesterz7", "Saund_Minah", "Ruediger4") + +/datum/loadout_item/mask/gas/octusvox + name = "Sinister Visor" + item_path = /obj/item/clothing/mask/breath/vox/octus + //ckeywhitelist = list("octus") + +/datum/loadout_item/mask/gas/larpswat + name = "Foam Force SWAT Mask" + item_path = /obj/item/clothing/mask/gas/larpswat + //ckeywhitelist = list("erdinyobarboza") + +/* +* MASQUERADE MASKS +*/ + +/datum/loadout_item/mask/masquerade + group = "Masquerade Masks" + abstract_type = /datum/loadout_item/mask/masquerade + +/datum/loadout_item/mask/masquerade/masqmask + name = "Masquerade Mask" + item_path = /obj/item/clothing/mask/masquerade + +/datum/loadout_item/mask/masquerade/two_colors + name = "Masquerade Mask (Split)" + item_path = /obj/item/clothing/mask/masquerade/two_colors + +/datum/loadout_item/mask/masquerade/feathered + name = "Masquerade Mask (Feathered)" + item_path = /obj/item/clothing/mask/masquerade/feathered + +/datum/loadout_item/mask/masquerade/two_colors/feathered + name = "Masquerade Mask (Feathered, Split)" + item_path = /obj/item/clothing/mask/masquerade/two_colors/feathered + +/datum/loadout_item/mask/masquerade/rebellion + name = "Rebellion Mask" + item_path = /obj/item/clothing/mask/rebellion + +/datum/loadout_item/mask/masquerade/hheart //sans undertale + name = "The Hollow Heart" + item_path = /obj/item/clothing/mask/hheart + //ckeywhitelist = list("inferno707") + +/* +* MISC +*/ + +/datum/loadout_item/mask/utility + group = "Utility Masks" + abstract_type = /datum/loadout_item/mask/utility + +/datum/loadout_item/mask/utility/surgical + name = "Sterile Mask (Recolorable)" + item_path = /obj/item/clothing/mask/surgical/greyscale + +/datum/loadout_item/mask/utility/pipe + name = "Pipe" + item_path = /obj/item/cigarette/pipe + +/datum/loadout_item/mask/utility/pipe/corn + name = "Pipe (Corn Cob)" + item_path = /obj/item/cigarette/pipe/cobpipe + +/datum/loadout_item/mask/utility/lollipop + name = "Lollipop" + item_path = /obj/item/food/lollipop + +/datum/loadout_item/mask/utility/whistle + name = "Police Whistle" + item_path = /obj/item/clothing/mask/whistle + restricted_roles = list(ALL_JOBS_SEC) + +/* +* COSTUMES +*/ + +/datum/loadout_item/mask/costume + group = "Costumes and Silly Masks" + abstract_type = /datum/loadout_item/mask/costume + +/datum/loadout_item/mask/costume/fake_mustache + name = "Fake Moustache" + item_path = /obj/item/clothing/mask/fakemoustache + +/datum/loadout_item/mask/costume/plague_doctor + name = "Plague Doctor Mask" + item_path = /obj/item/clothing/mask/gas/plaguedoctor + +/datum/loadout_item/mask/costume/kitsune + name = "Kitsune Mask" + item_path = /obj/item/clothing/mask/kitsune + +/datum/loadout_item/mask/costume/monkey + name = "Monkey Mask" + item_path = /obj/item/clothing/mask/gas/monkeymask + +/datum/loadout_item/mask/costume/owl + name = "Owl Mask" + item_path = /obj/item/clothing/mask/gas/owl_mask + +/datum/loadout_item/mask/costume/joy + name = "Joy Mask" + item_path = /obj/item/clothing/mask/joy + +/datum/loadout_item/mask/costume/paper + name = "Paper Mask" + item_path = /obj/item/clothing/mask/paper + +/datum/loadout_item/mask/costume/britches_mask + name = "Britches' mask" + item_path = /obj/item/clothing/mask/gas/britches + //ckeywhitelist = list("bloodrite") + restricted_roles = list(JOB_CLOWN) + +/datum/loadout_item/mask/costume/clown/recolour + name = "Recolorable Clown Mask" + item_path = /obj/item/clothing/mask/gas/clown_colourable + restricted_roles = list(JOB_CLOWN) + +/datum/loadout_item/mask/costume/luchador_mask + name = "Mask of El Red Templar" + item_path = /obj/item/clothing/mask/luchador/enzo + //ckeywhitelist = list("enzoman") + +/datum/loadout_item/mask/costume/wolf_mask + name = "Wolf mask" + item_path = /obj/item/clothing/mask/animal/wolf + //ckeywhitelist = list("theooz") diff --git a/tgstation.dme b/tgstation.dme index 810a7ff6d64..9bc471332bd 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7126,7 +7126,6 @@ #include "modular_skyrat\master_files\code\modules\loadout\categories\glasses.dm" #include "modular_skyrat\master_files\code\modules\loadout\categories\heads.dm" #include "modular_skyrat\master_files\code\modules\loadout\categories\inhands.dm" -#include "modular_skyrat\master_files\code\modules\loadout\categories\mask.dm" #include "modular_skyrat\master_files\code\modules\loadout\categories\neck.dm" #include "modular_skyrat\master_files\code\modules\loadout\categories\pocket.dm" #include "modular_skyrat\master_files\code\modules\loadout\categories\suit.dm"