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"