diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 09e6f0ef42..929b42f96d 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -12,7 +12,7 @@
var/taste_sensitivity = 15 // lower is more sensitive.
maxHealth = TONGUE_MAX_HEALTH
var/list/initial_accents //the ones the tongue starts with, not what it currently has
- var/list/accents //done in order of priority (please always apply abductor accent and stuttering last)
+ var/list/accents = list() //done in order of priority (please always apply abductor accent and stuttering last)
var/static/list/languages_possible_base = typecacheof(list(
/datum/language/common,
/datum/language/draconic,
@@ -31,6 +31,8 @@
/obj/item/organ/tongue/Initialize(mapload)
. = ..()
+ for(var/accent in initial_accents)
+ accents += new accent
low_threshold_passed = "Your [name] feels a little sore."
low_threshold_cleared = "Your [name] soreness has subsided."
high_threshold_passed = "Your [name] is really starting to hurt."
@@ -38,16 +40,14 @@
now_failing = "Your [name] feels like it's about to fall out!."
now_fixed = "The excruciating pain of your [name] has subsided."
languages_possible = languages_possible_base
- for(var/accent in initial_accents)
- initial_accents += new accent
-/obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args) //this wont proc unless there's initial_accents
- for(var/datum/accent/speech_modifier in initial_accents)
+/obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args) //this wont proc unless there's initial_accents on the tongue
+ for(var/datum/accent/speech_modifier in accents)
speech_args = speech_modifier.modify_speech(speech_args, source, owner)
/obj/item/organ/tongue/applyOrganDamage(d, maximum = maxHealth)
. = ..()
- if (damage >= maxHealth)
+ if(damage >= maxHealth)
to_chat(owner, "Your tongue is singed beyond recognition, and disintegrates!")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Tongues lost to Fermi")
qdel(src)
@@ -56,7 +56,7 @@
..()
if(say_mod && M.dna && M.dna.species)
M.dna.species.say_mod = say_mod
- if(initial_accents)
+ if(length(initial_accents) || length(accents))
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
M.UnregisterSignal(M, COMSIG_MOB_SAY)
@@ -166,8 +166,8 @@
var/list/phomeme_types = list(/datum/accent/span/sans, /datum/accent/span/papyrus)
/obj/item/organ/tongue/bone/Initialize()
- . = ..()
initial_accents += pick(phomeme_types)
+ . = ..()
/obj/item/organ/tongue/bone/applyOrganDamage(var/d, var/maximum = maxHealth)
if(d < 0)
@@ -205,9 +205,6 @@
/obj/item/organ/tongue/robot/could_speak_language(language)
return ..() || electronics_magic
-/obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args)
- ..()
-
/obj/item/organ/tongue/fluffy
name = "fluffy tongue"
desc = "OwO what's this?"
@@ -220,6 +217,7 @@
name = "cybernetic tongue"
desc = "A state of the art robotic tongue that can detect the pH of anything drank."
icon_state = "tonguecybernetic"
+ initial_accents = list(/datum/accent/span/robot)
taste_sensitivity = 10
maxHealth = 60 //It's robotic!
organ_flags = ORGAN_SYNTHETIC
@@ -231,10 +229,6 @@
var/errormessage = list("Runtime in tongue.dm, line 39: Undefined operation \"zapzap ow my tongue\"", "afhsjifksahgjkaslfhashfjsak", "-1.#IND", "Graham's number", "inside you all along", "awaiting at least 1 approving review before merging this taste request")
owner.say("The pH is appropriately [pick(errormessage)].", forced = "EMPed synthetic tongue")
-/obj/item/organ/tongue/cybernetic/handle_speech(datum/source, list/speech_args)
- speech_args[SPEECH_SPANS] |= SPAN_ROBOT
- ..()
-
/obj/item/organ/tongue/robot/ipc
name = "positronic voicebox"
say_mod = "beeps"