From 905cb5943dad39e93d47a873e76abf25edc052bc Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 9 Jan 2016 13:24:46 +1030 Subject: [PATCH] Readds blindness removal to imida zoline and organ surgery. Stops imidazoline healing robotic eyes. --- code/__defines/mobs.dm | 1 + code/game/objects/items/weapons/autopsy.dm | 2 +- code/modules/mob/hear_say.dm | 4 ++-- code/modules/mob/living/carbon/human/life.dm | 2 +- code/modules/mob/living/silicon/robot/life.dm | 4 ++-- code/modules/mob/mob.dm | 10 +++++----- .../Chemistry-Reagents-Medicine.dm | 13 ++++++++++--- code/modules/surgery/organs_internal.dm | 5 ++++- code/modules/surgery/robotics.dm | 2 ++ 9 files changed, 28 insertions(+), 15 deletions(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index aa3e1741b5..5e00931221 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -145,6 +145,7 @@ #define O_BRAIN "brain" #define O_LIVER "liver" #define O_KIDNEYS "kidneys" +#define O_APPENDIX "appendix" #define O_PLASMA "plasma vessel" #define O_HIVE "hive node" #define O_NUTRIENT "nutrient vessel" diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm index d9bd30e788..c17d8ba650 100644 --- a/code/game/objects/items/weapons/autopsy.dm +++ b/code/game/objects/items/weapons/autopsy.dm @@ -3,7 +3,7 @@ //please preference put stuff where it's easy to find - C /obj/item/weapon/autopsy_scanner - name = "autopsy scanner" + name = "biopsy scanner" desc = "Extracts information on wounds." icon = 'icons/obj/autopsy_scanner.dmi' icon_state = "" diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index bd06a63cc9..f925c32b79 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -59,7 +59,7 @@ if(client.prefs.toggles & CHAT_GHOSTEARS && speaker in view(src)) message = "[message]" - if(sdisabilities & DEAF || ear_deaf) + if((sdisabilities & DEAF) || ear_deaf) if(!language || !(language.flags & INNATE)) // INNATE is the flag for audible-emote-language, so we don't want to show an "x talks but you cannot hear them" message if it's set if(speaker == src) src << "You cannot hear yourself speak!" @@ -187,7 +187,7 @@ formatted = language.format_message_radio(message, verb) else formatted = "[verb], \"[message]\"" - if(sdisabilities & DEAF || ear_deaf) + if((sdisabilities & DEAF) || ear_deaf) if(prob(20)) src << "You feel your headset vibrate but can hear nothing from it!" else diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 971e8c4a6f..085e070f0a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -45,7 +45,7 @@ //blinded get reset each cycle and then get activated later in the //code. Very ugly. I dont care. Moving this stuff here so its easy //to find it. - blinded = null + blinded = 0 fire_alert = 0 //Reset this here, because both breathe() and handle_environment() have a chance to set it. //TODO: seperate this out diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 2008edec86..f28c464cea 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -114,9 +114,9 @@ src.density = !( src.lying ) - if ((src.sdisabilities & BLIND)) + if (src.sdisabilities & BLIND) src.blinded = 1 - if ((src.sdisabilities & DEAF)) + if (src.sdisabilities & DEAF) src.ear_deaf = 1 if (src.eye_blurry > 0) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 2b64078149..a70b783cf1 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -56,19 +56,19 @@ if(!client) return if (type) - if(type & 1 && (sdisabilities & BLIND || blinded || paralysis) )//Vision related + if((type & 1) && ((sdisabilities & BLIND) || blinded || paralysis) )//Vision related if (!( alt )) return else msg = alt type = alt_type - if (type & 2 && (sdisabilities & DEAF || ear_deaf))//Hearing related + if ((type & 2) && ((sdisabilities & DEAF) || ear_deaf))//Hearing related if (!( alt )) return else msg = alt type = alt_type - if ((type & 1 && sdisabilities & BLIND)) + if ((type & 1) && (sdisabilities & BLIND)) return // Added voice muffling for Issue 41. if(stat == UNCONSCIOUS || sleeping > 0) @@ -988,13 +988,13 @@ mob/proc/yank_out_object() if (ishuman(U)) var/mob/living/carbon/human/human_user = U human_user.bloody_hands(H) - + else if(issilicon(src)) var/mob/living/silicon/robot/R = src R.embedded -= selection R.adjustBruteLoss(5) R.adjustFireLoss(10) - + selection.forceMove(get_turf(src)) if(!(U.l_hand && U.r_hand)) U.put_in_hands(selection) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index e947e9ea15..08ec5df6c5 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -256,9 +256,13 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] - if(E && istype(E)) + if(istype(E)) + if(E.status & ORGAN_ROBOT) + return if(E.damage > 0) E.damage = max(E.damage - 5 * removed, 0) + if(E.damage <= 5 && E.organ_tag == O_EYES) + H.sdisabilities &= ~BLIND /datum/reagent/peridaxon name = "Peridaxon" @@ -272,10 +276,13 @@ /datum/reagent/peridaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(ishuman(M)) var/mob/living/carbon/human/H = M - for(var/obj/item/organ/I in H.internal_organs) - if((I.damage > 0) && !(I.status & ORGAN_ROBOT)) //Peridaxon heals only non-robotic organs + if(I.status & ORGAN_ROBOT) + continue + if(I.damage > 0) //Peridaxon heals only non-robotic organs I.damage = max(I.damage - removed, 0) + if(I.damage <= 5 && I.organ_tag == O_EYES) + H.sdisabilities &= ~BLIND /datum/reagent/ryetalyn name = "Ryetalyn" diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 41b6ad8cd4..48bb874290 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -87,6 +87,7 @@ if (!hasorgans(target)) return + var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/I in affected.internal_organs) @@ -109,12 +110,14 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - for(var/obj/item/organ/I in affected.internal_organs) + for(var/obj/item/organ/internal/I in affected.internal_organs) if(I && I.damage > 0) if(!(I.status & ORGAN_ROBOT)) user.visible_message("[user] treats damage to [target]'s [I.name] with [tool_name].", \ "You treat damage to [target]'s [I.name] with [tool_name]." ) I.damage = 0 + if(I.organ_tag == O_EYES) + target.sdisabilities &= ~BLIND fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 7ef998f3f3..107f3a2977 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -246,6 +246,8 @@ user.visible_message("[user] repairs [target]'s [I.name] with [tool].", \ "You repair [target]'s [I.name] with [tool]." ) I.damage = 0 + if(I.organ_tag == O_EYES) + target.sdisabilities &= ~BLIND fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)