Rework tastes to allow for synthetic enjoyment. (#32001)

* Rework tastes to allow for synthetic enjoyment.

* Remove duplicate vars.

* Fix taste sorting for strongest taste first.

* Add yuck descriptions for new drinks.

* Add yuck descriptions with a T like there should be.
This commit is contained in:
Alan
2026-06-06 11:10:44 +00:00
committed by GitHub
parent 582e0fee9f
commit a958e7b16a
19 changed files with 356 additions and 34 deletions
@@ -46,8 +46,9 @@
var/body_temperature = 310.15 //non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing)
var/reagent_tag //Used for metabolizing reagents.
var/hunger_drain = HUNGER_FACTOR
var/taste_sensitivity = TASTE_SENSITIVITY_NORMAL //the most widely used factor; humans use a different one
var/hunger_drain = HUNGER_FACTOR // the most widely used factor; humans use a different one
var/taste_sensitivity = TASTE_SENSITIVITY_NORMAL
var/taste_category = TASTE_CATEGORY_ORGANIC // what kinds of taste messages will they get?
var/hunger_icon = 'icons/mob/screen_hunger.dmi'
var/siemens_coeff = 1 //base electrocution coefficient
@@ -24,7 +24,7 @@
inherent_biotypes = MOB_ROBOTIC | MOB_HUMANOID
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY | ALL_RPARTS | SHAVED
taste_sensitivity = TASTE_SENSITIVITY_NO_TASTE
taste_category = TASTE_CATEGORY_SYNTHETIC
blood_color = COLOR_BLOOD_MACHINE
flesh_color = "#AAAAAA"
@@ -34,6 +34,7 @@
butt_sprite = "vox"
reagent_tag = PROCESS_ORG | PROCESS_SYN
taste_category = TASTE_CATEGORY_BOTH
scream_verb = "shrieks"
male_scream_sound = 'sound/voice/shriek1.ogg'
female_scream_sound = 'sound/voice/shriek1.ogg'
+16 -7
View File
@@ -2,18 +2,27 @@
return TASTE_SENSITIVITY_NORMAL
/mob/living/carbon/human/get_taste_sensitivity()
if(HAS_TRAIT(src, TRAIT_IPC_CAN_EAT))
return TASTE_SENSITIVITY_NORMAL
else if(dna.species)
if(dna.species)
return dna.species.taste_sensitivity
else
return TASTE_SENSITIVITY_NORMAL
return ..()
/mob/living/proc/get_taste_category()
return TASTE_CATEGORY_ORGANIC
/mob/living/silicon/get_taste_category()
return TASTE_CATEGORY_SYNTHETIC
/mob/living/carbon/human/get_taste_category()
if(HAS_TRAIT(src, TRAIT_IPC_CAN_EAT))
return TASTE_CATEGORY_BOTH
if(dna.species)
return dna.species.taste_category
return ..()
// non destructively tastes a reagent container
/mob/living/proc/taste(datum/reagents/from)
if(last_taste_time + 50 < world.time)
var/taste_sensitivity = get_taste_sensitivity()
var/text_output = from.generate_taste_message(taste_sensitivity)
var/text_output = from.generate_taste_message(get_taste_sensitivity(), get_taste_category())
// We dont want to spam the same message over and over again at the
// person. Give it a bit of a buffer.
if(AmountHallucinate() > 50 SECONDS && prob(25))