diff --git a/code/game/gamemodes/changeling/helpers/_framework.dm b/code/game/gamemodes/changeling/helpers/_framework.dm index 292658d1232..4cb7c4c587d 100644 --- a/code/game/gamemodes/changeling/helpers/_framework.dm +++ b/code/game/gamemodes/changeling/helpers/_framework.dm @@ -97,7 +97,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E var/mob/living/carbon/human/H = src if(istype(H)) - var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.get_cloning_variant(), H.languages) + var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.get_cloning_variant(), H.languages, H.height, H.gender, H.pronouns, H.accent) absorbDNA(newDNA) changeling.mimiced_accent = H.accent @@ -209,14 +209,20 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E var/speciesName var/list/languages var/height + var/gender + var/pronouns + var/accent -/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, newHeight) +/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, var/newHeight, var/newGender, var/newPronouns, var/newAccent) ..() name = newName dna = newDNA speciesName = newSpecies languages = newLanguages height = newHeight + gender = newGender + pronouns = newPronouns + accent = newAccent //Helper for stingcode diff --git a/code/game/gamemodes/changeling/helpers/_store.dm b/code/game/gamemodes/changeling/helpers/_store.dm index 5ed32142e15..11ba2eff9ad 100644 --- a/code/game/gamemodes/changeling/helpers/_store.dm +++ b/code/game/gamemodes/changeling/helpers/_store.dm @@ -30,15 +30,6 @@ var/list/datum/power/changeling/powerinstances = list() genomecost = 0 verbpath = /mob/proc/changeling_absorb_dna -// Accent Mimicry - -/datum/power/changeling/mimic_accent - name = "Mimic Accent" - desc = "Allows us to shape our vocal glands to adopt a specific accent." - helptext = "Allows you to pick any accent from the list of all accents. Be mindful that you need to match the correct accent to pretend to be your victim." - genomecost = 0 - verbpath = /mob/proc/changeling_mimic_accent - //Transformation /datum/power/changeling/transform diff --git a/code/game/gamemodes/changeling/implements/powers/body.dm b/code/game/gamemodes/changeling/implements/powers/body.dm index b5d81559a90..ac21b559833 100644 --- a/code/game/gamemodes/changeling/implements/powers/body.dm +++ b/code/game/gamemodes/changeling/implements/powers/body.dm @@ -42,6 +42,7 @@ if(ishuman(src)) src.visible_message("[src] transforms!") var/mob/living/carbon/human/H = src + var/datum/changeling/changeling = mind.antag_datums[MODE_CHANGELING] var/newSpecies = chosen_dna.speciesName H.set_species(newSpecies, 1) @@ -50,6 +51,10 @@ H.sync_organ_dna() H.flavor_text = "" H.height = chosen_dna.height + H.gender = chosen_dna.gender + H.pronouns = chosen_dna.pronouns + if(!changeling.mimicing) + changeling.mimiced_accent = chosen_dna.accent domutcheck(H, null) //donut check heh heh heh - Geeves H.UpdateAppearance() @@ -408,22 +413,6 @@ feedback_add_details("changeling_powers", "RR") return TRUE -/mob/proc/changeling_mimic_accent() - set category = "Changeling" - set name = "Mimic Accent" - set desc = "Shape our vocal glands to mimic any accent we choose." - - var/datum/changeling/changeling = changeling_power() - if(!changeling) - return - - var/chosen_accent = tgui_input_list(src, "Choose an accent to mimic.", "Accent Mimicry", SSrecords.accents) - if(!chosen_accent) - return - - changeling.mimiced_accent = chosen_accent - to_chat(src, SPAN_NOTICE("We have chosen to mimic the [chosen_accent] accent.")) - // Fake Voice /mob/proc/changeling_mimicvoice() set category = "Changeling" @@ -435,7 +424,9 @@ return if(changeling.mimicing) + var/datum/absorbed_dna/current_dna = changeling.GetDNA(real_name) changeling.mimicing = "" + changeling.mimiced_accent = current_dna.accent to_chat(src, "We return our vocal glands to their original form.") return @@ -443,9 +434,14 @@ if(!mimic_voice) return - changeling.mimicing = mimic_voice + var/chosen_accent = tgui_input_list(src, "Choose an accent to mimic.", "Accent Mimicry", SSrecords.accents) + if(!chosen_accent) + return - to_chat(src, "We shape our glands to take the voice of [mimic_voice], this will stop us from regenerating chemicals while active.") + changeling.mimicing = mimic_voice + changeling.mimiced_accent = chosen_accent + + to_chat(src, "We shape our glands to take the voice of [mimic_voice], using the [chosen_accent] accent. This will stop us from regenerating chemicals while active.") to_chat(src, "Use this power again to return to our original voice and reproduce chemicals again.") feedback_add_details("changeling_powers","MV") diff --git a/code/game/gamemodes/changeling/implements/powers/stings.dm b/code/game/gamemodes/changeling/implements/powers/stings.dm index 77df5fb358c..2dab0db1392 100644 --- a/code/game/gamemodes/changeling/implements/powers/stings.dm +++ b/code/game/gamemodes/changeling/implements/powers/stings.dm @@ -251,7 +251,7 @@ /datum/changeling_sting/dna_extract/do_sting(mob/living/carbon/human/target) ..() - var/datum/absorbed_dna/newDNA = new(target.real_name, target.dna, target.species.get_cloning_variant(), target.languages) + var/datum/absorbed_dna/newDNA = new(target.real_name, target.dna, target.species.get_cloning_variant(), target.languages, target.height, target.gender, target.pronouns, target.accent) owner.absorbDNA(newDNA) //Boosts the range of your next sting attack by 1 diff --git a/code/game/gamemodes/changeling/implements/powers/suck.dm b/code/game/gamemodes/changeling/implements/powers/suck.dm index 84068161bea..4e045acb5e8 100644 --- a/code/game/gamemodes/changeling/implements/powers/suck.dm +++ b/code/game/gamemodes/changeling/implements/powers/suck.dm @@ -77,7 +77,7 @@ changeling_update_languages(changeling.absorbed_languages) - var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.get_cloning_variant(), T.languages, T.height) + var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.get_cloning_variant(), T.languages, T.height, T.gender, T.pronouns, T.accent) absorbDNA(newDNA) var/datum/changeling/changeling_check = T.get_antag_datum(MODE_CHANGELING) diff --git a/html/changelogs/AlaunusLux-changeling-gender-accent-changes.yml b/html/changelogs/AlaunusLux-changeling-gender-accent-changes.yml new file mode 100644 index 00000000000..ac0a01c8290 --- /dev/null +++ b/html/changelogs/AlaunusLux-changeling-gender-accent-changes.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: AlaunusLux + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Transforming now changes gender and pronouns, as well as automatically changing accent." + - tweak: "Mimic Accent is no longer a separate ability. Mimic Voice now asks which accent to use after asking for a name."