Add appropriate soap-washing message for mouthless IPCs. (#32280)

* Add appropriate soap-washing message for mouthless IPCs.

* Tweak soap message conditions.

* Broaden the scope of mouth-related changes.

* Apply suggestion from CRUNCH review.

Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Signed-off-by: Alan <alfalfascout@users.noreply.github.com>

* Make soap reagent affect synthetics.

---------

Signed-off-by: Alan <alfalfascout@users.noreply.github.com>
Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
This commit is contained in:
Alan
2026-08-01 06:11:57 +00:00
committed by GitHub
co-authored by CRUNCH
parent 2d22c7faec
commit 2ba1dcb1da
4 changed files with 28 additions and 23 deletions
@@ -1152,7 +1152,7 @@
/mob/living/carbon/human/proc/check_has_mouth()
// Todo, check stomach organ when implemented.
var/obj/item/organ/external/head/H = get_organ("head")
if(!H || !H.can_intake_reagents)
if(!H || (!H.can_intake_reagents && !HAS_TRAIT(src, TRAIT_IPC_CAN_EAT)))
return FALSE
return TRUE
@@ -1994,17 +1994,15 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
/mob/living/carbon/human/selfFeed(obj/item/food/toEat, fullness)
if(!check_has_mouth())
if(!ismachineperson(src) || (ismachineperson(src) && !HAS_TRAIT(src, TRAIT_IPC_CAN_EAT)))
to_chat(src, SPAN_NOTICE("Where do you intend to put [toEat]? You don't have a mouth!"))
return FALSE
to_chat(src, SPAN_NOTICE("Where do you intend to put [toEat]? You don't have a mouth!"))
return FALSE
return ..()
/mob/living/carbon/human/forceFed(obj/item/food/toEat, mob/user, fullness)
if(!check_has_mouth())
if(!ismachineperson(src) || !HAS_TRAIT(src, TRAIT_IPC_CAN_EAT))
if(!((istype(toEat, /obj/item/reagent_containers/drinks) && (ismachineperson(src)))))
to_chat(user, SPAN_NOTICE("Where do you intend to put [toEat]? \The [src] doesn't have a mouth!"))
return FALSE
if(!((istype(toEat, /obj/item/reagent_containers/drinks) && (ismachineperson(src)))))
to_chat(user, SPAN_NOTICE("Where do you intend to put [toEat]? [src] doesn't have a mouth!"))
return FALSE
return ..()
/mob/living/carbon/human/selfDrink(obj/item/reagent_containers/drinks/toDrink)
@@ -986,6 +986,7 @@
color = "#FFFFFF"
taste_description = "soap"
yuck_description = "grime in your gears"
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/soap/on_mob_add(mob/living/L)
ADD_TRAIT(L, TRAIT_SOAPY_MOUTH, id)