diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 211f47d59b..824f5b3e61 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -2,27 +2,27 @@ #define COLOR_INPUT_DISABLED "#F0F0F0" #define COLOR_INPUT_ENABLED "#D3B5B5" -//CITADEL EDIT - why the fuck are colors commented out??? -#define COLOR_WHITE "#EEEEEE" -#define COLOR_SILVER "#C0C0C0" -#define COLOR_GRAY "#808080" + +//#define COLOR_WHITE "#EEEEEE" +//#define COLOR_SILVER "#C0C0C0" +//#define COLOR_GRAY "#808080" #define COLOR_FLOORTILE_GRAY "#8D8B8B" #define COLOR_ALMOST_BLACK "#333333" -#define COLOR_BLACK "#000000" +//#define COLOR_BLACK "#000000" #define COLOR_RED "#FF0000" -#define COLOR_RED_LIGHT "#FF3333" -#define COLOR_MAROON "#800000" +//#define COLOR_RED_LIGHT "#FF3333" +//#define COLOR_MAROON "#800000" #define COLOR_YELLOW "#FFFF00" -#define COLOR_OLIVE "#808000" -#define COLOR_LIME "#32CD32" +//#define COLOR_OLIVE "#808000" +//#define COLOR_LIME "#32CD32" #define COLOR_GREEN "#008000" #define COLOR_CYAN "#00FFFF" -#define COLOR_TEAL "#008080" +//#define COLOR_TEAL "#008080" #define COLOR_BLUE "#0000FF" -#define COLOR_BLUE_LIGHT "#33CCFF" -#define COLOR_NAVY "#000080" +//#define COLOR_BLUE_LIGHT "#33CCFF" +//#define COLOR_NAVY "#000080" #define COLOR_PINK "#FFC0CB" -#define COLOR_MAGENTA "#FF00FF" +//#define COLOR_MAGENTA "#FF00FF" #define COLOR_PURPLE "#800080" #define COLOR_ORANGE "#FF9900" #define COLOR_BEIGE "#CEB689" diff --git a/code/__HELPERS/text_vr.dm b/code/__HELPERS/text_vr.dm index 52d43a6501..846cb1b26a 100644 --- a/code/__HELPERS/text_vr.dm +++ b/code/__HELPERS/text_vr.dm @@ -24,26 +24,4 @@ GLOBAL_LIST_EMPTY(whitelisted_species_list) /proc/log_mentor(text) GLOB.mentorlog.Add(text) - GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]" - - -//Mergesort: any value in a list, preserves key=value structure -/proc/sortAssoc(var/list/L) - if(L.len < 2) - return L - var/middle = L.len / 2 + 1 // Copy is first,second-1 - return mergeAssoc(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle))) //second parameter null = to end of list - -/proc/mergeAssoc(var/list/L, var/list/R) - var/Li=1 - var/Ri=1 - var/list/result = new() - while(Li <= L.len && Ri <= R.len) - if(sorttext(L[Li], R[Ri]) < 1) - result += R&R[Ri++] - else - result += L&L[Li++] - - if(Li <= L.len) - return (result + L.Copy(Li, 0)) - return (result + R.Copy(Ri, 0)) \ No newline at end of file + GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]" \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 5fe17f566f..0b21646a4b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -127,14 +127,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/action_buttons_screen_locs = list() - //CITADEL GEAR SLOT DATA - //Gear stuff - var/list/gear = list() - var/gear_tab = "General" - var/max_gear_slots = 10 - var/list/gear_categories - var/list/chosen_gear - /datum/preferences/New(client/C) parent = C custom_names["human"] = random_unique_name() @@ -523,66 +515,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Be [capitalize(i)]: [(i in be_special) ? "Yes" : "No"]
" dat += citadel_pref_replace(current_tab) dat += "" - //CITDEL EDIT - GEAR THINGS, fuck trying to get this working modularlly ****************************** - if(current_tab == 3) - var/total_cost = 0 - var/list/type_blacklist = list() - if(gear && gear.len) - for(var/i = 1, i <= gear.len, i++) - var/datum/gear/G = GLOB.loadout_items[gear[i]] - if(G) - if(!G.subtype_cost_overlap) - if(G.subtype_path in type_blacklist) - continue - type_blacklist += G.subtype_path - total_cost += G.cost - var/fcolor = "#3366CC" - if(total_cost < max_gear_slots) - fcolor = "#E67300" - dat += "" - dat += "" - dat += "" - - var/datum/loadout_catagories/LC = GLOB.loadout_catagories[gear_tab] - dat += "" - dat += "" - dat += "" - for(var/gear_name in LC.gear) - var/datum/gear/G = LC.gear[gear_name] - var/ticked = (G.name in gear) - dat += "" - dat += "" - if(ticked) - . += "" - dat += "
[total_cost]/[max_gear_slots] loadout points spent. \[Clear Loadout\]
" - - var/firstcat = 1 - for(var/category in GLOB.loadout_items) - var/datum/loadout_catagories/LC = GLOB.loadout_items[category] - var/datum/gear/gear = GLOB.loadout_items - if(LC.donor_only) - if(gear.ckeywhitelist && gear.ckeywhitelist.len) - if(user && user.client && user.client.ckey && !(gear.ckeywhitelist.Find(user.client.ckey))) - continue - if(firstcat) - firstcat = 0 - else - dat += " |" - if(category == gear_tab) - dat += " [category] " - else - dat += " [category] " - dat += "

[LC.catagory]

