Files
Cameron Lennox 8d1c3f319a Horror modifier adjusments (#19544)
* Horror modifier adjusments

Removes nutrition drain

Makes it so your organs mutate every 200 seconds you've been under it instead of checking life ticks.

Makes it so only 1-2 organs get replaced per 200 seconds instead of 2-3
Makes redspace injection chance much lower (3%->0.5%)
Makes it so you won't repeatedly stab someone with fleshy spread if they already have it.

Makes exiting battle stance while infected a bit better.

Armor now lasts 1 minute. Lowers after 1 minute if health and the such is fixed.

Allows using bruise/ointment on changeling flesh armor...it's flesh and an extension of them.

Makes the fleshy virus chance of organ mutation from 5 to 0.5

Fixes GBS to be actually curable.

Implements COMSIG_ITEM_ATTACK_ZONE and COMSIG_ITEM_ATTACK

* Update redspace_corruption.dm

* Update vorestation.dme

* Update horror.dm
2026-06-25 11:03:17 -04:00

39 lines
1.3 KiB
Plaintext

/datum/modifier/redsight
name = "redsight"
desc = "You can see into the unknown."
client_color = "#ce6161"
on_created_text = span_alien("You feel as though you can see the horrors of reality!")
on_expired_text = span_notice("Your sight returns to what it once was.")
stacks = MODIFIER_STACK_EXTEND
/datum/modifier/redsight/on_applied()
holder.see_invisible = 60
holder.see_invisible_default = 60
holder.vis_enabled += VIS_GHOSTS
holder.recalculate_vis()
/datum/modifier/redsight/on_expire()
holder.see_invisible_default = initial(holder.see_invisible_default)
holder.see_invisible = holder.see_invisible_default
holder.vis_enabled -= VIS_GHOSTS
holder.recalculate_vis()
/datum/modifier/redsight/can_apply(mob/living/L)
if(L.stat)
to_chat(L, span_warning("You can't be unconscious or dead to see the unknown."))
return FALSE
var/obj/item/organ/internal/eyes/E = L.internal_organs_by_name[O_EYES]
if(E && istype(E, /obj/item/organ/internal/eyes/horror))
return ..()
return FALSE
/datum/modifier/redsight/check_if_valid() //We don't call parent. This doesn't wear off without set conditions.
//Dead?
if(holder.stat == DEAD)
expire(silent = TRUE)
//We got eyes and they're special eyes?
var/obj/item/organ/internal/eyes/E = holder.internal_organs_by_name[O_EYES]
if(!E || !istype(E, /obj/item/organ/internal/eyes/horror))
expire(silent = TRUE)