From ee6818f4df893afc039626f5fe88d296954f0285 Mon Sep 17 00:00:00 2001 From: Fghj240 <43589874+Fghj240@users.noreply.github.com> Date: Thu, 16 Jul 2026 15:05:06 -0700 Subject: [PATCH] Replaces Immunosilence with sepsisillin, nerfs aggressive healing. (#96972) ## About The Pull Request Attempts to balance aggressive healing by slightly cutting back on its incredible constant healing (which is still doable because I don't have the heart to kill virology uses) and removes immunosilence because we already have a chem that does that. Sepsisillin pills are mapped into virology to take its place. ## Why It's Good For The Game With immunodeficiency, an aggressive healing virus with high severity becomes incredibly powerful. The combination of chills and fever to buff severity while they cancel each other out along with a second symptom like nocturnal regen (because you have the stats for it) makes aggressive healing too powerful in the right situation but too weak for everyone else. Aggressive healing was given high stats under the assumption that they were necessary to resist natural recovery in hosts that aren't immunodeficient. That was probably a mistake since it also makes it a buffer symptom stronger than any other, so its stats are heavily tuned down. Immunosilence was removed (because it's just sepsisillin) and sepsisillin pills were mapped into virology in order to let people without immunodeficiency be able to better benefit from aggressive healing. Immunosilence was rather ineffective at its job because it still let viruses regress to their first stage, which disables your healing. Sepsisillin can also be used for testing viruses on monkeys. Pills were added to virology because sepsisillin is a pain to make and you can also use it to test on monkeys. The whole bottle should last one person 23 minutes and 20 seconds. Also I removed the no_self_cure trait that is now unused (it was given by immunosilence) and changed the description of the aggressive healing severity threshold to clarify that it starts scaling with any amount of positive severity, not just after the first point. ## Changelog :cl: del: Removed ImmunoSilence and its trait balance: Aggressive healing has much lower stats fix: fixed a few things map: Added sepsisillin pills to virology spellcheck: Clarified the description of aggressive healing /:cl: --------- Co-authored-by: Fghj240 --- .../LavaRuins/lavaland_surface_syndicate_base1.dmm | 1 + .../map_files/CatwalkStation/CatwalkStation_2023.dmm | 1 + _maps/map_files/Deltastation/DeltaStation2.dmm | 4 ++++ _maps/map_files/IceBoxStation/IceBoxStation.dmm | 1 + _maps/map_files/KiloStation/KiloStation.dmm | 4 ++++ _maps/map_files/MetaStation/MetaStation.dmm | 1 + _maps/map_files/NebulaStation/NebulaStation.dmm | 1 + _maps/map_files/tramstation/tramstation.dmm | 1 + code/__DEFINES/traits/declarations.dm | 2 -- code/_globalvars/traits/_traits.dm | 1 - code/datums/diseases/_disease.dm | 2 +- code/datums/diseases/advance/symptoms/heal.dm | 8 ++++---- code/game/objects/items/storage/pillbottles.dm | 6 ++++++ .../impure_reagents/impure_medicine_reagents.dm | 1 + .../reagents/chemistry/reagents/medicine_reagents.dm | 11 ----------- code/modules/reagents/chemistry/recipes/medicine.dm | 6 ------ code/modules/reagents/reagent_containers/pill.dm | 6 ++++++ 17 files changed, 32 insertions(+), 25 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index dd1151ee4fa..91dbf795e43 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -605,6 +605,7 @@ /obj/effect/mapping_helpers/apc/syndicate_access, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/white/side{ dir = 9 }, diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index 739cda89621..52862b3238f 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -6435,6 +6435,7 @@ pixel_x = -3; pixel_y = -4 }, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/dark/textured_large, /area/station/medical/virology) "bGm" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index fa280cdb41d..4d95af7df73 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -23346,6 +23346,10 @@ pixel_x = 3; pixel_y = 3 }, +/obj/item/storage/pill_bottle/sepsisillin{ + pixel_x = -6; + pixel_y = 2 + }, /obj/item/storage/box/syringes, /turf/open/floor/iron, /area/station/medical/virology) diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index fbbac7f5d5d..386dc7e02d4 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -65096,6 +65096,7 @@ pixel_y = 2 }, /obj/effect/turf_decal/trimline/green/filled/corner, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/white, /area/station/medical/virology) "soE" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index ffb788ab800..859999fbc45 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -66114,6 +66114,10 @@ dir = 1 }, /obj/machinery/light/cold/directional/east, +/obj/item/storage/pill_bottle/sepsisillin{ + pixel_x = -5; + pixel_y = -2 + }, /turf/open/floor/iron/dark, /area/station/medical/virology) "uYM" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 5197b421c7c..4945b2afa4d 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2704,6 +2704,7 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/white, /area/station/medical/virology) "aWH" = ( diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index 7c0021cb884..2dbf08716f7 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -66204,6 +66204,7 @@ pixel_y = 2 }, /obj/item/storage/box/syringes, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/dark, /area/station/medical/virology) "jLY" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index f41802d007a..3f91df390e1 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -41077,6 +41077,7 @@ }, /obj/item/storage/box/syringes, /obj/structure/sign/clock/directional/north, +/obj/item/storage/pill_bottle/sepsisillin, /turf/open/floor/iron/white, /area/station/medical/virology) "nlm" = ( diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index b099f50c431..488b9535b83 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -196,8 +196,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_VIRUS_RESISTANCE "virus_resistance" /// Causes viruses, infected burns, and parasites to spread more effectively and faster, like an inverse of the above. #define TRAIT_IMMUNODEFICIENCY "immunodeficiency" -/// Prevents viruses from curing naturaly -#define TRAIT_NO_SELF_CURE "noselfcure" #define TRAIT_GENELESS "geneless" #define TRAIT_PIERCEIMMUNE "pierce_immunity" #define TRAIT_NODISMEMBER "dismember_immunity" diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 55ad2b7728b..8fcd2aa8d0a 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -423,7 +423,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NEVER_WOUNDED" = TRAIT_NEVER_WOUNDED, "TRAIT_NICE_SHOT" = TRAIT_NICE_SHOT, "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, - "TRAIT_NO_SELF_CURE" = TRAIT_NO_SELF_CURE, "TRAIT_NOBLOOD" = TRAIT_NOBLOOD, "TRAIT_NOBREATH" = TRAIT_NOBREATH, "TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE, diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 7db7ebdd8c6..62f545e6ee3 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -155,7 +155,7 @@ if(SPT_PROB(stage_prob * slowdown * bad_immune, seconds_per_tick)) update_stage(min(stage + 1, max_stages)) - if(!(disease_flags & CHRONIC) && disease_flags & CURABLE && bypasses_immunity != TRUE && !HAS_TRAIT(affected_mob, TRAIT_NO_SELF_CURE)) + if(!(disease_flags & CHRONIC) && disease_flags & CURABLE && bypasses_immunity != TRUE) switch(severity) if(DISEASE_SEVERITY_POSITIVE) if(slowdown < 1 || (!(HAS_TRAIT(affected_mob, TRAIT_NOHUNGER)) && (affected_mob.satiety < DISEASE_SATIETY_THRESHOLD || affected_mob.nutrition < NUTRITION_LEVEL_STARVING))) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 48bcacf938a..149d631cff6 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -612,9 +612,9 @@ desc = "The virus heals damaged tissues in a way that appears threatening to the immune system." severity = 1 stealth = -4 - resistance = 3 - stage_speed = 3 - transmittable = 2 + resistance = 1 + stage_speed = 0 + transmittable = -1 level = 4 base_message_chance = 0 symptom_delay_min = 1 @@ -623,7 +623,7 @@ power = 2 threshold_descs = list( - "Severity > 1" = "For each point of severity above 1, the healing provided by the virus increases.", + "Severity > 1" = "For each point of severity, the healing provided by the virus increases.", ) ///Increases the healing effect (if active) of the virus by this amount for each severity level above 1 var/severity_heal_bonus = 0.25 diff --git a/code/game/objects/items/storage/pillbottles.dm b/code/game/objects/items/storage/pillbottles.dm index 27887ca479d..141bbcb265c 100644 --- a/code/game/objects/items/storage/pillbottles.dm +++ b/code/game/objects/items/storage/pillbottles.dm @@ -205,3 +205,9 @@ A warning label reads: Take in moderation." spawn_count = 7 spawn_type = /obj/item/reagent_containers/applicator/pill/prescription_stimulant + +/obj/item/storage/pill_bottle/sepsisillin + name = "bottle of sepsisillin pills" + desc = "Contains immune system suppressants, for assisting virology research. Do not confuse with spaceacillin." + spawn_count = 7 + spawn_type = /obj/item/reagent_containers/applicator/pill/sepsisillin diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm index 99169ee8f0a..5a8e8395fd6 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm @@ -934,6 +934,7 @@ Basically, we fill the time between now and 2s from now with hands based off the metabolization_rate = 0.25 * REAGENTS_METABOLISM tox_damage = 0 metabolized_traits = list(TRAIT_IMMUNODEFICIENCY) + taste_description = "plastic" /datum/reagent/inverse/krokodil name = "Permonid" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 649483afbc0..9f1f00b5e48 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1999,14 +1999,3 @@ if(affected_mob.losebreath >= 1) affected_mob.losebreath -= 1 * metabolization_ratio * seconds_per_tick return UPDATE_MOB_HEALTH - -/datum/reagent/medicine/immunosilence - name = "ImmunoSilence" - description = "Prevents viruses from being naturally cured." - metabolization_rate = 0.25 * REAGENTS_METABOLISM - metabolized_traits = list(TRAIT_NO_SELF_CURE) - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - ph = 5.5 - color = "#C8A5DC" - taste_description = "plastic" - randomized_spawns = REAGENT_SPAWN_ALL_RANDOM_SPAWNS diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 83ceb33b19d..5bcc469ba58 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -439,9 +439,3 @@ results = list(/datum/reagent/medicine/naloxone = 4) required_reagents = list(/datum/reagent/medicine/morphine = 1, /datum/reagent/hydrogen_peroxide = 1, /datum/reagent/bromine = 1, /datum/reagent/consumable/ethanol = 1) reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER - -/datum/chemical_reaction/medicine/immunosilence - results = list(/datum/reagent/medicine/immunosilence = 1) - required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/ammonia = 1) - reaction_tags = REACTION_TAG_EASY - diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 4d19c5b5f18..22bd3c3d057 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -190,6 +190,12 @@ icon_state = "pill17" list_reagents = list(/datum/reagent/medicine/spaceacillin = 1.5) //1 minute since 0.05 every tick. +/obj/item/reagent_containers/applicator/pill/sepsisillin + name = "sepsisillin pill" + desc = "Not to be confused with spaceacillin. Increases vulnerability to viruses, bacteria, and parasites." + icon_state = "pill11" + list_reagents = list(/datum/reagent/inverse/spaceacillin = 10) + /obj/item/reagent_containers/applicator/pill/stimulant name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!"