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."