diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 6a1767bd0a..5c50973691 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -354,35 +354,36 @@ /obj/item/weapon/weldingtool/proc/eyecheck(mob/user as mob) if(!iscarbon(user)) return 1 var/safety = user:eyecheck() - var/mob/living/carbon/human/H = user - var/datum/organ/internal/eyes/E = H.internal_organs["eyes"] - switch(safety) - if(1) - usr << "\red Your eyes sting a little." - E.damage += rand(1, 2) - if(E.damage > 12) - user.eye_blurry += rand(3,6) - if(0) - usr << "\red Your eyes burn." - E.damage += rand(2, 4) - if(E.damage > 10) - E.damage += rand(4,10) - if(-1) - usr << "\red Your thermals intensify the welder's glow. Your eyes itch and burn severely." - user.eye_blurry += rand(12,20) - E.damage += rand(12, 16) - if(E.damage > 10 && safety < 2) - user << "\red Your eyes are really starting to hurt. This can't be good for you!" - if (E.damage >= E.min_broken_damage) - user << "\red You go blind!" - user.sdisabilities |= BLIND - else if (E.damage >= E.min_bruised_damage) - user << "\red You go blind!" - user.eye_blind = 5 - user.eye_blurry = 5 - user.disabilities |= NEARSIGHTED - spawn(100) - user.disabilities &= ~NEARSIGHTED + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + var/datum/organ/internal/eyes/E = H.internal_organs["eyes"] + switch(safety) + if(1) + usr << "\red Your eyes sting a little." + E.damage += rand(1, 2) + if(E.damage > 12) + user.eye_blurry += rand(3,6) + if(0) + usr << "\red Your eyes burn." + E.damage += rand(2, 4) + if(E.damage > 10) + E.damage += rand(4,10) + if(-1) + usr << "\red Your thermals intensify the welder's glow. Your eyes itch and burn severely." + user.eye_blurry += rand(12,20) + E.damage += rand(12, 16) + if(E.damage > 10 && safety < 2) + user << "\red Your eyes are really starting to hurt. This can't be good for you!" + if (E.damage >= E.min_broken_damage) + user << "\red You go blind!" + user.sdisabilities |= BLIND + else if (E.damage >= E.min_bruised_damage) + user << "\red You go blind!" + user.eye_blind = 5 + user.eye_blurry = 5 + user.disabilities |= NEARSIGHTED + spawn(100) + user.disabilities &= ~NEARSIGHTED return diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 7fb4eaf4dc..35be9ba4e8 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -37,14 +37,8 @@ src.damage += amount var/datum/organ/external/parent = owner.get_organ(parent_organ) - var/datum/organ/internal/eyes/E - var/datum/organ/internal/heart/H if (!silent) - if(istype(E)) - owner.custom_pain("Your eyes burn like mad!", 1) - if(istype(H)) - owner.custom_pain("You feel a sudden, stabbing pain inside of your [parent.display_name]!", 1) - else owner.custom_pain("Something inside your [parent.display_name] hurts a lot.", 1) + owner.custom_pain("Something inside your [parent.display_name] hurts a lot.", 1) /datum/organ/internal/proc/emp_act(severity) diff --git a/code/modules/surgery/eye.dm b/code/modules/surgery/eye.dm index 763fa63bb0..b65aaf9608 100644 --- a/code/modules/surgery/eye.dm +++ b/code/modules/surgery/eye.dm @@ -44,7 +44,7 @@ user.visible_message("\red [user]'s hand slips, slicing [target]'s eyes wth \the [tool]!" , \ "\red Your hand slips, slicing [target]'s eyes wth \the [tool]!" ) affected.createwound(CUT, 10) - eyes.take_damage(5, 1) + eyes.take_damage(5, 0) /datum/surgery_step/eye/lift_eyes allowed_tools = list( @@ -74,7 +74,7 @@ user.visible_message("\red [user]'s hand slips, damaging [target]'s eyes with \the [tool]!", \ "\red Your hand slips, damaging [target]'s eyes with \the [tool]!") target.apply_damage(10, BRUTE, affected) - eyes.take_damage(5, 1) + eyes.take_damage(5, 0) /datum/surgery_step/eye/mend_eyes allowed_tools = list( @@ -105,7 +105,7 @@ user.visible_message("\red [user]'s hand slips, stabbing \the [tool] into [target]'s eye!", \ "\red Your hand slips, stabbing \the [tool] into [target]'s eye!") target.apply_damage(10, BRUTE, affected) - eyes.take_damage(5, 1) + eyes.take_damage(5, 0) /datum/surgery_step/eye/cauterize allowed_tools = list( @@ -141,4 +141,4 @@ user.visible_message("\red [user]'s hand slips, searing [target]'s eyes with \the [tool]!", \ "\red Your hand slips, searing [target]'s eyes with \the [tool]!") target.apply_damage(5, BURN, affected) - eyes.take_damage(5, 1) \ No newline at end of file + eyes.take_damage(5, 0) \ No newline at end of file diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm index 4c8c029772..50b944d276 100644 --- a/code/modules/surgery/ribcage.dm +++ b/code/modules/surgery/ribcage.dm @@ -303,38 +303,37 @@ var/datum/organ/external/chest/affected = target.get_organ("chest") user.visible_message("\red [user]'s hand slips, getting mess and tearing the inside of [target]'s chest with \the [tool]!", \ "\red Your hand slips, getting mess and tearing the inside of [target]'s chest with \the [tool]!") - switch(tool) - if(/obj/item/stack/medical/advanced/bruise_pack) - if(heart.damage > 0) - heart.take_damage(2, 0) - if(liver.damage > 0) - liver.take_damage(2, 0) - if(kidney.damage > 0) - kidney.take_damage(2, 0) - if(lungs.damage > 0) - lungs.take_damage(2, 0) - target.adjustToxLoss(5) - if(/obj/item/stack/medical/bruise_pack/tajaran) - if(heart.damage > 0) - heart.take_damage(2, 0) - if(liver.damage > 0) - liver.take_damage(2, 0) - if(kidney.damage > 0) - kidney.take_damage(2, 0) - if(lungs.damage > 0) - lungs.take_damage(2, 0) - target.adjustToxLoss(7) - if(/obj/item/stack/medical/bruise_pack) - if(heart.damage > 0) - heart.take_damage(5, 0) - if(liver.damage > 0) - liver.take_damage(5, 0) - if(kidney.damage > 0) - kidney.take_damage(5, 0) - if(lungs.damage > 0) - lungs.take_damage(5, 0) - target.adjustToxLoss(10) - affected.createwound(CUT, 5) + if (istype(tool, /obj/item/stack/medical/advanced/bruise_pack)) + if(heart.damage > 0) + heart.take_damage(2, 0) + if(liver.damage > 0) + liver.take_damage(2, 0) + if(kidney.damage > 0) + kidney.take_damage(2, 0) + if(lungs.damage > 0) + lungs.take_damage(2, 0) + target.adjustToxLoss(5) + if (istype(tool, /obj/item/stack/medical/bruise_pack/tajaran)) + if(heart.damage > 0) + heart.take_damage(2, 0) + if(liver.damage > 0) + liver.take_damage(2, 0) + if(kidney.damage > 0) + kidney.take_damage(2, 0) + if(lungs.damage > 0) + lungs.take_damage(2, 0) + target.adjustToxLoss(7) + if (istype(tool, /obj/item/stack/medical/bruise_pack)) + if(heart.damage > 0) + heart.take_damage(5, 0) + if(liver.damage > 0) + liver.take_damage(5, 0) + if(kidney.damage > 0) + kidney.take_damage(5, 0) + if(lungs.damage > 0) + lungs.take_damage(5, 0) + target.adjustToxLoss(10) + affected.createwound(CUT, 5) /datum/surgery_step/ribcage/fix_chest_internal_robot //For artificial organs allowed_tools = list( @@ -348,32 +347,28 @@ can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/is_chest_organ_damaged = 0 + var/datum/organ/internal/heart/heart = target.internal_organs["heart"] var/datum/organ/external/chest/chest = target.get_organ("chest") for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0) is_chest_organ_damaged = 1 break - return ..() && is_chest_organ_damaged && target.op_stage.ribcage == 2 + return ..() && is_chest_organ_damaged && heart.robotic == 2 && target.op_stage.ribcage == 2 begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/internal/heart/heart = target.internal_organs["heart"] if(heart.damage > 0) - if(heart.robotic == 2) - user.visible_message("[user] starts mending the mechanisms on [target]'s heart with \the [tool].", \ - "You start mending the mechanisms on [target]'s heart with \the [tool]." ) - else - user.visible_message("[user] cannot mend an organic heart with this!") - return + user.visible_message("[user] starts mending the mechanisms on [target]'s heart with \the [tool].", \ + "You start mending the mechanisms on [target]'s heart with \the [tool]." ) target.custom_pain("The pain in your chest is living hell!",1) ..() end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/internal/heart/heart = target.internal_organs["heart"] if(heart.damage > 0) - if(heart.robotic == 2) - user.visible_message("\blue [user] repairs [target]'s heart with \the [tool].", \ - "\blue You repair [target]'s heart with \the [tool]." ) - heart.damage = 0 + user.visible_message("\blue [user] repairs [target]'s heart with \the [tool].", \ + "\blue You repair [target]'s heart with \the [tool]." ) + heart.damage = 0 fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/internal/heart/heart = target.internal_organs["heart"] @@ -385,16 +380,17 @@ ////////////////////////////////////////////////////////////////// // HEART SURGERY // ////////////////////////////////////////////////////////////////// +// To be finished after some tests. +// /datum/surgery_step/ribcage/heart/cut +// allowed_tools = list( +// /obj/item/weapon/scalpel = 100, \ +// /obj/item/weapon/kitchenknife = 75, \ +// /obj/item/weapon/shard = 50, \ +// ) -/datum/surgery_step/ribcage/heart/cut - allowed_tools = list( - /obj/item/weapon/scalpel = 100, \ - /obj/item/weapon/kitchenknife = 75, \ - /obj/item/weapon/shard = 50, \ - ) +// min_duration = 30 +// max_duration = 40 - min_duration = 30 - max_duration = 40 +// can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) +// return ..() && target.op_stage.ribcage == 2 - can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return ..() && target.op_stage.ribcage == 2 diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index a695f18c18..c24d402315 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