mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-20 11:31:12 +01:00
Changeling gender/pronoun change and auto accent on transform (#17855)
* Change gender, pronouns, and accent when transforming * changelog * whitespace * more whitespace * Combine mimic accent and voice * keep accent if mimicing when transforming
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
if(ishuman(src))
|
||||
src.visible_message("<span class='warning'>[src] transforms!</span>")
|
||||
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, "<span class='notice'>We return our vocal glands to their original form.</span>")
|
||||
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, "<span class='notice'>We shape our glands to take the voice of <b>[mimic_voice]</b>, this will stop us from regenerating chemicals while active.</span>")
|
||||
changeling.mimicing = mimic_voice
|
||||
changeling.mimiced_accent = chosen_accent
|
||||
|
||||
to_chat(src, "<span class='notice'>We shape our glands to take the voice of <b>[mimic_voice]</b>, using the <b>[chosen_accent]</b> accent. This will stop us from regenerating chemicals while active.</span>")
|
||||
to_chat(src, "<span class='notice'>Use this power again to return to our original voice and reproduce chemicals again.</span>")
|
||||
|
||||
feedback_add_details("changeling_powers","MV")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
Reference in New Issue
Block a user