diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index aed56772363..d09174c8d72 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -615,7 +615,7 @@ jobs += "" //Other races (Blue) ... And also graffiti. - var/list/misc_roles = list("Dionaea", "Graffiti") + var/list/misc_roles = list("Dionaea", "Graffiti", "Custom loadout") jobs += "Other Roles" for(var/entry in misc_roles) if(jobban_isbanned(M, entry)) diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm index 71af8715a5b..8d9206b64ca 100644 --- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm +++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm @@ -141,6 +141,74 @@ . = valid_reagents[metadata] I.reagents.add_reagent(., I.reagents.get_free_space()) +//Custom name and desciption code +//note to devs downstream: where 'gear_tweaks = list(gear_tweak_free_color_choice)' was used before for color selection +//in the loadout, now 'gear_tweaks += gear_tweak_free_color_choice' will need to be used, otherwise the item will not +// be able to be given a custom name or description +/* +Custom Name +*/ + +var/datum/gear_tweak/custom_name/gear_tweak_free_name = new() + +/datum/gear_tweak/custom_name + var/list/valid_custom_names + +/datum/gear_tweak/custom_name/New(var/list/valid_custom_names) + src.valid_custom_names = valid_custom_names + ..() + +/datum/gear_tweak/custom_name/get_contents(var/metadata) + return "Name: [metadata]" + +/datum/gear_tweak/custom_name/get_default() + return "" + +/datum/gear_tweak/custom_name/get_metadata(var/user, var/metadata) + if(jobban_isbanned(user, "Custom loadout")) + to_chat(user, SPAN_WARNING("You are banned from using custom loadout names/descriptions.")) + return + if(valid_custom_names) + return input(user, "Choose an item name.", "Character Preference", metadata) as null|anything in valid_custom_names + return sanitize(input(user, "Choose the item's name. Leave it blank to use the default name.", "Item Name", metadata) as text|null, MAX_LNAME_LEN, extra = 0) + +/datum/gear_tweak/custom_name/tweak_item(var/obj/item/I, var/metadata) + if(!metadata) + return I.name + I.name = metadata + +/* +Custom Description +*/ +var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new() + +/datum/gear_tweak/custom_desc + var/list/valid_custom_desc + +/datum/gear_tweak/custom_desc/New(var/list/valid_custom_desc) + src.valid_custom_desc = valid_custom_desc + ..() + +/datum/gear_tweak/custom_desc/get_contents(var/metadata) + return "Description: [metadata]" + +/datum/gear_tweak/custom_desc/get_default() + return "" + +/datum/gear_tweak/custom_desc/get_metadata(var/user, var/metadata) + if(jobban_isbanned(user, "Custom loadout")) + to_chat(user, SPAN_WARNING("You are banned from using custom loadout names/descriptions.")) + return + if(valid_custom_desc) + return input(user, "Choose an item description.", "Character Preference", metadata) as null|anything in valid_custom_desc + return sanitize(input(user, "Choose the item's description. Leave it blank to use the default description.", "Item Description", metadata) as message|null, extra = 0) + +/datum/gear_tweak/custom_desc/tweak_item(var/obj/item/I, var/metadata) + if(!metadata) + return I.desc + I.desc = metadata + +//end of custom description /datum/gear_tweak/tablet var/list/ValidProcessors = list(/obj/item/weapon/computer_hardware/processor_unit/small) diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index ae7826511d8..c91b2314c89 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -261,6 +261,7 @@ var/list/gear_datums = list() if(!description) var/obj/O = path description = initial(O.desc) + gear_tweaks = list(gear_tweak_free_name, gear_tweak_free_desc) /datum/gear_data var/path diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index ae44cfaa124..d367caeb40e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -24,7 +24,7 @@ /datum/gear/accessory/armband/colored/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/wallet display_name = "wallet, orange" @@ -43,7 +43,7 @@ /datum/gear/accessory/wallet/womens/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/clutch display_name = "clutch bag" @@ -52,7 +52,7 @@ /datum/gear/accessory/clutch/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/purse display_name = "purse" @@ -61,7 +61,7 @@ /datum/gear/accessory/purse/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/wcoat display_name = "waistcoat selection" @@ -122,7 +122,7 @@ /datum/gear/accessory/scarfcolor/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/jacket display_name = "suit jacket selection" @@ -270,7 +270,7 @@ /datum/gear/accessory/sash/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/asym display_name = "asymmetric jacket selection" diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index 4b4f979ef56..542348fec4d 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -126,7 +126,7 @@ /datum/gear/towel/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/cahwhite display_name = "Cards Against The Galaxy (white deck)" diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index b72549e8669..2564b8d98e5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -62,7 +62,7 @@ /datum/gear/gloves/evening/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/gloves/duty display_name = "gloves, work" diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 4a6437cea1d..366b54f81a0 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -119,7 +119,7 @@ /datum/gear/head/cap/white/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/cap/mbill display_name = "cap, bill" @@ -155,7 +155,7 @@ /datum/gear/head/hairflower/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/pin display_name = "pin selection" @@ -229,7 +229,7 @@ /datum/gear/head/hijab/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/kippa display_name = "kippa" @@ -237,7 +237,7 @@ /datum/gear/head/kippa/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/turban display_name = "turban" @@ -245,7 +245,7 @@ /datum/gear/head/turban/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/taqiyah display_name = "taqiyah" @@ -253,7 +253,7 @@ /datum/gear/head/taqiyah/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/kitty display_name = "kitty ears" @@ -269,7 +269,7 @@ /datum/gear/head/beanie/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/loose_beanie display_name = "loose beanie" @@ -277,7 +277,7 @@ /datum/gear/head/loose_beanie/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/beretg display_name = "beret" @@ -285,7 +285,7 @@ /datum/gear/head/beretg/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/sombrero display_name = "sombrero" @@ -297,7 +297,7 @@ /datum/gear/head/flatcapg/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/bow/small display_name = "hair bow, small (colorable)" @@ -305,7 +305,7 @@ /datum/gear/head/bow/small/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/head/welding/ display_name = "welding, normal (engineering/robotics)" diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm index d5e7caeae5b..b6795dfebe6 100644 --- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm @@ -95,7 +95,7 @@ /datum/gear/shoes/flipflops/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/athletic display_name = "athletic shoes" @@ -103,7 +103,7 @@ /datum/gear/shoes/athletic/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/skater display_name = "skater shoes" @@ -111,7 +111,7 @@ /datum/gear/shoes/skater/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/flats display_name = "flats" @@ -119,7 +119,7 @@ /datum/gear/shoes/flats/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/cowboy display_name = "cowboy boots" @@ -157,7 +157,7 @@ /datum/gear/shoes/heels/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/slippers display_name = "bunny slippers" diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 6b88dc2be51..55a04eecf72 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -12,7 +12,7 @@ /datum/gear/suit/apron_white/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/greatcoat display_name = "greatcoat" @@ -104,7 +104,7 @@ datum/gear/suit/duster /datum/gear/suit/duster/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/hazard_vest display_name = "hazard vest selection" @@ -290,7 +290,7 @@ datum/gear/suit/duster /datum/gear/suit/roles/poncho/cloak/custom/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/unathi_robe display_name = "roughspun robe" @@ -437,7 +437,7 @@ datum/gear/suit/duster /datum/gear/suit/miscellaneous/kimono/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/miscellaneous/sec_dep_jacket display_name = "department jacket, security" @@ -465,7 +465,7 @@ datum/gear/suit/duster /datum/gear/suit/miscellaneous/peacoat/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/miscellaneous/kamishimo display_name = "kamishimo" @@ -511,4 +511,4 @@ datum/gear/suit/duster /datum/gear/suit/miscellaneous/cardigan/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) \ No newline at end of file + gear_tweaks += gear_tweak_free_color_choice \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index de508edd701..818d55e252e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -351,7 +351,7 @@ /datum/gear/uniform/shortplaindress/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/longdress display_name = "long dress" @@ -359,7 +359,7 @@ /datum/gear/uniform/longdress/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/longwidedress display_name = "long wide dress" @@ -367,7 +367,7 @@ /datum/gear/uniform/longwidedress/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/reddress display_name = "red dress with belt" @@ -456,7 +456,7 @@ /datum/gear/uniform/yogapants/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/black_corset display_name = "black corset" @@ -512,7 +512,7 @@ /datum/gear/uniform/pleated/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/lilacdress display_name = "lilac dress" diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 40fe71a0872..c60cdf5e15f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -167,7 +167,7 @@ /datum/gear/utility/wheelchair/color/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/utility/umbrella display_name = "Umbrella" @@ -176,7 +176,7 @@ /datum/gear/utility/umbrella/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /**************** modular computers diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm index 995352e708b..7124b553376 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm @@ -80,7 +80,7 @@ /datum/gear/ears/skrell/colored/band/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/ears/skrell/colored/chain display_name = "Colored chain (Skrell)" @@ -90,7 +90,7 @@ /datum/gear/ears/skrell/colored/chain/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/smock display_name = "smock selection (Teshari)" @@ -147,7 +147,7 @@ /datum/gear/shoes/footwraps/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/cohesionsuits display_name = "cohesion suit selection (Promethean)" @@ -358,7 +358,7 @@ /datum/gear/uniform/smockcolor/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/uniform/undercoatcolor display_name = "undercoat, recolorable (Teshari)" @@ -368,7 +368,7 @@ /datum/gear/uniform/undercoatcolor/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/cloakcolor display_name = "cloak, recolorable (Teshari)" @@ -378,7 +378,7 @@ /datum/gear/suit/cloakcolor/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/labcoat_tesh display_name = "labcoat, colorable (Teshari)" path = /obj/item/clothing/suit/storage/toggle/labcoat/teshari @@ -387,7 +387,7 @@ /datum/gear/suit/labcoat_tesh/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/teshcoat display_name = "small black coat, recolorable stripes (Teshari)" @@ -397,7 +397,8 @@ /datum/gear/suit/teshcoat/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/teshcoatwhite display_name = "smallcoat, recolorable (Teshari)" @@ -407,7 +408,7 @@ /datum/gear/suit/teshcoatwhite/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/accessory/teshneckscarf display_name = "neckscarf, recolorable (Teshari)" @@ -417,7 +418,7 @@ /datum/gear/accessory/teshneckscarf/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/shoes/toelessjack display_name = "toe-less jackboots"