[G.name][G.cost]" - if(G.restricted_roles) - dat += "Restrictions: " - for(var/role in G.restricted_roles) - dat += role + " " - dat += "" - dat += "[G.description]
" - for(var/datum/gear_tweak/tweak in G.gear_tweaks) - . += " [tweak.get_contents(get_tweak_metadata(G, tweak))]" - . += "
" else dat = citadel_dat_replace(current_tab) @@ -600,25 +533,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) popup.set_content(dat) popup.open(0) -//CITADEL GEAR STUFF -/datum/preferences/proc/get_gear_metadata(var/datum/gear/G) - . = gear[G.name] - if(!.) - . = list() - gear[G.name] = . - -/datum/preferences/proc/get_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak) - var/list/metadata = get_gear_metadata(G) - . = metadata["[tweak]"] - if(!.) - . = tweak.get_default() - metadata["[tweak]"] = . - -/datum/preferences/proc/set_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak, var/new_metadata) - var/list/metadata = get_gear_metadata(G) - metadata["[tweak]"] = new_metadata -//END CITADEL GEAR STUFF - /datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) if(!SSjob) return @@ -1509,41 +1423,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("tab") if (href_list["tab"]) current_tab = text2num(href_list["tab"]) - - if(href_list["toggle_gear"]) - var/datum/gear/TG = GLOB.loadout_items[href_list["toggle_gear"]] - if(TG.name in TG) - TG -= TG.name - else - if(TG.donor_only) - if(TG.ckeywhitelist && TG.ckeywhitelist.len) - if(user && user.client && user.client.ckey && !(TG.ckeywhitelist.Find(user.client.ckey))) - return - var/total_cost = 0 - var/list/type_blacklist = list() - for(var/gear_name in TG) - var/datum/gear/G = GLOB.loadout_items[gear_name] - if(istype(G)) - if(!G.subtype_cost_overlap) - if(G.subtype_path in type_blacklist) - continue - type_blacklist += G.subtype_path - total_cost += G.cost - if((total_cost + TG.cost) <= max_gear_slots) - gear += TG.name - else if(href_list["gear"] && href_list["tweak"]) - var/datum/gear/gear = GLOB.loadout_items[href_list["gear"]] - var/datum/gear_tweak/tweak = locate(href_list["tweak"]) - if(!tweak || !istype(gear) || !(tweak in gear.gear_tweaks)) - return - var/metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak)) - if(!metadata) - return - set_tweak_metadata(gear, tweak, metadata) - else if(href_list["select_category"]) - gear_tab = href_list["select_category"] - else if(href_list["clear_loadout"]) - gear.Cut() process_citadel_prefs(user, href_list) process_citadel_link(user, href_list) ShowChoices(user) diff --git a/modular_citadel/code/modules/client/loadout/loadout_donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm similarity index 66% rename from modular_citadel/code/modules/client/loadout/loadout_donator.dm rename to modular_citadel/code/modules/client/loadout/__donator.dm index 21dc9ccbb6..69015b064d 100644 --- a/modular_citadel/code/modules/client/loadout/loadout_donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -1,223 +1,224 @@ //This is the file that handles donator loadout items. -/datum/gear/donor - donor_only = TRUE - sort_category = "Donor" - subtype_path = /datum/gear/donor - -/datum/gear/donor/pingcoderfailsafe +/datum/gear/pingcoderfailsafe name = "IF YOU SEE THIS, PING A CODER RIGHT NOW!" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/bikehorn/golden ckeywhitelist = list("This entry should never appear with this variable set.") //If it does, then that means somebody fucked up the whitelist system pretty hard -/datum/gear/donor/donortestingbikehorn +/datum/gear/donortestingbikehorn name = "Donor item testing bikehorn" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/bikehorn - ckeywhitelist = list("jayehh","deathride58","poojawa") + ckeywhitelist = list("jayehh","deathride58") -/datum/gear/donor/kevhorn +/datum/gear/kevhorn name = "Airhorn" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/bikehorn/airhorn ckeywhitelist = list("kevinz000") -/datum/gear/donor/cebusoap +/datum/gear/cebusoap name = "Cebutris' soap" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/custom/ceb_soap ckeywhitelist = list("cebutris") -/datum/gear/donor/kiaracloak +/datum/gear/kiaracloak name = "Kiara's cloak" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/cloak/inferno ckeywhitelist = list("inferno707") -/datum/gear/donor/kiaracollar +/datum/gear/kiaracollar name = "Kiara's collar" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/petcollar/inferno ckeywhitelist = list("inferno707") -/datum/gear/donor/kiaramedal +/datum/gear/kiaramedal name = "Insignia of Steele" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/clothing/accessory/medal/steele ckeywhitelist = list("inferno707") -/datum/gear/donor/sexymimemask +/datum/gear/sexymimemask name = "The hollow heart" - slot = slot_wear_mask + category = slot_wear_mask path = /obj/item/clothing/mask/sexymime ckeywhitelist = list("inferno707") -/datum/gear/donor/engravedzippo +/datum/gear/engravedzippo name = "Engraved zippo" - slot = slot_hands + category = slot_hands path = /obj/item/lighter/gold ckeywhitelist = list("dirtyoldharry") -/datum/gear/donor/geisha +/datum/gear/geisha name = "Geisha suit" - slot = slot_w_uniform + category = slot_w_uniform path = /obj/item/clothing/under/geisha ckeywhitelist = list("atiefling") -/datum/gear/donor/specialscarf +/datum/gear/specialscarf name = "Special scarf" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/scarf/zomb ckeywhitelist = list("zombierobin") -/datum/gear/donor/redmadcoat +/datum/gear/redmadcoat name = "The Mad's labcoat" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/suit/toggle/labcoat/mad/red ckeywhitelist = list("zombierobin") -/datum/gear/donor/santahat +/datum/gear/santahat name = "Santa hat" - slot = slot_head + category = slot_head path = /obj/item/clothing/head/santa/fluff ckeywhitelist = list("illotafv") -/datum/gear/donor/reindeerhat +/datum/gear/reindeerhat name = "Reindeer hat" - slot = slot_head + category = slot_head path = /obj/item/clothing/head/hardhat/reindeer/fluff ckeywhitelist = list("illotafv") -/datum/gear/donor/treeplushie +/datum/gear/treeplushie name = "Christmas tree plushie" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/toy/plush/tree ckeywhitelist = list("illotafv") -/datum/gear/donor/santaoutfit +/datum/gear/santaoutfit name = "Santa costume" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/suit/space/santa/fluff ckeywhitelist = list("illotafv") -/datum/gear/donor/treecloak +/datum/gear/treecloak name = "Christmas tree cloak" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/cloak/festive ckeywhitelist = list("illotafv") -/datum/gear/donor/carrotplush +/datum/gear/carrotplush name = "Carrot plushie" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/toy/plush/carrot ckeywhitelist = list("improvedname") -/datum/gear/donor/carrotcloak +/datum/gear/carrotcloak name = "Carrot cloak" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/cloak/carrot ckeywhitelist = list("improvedname") -/datum/gear/donor/albortorosamask +/datum/gear/albortorosamask name = "Alborto Rosa mask" - slot = slot_wear_mask + category = slot_wear_mask path = /obj/item/clothing/mask/luchador/zigfie ckeywhitelist = list("zigfie") -/datum/gear/donor/mankini +/datum/gear/mankini name = "Mankini" - slot = slot_w_uniform + category = slot_w_uniform path = /obj/item/clothing/under/mankini ckeywhitelist = list("zigfie") -/datum/gear/donor/pinkshoes +/datum/gear/pinkshoes name = "Pink shoes" - slot = slot_shoes + category = slot_shoes path = /obj/item/clothing/shoes/sneakers/pink ckeywhitelist = list("zigfie") -/datum/gear/donor/reecesgreatcoat +/datum/gear/reecesgreatcoat name = "Reece's Great Coat" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/suit/trenchcoat/green ckeywhitelist = list("geemiesif") -/datum/gear/donor/russianflask +/datum/gear/russianflask name = "Russian flask" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/reagent_containers/food/drinks/flask/russian cost = 2 ckeywhitelist = list("slomka") -/datum/gear/donor/stalkermask +/datum/gear/stalkermask name = "S.T.A.L.K.E.R. mask" - slot = slot_wear_mask + category = slot_wear_mask path = /obj/item/clothing/mask/gas/stalker ckeywhitelist = list("slomka") -/datum/gear/donor/stripedcollar +/datum/gear/stripedcollar name = "Striped collar" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/petcollar/stripe ckeywhitelist = list("jademanique") -/datum/gear/donor/performersoutfit +/datum/gear/performersoutfit name = "Bluish performer's outfit" - slot = slot_w_uniform + category = slot_w_uniform path = /obj/item/clothing/under/singery/custom ckeywhitelist = list("killer402402") -/datum/gear/donor/vermillion +/datum/gear/vermillion name = "Vermillion clothing" - slot = slot_w_uniform + category = slot_w_uniform path = /obj/item/clothing/suit/vermillion ckeywhitelist = list("fractious") -/datum/gear/donor/AM4B +/datum/gear/AM4B name = "Foam Force AM4-B" - slot = slot_in_backpack + category = slot_in_backpack path = /obj/item/gun/ballistic/automatic/AM4B ckeywhitelist = list("zeronetalpha") -/datum/gear/donor/carrotsatchel +/datum/gear/carrotsatchel name = "Carrot Satchel" - slot = slot_hands + category = slot_hands path = /obj/item/storage/backpack/satchel/carrot ckeywhitelist = list("improvedname") -/datum/gear/donor/naomisweater +/datum/gear/naomisweater name = "worn black sweater" - slot = slot_w_uniform + category = slot_w_uniform path = /obj/item/clothing/under/bb_sweater/black/naomi ckeywhitelist = list("technicalmagi") -/datum/gear/donor/naomicollar +/datum/gear/naomicollar name = "worn pet collar" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/petcollar/naomi ckeywhitelist = list("technicalmagi") -/datum/gear/donor/gladiator +/datum/gear/gladiator name = "Gladiator Armor" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/under/gladiator ckeywhitelist = list("aroche") -/datum/gear/donor/bloodredtie +/datum/gear/bloodredtie name = "Blood Red Tie" - slot = slot_neck + category = slot_neck path = /obj/item/clothing/neck/tie/bloodred ckeywhitelist = list("kyutness") -/datum/gear/donor/puffydress +/datum/gear/puffydress name = "Puffy Dress" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/suit/puffydress //ckeywhitelist = //Don't know their ckey yet -/datum/gear/donor/labredblack +/datum/gear/labredblack name = "Black and Red Coat" - slot = slot_wear_suit + category = slot_wear_suit path = /obj/item/clothing/suit/toggle/labcoat/labredblack ckeywhitelist = list("blakeryan") + + + + + + diff --git a/modular_citadel/code/modules/client/loadout/_medical.dm b/modular_citadel/code/modules/client/loadout/_medical.dm new file mode 100644 index 0000000000..e8c8ea453d --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/_medical.dm @@ -0,0 +1,5 @@ +/datum/gear/stethoscope + name = "Stethoscope" + category = slot_neck + path = /obj/item/clothing/neck/stethoscope + restricted_roles = list("Medical Doctor", "Chief Medical Officer") diff --git a/modular_citadel/code/modules/client/loadout/_security.dm b/modular_citadel/code/modules/client/loadout/_security.dm new file mode 100644 index 0000000000..304e99f311 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/_security.dm @@ -0,0 +1,71 @@ +/datum/gear/navyblueuniformhos + name = "Head of Security navyblue uniform" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/head_of_security/navyblue + restricted_roles = list("Head of Security") + +/datum/gear/navybluehosberet + name = "Head of security's Naviblue beret" + category = slot_head + path = /obj/item/clothing/head/beret/sec/navyhos + restricted_roles = list("Head of Security") + +/datum/gear/navybluejackethos + name = "head of security's navyblue jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/security/hos + restricted_roles = list("Head of Security") + +/datum/gear/navybluejacketofficer + name = "security officer's navyblue jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/security/officer + restricted_roles = list("Security Officer") + +/datum/gear/navyblueofficerberet + name = "Security officer's Navyblue beret" + category = slot_head + path = /obj/item/clothing/head/beret/sec/navyofficer + restricted_roles = list("Security Officer") + +/datum/gear/navyblueuniformofficer + name = "security officer navyblue uniform" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/security/navyblue + restricted_roles = list("Security officer") + +/datum/gear/navybluejacketwarden + name = "warden navyblue jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/security/warden + restricted_roles = list("Warden") + +/datum/gear/navybluewardenberet + name = "Warden's navyblue beret" + category = slot_head + path = /obj/item/clothing/head/beret/sec/navywarden + restricted_roles = list("Warden") + +/datum/gear/navyblueuniformwarden + name = "Warden navyblue uniform" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/warden/navyblue + restricted_roles = list("Warden") + +/datum/gear/secskirt + name = "Security skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/security/skirt + restricted_roles = list("Security Officer", "Warden", "Head of Security") + +/datum/gear/hosskirt + name = "Head of security's skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/head_of_security/skirt + restricted_roles = list("Head of Security") + +/datum/gear/sechud + name = "Security Hud" + category = slot_glasses + path = /obj/item/clothing/glasses/hud/security + restricted_roles = list("Security Officer", "Warden", "Head of Security") \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/_service.dm b/modular_citadel/code/modules/client/loadout/_service.dm new file mode 100644 index 0000000000..56345e9185 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/_service.dm @@ -0,0 +1,13 @@ +/datum/gear/plushvar + name = "Ratvar Plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/plushvar + cost = 5 + restricted_roles = list("Chaplain") + +/datum/gear/narplush + name = "Narsie Plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/narplush + cost = 5 + restricted_roles = list("Chaplain") \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm new file mode 100644 index 0000000000..2779d6f124 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -0,0 +1,24 @@ +/datum/gear/plushcarp + name = "Space carp plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/carpplushie + +/datum/gear/plushliz + name = "Lizard plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/lizardplushie + +/datum/gear/plushsnek + name = "Snake plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/snakeplushie + +/datum/gear/plushslime + name = "Slime plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/slimeplushie + +/datum/gear/dildo + name = "Customizable dildo" + category = slot_in_backpack + path = /obj/item/dildo/custom diff --git a/modular_citadel/code/modules/client/loadout/gear_tweaks.dm b/modular_citadel/code/modules/client/loadout/gear_tweaks.dm deleted file mode 100644 index 31ffcbf29c..0000000000 --- a/modular_citadel/code/modules/client/loadout/gear_tweaks.dm +++ /dev/null @@ -1,113 +0,0 @@ -/datum/gear_tweak/proc/get_contents(var/metadata) - return - -/datum/gear_tweak/proc/get_metadata(var/user, var/metadata) - return - -/datum/gear_tweak/proc/get_default() - return - -/datum/gear_tweak/proc/tweak_gear_data(var/metadata, var/datum/gear_data) - return - -/datum/gear_tweak/proc/tweak_item(var/obj/item/I, var/metadata) - return - -/* -* Color adjustment -*/ - -var/datum/gear_tweak/color/gear_tweak_free_color_choice = new() - -/datum/gear_tweak/color - var/list/valid_colors - -/datum/gear_tweak/color/New(var/list/colors) - valid_colors = colors - ..() - -/datum/gear_tweak/color/get_contents(var/metadata) - return "Color: " - -/datum/gear_tweak/color/get_default() - return valid_colors ? valid_colors[1] : COLOR_GRAY - -/datum/gear_tweak/color/get_metadata(var/user, var/metadata) - if(valid_colors) - return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors - return input(user, "Choose an item color.", "Global Preference", metadata) as color|null - -/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata) - if(valid_colors && !(metadata in valid_colors)) - return - I.color = metadata - -/* -* Path adjustment -*/ - -/datum/gear_tweak/path - var/list/valid_paths - -/datum/gear_tweak/path/New(var/list/paths) - valid_paths = paths - ..() - -/datum/gear_tweak/path/get_contents(var/metadata) - return "Type: [metadata]" - -/datum/gear_tweak/path/get_default() - return valid_paths[1] - -/datum/gear_tweak/path/get_metadata(var/user, var/metadata) - return input(user, "Choose a type.", "Character Preference", metadata) as null|anything in valid_paths - -/datum/gear_tweak/path/tweak_gear_data(var/metadata, var/datum/gear_data/gear_data) - if(!(metadata in valid_paths)) - return - gear_data.path = valid_paths[metadata] - -/* -* Content adjustment -*/ - -/datum/gear_tweak/contents - var/list/valid_contents - -/datum/gear_tweak/contents/New() - valid_contents = args.Copy() - ..() - -/datum/gear_tweak/contents/get_contents(var/metadata) - return "Contents: [english_list(metadata, and_text = ", ")]" - -/datum/gear_tweak/contents/get_default() - . = list() - for(var/i = 1 to valid_contents.len) - . += "Random" - -/datum/gear_tweak/contents/get_metadata(var/user, var/list/metadata) - . = list() - for(var/i = metadata.len to valid_contents.len) - metadata += "Random" - for(var/i = 1 to valid_contents.len) - var/entry = input(user, "Choose an entry.", "Character Preference", metadata[i]) as null|anything in (valid_contents[i] + list("Random", "None")) - if(entry) - . += entry - else - return metadata - -/datum/gear_tweak/contents/tweak_item(var/obj/item/I, var/list/metadata) - if(metadata.len != valid_contents.len) - return - for(var/i = 1 to valid_contents.len) - var/path - var/list/contents = valid_contents[i] - if(metadata[i] == "Random") - path = pick(contents) - path = contents[path] - else if(metadata[i] == "None") - continue - else - path = contents[metadata[i]] - new path(I) \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/glasses.dm b/modular_citadel/code/modules/client/loadout/glasses.dm new file mode 100644 index 0000000000..b1e6068a9e --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/glasses.dm @@ -0,0 +1,44 @@ +/datum/gear/cold + name = "Cold goggles" + category = slot_glasses + path = /obj/item/clothing/glasses/cold + +/datum/gear/eyepatch + name = "Eyepatch" + category = slot_glasses + path = /obj/item/clothing/glasses/eyepatch + +/datum/gear/heat + name = "Heat goggles" + category = slot_glasses + path = /obj/item/clothing/glasses/heat + +/datum/gear/hipster + name = "Hipster glasses" + category = slot_glasses + path = /obj/item/clothing/glasses/regular/hipster + +/datum/gear/jamjar + name = "Jamjar glasses" + category = slot_glasses + path = /obj/item/clothing/glasses/regular/jamjar + +/datum/gear/monocle + name = "Monocle" + category = slot_glasses + path = /obj/item/clothing/glasses/monocle + +/datum/gear/orange + name = "Orange glasses" + category = slot_glasses + path = /obj/item/clothing/glasses/orange + +/datum/gear/red + name = "Red Glasses" + category = slot_glasses + path = /obj/item/clothing/glasses/red + +/datum/gear/prescription + name = "Prescription glasses" + category = slot_glasses + path = /obj/item/clothing/glasses/regular diff --git a/modular_citadel/code/modules/client/loadout/gloves.dm b/modular_citadel/code/modules/client/loadout/gloves.dm new file mode 100644 index 0000000000..ec67fbc0ec --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/gloves.dm @@ -0,0 +1,4 @@ +/datum/gear/fingerless + name = "Fingerless Gloves" + category = slot_gloves + path = /obj/item/clothing/gloves/fingerless \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm new file mode 100644 index 0000000000..94815a7243 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -0,0 +1,61 @@ +/datum/gear/cane + name = "Cane" + category = slot_hands + path = /obj/item/cane + +/datum/gear/cigarettes + name = "Cigarette pack" + category = slot_hands + path = /obj/item/storage/fancy/cigarettes + +/datum/gear/dice + name = "Dice bag" + category = slot_hands + path = /obj/item/storage/pill_bottle/dice + +/datum/gear/eightball + name = "Magic eightball" + category = slot_hands + path = /obj/item/toy/eightball + +/datum/gear/matches + name = "Matchbox" + category = slot_hands + path = /obj/item/storage/box/matches + +/datum/gear/cheaplighter + name = "Cheap lighter" + category = slot_hands + path = /obj/item/lighter/greyscale + +/datum/gear/cards + name = "Playing cards" + category = slot_hands + path = /obj/item/toy/cards/deck + +/datum/gear/skub + name = "Skub" + category = slot_hands + path = /obj/item/skub + +/datum/gear/carpplushie + name = "Space carp plushie" + category = slot_hands + path = /obj/item/toy/plush/carpplushie + +/datum/gear/wallet + name = "Wallet" + category = slot_hands + path = /obj/item/storage/wallet + +/datum/gear/flask + name = "Flask" + category = slot_hands + path = /obj/item/reagent_containers/food/drinks/flask + cost = 2 + +/datum/gear/zippolighter + name = "Zippo Lighter" + category = slot_hands + path = /obj/item/lighter + cost = 2 diff --git a/modular_citadel/code/modules/client/loadout/loadout_hat.dm b/modular_citadel/code/modules/client/loadout/head.dm similarity index 56% rename from modular_citadel/code/modules/client/loadout/loadout_hat.dm rename to modular_citadel/code/modules/client/loadout/head.dm index 11ba3c6de4..168debf2cc 100644 --- a/modular_citadel/code/modules/client/loadout/loadout_hat.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -1,91 +1,74 @@ -/datum/gear/hat - subtype_path = /datum/gear/hat - slot = slot_head - sort_category = "Headwear" - -/datum/gear/hat/balaclava - name = "Balaclava" - slot = slot_in_backpack - cost = 3 - path = /obj/item/clothing/mask/balaclava - -/datum/gear/hat/baseball +/datum/gear/baseball name = "Ballcap" + category = slot_head path = /obj/item/clothing/head/soft/mime -/datum/gear/hat/beanie +/datum/gear/beanie name = "Beanie" + category = slot_head path = /obj/item/clothing/head/beanie -/datum/gear/hat/beret +/datum/gear/beret name = "Black beret" + category = slot_head path = /obj/item/clothing/head/beret/black -/datum/gear/hat/flatcap +/datum/gear/flatcap name = "Flat cap" + category = slot_head path = /obj/item/clothing/head/flatcap -/datum/gear/hat/pirate +/datum/gear/pirate name = "Pirate hat" + category = slot_head path = /obj/item/clothing/head/pirate -/datum/gear/hat/rice_hat +/datum/gear/rice_hat name = "Rice hat" + category = slot_head path = /obj/item/clothing/head/rice_hat -/datum/gear/hat/ushanka +/datum/gear/ushanka name = "Ushanka" + category = slot_head path = /obj/item/clothing/head/ushanka -/datum/gear/hat/slime +/datum/gear/slime name = "Slime hat" + category = slot_head path = /obj/item/clothing/head/collectable/slime -/datum/gear/hat/fedora +/datum/gear/fedora name = "Fedora" + category = slot_head path = /obj/item/clothing/head/fedora -/datum/gear/hat/that +/datum/gear/that name = "Top Hat" + category = slot_head path = /obj/item/clothing/head/that -/datum/gear/hat/navy - subtype_path = datum/gear/hat/navy - subtype_cost_overlap = FALSE - sort_category = "Job Specific Headwear" - -/datum/gear/hat/navy/bluehosberet - name = "Head of security's Navy beret" - path = /obj/item/clothing/head/beret/sec/navyhos - restricted_roles = list("Head of Security") - -/datum/gear/hat/navy/blueofficerberet - name = "Security officer's Navyblue beret" - path = /obj/item/clothing/head/beret/sec/navyofficer - restricted_roles = list("Security Officer") - -/datum/gear/hat/navy/bluewardenberet - name = "Warden's navyblue beret" - path = /obj/item/clothing/head/beret/sec/navywarden - restricted_roles = list("Warden") - //trek fancy Hats! -/datum/gear/hat/navy/trekcap +/datum/gear/trekcap name = "Federation Officer's Cap" + category = slot_head path = /obj/item/clothing/head/caphat/formal/fedcover restricted_roles = list("Captain","Head of Personnel") -/datum/gear/hat/navy/trekcap/medisci +/datum/gear/trekcapmedisci name = "Federation Officer's Cap" + category = slot_head path = /obj/item/clothing/head/caphat/formal/fedcover/medsci restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/hat/navy/trekcap/eng +/datum/gear/trekcapeng name = "Federation Officer's Cap" + category = slot_head path = /obj/item/clothing/head/caphat/formal/fedcover/eng restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") -/datum/gear/hat/navy/trekcap/sec +/datum/gear/trekcapsec name = "Federation Officer's Cap" + category = slot_head path = /obj/item/clothing/head/caphat/formal/fedcover/sec - restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") + restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/loadout.dm b/modular_citadel/code/modules/client/loadout/loadout.dm index 7db13f5a3e..86efc6dc5b 100644 --- a/modular_citadel/code/modules/client/loadout/loadout.dm +++ b/modular_citadel/code/modules/client/loadout/loadout.dm @@ -3,55 +3,9 @@ // slot_to_string(slot) proc in hippiestation/code/_HELPERS/mobs.dm to show the category name in preferences menu) and path (the actual item path). // description defaults to the path initial desc, cost defaults to 1 point but if you think your item requires more points, the framework allows that // and lastly, restricted_roles list allows you to let someone spawn with certain items only if the job they spawned with is on the list. -GLOBAL_LIST_EMPTY(loadout_catagories) + GLOBAL_LIST_EMPTY(loadout_items) -/datum/loadout_category - var/category = "" - var/list/gear = list() - var/donor_only = FALSE - -/datum/loadout_category/New(cat) - category = cat - ..() - -/proc/initialize_global_loadout_items() - LAZYINITLIST(GLOB.loadout_items) - //create a list of gear datums to sort - for(var/geartype in subtypesof(/datum/gear)) - var/datum/gear/G = geartype - - var/use_name = initial(G.name) - var/use_category = initial(G.sort_category) - - if(G == initial(G.subtype_path)) - continue - - if(!use_name) - error("Loadout - Missing display name: [G]") - continue - if(!initial(G.cost)) - error("Loadout - Missing cost: [G]") - continue - if(!initial(G.path)) - error("Loadout - Missing path definition: [G]") - continue - - if(!GLOB.loadout_catagories[use_category]) - GLOB.loadout_catagories[use_category] = new /datum/loadout_category(use_category) - var/datum/loadout_category/LC = GLOB.loadout_catagories[use_category] - if(initial(G.donor_only)) - LC.donor_only = TRUE - GLOB.loadout_items[use_name] = new geartype - LC.gear[use_name] = GLOB.loadout_items[use_name] - - GLOB.loadout_catagories = sortAssoc(loadout_catagories) - for(var/loadout_category in GLOB.loadout_catagories) - var/datum/loadout_category/LC = GLOB.loadout_catagories[loadout_category] - LC.gear = sortAssoc(LC.gear) - return 1 - -/* /proc/initialize_global_loadout_items() LAZYINITLIST(GLOB.loadout_items) for(var/item in subtypesof(/datum/gear)) @@ -59,41 +13,19 @@ GLOBAL_LIST_EMPTY(loadout_items) if(!GLOB.loadout_items[slot_to_string(I.category)]) LAZYINITLIST(GLOB.loadout_items[slot_to_string(I.category)]) LAZYSET(GLOB.loadout_items[slot_to_string(I.category)], I.name, I) -*/ + /datum/gear var/name - var/slot + var/category var/description var/path //item-to-spawn path var/cost = 1 //normally, each loadout costs a single point. var/list/restricted_roles var/list/ckeywhitelist - var/sort_category = "General" - var/list/gear_tweaks = list() //List of datums which will alter the item after it has been spawned. - var/subtype_path = /datum/gear //for skipping organizational subtypes (optional) - var/subtype_cost_overlap = TRUE //if subtypes can take points at the same time - var/donor_only = FALSE // if it's only available to donors /datum/gear/New() ..() if(!description && path) var/obj/O = path description = initial(O.desc) - -/datum/gear_data - var/path - var/location - -/datum/gear_data/New(npath, nlocation) - path = npath - location = nlocation - -/datum/gear/proc/spawn_item(location, metadata) - var/datum/gear_data/gd = new(path, location) - for(var/datum/gear_tweak/gt in gear_tweaks) - gt.tweak_gear_data(metadata["[gt]"], gd) - var/item = new gd.path(gd.location) - for(var/datum/gear_tweak/gt in gear_tweaks) - gt.tweak_item(item, metadata["[gt]"]) - return item \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/loadout_accessories.dm b/modular_citadel/code/modules/client/loadout/loadout_accessories.dm deleted file mode 100644 index 458cc8ec85..0000000000 --- a/modular_citadel/code/modules/client/loadout/loadout_accessories.dm +++ /dev/null @@ -1,170 +0,0 @@ - -/datum/gear/accessory - subtype_path = /datum/gear/accessory - slot = slot_in_backpack - sort_category = "Accessories" - -/datum/gear/accessory/cane - name = "Cane" - path = /obj/item/cane - -/datum/gear/accessory/cigarettes - name = "Cigarette pack" - path = /obj/item/storage/fancy/cigarettes - -/datum/gear/accessory/dice - name = "Dice bag" - path = /obj/item/storage/pill_bottle/dice -/datum/gear/accessory/eightball - name = "Magic eightball" - path = /obj/item/toy/eightball - -/datum/gear/accessory/matches - name = "Matchbox" - path = /obj/item/storage/box/matches - -/datum/gear/accessory/cheaplighter - name = "Cheap lighter" - path = /obj/item/lighter/greyscale - -/datum/gear/accessory/cards - name = "Playing cards" - path = /obj/item/toy/cards/deck - -/datum/gear/accessory/skub - name = "Skub" - path = /obj/item/skub - -/datum/gear/accessory/carpplushie - name = "Space carp plushie" - path = /obj/item/toy/plush/carpplushie - -/datum/gear/accessory/wallet - name = "Wallet" - path = /obj/item/storage/wallet - -/datum/gear/accessory/flask - name = "Flask" - path = /obj/item/reagent_containers/food/drinks/flask - cost = 2 - -/datum/gear/accessory/zippolighter - name = "Zippo Lighter" - path = /obj/item/lighter - cost = 2 - -/datum/gear/accessory/stethoscope - name = "Stethoscope" - slot = slot_neck - path = /obj/item/clothing/neck/stethoscope - restricted_roles = list("Medical Doctor", "Chief Medical Officer") - -/datum/gear/accessory/plush - subtype_path = /datum/gear/accessory/plush - sort_category = "Toys" - -/datum/gear/accessory/plush/plushvar - name = "Ratvar Plushie" - path = /obj/item/toy/plush/plushvar - cost = 5 - restricted_roles = list("Chaplain") - -/datum/gear/accessory/plush/narplush - name = "Narsie Plushie" - path = /obj/item/toy/plush/narplush - cost = 5 - restricted_roles = list("Chaplain") - -/datum/gear/accessory/plush/plushcarp - name = "Space carp plushie" - path = /obj/item/toy/plush/carpplushie - -/datum/gear/accessory/plush/plushliz - name = "Lizard plushie" - path = /obj/item/toy/plush/lizardplushie - -/datum/gear/accessory/plush/plushsnek - name = "Snake plushie" - path = /obj/item/toy/plush/snakeplushie - -/datum/gear/accessory/plush/plushslime - name = "Slime plushie" - path = /obj/item/toy/plush/slimeplushie - -/datum/gear/accessory/plush/dildo - name = "Customizable dildo" - path = /obj/item/dildo/custom - -/datum/gear/accessory/tie - subtype_path = /datum/gear/accessory/tie - slot = slot_neck - subtype_cost_overlap = FALSE - sort_category = "Neckwear" - -/datum/gear/accessory/tie/bluetie - name = "Blue tie" - path = /obj/item/clothing/neck/tie/blue - -/datum/gear/accessory/tie/redtie - name = "Red tie" - path = /obj/item/clothing/neck/tie/red - -/datum/gear/accessory/tie/blacktie - name = "Black tie" - path = /obj/item/clothing/neck/tie/black - -/datum/gear/accessory/tie/collar - name = "Collar" - path = /obj/item/clothing/neck/petcollar - -/datum/gear/accessory/tie/scarf - name = "White scarf" - path = /obj/item/clothing/neck/scarf - -/datum/gear/accessory/tie/blackscarf - name = "Black scarf" - path = /obj/item/clothing/neck/scarf/black - -/datum/gear/accessory/tie/redscarf - name = "Red scarf" - path = /obj/item/clothing/neck/scarf/red - -/datum/gear/accessory/tie/greenscarf - name = "Green scarf" - path = /obj/item/clothing/neck/scarf/green - -/datum/gear/accessory/tie/darkbluescarf - name = "Dark blue scarf" - path = /obj/item/clothing/neck/scarf/darkblue - -/datum/gear/accessory/tie/purplescarf - name = "Purple scarf" - path = /obj/item/clothing/neck/scarf/purple - -/datum/gear/accessory/tie/yellowscarf - name = "Yellow scarf" - path = /obj/item/clothing/neck/scarf/yellow - -/datum/gear/accessory/tie/orangescarf - name = "Orange scarf" - path = /obj/item/clothing/neck/scarf/orange - -/datum/gear/accessory/tie/cyanscarf - name = "Cyan scarf" - path = /obj/item/clothing/neck/scarf/cyan - -/datum/gear/accessory/tie/stripedredscarf - name = "Striped red scarf" - path = /obj/item/clothing/neck/stripedredscarf - -/datum/gear/accessory/tie/stripedbluescarf - name = "Striped blue scarf" - path = /obj/item/clothing/neck/stripedbluescarf - -/datum/gear/accessory/tie/stripedgreenscarf - name = "Striped green scarf" - path = /obj/item/clothing/neck/stripedgreenscarf - -/datum/gear/accessory/tie/headphones - name = "Headphones" - path = /obj/item/clothing/ears/headphones diff --git a/modular_citadel/code/modules/client/loadout/loadout_cosmetics.dm b/modular_citadel/code/modules/client/loadout/loadout_cosmetics.dm deleted file mode 100644 index 889818e53e..0000000000 --- a/modular_citadel/code/modules/client/loadout/loadout_cosmetics.dm +++ /dev/null @@ -1,47 +0,0 @@ -/datum/gear/cosmetics - sort_category = "Cosmetics" - subtype_path = /datum/gear/accessory - -/datum/gear/cosmetics/glasses - slot = slot_glasses - -/datum/gear/cosmetics/glasses/cold - name = "Cold goggles" - path = /obj/item/clothing/glasses/cold - -/datum/gear/cosmetics/glasses/eyepatch - name = "Eyepatch" - path = /obj/item/clothing/glasses/eyepatch - -/datum/gear/cosmetics/glasses/heat - name = "Heat goggles" - path = /obj/item/clothing/glasses/heat - -datum/gear/cosmetics/glasses/hipster - name = "Hipster glasses" - path = /obj/item/clothing/glasses/regular/hipster - -datum/gear/cosmetics/glasses/jamjar - name = "Jamjar glasses" - path = /obj/item/clothing/glasses/regular/jamjar - -datum/gear/cosmetics/glasses/monocle - name = "Monocle" - path = /obj/item/clothing/glasses/monocle - -datum/gear/cosmetics/glasses/orange - name = "Orange glasses" - path = /obj/item/clothing/glasses/orange - -datum/gear/cosmetics/glasses/red - name = "Red Glasses" - path = /obj/item/clothing/glasses/red - -datum/gear/cosmetics/glasses/prescription - name = "Prescription glasses" - path = /obj/item/clothing/glasses/regular - -datum/gear/cosmetics/glasses/sechud - name = "Security Hud" - path = /obj/item/clothing/glasses/hud/security - restricted_roles = list("Security Officer", "Warden", "Head of Security") diff --git a/modular_citadel/code/modules/client/loadout/loadout_gloves.dm b/modular_citadel/code/modules/client/loadout/loadout_gloves.dm deleted file mode 100644 index 083e40ec90..0000000000 --- a/modular_citadel/code/modules/client/loadout/loadout_gloves.dm +++ /dev/null @@ -1,8 +0,0 @@ -/datum/gear/gloves - subtype_path = /datum/gear/gloves - slot = slot_gloves - sort_category = "Gloves" - -/datum/gear/gloves/fingerless - name = "Fingerless Gloves" - path = /obj/item/clothing/gloves/fingerless \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm new file mode 100644 index 0000000000..839502d99c --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -0,0 +1,4 @@ +/datum/gear/balaclava + name = "Balaclava" + category = slot_wear_mask + path = /obj/item/clothing/mask/balaclava diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm new file mode 100644 index 0000000000..5e1e0017fe --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -0,0 +1,84 @@ +/datum/gear/bluetie + name = "Blue tie" + category = slot_neck + path = /obj/item/clothing/neck/tie/blue + +/datum/gear/redtie + name = "Red tie" + category = slot_neck + path = /obj/item/clothing/neck/tie/red + +/datum/gear/blacktie + name = "Black tie" + category = slot_neck + path = /obj/item/clothing/neck/tie/black + +/datum/gear/collar + name = "Collar" + category = slot_neck + path = /obj/item/clothing/neck/petcollar + +/datum/gear/scarf + name = "White scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf + +/datum/gear/blackscarf + name = "Black scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/black + +/datum/gear/redscarf + name = "Red scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/red + +/datum/gear/greenscarf + name = "Green scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/green + +/datum/gear/darkbluescarf + name = "Dark blue scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/darkblue + +/datum/gear/purplescarf + name = "Purple scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/purple + +/datum/gear/yellowscarf + name = "Yellow scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/yellow + +/datum/gear/orangescarf + name = "Orange scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/orange + +/datum/gear/cyanscarf + name = "Cyan scarf" + category = slot_neck + path = /obj/item/clothing/neck/scarf/cyan + +/datum/gear/stripedredscarf + name = "Striped red scarf" + category = slot_neck + path = /obj/item/clothing/neck/stripedredscarf + +/datum/gear/stripedbluescarf + name = "Striped blue scarf" + category = slot_neck + path = /obj/item/clothing/neck/stripedbluescarf + +/datum/gear/stripedgreenscarf + name = "Striped green scarf" + category = slot_neck + path = /obj/item/clothing/neck/stripedgreenscarf + +/datum/gear/headphones + name = "Headphones" + category = slot_neck + path = /obj/item/clothing/ears/headphones diff --git a/modular_citadel/code/modules/client/loadout/loadout_shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm similarity index 59% rename from modular_citadel/code/modules/client/loadout/loadout_shoes.dm rename to modular_citadel/code/modules/client/loadout/shoes.dm index 379b65ace0..0d233c3a5e 100644 --- a/modular_citadel/code/modules/client/loadout/loadout_shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -1,37 +1,39 @@ - -/datum/gear/shoes/shoes - subtype_path = /datum/gear/shoes/shoes - slot = slot_shoes - sort_category = "Shoes" - -/datum/gear/shoes/laceup +/datum/gear/laceup name = "Laceup shoes" + category = slot_shoes path = /obj/item/clothing/shoes/laceup -/datum/gear/shoes/workboots +/datum/gear/workboots name = "Work boots" + category = slot_shoes path = /obj/item/clothing/shoes/workboots -/datum/gear/shoes/jackboots +/datum/gear/jackboots name = "Jackboots" + category = slot_shoes path = /obj/item/clothing/shoes/jackboots -/datum/gear/shoes/winterboots +/datum/gear/winterboots name = "Winter boots" + category = slot_shoes path = /obj/item/clothing/shoes/winterboots -/datum/gear/shoes/sandals +/datum/gear/sandals name = "Sandals" + category = slot_shoes path = /obj/item/clothing/shoes/sandal -/datum/gear/shoes/blackshoes +/datum/gear/blackshoes name = "Black shoes" + category = slot_shoes path = /obj/item/clothing/shoes/sneakers/black -/datum/gear/shoes/brownshoes +/datum/gear/brownshoes name = "Brown shoes" + category = slot_shoes path = /obj/item/clothing/shoes/sneakers/brown -/datum/gear/shoes/whiteshoes +/datum/gear/whiteshoes name = "White shoes" + category = slot_shoes path = /obj/item/clothing/shoes/sneakers/white diff --git a/modular_citadel/code/modules/client/loadout/loadout_suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm similarity index 61% rename from modular_citadel/code/modules/client/loadout/loadout_suit.dm rename to modular_citadel/code/modules/client/loadout/suit.dm index 40bc6fcf4d..941da5c29f 100644 --- a/modular_citadel/code/modules/client/loadout/loadout_suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -1,115 +1,102 @@ -/datum/gear/suit/suit - subtype_path = /datum/gear/suit/suit - slot = slot_wear_suit - cost = 2 - sort_category = "External Wear" - -/datum/gear/suit/poncho +/datum/gear/poncho name = "Poncho" + category = slot_wear_suit path = /obj/item/clothing/suit/poncho -/datum/gear/suit/ponchogreen +/datum/gear/ponchogreen name = "Green poncho" + category = slot_wear_suit path = /obj/item/clothing/suit/poncho/green -/datum/gear/suit/ponchored +/datum/gear/ponchored name = "Red poncho" + category = slot_wear_suit path = /obj/item/clothing/suit/poncho/red -/datum/gear/suit/jacketbomber +/datum/gear/jacketbomber name = "Bomber jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket -/datum/gear/suit/jacketleather +/datum/gear/jacketleather name = "Leather jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/leather -/datum/gear/suit/overcoatleather +/datum/gear/overcoatleather name = "Leather overcoat" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/leather/overcoat -/datum/gear/suit/jacketpuffer +/datum/gear/jacketpuffer name = "Puffer jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/puffer -/datum/gear/suit/vestpuffer +/datum/gear/vestpuffer name = "Puffer vest" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/puffer/vest -/datum/gear/suit/jacketlettermanbrown +/datum/gear/jacketlettermanbrown name = "Brown letterman jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman -/datum/gear/suit/jacketlettermanred +/datum/gear/jacketlettermanred name = "Red letterman jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman_red -/datum/gear/suit/jacketlettermanNT +/datum/gear/jacketlettermanNT name = "Nanotrasen letterman jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman_nanotrasen -/datum/gear/suit/coat +/datum/gear/coat name = "Winter coat" + category = slot_wear_suit path = /obj/item/clothing/suit/hooded/wintercoat -/datum/gear/suit/militaryjacket +/datum/gear/militaryjacket name = "Military Jacket" + category = slot_wear_suit path = /obj/item/clothing/suit/jacket/miljacket -/datum/gear/suit/ianshirt +/datum/gear/ianshirt name = "Ian Shirt" + category = slot_wear_suit path = /obj/item/clothing/suit/ianshirt -//Job Coats -/datum/gear/suit/job - subtype_path = /datum/gear/suit/job - subtype_cost_overlap = FALSE - sort_category = "Job Specific Coats" - -/datum/gear/suit/job/sec/navybluejackethos - name = "head of security's navyblue jacket" - path = /obj/item/clothing/suit/security/hos - restricted_roles = list("Head of Security") - -/datum/gear/suit/job/sec/navybluejacketofficer - name = "security officer's navyblue jacket" - path = /obj/item/clothing/suit/security/officer - restricted_roles = list("Security Officer") - -/datum/gear/suit/job/sec/navybluejacketwarden - name = "warden navyblue jacket" - path = /obj/item/clothing/suit/security/warden - restricted_roles = list("Warden") - -//Trek Coats -/datum/gear/suit/trek - subtype_path = /datum/gear/suit/trek - subtype_cost_overlap = FALSE - sort_category = "Trek Coats" - -/datum/gear/suit/trek/ds9_coat - name = "DS9 Overcoat" +/datum/gear/trekds9_coat + name = "DS9 Overcoat (use uniform)" + category = slot_wear_suit path = /obj/item/clothing/suit/storage/trek/ds9 restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster", "Medical Doctor","Chemist","Virologist","Geneticist","Scientist", "Roboticist", "Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer", "Cargo Technician", "Shaft Miner") //everyone who actually deserves a job. -/datum/gear/suit/trek/cap +//Federation jackets from movies +/datum/gear/trekcmdcap name = "fed (movie) uniform, Captain" + category = slot_wear_suit path = /obj/item/clothing/suit/storage/fluff/fedcoat/capt restricted_roles = list("Captain","Head of Personnel") -/datum/gear/suit/trek/sec +/datum/gear/trekcmdmov name = "fed (movie) uniform, sec" + category = slot_wear_suit path = /obj/item/clothing/suit/storage/fluff/fedcoat restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster","Warden","Detective","Security Officer") -/datum/gear/suit/trek/medsci +/datum/gear/trekmedscimov name = "fed (movie) uniform, med/sci" + category = slot_wear_suit path = /obj/item/clothing/suit/storage/fluff/fedcoat/medsci restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/suit/trek/eng +/datum/gear/trekengmov name = "fed (movie) uniform, ops/eng" + category = slot_wear_suit path = /obj/item/clothing/suit/storage/fluff/fedcoat/eng restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Cargo Technician", "Shaft Miner", "Quartermaster") \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/loadout_uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm similarity index 63% rename from modular_citadel/code/modules/client/loadout/loadout_uniform.dm rename to modular_citadel/code/modules/client/loadout/uniform.dm index 9aff13e707..acb2b4e13c 100644 --- a/modular_citadel/code/modules/client/loadout/loadout_uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -1,240 +1,220 @@ -// Uniform slot -/datum/gear/uniform - subtype_path = /datum/gear/uniform - slot = slot_w_uniform - cost = 2 - sort_category = "Uniforms and Casual Dress" - -/datum/gear/uniform/turtleneck - name = "Tactitool Turtleneck" - path = /obj/item/clothing/under/syndicate/cosmetic - -/datum/gear/uniform/suitblack +/datum/gear/suitblack name = "Black suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket -/datum/gear/uniform/suitgreen +/datum/gear/suitgreen name = "Green suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/green -/datum/gear/uniform/suitred +/datum/gear/suitred name = "Red suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/red -/datum/gear/uniform/suitcharcoal +/datum/gear/suitcharcoal name = "Charcoal suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/charcoal -/datum/gear/uniform/suitnavy +/datum/gear/suitnavy name = "Navy suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/navy -/datum/gear/uniform/suitburgundy +/datum/gear/suitburgundy name = "Burgundy suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/burgundy -/datum/gear/uniform/suittan +/datum/gear/suittan name = "Tan suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/tan -/datum/gear/uniform/suitwhite +/datum/gear/suitwhite name = "White suit" + category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/white -/datum/gear/uniform/assistantformal +/datum/gear/assistantformal name = "Assistant's formal uniform" + category = slot_w_uniform path = /obj/item/clothing/under/assistantformal -/datum/gear/uniform/maidcostume +/datum/gear/maidcostume name = "Maid costume" + category = slot_w_uniform path = /obj/item/clothing/under/maid -/datum/gear/uniform/mailmanuniform +/datum/gear/mailmanuniform name = "Mailman's jumpsuit" + category = slot_w_uniform path = /obj/item/clothing/under/rank/mailman -/datum/gear/uniform/skirt - subtype_path = /datum/gear/uniform/skirt - subtype_cost_overlap = FALSE - -/datum/gear/uniform/skirt/black +/datum/gear/skirtblack name = "Black skirt" + category = slot_w_uniform path = /obj/item/clothing/under/skirt/black -/datum/gear/uniform/skirt/blue +/datum/gear/skirtblue name = "Blue skirt" + category = slot_w_uniform path = /obj/item/clothing/under/skirt/blue -/datum/gear/uniform/skirt/red +/datum/gear/skirtred name = "Red skirt" + category = slot_w_uniform path = /obj/item/clothing/under/skirt/red -/datum/gear/uniform/skirt/purple +/datum/gear/skirtpurple name = "Purple skirt" + category = slot_w_uniform path = /obj/item/clothing/under/skirt/purple -/datum/gear/uniform/skirt/kilt +/datum/gear/kilt name = "Kilt" + category = slot_w_uniform path = /obj/item/clothing/under/kilt -/datum/gear/uniform/pants - subtype_path = /datum/gear/uniform/pants - sort_category = "Pants" - -/datum/gear/uniform/pants/camoshorts +/datum/gear/camoshorts name = "Camo Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/camo -/datum/gear/uniform/pants/bjeans +/datum/gear/bjeans name = "Black Jeans" + category = slot_w_uniform path = /obj/item/clothing/under/pants/blackjeans -/datum/gear/uniform/pants/cjeans +/datum/gear/cjeans name = "Classic Jeans" + category = slot_w_uniform path = /obj/item/clothing/under/pants/classicjeans -/datum/gear/uniform/pants/khaki +/datum/gear/khaki name = "Khaki Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/khaki -/datum/gear/uniform/pants/wpants +/datum/gear/wpants name = "White Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/white -/datum/gear/uniform/pants/rpants +/datum/gear/rpants name = "Red Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/red -/datum/gear/uniform/pants/tpants +/datum/gear/tpants name = "Tan Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/tan -/datum/gear/uniform/pants/trpants +/datum/gear/trpants name = "Track Pants" + category = slot_w_uniform path = /obj/item/clothing/under/pants/track -/datum/gear/uniform/job - subtype_path = /datum/gear/uniform/job - subtype_cost_overlap = FALSE - sort_category = "Job Specific Uniformss" +/datum/gear/turtleneck + name = "Tactitool Turtleneck" + category = slot_w_uniform + path = /obj/item/clothing/under/syndicate/cosmetic -/datum/gear/uniform/job/sec - subtype_path = /datum/gear/uniform/job/sec - -/datum/gear/uniform/job/sec/navyblueuniformhos - name = "Head of Security navyblue uniform" - path = /obj/item/clothing/under/rank/head_of_security/navyblue - restricted_roles = list("Head of Security") - -/datum/gear/uniform/job/sec/navyblueuniformofficer - name = "security officer navyblue uniform" - path = /obj/item/clothing/under/rank/security/navyblue - restricted_roles = list("Security officer") - -/datum/gear/uniform/job/sec/navyblueuniformwarden - name = "Warden navyblue uniform" - path = /obj/item/clothing/under/rank/warden/navyblue - restricted_roles = list("Warden") - -/datum/gear/uniform/job/sec/secskirt - name = "Security skirt" - path = /obj/item/clothing/under/rank/security/skirt - restricted_roles = list("Security Officer", "Warden", "Head of Security") - -/datum/gear/uniform/job/sec/hosskirt - name = "Head of security's skirt" - path = /obj/item/clothing/under/rank/head_of_security/skirt - restricted_roles = list("Head of Security") - // Trekie things -/datum/gear/uniform/trek - sort_category = "Trek Uniforms" - subtype_path = /datum/gear/uniform/trek - subtype_cost_overlap = FALSE - -/datum/gear/uniform/trek/cmd - subtype_path = /datum/gear/uniform/trek/cmd -/datum/gear/uniform/trek/medsci - subtype_path = /datum/gear/uniform/trek/medsci -/datum/gear/uniform/trek/eng - subtype_path = /datum/gear/uniform/trek/eng - //TOS -/datum/gear/uniform/trek/cmd/tos +/datum/gear/trekcmdtos name = "TOS uniform, cmd" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/command restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster") -/datum/gear/uniform/trek/medsci/tos +/datum/gear/trekmedscitos name = "TOS uniform, med/sci" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/medsci restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/uniform/trek/eng/tos +/datum/gear/trekengtos name = "TOS uniform, ops/sec" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/engsec restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") //TNG -/datum/gear/uniform/trek/cmd/tng +/datum/gear/trekcmdtng name = "TNG uniform, cmd" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/command/next restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster") -/datum/gear/uniform/trek/medsci/tng +/datum/gear/trekmedscitng name = "TNG uniform, med/sci" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/medsci/next restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/uniform/trek/eng/tng +/datum/gear/trekengtng name = "TNG uniform, ops/sec" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/engsec/next restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") //VOY -/datum/gear/uniform/trek/cmd/voy +/datum/gear/trekcmdvoy name = "VOY uniform, cmd" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/command/voy restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster") -/datum/gear/uniform/trek/medsci/voy +/datum/gear/trekmedscivoy name = "VOY uniform, med/sci" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/medsci/voy restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/uniform/trek/eng/voy +/datum/gear/trekengvoy name = "VOY uniform, ops/sec" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/engsec/voy restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") //DS9 -/datum/gear/uniform/trek/cmd/ds9 +/datum/gear/trekcmdds9 name = "DS9 uniform, cmd" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/command/ds9 restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster") -/datum/gear/uniform/trek/medsci/ds9 +/datum/gear/trekmedscids9 name = "DS9 uniform, med/sci" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/medsci/ds9 restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/uniform/trek/eng/ds9 +/datum/gear/trekengds9 name = "DS9 uniform, ops/sec" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/engsec/ds9 restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") //ENT -/datum/gear/uniform/trek/cmd/ent +/datum/gear/trekcmdent name = "ENT uniform, cmd" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/command/ent restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster") -/datum/gear/uniform/trek/medsci/ent +/datum/gear/trekmedscient name = "ENT uniform, med/sci" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/medsci/ent restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") -/datum/gear/uniform/trek/eng/ent +/datum/gear/trekengent name = "ENT uniform, ops/sec" + category = slot_w_uniform path = /obj/item/clothing/under/rank/trek/engsec/ent restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index aba6f6b3dc..b515264320 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -3,7 +3,11 @@ #define BACKPACK_SLOT_AMT 4 /datum/preferences - + //gear + var/gear_points = 10 + var/list/gear_categories + var/list/chosen_gear + var/gear_tab //pref vars var/screenshake = 100 @@ -257,7 +261,58 @@ . += "Egg Size:[features["eggsack_egg_size"]]\" Diameter" . += "" */ - . += "" + . += "" + + if(current_tab == 3) + if(!gear_tab) + gear_tab = GLOB.loadout_items[1] + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + . += "" + for(var/j in GLOB.loadout_items[gear_tab]) + var/datum/gear/gear = GLOB.loadout_items[gear_tab][j] + var/donoritem + if(gear.ckeywhitelist && gear.ckeywhitelist.len) + donoritem = TRUE + if(user && user.client && user.client.ckey && !(gear.ckeywhitelist.Find(user.client.ckey))) + continue + var/class_link = "" + if(gear.type in chosen_gear) + class_link = "class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=0'" + else if(donoritem) + class_link = "class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" + else if(gear_points <= 0) + class_link = "class='linkOff'" + else + class_link = "href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" + . += "" + . += "" + . += "
[gear_points] loadout points remaining. \[Clear Loadout\]
You can only choose one item per category, unless it's an item that spawns in your backpack or hands.
" + var/firstcat = TRUE + for(var/i in GLOB.loadout_items) + if(firstcat) + firstcat = FALSE + else + . += " |" + if(i == gear_tab) + . += " [i] " + else + . += " [i] " + . += "

