mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-12 07:35:31 +01:00
8d1c3f319a
* 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
39 lines
1.3 KiB
Plaintext
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)
|