From a9d405cdfbdacd5d485ff63f144e9237d1a48d5b Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 14 Jun 2021 08:39:29 +0200 Subject: [PATCH] [MIRROR] Blindness-related bug fixes and code improvements (#6291) * Blindness-related bug fix and code improvements (#59616) TRAIT_BLIND caused by the hypnochair or by being unconscious (eg. sleeping) will no longer prevent you from being flashed. Moves all raw text strings used in become_blind and cure_blind calls (as well as nanites in general with ADD_TRAIT) into defines. Code changes not in changelog due to not being even the slightest bit of player facing. * Blindness-related bug fixes and code improvements Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com> --- code/__DEFINES/traits.dm | 5 +++++ code/game/machinery/hypnochair.dm | 8 ++++---- code/modules/clothing/glasses/_glasses.dm | 4 ++-- code/modules/mob/living/carbon/carbon_defense.dm | 2 +- .../impure_reagents/impure_medicine_reagents.dm | 4 ++-- .../research/nanites/nanite_programs/buffing.dm | 8 ++++---- .../research/nanites/nanite_programs/suppression.dm | 12 ++++++------ .../research/nanites/nanite_programs/utility.dm | 2 +- code/modules/surgery/organs/eyes.dm | 4 ++-- 9 files changed, 27 insertions(+), 22 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 29dfd30498e..9f47245254e 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -545,6 +545,11 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STASIS_MUTE "stasis" #define GENETICS_SPELL "genetics_spell" #define EYES_COVERED "eyes_covered" +#define HYPNOCHAIR_TRAIT "hypnochair" +#define NANITES_TRAIT "nanites" +#define FLASHLIGHT_EYES "flashlight_eyes" +#define IMPURE_OCULINE "impure_oculine" +#define BLINDFOLD_TRAIT "blindfolded" #define TRAIT_SANTA "santa" #define SCRYING_ORB "scrying-orb" #define ABDUCTOR_ANTAGONIST "abductor-antagonist" diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index fa64a839cf6..721df88090e 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -93,8 +93,8 @@ victim = C if(!(C.get_eye_protection() > 0)) to_chat(C, "Strobing coloured lights assault you relentlessly! You're losing your ability to think straight!") - C.become_blind("hypnochair") - ADD_TRAIT(C, TRAIT_DEAF, "hypnochair") + C.become_blind(HYPNOCHAIR_TRAIT) + ADD_TRAIT(C, TRAIT_DEAF, HYPNOCHAIR_TRAIT) interrogating = TRUE START_PROCESSING(SSobj, src) start_time = world.time @@ -127,8 +127,8 @@ if(QDELETED(victim) || victim != occupant) victim = null return - victim.cure_blind("hypnochair") - REMOVE_TRAIT(victim, TRAIT_DEAF, "hypnochair") + victim.cure_blind(HYPNOCHAIR_TRAIT) + REMOVE_TRAIT(victim, TRAIT_DEAF, HYPNOCHAIR_TRAIT) if(!(victim.get_eye_protection() > 0)) victim.cure_trauma_type(/datum/brain_trauma/severe/hypnotic_trigger, TRAUMA_RESILIENCE_SURGERY) if(prob(90)) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index dbb94cd6e6e..648ec39ffc0 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -360,11 +360,11 @@ /obj/item/clothing/glasses/blindfold/equipped(mob/living/carbon/human/user, slot) . = ..() if(slot == ITEM_SLOT_EYES) - user.become_blind("blindfold_[REF(src)]") + user.become_blind(BLINDFOLD_TRAIT) /obj/item/clothing/glasses/blindfold/dropped(mob/living/carbon/human/user) ..() - user.cure_blind("blindfold_[REF(src)]") + user.cure_blind(BLINDFOLD_TRAIT) /obj/item/clothing/glasses/trickblindfold name = "blindfold" diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9660f1888a5..717976c568e 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -2,7 +2,7 @@ /mob/living/carbon/get_eye_protection() . = ..() - if(HAS_TRAIT(src, TRAIT_BLIND)) + if(HAS_TRAIT_NOT_FROM(src, TRAIT_BLIND, list(UNCONSCIOUS_TRAIT, HYPNOCHAIR_TRAIT))) return INFINITY //For all my homies that can not see in the world var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) if(!E) diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm index 9f39e7f4ac1..79eec1d3441 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm @@ -746,13 +746,13 @@ Basically, we fill the time between now and 2s from now with hands based off the if(headache) return ..() if(DT_PROB(100*(1-creation_purity), delta_time)) - owner.become_blind("oculine_impure") + owner.become_blind(IMPURE_OCULINE) to_chat(owner, "You suddenly develop a pounding headache as your vision fluxuates.") headache = TRUE ..() /datum/reagent/inverse/oculine/on_mob_end_metabolize(mob/living/owner) - owner.cure_blind("oculine_impure") + owner.cure_blind(IMPURE_OCULINE) if(headache) to_chat(owner, "Your headache clears up!") ..() diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index a791a824bbb..5987105a08e 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -87,11 +87,11 @@ /datum/nanite_program/conductive/enable_passive_effect() . = ..() - ADD_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, "nanites") + ADD_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, NANITES_TRAIT) /datum/nanite_program/conductive/disable_passive_effect() . = ..() - REMOVE_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, "nanites") + REMOVE_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, NANITES_TRAIT) /datum/nanite_program/mindshield name = "Mental Barrier" @@ -102,10 +102,10 @@ /datum/nanite_program/mindshield/enable_passive_effect() . = ..() if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev, TRUE)) //won't work if on a rev, to avoid having implanted revs. - ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") + ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, NANITES_TRAIT) host_mob.sec_hud_set_implants() /datum/nanite_program/mindshield/disable_passive_effect() . = ..() - REMOVE_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") + REMOVE_TRAIT(host_mob, TRAIT_MINDSHIELD, NANITES_TRAIT) host_mob.sec_hud_set_implants() diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index 988f1702ac0..fa3878eb62a 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -62,11 +62,11 @@ /datum/nanite_program/pacifying/enable_passive_effect() . = ..() - ADD_TRAIT(host_mob, TRAIT_PACIFISM, "nanites") + ADD_TRAIT(host_mob, TRAIT_PACIFISM, NANITES_TRAIT) /datum/nanite_program/pacifying/disable_passive_effect() . = ..() - REMOVE_TRAIT(host_mob, TRAIT_PACIFISM, "nanites") + REMOVE_TRAIT(host_mob, TRAIT_PACIFISM, NANITES_TRAIT) /datum/nanite_program/blinding name = "Blindness" @@ -76,11 +76,11 @@ /datum/nanite_program/blinding/enable_passive_effect() . = ..() - host_mob.become_blind("nanites") + host_mob.become_blind(NANITES_TRAIT) /datum/nanite_program/blinding/disable_passive_effect() . = ..() - host_mob.cure_blind("nanites") + host_mob.cure_blind(NANITES_TRAIT) /datum/nanite_program/mute name = "Mute" @@ -90,11 +90,11 @@ /datum/nanite_program/mute/enable_passive_effect() . = ..() - ADD_TRAIT(host_mob, TRAIT_MUTE, "nanites") + ADD_TRAIT(host_mob, TRAIT_MUTE, NANITES_TRAIT) /datum/nanite_program/mute/disable_passive_effect() . = ..() - REMOVE_TRAIT(host_mob, TRAIT_MUTE, "nanites") + REMOVE_TRAIT(host_mob, TRAIT_MUTE, NANITES_TRAIT) /datum/nanite_program/fake_death name = "Death Simulation" diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index ba543f03307..98b362f1058 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -33,7 +33,7 @@ /datum/nanite_program/monitoring/enable_passive_effect() . = ..() - ADD_TRAIT(host_mob, TRAIT_NANITE_MONITORING, "nanites") //Shows up in diagnostic and medical HUDs as a small blinking icon + ADD_TRAIT(host_mob, TRAIT_NANITE_MONITORING, NANITES_TRAIT) //Shows up in diagnostic and medical HUDs as a small blinking icon if(ishuman(host_mob)) GLOB.nanite_sensors_list |= host_mob host_mob.hud_set_nanite_indicator() diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 84c55005d0d..f79b4ed8129 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -214,14 +214,14 @@ eye.on = TRUE eye.forceMove(victim) eye.update_brightness(victim) - victim.become_blind("flashlight_eyes") + victim.become_blind(FLASHLIGHT_EYES) /obj/item/organ/eyes/robotic/flashlight/Remove(mob/living/carbon/victim, special = 0) eye.on = FALSE eye.update_brightness(victim) eye.forceMove(src) - victim.cure_blind("flashlight_eyes") + victim.cure_blind(FLASHLIGHT_EYES) ..() // Welding shield implant