diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index ad7ec85f148..5f93605169a 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -449,11 +449,15 @@
item_state = "crowbar_red"
/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
+
if(hasorgans(M))
+
var/datum/organ/external/S = M:organs_by_name[user.zone_sel.selecting]
+
if (!S) return
if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help")
return ..()
+
if(S.brute_dam)
S.heal_damage(15,0,0,1)
if(user != M)
@@ -464,7 +468,26 @@
user.visible_message("\red \The [user] patches some dents on their [S.display_name] with \the [src]",\
"\red You patch some dents on your [S.display_name]",\
"You hear a welder.")
- else
- user << "Nothing to fix!"
+ return
+
+ if(istype(M,/mob/living/carbon/human))
+
+ var/mob/living/carbon/human/H = M
+
+ if(H.species.flags & IS_SYNTHETIC)
+
+ if(H.getFireLoss() > 0)
+
+ if(M == user)
+ user << "\red You can't repair damage to your own body - it's against OH&S."
+ return
+
+ user.visible_message("\red \The [user] patches some dents on \the [M] with \the [src]",\
+ "\red \The [user] patches some of your dents.",\
+ "You hear a welder.")
+ H.heal_organ_damage(5,0)
+ return
+
+ user << "Nothing to fix!"
else
return ..()
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 7456e549155..e1eba818f13 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -638,11 +638,14 @@ obj/structure/cable/proc/cableColor(var/colorC)
/obj/item/weapon/cable_coil/attack(mob/M as mob, mob/user as mob)
if(hasorgans(M))
+
var/datum/organ/external/S = M:get_organ(user.zone_sel.selecting)
if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help")
return ..()
+
if(S.burn_dam > 0 && use(1))
S.heal_damage(0,15,0,1)
+
if(user != M)
user.visible_message("\The [user] repairs some burn damage on [M]'s [S.display_name] with \the [src]",\
"\The [user] repairs some burn damage on your [S.display_name]",\
@@ -651,7 +654,28 @@ obj/structure/cable/proc/cableColor(var/colorC)
user.visible_message("\The [user] repairs some burn damage on their [S.display_name] with \the [src]",\
"You repair some burn damage on your [S.display_name]",\
"You hear wires being cut.")
- else
- user << "Nothing to fix!"
+
+ return
+
+ if(istype(M,/mob/living/carbon/human))
+
+ var/mob/living/carbon/human/H = M
+
+ if(H.species.flags & IS_SYNTHETIC)
+
+ if(H.getFireLoss() > 0)
+
+ if(M == user)
+ user << "\red You can't repair damage to your own body - it's against OH&S."
+ return
+
+ user.visible_message("\The [user] repairs some burn damage on [M] with \the [src]",\
+ "\The [user] repairs some of your burn damage.",\
+ "You hear wires being cut.")
+ H.heal_organ_damage(0,5)
+ return
+
+ user << "Nothing to fix!"
+
else
return ..()