From 893f02599aa3d7b74c6ea1d32d755ad6bed9ef02 Mon Sep 17 00:00:00 2001 From: TymSha <146993255+TymSha@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:47:10 +0300 Subject: [PATCH] Ooze mob QoL + mending globule fix (#96423) ## About The Pull Request Mending globule can no longer be cast if you don't have enough nutrition to do so. The ooze hud now inherits the living hud, meaning ooze mobs can see their health and all of the other stuff. image The combination of the nutrition display and the health doll is kinda ugly for now but probably better than nothing. The descriptions of shoolean grapes abilities now include the cost of the ability in question. ## Why It's Good For The Game Not being able to see how wounded you are is kinda bad, and being able to see that is kinda good. Knowing how much your abilities cost is good too. ## Changelog :cl: qol: Ooze mobs from cytology now have the same type of HUD as other mobs, allowing them to see their health qol: The abilities of shoolean grapes now have their cost specified in their description fix: The mending globule ability used by shoolean grapes no longer can be cast while there isn't enough nutrition to do so /:cl: --- code/_onclick/hud/ooze.dm | 2 +- .../mob/living/simple_animal/hostile/ooze.dm | 27 ++++++++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/code/_onclick/hud/ooze.dm b/code/_onclick/hud/ooze.dm index e796df33b4a..5d0fa005fe2 100644 --- a/code/_onclick/hud/ooze.dm +++ b/code/_onclick/hud/ooze.dm @@ -1,5 +1,5 @@ ///Hud type with targeting dol and a nutrition bar -/datum/hud/ooze/initialize_screen_objects() +/datum/hud/living/ooze/initialize_screen_objects() . = ..() add_screen_object(/atom/movable/screen/zone_sel, HUD_MOB_ZONE_SELECTOR, HUD_GROUP_STATIC, ui_style) add_screen_object(/atom/movable/screen/ooze_nutrition_display, HUD_OOZE_NUTRITION_DISPLAY) diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index 4bb2858bce1..749f60e58d2 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -11,7 +11,7 @@ emote_see = list("jiggles", "bounces in place") speak_emote = list("blorbles") atmos_requirements = null - hud_type = /datum/hud/ooze + hud_type = /datum/hud/living/ooze minbodytemp = 250 maxbodytemp = INFINITY faction = list(FACTION_SLIME) @@ -322,7 +322,7 @@ ///Ability that allows the owner to fire healing globules at mobs, targeting specific limbs. /datum/action/cooldown/globules name = "Fire Mending globule" - desc = "Fires a mending globule at someone, healing a specific limb of theirs." + desc = "Fires a mending globule at someone, healing a specific limb of theirs. Costs 5 nutrition." background_icon_state = "bg_hive" overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi' @@ -332,10 +332,16 @@ click_to_activate = TRUE /datum/action/cooldown/globules/set_click_ability(mob/on_who) + var/mob/living/simple_animal/hostile/ooze/oozy_owner = owner + if(istype(oozy_owner)) + if(oozy_owner.ooze_nutrition < 5) + to_chat(oozy_owner, span_warning("You need at least 5 nutrition to launch a mending globule.")) + return . = ..() if(!.) return + oozy_owner.adjust_ooze_nutrition(-5) to_chat(on_who, span_notice("You prepare to launch a mending globule. Left-click to fire at a target!")) /datum/action/cooldown/globules/unset_click_ability(mob/on_who, refund_cooldown = TRUE) @@ -344,21 +350,10 @@ return if(refund_cooldown) + var/mob/living/simple_animal/hostile/ooze/oozy_owner = owner + oozy_owner.adjust_ooze_nutrition(5) to_chat(on_who, span_notice("You stop preparing your mending globules.")) -/datum/action/cooldown/globules/Activate(atom/target) - . = ..() - if(!.) - return FALSE - - var/mob/living/simple_animal/hostile/ooze/oozy_owner = owner - if(istype(oozy_owner)) - if(oozy_owner.ooze_nutrition < 5) - to_chat(oozy_owner, span_warning("You need at least 5 nutrition to launch a mending globule.")) - return FALSE - - return TRUE - /datum/action/cooldown/globules/InterceptClickOn(mob/living/clicker, params, atom/target) . = ..() if(!.) @@ -426,7 +421,7 @@ ///This action lets you put a mob inside of a cacoon that will inject it with some chemicals. /datum/action/cooldown/gel_cocoon name = "Gel Cocoon" - desc = "Puts a mob inside of a cocoon, allowing it to slowly heal." + desc = "Puts a mob inside of a cocoon, allowing it to slowly heal. Costs 30 nutrition." background_icon_state = "bg_hive" overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi'