diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4595c449..d1c74674 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -121,7 +121,6 @@ #define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism" #define TRAIT_STRONG_GRABBER "strong_grabber" #define TRAIT_CALCIUM_HEALER "calcium_healer" -#define TRAIT_BEEFRIEND "beefriend" //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it @@ -168,7 +167,6 @@ // common trait sources #define TRAIT_GENERIC "generic" #define EYE_DAMAGE "eye_damage" -#define DISEASE_TRAIT "disease" #define GENETIC_MUTATION "genetic" #define OBESITY "obesity" #define MAGIC_TRAIT "magic" diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index ed0cc337..6a41b710 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -354,12 +354,10 @@ else RemoveSymptom(pick(symptoms)) symptoms += S - S.OnAdd(src) // Simply removes the symptom. /datum/disease/advance/proc/RemoveSymptom(datum/symptom/S) symptoms -= S - S.OnRemove(src) // Neuter a symptom, so it will only affect stats /datum/disease/advance/proc/NeuterSymptom(datum/symptom/S) diff --git a/code/datums/diseases/advance/presets.dm b/code/datums/diseases/advance/presets.dm index 56a00ae6..1924d924 100644 --- a/code/datums/diseases/advance/presets.dm +++ b/code/datums/diseases/advance/presets.dm @@ -21,7 +21,7 @@ name = "Experimental Disease" copy_type = /datum/disease/advance -/datum/disease/advance/random/New(max_symptoms, max_level = 9) +/datum/disease/advance/random/New(max_symptoms, max_level = 8) if(!max_symptoms) max_symptoms = rand(1, VIRUS_SYMPTOM_LIMIT) var/list/datum/symptom/possible_symptoms = list() diff --git a/code/datums/diseases/advance/symptoms/beesymptom.dm b/code/datums/diseases/advance/symptoms/beesymptom.dm deleted file mode 100644 index a5e530e9..00000000 --- a/code/datums/diseases/advance/symptoms/beesymptom.dm +++ /dev/null @@ -1,74 +0,0 @@ -/datum/symptom/beesease - name = "Bee Infestation" - desc = "Causes the host to cough toxin bees and occasionally synthesize toxin." - stealth = -2 - resistance = 14 - stage_speed = 1 - transmittable = 1 - level = 9 - severity = 5 - symptom_delay_min = 5 - symptom_delay_max = 20 - var/honey = FALSE - var/toxic_bees= FALSE - threshold_desc = "Resistance 14: The bees become symbiotic with the host, synthesizing honey and no longer stinging the stomach lining, and no longer attacking the host.
\ - Transmission 10: Bees now contain a completely random toxin, unless resistance exceeds 14" - -/datum/symptom/beesease/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["resistance"] >= 14) - honey = TRUE - severity = 0 - if(A.properties["transmittable"] >= 10) - toxic_bees = TRUE - -/datum/symptom/beesease/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(2) - if(prob(2)) - to_chat(M, "You taste honey in your mouth.") - if(3) - if(prob(15)) - to_chat(M, "Your stomach tingles.") - if(prob(15)) - if(honey) - to_chat(M, "You can't get the taste of honey out of your mouth!.") - M.reagents.add_reagent(/datum/reagent/consumable/honey, 2) - else - to_chat(M, "Your stomach stings painfully.") - M.adjustToxLoss(5) - M.updatehealth() - if(4, 5) - if(honey) - ADD_TRAIT(M, TRAIT_BEEFRIEND, DISEASE_TRAIT) - if(prob(15)) - to_chat(M, "Your stomach squirms.") - if(prob(25)) - if(honey) - to_chat(M, "You can't get the taste of honey out of your mouth!.") - M.reagents.add_reagent_list(list(/datum/reagent/consumable/honey = 10, /datum/reagent/consumable/honey/special = 5, /datum/reagent/medicine/insulin = 5)) //insulin prevents hyperglycemic shock - else - to_chat(M, "Your stomach stings painfully.") - M.adjustToxLoss(5) - M.updatehealth() - if(prob(10)) - M.visible_message("[M] buzzes.", \ - "Your stomach buzzes violently!") - if(prob(15)) - to_chat(M, "You feel something moving in your throat.") - if(prob(10)) - M.visible_message("[M] coughs up a bee!", \ - "You cough up a bee!") - if(toxic_bees) - new /mob/living/simple_animal/hostile/poison/bees/toxin(M.loc) - else - new /mob/living/simple_animal/hostile/poison/bees(M.loc) - -/datum/symptom/beesease/End(datum/disease/advance/A) - if(!..()) - return - REMOVE_TRAIT(A.affected_mob, TRAIT_BEEFRIEND, DISEASE_TRAIT) diff --git a/code/datums/diseases/advance/symptoms/braindamage.dm b/code/datums/diseases/advance/symptoms/braindamage.dm deleted file mode 100644 index 65572278..00000000 --- a/code/datums/diseases/advance/symptoms/braindamage.dm +++ /dev/null @@ -1,52 +0,0 @@ -/datum/symptom/braindamage - name = "Neural Decay" - desc = "Causes the host's brain cells to naturally die off, causing severe brain damage." - stealth = 1 - resistance = -2 - stage_speed = -3 - transmittable = -1 - level = 8 - severity = 5 - symptom_delay_min = 15 - symptom_delay_max = 60 - var/lethal = FALSE - var/moretrauma = FALSE - threshold_desc = "transmission 12: The disease's damage reaches lethal levels.
\ - Speed 9: Host's brain develops even more traumas than normal." - -/datum/symptom/braindamage/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["transmission"] >= 12) - lethal = TRUE - if(A.properties["speed"] >= 9) - moretrauma = TRUE - -/datum/symptom/braindamage/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1) - if(prob(10)) - to_chat(M, "Your head feels strange...") - if(2, 3) - if(prob(10)) - to_chat(M, "Your brain begins hurting...") - if(4, 5) - if(lethal) - if(prob(35)) - A.affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(5,90), 200) - to_chat(M, "Your brain hurts immensely!") - else - if(prob(35)) - A.affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(5,90), 120) - to_chat(M, "Your head hurts immensely!") - if(moretrauma && A.stage == 5) - givetrauma(A, 10) - -/datum/symptom/braindamage/proc/givetrauma(datum/disease/advance/A, chance) - if(prob(chance)) - if(ishuman(A.affected_mob)) - var/mob/living/carbon/human/M = A.affected_mob - M?.gain_trauma(BRAIN_TRAUMA_MILD) diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm index b6e8d9a3..20684839 100644 --- a/code/datums/diseases/advance/symptoms/choking.dm +++ b/code/datums/diseases/advance/symptoms/choking.dm @@ -1,6 +1,73 @@ /* ////////////////////////////////////// +Choking + Very very noticable. + Lowers resistance. + Decreases stage speed. + Decreases transmittablity tremendously. + Moderate Level. +Bonus + Inflicts spikes of oxyloss +////////////////////////////////////// +*/ + +/datum/symptom/choking + + name = "Choking" + desc = "The virus causes inflammation of the host's air conduits, leading to intermittent choking." + stealth = -3 + resistance = -2 + stage_speed = -2 + transmittable = -4 + level = 3 + severity = 3 + base_message_chance = 15 + symptom_delay_min = 10 + symptom_delay_max = 30 + threshold_desc = "Stage Speed 8: Causes choking more frequently.
\ + Stealth 4: The symptom remains hidden until active." + +/datum/symptom/choking/Start(datum/disease/advance/A) + if(!..()) + return + if(A.properties["stage_rate"] >= 8) + symptom_delay_min = 7 + symptom_delay_max = 24 + if(A.properties["stealth"] >= 4) + suppress_warning = TRUE + +/datum/symptom/choking/Activate(datum/disease/advance/A) + if(!..()) + return + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2) + if(prob(base_message_chance) && !suppress_warning) + to_chat(M, "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]") + if(3, 4) + if(!suppress_warning) + to_chat(M, "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]") + else + to_chat(M, "You feel very [pick("dizzy","woozy","faint")].") //fake bloodloss messages + Choke_stage_3_4(M, A) + M.emote("gasp") + else + to_chat(M, "[pick("You're choking!", "You can't breathe!")]") + Choke(M, A) + M.emote("gasp") + +/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A) + M.adjustOxyLoss(rand(6,13)) + return 1 + +/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A) + M.adjustOxyLoss(rand(10,18)) + return 1 + +/* +////////////////////////////////////// + Asphyxiation Very very noticable. @@ -23,7 +90,7 @@ Bonus resistance = -0 stage_speed = -1 transmittable = -2 - level = 9 + level = 7 severity = 6 base_message_chance = 15 symptom_delay_min = 14 diff --git a/code/datums/diseases/advance/symptoms/cockroach.dm b/code/datums/diseases/advance/symptoms/cockroach.dm deleted file mode 100644 index 4a6a8516..00000000 --- a/code/datums/diseases/advance/symptoms/cockroach.dm +++ /dev/null @@ -1,58 +0,0 @@ -/datum/symptom/cockroach - - name = "SBG Syndrome" - desc = "ERROR: BLUESPACE INTERFERENCE RENDERS COMPLETE ANALYSIS IMPOSSIBLE" - stealth = 0 - resistance = 3 - stage_speed = 3 - transmittable = 1 - level = 0 - severity = 6 //the joke here is that this relatively mundane and harmless symptom, which only spawns cockroaches, seems incredibly frightening - symptom_delay_min = 10 - symptom_delay_max = 30 - var/death_roaches = FALSE - threshold_desc = "Stage Speed 8: CALCULATIONS FORECAST HEIGHTENED ACTIVITY
\ - Transmission 8: CALCULATIONS FORECAST BRIEFLY ESCALATED ACTIVITY IMMEDIATELY FOLLOWING CESSATION OF HOST LIFESIGNS
" - -/datum/symptom/cockroach/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["stage_speed"] >= 8) - symptom_delay_min = 5 - symptom_delay_max = 15 - if(A.properties["transmittable"] >= 8) - death_roaches = TRUE - -/datum/symptom/cockroach/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(2) - if(prob(50)) - to_chat(M, "You feel a tingle under your skin") - if(3) - if(prob(50)) - to_chat(M, "Your pores feel drafty.") - if(prob(5)) - to_chat(M, "You feel attuned to the atmosphere") - if(4) - if(prob(50)) - to_chat(M, "You feel in tune with the station") - if(5) - if(prob(30)) - M.visible_message("[M] squirms as a cockroach crawls from their pores!", \ - "A cockroach crawls out of your face!!") - new /mob/living/simple_animal/cockroach(M.loc) - if(prob(50)) - to_chat(M, "You feel something crawling in your pipes!") - -/datum/symptom/cockroach/OnDeath(datum/disease/advance/A) - if(!..()) - return - if(death_roaches) - var/mob/living/M = A.affected_mob - to_chat(M, "Your pores explode into a colony of roaches!") - for(var/i in 1 to rand(1,5)) - new /mob/living/simple_animal/cockroach(M.loc) - diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index 1c1aa856..8e0839bc 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -20,9 +20,9 @@ Bonus name = "Spontaneous Combustion" desc = "The virus turns fat into an extremely flammable compound, and raises the body's temperature, making the host burst into flames spontaneously." stealth = 1 - resistance = -2 - stage_speed = -3 - transmittable = -3 + resistance = -4 + stage_speed = -4 + transmittable = -4 level = 6 severity = 5 base_message_chance = 20 @@ -67,22 +67,18 @@ Bonus /datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A) M.adjust_fire_stacks(1 * power) - M.take_overall_damage(burn = 3 * power, required_status = BODYPART_ORGANIC) + M.adjustFireLoss(3 * power) if(infective) A.spread(2) return 1 /datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A) - if(HAS_TRAIT(M, TRAIT_FAT)) - M.adjust_fire_stacks(6 * power) - else - M.adjust_fire_stacks(3 * power) - M.take_overall_damage(burn = 5 * power, required_status = BODYPART_ORGANIC) + M.adjust_fire_stacks(3 * power) + M.adjustFireLoss(5 * power) if(infective) A.spread(4) return 1 - /* ////////////////////////////////////// @@ -109,7 +105,7 @@ Bonus resistance = -2 stage_speed = -2 transmittable = -2 - level = 9 + level = 7 severity = 6 base_message_chance = 100 symptom_delay_min = 30 @@ -141,9 +137,6 @@ Bonus if(prob(base_message_chance)) to_chat(M, "[pick("Your veins boil.", "You feel hot.", "You smell meat cooking.")]") if(4) - if(M.fire_stacks < 0) - M.visible_message("[M]'s sweat sizzles and pops on contact with water!") - explosion(get_turf(M),-1,(-1 + explosion_power),(2 * explosion_power)) Alkali_fire_stage_4(M, A) M.IgniteMob() to_chat(M, "Your sweat bursts into flames!") @@ -151,7 +144,7 @@ Bonus if(5) if(M.fire_stacks < 0) M.visible_message("[M]'s sweat sizzles and pops on contact with water!") - explosion(get_turf(M),-1,(-1 + explosion_power),(2 * explosion_power)) + explosion(get_turf(M),0,0,2 * explosion_power) Alkali_fire_stage_5(M, A) M.IgniteMob() to_chat(M, "Your skin erupts into an inferno!") @@ -160,15 +153,15 @@ Bonus /datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A) var/get_stacks = 6 * power M.adjust_fire_stacks(get_stacks) - M.take_overall_damage(burn = get_stacks / 2, required_status = BODYPART_ORGANIC) + M.adjustFireLoss(get_stacks/2) if(chems) - M.reagents.add_reagent(/datum/reagent/clf3, 2 * power) + M.reagents.add_reagent("clf3", 2 * power) return 1 /datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A) var/get_stacks = 8 * power M.adjust_fire_stacks(get_stacks) - M.take_overall_damage(burn = get_stacks, required_status = BODYPART_ORGANIC) + M.adjustFireLoss(get_stacks) if(chems) - M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power)) + M.reagents.add_reagent_list(list("napalm" = 4 * power, "clf3" = 4 * power)) return 1 diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm index 4919cd70..2d5d22a6 100644 --- a/code/datums/diseases/advance/symptoms/flesh_eating.dm +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -55,9 +55,9 @@ Bonus /datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A) var/get_damage = rand(15,25) * power - M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC) + M.adjustBruteLoss(get_damage) if(pain) - M.adjustStaminaLoss(get_damage * 2) + M.adjustStaminaLoss(get_damage) if(bleed) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -84,12 +84,12 @@ Bonus /datum/symptom/flesh_death name = "Autophagocytosis Necrosis" - desc = "The virus rapidly consumes infected cells, leading to heavy and widespread damage. Contains dormant prions- expert virologists believe it to be the precursor to Romerol, though the mechanism through which they are activated is largely unknown" + desc = "The virus rapidly consumes infected cells, leading to heavy and widespread damage." stealth = -2 resistance = -2 stage_speed = 1 transmittable = -2 - level = 9 + level = 7 severity = 6 base_message_chance = 50 symptom_delay_min = 3 @@ -106,8 +106,6 @@ Bonus suppress_warning = TRUE if(A.properties["stage_rate"] >= 7) //bleeding and hunger chems = TRUE - if((A.properties["stealth"] >= 2) && (A.properties["stage_rate"] >= 12)) - zombie = TRUE /datum/symptom/flesh_death/Activate(datum/disease/advance/A) if(!..()) @@ -124,12 +122,9 @@ Bonus /datum/symptom/flesh_death/proc/Flesh_death(mob/living/M, datum/disease/advance/A) var/get_damage = rand(6,10) - M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC) + M.adjustBruteLoss(get_damage) if(chems) - M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2)) + M.reagents.add_reagent_list(list("heparin" = 2, "lipolicide" = 2)) if(zombie) - if(ishuman(A.affected_mob)) - if(!A.affected_mob.getorganslot(ORGAN_SLOT_ZOMBIE)) - var/obj/item/organ/zombie_infection/ZI = new() - ZI.Insert(M) + M.reagents.add_reagent("romerol", 1) return 1 diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm deleted file mode 100644 index fbfa41a2..00000000 --- a/code/datums/diseases/advance/symptoms/genetics.dm +++ /dev/null @@ -1,82 +0,0 @@ -/* -////////////////////////////////////// - -DNA Saboteur - - Very noticable. - Lowers resistance tremendously. - No changes to stage speed. - Decreases transmittablity tremendously. - Fatal Level. - -Bonus - Cleans the DNA of a person and then randomly gives them a trait. - -////////////////////////////////////// -*/ - -/datum/symptom/genetic_mutation - name = "Deoxyribonucleic Acid Saboteur" - desc = "The virus bonds with the DNA of the host, causing damaging mutations until removed." - stealth = -2 - resistance = -3 - stage_speed = 0 - transmittable = -3 - level = 6 - severity = 4 - var/list/possible_mutations - var/archived_dna = null - base_message_chance = 50 - symptom_delay_min = 60 - symptom_delay_max = 120 - var/no_reset = FALSE - threshold_desc = "Resistance 8: Causes two harmful mutations at once.
\ - Stage Speed 10: Increases mutation frequency.
\ - Stage Speed 14: Mutations will be beneficial.
\ - Stealth 5: The mutations persist even if the virus is cured." - -/datum/symptom/genetic_mutation/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/carbon/C = A.affected_mob - if(!C.has_dna()) - return - switch(A.stage) - if(4, 5) - to_chat(C, "[pick("Your skin feels itchy.", "You feel light headed.")]") - C.dna.remove_mutation_group(possible_mutations) - for(var/i in 1 to power) - C.randmut(possible_mutations) - -// Archive their DNA before they were infected. -/datum/symptom/genetic_mutation/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["stealth"] >= 5) //don't restore dna after curing - no_reset = TRUE - if(A.properties["stage_rate"] >= 10) //mutate more often - symptom_delay_min = 20 - symptom_delay_max = 60 - if(A.properties["resistance"] >= 8) //mutate twice - power = 2 - if(A.properties["stage_rate"] >= 14) - possible_mutations = (GLOB.good_mutations | GLOB.not_good_mutations) - GLOB.all_mutations[RACEMUT] - else - possible_mutations = (GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.all_mutations[RACEMUT] - var/mob/living/carbon/M = A.affected_mob - if(M) - if(!M.has_dna()) - return - archived_dna = M.dna.mutation_index - -// Give them back their old DNA when cured. -/datum/symptom/genetic_mutation/End(datum/disease/advance/A) - if(!..()) - return - if(!no_reset) - var/mob/living/carbon/M = A.affected_mob - if(M && archived_dna) - if(!M.has_dna()) - return - M.dna.mutation_index = archived_dna - M.domutcheck() diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm index 86587abd..873d9605 100644 --- a/code/datums/diseases/advance/symptoms/hallucigen.dm +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -18,23 +18,23 @@ Bonus /datum/symptom/hallucigen name = "Hallucigen" desc = "The virus stimulates the brain, causing occasional hallucinations." - stealth = 1 + stealth = -2 resistance = -3 - stage_speed = -1 + stage_speed = -3 transmittable = -1 level = 5 severity = 2 base_message_chance = 25 - symptom_delay_min = 10 - symptom_delay_max = 70 + symptom_delay_min = 25 + symptom_delay_max = 90 var/fake_healthy = FALSE threshold_desc = "Stage Speed 7: Increases the amount of hallucinations.
\ - Stealth 2: The virus mimics positive symptoms.." + Stealth 4: The virus mimics positive symptoms.." /datum/symptom/hallucigen/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["stealth"] >= 2) //fake good symptom messages + if(A.properties["stealth"] >= 4) //fake good symptom messages fake_healthy = TRUE base_message_chance = 50 if(A.properties["stage_rate"] >= 7) //stronger hallucinations diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index a133be00..e666c7ac 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -5,7 +5,7 @@ resistance = 0 stage_speed = 0 transmittable = 0 - level = -1 //not obtainable + level = 0 //not obtainable base_message_chance = 20 //here used for the overlays symptom_delay_min = 1 symptom_delay_max = 1 @@ -43,6 +43,59 @@ /datum/symptom/heal/proc/passive_message_condition(mob/living/M) return TRUE + +/datum/symptom/heal/starlight + name = "Starlight Condensation" + desc = "The virus reacts to direct starlight, producing regenerative chemicals. Works best against toxin-based damage." + stealth = -1 + resistance = -2 + stage_speed = 0 + transmittable = 1 + level = 6 + passive_message = "You miss the feeling of starlight on your skin." + var/nearspace_penalty = 0.3 + threshold_desc = "Stage Speed 6: Increases healing speed.
\ + Transmission 6: Removes penalty for only being close to space." + +/datum/symptom/heal/starlight/Start(datum/disease/advance/A) + if(!..()) + return + if(A.properties["transmittable"] >= 6) + nearspace_penalty = 1 + if(A.properties["stage_rate"] >= 6) + power = 2 + +/datum/symptom/heal/starlight/CanHeal(datum/disease/advance/A) + var/mob/living/M = A.affected_mob + if(istype(get_turf(M), /turf/open/space)) + return power + else + for(var/turf/T in view(M, 2)) + if(istype(T, /turf/open/space)) + return power * nearspace_penalty + +/datum/symptom/heal/starlight/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) + var/heal_amt = actual_power + if(M.getToxLoss() && prob(5)) + to_chat(M, "Your skin tingles as the starlight seems to heal you.") + + M.adjustToxLoss(-(4 * heal_amt)) //most effective on toxins + + var/list/parts = M.get_damaged_bodyparts(1,1) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len)) + M.update_damage_overlays() + return 1 + +/datum/symptom/heal/starlight/passive_message_condition(mob/living/M) + if(M.getBruteLoss() || M.getFireLoss() || M.getToxLoss()) + return TRUE + return FALSE + /datum/symptom/heal/chem name = "Toxolysis" stealth = 0 @@ -73,6 +126,89 @@ return 1 + +/datum/symptom/heal/metabolism + name = "Metabolic Boost" + stealth = -1 + resistance = -2 + stage_speed = 2 + transmittable = 1 + level = 7 + var/triple_metabolism = FALSE + var/reduced_hunger = FALSE + desc = "The virus causes the host's metabolism to accelerate rapidly, making them process chemicals twice as fast,\ + but also causing increased hunger." + threshold_desc = "Stealth 3: Reduces hunger rate.
\ + Stage Speed 10: Chemical metabolization is tripled instead of doubled." + +/datum/symptom/heal/metabolism/Start(datum/disease/advance/A) + if(!..()) + return + if(A.properties["stage_rate"] >= 10) + triple_metabolism = TRUE + if(A.properties["stealth"] >= 3) + reduced_hunger = TRUE + +/datum/symptom/heal/metabolism/Heal(mob/living/carbon/C, datum/disease/advance/A, actual_power) + if(!istype(C)) + return + C.reagents.metabolize(C, can_overdose=TRUE) //this works even without a liver; it's intentional since the virus is metabolizing by itself + if(triple_metabolism) + C.reagents.metabolize(C, can_overdose=TRUE) + C.overeatduration = max(C.overeatduration - 2, 0) + var/lost_nutrition = 9 - (reduced_hunger * 5) + C.nutrition = max(C.nutrition - (lost_nutrition * HUNGER_FACTOR), 0) //Hunger depletes at 10x the normal speed + if(prob(2)) + to_chat(C, "You feel an odd gurgle in your stomach, as if it was working much faster than normal.") + return 1 + +/datum/symptom/heal/darkness + name = "Nocturnal Regeneration" + desc = "The virus is able to mend the host's flesh when in conditions of low light, repairing physical damage. More effective against brute damage." + stealth = 2 + resistance = -1 + stage_speed = -2 + transmittable = -1 + level = 6 + passive_message = "You feel tingling on your skin as light passes over it." + threshold_desc = "Stage Speed 8: Doubles healing speed." + +/datum/symptom/heal/darkness/Start(datum/disease/advance/A) + if(!..()) + return + if(A.properties["stage_rate"] >= 8) + power = 2 + +/datum/symptom/heal/darkness/CanHeal(datum/disease/advance/A) + var/mob/living/M = A.affected_mob + var/light_amount = 0 + if(isturf(M.loc)) //else, there's considered to be no light + var/turf/T = M.loc + light_amount = min(1,T.get_lumcount()) - 0.5 + if(light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) + return power + +/datum/symptom/heal/darkness/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) + var/heal_amt = 2 * actual_power + + var/list/parts = M.get_damaged_bodyparts(1,1) + + if(!parts.len) + return + + if(prob(5)) + to_chat(M, "The darkness soothes and mends your wounds.") + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len * 0.5)) //more effective on brute + M.update_damage_overlays() + return 1 + +/datum/symptom/heal/darkness/passive_message_condition(mob/living/M) + if(M.getBruteLoss() || M.getFireLoss()) + return TRUE + return FALSE + /datum/symptom/heal/coma name = "Regenerative Coma" desc = "The virus causes the host to fall into a death-like coma when severely damaged, then rapidly fixes the damage." @@ -148,268 +284,183 @@ return TRUE return FALSE -/* -////////////////////////////////////// -im not even gonna bother with these for the following symptoms. typed em out, code was deleted, had to start over, read the symptoms yourself. - -////////////////////////////////////// -*/ - -/datum/symptom/EMP - name = "Organic Flux Induction" - desc = "Causes electromagnetic interference around the subject" - stealth = -2 - resistance = -1 - stage_speed = 0 - transmittable = -2 - level = 6 - severity = 4 - symptom_delay_min = 15 - symptom_delay_max = 40 - var/bigemp = FALSE - var/cellheal = FALSE - threshold_desc = "Stealth 4: The disease resets cell DNA, quickly curing cell damage and mutations
\ - transmission 8: The EMP affects electronics adjacent to the subject as well." - -/datum/symptom/EMP/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["stealth"] >= 4) - cellheal = TRUE - if(A.properties["transmittable"] >= 8) - bigemp = TRUE - -/datum/symptom/EMP/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/carbon/M = A.affected_mob - switch(A.stage) - if(4, 5) - M.emp_act(EMP_HEAVY) - if(cellheal) - M.adjustCloneLoss(-40) - M.reagents.add_reagent(/datum/reagent/medicine/mutadone = 1) - if(bigemp) - empulse(M.loc, 0, 1) - to_chat(M, "[pick("Your mind fills with static!.", "You feel a jolt!", "Your sense of direction flickers out!")]") - else - to_chat(M, "[pick("You feel a slight tug toward the station's wall.", "Nearby electronics flicker", "Your hair stands on end")]") - return - -/datum/symptom/sweat - name = "Hyperperspiration" - desc = "Causes the host to sweat profusely, leaving small water puddles and extnguishing small fires" - stealth = 1 +/datum/symptom/heal/water + name = "Tissue Hydration" + desc = "The virus uses excess water inside and outside the body to repair damaged tissue cells. More effective against burns." + stealth = 0 resistance = -1 stage_speed = 0 transmittable = 1 level = 6 - severity = 4 - symptom_delay_min = 10 - symptom_delay_max = 30 - var/bigsweat = FALSE - var/toxheal = FALSE - threshold_desc = "transmission 6: The sweat production ramps up to the point that it cleans messes and puts out fires in the general vicinity
\ - transmission 8: The EMP affects electronics adjacent to the subject as well." + passive_message = "Your skin feels oddly dry..." + var/absorption_coeff = 1 + threshold_desc = "Resistance 5: Water is consumed at a much slower rate.
\ + Stage Speed 7: Increases healing speed." -/datum/symptom/sweat/Start(datum/disease/advance/A) +/datum/symptom/heal/water/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["transmittable"] >= 8) - toxheal = TRUE - if(A.properties["transmittable"] >= 6) - bigsweat = TRUE - -/datum/symptom/sweat/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/carbon/M = A.affected_mob - switch(A.stage) - if(4, 5) - M.adjust_fire_stacks(-5) - if(prob(30)) - var/turf/open/OT = get_turf(M) - if(istype(OT)) - to_chat(M, "The sweat pools into a puddle!") - OT.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) - if(bigsweat) - var/obj/effect/sweatsplash/S = new(M.loc) - if(toxheal) - for(var/datum/reagent/R in M.reagents.reagent_list) //Not just toxins! - M.reagents.remove_reagent(R.type, 5) - S.reagents.add_reagent(R.type, 5) - M.adjustToxLoss(-20, forced = TRUE) - S.splash() - to_chat(M, "You sweat out nearly everything in your body!") - else - to_chat(M, "[pick("You feel moist.", "Your clothes are soaked", "You're sweating buckets")]") - return - -/obj/effect/sweatsplash - name = "Sweatsplash" - -/obj/effect/sweatsplash/Initialize() - create_reagents(1000) - reagents.add_reagent(/datum/reagent/water, 10) - reagents.add_reagent(/datum/reagent/space_cleaner, 10) - -obj/effect/sweatsplash/proc/splash() - chem_splash(loc, 2, list(reagents)) - qdel(src) - -/datum/symptom/teleport - name = "Thermal Retrostable Displacement" - desc = "When too hot or cold, the subject will return to a recent location they experienced safe homeostasis" - stealth = 1 - resistance = 2 - stage_speed = -2 - transmittable = -3 - level = 8 - severity = 0 - symptom_delay_min = 1 - symptom_delay_max = 1 - var/telethreshold = 0 - var/burnheal = FALSE - var/turf/open/location_return = null - var/cooldowntimer = 0 - threshold_desc = "Resistance 8: The disease acts on a smaller scale, resetting burnt tissue back to a state of health
\ - Transmission 8: The disease becomes more active, activating in a smaller temperature range." - -/datum/symptom/teleport/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["resistance"] >= 8) - burnheal = TRUE - if(A.properties["transmittable"] >= 8) - telethreshold = 25 + if(A.properties["stage_rate"] >= 7) power = 2 + if(A.properties["stealth"] >= 2) + absorption_coeff = 0.25 -/datum/symptom/teleport/Activate(datum/disease/advance/A) +/datum/symptom/heal/water/CanHeal(datum/disease/advance/A) + . = 0 + var/mob/living/M = A.affected_mob + if(M.fire_stacks < 0) + M.fire_stacks = min(M.fire_stacks + 1 * absorption_coeff, 0) + . += power + if(M.reagents.has_reagent("holywater")) + M.reagents.remove_reagent("holywater", 0.5 * absorption_coeff) + . += power * 0.75 + else if(M.reagents.has_reagent("water")) + M.reagents.remove_reagent("water", 0.5 * absorption_coeff) + . += power * 0.5 + +/datum/symptom/heal/water/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) + var/heal_amt = 2 * actual_power + + var/list/parts = M.get_damaged_bodyparts(1,1) //more effective on burns + + if(!parts.len) + return + + if(prob(5)) + to_chat(M, "You feel yourself absorbing the water around you to soothe your damaged skin.") + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len * 0.5, heal_amt/parts.len)) + M.update_damage_overlays() + + return 1 + +/datum/symptom/heal/water/passive_message_condition(mob/living/M) + if(M.getBruteLoss() || M.getFireLoss()) + return TRUE + return FALSE + +/datum/symptom/heal/plasma + name = "Plasma Fixation" + desc = "The virus draws plasma from the atmosphere and from inside the body to heal and stabilize body temperature." + stealth = 0 + resistance = 3 + stage_speed = -2 + transmittable = -2 + level = 8 + passive_message = "You feel an odd attraction to plasma." + var/temp_rate = 1 + threshold_desc = "Transmission 6: Increases temperature adjustment rate.
\ + Stage Speed 7: Increases healing speed." + +/datum/symptom/heal/plasma/Start(datum/disease/advance/A) if(!..()) return - var/mob/living/carbon/M = A.affected_mob - switch(A.stage) - if(4, 5) - if(burnheal) - M.adjustFireLoss(-1 * power) - if(prob(5) && (M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT || M.bodytemperature > BODYTEMP_COLD_DAMAGE_LIMIT)) - location_return = get_turf(M) //sets up return point - if(prob(50)) - to_chat(M, "The lukewarm temperature makes you feel strange!") - if(cooldowntimer == 0 && (M.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT - telethreshold || M.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT + telethreshold || (burnheal && M.getFireLoss() > 75 - telethreshold))) - do_sparks(5,FALSE,M) - to_chat(M, "The change in temperature shocks you back to a previous spacial state!") - do_teleport(M, location_return, 0, asoundin = 'sound/effects/phasein.ogg') //Teleports home - do_sparks(5,FALSE,M) - cooldowntimer = 10 - if(burnheal) - M.adjust_fire_stacks(-10) - if(cooldowntimer > 0) - cooldowntimer -- - else - if(prob(7)) - to_chat(M, "[pick("Your warm breath fizzles out of existence.", "You feel attracted to temperate climates", "You feel like you're forgetting something")]") - return + if(A.properties["stage_rate"] >= 7) + power = 2 + if(A.properties["transmittable"] >= 6) + temp_rate = 4 -/datum/symptom/growth - name = "Pituitary Disruption" - desc = "Causes uncontrolled growth in the subject" - stealth = -3 +/datum/symptom/heal/plasma/CanHeal(datum/disease/advance/A) + var/mob/living/M = A.affected_mob + var/datum/gas_mixture/environment + var/plasmamount + + . = 0 + + if(M.loc) + environment = M.loc.return_air() + if(environment) + plasmamount = environment.gases[/datum/gas/plasma] + if(plasmamount && plasmamount > GLOB.meta_gas_visibility[/datum/gas/plasma]) //if there's enough plasma in the air to see + . += power * 0.5 + if(M.reagents.has_reagent("plasma")) + . += power * 0.75 + +/datum/symptom/heal/plasma/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) + var/heal_amt = 4 * actual_power + + if(prob(5)) + to_chat(M, "You feel yourself absorbing plasma inside and around you...") + + if(M.bodytemperature > BODYTEMP_NORMAL) + M.adjust_bodytemperature(-20 * temp_rate * TEMPERATURE_DAMAGE_COEFFICIENT,BODYTEMP_NORMAL) + if(prob(5)) + to_chat(M, "You feel less hot.") + else if(M.bodytemperature < (BODYTEMP_NORMAL + 1)) + M.adjust_bodytemperature(20 * temp_rate * TEMPERATURE_DAMAGE_COEFFICIENT,0,BODYTEMP_NORMAL) + if(prob(5)) + to_chat(M, "You feel warmer.") + + M.adjustToxLoss(-heal_amt) + + var/list/parts = M.get_damaged_bodyparts(1,1) + if(!parts.len) + return + if(prob(5)) + to_chat(M, "The pain from your wounds fades rapidly.") + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len)) + M.update_damage_overlays() + return 1 + + +/datum/symptom/heal/radiation + name = "Radioactive Resonance" + desc = "The virus uses radiation to fix damage through dna mutations." + stealth = -1 resistance = -2 - stage_speed = 1 - transmittable = -2 - level = 7 - severity = 4 + stage_speed = 2 + transmittable = -3 + level = 6 symptom_delay_min = 1 symptom_delay_max = 1 - var/current_size = 1 - var/tetsuo = FALSE - var/bruteheal = FALSE - threshold_desc = "Stage Speed 8: The disease heals brute damage at a fast rate, but causes expulsion of benign tumors
\ - Stage Speed 12: The disease heals brute damage incredibly fast, but deteriorates cell health and causes tumors to become more advanced." + passive_message = "Your skin glows faintly for a moment." + var/cellular_damage = FALSE + threshold_desc = "Transmission 6: Additionally heals cellular damage.
\ + Resistance 7: Increases healing speed." -/datum/symptom/growth/Start(datum/disease/advance/A) +/datum/symptom/heal/radiation/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["stage_rate"] >= 8) - bruteheal = TRUE - if(A.properties["stage_rate"] >= 12) - tetsuo = TRUE + if(A.properties["resistance"] >= 7) + power = 2 + if(A.properties["transmittable"] >= 6) + cellular_damage = TRUE -/datum/symptom/growth/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/carbon/M = A.affected_mob - var/newsize = current_size - switch(A.stage) - if(4, 5) - switch(A.properties["stage_rate"]) - if(5 to 8) - newsize = 1.25 - if(9 to 12) - newsize = 1.5 - if(13 to 16) - newsize = 1.75 - if(17 to INFINITY) - newsize = 2 - M.resize = newsize/current_size - current_size = newsize - M.update_transform() - if(prob(5) && bruteheal) - to_chat(M, "You retch, and a splatter of gore escapes your gullet") - M.Knockdown(40) - new /obj/effect/gibspawner/generic(M.loc) - if(prob(80)) - new /obj/effect/spawner/lootdrop/teratoma/minor(M.loc) - if(tetsuo && prob(30)) - new /obj/effect/spawner/lootdrop/teratoma/major(M.loc) - if(tetsuo && prob(10) && A.affected_mob.job == "Clown") - new /obj/effect/spawner/lootdrop/teratoma/major/clown(M.loc) - if(tetsuo) - M.adjustBruteLoss(-5) - if(prob(20)) - M.adjustCloneLoss(1) - else if(bruteheal) - M.adjustBruteLoss(-1) +/datum/symptom/heal/radiation/CanHeal(datum/disease/advance/A) + var/mob/living/M = A.affected_mob + switch(M.radiation) + if(0) + return FALSE + if(1 to RAD_MOB_SAFE) + return 0.25 + if(RAD_MOB_SAFE to RAD_BURN_THRESHOLD) + return 0.5 + if(RAD_BURN_THRESHOLD to RAD_MOB_MUTATE) + return 0.75 + if(RAD_MOB_MUTATE to RAD_MOB_KNOCKDOWN) + return 1 else - if(prob(5)) - to_chat(M, "[pick("You feel bloated.", "The station seems small", "You are the strongest")]") - return + return 1.5 -/obj/effect/mob_spawn/teratomamonkey //spawning these is one of the downsides of overclocking the symptom - name = "fleshy mass" - desc = "A writhing mass of flesh." - icon = 'icons/mob/blob.dmi' - icon_state = "blob_spore_temp" - density = FALSE - anchored = FALSE +/datum/symptom/heal/radiation/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) + var/heal_amt = actual_power - mob_type = /mob/living/carbon/monkey/tumor - mob_name = "a living tumor" - death = FALSE - roundstart = FALSE - flavour_text = {" - You are a living teratoma, and your existence is misery. You feel the need to spread woe about the station- but not to kill. - "} + if(cellular_damage) + M.adjustCloneLoss(-heal_amt * 0.5) -/obj/effect/mob_spawn/teratomamonkey/Initialize() - . = ..() - var/area/A = get_area(src) - if(A) - notify_ghosts("A living tumor has been born in [A.name].", 'sound/effects/splat.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) + M.adjustToxLoss(-(2 * heal_amt)) -/obj/effect/mob_spawn/teratomamonkey/attack_hand(mob/living/user) - . = ..() - if(.) + var/list/parts = M.get_damaged_bodyparts(1,1) + + if(!parts.len) return - to_chat(user, "Ew... It would be a bad idea to touch this. It could probably be destroyed with the extreme heat of a welder.") -/obj/effect/mob_spawn/teratomamonkey/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM) - user.visible_message("[usr.name] destroys [src].", - "You hold the welder to [src], and it violently bursts!", - "You hear a gurgling noise") - new /obj/effect/gibspawner/human(get_turf(src)) - qdel(src) - else - ..() \ No newline at end of file + if(prob(4)) + to_chat(M, "Your skin glows faintly, and you feel your wounds mending themselves.") + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len)) + M.update_damage_overlays() + return 1 diff --git a/code/datums/diseases/advance/symptoms/heartattack.dm b/code/datums/diseases/advance/symptoms/heartattack.dm deleted file mode 100644 index 21d91061..00000000 --- a/code/datums/diseases/advance/symptoms/heartattack.dm +++ /dev/null @@ -1,66 +0,0 @@ -/* -////////////////////////////////////// - -Heart Disease - - A bit stealthy - Slightly resistant - Quite slow - small transmission penalty - max level - -Bonus - heart attacks - -////////////////////////////////////// -*/ - -/datum/symptom/heartattack - name = "Heart Disease" - desc = "This disease infiltrates the host's heart, causing cardiac arrest after a long incubation period" - stealth = 2 - resistance = 1 - stage_speed = -6 - transmittable = -2 - level = 9 - severity = 6 - symptom_delay_min = 1 - symptom_delay_max = 1 - var/heartattack = FALSE - threshold_desc = "Transmission 10: When the victim has a heart attack, their heart will pop right out of their chest, and attack!.
\ - Stealth 2: The disease is somewhat less noticable to the host." - -/datum/symptom/heartattack/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["transmittable"] >= 10) - heartattack = TRUE - if(A.properties["stealth"] >= 2) - suppress_warning = TRUE - -/datum/symptom/heartattack/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/carbon/M = A.affected_mob - if(suppress_warning && M.can_heartattack()) - if(prob(2)) - to_chat(M, "[pick("Your chest aches.", "You need to sit down.", "You feel out of breath.")]") - else if(prob(2) && M.can_heartattack()) - to_chat(M, "[pick("Your chest hurts!.", "You feel like your heart skipped a beat!")]") - if(A.stage == 5) - if(M.getorgan(/obj/item/organ/heart) && M.can_heartattack()) - if(prob(1) && prob(50)) - M.set_heartattack(TRUE) - to_chat(M, "Your heart stops!") - if(heartattack) - heartattack(M, A) - -/datum/symptom/heartattack/proc/heartattack(mob/living/M, datum/disease/advance/A) - var/obj/item/organ/heart/heart = M.getorganslot(ORGAN_SLOT_HEART) - if(M.getorgan(/obj/item/organ/heart)) - heart.Remove(M) - qdel(heart) - to_chat(M, "Your heart bursts out of your chest! It looks furious!") - new /mob/living/simple_animal/hostile/heart(M.loc) - - diff --git a/code/datums/diseases/advance/symptoms/lubefeet.dm b/code/datums/diseases/advance/symptoms/lubefeet.dm deleted file mode 100644 index 29a44205..00000000 --- a/code/datums/diseases/advance/symptoms/lubefeet.dm +++ /dev/null @@ -1,73 +0,0 @@ -/datum/symptom/lubefeet - name = "Ducatopod" - desc = "The host now sweats industrial lubricant from their feet, lubing tiles they walk on. Combine with Pierrot's throat for the penultimate form of torture." - stealth = -4 - resistance = -2 - stage_speed = 4 - transmittable = 1 - level = 9 - severity = 3 - symptom_delay_min = 1 - symptom_delay_max = 3 - var/morelube = FALSE - var/clownshoes = TRUE - threshold_desc = "Transmission 10: The host sweats even more profusely, lubing almost every tile they walk over
\ - Resistance 12: The host's feet turn into a pair of clown shoes." - -/datum/symptom/lubefeet/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["transmission"] >= 10) - morelube = TRUE - if(A.properties["resistance"] >= 12) - clownshoes = TRUE - -/datum/symptom/lubefeet/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1, 2) - if(prob(15)) - to_chat(M, "Your feet begin to sweat profusely...") - if(3, 4) - to_chat(M, "You slide about inside your shoes!") - if(A.stage == 4 || A.stage == 5) - if(morelube) - makelube(M, 40) - else - makelube(M, 20) - if(5) - to_chat(M, "You slide about inside your shoes!") - if(A.stage == 4 || A.stage == 5) - if(morelube) - makelube(M, 99) - else - makelube(M, 50) - if(clownshoes) - give_clown_shoes(A) - -/datum/symptom/lubefeet/proc/makelube(mob/living/carbon/M, chance) - if(prob(chance)) - var/turf/open/OT = get_turf(M) - if(istype(OT)) - to_chat(M, "The lube pools into a puddle!") - OT.MakeSlippery(TURF_WET_LUBE, min_wet_time = 20 SECONDS, wet_time_to_add = 10 SECONDS) - -/datum/symptom/lubefeet/End(datum/disease/advance/A) - ..() - if(ishuman(A.affected_mob)) - var/mob/living/carbon/human/M = A.affected_mob - if(istype(M.shoes, /obj/item/clothing/shoes/clown_shoes)) - REMOVE_TRAIT(M.shoes, TRAIT_NODROP, DISEASE_TRAIT) - -/datum/symptom/lubefeet/proc/give_clown_shoes(datum/disease/advance/A) - if(ishuman(A.affected_mob)) - var/mob/living/carbon/human/M = A.affected_mob - if(!istype(M.shoes, /obj/item/clothing/shoes/clown_shoes)) - if(!M.dropItemToGround(M.shoes)) - qdel(M.shoes) - var/obj/item/clothing/C = new /obj/item/clothing/shoes/clown_shoes(M) - ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT) - M.equip_to_slot_or_del(C, SLOT_SHOES) - return diff --git a/code/datums/diseases/advance/symptoms/narcolepsy.dm b/code/datums/diseases/advance/symptoms/narcolepsy.dm index 89d1d6d6..24ba024a 100644 --- a/code/datums/diseases/advance/symptoms/narcolepsy.dm +++ b/code/datums/diseases/advance/symptoms/narcolepsy.dm @@ -15,13 +15,13 @@ Bonus /datum/symptom/narcolepsy name = "Narcolepsy" desc = "The virus causes a hormone imbalance, making the host sleepy and narcoleptic." - stealth = 1 + stealth = -1 resistance = -2 stage_speed = -3 - transmittable = -2 + transmittable = -4 level = 6 - symptom_delay_min = 10 - symptom_delay_max = 30 + symptom_delay_min = 15 + symptom_delay_max = 80 severity = 4 var/sleep_level = 0 var/sleepy_ticks = 0 @@ -35,8 +35,8 @@ Bonus if(A.properties["transmittable"] >= 7) //stamina damage stamina = TRUE if(A.properties["resistance"] >= 10) //act more often - symptom_delay_min = 5 - symptom_delay_max = 20 + symptom_delay_min = 10 + symptom_delay_max = 60 /datum/symptom/narcolepsy/Activate(var/datum/disease/advance/A) var/mob/living/M = A.affected_mob diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm index 778909ed..cb7d1a6d 100644 --- a/code/datums/diseases/advance/symptoms/oxygen.dm +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -28,7 +28,7 @@ Bonus symptom_delay_min = 1 symptom_delay_max = 1 var/regenerate_blood = FALSE - threshold_desc = "Resistance 8: Additionally regenerates lost blood.
" + threshold_desc = "Resistance 8:Additionally regenerates lost blood.
" /datum/symptom/oxygen/Start(datum/disease/advance/A) if(!..()) @@ -42,25 +42,11 @@ Bonus var/mob/living/carbon/M = A.affected_mob switch(A.stage) if(4, 5) - ADD_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) M.adjustOxyLoss(-7, 0) M.losebreath = max(0, M.losebreath - 4) - if(regenerate_blood && M.blood_volume < BLOOD_VOLUME_NORMAL) + if(regenerate_blood && M.blood_volume < (BLOOD_VOLUME_NORMAL * M.blood_ratio)) M.blood_volume += 1 else if(prob(base_message_chance)) to_chat(M, "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]") return - -/datum/symptom/oxygen/on_stage_change(new_stage, datum/disease/advance/A) - if(!..()) - return FALSE - var/mob/living/carbon/M = A.affected_mob - if(A.stage <= 3) - REMOVE_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) - return TRUE - -/datum/symptom/oxygen/End(datum/disease/advance/A) - if(!..()) - return - REMOVE_TRAIT(A.affected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) diff --git a/code/datums/diseases/advance/symptoms/pierrot.dm b/code/datums/diseases/advance/symptoms/pierrot.dm deleted file mode 100644 index e58a782d..00000000 --- a/code/datums/diseases/advance/symptoms/pierrot.dm +++ /dev/null @@ -1,79 +0,0 @@ -/datum/symptom/pierrot - name = "Pierrot's Throat" - desc = "Causes the host to honk randomly" - stealth = -1 - resistance = 3 - stage_speed = 1 - transmittable = 2 - level = 0 - severity = 1 - symptom_delay_min = 2 - symptom_delay_max = 15 - var/honkspread = FALSE - var/clownmask = FALSE - var/clumsy = FALSE - threshold_desc = "Transmission 10: There's a rare chance the disease is spread everytime the host honks.
\ - Resistance 10: The host grows a peculiar clown mask.
\ - Resistance 15: Host becomes clumsy, similar to a clown." - -/datum/symptom/pierrot/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["transmission"] >= 10) - honkspread = TRUE - if(A.properties["resistance"] >= 10) - clownmask = TRUE - if(A.properties["resistance"] >= 15) - clumsy = TRUE - -/datum/symptom/pierrot/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1) - if(prob(30)) - to_chat(M, "You feel a little silly.") - if(2) - if(prob(30)) - to_chat(M, "You start seeing rainbows.") - if(3) - if(prob(30)) - to_chat(M, "Your thoughts are interrupted by a loud HONK!") - playsound(M, 'sound/items/bikehorn.ogg', 50, 1) - if(4, 5) - if(clumsy) - if(!HAS_TRAIT(M, TRAIT_CLUMSY)) - to_chat(M, "You feel dumber.") - ADD_TRAIT(M, TRAIT_CLUMSY, DISEASE_TRAIT) - if(prob(30)) - M.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") )) - if(A.stage == 5) - if(clownmask) - give_clown_mask(A) - if(prob(5)) - playsound(M.loc, 'sound/items/bikehorn.ogg', 50, 1) - if(honkspread && prob(25)) - A.spread(1) - -/datum/symptom/pierrot/End(datum/disease/advance/A) - ..() - if(!A.affected_mob.job == "Clown") - to_chat(A.affected_mob, "You feel less dumb.") - REMOVE_TRAIT(A.affected_mob, TRAIT_CLUMSY, DISEASE_TRAIT) - if(ishuman(A.affected_mob)) - var/mob/living/carbon/human/M = A.affected_mob - if(istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat)) - REMOVE_TRAIT(M.wear_mask, TRAIT_NODROP, DISEASE_TRAIT) - - -/datum/symptom/pierrot/proc/give_clown_mask(datum/disease/advance/A) - if(ishuman(A.affected_mob)) - var/mob/living/carbon/human/M = A.affected_mob - if(!istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat)) - if(!M.dropItemToGround(M.wear_mask)) - qdel(M.wear_mask) - var/obj/item/clothing/C = new /obj/item/clothing/mask/gas/clown_hat(M) - ADD_TRAIT(C, TRAIT_NODROP, DISEASE_TRAIT) - M.equip_to_slot_or_del(C, SLOT_WEAR_MASK) - return diff --git a/code/datums/diseases/advance/symptoms/radiation.dm b/code/datums/diseases/advance/symptoms/radiation.dm deleted file mode 100644 index 17447f90..00000000 --- a/code/datums/diseases/advance/symptoms/radiation.dm +++ /dev/null @@ -1,42 +0,0 @@ -/datum/symptom/radiation - name = "Iraddiant Cells" - desc = "Causes the cells in the host's body to give off harmful radiation." - stealth = -1 - resistance = 2 - stage_speed = -1 - transmittable = 2 - level = 8 - severity = 4 - symptom_delay_min = 10 - symptom_delay_max = 40 - var/fastrads = FALSE - var/radothers = FALSE - threshold_desc = "Speed 8: Host takes radiation damage faster." - -/datum/symptom/radiation/Start(datum/disease/advance/A) - if(!..()) - return - if(A.properties["speed"] >= 8) - fastrads = TRUE - -/datum/symptom/radiation/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(1) - if(prob(10)) - to_chat(M, "You feel off...") - if(2, 3) - if(prob(50)) - to_chat(M, "You feel like the atoms inside you are beginning to split...") - if(4, 5) - radiate(M) - -/datum/symptom/radiation/proc/radiate(mob/living/carbon/M) - to_chat(M, "You feel a wave of pain throughout your body!") - if(fastrads) - M.radiation += 150 - else - M.radiation += 75 - return 1 diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm index 2d20ca80..300eecc8 100644 --- a/code/datums/diseases/advance/symptoms/skin.dm +++ b/code/datums/diseases/advance/symptoms/skin.dm @@ -63,8 +63,8 @@ BONUS name = "Revitiligo" desc = "The virus causes increased production of skin pigment cells, making the host's skin grow darker over time." - stealth = 1 - resistance = 2 + stealth = -1 + resistance = 3 stage_speed = 1 transmittable = 2 level = 5 @@ -86,46 +86,3 @@ BONUS H.update_body(0) else H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...") - -/* -////////////////////////////////////// -Polyvitiligo - - Not Noticeable. - Increases resistance slightly. - Increases stage speed. - Transmittable. - Low Level. - -BONUS - Makes the host change color - -////////////////////////////////////// -*/ - -/datum/symptom/polyvitiligo - name = "Polyvitiligo" - desc = "The virus replaces the melanin in the skin with reactive pigment." - stealth = 0 - resistance = 1 - stage_speed = 2 - transmittable = 2 - level = 0 - severity = 1 - base_message_chance = 50 - symptom_delay_min = 45 - symptom_delay_max = 90 - -/datum/symptom/polyvitiligo/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - switch(A.stage) - if(5) - var/static/list/banned_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/invisible, /datum/reagent/colorful_reagent/crayonpowder/white) - var/color = pick(subtypesof(/datum/reagent/colorful_reagent/crayonpowder) - banned_reagents) - if(M.reagents.total_volume <= (M.reagents.maximum_volume/10)) // no flooding humans with 1000 units of colorful reagent - M.reagents.add_reagent(color, 5) - else - if (prob(50)) // spam - M.visible_message("[M] looks rather vibrant...", "The colors, man, the colors...") diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 4c858172..8fe70c54 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -15,6 +15,7 @@ Bonus ////////////////////////////////////// */ + /datum/symptom/sneeze name = "Sneezing" desc = "The virus causes irritation of the nasal cavity, making the host sneeze occasionally." @@ -26,11 +27,14 @@ Bonus severity = 1 symptom_delay_min = 5 symptom_delay_max = 35 - threshold_desc = "Stealth 4: The symptom remains hidden until active." + threshold_desc = "Transmission 9: Increases sneezing range, spreading the virus over a larger area.
\ + Stealth 4: The symptom remains hidden until active." /datum/symptom/sneeze/Start(datum/disease/advance/A) if(!..()) return + if(A.properties["transmittable"] >= 9) //longer spread range + power = 2 if(A.properties["stealth"] >= 4) suppress_warning = TRUE @@ -44,3 +48,4 @@ Bonus M.emote("sniff") else M.emote("sneeze") + A.spread(4 + power) \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm index a8b18ae7..b609529a 100644 --- a/code/datums/diseases/advance/symptoms/species.dm +++ b/code/datums/diseases/advance/symptoms/species.dm @@ -8,14 +8,12 @@ level = 5 severity = 0 -/datum/symptom/undead_adaptation/OnAdd(datum/disease/advance/A) +/datum/symptom/undead_adaptation/Start(datum/disease/advance/A) + if(!..()) + return A.process_dead = TRUE A.infectable_biotypes |= MOB_UNDEAD -/datum/symptom/undead_adaptation/OnRemove(datum/disease/advance/A) - A.process_dead = FALSE - A.infectable_biotypes -= MOB_UNDEAD - /datum/symptom/inorganic_adaptation name = "Inorganic Biology" desc = "The virus can survive and replicate even in an inorganic environment, increasing its resistance and infection rate." @@ -26,8 +24,8 @@ level = 5 severity = 0 -/datum/symptom/inorganic_adaptation/OnAdd(datum/disease/advance/A) +/datum/symptom/inorganic_adaptation/Start(datum/disease/advance/A) + if(!..()) + return A.infectable_biotypes |= MOB_INORGANIC - -/datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A) - A.infectable_biotypes -= MOB_INORGANIC \ No newline at end of file + \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 33f5ca4d..04fbf334 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -10,7 +10,7 @@ var/stage_speed = 0 var/transmittable = 0 // The type level of the symptom. Higher is harder to generate. - var/level = -1 + var/level = 0 // The severity level of the symptom. Higher is more dangerous. var/severity = 0 // The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!! @@ -60,11 +60,6 @@ next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10) return TRUE -/datum/symptom/proc/on_stage_change(new_stage, datum/disease/advance/A) - if(neutered) - return FALSE - return TRUE - /datum/symptom/proc/Copy() var/datum/symptom/new_symp = new type new_symp.name = name @@ -72,14 +67,5 @@ new_symp.neutered = neutered return new_symp -/datum/symptom/proc/OnDeath(datum/disease/advance/A) - return !neutered - /datum/symptom/proc/generate_threshold_desc() return - -/datum/symptom/proc/OnAdd(datum/disease/advance/A) //Overload when a symptom needs to be active before processing, like changing biotypes. - return - -/datum/symptom/proc/OnRemove(datum/disease/advance/A) //But dont forget to remove them too. - return diff --git a/code/datums/diseases/advance/symptoms/viral.dm b/code/datums/diseases/advance/symptoms/viral.dm index 9fd9d5a0..55807aed 100644 --- a/code/datums/diseases/advance/symptoms/viral.dm +++ b/code/datums/diseases/advance/symptoms/viral.dm @@ -46,61 +46,3 @@ BONUS stage_speed = 5 transmittable = 3 level = 3 - -/* -////////////////////////////////////// - -Viral aggressive metabolism - - Somewhat increased stealth. - Abysmal resistance. - Increased stage speed. - Poor transmitability. - Medium Level. - -Bonus - The virus starts at stage 5, but after a certain time will start curing itself. - Stages still increase naturally with stage speed. - -////////////////////////////////////// -*/ - -/datum/symptom/viralreverse - - name = "Viral aggressive metabolism" - desc = "The virus sacrifices its long term survivability to nearly instantly fully spread inside a host. \ - The virus will start at the last stage, but will eventually decay and die off by itself." - stealth = 1 - resistance = -4 - stage_speed = 3 - transmittable = -3 - level = 3 - symptom_delay_min = 1 - symptom_delay_max = 1 - var/time_to_cure - threshold_desc = "Resistance/Stage Speed: Highest between these determines the amount of time before self-curing.
\ - Stealth 4 Doubles the time before the virus self-cures" - - -/datum/symptom/viralreverse/Activate(datum/disease/advance/A) - if(!..()) - return - if(time_to_cure > 0) - time_to_cure-- - else - var/mob/living/M = A.affected_mob - Heal(M, A) - -/datum/symptom/viralreverse/proc/Heal(mob/living/M, datum/disease/advance/A) - A.stage -= 1 - if(A.stage < 2) - to_chat(M, "You suddenly feel healthy.") - A.cure() - -/datum/symptom/viralreverse/Start(datum/disease/advance/A) - if(!..()) - return - A.stage = 5 - if(A.properties["stealth"] >= 4) //more time before it's cured - power = 2 - time_to_cure = max(A.properties["resistance"], A.properties["stage_rate"]) * 10 * power diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm index 940e1af7..b4a33cb8 100644 --- a/code/datums/diseases/advance/symptoms/vision.dm +++ b/code/datums/diseases/advance/symptoms/vision.dm @@ -20,9 +20,9 @@ Bonus name = "Hyphema" desc = "The virus causes inflammation of the retina, leading to eye damage and eventually blindness." stealth = -1 - resistance = -3 + resistance = -4 stage_speed = -4 - transmittable = -2 + transmittable = -3 level = 5 severity = 5 base_message_chance = 50 diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index 8c57fc82..f53638bc 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -24,9 +24,9 @@ Bonus name = "Vomiting" desc = "The virus causes nausea and irritates the stomach, causing occasional vomit." stealth = -2 - resistance = 1 + resistance = -1 stage_speed = 0 - transmittable = 2 + transmittable = 1 level = 3 severity = 3 base_message_chance = 100 @@ -60,4 +60,4 @@ Bonus vomit(M) /datum/symptom/vomit/proc/vomit(mob/living/carbon/M) - M.vomit(20, vomit_blood, stun = 0, distance = proj_vomit) + M.vomit(20, vomit_blood, distance = proj_vomit) diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm index a1129561..660538fc 100644 --- a/code/datums/diseases/advance/symptoms/weight.dm +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -23,7 +23,7 @@ Bonus stealth = -2 resistance = 2 stage_speed = -2 - transmittable = -1 + transmittable = -2 level = 3 severity = 3 base_message_chance = 100 @@ -34,7 +34,7 @@ Bonus /datum/symptom/weight_loss/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["stealth"] >= 2) //warn less often + if(A.properties["stealth"] >= 4) //warn less often base_message_chance = 25 /datum/symptom/weight_loss/Activate(datum/disease/advance/A) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 5466d9ff..ddd3864d 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -156,70 +156,6 @@ "" = 80 ) -/obj/effect/spawner/lootdrop/organ_spawner - name = "organ spawner" - loot = list( - /obj/item/organ/heart/gland/electric = 3, - /obj/item/organ/heart/gland/trauma = 4, - /obj/item/organ/heart/gland/egg = 7, - /obj/item/organ/heart/gland/chem = 5, - /obj/item/organ/heart/gland/mindshock = 5, - /obj/item/organ/heart/gland/plasma = 7, - /obj/item/organ/heart/gland/pop = 5, - /obj/item/organ/heart/gland/slime = 4, - /obj/item/organ/heart/gland/spiderman = 5, - /obj/item/organ/heart/gland/ventcrawling = 1, - /obj/item/organ/body_egg/alien_embryo = 1, - /obj/item/organ/regenerative_core = 2) - lootcount = 3 -/obj/effect/spawner/lootdrop/teratoma/minor - name = "teratoma spawner" - loot = list( - /obj/item/organ/tongue = 5, - /obj/item/organ/tongue/lizard = 1, - /obj/item/organ/tail/cat = 1, - /obj/item/organ/stomach = 5, - /obj/item/organ/tongue/zombie = 1, - /obj/item/organ/tongue/fly = 1, - /obj/item/organ/stomach/fly = 1, - /obj/item/organ/ears = 5, - /obj/item/organ/ears/cat = 1, - /obj/item/organ/eyes = 5, - /obj/item/organ/heart = 5, - /obj/item/organ/liver = 5, - /obj/item/organ/tail/lizard = 1, - /obj/item/organ/appendix = 5, - /obj/effect/gibspawner/human = 1) - -/obj/effect/spawner/lootdrop/teratoma/major - name = "advanced teratoma spawner" - loot = list( - /obj/item/organ/adamantine_resonator = 2, - /obj/item/organ/heart/gland/viral = 1, - /obj/item/organ/eyes/night_vision = 1, - /obj/item/organ/liver/plasmaman = 3, - /obj/item/organ/stomach/plasmaman = 3, - /obj/item/organ/lungs/plasmaman = 3, - /obj/item/organ/lungs/slime = 3, - /obj/item/organ/tongue/abductor = 1, - /obj/item/organ/tongue/bone = 3, - /obj/item/organ/tongue/bone/plasmaman = 1, - /obj/item/organ/vocal_cords/adamantine = 1, - /obj/effect/gibspawner/xeno = 1, - /obj/effect/mob_spawn/human/corpse/assistant = 1, - /obj/effect/mob_spawn/teratomamonkey = 5) - -/obj/effect/spawner/lootdrop/teratoma/major/clown - name = "funny teratoma spawner" - loot = list( - /mob/living/simple_animal/hostile/retaliate/frog = 1, - /mob/living/simple_animal/hostile/retaliate/clown = 1, - /mob/living/simple_animal/hostile/retaliate/spaceman = 1, - /obj/item/clothing/mask/gas/clown_hat = 4, - /obj/item/clothing/shoes/clown_shoes = 3, - /obj/item/bikehorn = 5, - /obj/item/reagent_containers/food/snacks/pie/cream = 3) - /obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner name = "2% chance xeno egg spawner" loot = list( diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm index ccab2be3..77e0e976 100644 --- a/code/modules/antagonists/disease/disease_abilities.dm +++ b/code/modules/antagonists/disease/disease_abilities.dm @@ -5,48 +5,26 @@ is currently following. */ GLOBAL_LIST_INIT(disease_ability_singletons, list( -new /datum/disease_ability/action/cough, -new /datum/disease_ability/action/sneeze, -new /datum/disease_ability/action/infect, -new /datum/disease_ability/symptom/mild/cough, -new /datum/disease_ability/symptom/mild/sneeze, -new /datum/disease_ability/symptom/medium/beard, -new /datum/disease_ability/symptom/medium/hallucigen, -new /datum/disease_ability/symptom/medium/confusion, -new /datum/disease_ability/symptom/medium/vomit, -new /datum/disease_ability/symptom/medium/voice_change, -new /datum/disease_ability/symptom/medium/visionloss, -new /datum/disease_ability/symptom/medium/deafness, -new /datum/disease_ability/symptom/powerful/narcolepsy, -new /datum/disease_ability/symptom/medium/fever, -new /datum/disease_ability/symptom/medium/shivering, -new /datum/disease_ability/symptom/medium/headache, -new /datum/disease_ability/symptom/medium/nano_boost, -new /datum/disease_ability/symptom/medium/nano_destroy, -new /datum/disease_ability/symptom/medium/viraladaptation, -new /datum/disease_ability/symptom/medium/viralevolution, -new /datum/disease_ability/symptom/medium/vitiligo, -new /datum/disease_ability/symptom/medium/revitiligo, -new /datum/disease_ability/symptom/medium/itching, -new /datum/disease_ability/symptom/medium/heal/weight_loss, -new /datum/disease_ability/symptom/medium/heal/sensory_restoration, -new /datum/disease_ability/symptom/medium/heal/mind_restoration, -new /datum/disease_ability/symptom/powerful/fire, -new /datum/disease_ability/symptom/powerful/flesh_eating, -new /datum/disease_ability/symptom/powerful/genetic_mutation, -new /datum/disease_ability/symptom/powerful/inorganic_adaptation, -new /datum/disease_ability/symptom/powerful/heal/oxygen, -new /datum/disease_ability/symptom/powerful/heal/chem, -new /datum/disease_ability/symptom/powerful/heal/coma, -new /datum/disease_ability/symptom/powerful/heal/teleport, -new /datum/disease_ability/symptom/powerful/heal/growth, -new /datum/disease_ability/symptom/powerful/heal/EMP, -new /datum/disease_ability/symptom/powerful/heal/sweat, -new /datum/disease_ability/symptom/powerful/wizarditis, -new /datum/disease_ability/symptom/medium/pierrot, -new /datum/disease_ability/symptom/medium/cockroach, -new /datum/disease_ability/symptom/powerful/youth -)) + new /datum/disease_ability/action/cough(), + new /datum/disease_ability/action/sneeze(), + new /datum/disease_ability/action/infect(), + new /datum/disease_ability/symptom/cough(), + new /datum/disease_ability/symptom/sneeze(),\ + new /datum/disease_ability/symptom/hallucigen(), + new /datum/disease_ability/symptom/choking(), + new /datum/disease_ability/symptom/confusion(), + new /datum/disease_ability/symptom/youth(), + new /datum/disease_ability/symptom/vomit(), + new /datum/disease_ability/symptom/voice_change(), + new /datum/disease_ability/symptom/visionloss(), + new /datum/disease_ability/symptom/viraladaptation(), + new /datum/disease_ability/symptom/vitiligo(), + new /datum/disease_ability/symptom/sensory_restoration(), + new /datum/disease_ability/symptom/itching(), + new /datum/disease_ability/symptom/weight_loss(), + new /datum/disease_ability/symptom/metabolism_heal(), + new /datum/disease_ability/symptom/coma_heal() + )) /datum/disease_ability var/name @@ -256,180 +234,144 @@ new /datum/disease_ability/symptom/powerful/youth O.AddComponent(/datum/component/infective, D.disease_template, 300) StartCooldown() return TRUE -/*******************BASE SYMPTOM TYPES*******************/ -// cost is for convenience and can be changed. If you're changing req_tot_points then don't use the subtype... -//healing no longer costs more, sans regen coma, due to how healing symptoms have been made scary -/datum/disease_ability/symptom/mild - cost = 2 - required_total_points = 4 - category = "Symptom (Weak)" +//passive symptom abilities -/datum/disease_ability/symptom/medium - cost = 4 - required_total_points = 8 - category = "Symptom" - -/datum/disease_ability/symptom/medium/heal - cost = 5 - category = "Symptom (+)" - -/datum/disease_ability/symptom/powerful - cost = 4 - required_total_points = 16 - category = "Symptom (Strong)" - -/datum/disease_ability/symptom/powerful/heal - cost = 8 - category = "Symptom (Strong+)" - -/******MILD******/ - -/datum/disease_ability/symptom/mild/cough +/datum/disease_ability/symptom/cough name = "Involuntary Coughing" symptoms = list(/datum/symptom/cough) + cost = 2 + required_total_points = 4 short_desc = "Cause victims to cough intermittently." long_desc = "Cause victims to cough intermittently, spreading your infection if your transmissibility is high." -/datum/disease_ability/symptom/mild/sneeze +/datum/disease_ability/symptom/sneeze name = "Involuntary Sneezing" symptoms = list(/datum/symptom/sneeze) + cost = 2 + required_total_points = 4 short_desc = "Cause victims to sneeze intermittently." long_desc = "Cause victims to sneeze intermittently, spreading your infection and also increasing transmissibility and resistance, at the cost of stealth." -/******MEDIUM******/ - -/datum/disease_ability/symptom/medium/beard +/datum/disease_ability/symptom/beard + //I don't think I need to justify the fact that this is the best symptom + name = "Beard Growth" symptoms = list(/datum/symptom/beard) + cost = 1 + required_total_points = 8 short_desc = "Cause all victims to grow a luscious beard." - long_desc = "Cause all victims to grow a luscious beard. Ineffective against Santa Claus." + long_desc = "Cause all victims to grow a luscious beard. Decreases stats slightly. Ineffective against Santa Claus." -/datum/disease_ability/symptom/medium/hallucigen +/datum/disease_ability/symptom/hallucigen + name = "Hallucinations" symptoms = list(/datum/symptom/hallucigen) + cost = 4 + required_total_points = 8 short_desc = "Cause victims to hallucinate." long_desc = "Cause victims to hallucinate. Decreases stats, especially resistance." -/datum/disease_ability/symptom/medium/confusion +/datum/disease_ability/symptom/choking + name = "Choking" + symptoms = list(/datum/symptom/choking) + cost = 4 + required_total_points = 8 + short_desc = "Cause victims to choke." + long_desc = "Cause victims to choke, threatening asphyxiation. Decreases stats, especially transmissibility." + + +/datum/disease_ability/symptom/confusion + name = "Confusion" symptoms = list(/datum/symptom/confusion) + cost = 4 + required_total_points = 8 short_desc = "Cause victims to become confused." long_desc = "Cause victims to become confused intermittently." -/datum/disease_ability/symptom/medium/vomit - symptoms = list(/datum/symptom/vomit) - short_desc = "Cause victims to vomit." - long_desc = "Cause victims to vomit. Slightly increases transmissibility. Vomiting also also causes the victims to lose nutrition and removes some toxin damage." - -/datum/disease_ability/symptom/medium/voice_change - symptoms = list(/datum/symptom/voice_change) - short_desc = "Change the voice of victims." - long_desc = "Change the voice of victims, causing confusion in communications." - -/datum/disease_ability/symptom/medium/visionloss - symptoms = list(/datum/symptom/visionloss) - short_desc = "Damage the eyes of victims, eventually causing blindness." - long_desc = "Damage the eyes of victims, eventually causing blindness. Decreases all stats." - -/datum/disease_ability/symptom/medium/deafness - symptoms = list(/datum/symptom/deafness) - -/datum/disease_ability/symptom/medium/fever - symptoms = list(/datum/symptom/fever) - -/datum/disease_ability/symptom/medium/shivering - symptoms = list(/datum/symptom/shivering) - -/datum/disease_ability/symptom/medium/headache - symptoms = list(/datum/symptom/headache) - -/datum/disease_ability/symptom/medium/nano_boost - symptoms = list(/datum/symptom/nano_boost) - -/datum/disease_ability/symptom/medium/nano_destroy - symptoms = list(/datum/symptom/nano_destroy) - -/datum/disease_ability/symptom/medium/viraladaptation - symptoms = list(/datum/symptom/viraladaptation) - short_desc = "Cause your infection to become more resistant to detection and eradication." - long_desc = "Cause your infection to mimic the function of normal body cells, becoming much harder to spot and to eradicate, but reducing its speed." - -/datum/disease_ability/symptom/medium/viralevolution - symptoms = list(/datum/symptom/viralevolution) - -/datum/disease_ability/symptom/medium/vitiligo - symptoms = list(/datum/symptom/vitiligo) - -/datum/disease_ability/symptom/medium/revitiligo - symptoms = list(/datum/symptom/revitiligo) - -/datum/disease_ability/symptom/medium/pierrot - symptoms = list(/datum/symptom/pierrot) - -/datum/disease_ability/symptom/medium/cockroach - symptoms = list(/datum/symptom/cockroach) - -/datum/disease_ability/symptom/medium/itching - symptoms = list(/datum/symptom/itching) - short_desc = "Cause victims to itch." - long_desc = "Cause victims to itch, increasing all stats except stealth." - -/datum/disease_ability/symptom/medium/heal/weight_loss - symptoms = list(/datum/symptom/weight_loss) - short_desc = "Cause victims to lose weight." - long_desc = "Cause victims to lose weight, and make it almost impossible for them to gain nutrition from food. Reduced nutrition allows your infection to spread more easily from hosts, especially by sneezing." - -/datum/disease_ability/symptom/medium/heal/sensory_restoration - symptoms = list(/datum/symptom/sensory_restoration) - short_desc = "Regenerate eye and ear damage of victims." - long_desc = "Regenerate eye and ear damage of victims." - -/datum/disease_ability/symptom/medium/heal/mind_restoration - symptoms = list(/datum/symptom/mind_restoration) - -/******POWERFUL******/ - -/datum/disease_ability/symptom/powerful/fire - symptoms = list(/datum/symptom/fire) - -/datum/disease_ability/symptom/powerful/flesh_eating - symptoms = list(/datum/symptom/flesh_eating) - -/datum/disease_ability/symptom/powerful/wizarditis //strong because it can remove hardsuits and bio protection - symptoms = list(/datum/symptom/wizarditis) - -/datum/disease_ability/symptom/powerful/genetic_mutation - symptoms = list(/datum/symptom/genetic_mutation) - -/datum/disease_ability/symptom/powerful/inorganic_adaptation - symptoms = list(/datum/symptom/inorganic_adaptation) - -/datum/disease_ability/symptom/powerful/narcolepsy - symptoms = list(/datum/symptom/narcolepsy) - -/datum/disease_ability/symptom/powerful/youth +/datum/disease_ability/symptom/youth + name = "Eternal Youth" symptoms = list(/datum/symptom/youth) + cost = 4 + required_total_points = 8 short_desc = "Cause victims to become eternally young." long_desc = "Cause victims to become eternally young. Provides boosts to all stats except transmissibility." -/****HEALING SUBTYPE****/ -/datum/disease_ability/symptom/powerful/heal/oxygen - symptoms = list(/datum/symptom/oxygen) - -/datum/disease_ability/symptom/powerful/heal/chem - symptoms = list(/datum/symptom/heal/chem) +/datum/disease_ability/symptom/vomit + name = "Vomiting" + symptoms = list(/datum/symptom/vomit) cost = 4 + required_total_points = 8 + short_desc = "Cause victims to vomit." + long_desc = "Cause victims to vomit. Slightly increases transmissibility. Vomiting also also causes the victims to lose nutrition and removes some toxin damage." -/datum/disease_ability/symptom/powerful/heal/coma +/datum/disease_ability/symptom/voice_change + name = "Voice Changing" + symptoms = list(/datum/symptom/voice_change) + cost = 4 + required_total_points = 8 + short_desc = "Change the voice of victims." + long_desc = "Change the voice of victims, causing confusion in communications." + +/datum/disease_ability/symptom/visionloss + name = "Vision Loss" + symptoms = list(/datum/symptom/visionloss) + cost = 4 + required_total_points = 8 + short_desc = "Damage the eyes of victims, eventually causing blindness." + long_desc = "Damage the eyes of victims, eventually causing blindness. Decreases all stats." + +/datum/disease_ability/symptom/viraladaptation + name = "Self-Adaptation" + symptoms = list(/datum/symptom/viraladaptation) + cost = 4 + required_total_points = 8 + short_desc = "Cause your infection to become more resistant to detection and eradication." + long_desc = "Cause your infection to mimic the function of normal body cells, becoming much harder to spot and to eradicate, but reducing its speed." + +/datum/disease_ability/symptom/vitiligo + name = "Skin Paleness" + symptoms = list(/datum/symptom/vitiligo) + cost = 1 + required_total_points = 8 + short_desc = "Cause victims to become pale." + long_desc = "Cause victims to become pale. Decreases all stats." + +/datum/disease_ability/symptom/sensory_restoration + name = "Sensory Restoration" + symptoms = list(/datum/symptom/sensory_restoration) + cost = 4 + required_total_points = 8 + short_desc = "Regenerate eye and ear damage of victims." + long_desc = "Regenerate eye and ear damage of victims." + +/datum/disease_ability/symptom/itching + name = "Itching" + symptoms = list(/datum/symptom/itching) + cost = 4 + required_total_points = 8 + short_desc = "Cause victims to itch." + long_desc = "Cause victims to itch, increasing all stats except stealth." + +/datum/disease_ability/symptom/weight_loss + name = "Weight Loss" + symptoms = list(/datum/symptom/weight_loss) + cost = 4 + required_total_points = 8 + short_desc = "Cause victims to lose weight." + long_desc = "Cause victims to lose weight, and make it almost impossible for them to gain nutrition from food. Reduced nutrition allows your infection to spread more easily from hosts, especially by sneezing." + +/datum/disease_ability/symptom/metabolism_heal + name = "Metabolic Boost" + symptoms = list(/datum/symptom/heal/metabolism) + cost = 4 + required_total_points = 16 + short_desc = "Increase the metabolism of victims, causing them to process chemicals and grow hungry faster." + long_desc = "Increase the metabolism of victims, causing them to process chemicals twice as fast and grow hungry more quickly." + +/datum/disease_ability/symptom/coma_heal + name = "Regenerative Coma" symptoms = list(/datum/symptom/heal/coma) - -/datum/disease_ability/symptom/powerful/heal/teleport - symptoms = list(/datum/symptom/teleport) - -/datum/disease_ability/symptom/powerful/heal/growth - symptoms = list(/datum/symptom/growth) - -/datum/disease_ability/symptom/powerful/heal/EMP - symptoms = list(/datum/symptom/EMP) - -/datum/disease_ability/symptom/powerful/heal/sweat - symptoms = list(/datum/symptom/sweat) + cost = 8 + required_total_points = 16 + short_desc = "Cause victims to fall into a healing coma when hurt." + long_desc = "Cause victims to fall into a healing coma when hurt." diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 039f6eba..5790f028 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -467,8 +467,7 @@ /obj/item/reagent_containers/glass/bottle/mutagen = 1, /obj/item/reagent_containers/glass/bottle/plasma = 1, /obj/item/reagent_containers/glass/bottle/synaptizine = 1, - /obj/item/reagent_containers/glass/bottle/formaldehyde = 1, - /obj/item/reagent_containers/glass/bottle/viralbase = 1) + /obj/item/reagent_containers/glass/bottle/formaldehyde = 1) // ---------------------------- // Disk """fridge""" diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index e9ec7eff..e26dab07 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -23,8 +23,6 @@ var/obj/item/clothing/CH = head if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL) return 1 - if(HAS_TRAIT(src, TRAIT_BEEFRIEND)) - return 1 return 0 diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index f8d05ec1..47a177f7 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -174,15 +174,3 @@ var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src) equip_to_slot_or_del(helmet,SLOT_HEAD) helmet.attack_self(src) // todo encapsulate toggle - -/mob/living/carbon/monkey/tumor - name = "living teratoma" - verb_say = "blabbers" - initial_language_holder = /datum/language_holder/monkey - icon = 'icons/mob/monkey.dmi' - icon_state = "" - butcher_results = list(/obj/effect/spawner/lootdrop/teratoma/minor = 5, /obj/effect/spawner/lootdrop/teratoma/major = 1) - type_of_meat = /obj/effect/spawner/lootdrop/teratoma/minor - aggressive = TRUE - bodyparts = list(/obj/item/bodypart/chest/monkey/teratoma, /obj/item/bodypart/head/monkey/teratoma, /obj/item/bodypart/l_arm/monkey/teratoma, - /obj/item/bodypart/r_arm/monkey/teratoma, /obj/item/bodypart/r_leg/monkey/teratoma, /obj/item/bodypart/l_leg/monkey/teratoma) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index f99a86c8..22d70920 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -56,10 +56,6 @@ var/turf/T = get_turf(src) for(var/obj/item/I in contents) I.on_mob_death(src, gibbed) - for(var/datum/disease/advance/D in diseases) - for(var/symptom in D.symptoms) - var/datum/symptom/S = symptom - S.OnDeath(D) if(mind && mind.name && mind.active && !istype(T.loc, /area/ctf)) var/rendered = "[mind.name] has died at [get_area_name(T)]." deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE) diff --git a/code/modules/mob/living/simple_animal/hostile/heart.dm b/code/modules/mob/living/simple_animal/hostile/heart.dm deleted file mode 100644 index 4e12b01b..00000000 --- a/code/modules/mob/living/simple_animal/hostile/heart.dm +++ /dev/null @@ -1,35 +0,0 @@ -/mob/living/simple_animal/hostile/heart - name = "Heart" - desc = "A living heart. It's angry!." - icon = 'icons/obj/surgery.dmi' - icon_state = "heart-on" - icon_living = "heart-on" - icon_dead = "heart-on" - gender = NEUTER - turns_per_move = 5 - speak_emote = list("beats") - emote_see = list("beats") - a_intent = INTENT_HARM - maxHealth = 24 - health = 24 - speed = -1 - harm_intent_damage = 5 - melee_damage_lower = 15 - melee_damage_upper = 15 - response_help = "touches" - response_disarm = "beats" - response_harm = "breaks" - density = FALSE - attacktext = "beats" - ventcrawler = VENTCRAWLER_ALWAYS - attack_sound = 'sound/effects/singlebeat.ogg' - stat_attack = UNCONSCIOUS - attack_same = 1 - gold_core_spawnable = HOSTILE_SPAWN - see_in_dark = 8 - deathmessage = "falls lifeless." - del_on_death = 1 - loot = list(/obj/item/organ/heart) - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 150 - maxbodytemp = 500 diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index e203bc94..52052c76 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -611,16 +611,13 @@ nutriment_factor = 15 * REAGENTS_METABOLISM metabolization_rate = 1 * REAGENTS_METABOLISM taste_description = "sweetness" - var/power = 0 /datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M) - if(power == 0) - M.reagents.add_reagent(/datum/reagent/consumable/sugar,3) if(prob(55)) - M.adjustBruteLoss(-1*REM+power, 0) - M.adjustFireLoss(-1*REM+power, 0) - M.adjustOxyLoss(-1*REM+power, 0) - M.adjustToxLoss(-1*REM+power, 0) + M.adjustBruteLoss(-1*REM, 0) + M.adjustFireLoss(-1*REM, 0) + M.adjustOxyLoss(-1*REM, 0) + M.adjustToxLoss(-1*REM, 0) ..() /datum/reagent/consumable/honey/reaction_mob(mob/living/M, method=TOUCH, reac_volume) @@ -631,12 +628,6 @@ S.success_multiplier = max(0.6, S.success_multiplier) // +60% success probability on each step, compared to bacchus' blessing's ~46% ..() -/datum/reagent/consumable/honey/special - name = "Royal Honey" - id = "royalhoney" - description = "A special honey which heals the imbiber far faster than normal honey" - power = 1 - /datum/reagent/consumable/mayonnaise name = "Mayonnaise" id = "mayonnaise" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index bb12514d..00925f16 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1582,25 +1582,6 @@ taste_description = "rainbows" var/no_mob_color = FALSE -/datum/reagent/consumable/laughter/laughtervirusfood - name = "anomolous virus food" - color = "#ffa6ff" //rgb: 255,166,255 - taste_description = "a bad idea" - id = "laughtervirusfood" - -/datum/reagent/consumable/virus_food/advvirusfood - name = "highly unstable virus food" - color = "#ffffff" //rgb: 255,255,255 ITS PURE WHITE CMON - taste_description = "an EXTREMELY bad idea" - id = "advvirusfood" - -/datum/reagent/consumable/virus_food/viralbase - name = "Experimental viral base" - description = "Recently discovered by Nanotrasen's top scientists after years of research, this substance can be used as the base for extremely rare and extremely dangerous viruses once exposed to uranium." - color = "#fff0da" - taste_description = "tears of scientists" - id = "viralbase" - /datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M) if(!no_mob_color) M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ff520378..d40b1a5b 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -230,19 +230,6 @@ if(D) D.Evolve(level_min, level_max) -/datum/chemical_reaction/virus_food_laughter - name = "Anomolous virus food" - id = "virusfood_laughter" - results = list("laughtervirusfood" = 1) - required_reagents = list("laughter" = 5, "virusfood" = 1) - -/datum/chemical_reaction/virus_food_admin - name = "Highly unstable virus Food" - id = "virusfood_admin" - results = list("advvirusfood" = 1) - required_reagents = list("viralbase" = 1, "uranium" = 20) - mix_message = "The mixture turns every colour of the rainbow, soon settling on a bright white. There's no way this isn't a good idea." - /datum/chemical_reaction/mix_virus/mix_virus_2 name = "Mix Virus 2" @@ -330,23 +317,6 @@ required_reagents = list("uraniumplasmavirusfood_stable" = 1) level_min = 8 level_max = 8 - -/datum/chemical_reaction/mix_virus/mix_virus_13 - - name = "Mix Virus 13" - id = "mixvirus13" - required_reagents = list("laughtervirusfood" = 1) - level_min = 0 - level_max = 0 - -/datum/chemical_reaction/mix_virus/mix_virus_14 - - name = "Mix Virus 14" - id = "mixvirus14" - required_reagents = list("advvirusfood" = 1) - level_min = 9 - level_max = 9 - /datum/chemical_reaction/mix_virus/rem_virus diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 472efb40..2f8db364 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -126,11 +126,6 @@ /obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype) update_icon() -/obj/item/reagent_containers/glass/bottle/viralbase - name = "Highly potent Viral Base Bottle" - desc = "A small bottle. Contains a trace amount of a substance found by scientists that can be used to create extremely advanced diseases once exposed to uranium." - list_reagents = list("viralbase" = 1) - /obj/item/reagent_containers/glass/beaker/update_icon() if(!cached_icon) cached_icon = icon_state diff --git a/tgstation.dme b/tgstation.dme index 60237353..1525a1bd 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -423,10 +423,7 @@ #include "code\datums\diseases\advance\advance.dm" #include "code\datums\diseases\advance\presets.dm" #include "code\datums\diseases\advance\symptoms\beard.dm" -#include "code\datums\diseases\advance\symptoms\beesymptom.dm" -#include "code\datums\diseases\advance\symptoms\braindamage.dm" #include "code\datums\diseases\advance\symptoms\choking.dm" -#include "code\datums\diseases\advance\symptoms\cockroach.dm" #include "code\datums\diseases\advance\symptoms\confusion.dm" #include "code\datums\diseases\advance\symptoms\cough.dm" #include "code\datums\diseases\advance\symptoms\deafness.dm" @@ -434,18 +431,13 @@ #include "code\datums\diseases\advance\symptoms\fever.dm" #include "code\datums\diseases\advance\symptoms\fire.dm" #include "code\datums\diseases\advance\symptoms\flesh_eating.dm" -#include "code\datums\diseases\advance\symptoms\genetics.dm" #include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\heal.dm" -#include "code\datums\diseases\advance\symptoms\heartattack.dm" #include "code\datums\diseases\advance\symptoms\itching.dm" -#include "code\datums\diseases\advance\symptoms\lubefeet.dm" #include "code\datums\diseases\advance\symptoms\nanites.dm" #include "code\datums\diseases\advance\symptoms\narcolepsy.dm" #include "code\datums\diseases\advance\symptoms\oxygen.dm" -#include "code\datums\diseases\advance\symptoms\pierrot.dm" -#include "code\datums\diseases\advance\symptoms\radiation.dm" #include "code\datums\diseases\advance\symptoms\sensory.dm" #include "code\datums\diseases\advance\symptoms\shedding.dm" #include "code\datums\diseases\advance\symptoms\shivering.dm" @@ -458,7 +450,6 @@ #include "code\datums\diseases\advance\symptoms\voice_change.dm" #include "code\datums\diseases\advance\symptoms\vomit.dm" #include "code\datums\diseases\advance\symptoms\weight.dm" -#include "code\datums\diseases\advance\symptoms\wizarditis.dm" #include "code\datums\diseases\advance\symptoms\youth.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" @@ -2190,7 +2181,6 @@ #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" #include "code\modules\mob\living\simple_animal\hostile\goose.dm" #include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" -#include "code\modules\mob\living\simple_animal\hostile\heart.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm"