From d3855a8ff3aeac3eb91e79f2262d060f1af7d64b Mon Sep 17 00:00:00 2001 From: TheGreatKitsune <88862343+TheGreatKitsune@users.noreply.github.com> Date: Tue, 10 Dec 2024 08:46:32 -0500 Subject: [PATCH] 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 :cl: 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. /:cl: --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> Co-authored-by: Waterpig --- code/datums/diseases/chronic_illness.dm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/code/datums/diseases/chronic_illness.dm b/code/datums/diseases/chronic_illness.dm index 9e3c3cc400c..055ffed664c 100644 --- a/code/datums/diseases/chronic_illness.dm +++ b/code/datums/diseases/chronic_illness.dm @@ -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