Files
Paradise/code/modules/mob/living/taste.dm
Alan a958e7b16a 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.
2026-06-06 11:10:44 +00:00

38 lines
1.4 KiB
Plaintext

/mob/living/proc/get_taste_sensitivity()
return TASTE_SENSITIVITY_NORMAL
/mob/living/carbon/human/get_taste_sensitivity()
if(dna.species)
return dna.species.taste_sensitivity
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/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))
text_output = pick("spiders","dreams","nightmares","the future","the past","victory",\
"defeat","pain","bliss","revenge","poison","time","space","death","life","truth","lies","justice","memory",\
"regrets","your soul","suffering","music","noise","blood","hunger","the american way")
if(text_output != last_taste_text || last_taste_time + 100 < world.time)
to_chat(src, SPAN_NOTICE("You can taste [text_output]."))
// "something indescribable" -> too many tastes, not enough flavor.
last_taste_time = world.time
last_taste_text = text_output