From d861d86edd1f993f9ce0726cbd37cd12fc54b469 Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Sun, 21 Feb 2016 23:55:47 -0500 Subject: [PATCH] halp open handed cavity item removal not working, help_shake_act seems to be taking priotity, debrained sprite not appearing right on brain removal --- .../mob/living/carbon/brain/brain_item.dm | 8 ++--- .../living/carbon/human/human_attackhand.dm | 15 ++++---- code/modules/projectiles/guns/mounted.dm | 4 +-- code/modules/surgery/bones.dm | 4 +-- code/modules/surgery/implant.dm | 34 ++++++++++-------- code/modules/surgery/organs/augments_eyes.dm | 2 +- .../surgery/organs/subtypes/standard.dm | 26 +++++++++----- icons/obj/gun.dmi | Bin 80216 -> 80259 bytes 8 files changed, 53 insertions(+), 40 deletions(-) diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 5a6be41e159..c554071348b 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -70,9 +70,9 @@ B.transfer_identity(user) - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_hair(0) + if(istype(owner,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = owner + H.update_hair(1) ..() @@ -86,7 +86,7 @@ brain_already_exists = 1 var/mob/living/carbon/human/H = target - H.update_hair(0) + H.update_hair(1) if(!brain_already_exists) if(brainmob) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 3fd09f42d40..36e19df5f35 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -61,13 +61,14 @@ if(I_HELP) if(can_operate(M)) if(health >= config.health_threshold_crit) - for(var/datum/surgery/S in M.surgeries) - if(istype(S.get_surgery_step(), /datum/surgery_step/cavity/place_item)) - return 1 - else - help_shake_act(M) - add_logs(src, M, "shaked") - return 1 + if(M.surgeries.len) + for(var/datum/surgery/S in M.surgeries) + if(istype(S.get_surgery_step(), /datum/surgery_step/cavity/place_item)) + return 1 + else + help_shake_act(M) + add_logs(src, M, "shaked") + return 1 if(health >= config.health_threshold_crit) help_shake_act(M) add_logs(src, M, "shaked") diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index bd2cf712a49..d0e023d0d6d 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -17,9 +17,9 @@ /obj/item/weapon/gun/energy/laser/mounted name = "mounted laser" desc = "An arm mounted cannon that fires lethal lasers. Doesn't come with a charge beam." - icon_state = "armcannon" + icon_state = "armcannonlase" item_state = "armcannonlase" - modifystate = "armcannon" + modifystate = "armcannonlase" force = 5 self_recharge = 1 flags = NODROP diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm index b01d4ffac91..d54c189ded3 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -19,8 +19,8 @@ var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) if(affected && (affected.status & ORGAN_ROBOT)) return 0 - if(affected && !affected.encased) - return 0 + if(affected && (affected.status & ORGAN_BROKEN)) + return 1 if(target.get_species() == "Machine") return 0 if(target.get_species() == "Diona") diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index 60eab546048..a27e5baea3e 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -6,7 +6,7 @@ ////////////////////////////////////////////////////////////////// /datum/surgery/cavity_implant - name = "item implant/removal" + name = "cavity implant/removal" steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/open_encased/saw, /datum/surgery_step/open_encased/retract, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/open_encased/close,/datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize) @@ -14,7 +14,7 @@ /datum/surgery/cavity_implant/soft - name = "item implant/removal" + name = "cavity implant/removal" steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cut_open, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/generic/cauterize) possible_locs = list("groin") @@ -175,19 +175,23 @@ return 0//fail if(tool) - user.visible_message(" [user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \ - " You put \the [tool] inside [target]'s [get_cavity(affected)] cavity." ) - if (IC || (tool.w_class > get_max_wclass(affected)/2 && prob(50) && !(affected.status & ORGAN_ROBOT))) - user << " You tear some vessels trying to fit the object in the cavity." - var/datum/wound/internal_bleeding/I = new () - affected.wounds += I - affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1) - user.drop_item() - affected.hidden = tool - target.internal_organs += tool - tool.loc = target - affected.cavity = 0 - return 1 + if(IC) + user << "There seems to be something in there already!" + return 1 + else + user.visible_message(" [user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \ + " You put \the [tool] inside [target]'s [get_cavity(affected)] cavity." ) + if((tool.w_class > get_max_wclass(affected)/2 && prob(50) && !(affected.status & ORGAN_ROBOT))) + user << " You tear some vessels trying to fit the object in the cavity." + var/datum/wound/internal_bleeding/I = new () + affected.wounds += I + affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1) + user.drop_item() + affected.hidden = tool + target.internal_organs += tool + tool.loc = target + affected.cavity = 0 + return 1 else if(IC) user.visible_message("[user] pulls [IC] out of [target]'s [target_zone]!", "You pull [IC] out of [target]'s [target_zone].") diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 2d787db5fe5..02ece0fc22c 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -112,7 +112,7 @@ /obj/item/organ/internal/cyberimp/eyes/hud/medical name = "Medical HUD implant" desc = "These cybernetic eye implants will display a medical HUD over everything you see." - eye_colour = list(0,0,50) + eye_colour = list(0,0,208) implant_color = "#00FFFF" origin_tech = "materials=4;programming=3;biotech=4" aug_message = "You suddenly see health bars floating above people's heads..." diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index e0f4aec8743..319016e2213 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -84,7 +84,7 @@ can_stand = 1 /obj/item/organ/external/foot/removed() - if(owner) owner.unEquip(owner.shoes) + if(owner.shoes) owner.unEquip(owner.shoes) ..() /obj/item/organ/external/foot/right @@ -109,7 +109,8 @@ can_grasp = 1 /obj/item/organ/external/hand/removed() - owner.unEquip(owner.gloves) + if(owner.gloves) + owner.unEquip(owner.gloves) ..() /obj/item/organ/external/hand/right @@ -140,14 +141,21 @@ if(!istype(dna)) dna = owner.dna.Clone() name = "[dna.real_name]'s head" - owner.unEquip(owner.glasses) - owner.unEquip(owner.head) - owner.unEquip(owner.l_ear) - owner.unEquip(owner.r_ear) - owner.unEquip(owner.wear_mask) + if(owner.glasses) + owner.unEquip(owner.glasses) + if(owner.head) + owner.unEquip(owner.head) + if(owner.l_ear) + owner.unEquip(owner.l_ear) + if(owner.r_ear) + owner.unEquip(owner.r_ear) + if(owner.wear_mask) + owner.unEquip(owner.wear_mask) spawn(1) - owner.update_hair() - owner.update_fhair() + if(owner.h_style)//runtimer no runtiming + owner.update_hair() + if(owner.f_style) + owner.update_fhair() ..() /obj/item/organ/external/head/replaced() diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index dca7c439d3519ab4db16a8643ed9f896aa47316f..9f00003bf1c9404cfd75298b364d02f3dbb25dde 100644 GIT binary patch delta 3513 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 delta 3447 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