diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index 2bdd04f401a..944c33382af 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -73,15 +73,22 @@
bless(M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
+ var/message_halt = 0
for(var/obj/item/organ/limb/affecting in H.organs)
if(affecting.status == ORGAN_ORGANIC)
- for(var/mob/O in viewers(M, null))
- O.show_message(text("\red [] heals [] with the power of [src.deity_name]!", user, M), 1)
- M << "\red May the power of [src.deity_name] compel you to be healed!"
- playsound(src.loc, "punch", 25, 1, -1)
+ if(message_halt == 0)
+ for(var/mob/O in viewers(M, null))
+ O.show_message(text("\red [] heals [] with the power of [src.deity_name]!", user, M), 1)
+ M << "\red May the power of [src.deity_name] compel you to be healed!"
+ playsound(src.loc, "punch", 25, 1, -1)
+ message_halt = 1
else
- src << "You cannot heal someone who's body is tainted by metal!"
+ src << "[src.deity_name] refuses to heal this metalic taint!"
return
+
+
+
+
else
if(ishuman(M) && !istype(M:head, /obj/item/clothing/head/helmet))
M.adjustBrainLoss(10)
@@ -89,6 +96,7 @@
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] beats [] over the head with []!", user, M, src), 1)
playsound(src.loc, "punch", 25, 1, -1)
+
else if(M.stat == 2)
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] smacks []'s lifeless corpse with [].", user, M, src), 1)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index bab4a934824..61582058722 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -179,7 +179,7 @@ emp_act
var/bloody = 0
if(((I.damtype == BRUTE) || (I.damtype == HALLOSS)) && prob(25 + (I.force * 2)))
- if(affecting.status == ORGAN_ORGANIC) //Organic limbs bleed - RR
+ if(affecting.status == ORGAN_ORGANIC)
I.add_blood(src) //Make the weapon bloody, not the person.
if(prob(I.force * 2)) //blood spatter!
bloody = 1
@@ -206,6 +206,7 @@ emp_act
H.bloody_hands_mob = H
H.update_inv_gloves() //updates on-mob overlays for bloody hands and/or bloody gloves
+
switch(hit_area)
if("head") //Harder to score a stun but if you do it lasts a bit longer
if(stat == CONSCIOUS && prob(I.force))
diff --git a/code/modules/surgery/generic_steps.dm b/code/modules/surgery/generic_steps.dm
index 2df1bb45c2a..f810bec205d 100644
--- a/code/modules/surgery/generic_steps.dm
+++ b/code/modules/surgery/generic_steps.dm
@@ -1,10 +1,12 @@
+
//make incision
/datum/surgery_step/incise
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/kitchenknife = 65, /obj/item/weapon/shard = 45)
time = 24
/datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to make an incision in [target]'s [target_zone].")
+ user.visible_message("[user] begins to make an incision in [target]'s [parse_zone(target_zone)].")
+
//clamp bleeders
@@ -13,7 +15,8 @@
time = 48
/datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to clamp bleeders in [target]'s [target_zone].")
+ user.visible_message("[user] begins to clamp bleeders in [target]'s [parse_zone(target_zone)].")
+
//retract skin
/datum/surgery_step/retract_skin
@@ -21,7 +24,8 @@
time = 32
/datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to retract the skin in [target]'s [target_zone].")
+ user.visible_message("[user] begins to retract the skin in [target]'s [parse_zone(target_zone)].")
+
//close incision
@@ -30,7 +34,8 @@
time = 32
/datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to mend the incision in [target]'s [target_zone].")
+ user.visible_message("[user] begins to mend the incision in [target]'s [parse_zone(target_zone)].")
+
/datum/surgery_step/close/tool_check(mob/user, obj/item/tool)
if(istype(tool, /obj/item/weapon/cautery))
@@ -57,6 +62,7 @@
time = 64
/datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to saw through the bone in [target]'s [target_zone].")
+ user.visible_message("[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].")
+
diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm
index f5c067e027d..23866878825 100644
--- a/code/modules/surgery/helpers.dm
+++ b/code/modules/surgery/helpers.dm
@@ -36,7 +36,7 @@
if(procedure.location == "anywhere") // if location == "anywhere" change location to the surgeon's target, otherwise leave location as is.
procedure.location = user.zone_sel.selecting
M.surgeries += procedure
- user.visible_message("[user] drapes [I] over [M]'s [procedure.location] to prepare for \an [procedure.name].")
+ user.visible_message("[user] drapes [I] over [M]'s [parse_zone(procedure.location)] to prepare for \an [procedure.name].")
user.attack_log += "\[[time_stamp()]\]Initiated a [procedure.name] on [M.name] ([M.ckey])"
M.attack_log += "\[[time_stamp()]\][user.name] ([user.ckey]) initiated a [procedure.name]"
diff --git a/code/modules/surgery/limb augmentation.dm b/code/modules/surgery/limb augmentation.dm
index aaa4cf772af..0a38c93cdc9 100644
--- a/code/modules/surgery/limb augmentation.dm
+++ b/code/modules/surgery/limb augmentation.dm
@@ -10,7 +10,7 @@
/datum/surgery_step/replace/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- user.visible_message("[user] begins to sever the muscles on [target]'s [target_zone]!")
+ user.visible_message("[user] begins to sever the muscles on [target]'s [parse_zone(user.zone_sel.selecting)]!")
/datum/surgery_step/add_limb
@@ -24,9 +24,9 @@
/datum/surgery_step/add_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
L = new_organ
if(L)
- user.visible_message("[user] begins to augment [target]'s [target_zone].")
+ user.visible_message("[user] begins to augment [target]'s [parse_zone(user.zone_sel.selecting)].")
else
- user.visible_message("[user] looks for [target]'s [target_zone].")
+ user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_sel.selecting)].")
@@ -46,7 +46,7 @@
if(L)
if(ishuman(target))
var/mob/living/carbon/human/H = target
- user.visible_message("[user] successfully augments [target]'s [target_zone]!")
+ user.visible_message("[user] successfully augments [target]'s [parse_zone(user.zone_sel.selecting)]!")
L.loc = get_turf(target)
H.organs -= L
switch(user.zone_sel.selecting) //for the surgery to progress this MUST still be the original "location" so it's safe to do this.
@@ -62,13 +62,15 @@
H.organs += new /obj/item/organ/limb/robot/head(src)
if("chest")
H.organs += new /obj/item/organ/limb/robot/chest(src)
+ for(var/datum/disease/appendicitis/A in H.viruses) //If they already have Appendicitis, Remove it
+ A.cure(1)
user.drop_item()
del(tool)
H.update_damage_overlays(0)
H.update_augments() //Gives them the Cyber limb overlay
- user.attack_log += "\[[time_stamp()]\] Augmented [target.name]'s [target_zone] ([target.ckey]) INTENT: [uppertext(user.a_intent)])"
+ user.attack_log += "\[[time_stamp()]\] Augmented [target.name]'s [parse_zone(user.zone_sel.selecting)] ([target.ckey]) INTENT: [uppertext(user.a_intent)])"
target.attack_log += "\[[time_stamp()]\] Augmented by [user.name] ([user.ckey]) (INTENT: [uppertext(user.a_intent)])"
log_attack("[user.name] ([user.ckey]) augmented [target.name] ([target.ckey]) (INTENT: [uppertext(user.a_intent)])")
else
- user.visible_message("[user] [target] has no organic [target_zone] there!")
+ user.visible_message("[user] [target] has no organic [parse_zone(user.zone_sel.selecting)] there!")
return 1
diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm
index 9c83a93c2f9..bbd1faf8f0f 100644
--- a/code/modules/surgery/organs/organ.dm
+++ b/code/modules/surgery/organs/organ.dm
@@ -47,6 +47,7 @@
var/status = ORGAN_ORGANIC
+
/obj/item/organ/limb/chest
name = "chest"
desc = "why is it detached..."
@@ -54,6 +55,7 @@
max_damage = 200
body_part = CHEST
+
/obj/item/organ/limb/head
name = "head"
desc = "what a way to get a head in life..."
@@ -61,6 +63,7 @@
max_damage = 200
body_part = HEAD
+
/obj/item/organ/limb/l_arm
name = "l_arm"
desc = "why is it detached..."
@@ -68,6 +71,7 @@
max_damage = 75
body_part = ARM_LEFT
+
/obj/item/organ/limb/l_leg
name = "l_leg"
desc = "why is it detached..."
@@ -75,6 +79,7 @@
max_damage = 75
body_part = LEG_LEFT
+
/obj/item/organ/limb/r_arm
name = "r_arm"
desc = "why is it detached..."
@@ -82,6 +87,7 @@
max_damage = 75
body_part = ARM_RIGHT
+
/obj/item/organ/limb/r_leg
name = "r_leg"
desc = "why is it detached..."
@@ -90,6 +96,7 @@
body_part = LEG_RIGHT
+
//Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all.
//Damage will not exceed max_damage using this proc
//Cannot apply negative damage