From 74538d383eba4a4db2de4fb8e7c4397de465c204 Mon Sep 17 00:00:00 2001 From: Greenjoe12345 Date: Mon, 31 Aug 2020 01:20:59 +0100 Subject: [PATCH] adds the ability to give loadout items a custom name/description --- code/modules/admin/topic.dm | 2 +- .../preference_setup/loadout/gear_tweaks.dm | 68 +++++++++++++++++++ .../preference_setup/loadout/loadout.dm | 1 + .../loadout/loadout_accessories.dm | 12 ++-- .../loadout/loadout_general.dm | 2 +- .../loadout/loadout_gloves.dm | 2 +- .../preference_setup/loadout/loadout_head.dm | 22 +++--- .../preference_setup/loadout/loadout_shoes.dm | 10 +-- .../preference_setup/loadout/loadout_suit.dm | 12 ++-- .../loadout/loadout_uniform.dm | 10 +-- .../loadout/loadout_utility.dm | 4 +- .../preference_setup/loadout/loadout_xeno.dm | 20 +++--- 12 files changed, 117 insertions(+), 48 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 4f9ef69353..45065d0a72 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -594,7 +594,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 71af8715a5..8d9206b64c 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 c87ddcd1c4..73dbcc2e3e 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -246,6 +246,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 b84d91e8d2..84ab99557e 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" @@ -40,7 +40,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" @@ -49,7 +49,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" @@ -58,7 +58,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" @@ -119,7 +119,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" @@ -265,7 +265,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 4b4f979ef5..542348fec4 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 b72549e866..2564b8d98e 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 4a6437cea1..366b54f81a 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 d5e7caeae5..b6795dfebe 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 57f3c1cb6e..cd2ce4aa94 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" @@ -288,7 +288,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" @@ -435,7 +435,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" @@ -463,7 +463,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" @@ -509,4 +509,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 0cfa68b46c..fd2486240d 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -347,7 +347,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" @@ -355,7 +355,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" @@ -363,7 +363,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" @@ -452,7 +452,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" @@ -508,7 +508,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 cf6f8c2ab8..2fc5b7d0a2 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -165,7 +165,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" @@ -174,7 +174,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 dc222014ef..eabf443bef 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,7 @@ /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 +407,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,4 +417,4 @@ /datum/gear/accessory/teshneckscarf/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