Makes the floor diseases into basic diseases, rather than advanced diseases. (#90115)

## About The Pull Request

One of the more recent incidents involving viral outbreaks utilized
these viruses to easily produce a ton of advanced, mutated diseases out
of the floor diseases. You can get some details here:
https://github.com/tgstation/tgstation/issues/90054

These diseases have bespoke behaviours, yet are capable of being
mutated. It doesn't really make much sense for them to be advanced
diseases because of their unique behaviour. Given it starts with a flag
that indicates that it is meant to not spread, but ,obviously, mutating
it causes it to become contagious anyway, we've just made them basic
viruses with some of the relevant parts of the symptoms they were using
added in.

## Why It's Good For The Game

It makes it too easy to get an advanced virus with which to mutate.
Which results in...well, a Urgathoan/Nurgle Incident waiting to happen.

Don't drink spoiled milk, kids. Or do if you're based.

## Changelog
🆑
code: Changes floor diseases from advanced diseases into basic diseases.
Should mostly function the same, except you can't mutate them.
/🆑
This commit is contained in:
necromanceranne
2025-03-20 06:40:40 +11:00
committed by GitHub
parent de3ee020c8
commit 9b1578cdfb
5 changed files with 24 additions and 53 deletions

View File

@@ -5,9 +5,9 @@
/// Possible diseases
GLOBAL_LIST_INIT(floor_diseases, list(
/datum/disease/advance/nebula_nausea = 2,
/datum/disease/advance/gastritium = 2,
/datum/disease/advance/carpellosis = 1,
/datum/disease/nebula_nausea = 2,
/datum/disease/gastritium = 2,
/datum/disease/carpellosis = 1,
))
/// Makes items infective if left on floor, also sending corresponding signals to parent

View File

@@ -1,11 +1,12 @@
#define GNASHING_RANGE 7
/// Caused by dirty food. Makes you growl at people and bite them spontaneously.
/datum/disease/advance/carpellosis
/datum/disease/carpellosis
name = "Carpellosis"
desc = "You have an angry space carp inside."
form = "Parasite"
agent = "Carp Ella"
cure_text = "Chlorine"
cures = list(/datum/reagent/chlorine)
viable_mobtypes = list(/mob/living/carbon/human)
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
@@ -21,19 +22,7 @@
/// Whether the host has carp ability
var/ability_granted = FALSE
/datum/disease/advance/carpellosis/New()
symptoms = list(new/datum/symptom/headache)
..()
/datum/disease/advance/carpellosis/generate_cure()
cures = list(pick(cures))
var/datum/reagent/cure = GLOB.chemical_reagents_list[cures[1]]
cure_text = cure.name
/datum/disease/advance/carpellosis/GetDiseaseID()
return "[type]"
/datum/disease/advance/carpellosis/stage_act(seconds_per_tick, times_fired)
/datum/disease/carpellosis/stage_act(seconds_per_tick, times_fired)
. = ..()
if(!.)
return
@@ -62,12 +51,12 @@
else if(SPT_PROB(2, seconds_per_tick) && affected_mob.stat == CONSCIOUS)
affected_mob.visible_message("gnashes.", visible_message_flags = EMOTE_MESSAGE)
/datum/disease/advance/carpellosis/Destroy()
/datum/disease/carpellosis/Destroy()
if(ability_granted)
QDEL_NULL(rift_ability)
return ..()
/datum/disease/advance/carpellosis/cure(add_resistance = TRUE)
/datum/disease/carpellosis/cure(add_resistance = TRUE)
if(ability_granted)
rift_ability.Remove(affected_mob)
if(max_stage_reached && prob(ella_spawn_chance))
@@ -75,7 +64,7 @@
new /mob/living/basic/carp/ella(affected_mob.loc)
return ..()
/datum/disease/advance/carpellosis/proc/grant_ability()
/datum/disease/carpellosis/proc/grant_ability()
if(ability_granted)
return
rift_ability = new(src)
@@ -83,13 +72,13 @@
rift_ability.HideFrom(affected_mob)
ability_granted = TRUE
/datum/disease/advance/carpellosis/proc/find_nearby_human()
/datum/disease/carpellosis/proc/find_nearby_human()
var/list/surroundings = orange(GNASHING_RANGE, affected_mob)
for(var/mob/human as anything in typecache_filter_list(surroundings, typecacheof(/mob/living/carbon/human)))
if(human.stat != DEAD && !(HAS_TRAIT(human, TRAIT_FAKEDEATH)))
return human
/datum/disease/advance/carpellosis/proc/gnash_someone()
/datum/disease/carpellosis/proc/gnash_someone()
var/mob/living/carbon/human/target = find_nearby_human()
if(isnull(target) || !affected_mob.get_bodypart(BODY_ZONE_HEAD)) // Need mouth to gnash
to_chat(affected_mob, span_warning("You want to gnash at someone..."))

View File

@@ -1,9 +1,10 @@
/// Caused by dirty food. Makes you burp out Tritium, sometimes burning hot!
/datum/disease/advance/gastritium
/datum/disease/gastritium
name = "Gastritium"
desc = "If left untreated, may manifest in severe Tritium heartburn."
form = "Infection"
agent = "Atmobacter Polyri"
cure_text = "Milk"
cures = list(/datum/reagent/consumable/milk)
viable_mobtypes = list(/mob/living/carbon/human)
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
@@ -13,19 +14,7 @@
/// The chance of burped out tritium to be hot during max stage
var/tritium_burp_hot_chance = 10
/datum/disease/advance/gastritium/New()
symptoms = list(new/datum/symptom/fever)
..()
/datum/disease/advance/gastritium/generate_cure()
cures = list(pick(cures))
var/datum/reagent/cure = GLOB.chemical_reagents_list[cures[1]]
cure_text = cure.name
/datum/disease/advance/gastritium/GetDiseaseID()
return "[type]"
/datum/disease/advance/gastritium/stage_act(seconds_per_tick, times_fired)
/datum/disease/gastritium/stage_act(seconds_per_tick, times_fired)
. = ..()
if(!.)
return
@@ -49,8 +38,10 @@
to_chat(affected_mob, span_warning("You feel like you're about to delam..."))
else if(SPT_PROB(1, seconds_per_tick))
tritium_burp(hot_chance = TRUE)
var/change_limit = max(affected_mob.get_body_temp_heat_damage_limit() - 5 - affected_mob.get_body_temp_normal(apply_change=FALSE), 0)
affected_mob.add_body_temperature_change("gastritium", min(15 * stage, change_limit))
/datum/disease/advance/gastritium/proc/tritium_burp(hot_chance = FALSE)
/datum/disease/gastritium/proc/tritium_burp(hot_chance = FALSE)
var/datum/gas_mixture/burp = new
ADD_GAS(/datum/gas/tritium, burp.gases)
burp.gases[/datum/gas/tritium][MOLES] = MOLES_GAS_VISIBLE

View File

@@ -1,9 +1,10 @@
/// Caused by dirty food. Makes you vomit stars.
/datum/disease/advance/nebula_nausea
/datum/disease/nebula_nausea
name = "Nebula Nausea"
desc = "You can't contain the colorful beauty of the cosmos inside."
form = "Condition"
agent = "Stars"
cure_text = "Space Cleaner"
cures = list(/datum/reagent/space_cleaner)
viable_mobtypes = list(/mob/living/carbon/human)
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
@@ -11,18 +12,6 @@
required_organ = ORGAN_SLOT_STOMACH
max_stages = 5
/datum/disease/advance/nebula_nausea/New()
symptoms = list(new/datum/symptom/vomit/nebula)
..()
/datum/disease/advance/nebula_nausea/generate_cure()
cures = list(pick(cures))
var/datum/reagent/cure = GLOB.chemical_reagents_list[cures[1]]
cure_text = cure.name
/datum/disease/advance/nebula_nausea/GetDiseaseID()
return "[type]"
/datum/disease/advance/nebula_nausea/stage_act(seconds_per_tick, times_fired)
. = ..()
if(!.)
@@ -41,3 +30,5 @@
if(5)
if(SPT_PROB(1, seconds_per_tick) && affected_mob.stat == CONSCIOUS)
to_chat(affected_mob, span_warning("Your stomach has become a turbulent nebula, swirling with kaleidoscopic patterns."))
else
affected_mob.vomit(vomit_flags = (MOB_VOMIT_MESSAGE | MOB_VOMIT_HARM), vomit_type = /obj/effect/decal/cleanable/vomit/nebula, lost_nutrition = 10, distance = 2)

View File

@@ -1407,9 +1407,6 @@
#include "code\datums\diseases\wizarditis.dm"
#include "code\datums\diseases\advance\advance.dm"
#include "code\datums\diseases\advance\presets.dm"
#include "code\datums\diseases\advance\floor_diseases\carpellosis.dm"
#include "code\datums\diseases\advance\floor_diseases\gastritium.dm"
#include "code\datums\diseases\advance\floor_diseases\nebula_nausea.dm"
#include "code\datums\diseases\advance\symptoms\beard.dm"
#include "code\datums\diseases\advance\symptoms\chills.dm"
#include "code\datums\diseases\advance\symptoms\choking.dm"
@@ -1440,6 +1437,9 @@
#include "code\datums\diseases\advance\symptoms\vomit.dm"
#include "code\datums\diseases\advance\symptoms\weight.dm"
#include "code\datums\diseases\advance\symptoms\youth.dm"
#include "code\datums\diseases\floor_diseases\carpellosis.dm"
#include "code\datums\diseases\floor_diseases\gastritium.dm"
#include "code\datums\diseases\floor_diseases\nebula_nausea.dm"
#include "code\datums\elements\_element.dm"
#include "code\datums\elements\ai_control_examine.dm"
#include "code\datums\elements\ai_flee_while_injured.dm"