diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 824f5b3e61..211f47d59b 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" - -//#define COLOR_WHITE "#EEEEEE" -//#define COLOR_SILVER "#C0C0C0" -//#define COLOR_GRAY "#808080" +//CITADEL EDIT - why the fuck are colors commented out??? +#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 846cb1b26a..52d43a6501 100644 --- a/code/__HELPERS/text_vr.dm +++ b/code/__HELPERS/text_vr.dm @@ -24,4 +24,26 @@ GLOBAL_LIST_EMPTY(whitelisted_species_list) /proc/log_mentor(text) GLOB.mentorlog.Add(text) - GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]" \ No newline at end of file + 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 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0b21646a4b..5fe17f566f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -127,6 +127,14 @@ 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() @@ -515,7 +523,66 @@ 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) @@ -533,6 +600,25 @@ 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 @@ -1423,6 +1509,41 @@ 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/_medical.dm b/modular_citadel/code/modules/client/loadout/_medical.dm deleted file mode 100644 index e8c8ea453d..0000000000 --- a/modular_citadel/code/modules/client/loadout/_medical.dm +++ /dev/null @@ -1,5 +0,0 @@ -/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 deleted file mode 100644 index 304e99f311..0000000000 --- a/modular_citadel/code/modules/client/loadout/_security.dm +++ /dev/null @@ -1,71 +0,0 @@ -/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 deleted file mode 100644 index 56345e9185..0000000000 --- a/modular_citadel/code/modules/client/loadout/_service.dm +++ /dev/null @@ -1,13 +0,0 @@ -/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 deleted file mode 100644 index 2779d6f124..0000000000 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ /dev/null @@ -1,24 +0,0 @@ -/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 new file mode 100644 index 0000000000..31ffcbf29c --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/gear_tweaks.dm @@ -0,0 +1,113 @@ +/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 deleted file mode 100644 index b1e6068a9e..0000000000 --- a/modular_citadel/code/modules/client/loadout/glasses.dm +++ /dev/null @@ -1,44 +0,0 @@ -/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 deleted file mode 100644 index ec67fbc0ec..0000000000 --- a/modular_citadel/code/modules/client/loadout/gloves.dm +++ /dev/null @@ -1,4 +0,0 @@ -/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 deleted file mode 100644 index 94815a7243..0000000000 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ /dev/null @@ -1,61 +0,0 @@ -/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.dm b/modular_citadel/code/modules/client/loadout/loadout.dm index 86efc6dc5b..7db13f5a3e 100644 --- a/modular_citadel/code/modules/client/loadout/loadout.dm +++ b/modular_citadel/code/modules/client/loadout/loadout.dm @@ -3,9 +3,55 @@ // 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)) @@ -13,19 +59,41 @@ 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/category + var/slot 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 new file mode 100644 index 0000000000..458cc8ec85 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/loadout_accessories.dm @@ -0,0 +1,170 @@ + +/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 new file mode 100644 index 0000000000..889818e53e --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/loadout_cosmetics.dm @@ -0,0 +1,47 @@ +/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/__donator.dm b/modular_citadel/code/modules/client/loadout/loadout_donator.dm similarity index 66% rename from modular_citadel/code/modules/client/loadout/__donator.dm rename to modular_citadel/code/modules/client/loadout/loadout_donator.dm index 69015b064d..21dc9ccbb6 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/loadout_donator.dm @@ -1,224 +1,223 @@ //This is the file that handles donator loadout items. -/datum/gear/pingcoderfailsafe +/datum/gear/donor + donor_only = TRUE + sort_category = "Donor" + subtype_path = /datum/gear/donor + +/datum/gear/donor/pingcoderfailsafe name = "IF YOU SEE THIS, PING A CODER RIGHT NOW!" - category = slot_in_backpack + slot = 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/donortestingbikehorn +/datum/gear/donor/donortestingbikehorn name = "Donor item testing bikehorn" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/bikehorn - ckeywhitelist = list("jayehh","deathride58") + ckeywhitelist = list("jayehh","deathride58","poojawa") -/datum/gear/kevhorn +/datum/gear/donor/kevhorn name = "Airhorn" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/bikehorn/airhorn ckeywhitelist = list("kevinz000") -/datum/gear/cebusoap +/datum/gear/donor/cebusoap name = "Cebutris' soap" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/custom/ceb_soap ckeywhitelist = list("cebutris") -/datum/gear/kiaracloak +/datum/gear/donor/kiaracloak name = "Kiara's cloak" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/cloak/inferno ckeywhitelist = list("inferno707") -/datum/gear/kiaracollar +/datum/gear/donor/kiaracollar name = "Kiara's collar" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/petcollar/inferno ckeywhitelist = list("inferno707") -/datum/gear/kiaramedal +/datum/gear/donor/kiaramedal name = "Insignia of Steele" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/clothing/accessory/medal/steele ckeywhitelist = list("inferno707") -/datum/gear/sexymimemask +/datum/gear/donor/sexymimemask name = "The hollow heart" - category = slot_wear_mask + slot = slot_wear_mask path = /obj/item/clothing/mask/sexymime ckeywhitelist = list("inferno707") -/datum/gear/engravedzippo +/datum/gear/donor/engravedzippo name = "Engraved zippo" - category = slot_hands + slot = slot_hands path = /obj/item/lighter/gold ckeywhitelist = list("dirtyoldharry") -/datum/gear/geisha +/datum/gear/donor/geisha name = "Geisha suit" - category = slot_w_uniform + slot = slot_w_uniform path = /obj/item/clothing/under/geisha ckeywhitelist = list("atiefling") -/datum/gear/specialscarf +/datum/gear/donor/specialscarf name = "Special scarf" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/scarf/zomb ckeywhitelist = list("zombierobin") -/datum/gear/redmadcoat +/datum/gear/donor/redmadcoat name = "The Mad's labcoat" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/suit/toggle/labcoat/mad/red ckeywhitelist = list("zombierobin") -/datum/gear/santahat +/datum/gear/donor/santahat name = "Santa hat" - category = slot_head + slot = slot_head path = /obj/item/clothing/head/santa/fluff ckeywhitelist = list("illotafv") -/datum/gear/reindeerhat +/datum/gear/donor/reindeerhat name = "Reindeer hat" - category = slot_head + slot = slot_head path = /obj/item/clothing/head/hardhat/reindeer/fluff ckeywhitelist = list("illotafv") -/datum/gear/treeplushie +/datum/gear/donor/treeplushie name = "Christmas tree plushie" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/toy/plush/tree ckeywhitelist = list("illotafv") -/datum/gear/santaoutfit +/datum/gear/donor/santaoutfit name = "Santa costume" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/suit/space/santa/fluff ckeywhitelist = list("illotafv") -/datum/gear/treecloak +/datum/gear/donor/treecloak name = "Christmas tree cloak" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/cloak/festive ckeywhitelist = list("illotafv") -/datum/gear/carrotplush +/datum/gear/donor/carrotplush name = "Carrot plushie" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/toy/plush/carrot ckeywhitelist = list("improvedname") -/datum/gear/carrotcloak +/datum/gear/donor/carrotcloak name = "Carrot cloak" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/cloak/carrot ckeywhitelist = list("improvedname") -/datum/gear/albortorosamask +/datum/gear/donor/albortorosamask name = "Alborto Rosa mask" - category = slot_wear_mask + slot = slot_wear_mask path = /obj/item/clothing/mask/luchador/zigfie ckeywhitelist = list("zigfie") -/datum/gear/mankini +/datum/gear/donor/mankini name = "Mankini" - category = slot_w_uniform + slot = slot_w_uniform path = /obj/item/clothing/under/mankini ckeywhitelist = list("zigfie") -/datum/gear/pinkshoes +/datum/gear/donor/pinkshoes name = "Pink shoes" - category = slot_shoes + slot = slot_shoes path = /obj/item/clothing/shoes/sneakers/pink ckeywhitelist = list("zigfie") -/datum/gear/reecesgreatcoat +/datum/gear/donor/reecesgreatcoat name = "Reece's Great Coat" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/suit/trenchcoat/green ckeywhitelist = list("geemiesif") -/datum/gear/russianflask +/datum/gear/donor/russianflask name = "Russian flask" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/reagent_containers/food/drinks/flask/russian cost = 2 ckeywhitelist = list("slomka") -/datum/gear/stalkermask +/datum/gear/donor/stalkermask name = "S.T.A.L.K.E.R. mask" - category = slot_wear_mask + slot = slot_wear_mask path = /obj/item/clothing/mask/gas/stalker ckeywhitelist = list("slomka") -/datum/gear/stripedcollar +/datum/gear/donor/stripedcollar name = "Striped collar" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/petcollar/stripe ckeywhitelist = list("jademanique") -/datum/gear/performersoutfit +/datum/gear/donor/performersoutfit name = "Bluish performer's outfit" - category = slot_w_uniform + slot = slot_w_uniform path = /obj/item/clothing/under/singery/custom ckeywhitelist = list("killer402402") -/datum/gear/vermillion +/datum/gear/donor/vermillion name = "Vermillion clothing" - category = slot_w_uniform + slot = slot_w_uniform path = /obj/item/clothing/suit/vermillion ckeywhitelist = list("fractious") -/datum/gear/AM4B +/datum/gear/donor/AM4B name = "Foam Force AM4-B" - category = slot_in_backpack + slot = slot_in_backpack path = /obj/item/gun/ballistic/automatic/AM4B ckeywhitelist = list("zeronetalpha") -/datum/gear/carrotsatchel +/datum/gear/donor/carrotsatchel name = "Carrot Satchel" - category = slot_hands + slot = slot_hands path = /obj/item/storage/backpack/satchel/carrot ckeywhitelist = list("improvedname") -/datum/gear/naomisweater +/datum/gear/donor/naomisweater name = "worn black sweater" - category = slot_w_uniform + slot = slot_w_uniform path = /obj/item/clothing/under/bb_sweater/black/naomi ckeywhitelist = list("technicalmagi") -/datum/gear/naomicollar +/datum/gear/donor/naomicollar name = "worn pet collar" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/petcollar/naomi ckeywhitelist = list("technicalmagi") -/datum/gear/gladiator +/datum/gear/donor/gladiator name = "Gladiator Armor" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/under/gladiator ckeywhitelist = list("aroche") -/datum/gear/bloodredtie +/datum/gear/donor/bloodredtie name = "Blood Red Tie" - category = slot_neck + slot = slot_neck path = /obj/item/clothing/neck/tie/bloodred ckeywhitelist = list("kyutness") -/datum/gear/puffydress +/datum/gear/donor/puffydress name = "Puffy Dress" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/suit/puffydress //ckeywhitelist = //Don't know their ckey yet -/datum/gear/labredblack +/datum/gear/donor/labredblack name = "Black and Red Coat" - category = slot_wear_suit + slot = slot_wear_suit path = /obj/item/clothing/suit/toggle/labcoat/labredblack ckeywhitelist = list("blakeryan") - - - - - - diff --git a/modular_citadel/code/modules/client/loadout/loadout_gloves.dm b/modular_citadel/code/modules/client/loadout/loadout_gloves.dm new file mode 100644 index 0000000000..083e40ec90 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/loadout_gloves.dm @@ -0,0 +1,8 @@ +/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/head.dm b/modular_citadel/code/modules/client/loadout/loadout_hat.dm similarity index 56% rename from modular_citadel/code/modules/client/loadout/head.dm rename to modular_citadel/code/modules/client/loadout/loadout_hat.dm index 168debf2cc..11ba3c6de4 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/loadout_hat.dm @@ -1,74 +1,91 @@ -/datum/gear/baseball +/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 name = "Ballcap" - category = slot_head path = /obj/item/clothing/head/soft/mime -/datum/gear/beanie +/datum/gear/hat/beanie name = "Beanie" - category = slot_head path = /obj/item/clothing/head/beanie -/datum/gear/beret +/datum/gear/hat/beret name = "Black beret" - category = slot_head path = /obj/item/clothing/head/beret/black -/datum/gear/flatcap +/datum/gear/hat/flatcap name = "Flat cap" - category = slot_head path = /obj/item/clothing/head/flatcap -/datum/gear/pirate +/datum/gear/hat/pirate name = "Pirate hat" - category = slot_head path = /obj/item/clothing/head/pirate -/datum/gear/rice_hat +/datum/gear/hat/rice_hat name = "Rice hat" - category = slot_head path = /obj/item/clothing/head/rice_hat -/datum/gear/ushanka +/datum/gear/hat/ushanka name = "Ushanka" - category = slot_head path = /obj/item/clothing/head/ushanka -/datum/gear/slime +/datum/gear/hat/slime name = "Slime hat" - category = slot_head path = /obj/item/clothing/head/collectable/slime -/datum/gear/fedora +/datum/gear/hat/fedora name = "Fedora" - category = slot_head path = /obj/item/clothing/head/fedora -/datum/gear/that +/datum/gear/hat/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/trekcap +/datum/gear/hat/navy/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/trekcapmedisci +/datum/gear/hat/navy/trekcap/medisci 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/trekcapeng +/datum/gear/hat/navy/trekcap/eng 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/trekcapsec +/datum/gear/hat/navy/trekcap/sec 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") \ No newline at end of file + 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/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/loadout_shoes.dm similarity index 59% rename from modular_citadel/code/modules/client/loadout/shoes.dm rename to modular_citadel/code/modules/client/loadout/loadout_shoes.dm index 0d233c3a5e..379b65ace0 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/loadout_shoes.dm @@ -1,39 +1,37 @@ -/datum/gear/laceup + +/datum/gear/shoes/shoes + subtype_path = /datum/gear/shoes/shoes + slot = slot_shoes + sort_category = "Shoes" + +/datum/gear/shoes/laceup name = "Laceup shoes" - category = slot_shoes path = /obj/item/clothing/shoes/laceup -/datum/gear/workboots +/datum/gear/shoes/workboots name = "Work boots" - category = slot_shoes path = /obj/item/clothing/shoes/workboots -/datum/gear/jackboots +/datum/gear/shoes/jackboots name = "Jackboots" - category = slot_shoes path = /obj/item/clothing/shoes/jackboots -/datum/gear/winterboots +/datum/gear/shoes/winterboots name = "Winter boots" - category = slot_shoes path = /obj/item/clothing/shoes/winterboots -/datum/gear/sandals +/datum/gear/shoes/sandals name = "Sandals" - category = slot_shoes path = /obj/item/clothing/shoes/sandal -/datum/gear/blackshoes +/datum/gear/shoes/blackshoes name = "Black shoes" - category = slot_shoes path = /obj/item/clothing/shoes/sneakers/black -/datum/gear/brownshoes +/datum/gear/shoes/brownshoes name = "Brown shoes" - category = slot_shoes path = /obj/item/clothing/shoes/sneakers/brown -/datum/gear/whiteshoes +/datum/gear/shoes/whiteshoes name = "White shoes" - category = slot_shoes path = /obj/item/clothing/shoes/sneakers/white diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/loadout_suit.dm similarity index 61% rename from modular_citadel/code/modules/client/loadout/suit.dm rename to modular_citadel/code/modules/client/loadout/loadout_suit.dm index 941da5c29f..40bc6fcf4d 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/loadout_suit.dm @@ -1,102 +1,115 @@ -/datum/gear/poncho +/datum/gear/suit/suit + subtype_path = /datum/gear/suit/suit + slot = slot_wear_suit + cost = 2 + sort_category = "External Wear" + +/datum/gear/suit/poncho name = "Poncho" - category = slot_wear_suit path = /obj/item/clothing/suit/poncho -/datum/gear/ponchogreen +/datum/gear/suit/ponchogreen name = "Green poncho" - category = slot_wear_suit path = /obj/item/clothing/suit/poncho/green -/datum/gear/ponchored +/datum/gear/suit/ponchored name = "Red poncho" - category = slot_wear_suit path = /obj/item/clothing/suit/poncho/red -/datum/gear/jacketbomber +/datum/gear/suit/jacketbomber name = "Bomber jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket -/datum/gear/jacketleather +/datum/gear/suit/jacketleather name = "Leather jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/leather -/datum/gear/overcoatleather +/datum/gear/suit/overcoatleather name = "Leather overcoat" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/leather/overcoat -/datum/gear/jacketpuffer +/datum/gear/suit/jacketpuffer name = "Puffer jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/puffer -/datum/gear/vestpuffer +/datum/gear/suit/vestpuffer name = "Puffer vest" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/puffer/vest -/datum/gear/jacketlettermanbrown +/datum/gear/suit/jacketlettermanbrown name = "Brown letterman jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman -/datum/gear/jacketlettermanred +/datum/gear/suit/jacketlettermanred name = "Red letterman jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman_red -/datum/gear/jacketlettermanNT +/datum/gear/suit/jacketlettermanNT name = "Nanotrasen letterman jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/letterman_nanotrasen -/datum/gear/coat +/datum/gear/suit/coat name = "Winter coat" - category = slot_wear_suit path = /obj/item/clothing/suit/hooded/wintercoat -/datum/gear/militaryjacket +/datum/gear/suit/militaryjacket name = "Military Jacket" - category = slot_wear_suit path = /obj/item/clothing/suit/jacket/miljacket -/datum/gear/ianshirt +/datum/gear/suit/ianshirt name = "Ian Shirt" - category = slot_wear_suit path = /obj/item/clothing/suit/ianshirt -/datum/gear/trekds9_coat - name = "DS9 Overcoat (use uniform)" - category = slot_wear_suit +//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" 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. -//Federation jackets from movies -/datum/gear/trekcmdcap +/datum/gear/suit/trek/cap 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/trekcmdmov +/datum/gear/suit/trek/sec 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/trekmedscimov +/datum/gear/suit/trek/medsci 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/trekengmov +/datum/gear/suit/trek/eng 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/uniform.dm b/modular_citadel/code/modules/client/loadout/loadout_uniform.dm similarity index 63% rename from modular_citadel/code/modules/client/loadout/uniform.dm rename to modular_citadel/code/modules/client/loadout/loadout_uniform.dm index acb2b4e13c..9aff13e707 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/loadout_uniform.dm @@ -1,220 +1,240 @@ -/datum/gear/suitblack - name = "Black suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket +// Uniform slot +/datum/gear/uniform + subtype_path = /datum/gear/uniform + slot = slot_w_uniform + cost = 2 + sort_category = "Uniforms and Casual Dress" -/datum/gear/suitgreen - name = "Green suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/green - -/datum/gear/suitred - name = "Red suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/red - -/datum/gear/suitcharcoal - name = "Charcoal suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/charcoal - -/datum/gear/suitnavy - name = "Navy suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/navy - -/datum/gear/suitburgundy - name = "Burgundy suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/burgundy - -/datum/gear/suittan - name = "Tan suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/tan - -/datum/gear/suitwhite - name = "White suit" - category = slot_w_uniform - path = /obj/item/clothing/under/suit_jacket/white - -/datum/gear/assistantformal - name = "Assistant's formal uniform" - category = slot_w_uniform - path = /obj/item/clothing/under/assistantformal - -/datum/gear/maidcostume - name = "Maid costume" - category = slot_w_uniform - path = /obj/item/clothing/under/maid - -/datum/gear/mailmanuniform - name = "Mailman's jumpsuit" - category = slot_w_uniform - path = /obj/item/clothing/under/rank/mailman - -/datum/gear/skirtblack - name = "Black skirt" - category = slot_w_uniform - path = /obj/item/clothing/under/skirt/black - -/datum/gear/skirtblue - name = "Blue skirt" - category = slot_w_uniform - path = /obj/item/clothing/under/skirt/blue - -/datum/gear/skirtred - name = "Red skirt" - category = slot_w_uniform - path = /obj/item/clothing/under/skirt/red - -/datum/gear/skirtpurple - name = "Purple skirt" - category = slot_w_uniform - path = /obj/item/clothing/under/skirt/purple - -/datum/gear/kilt - name = "Kilt" - category = slot_w_uniform - path = /obj/item/clothing/under/kilt - -/datum/gear/camoshorts - name = "Camo Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/camo - -/datum/gear/bjeans - name = "Black Jeans" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/blackjeans - -/datum/gear/cjeans - name = "Classic Jeans" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/classicjeans - -/datum/gear/khaki - name = "Khaki Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/khaki - -/datum/gear/wpants - name = "White Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/white - -/datum/gear/rpants - name = "Red Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/red - -/datum/gear/tpants - name = "Tan Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/tan - -/datum/gear/trpants - name = "Track Pants" - category = slot_w_uniform - path = /obj/item/clothing/under/pants/track - -/datum/gear/turtleneck +/datum/gear/uniform/turtleneck name = "Tactitool Turtleneck" - category = slot_w_uniform path = /obj/item/clothing/under/syndicate/cosmetic +/datum/gear/uniform/suitblack + name = "Black suit" + path = /obj/item/clothing/under/suit_jacket + +/datum/gear/uniform/suitgreen + name = "Green suit" + path = /obj/item/clothing/under/suit_jacket/green + +/datum/gear/uniform/suitred + name = "Red suit" + path = /obj/item/clothing/under/suit_jacket/red + +/datum/gear/uniform/suitcharcoal + name = "Charcoal suit" + path = /obj/item/clothing/under/suit_jacket/charcoal + +/datum/gear/uniform/suitnavy + name = "Navy suit" + path = /obj/item/clothing/under/suit_jacket/navy + +/datum/gear/uniform/suitburgundy + name = "Burgundy suit" + path = /obj/item/clothing/under/suit_jacket/burgundy + +/datum/gear/uniform/suittan + name = "Tan suit" + path = /obj/item/clothing/under/suit_jacket/tan + +/datum/gear/uniform/suitwhite + name = "White suit" + path = /obj/item/clothing/under/suit_jacket/white + +/datum/gear/uniform/assistantformal + name = "Assistant's formal uniform" + path = /obj/item/clothing/under/assistantformal + +/datum/gear/uniform/maidcostume + name = "Maid costume" + path = /obj/item/clothing/under/maid + +/datum/gear/uniform/mailmanuniform + name = "Mailman's jumpsuit" + 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 + name = "Black skirt" + path = /obj/item/clothing/under/skirt/black + +/datum/gear/uniform/skirt/blue + name = "Blue skirt" + path = /obj/item/clothing/under/skirt/blue + +/datum/gear/uniform/skirt/red + name = "Red skirt" + path = /obj/item/clothing/under/skirt/red + +/datum/gear/uniform/skirt/purple + name = "Purple skirt" + path = /obj/item/clothing/under/skirt/purple + +/datum/gear/uniform/skirt/kilt + name = "Kilt" + path = /obj/item/clothing/under/kilt + +/datum/gear/uniform/pants + subtype_path = /datum/gear/uniform/pants + sort_category = "Pants" + +/datum/gear/uniform/pants/camoshorts + name = "Camo Pants" + path = /obj/item/clothing/under/pants/camo + +/datum/gear/uniform/pants/bjeans + name = "Black Jeans" + path = /obj/item/clothing/under/pants/blackjeans + +/datum/gear/uniform/pants/cjeans + name = "Classic Jeans" + path = /obj/item/clothing/under/pants/classicjeans + +/datum/gear/uniform/pants/khaki + name = "Khaki Pants" + path = /obj/item/clothing/under/pants/khaki + +/datum/gear/uniform/pants/wpants + name = "White Pants" + path = /obj/item/clothing/under/pants/white + +/datum/gear/uniform/pants/rpants + name = "Red Pants" + path = /obj/item/clothing/under/pants/red + +/datum/gear/uniform/pants/tpants + name = "Tan Pants" + path = /obj/item/clothing/under/pants/tan + +/datum/gear/uniform/pants/trpants + name = "Track Pants" + 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/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/trekcmdtos +/datum/gear/uniform/trek/cmd/tos 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/trekmedscitos +/datum/gear/uniform/trek/medsci/tos 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/trekengtos +/datum/gear/uniform/trek/eng/tos 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/trekcmdtng +/datum/gear/uniform/trek/cmd/tng 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/trekmedscitng +/datum/gear/uniform/trek/medsci/tng 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/trekengtng +/datum/gear/uniform/trek/eng/tng 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/trekcmdvoy +/datum/gear/uniform/trek/cmd/voy 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/trekmedscivoy +/datum/gear/uniform/trek/medsci/voy 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/trekengvoy +/datum/gear/uniform/trek/eng/voy 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/trekcmdds9 +/datum/gear/uniform/trek/cmd/ds9 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/trekmedscids9 +/datum/gear/uniform/trek/medsci/ds9 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/trekengds9 +/datum/gear/uniform/trek/eng/ds9 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/trekcmdent +/datum/gear/uniform/trek/cmd/ent 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/trekmedscient +/datum/gear/uniform/trek/medsci/ent 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/trekengent +/datum/gear/uniform/trek/eng/ent 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/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm deleted file mode 100644 index 839502d99c..0000000000 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ /dev/null @@ -1,4 +0,0 @@ -/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 deleted file mode 100644 index 5e1e0017fe..0000000000 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ /dev/null @@ -1,84 +0,0 @@ -/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/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index b515264320..aba6f6b3dc 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -3,11 +3,7 @@ #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 @@ -261,58 +257,7 @@ . += "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") @@ -726,35 +671,6 @@ 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 f79ca52b3c..16c163bde1 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2681,21 +2681,16 @@ #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\__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\gear_tweaks.dm" #include "modular_citadel\code\modules\client\loadout\loadout.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\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\verbs\who.dm" #include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm" #include "modular_citadel\code\modules\clothing\suits\suits.dm"