diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 4ffe2a33052..1d6e07b04c6 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -28,7 +28,7 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 2) RefreshParts() - + /obj/machinery/bodyscanner/upgraded/New() ..() component_parts = list() @@ -129,9 +129,9 @@ usr << "[L.name] will not fit into the body scanner because they have a slime latched onto their head." return if(L == user) - visible_message("[user] climbs into the body scanner.", 3) + visible_message("[user] climbs into the body scanner.") else - visible_message("[user] puts [L.name] into the body scanner.", 3) + visible_message("[user] puts [L.name] into the body scanner.") if (L.client) L.client.perspective = EYE_PERSPECTIVE @@ -350,21 +350,21 @@ /obj/machinery/body_scanconsole/attack_ai(user as mob) return attack_hand(user) - + /obj/machinery/body_scanconsole/attack_ghost(user as mob) return attack_hand(user) /obj/machinery/body_scanconsole/attack_hand(user as mob) if(stat & (NOPOWER|BROKEN)) return - + if (panel_open) user << "Close the maintenance panel first." return - + if(!src.connected) findscanner() - + if (src.connected) if(!connected.occupant) user << "The scanner is empty." diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index e20a8d1c491..9905345926b 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -513,16 +513,25 @@ datum/reagent/morphine/addiction_act_stage4(var/mob/living/M as mob) datum/reagent/oculine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.eye_blurry = max(M.eye_blurry-5 , 0) - M.eye_blind = max(M.eye_blind-5 , 0) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"] - if(istype(E)) - if(E.damage > 0) - E.damage -= 1 + if(prob(80)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"] + if(istype(E)) + E.damage = max(E.damage-1, 0) + M.eye_blurry = max(M.eye_blurry-1 , 0) + M.ear_damage = max(M.ear_damage-1, 0) + if(prob(50)) + M.disabilities &= ~NEARSIGHTED + if(prob(30)) + M.sdisabilities &= ~BLIND + M.eye_blind = 0 + if(M.ear_damage <= 25) + if(prob(30)) + M.ear_deaf = 0 ..() return + /datum/chemical_reaction/oculine name = "Oculine" id = "oculine" diff --git a/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_med.dm b/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_med.dm index 02e1f4a65cd..809a8dfd34d 100644 --- a/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_med.dm +++ b/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_med.dm @@ -30,13 +30,6 @@ result_amount = 2 mix_message = "The solvent extracts an antibiotic compound from the fungus." - audioline - name = "Audioline" - id = "audioline" - result = "audioline" - required_reagents = list("spaceacillin" = 1, "salglu_solution" = 1, "epinephrine" = 1) - result_amount = 3 - rezadone name = "Rezadone" id = "rezadone" diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm index 696fa6354a5..2bd1ec2c939 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_med.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm @@ -61,20 +61,6 @@ ..() return -/datum/reagent/audioline - name = "Audioline" - id = "audioline" - description = "Heals ear damage." - reagent_state = LIQUID - color = "#6600FF" // rgb: 100, 165, 255 - -/datum/reagent/audioline/on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.ear_damage = 0 - M.ear_deaf = 0 - ..() - return - /datum/reagent/mitocholide name = "Mitocholide" id = "mitocholide" @@ -91,7 +77,7 @@ for(var/name in H.internal_organs_by_name) var/obj/item/organ/I = H.internal_organs_by_name[name] if(I.damage > 0) - I.damage -= 0.20 + I.damage = max(I.damage-0.2, 0) ..() return diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 6fe84897c3b..d0f70b6482b 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -156,6 +156,14 @@ "\blue You treat damage to [target]'s [I.name] with [tool_name]." ) I.damage = 0 + if(target_zone == "head") + target.disabilities &= ~NEARSIGHTED + target.sdisabilities &= ~BLIND + target.eye_blurry = 0 + target.eye_blind = 0 + target.ear_damage = 0 + target.ear_deaf = 0 + fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) if (!hasorgans(target)) @@ -193,7 +201,7 @@ if (!..()) return 0 - + var/obj/item/organ/external/affected = target.get_organ(target_zone) if(!(affected && !(affected.status & ORGAN_ROBOT))) @@ -310,7 +318,7 @@ if(!istype(O)) return 0 - + if((affected.status & ORGAN_ROBOT) && !(O.status & ORGAN_ROBOT)) user << "You cannot install a naked organ into a robotic body." return 2