diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 3859e4f3a61..b666b1afe97 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -294,36 +294,37 @@
src.help_up_offer = 0
if(I_DISARM)
+ if(M.is_pacified())
+ to_chat(M, SPAN_NOTICE("You don't want to risk hurting [src]!"))
+ return FALSE
+
var/disarm_cost
- var/usesStamina
var/obj/item/organ/internal/cell/cell = M.internal_organs_by_name[BP_CELL]
var/obj/item/cell/potato
if(cell)
potato = cell.cell
- if(M.max_stamina > 0)
- disarm_cost = M.max_stamina / 6
- if(M.is_drowsy())
- disarm_cost *= 1.25
- usesStamina = TRUE
- else if(M.max_stamina <= 0)
- if(M.isSynthetic())
- disarm_cost = potato.maxcharge / 24
- disarm_cost = M.max_nutrition / 6
- usesStamina = FALSE
-
- if(usesStamina)
- if(M.stamina <= disarm_cost)
- to_chat(M, "You're too tired to disarm someone!")
+ if(isipc(M))
+ disarm_cost = potato.maxcharge / 24
+ if(potato.charge < disarm_cost)
+ to_chat(M, SPAN_DANGER("You don't have enough charge to disarm someone!"))
return FALSE
+ potato.use(disarm_cost)
else
- if(M.nutrition <= disarm_cost)
- to_chat(M, "You don't have enough power to disarm someone!")
- return FALSE
-
- if(M.is_pacified())
- to_chat(M, "You don't want to risk hurting [src]!")
- return FALSE
+ if(M.max_stamina > 0)
+ disarm_cost = M.max_stamina / 6
+ if(M.is_drowsy())
+ disarm_cost *= 1.25
+ if(M.stamina <= disarm_cost)
+ to_chat(M, SPAN_DANGER("You're too tired to disarm someone!"))
+ return FALSE
+ M.stamina = Clamp(M.stamina - disarm_cost, 0, M.max_stamina) // attempting to knock something out of someone's hands, or pushing them over, is exhausting!
+ else if(M.max_stamina <= 0)
+ disarm_cost = M.max_nutrition / 6
+ if(M.nutrition <= disarm_cost)
+ to_chat(M, SPAN_DANGER("You don't have enough power to disarm someone!"))
+ return FALSE
+ M.nutrition = Clamp(M.nutrition - disarm_cost, 0, M.max_nutrition)
if(attacker_style && attacker_style.disarm_act(H, src))
return TRUE
@@ -334,14 +335,6 @@
msg_admin_attack("[key_name(M)] disarmed [src.name] ([src.ckey]) (JMP)",ckey=key_name(M),ckey_target=key_name(src))
M.do_attack_animation(src)
- if(usesStamina)
- M.stamina = M.stamina - disarm_cost //attempting to knock something out of someone's hands, or pushing them over, is exhausting!
- M.stamina = Clamp(M.stamina, 0, M.max_stamina)
- else if(M.isSynthetic())
- cell.use(disarm_cost)
- else
- M.nutrition = Clamp(M.nutrition - disarm_cost, 0, M.max_nutrition)
-
if(w_uniform)
w_uniform.add_fingerprint(M)
diff --git a/html/changelogs/geeves-kada_aug_siphon.yml b/html/changelogs/geeves-kada_aug_siphon.yml
new file mode 100644
index 00000000000..9d7cedeb219
--- /dev/null
+++ b/html/changelogs/geeves-kada_aug_siphon.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - bugfix: "Tweaked how disarm costs are calculated, IPCs should no longer gain charge from disarming."