From 2dd9a7d544ba8297db8d1d256788ddf1f7ab3f73 Mon Sep 17 00:00:00 2001 From: Dip Date: Sat, 21 Nov 2020 05:03:33 -0300 Subject: [PATCH] Speech verbs --- code/_globalvars/lists/flavor_misc.dm | 4 +++ code/datums/dna.dm | 2 ++ code/modules/client/preferences.dm | 31 ++++++++++++++++++++- code/modules/client/preferences_savefile.dm | 7 +++++ 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 413fed1b..c6258d3f 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -198,3 +198,7 @@ GLOBAL_LIST_INIT(numbers_as_words, world.file2list("strings/numbers_as_words.txt GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings()) GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these stations are?","Stop wasting my time.","I was sleeping, thanks a lot.","Stand and fight you cowards!","You knew the risks coming in.","Stop being paranoid.","Whatever's broken just build a new one.","No.", "null","Error: No comment given.", "It's a good day to die!")) + +GLOBAL_LIST_INIT(speech_verbs, list("default", "says", "gibbers", "states", "chitters", "declares", "bellows", "buzzes" ,"beeps", "chirps" ,"hisses" ,"poofs" ,"rattles", "mewls", "barks", "blorbles", "squeaks", "squawks", "flutters")) + +GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc)) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 53581bfd..1c79a396 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -45,6 +45,7 @@ destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type destination.set_species(species.type, icon_update=0) + destination.dna.species.say_mod = species.say_mod destination.dna.features = features.Copy() destination.dna.real_name = real_name destination.dna.nameless = nameless @@ -64,6 +65,7 @@ new_dna.blood_type = blood_type new_dna.features = features.Copy() new_dna.species = new species.type + new_dna.species.say_mod = species.say_mod new_dna.real_name = real_name new_dna.nameless = nameless new_dna.custom_species = custom_species diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1a3e4e0b..94905ff6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -182,6 +182,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) /// Medical record note section var/medical_records + var/custom_speech_verb = "default" //if your say_mod is to be something other than your races + var/custom_tongue = "default" //if your tongue is to be something other than your races + var/list/custom_names = list() var/preferred_ai_core_display = "Blue" var/prefered_security_department = SEC_DEPT_RANDOM @@ -453,6 +456,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if(use_skintones || mutant_colors) dat += "" + dat += APPEARANCE_CATEGORY_COLUMN + dat += "

Speech preferences

" + dat += "Custom Speech Verb:
" + dat += "[custom_speech_verb]
" + dat += "Custom Tongue:
" + dat += "[custom_tongue]
" + if(HAIR in pref_species.species_traits) dat += APPEARANCE_CATEGORY_COLUMN @@ -2300,7 +2310,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/desiredlength = input(user, "Choose the max character length of shown Runechat messages. Valid range is 1 to [CHAT_MESSAGE_MAX_LENGTH] (default: [initial(max_chat_length)]))", "Character Preference", max_chat_length) as null|num if (!isnull(desiredlength)) max_chat_length = clamp(desiredlength, 1, CHAT_MESSAGE_MAX_LENGTH) - + if("tongue") + var/selected_custom_tongue = input(user, "Choose your desired tongue (none means your species tongue)", "Character Preference") as null|anything in GLOB.roundstart_tongues + if(selected_custom_tongue) + custom_tongue = selected_custom_tongue + if("speech_verb") + var/selected_custom_speech_verb = input(user, "Choose your desired speech verb (none means your species speech verb)", "Character Preference") as null|anything in GLOB.speech_verbs + if(selected_custom_speech_verb) + custom_speech_verb = selected_custom_speech_verb else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2621,6 +2638,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) else character.Digitigrade_Leg_Swap(TRUE) + //speech stuff + if(custom_tongue != "default") + var/new_tongue = GLOB.roundstart_tongues[custom_tongue] + if(new_tongue) + var/obj/item/organ/tongue/T = character.getorganslot(ORGAN_SLOT_TONGUE) + if(T) + qdel(T) + var/obj/item/organ/tongue/new_custom_tongue = new new_tongue + new_custom_tongue.Insert(character) + if(custom_speech_verb != "default") + character.dna.species.say_mod = custom_speech_verb + //let's be sure the character updates character.update_body() character.update_hair() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cd21ba94..73ac3fc2 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -309,6 +309,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["backbag"] >> backbag S["jumpsuit_style"] >> jumpsuit_style S["uplink_loc"] >> uplink_spawn_loc + S["custom_speech_verb"] >> custom_speech_verb + S["custom_tongue"] >> custom_tongue S["feature_mcolor"] >> features["mcolor"] S["feature_lizard_tail"] >> features["tail_lizard"] S["feature_lizard_snout"] >> features["snout"] @@ -478,6 +480,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["moth_markings"] = sanitize_inlist(features["moth_markings"], GLOB.moth_markings_list, "None") features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list, "None") + custom_speech_verb = sanitize_inlist(custom_speech_verb, GLOB.speech_verbs, "default") + custom_tongue = sanitize_inlist(custom_tongue, GLOB.roundstart_tongues, "default") + joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med)) @@ -542,6 +547,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style) WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["custom_speech_verb"] , custom_speech_verb) + WRITE_FILE(S["custom_tongue"] , custom_tongue) WRITE_FILE(S["feature_mcolor"] , features["mcolor"]) WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) WRITE_FILE(S["feature_human_tail"] , features["tail_human"])