Changes the eldritch painting effects from a brain trauma to a status effect. Large doses of holy water can remove the effect early, and it protects you from inflictions while in your system. (#91496)

## About The Pull Request

What it says on the tin. 

Inflicts status effects instead of brain traumas.

Needs a large dosage (somewhere around 50 units, I don't think the code
comments are accurate about the dosage) to remove the status effect.

Having any amount of holy water in your system prevents the paintings
from inflicting its status effect on you.

## Why It's Good For The Game

So I had a little event involving these paintings, and I...vastly
underestimated just how horrifically disruptive these paintings can be
and how few options you have to deal with them adequately if there are a
lot of them around. They can do some serious damage.

They probably don't exactly see much use, not because of their lack of
effectiveness, but because they simply do not push the heretic closer to
victory. Most heretics ignore these kinds of 'sabotage' tools because
they're slow like that. But if someone is particularly eager to use
them, they might make enough of a mess to, say, force a shuttle call
early as the station rusts mysteriously all around them and everyone
starts to crater in sanity. (moon heretics would love that if they
weren't speedrunning ascension)

So, traumas suck and also resolving the trauma does not necessarily give
you the means to stop getting more traumas or deal with future traumas
while dealing with the paintings, Holy water is already a tool for
dealing with magical stuff, but in of itself it is not necessarily
immediately sourcable unless there is a chaplain, or botany or cargo has
been on ball. So it still reliant on someone else to help combat it than
just some random joe shmoe with a wirecutter. I think this is mostly net
neutral balance wise enough to be considered 'quality of life' if only
that it makes engagement better while still being largely as impactful
as it ever was due to the fact people will likely still suffer/inflict
damage on the station from coming into contact with the painting, as
well as the removal still taking an amount of time and a large dosage of
holy water, all the while the effect still takes place.

## Changelog
🆑
qol: Eldritch paintings no longer inflict brain traumas on you that need
surgery to remove. Instead, they inflict a status effect that can be
protected from and removed using large doses of holy water.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
This commit is contained in:
necromanceranne
2025-06-16 11:32:51 +10:00
committed by Roxy
parent a663f14295
commit f47dfdb32b
8 changed files with 154 additions and 124 deletions
-105
View File
@@ -306,111 +306,6 @@
REMOVE_TRAIT(owner, TRAIT_ILLITERATE, TRAUMA_TRAIT)
..()
/*
* Brain traumas that eldritch paintings apply
* This one is for "The Sister and He Who Wept" or /obj/structure/sign/painting/eldritch
*/
/datum/brain_trauma/severe/weeping
name = "Psychotic Depression"
desc = "Patient is suffering from severe depressive episodes. Patient sometimes hallucinates during these episodes."
scan_desc = "depression"
gain_text = span_warning("The weeping... It haunts my mind...")
lose_text = span_notice("Your fixation ends. You feel significantly less stressed.")
random_gain = FALSE
/// Our cooldown declare for causing hallucinations
COOLDOWN_DECLARE(weeping_hallucinations)
/datum/brain_trauma/severe/weeping/on_life(seconds_per_tick, times_fired)
if(owner.stat != CONSCIOUS || owner.IsSleeping() || owner.IsUnconscious())
return
// If they have examined a painting recently
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
return
if(!COOLDOWN_FINISHED(src, weeping_hallucinations))
return
owner.cause_hallucination(/datum/hallucination/delusion/preset/heretic, "Caused by The Weeping brain trauma")
owner.add_mood_event("eldritch_weeping", /datum/mood_event/eldritch_painting/weeping)
COOLDOWN_START(src, weeping_hallucinations, 10 SECONDS)
return ..()
//This one is for "The First Desire" or /obj/structure/sign/painting/eldritch/desire
/datum/brain_trauma/severe/flesh_desire
name = "Bean's Disorder"
desc = "Patient has a fixation on consuming raw flesh, particularly that of the same species. Patient also suffers from psychosomatic hunger pangs."
scan_desc = "moderate eating disorder"
gain_text = span_warning("You feel a hunger, for organs and raw meat...")
lose_text = span_notice("Your appetite returns to normal.")
random_gain = FALSE
/// How much faster we loose hunger
var/hunger_rate = 15
/datum/brain_trauma/severe/flesh_desire/on_gain()
// Allows them to eat faster, mainly for flavor
ADD_TRAIT(owner, TRAIT_VORACIOUS, REF(src))
ADD_TRAIT(owner, TRAIT_FLESH_DESIRE, REF(src))
return ..()
/datum/brain_trauma/severe/flesh_desire/on_life(seconds_per_tick, times_fired)
// Causes them to need to eat at 10x the normal rate
owner.adjust_nutrition(-hunger_rate * HUNGER_FACTOR)
if(SPT_PROB(10, seconds_per_tick))
to_chat(owner, span_notice(pick("You can't stop thinking about raw meat...", "You **NEED** to eat someone.", "The hunger pangs are back...", "You hunger for flesh.", "You are starving!")))
owner.overeatduration = max(owner.overeatduration - 200 SECONDS, 0)
/datum/brain_trauma/severe/flesh_desire/on_lose()
REMOVE_TRAIT(owner, TRAIT_VORACIOUS, REF(src))
REMOVE_TRAIT(owner, TRAIT_FLESH_DESIRE, REF(src))
return ..()
// This one is for "Lady out of gates" or /obj/item/wallframe/painting/eldritch/beauty
/datum/brain_trauma/severe/eldritch_beauty
name = "Obsessive Perfectionism"
desc = "Patient is fixated on the perceived 'imperfection' of objects around them. Patient is agitated by the feeling of clothing on their body."
scan_desc = "obsessive personality disorder"
gain_text = span_warning("It's all *imperfect*! I can't stand any of it touching me!")
lose_text = span_notice("Your mind calms.")
random_gain = FALSE
/// How much damage we deal with each scratch
var/scratch_damage = 0.5
/datum/brain_trauma/severe/eldritch_beauty/on_life(seconds_per_tick, times_fired)
if(owner.incapacitated)
return
// Scratching code
var/obj/item/bodypart/bodypart = owner.get_bodypart(owner.get_random_valid_zone(even_weights = TRUE))
if(!bodypart || !IS_ORGANIC_LIMB(bodypart) || (bodypart.bodypart_flags & BODYPART_PSEUDOPART))
return
if(!ishuman(owner))
return
// Jumpsuits ruin the "perfection" of the body
var/mob/living/carbon/human/scratcher = owner
if(!length(scratcher.get_clothing_on_part(bodypart)))
return
owner.apply_damage(scratch_damage, BRUTE, bodypart)
if(SPT_PROB(33, seconds_per_tick))
to_chat(owner, span_notice("You scratch furiously at your clothed [bodypart.plaintext_zone]!"))
// This one is for "Climb over the rusted mountain" or /obj/structure/sign/painting/eldritch/rust
/datum/brain_trauma/severe/rusting
name = "Intermittent Psychic Manifestation Syndrome"
desc = "Patient suffers from a rare psychic disorder, and may manifest or amplify psychic phenomena in the area. Patient has no control over these phenomena."
scan_desc = "dangerous psi-wave activity"
gain_text = span_warning("Climb the rust. Master entropy.")
lose_text = span_notice("You feel like you just woke up from a bad dream.")
random_gain = FALSE
/datum/brain_trauma/severe/rusting/on_life(seconds_per_tick, times_fired)
var/atom/tile = get_turf(owner)
// Examining a painting should stop this effect to give counterplay
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
return
if(SPT_PROB(50, seconds_per_tick))
to_chat(owner, span_notice("You feel the decay..."))
tile.rust_heretic_act()
/datum/brain_trauma/severe/kleptomaniac
name = "Kleptomania"
desc = "Patient is prone to stealing things."