[gear_tab]

NameCostRestrictionsDescription
[j][gear.cost]" + if(islist(gear.restricted_roles)) + if(gear.restricted_roles.len) + . += "" + . += gear.restricted_roles.Join(";") + . += "" + . += "[gear.description]
" /datum/preferences/proc/process_citadel_prefs(mob/user, list/href_list) if(href_list["task"] == "input") @@ -671,6 +726,35 @@ else user << "Invalid color. Your color is not bright enough." + if(href_list["preference"] == "gear") + if(href_list["clear_loadout"]) + LAZYCLEARLIST(chosen_gear) + gear_points = initial(gear_points) + save_preferences() + if(href_list["select_category"]) + for(var/i in GLOB.loadout_items) + if(i == href_list["select_category"]) + gear_tab = i + if(href_list["toggle_gear_path"]) + var/datum/gear/G = GLOB.loadout_items[gear_tab][href_list["toggle_gear_path"]] + if(!G) + return + var/toggle = text2num(href_list["toggle_gear"]) + if(!toggle && (G.type in chosen_gear))//toggling off and the item effectively is in chosen gear) + LAZYREMOVE(chosen_gear, G.type) + gear_points += initial(G.cost) + else if(toggle && (!(is_type_in_ref_list(G, chosen_gear)))) + if(G.ckeywhitelist && G.ckeywhitelist.len && !(user.ckey in G.ckeywhitelist)) + to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") + return + if(!is_loadout_slot_available(G.category)) + to_chat(user, "You cannot take this loadout, as you've already chosen too many of the same category!") + return + if(gear_points >= initial(G.cost)) + LAZYADD(chosen_gear, G.type) + gear_points -= initial(G.cost) + + /datum/preferences/proc/is_loadout_slot_available(slot) var/list/L LAZYINITLIST(L) diff --git a/tgstation.dme b/tgstation.dme index 16c163bde1..f79ca52b3c 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2681,16 +2681,21 @@ #include "modular_citadel\code\modules\client\preferences.dm" #include "modular_citadel\code\modules\client\preferences_savefile.dm" #include "modular_citadel\code\modules\client\preferences_toggles.dm" -#include "modular_citadel\code\modules\client\loadout\gear_tweaks.dm" +#include "modular_citadel\code\modules\client\loadout\__donator.dm" +#include "modular_citadel\code\modules\client\loadout\_medical.dm" +#include "modular_citadel\code\modules\client\loadout\_security.dm" +#include "modular_citadel\code\modules\client\loadout\_service.dm" +#include "modular_citadel\code\modules\client\loadout\backpack.dm" +#include "modular_citadel\code\modules\client\loadout\glasses.dm" +#include "modular_citadel\code\modules\client\loadout\gloves.dm" +#include "modular_citadel\code\modules\client\loadout\hands.dm" +#include "modular_citadel\code\modules\client\loadout\head.dm" #include "modular_citadel\code\modules\client\loadout\loadout.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_accessories.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_cosmetics.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_donator.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_gloves.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_hat.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_shoes.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_suit.dm" -#include "modular_citadel\code\modules\client\loadout\loadout_uniform.dm" +#include "modular_citadel\code\modules\client\loadout\mask.dm" +#include "modular_citadel\code\modules\client\loadout\neck.dm" +#include "modular_citadel\code\modules\client\loadout\shoes.dm" +#include "modular_citadel\code\modules\client\loadout\suit.dm" +#include "modular_citadel\code\modules\client\loadout\uniform.dm" #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm" #include "modular_citadel\code\modules\clothing\suits\suits.dm"