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