From ffec786117d4969051bdaf328225d2bfce7003e2 Mon Sep 17 00:00:00 2001 From: archbtw <230859540+archbtw0@users.noreply.github.com> Date: Sat, 13 Dec 2025 01:44:33 +0000 Subject: [PATCH] Fix simplemob missing stamina hud (#94420) ## About The Pull Request Since simplemobs can be dealt stamina damage (https://github.com/tgstation/tgstation/pull/90675) gives simplemobs who take stamina damage a stamina bar - Since it's missing Simplemobs who can't take stamina damage still wont be able to see the hud - so don't worry about clutter/miss information ## Why It's Good For The Game Simplemobs have a missing stamina hud ## Changelog :cl: ArchBTW fix: Gives eligible sentient simplemobs a stamina hud /:cl: Co-authored-by: glue0000 <230859540+glue0000@users.noreply.github.com> --- code/_onclick/hud/living.dm | 3 +++ code/modules/mob/living/carbon/carbon.dm | 28 ------------------------ code/modules/mob/living/living.dm | 28 ++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/code/_onclick/hud/living.dm b/code/_onclick/hud/living.dm index 71e88d5357d..e0d684a4bd5 100644 --- a/code/_onclick/hud/living.dm +++ b/code/_onclick/hud/living.dm @@ -22,3 +22,6 @@ //mob health doll! assumes whatever sprite the mob is healthdoll = new /atom/movable/screen/healthdoll/living(null, src) infodisplay += healthdoll + + stamina = new /atom/movable/screen/stamina(null, src) + infodisplay += stamina diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 9f82df2cbc2..15d2a78fb84 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -650,34 +650,6 @@ else hud_used.healths.icon_state = "health6" -/mob/living/carbon/update_stamina_hud(shown_stamina_loss) - if(!client || !hud_used?.stamina) - return - - var/stam_crit_threshold = maxHealth - crit_threshold - - if(stat == DEAD) - hud_used.stamina.icon_state = "stamina_dead" - else - - if(shown_stamina_loss == null) - shown_stamina_loss = get_stamina_loss() - - if(shown_stamina_loss >= stam_crit_threshold) - hud_used.stamina.icon_state = "stamina_crit" - else if(shown_stamina_loss > maxHealth*0.8) - hud_used.stamina.icon_state = "stamina_5" - else if(shown_stamina_loss > maxHealth*0.6) - hud_used.stamina.icon_state = "stamina_4" - else if(shown_stamina_loss > maxHealth*0.4) - hud_used.stamina.icon_state = "stamina_3" - else if(shown_stamina_loss > maxHealth*0.2) - hud_used.stamina.icon_state = "stamina_2" - else if(shown_stamina_loss > 0) - hud_used.stamina.icon_state = "stamina_1" - else - hud_used.stamina.icon_state = "stamina_full" - /mob/living/carbon/proc/update_spacesuit_hud_icon(cell_state = "empty") hud_used?.spacesuit?.icon_state = "spacesuit_[cell_state]" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 90098bef548..bd936af1b48 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1432,6 +1432,34 @@ SEND_SIGNAL(src, COMSIG_LIVING_STAMINA_UPDATE) update_stamina_hud() +/mob/living/update_stamina_hud(shown_stamina_loss) + if(!client || !hud_used?.stamina) + return + + var/stam_crit_threshold = maxHealth - crit_threshold + + if(stat == DEAD) + hud_used.stamina.icon_state = "stamina_dead" + else + + if(shown_stamina_loss == null) + shown_stamina_loss = get_stamina_loss() + + if(shown_stamina_loss >= stam_crit_threshold) + hud_used.stamina.icon_state = "stamina_crit" + else if(shown_stamina_loss > maxHealth*0.8) + hud_used.stamina.icon_state = "stamina_5" + else if(shown_stamina_loss > maxHealth*0.6) + hud_used.stamina.icon_state = "stamina_4" + else if(shown_stamina_loss > maxHealth*0.4) + hud_used.stamina.icon_state = "stamina_3" + else if(shown_stamina_loss > maxHealth*0.2) + hud_used.stamina.icon_state = "stamina_2" + else if(shown_stamina_loss > 0) + hud_used.stamina.icon_state = "stamina_1" + else + hud_used.stamina.icon_state = "stamina_full" + /mob/living/carbon/alien/update_stamina() return