mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +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:
@@ -1317,7 +1317,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
/// Trait determines if this mob has examined an eldritch painting
|
||||
#define TRAIT_ELDRITCH_PAINTING_EXAMINE "eldritch_painting_examine"
|
||||
|
||||
/// Trait used by the /datum/brain_trauma/severe/flesh_desire trauma to change their preferences of what they eat
|
||||
/// Trait used by the /obj/item/wallframe/painting/eldritch/desire status effect to change their preferences of what they eat
|
||||
#define TRAIT_FLESH_DESIRE "flesh_desire"
|
||||
|
||||
///Trait granted by janitor skillchip, allows communication with cleanbots
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -272,12 +272,12 @@
|
||||
curse_color = COLOR_MAROON
|
||||
|
||||
/datum/heretic_knowledge/curse/indulgence/curse(mob/living/carbon/human/chosen_mob)
|
||||
chosen_mob.gain_trauma(/datum/brain_trauma/severe/flesh_desire, TRAUMA_RESILIENCE_MAGIC)
|
||||
chosen_mob.apply_status_effect(/datum/status_effect/eldritch_painting/desire/permanent)
|
||||
chosen_mob.nutrition = NUTRITION_LEVEL_STARVING
|
||||
return ..()
|
||||
|
||||
/datum/heretic_knowledge/curse/indulgence/uncurse(mob/living/carbon/human/chosen_mob)
|
||||
if(QDELETED(chosen_mob))
|
||||
return
|
||||
chosen_mob.cure_trauma_type(/datum/brain_trauma/severe/flesh_desire, TRAUMA_RESILIENCE_MAGIC)
|
||||
chosen_mob.remove_status_effect(/datum/status_effect/eldritch_painting/desire/permanent)
|
||||
return ..()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
// Set to false since we don't want this to persist
|
||||
persistence_id = FALSE
|
||||
/// The trauma the painting applies
|
||||
var/applied_trauma = /datum/brain_trauma/severe/pacifism
|
||||
var/applied_status_effect = /datum/status_effect/eldritch_painting
|
||||
/// The text that shows up when you cross the paintings path
|
||||
var/text_to_display = "Some things should not be seen by mortal eyes..."
|
||||
/// The range of the paintings effect
|
||||
@@ -30,29 +30,31 @@
|
||||
|
||||
/obj/structure/sign/painting/eldritch/Initialize(mapload, dir, building)
|
||||
. = ..()
|
||||
if(ispath(applied_trauma))
|
||||
var/static/list/connections = list(COMSIG_ATOM_ENTERED = PROC_REF(apply_trauma))
|
||||
if(ispath(applied_status_effect))
|
||||
var/static/list/connections = list(COMSIG_ATOM_ENTERED = PROC_REF(apply_status_effect))
|
||||
AddComponent(/datum/component/connect_range, tracked = src, connections = connections, range = range, works_in_containers = FALSE)
|
||||
|
||||
/obj/structure/sign/painting/eldritch/proc/apply_trauma(datum/source, mob/living/carbon/viewer)
|
||||
/obj/structure/sign/painting/eldritch/proc/apply_status_effect(datum/source, mob/living/carbon/viewer)
|
||||
SIGNAL_HANDLER
|
||||
if(!isliving(viewer) || !can_see(viewer, src, range))
|
||||
return
|
||||
if(isnull(viewer.mind) || isnull(viewer.mob_mood) || viewer.stat != CONSCIOUS || viewer.is_blind())
|
||||
return
|
||||
if(viewer.has_trauma_type(applied_trauma))
|
||||
if(viewer.has_status_effect(applied_status_effect))
|
||||
return
|
||||
if(IS_HERETIC(viewer))
|
||||
return
|
||||
if(viewer.can_block_magic(MAGIC_RESISTANCE|MAGIC_RESISTANCE_MIND))
|
||||
return
|
||||
if(viewer.reagents.has_reagent(/datum/reagent/water/holywater))
|
||||
return
|
||||
to_chat(viewer, span_notice(text_to_display))
|
||||
viewer.gain_trauma(applied_trauma, TRAUMA_RESILIENCE_SURGERY)
|
||||
viewer.apply_status_effect(applied_status_effect)
|
||||
INVOKE_ASYNC(viewer, TYPE_PROC_REF(/mob, emote), "scream")
|
||||
to_chat(viewer, span_hypnophrase("Your mind is overcome! The painting leaves a mark on your psyche."))
|
||||
|
||||
/obj/structure/sign/painting/eldritch/wirecutter_act(mob/living/user, obj/item/I)
|
||||
if(!user.can_block_magic(MAGIC_RESISTANCE))
|
||||
if(!user.can_block_magic(MAGIC_RESISTANCE|MAGIC_RESISTANCE_MIND))
|
||||
user.add_mood_event("ripped_eldritch_painting", /datum/mood_event/eldritch_painting)
|
||||
to_chat(user, span_hypnophrase("There's an itch in your brain. It's laughing at you..."))
|
||||
qdel(src)
|
||||
@@ -87,7 +89,7 @@
|
||||
name = "\improper The Sister and He Who Wept"
|
||||
desc = "A beautiful painting depicting a fair lady sitting beside Him. He weeps. You will see him again. Removable with wirecutters."
|
||||
icon_state = "eldritch_painting_weeping"
|
||||
applied_trauma = /datum/brain_trauma/severe/weeping
|
||||
applied_status_effect = /datum/status_effect/eldritch_painting/weeping
|
||||
text_to_display = "Such beauty! Such sorrow!"
|
||||
|
||||
/obj/structure/sign/painting/eldritch/weeping/examine_effects(mob/living/carbon/examiner)
|
||||
@@ -112,7 +114,7 @@
|
||||
name = "\improper The Feast of Desire"
|
||||
desc = "A painting of an elaborate feast. Despite being made entirely of rotting meat and decaying organs, the food looks very appetising. Removable with wirecutters."
|
||||
icon_state = "eldritch_painting_desire"
|
||||
applied_trauma = /datum/brain_trauma/severe/flesh_desire
|
||||
applied_status_effect = /datum/status_effect/eldritch_painting/desire
|
||||
text_to_display = "Just looking at this painting makes me hungry..."
|
||||
|
||||
// The special examine interaction for this painting
|
||||
@@ -160,7 +162,7 @@
|
||||
name = "\improper Great Chaparral Over Rolling Hills"
|
||||
desc = "A painting depicting a massive thicket. This painting teems with life, and seems to strain against its frame. Removable with wirecutters."
|
||||
icon_state = "eldritch_painting_vines"
|
||||
applied_trauma = null
|
||||
applied_status_effect = null
|
||||
// A static list of 5 pretty strong mutations, simple to expand for any admins
|
||||
var/list/mutations = list(
|
||||
/datum/spacevine_mutation/aggressive_spread,
|
||||
@@ -205,7 +207,7 @@
|
||||
name = "\improper Lady of the Gate"
|
||||
desc = "A painting of an otherworldly being. Its thin, porcelain-coloured skin is stretched tight over its strange bone structure. It has an odd beauty. Removable with wirecutters."
|
||||
icon_state = "eldritch_painting_beauty"
|
||||
applied_trauma = /datum/brain_trauma/severe/eldritch_beauty
|
||||
applied_status_effect = /datum/status_effect/eldritch_painting/beauty
|
||||
text_to_display = "A beacon of purity, the real world seems so mundane and imperfect in comparison..."
|
||||
/// List of reagents to add to heretics on examine, set to mutadone by default to remove mutations
|
||||
var/list/reagents_to_add = list(/datum/reagent/medicine/mutadone = 5)
|
||||
@@ -235,7 +237,7 @@
|
||||
name = "\improper Master of the Rusted Mountain"
|
||||
desc = "A painting of a strange being climbing a rust-coloured mountain. The brushwork is unnatural and unnerving. Removable with wirecutters."
|
||||
icon_state = "eldritch_painting_rust"
|
||||
applied_trauma = /datum/brain_trauma/severe/rusting
|
||||
applied_status_effect = /datum/status_effect/eldritch_painting/rusting
|
||||
text_to_display = "The rust decays. The master climbs. It calls. You answer..."
|
||||
|
||||
// The special examine interaction for this painting
|
||||
|
||||
@@ -57,8 +57,6 @@
|
||||
/obj/item/storage/belt/unfathomable_curio/proc/shield_damaged(mob/living/carbon/wearer, attack_text, new_current_charges)
|
||||
var/list/brain_traumas = list(
|
||||
/datum/brain_trauma/severe/mute,
|
||||
/datum/brain_trauma/severe/flesh_desire,
|
||||
/datum/brain_trauma/severe/eldritch_beauty,
|
||||
/datum/brain_trauma/severe/paralysis,
|
||||
/datum/brain_trauma/severe/monophobia
|
||||
)
|
||||
|
||||
@@ -177,8 +177,6 @@
|
||||
REMOVE_TRAIT(owner, TRAIT_IGNORESLOWDOWN, TRAIT_STATUS_EFFECT(id))
|
||||
owner.AdjustUnconscious(20 SECONDS, ignore_canstun = TRUE)
|
||||
|
||||
|
||||
|
||||
/// Used by moon heretics to make people mad
|
||||
/datum/status_effect/moon_converted
|
||||
id = "moon converted"
|
||||
@@ -256,3 +254,138 @@
|
||||
name = "Moon Converted"
|
||||
desc = "They LIE, SLAY ALL OF THE THEM!!! THE LIARS OF THE SUN MUST FALL!!!"
|
||||
icon_state = "moon_insanity"
|
||||
|
||||
// Status effects that eldritch paintings apply
|
||||
//The debug painting status effect. To make sure this isn't applying to heretics.
|
||||
/datum/status_effect/eldritch_painting
|
||||
id = "eldritch_painting"
|
||||
alert_type = /atom/movable/screen/alert/status_effect/eldritch_painting
|
||||
duration = 10 MINUTES
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
|
||||
/datum/status_effect/eldritch_painting/on_apply()
|
||||
if(IS_HERETIC_OR_MONSTER(owner))
|
||||
return FALSE
|
||||
if(!ishuman(owner))
|
||||
return FALSE
|
||||
if(owner.reagents.has_reagent(/datum/reagent/water/holywater))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/atom/movable/screen/alert/status_effect/eldritch_painting
|
||||
name = "Rick Roll'd"
|
||||
desc = "Fucking coders are at it again."
|
||||
icon_state = "eldritch_painting_debug"
|
||||
|
||||
//"The Sister and He Who Wept": /obj/structure/sign/painting/eldritch
|
||||
/datum/status_effect/eldritch_painting/weeping
|
||||
id = "painting_weeping"
|
||||
alert_type = /atom/movable/screen/alert/status_effect/eldritch_painting/weeping
|
||||
tick_interval = 10 SECONDS
|
||||
|
||||
/datum/status_effect/eldritch_painting/weeping/tick(seconds_between_ticks)
|
||||
if(owner.stat != CONSCIOUS || owner.IsSleeping() || owner.IsUnconscious())
|
||||
return
|
||||
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
|
||||
return
|
||||
|
||||
owner.cause_hallucination(/datum/hallucination/delusion/preset/heretic, "Caused by The Weeping status effect")
|
||||
owner.add_mood_event("eldritch_weeping", /datum/mood_event/eldritch_painting/weeping)
|
||||
|
||||
/atom/movable/screen/alert/status_effect/eldritch_painting/weeping
|
||||
name = "The Sister and He Who Wept"
|
||||
desc = "The weeping echos through your mind like an echo, undoing your psyche! Maybe if you look at the painting again, it won't hurt so badly..."
|
||||
icon_state = "eldritch_painting_weeping"
|
||||
|
||||
//"The First Desire": /obj/structure/sign/painting/eldritch/desire
|
||||
/datum/status_effect/eldritch_painting/desire
|
||||
id = "painting_desire"
|
||||
alert_type = /atom/movable/screen/alert/status_effect/eldritch_painting/desire
|
||||
/// How much faster we loose hunger
|
||||
var/hunger_rate = 15
|
||||
|
||||
/datum/status_effect/eldritch_painting/desire/on_apply()
|
||||
if(IS_HERETIC_OR_MONSTER(owner))
|
||||
return FALSE
|
||||
if(!ishuman(owner))
|
||||
return FALSE
|
||||
if(HAS_TRAIT(owner, TRAIT_NOHUNGER))
|
||||
return FALSE
|
||||
|
||||
// Allows them to eat faster, mainly for flavor
|
||||
ADD_TRAIT(owner, TRAIT_VORACIOUS, TRAIT_STATUS_EFFECT(id))
|
||||
ADD_TRAIT(owner, TRAIT_FLESH_DESIRE, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/eldritch_painting/desire/tick(seconds_between_ticks)
|
||||
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
|
||||
return
|
||||
// Causes them to need to eat at 10x the normal rate
|
||||
owner.adjust_nutrition(-hunger_rate * HUNGER_FACTOR)
|
||||
if(SPT_PROB(10, seconds_between_ticks))
|
||||
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/status_effect/eldritch_painting/desire/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_VORACIOUS, TRAIT_STATUS_EFFECT(id))
|
||||
REMOVE_TRAIT(owner, TRAIT_FLESH_DESIRE, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/atom/movable/screen/alert/status_effect/eldritch_painting/desire
|
||||
name = "The First Desire"
|
||||
desc = "Your are struck with a ravenous hunger! SATIATE IT AT ANY COST! Or maybe just go stare at the painting and long for the excellent meal it promises..."
|
||||
icon_state = "eldritch_painting_desire"
|
||||
|
||||
/datum/status_effect/eldritch_painting/desire/permanent
|
||||
duration = STATUS_EFFECT_PERMANENT
|
||||
|
||||
// "Lady out of gates": /obj/item/wallframe/painting/eldritch/beauty
|
||||
/datum/status_effect/eldritch_painting/beauty
|
||||
id = "painting_beauty"
|
||||
alert_type = /atom/movable/screen/alert/status_effect/eldritch_painting/beauty
|
||||
tick_interval = 3 SECONDS
|
||||
/// How much damage we deal with each scratch
|
||||
var/scratch_damage = 3
|
||||
|
||||
/datum/status_effect/eldritch_painting/beauty/tick(seconds_between_ticks)
|
||||
if(owner.incapacitated)
|
||||
return
|
||||
|
||||
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
|
||||
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
|
||||
// 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)
|
||||
to_chat(owner, span_notice("You scratch furiously at your clothed [bodypart.plaintext_zone]!"))
|
||||
|
||||
/atom/movable/screen/alert/status_effect/eldritch_painting/beauty
|
||||
name = "Lady Out of Gates"
|
||||
desc = "Your clothing obscures the beauty beneath. Remove it, and reach perfection. Or behold perfect for a brief moment of clarity in the painting you saw your ideal image in."
|
||||
icon_state = "eldritch_painting_beauty"
|
||||
|
||||
// "Climb over the rusted mountain": /obj/structure/sign/painting/eldritch/rust
|
||||
/datum/status_effect/eldritch_painting/rusting
|
||||
id = "painting_rusting"
|
||||
alert_type = /atom/movable/screen/alert/status_effect/eldritch_painting/rusting
|
||||
tick_interval = 3 SECONDS
|
||||
|
||||
/datum/status_effect/eldritch_painting/rusting/tick(seconds_between_ticks)
|
||||
var/atom/tile = get_turf(owner)
|
||||
if(HAS_TRAIT(owner, TRAIT_ELDRITCH_PAINTING_EXAMINE))
|
||||
return
|
||||
|
||||
to_chat(owner, span_notice("You feel the decay..."))
|
||||
tile.rust_heretic_act()
|
||||
|
||||
/atom/movable/screen/alert/status_effect/eldritch_painting/rusting
|
||||
name = "Climb Over the Rusted Mountain"
|
||||
desc = "Your every footfall erodes the ground beneath you! Everything crumbles away! Maybe if you looked closer at the mountain in that painting, the path might be clearer..."
|
||||
icon_state = "eldritch_painting_rust"
|
||||
|
||||
@@ -363,6 +363,8 @@
|
||||
need_mob_update += affected_mob.adjustFireLoss(10 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/jitter)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/speech/stutter)
|
||||
for(var/datum/status_effect/eldritch_painting/eldritch_curses in affected_mob.status_effects)
|
||||
qdel(eldritch_curses)
|
||||
holder?.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 174 KiB |
Reference in New Issue
Block a user