mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-14 09:35:30 +01:00
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:
@@ -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."
|
||||
|
||||
Reference in New Issue
Block a user