From ff5c815d01162b24f95cfc191fead16b60569769 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 31 May 2015 01:10:16 +0930 Subject: [PATCH] Fixes #9487 --- code/game/machinery/OpTable.dm | 14 ++++---- code/game/objects/items/stacks/medical.dm | 22 ++++++------ code/game/objects/items/weapons/tools.dm | 44 +++++++++++------------ code/modules/power/cable.dm | 23 ++++++------ code/modules/surgery/robotics.dm | 4 +-- 5 files changed, 54 insertions(+), 53 deletions(-) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index a03289c78b1..7b84ddcfe3f 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -47,8 +47,7 @@ /obj/machinery/optable/attack_hand(mob/user as mob) if (HULK in usr.mutations) - usr << text("\blue You destroy the table.") - visible_message("\red [usr] destroys the operating table!") + visible_message("\The [usr] destroys the operating table!") src.density = 0 qdel(src) return @@ -89,7 +88,7 @@ if (C == user) user.visible_message("[user] climbs on the operating table.","You climb on the operating table.") else - visible_message("\red [C] has been laid on the operating table by [user].", 3) + visible_message("\The [C] has been laid on the operating table by [user].", 3) if (C.client) C.client.perspective = EYE_PERSPECTIVE C.client.eye = src @@ -134,12 +133,11 @@ return /obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob) - if(src.victim) - usr << "\blue The table is already occupied!" + check_victim() + if(src.victim && get_turf(victim) == get_turf(src) && victim.lying) + usr << "The table is already occupied!" return 0 - if(patient.buckled) - usr << "\blue Unbuckle first!" + usr << "Unbuckle first!" return 0 - return 1 diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index be178632e65..24e0ca02413 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -77,11 +77,11 @@ "\blue You bandage [W.desc] on [M]'s [affecting.name]." ) //H.add_side_effect("Itch") else if (istype(W,/datum/wound/bruise)) - user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.name].", \ - "\blue You place bruise patch over [W.desc] on [M]'s [affecting.name]." ) + user.visible_message( "\blue [user] places a bruise patch over [W.desc] on [M]'s [affecting.name].", \ + "\blue You place a bruise patch over [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message( "\blue [user] places bandaid over [W.desc] on [M]'s [affecting.name].", \ - "\blue You place bandaid over [W.desc] on [M]'s [affecting.name]." ) + user.visible_message( "\blue [user] places a bandaid over [W.desc] on [M]'s [affecting.name].", \ + "\blue You place a bandaid over [W.desc] on [M]'s [affecting.name]." ) use(1) else if (can_operate(H)) //Checks if mob is lying down on table for surgery @@ -143,22 +143,22 @@ var/disinfected = affecting.disinfect() if(!(bandaged || disinfected)) - user << "\red The wounds on [M]'s [affecting.name] have already been treated." + user << "The wounds on [M]'s [affecting.name] have already been treated." return 1 else for (var/datum/wound/W in affecting.wounds) if (W.internal) continue if (W.current_stage <= W.max_bleeding_stage) - user.visible_message( "\blue [user] cleans [W.desc] on [M]'s [affecting.name] and seals edges with bioglue.", \ - "\blue You clean and seal [W.desc] on [M]'s [affecting.name]." ) + user.visible_message("\The [user] cleans [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ + "You clean and seal [W.desc] on [M]'s [affecting.name]." ) //H.add_side_effect("Itch") else if (istype(W,/datum/wound/bruise)) - user.visible_message( "\blue [user] places medicine patch over [W.desc] on [M]'s [affecting.name].", \ - "\blue You place medicine patch over [W.desc] on [M]'s [affecting.name]." ) + user.visible_message("\The [user] places a medical patch over [W.desc] on [M]'s [affecting.name].", \ + "You place a medical patch over [W.desc] on [M]'s [affecting.name]." ) else - user.visible_message( "\blue [user] smears some bioglue over [W.desc] on [M]'s [affecting.name].", \ - "\blue You smear some bioglue over [W.desc] on [M]'s [affecting.name]." ) + user.visible_message("\The [user] smears some bioglue over [W.desc] on [M]'s [affecting.name].", \ + "You smear some bioglue over [W.desc] on [M]'s [affecting.name]." ) if (bandaged) affecting.heal_damage(heal_brute,0) use(1) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 2bf69d31e70..14b4e64462c 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -24,8 +24,8 @@ force = 5.0 throwforce = 7.0 w_class = 2.0 - origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1) - matter = list(DEFAULT_WALL_MATERIAL = 150) + origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1) + matter = list(DEFAULT_WALL_MATERIAL = 150) attack_verb = list("bashed", "battered", "bludgeoned", "whacked") @@ -103,8 +103,8 @@ throw_speed = 2 throw_range = 9 w_class = 2.0 - origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1) - matter = list(DEFAULT_WALL_MATERIAL = 80) + origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1) + matter = list(DEFAULT_WALL_MATERIAL = 80) attack_verb = list("pinched", "nipped") sharp = 1 edge = 1 @@ -366,22 +366,22 @@ /obj/item/weapon/weldingtool/largetank name = "industrial welding tool" max_fuel = 40 - origin_tech = list(TECH_ENGINERING = 2) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) + origin_tech = list(TECH_ENGINERING = 2) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) /obj/item/weapon/weldingtool/hugetank name = "upgraded welding tool" max_fuel = 80 w_class = 3.0 - origin_tech = list(TECH_ENGINERING = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + origin_tech = list(TECH_ENGINERING = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) /obj/item/weapon/weldingtool/experimental name = "experimental welding tool" max_fuel = 40 w_class = 3.0 - origin_tech = list(TECH_ENGINERING = 4, TECH_PHORON = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + origin_tech = list(TECH_ENGINERING = 4, TECH_PHORON = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) var/last_gen = 0 @@ -407,8 +407,8 @@ throwforce = 7.0 item_state = "crowbar" w_class = 2.0 - origin_tech = list(TECH_ENGINERING = 1) - matter = list(DEFAULT_WALL_MATERIAL = 50) + origin_tech = list(TECH_ENGINERING = 1) + matter = list(DEFAULT_WALL_MATERIAL = 50) attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") /obj/item/weapon/crowbar/red @@ -416,11 +416,11 @@ icon_state = "red_crowbar" item_state = "crowbar_red" -/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob) +/obj/item/weapon/weldingtool/afterattack(mob/M as mob, mob/user as mob) - if(hasorgans(M)) - - var/obj/item/organ/external/S = M:organs_by_name[user.zone_sel.selecting] + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] if (!S) return if(!(S.status & ORGAN_ROBOT) || user.a_intent != I_HELP) @@ -429,12 +429,12 @@ if(S.brute_dam) if(S.brute_dam < ROBOLIMB_SELF_REPAIR_CAP) S.heal_damage(15,0,0,1) - user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.name] with \the [src].") - else - user << "\red The damage is far too severe to patch over externally." - return - else - user << "Nothing to fix!" + user.visible_message("\The [user] patches some dents on \the [M]'s [S.name] with \the [src].") + else if(!S.open) + user << "The damage is far too severe to patch over externally." + return 1 + else if(!S.open) + user << "Nothing to fix!" else return ..() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index d883054b1bd..6fcef97abfb 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -513,21 +513,24 @@ obj/structure/cable/proc/cableColor(var/colorC) //you can use wires to heal robotics /obj/item/stack/cable_coil/attack(mob/M as mob, mob/user as mob) - if(istype(M,/mob/living/carbon/human)) + + if(ishuman(M)) var/mob/living/carbon/human/H = M - var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting) - if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help") + var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] + + if (!S) return + if(!(S.status & ORGAN_ROBOT) || user.a_intent != I_HELP) return ..() - if(S.burn_dam > 0 && use(1)) + if(S.burn_dam) if(S.burn_dam < ROBOLIMB_SELF_REPAIR_CAP) S.heal_damage(0,15,0,1) - user.visible_message("\red \The [user] repairs some burn damage on \the [M]'s [S.name] with \the [src].") - else - user << "\red The damage is far too severe to patch over externally." - return - else - user << "Nothing to fix!" + user.visible_message("\The [user] repairs some burn damage on \the [M]'s [S.name] with \the [src].") + else if(!S.open) + user << "The damage is far too severe to patch over externally." + return 1 + else if(!S.open) + user << "Nothing to fix!" else return ..() diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 11babd42e42..d1b6ce4ada6 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -146,7 +146,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) user.visible_message("\blue [user] finishes patching damage to [target]'s [affected.name] with \the [tool].", \ "\blue You finish patching damage to [target]'s [affected.name] with \the [tool].") - affected.heal_damage(rand(30,50),0) + affected.heal_damage(rand(30,50),0,1,1) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) @@ -177,7 +177,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) user.visible_message("\blue [user] finishes splicing cable into [target]'s [affected.name].", \ "\blue You finishes splicing new cable into [target]'s [affected.name].") - affected.heal_damage(0,rand(30,50)) + affected.heal_damage(0,rand(30,50),1,1) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone)