[MIRROR] Tweaks how some tongues have no taste (#2417)

* Tweaks how some tongues have no taste (#55811)

Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.

Carbons without tongues also can no longer taste anything.

- The utility item "taster" has had some additional messages added.

* Remove can_taste proc

Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Tweaks how some tongues have no taste

Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-01-01 14:37:10 +01:00
committed by GitHub
co-authored by LemonInTheDark coiax
parent 8601939fe7
commit f4c6b690ce
6 changed files with 57 additions and 12 deletions
+22 -4
View File
@@ -8,6 +8,10 @@
attack_verb_simple = list("lick", "slobber", "slap", "french", "tongue")
var/list/languages_possible
var/say_mod = null
/// Whether the owner of this tongue can taste anything. Being set to FALSE will mean no taste feedback will be provided.
var/sense_of_taste = TRUE
var/taste_sensitivity = 15 // lower is more sensitive.
var/modifies_speech = FALSE
var/static/list/languages_possible_base = typecacheof(list(
@@ -43,12 +47,24 @@
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
M.UnregisterSignal(M, COMSIG_MOB_SAY)
/* This could be slightly simpler, by making the removal of the
* NO_TONGUE_TRAIT conditional on the tongue's `sense_of_taste`, but
* then you can distinguish between ageusia from no tongue, and
* ageusia from having a non-tasting tongue.
*/
REMOVE_TRAIT(M, TRAIT_AGEUSIA, NO_TONGUE_TRAIT)
if(!sense_of_taste)
ADD_TRAIT(M, TRAIT_AGEUSIA, ORGAN_TRAIT)
/obj/item/organ/tongue/Remove(mob/living/carbon/M, special = 0)
..()
if(say_mod && M.dna && M.dna.species)
M.dna.species.say_mod = initial(M.dna.species.say_mod)
UnregisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
M.RegisterSignal(M, COMSIG_MOB_SAY, /mob/living/carbon/.proc/handle_tongueless_speech)
REMOVE_TRAIT(M, TRAIT_AGEUSIA, ORGAN_TRAIT)
// Carbons by default start with NO_TONGUE_TRAIT caused TRAIT_AGEUSIA
ADD_TRAIT(M, TRAIT_AGEUSIA, NO_TONGUE_TRAIT)
/obj/item/organ/tongue/could_speak_language(language)
return is_type_in_typecache(language, languages_possible)
@@ -120,7 +136,7 @@
desc = "A mysterious structure that allows for instant communication between users. Pretty impressive until you need to eat something."
icon_state = "tongueayylmao"
say_mod = "gibbers"
taste_sensitivity = 101 // ayys cannot taste anything.
sense_of_taste = FALSE
modifies_speech = TRUE
var/mothership
@@ -218,7 +234,7 @@
say_mod = "rattles"
attack_verb_continuous = list("bites", "chatters", "chomps", "enamelles", "bones")
attack_verb_simple = list("bite", "chatter", "chomp", "enamel", "bone")
taste_sensitivity = 101 // skeletons cannot taste anything
sense_of_taste = FALSE
modifies_speech = TRUE
var/chattering = FALSE
var/phomeme_type = "sans"
@@ -279,7 +295,9 @@
speech_args[SPEECH_SPANS] |= SPAN_ROBOT
/obj/item/organ/tongue/snail
name = "snailtongue"
name = "radula"
color = "#96DB00" // TODO proper sprite, rather than recoloured pink tongue
desc = "A minutely toothed, chitious ribbon, which as a side effect, makes all snails talk IINNCCRREEDDIIBBLLYY SSLLOOWWLLYY."
modifies_speech = TRUE
/obj/item/organ/tongue/snail/handle_speech(datum/source, list/speech_args)
@@ -299,7 +317,7 @@
say_mod = "crackles"
attack_verb_continuous = list("shocks", "jolts", "zaps")
attack_verb_simple = list("shock", "jolt", "zap")
taste_sensitivity = 101 // Not a tongue, they can't taste shit
sense_of_taste = FALSE
var/static/list/languages_possible_ethereal = typecacheof(list(
/datum/language/common,
/datum/language/draconic,