Add a safety net for Manifold Sickness (#2446)

## About The Pull Request

Adds a safety net to Hereditary Manifold Sickness, which triggers if and
only if it progresses all the way from stage one to stage four without
_any_ visible symptoms having occurred. This safety net forces one of
the stage 4 visible symptoms to occur, which is also a damaging effect
that produces a sound effect (assuming the character has a set scream
noise).
## Why It's Good For The Game

Complete round removal should not be able to blindside you. This does
not guarantee it won't still blindside a player playing riskily with the
quirk either, getting some stage two symptoms and then the sickness
stealthing the rest of the way to stage 5 is still possible; and even
with this safety net triggering, the sickness has a very low chance of
going straight to stage 5 in the next few seconds anyways before you can
get a pill in.
It is probably not immediately obvious to the player if this safety net
occurs, as the visible effect is exactly the same as a normal symptom
(You would only be able to tell by the fact that there are no messages
in chat regarding the sickness between the last time you reset it with a
pill and the stage four symptom occurring), it simply removes the
possibility of the disease completely stealthing its way all the way to
stage 5 with no symptoms at all by forcing a symptom to occur.
## Proof Of Testing

Ran code both with stage_prob set to 100 in order to test this code for
when it should trigger, and then normally with the correct stage_prob to
make sure the safety net doesn't trigger if a symptom does occur.
Again, no visible difference with what should be normal gameplay, this
prevents an absence of something.
## Changelog
🆑 Cerami
qol: HMS / Chronic Illness no longer has the very low chance of going
all the way from stage 1 to stage 5 without any symptoms.
/🆑

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: Waterpig <wtryoutube@seznam.cz>
This commit is contained in:
TheGreatKitsune
2024-12-10 13:46:32 +00:00
committed by GitHub
co-authored by Waterpig Waterpig
parent ba5e10f9cc
commit d3855a8ff3
+18 -1
View File
@@ -13,9 +13,10 @@
agent = "Quantum Entanglement"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "A disease discovered in an Interdyne laboratory caused by subjection to timesteam correction technology."
bypasses_immunity = TRUE//Bubber addition
bypasses_immunity = TRUE // BUBBER EDIT ADD
severity = DISEASE_SEVERITY_UNCURABLE
bypasses_immunity = TRUE
var/being_stealthy = TRUE // BUBBER EDIT ADD
/datum/disease/chronic_illness/stage_act(seconds_per_tick, times_fired)
. = ..()
@@ -25,25 +26,31 @@
switch(stage)
if(1)
carrier = FALSE // Go fuck yourself
being_stealthy = TRUE // BUBBER EDIT ADD
if(2)
if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_warning("You feel dizzy."))
affected_mob.adjust_confusion(6 SECONDS)
being_stealthy = FALSE // BUBBER EDIT ADD
if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_notice("You look at your hand. Your vision blurs."))
affected_mob.set_eye_blur_if_lower(10 SECONDS)
being_stealthy = FALSE // BUBBER EDIT ADD
if(3)
var/need_mob_update = FALSE
if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_danger("You feel a very sharp pain in your chest!"))
being_stealthy = FALSE // BUBBER EDIT ADD
if(prob(45))
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 20)
if(SPT_PROB(0.5, seconds_per_tick))
to_chat(affected_mob, span_userdanger("[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]"))
need_mob_update += affected_mob.adjustStaminaLoss(70, updating_stamina = FALSE)
being_stealthy = FALSE // BUBBER EDIT ADD
if(SPT_PROB(1, seconds_per_tick))
to_chat(affected_mob, span_danger("You feel a buzzing in your brain."))
SEND_SOUND(affected_mob, sound('sound/items/weapons/flash_ring.ogg'))
being_stealthy = FALSE // BUBBER EDIT ADD
if(SPT_PROB(0.5, seconds_per_tick))
need_mob_update += affected_mob.adjustBruteLoss(1, updating_health = FALSE)
if(need_mob_update)
@@ -86,3 +93,13 @@
affected_mob.investigate_log("has been dusted / deleted by [name].", INVESTIGATE_DEATHS)
affected_mob.ghostize(can_reenter_corpse = FALSE)
qdel(affected_mob)
//BUBBER EDIT BEGIN - Costly warning if it sneaks through to stage four.
/datum/disease/chronic_illness/update_stage(new_stage)
. = ..()
if(new_stage == 4 && being_stealthy)
to_chat(affected_mob, span_danger("[pick("You feel as though your atoms are accelerating in place.", "You feel like you're being torn apart!")]"))
affected_mob.emote("scream")
affected_mob.adjustBruteLoss(10)
being_stealthy = FALSE
// BUBBER EDIT END