diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm
index f4dc7d5d0d..8c7acf05a2 100644
--- a/code/__defines/mobs.dm
+++ b/code/__defines/mobs.dm
@@ -147,6 +147,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 22f481e9f1..7a66deb3c4 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)
@@ -1012,13 +1012,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)