diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index 2a7c07d0cdd..ea78bcc0d55 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -67,6 +67,8 @@ CREATE TABLE `characters` ( `organ_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `rlimb_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `nanotrasen_relation` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `physique` varchar(45) NULL DEFAULT NULL COLLATE utf8mb4_unicode_ci, + `height` varchar(45) NULL DEFAULT NULL COLLATE utf8mb4_unicode_ci, `speciesprefs` int(1) NOT NULL, `socks` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `body_accessory` longtext COLLATE utf8mb4_unicode_ci NOT NULL, diff --git a/SQL/updates/52-53.sql b/SQL/updates/52-53.sql new file mode 100644 index 00000000000..f0bcbc9b64d --- /dev/null +++ b/SQL/updates/52-53.sql @@ -0,0 +1,6 @@ +# Updating SQL from 52 to 53 -Octus +# Add characther descriptors of height and build to preference menu + +ALTER TABLE `characters` + ADD COLUMN `physique` VARCHAR(45) NULL DEFAULT NULL AFTER `nanotrasen_relation`, + ADD COLUMN `height` VARCHAR(45) NULL DEFAULT NULL AFTER `physique`; diff --git a/code/_globalvars/misc_globals.dm b/code/_globalvars/misc_globals.dm index bcbaa4ac54b..08ad1d0ee60 100644 --- a/code/_globalvars/misc_globals.dm +++ b/code/_globalvars/misc_globals.dm @@ -56,3 +56,8 @@ GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ GLOBAL_LIST_INIT(mod_themes, setup_mod_themes()) GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/atmospherics/supermatter_crystal) + +///Global list for descriptors +GLOBAL_LIST_INIT(character_physiques, list("rail thin", "thin", "average", "well-built", "muscular", "overweight")) + +GLOBAL_LIST_INIT(character_heights, list("very short", "short", "average height", "tall", "very tall")) diff --git a/code/modules/client/login_processing/20-load_characters.dm b/code/modules/client/login_processing/20-load_characters.dm index aea96b26dda..f22512e75e9 100644 --- a/code/modules/client/login_processing/20-load_characters.dm +++ b/code/modules/client/login_processing/20-load_characters.dm @@ -58,7 +58,9 @@ hair_gradient_offset, hair_gradient_colour, hair_gradient_alpha, - custom_emotes + custom_emotes, + physique, + height FROM characters WHERE ckey=:ckey"}, list( "ckey" = C.ckey )) diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm index ce9f80838f7..2532e1d3235 100644 --- a/code/modules/client/preference/character.dm +++ b/code/modules/client/preference/character.dm @@ -79,6 +79,10 @@ var/nanotrasen_relation = "Neutral" + var/physique = "average" + + var/height = "average height" + // OOC Metadata: var/metadata = "" @@ -176,6 +180,8 @@ organ_data=:organlist, rlimb_data=:rlimblist, nanotrasen_relation=:nanotrasen_relation, + physique=:physique, + height=:height, speciesprefs=:speciesprefs, socks=:socks, body_accessory=:body_accessory, @@ -233,6 +239,8 @@ "organlist" = (organlist ? organlist : ""), "rlimblist" = (rlimblist ? rlimblist : ""), "nanotrasen_relation" = nanotrasen_relation, + "physique" = physique, + "height" = height, "speciesprefs" = speciesprefs, "socks" = socks, "body_accessory" = (body_accessory ? body_accessory : ""), @@ -281,7 +289,7 @@ sec_record, gen_record, player_alt_titles, - disabilities, organ_data, rlimb_data, nanotrasen_relation, speciesprefs, + disabilities, organ_data, rlimb_data, nanotrasen_relation, physique, height, speciesprefs, socks, body_accessory, gear, autohiss, hair_gradient, hair_gradient_offset, hair_gradient_colour, hair_gradient_alpha, custom_emotes) VALUES @@ -308,7 +316,7 @@ :sec_record, :gen_record, :playertitlelist, - :disabilities, :organlist, :rlimblist, :nanotrasen_relation, :speciesprefs, + :disabilities, :organlist, :rlimblist, :nanotrasen_relation, :physique, :height, :speciesprefs, :socks, :body_accessory, :gearlist, :autohiss_mode, :h_grad_style, :h_grad_offset, :h_grad_colour, :h_grad_alpha, :custom_emotes) "}, list( @@ -359,6 +367,8 @@ "organlist" = (organlist ? organlist : ""), "rlimblist" = (rlimblist ? rlimblist : ""), "nanotrasen_relation" = nanotrasen_relation, + "physique" = physique, + "height" = height, "speciesprefs" = speciesprefs, "socks" = socks, "body_accessory" = (body_accessory ? body_accessory : ""), @@ -454,6 +464,8 @@ h_grad_colour = query.item[53] h_grad_alpha = query.item[54] var/custom_emotes_tmp = query.item[55] + physique = query.item[56] + height = query.item[57] //Sanitize var/datum/species/SP = GLOB.all_species[species] @@ -474,6 +486,12 @@ if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation) + if(isnull(physique)) + physique = initial(physique) + + if(isnull(height)) + height = initial(height) + if(isnull(speciesprefs)) speciesprefs = initial(speciesprefs) @@ -1778,6 +1796,8 @@ character.dna.real_name = real_name character.name = character.real_name + character.physique = physique + character.height = height character.flavor_text = flavor_text character.med_record = med_record character.sec_record = sec_record diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm index 9eeda3ef7cd..9fe48e522a1 100644 --- a/code/modules/client/preference/link_processing.dm +++ b/code/modules/client/preference/link_processing.dm @@ -700,6 +700,16 @@ if(new_relation) active_character.nanotrasen_relation = new_relation + if("physique") + var/new_physique = input(user, "Choose your descriptor for how built your character is on glance.", "Character Preference") as null|anything in GLOB.character_physiques + if(new_physique) + active_character.physique = new_physique + + if("height") + var/new_height = input(user, "Choose your descriptor for how tall your character is on glance.", "Character Preference") as null|anything in GLOB.character_heights + if(new_height) + active_character.height = new_height + if("flavor_text") var/msg = input(usr,"Set the flavor text in your 'examine' verb. The flavor text should be a physical descriptor of your character at a glance. SFW Drawn Art of your character is acceptable.","Flavor Text",html_decode(active_character.flavor_text)) as message diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index f6397708b1c..5d93a6c1c99 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -223,6 +223,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts dat += "Skin Tone: [S.bodyflags & HAS_ICON_SKIN_TONE ? "[active_character.s_tone]" : "[-active_character.s_tone + 35]/220"]
" dat += "Disabilities: \[Set\]
" dat += "Nanotrasen Relation: [active_character.nanotrasen_relation]
" + dat += "Physique: [active_character.physique]
" + dat += "Height: [active_character.height]
" dat += "Set Flavor Text
" if(length(active_character.flavor_text) <= 40) if(!length(active_character.flavor_text)) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d6b74d07a08..74113625e2e 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -21,6 +21,10 @@ var/lip_color = "white" var/age = 30 //Player's age (pure fluff) + /// Players' height (more fluff) + var/height = "average height" + /// Players physique (even MORE fluff) + var/physique = "average" var/underwear = "Nude" //Which underwear the player wants var/undershirt = "Nude" //Which undershirt the player wants diff --git a/code/modules/mob/living/carbon/human/human_examine.dm b/code/modules/mob/living/carbon/human/human_examine.dm index 508c33a00c3..645bf2164a3 100644 --- a/code/modules/mob/living/carbon/human/human_examine.dm +++ b/code/modules/mob/living/carbon/human/human_examine.dm @@ -57,15 +57,7 @@ else if(displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural msg += ", a slime person!" else - // do all this extra stuff because byond's text macros get confused by whatever comes between the species name and the article, - // so we can't just do \a - var/article_override = dna?.species.article_override - var/article = article_override - if(!article_override) - article = starts_with_vowel(displayed_species) ? "an" : "a" - - msg += ", [article] [lowertext(displayed_species)]!" - + msg += ", \a [height] [lowertext(displayed_species)] with \a [physique] physique!" //Look I know it uses physique twice, lets not think about it too much ok? return msg /mob/living/carbon/human/examine_start_damage_block(skip_gloves = FALSE, skip_suit_storage = FALSE, skip_jumpsuit = FALSE, skip_shoes = FALSE, skip_mask = FALSE, skip_ears = FALSE, skip_eyes = FALSE, skip_face = FALSE)