diff --git a/code/modules/reagents/reagent_containers/applicator.dm b/code/modules/reagents/reagent_containers/applicator.dm
index 87be22d3c8f..42f001d3de7 100644
--- a/code/modules/reagents/reagent_containers/applicator.dm
+++ b/code/modules/reagents/reagent_containers/applicator.dm
@@ -41,11 +41,20 @@
/obj/item/reagent_containers/applicator/update_icon()
cut_overlays()
-
if(reagents.total_volume)
var/mutable_appearance/filling = mutable_appearance('icons/goonstation/objects/objects.dmi', "mender-fluid")
filling.color = mix_color_from_reagents(reagents.reagent_list)
add_overlay(filling)
+ var/reag_pct = round((reagents.total_volume / volume) * 100)
+ var/mutable_appearance/applicator_bar = mutable_appearance('icons/goonstation/objects/objects.dmi', "app_e")
+ switch(reag_pct)
+ if(51 to 100)
+ applicator_bar.icon_state = "app_hf"
+ if(1 to 50)
+ applicator_bar.icon_state = "app_he"
+ if(0)
+ applicator_bar.icon_state = "app_e"
+ add_overlay(applicator_bar)
/obj/item/reagent_containers/applicator/attack(mob/living/M, mob/user)
if(!reagents.total_volume)
@@ -69,9 +78,12 @@
while(do_after(user, 10, target = M))
measured_health = M.health
apply_to(M, user, 1, FALSE)
- if((measured_health == M.health) || !reagents.total_volume)
+ if(measured_health == M.health)
to_chat(user, "[M] is finished healing and [src] powers down automatically.")
break
+ if(!reagents.total_volume)
+ to_chat(user, "[src] is out of reagents and powers down automatically.")
+ break
applying = FALSE
icon_state = "mender"
user.changeNext_move(CLICK_CD_MELEE)
diff --git a/icons/goonstation/objects/objects.dmi b/icons/goonstation/objects/objects.dmi
index 2707ce8b9b8..76c8e17c99a 100644
Binary files a/icons/goonstation/objects/objects.dmi and b/icons/goonstation/objects/objects.dmi differ