diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 646adc8d52..c4a0117b15 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -360,6 +360,12 @@
/obj/item/apc_powercord/proc/apc_powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
H.visible_message("[H] inserts a power connector into [A].", "You begin to draw power from [A].")
+
+ //GS13 edit
+ var/overcharge = FALSE
+ if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
+ overcharge = TRUE
+
while(do_after(H, 10, target = A))
if(loc != H)
to_chat(H, "You must keep your connector out while charging!")
@@ -378,14 +384,25 @@
A.cell.use(A.cell.charge)
to_chat(H, "You siphon off as much as [A] can spare.")
break
- if(H.nutrition > NUTRITION_LEVEL_FAT) //GS13 edit; I considered uncapped but it drains APCs and fattens stupid fast. could be fun uncapped but speed would need tweaking
- to_chat(H, "You are now fully charged.")
- break
+ if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
+ if(!overcharge) //GS13 edit
+ to_chat(H, "You are now fully charged.")
+ break
+ else
+ if(H.nutrition >= NUTRITION_LEVEL_FAT)
+ to_chat(H, "You've packed as much extra power into your battery as it can handle.")
+ break
in_use = FALSE
H.visible_message("[H] unplugs from [A].", "You unplug from [A].")
/obj/item/apc_powercord/proc/cell_powerdraw_loop(obj/item/stock_parts/cell/C, mob/living/carbon/human/H)
H.visible_message("[H] connects a power cord to [C]", "You begin to draw power from [C].")
+
+ //GS13 edit
+ var/overcharge = FALSE
+ if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
+ overcharge = TRUE
+
while(do_after(H, 10, target = C))
if(loc != H)
to_chat(H, "You must keep your connector out while charging!")
@@ -397,8 +414,13 @@
C.use(siphoned_charge)
do_sparks(1, FALSE, C)
H.adjust_nutrition(siphoned_charge / 100) //Less efficient on a pure power basis than APC recharge. Still a very viable way of gaining nutrition. (100 nutrition / base 10k cell)
- if(H.nutrition > NUTRITION_LEVEL_FAT) //GS13 edit, as above
- to_chat(H, "You are now fully charged.")
- break
+ if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
+ if(!overcharge) //GS13 edit
+ to_chat(H, "You are now fully charged.")
+ break
+ else
+ if(H.nutrition >= NUTRITION_LEVEL_FAT)
+ to_chat(H, "You've packed as much extra power into your battery as it can handle.")
+ break
in_use = FALSE
H.visible_message("[H] disconnects [src] from [C].", "You disconnect from [C].")