From fa184f548704e0ca1bd593415936b08fcea4f883 Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Thu, 30 Oct 2014 06:21:14 +0000 Subject: [PATCH] Cuts /disease variables from 28 to 23 (includes new ones) a disease may now have more than one spread type added "infectivity" variable which replaces a prob(65), defaults to 65 affected_species is now viable_mobtypes, and lists typepaths, this is due to us actually having a species system now so it's confusing adds defines for a bunch of stuff --- code/_onclick/other_mobs.dm | 2 +- code/datums/disease.dm | 19 +- code/datums/diseases/_MobProcs.dm | 125 +++++++++++ code/datums/diseases/_disease.dm | 195 ++++++++++++++++++ code/datums/diseases/advance/advance.dm | 46 +++-- code/datums/diseases/appendicitis.dm | 13 +- code/datums/diseases/brainrot.dm | 16 +- code/datums/diseases/cold.dm | 12 +- code/datums/diseases/cold9.dm | 12 +- code/datums/diseases/dna_spread.dm | 14 +- code/datums/diseases/fake_gbs.dm | 12 +- code/datums/diseases/flu.dm | 25 +-- code/datums/diseases/fluspanish.dm | 10 +- code/datums/diseases/gbs.dm | 14 +- code/datums/diseases/magnitis.dm | 12 +- code/datums/diseases/pierrot_throat.dm | 10 +- code/datums/diseases/plasmatoid.dm | 6 - code/datums/diseases/retrovirus.dm | 57 ++--- code/datums/diseases/rhumba_beat.dm | 12 +- .../datums/diseases/robotic_transformation.dm | 64 ------ code/datums/diseases/transformation.dm | 57 +++-- code/datums/diseases/wizarditis.dm | 15 +- code/datums/diseases/xeno_transformation.dm | 60 ------ code/datums/mind.dm | 4 +- code/game/data_huds.dm | 4 +- code/game/gamemodes/monkey/monkey.dm | 4 +- code/game/machinery/bots/medbot.dm | 15 +- code/game/machinery/computer/medical.dm | 10 +- code/game/mecha/medical/odysseus.dm | 4 +- code/game/objects/effects/gibs.dm | 3 - code/game/objects/items/devices/scanners.dm | 4 +- code/modules/admin/admin_verbs.dm | 2 +- code/modules/events/ninja.dm | 2 +- .../kitchen machinery/processor.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 18 +- .../living/carbon/human/human_attackpaw.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 2 +- .../mob/living/silicon/pai/software.dm | 4 +- code/modules/mob/mob_cleanup.dm | 171 --------------- code/modules/reagents/Chemistry-Machinery.dm | 6 +- code/modules/reagents/Chemistry-Reagents.dm | 20 +- tgstation.dme | 4 +- 42 files changed, 532 insertions(+), 557 deletions(-) create mode 100644 code/datums/diseases/_MobProcs.dm create mode 100644 code/datums/diseases/_disease.dm delete mode 100644 code/datums/diseases/plasmatoid.dm delete mode 100644 code/datums/diseases/robotic_transformation.dm delete mode 100644 code/datums/diseases/xeno_transformation.dm diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 68355974ba4..06e2fed0368 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -81,7 +81,7 @@ "[name] bites [ML]!") if(armor >= 2) return for(var/datum/disease/D in viruses) - ML.contract_disease(D,1,0) + ML.ForceContractDisease(D) else ML.visible_message("[src] has attempted to bite [ML]!") diff --git a/code/datums/disease.dm b/code/datums/disease.dm index d7d98405710..9f76c113efd 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -1,13 +1,14 @@ -#define SPECIAL -1 -#define NON_CONTAGIOUS 0 -#define BLOOD 1 -#define CONTACT_FEET 2 -#define CONTACT_HANDS 3 -#define CONTACT_GENERAL 4 -#define AIRBORNE 5 +#define SPECIAL -1 +#define NON_CONTAGIOUS 0 +#define BLOOD 1 +#define CONTACT_FEET 2 +#define CONTACT_HANDS 3 +#define CONTACT_GENERAL 4 +#define AIRBORNE 5 -#define SCANNER 1 -#define PANDEMIC 2 +#define SCANNER 1 +#define PANDEMIC 2 +#define HIDDEN_ALL 3 /* diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm new file mode 100644 index 00000000000..e342a65d324 --- /dev/null +++ b/code/datums/diseases/_MobProcs.dm @@ -0,0 +1,125 @@ + +/mob/proc/HasDisease(var/datum/disease/D) + for(var/datum/disease/DD in viruses) + if(D.IsSame(D)) + return 1 + return 0 + + +/mob/proc/CanContractDisease(var/datum/disease/D) + if(stat == DEAD) + return 0 + + if(D.GetDiseaseID() in resistances) + return 0 + + if(HasDisease(D)) + return 0 + + if(!(type in D.viable_mobtypes)) + return 0 + + if(count_by_type(viruses, /datum/disease/advance) >= 3) + return 0 + + return 1 + + +/mob/proc/ContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) + + +/mob/proc/AddDisease(var/datum/disease/D) + var/datum/disease/DD = new D.type() + viruses += DD + DD.affected_mob = src + DD.holder = src + if(DD.disease_flags & CAN_CARRY && prob(5)) + DD.carrier++ + + +/mob/living/carbon/ContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + + var/obj/item/clothing/Cl = null + var/passed = 1 + + var/head_ch = 100 + var/body_ch = 100 + var/hands_ch = 25 + var/feet_ch = 25 + + if(D.spread_flags & CONTACT_HANDS) + head_ch = 0 + body_ch = 0 + hands_ch = 100 + feet_ch = 0 + if(D.spread_flags & CONTACT_FEET) + head_ch = 0 + body_ch = 0 + hands_ch = 0 + feet_ch = 100 + + if(prob(15/D.permeability_mod)) + return + + var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4) + + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + + switch(target_zone) + if(1) + if(isobj(H.head) && !istype(H.head, /obj/item/weapon/paper)) + Cl = H.head + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(H.wear_mask)) + Cl = H.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + if(2) + if(isobj(H.wear_suit)) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(slot_w_uniform)) + Cl = slot_w_uniform + passed = prob((Cl.permeability_coefficient*100) - 1) + if(3) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.gloves)) + Cl = H.gloves + passed = prob((Cl.permeability_coefficient*100) - 1) + if(4) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.shoes)) + Cl = H.shoes + passed = prob((Cl.permeability_coefficient*100) - 1) + + else if(istype(src, /mob/living/carbon/monkey)) + var/mob/living/carbon/monkey/M = src + switch(target_zone) + if(1) + if(M.wear_mask && isobj(M.wear_mask)) + Cl = M.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(!passed && (D.spread_flags & AIRBORNE) && !internals) + passed = (prob((50*D.permeability_mod) - 1)) + + if(passed) + AddDisease(D) + + +//Same as ContractDisease, except never overidden clothes checks +/mob/proc/ForceContractDisease(var/datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) \ No newline at end of file diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm new file mode 100644 index 00000000000..36b4e8811a7 --- /dev/null +++ b/code/datums/diseases/_disease.dm @@ -0,0 +1,195 @@ + +//Visibility Flags +#define HIDDEN_SCANNER 1 +#define HIDDEN_PANDEMIC 2 + +//Disease Flags +#define CURABLE 1 +#define CAN_CARRY 2 +#define CAN_RESIST 3 + +//Spread Flags +#define SPECIAL -1 +#define NON_CONTAGIOUS 0 +#define BLOOD 1 +#define CONTACT_FEET 2 +#define CONTACT_HANDS 3 +#define CONTACT_GENERAL 4 +#define AIRBORNE 5 + + +//Severity Defines +#define NONTHREAT "No threat" +#define MINOR "Minor" +#define MEDIUM "Medium" +#define HARMFUL "Harmful" +#define DANGEROUS "Dangerous!" +#define BIOHAZARD "BIOHAZARD THREAT!" + + +var/list/diseases = typesof(/datum/disease) - /datum/disease + + +/datum/disease + //Flags + var/visibility_flags = 0 + var/disease_flags = CURABLE|CAN_CARRY|CAN_RESIST + var/spread_flags = AIRBORNE + + //Fluff + var/form = "Virus" + var/name = "No disease" + var/desc = "" + var/agent = "some microbes" + var/spread_text = "" + var/cure_text = "" + + //Stages + var/stage = 1 + var/max_stages = 0 + var/stage_prob = 4 + + //Other + var/longevity = 150 //Time in ticks disease stays in objects, Syringes and such are infinite. + var/list/viable_mobtypes = list() //typepaths of viable mobs + var/mob/living/carbon/affected_mob = null + var/atom/movable/holder = null + var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids + var/infectivity = 65 + var/cure_chance = 0 + var/carrier = 0 //If our host is only a carrier + var/permeability_mod = 1 + var/severity = NONTHREAT + var/list/required_organs = list() + + var/list/strain_data = list() //dna_spread special bullshit + + + +/datum/disease/proc/stage_act() + var/cure = has_cure() + + if(carrier && !cure) + return + + stage = min(stage, max_stages) + + if(!cure) + if(prob(stage_prob)) + stage = min(stage++,max_stages) + else + if(prob(cure_chance)) + stage = max(stage--, 1) + + if(disease_flags & CURABLE) + if(cure && prob(cure_chance)) + cure() + + +/datum/disease/proc/has_cure() + if(!(disease_flags & CURABLE)) + return 0 + + . = 1 + + for(var/C_id in cures) + if(!affected_mob.reagents.has_reagent(C_id in cures)) + .-- + break //One missing cure is enough to fail + + +/datum/disease/proc/spread(var/atom/source) + if(spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) + return + + if(affected_mob) + if(affected_mob.reagents.has_reagent("spaceacillin")) + return + + var/spread_range = 1 + + if(spread_flags & AIRBORNE) + spread_range++ + + if(!source) + if(affected_mob) + source = affected_mob + else + return + + if(isturf(source.loc)) + for(var/mob/living/carbon/C in oview(spread_range, source)) + if(isturf(C.loc)) + if(AStar(source.loc, C.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, spread_range)) + C.ContractDisease(src) + + +/datum/disease/proc/process() + if(!holder) + active_diseases -= src + return + + if(prob(infectivity)) + spread(holder) + + if(affected_mob) + for(var/datum/disease/D in affected_mob.viruses) + if(D != src) + if(IsSame(D)) + del(D) + + if(holder == affected_mob) + if(affected_mob.stat != DEAD) + stage_act() + + if(!affected_mob) + if(prob(70)) + if(--longevity<=0) + cure() + + +/datum/disease/proc/cure() + if(affected_mob) + if(disease_flags & CAN_RESIST) + if(!(type in affected_mob.resistances)) + affected_mob.resistances += type + affected_mob.viruses -= src + del(src) + + +/datum/disease/New() + if(required_organs && required_organs.len) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/H = affected_mob + for(var/obj/item/organ/O in required_organs) + if(!locate(O) in H.organs) + if(!locate(O) in H.internal_organs) + cure() + return + + active_diseases += src + + +/datum/disease/proc/IsSame(var/datum/disease/D) + if(istype(src, D.type)) + return 1 + return 0 + + +/datum/disease/proc/Copy() + return new type() + + +/datum/disease/proc/GetDiseaseID() + return type + + +/datum/disease/Del() + active_diseases.Remove(src) + ..() + + +/datum/disease/proc/IsSpreadByTouch() + if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL) + return 1 + return 0 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index b356109b1b2..d3b859ba89b 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -30,8 +30,8 @@ var/list/advance_cures = list( form = "Advance Disease" // Will let med-scanners know that this disease was engineered. agent = "advance microbes" max_stages = 5 - spread = "Unknown" - affected_species = list("Human","Monkey") + spread_text = "Unknown" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) // NEW VARS @@ -198,8 +198,12 @@ var/list/advance_cures = list( /datum/disease/advance/proc/AssignProperties(var/list/properties = list()) if(properties && properties.len) + switch(properties["stealth"]) + if(2 to 3) + visibility_flags = HIDDEN_SCANNER + if(3 to INFINITY) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC - hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) ) // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. SetSpread(Clamp(properties["transmittable"] - symptoms.len, BLOOD, AIRBORNE)) permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) @@ -214,37 +218,35 @@ var/list/advance_cures = list( // Assign the spread type and give it the correct description. /datum/disease/advance/proc/SetSpread(var/spread_id) switch(spread_id) - if(NON_CONTAGIOUS) - spread = "None" + spread_text = "None" if(SPECIAL) - spread = "None" + spread_text = "None" if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) - spread = "On contact" + spread_text = "On contact" if(AIRBORNE) - spread = "Airborne" + spread_text = "Airborne" if(BLOOD) - spread = "Blood" + spread_text = "Blood" - spread_type = spread_id - //world << "Setting spread type to [spread_id]/[spread]" + spread_flags = spread_id /datum/disease/advance/proc/SetSeverity(var/level_sev) switch(level_sev) if(-INFINITY to 0) - severity = non_threat + severity = NONTHREAT if(1) - severity = "Minor" + severity = MINOR if(2) - severity = "Medium" + severity = MEDIUM if(3) - severity = "Harmful" + severity = HARMFUL if(4) - severity = "Dangerous!" + severity = DANGEROUS if(5 to INFINITY) - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD else severity = "Unknown" @@ -254,11 +256,11 @@ var/list/advance_cures = list( if(properties && properties.len) var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) //world << "Res = [res]" - cure_id = advance_cures[res] + cures = list(advance_cures[res]) // Get the cure name from the cure_id - var/datum/reagent/D = chemical_reagents_list[cure_id] - cure = D.name + var/datum/reagent/D = chemical_reagents_list[cures[1]] + cure_text = D.name return @@ -406,8 +408,8 @@ var/list/advance_cures = list( for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) if(H.z != 1) continue - if(!H.has_disease(D)) - H.contract_disease(D, 1) + if(!H.HasDisease(D)) + H.ForceContractDisease(D) break var/list/name_symptoms = list() diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index f3a2432ebe5..155dfbf105b 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -2,18 +2,17 @@ form = "Condition" name = "Appendicitis" max_stages = 3 - spread = "Acute" - cure = "Surgery" + cure_text = "Surgery" agent = "Shitty Appendix" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 - contagious_period = 9001 //slightly hacky, but hey! whatever works, right? desc = "If left untreated the subject will become very weak, and may vomit often." severity = "Dangerous!" longevity = 1000 - hidden = list(0, 1) - requires = 1 - required_limb = list(/obj/item/organ/limb/chest) + disease_flags = CAN_CARRY|CAN_RESIST + visibility_flags = HIDDEN_PANDEMIC + required_organs = list(/obj/item/organ/limb/chest) + /datum/disease/appendicitis/stage_act() ..() diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index f457c533011..00bb90d36c8 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -1,18 +1,16 @@ /datum/disease/brainrot name = "Brainrot" max_stages = 4 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Alkysine" - cure_id = list("alkysine") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cures = list("alkysine") agent = "Cryptococcus Cosmosis" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST cure_chance = 15//higher chance to cure, since two reagents are required desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication." - severity = "Dangerous!" - requires = 1 - required_limb = list(/obj/item/organ/limb/head) + required_organs = list(/obj/item/organ/limb/head) + severity = DANGEROUS /datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR ..() diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index a62c4825422..5207fd009d1 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -1,14 +1,14 @@ /datum/disease/cold name = "The Cold" max_stages = 3 - spread = "Airborne" - cure = "Rest & Spaceacillin" - cure_id = "spaceacillin" + spread_flags = AIRBORNE + cure_text = "Rest & Spaceacillin" + cures = list("spaceacillin") agent = "XY-rhinovirus" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) permeability_mod = 0.5 desc = "If left untreated the subject will contract the flu." - severity = "Minor" + severity = MINOR /datum/disease/cold/stage_act() ..() @@ -62,5 +62,5 @@ if(prob(1) && prob(50)) if(!affected_mob.resistances.Find(/datum/disease/flu)) var/datum/disease/Flu = new /datum/disease/flu(0) - affected_mob.contract_disease(Flu,1) + affected_mob.ContractDisease(Flu) cure() \ No newline at end of file diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm index 0e7847588fa..68c11d65850 100644 --- a/code/datums/diseases/cold9.dm +++ b/code/datums/diseases/cold9.dm @@ -1,14 +1,14 @@ /datum/disease/cold9 name = "The Cold" max_stages = 3 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Common Cold Anti-bodies & Spaceacillin" - cure_id = "spaceacillin" + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Common Cold Anti-bodies & Spaceacillin" + cures = list("spaceacillin") agent = "ICE9-rhinovirus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) desc = "If left untreated the subject will slow, as if partly frozen." - severity = "Medium" + severity = MEDIUM /datum/disease/cold9/stage_act() ..() diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index df96b3ca231..6df8582e325 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -1,17 +1,17 @@ /datum/disease/dnaspread name = "Space Retrovirus" max_stages = 4 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Ryetalyn" - cure_id = "ryetalyn" - curable = 0 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Ryetalyn" + cures = list("ryetalyn") + disease_flags = CAN_CARRY|CAN_RESIST agent = "S4E1 retrovirus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) var/list/original_dna = list() var/transformed = 0 desc = "This disease transplants the genetic code of the intial vector into new hosts." - severity = "Medium" + severity = MEDIUM /datum/disease/dnaspread/stage_act() diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm index 9700cd120a5..e4352483036 100644 --- a/code/datums/diseases/fake_gbs.dm +++ b/code/datums/diseases/fake_gbs.dm @@ -1,14 +1,14 @@ /datum/disease/fake_gbs name = "GBS" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Synaptizine & Sulfur" - cure_id = list("synaptizine","sulfur") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") agent = "Gravitokinetic Bipotential SADS-" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) desc = "If left untreated death will occur." - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/fake_gbs/stage_act() ..() diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 74dcdafaa93..0a5bead61ea 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -1,27 +1,20 @@ /datum/disease/flu name = "The Flu" max_stages = 3 - spread = "Airborne" - cure = "Spaceacillin" - cure_id = "spaceacillin" + spread_text = "Airborne" + cures = list("spaceacillin") cure_chance = 10 agent = "H13N1 flu virion" - affected_species = list("Human", "Monkey") + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) permeability_mod = 0.75 desc = "If left untreated the subject will feel quite unwell." - severity = "Medium" + severity = MEDIUM /datum/disease/flu/stage_act() ..() switch(stage) if(2) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed --Blaank - affected_mob << "\blue You feel better." - stage-- - return -*/ - if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." stage-- return @@ -40,13 +33,7 @@ affected_mob.updatehealth() if(3) -/* - if(affected_mob.sleeping && prob(15)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - stage-- - return -*/ - if(affected_mob.lying && prob(15)) //added until sleeping is fixed + if(affected_mob.lying && prob(15)) affected_mob << "You feel better." stage-- return diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm index 6d8a9c9a290..caa098584f1 100644 --- a/code/datums/diseases/fluspanish.dm +++ b/code/datums/diseases/fluspanish.dm @@ -1,15 +1,15 @@ /datum/disease/fluspanish name = "Spanish inquisition Flu" max_stages = 3 - spread = "Airborne" - cure = "Spaceacillin & Anti-bodies to the common flu" - cure_id = "spaceacillin" + spread_text = "Airborne" + cure_text = "Spaceacillin & Anti-bodies to the common flu" + cures = list("spaceacillin") cure_chance = 10 agent = "1nqu1s1t10n flu virion" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 0.75 desc = "If left untreated the subject will burn to death for being a heretic." - severity = "Dangerous!" + severity = DANGEROUS /datum/disease/inquisition/stage_act() ..() diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm index 9579d8f2036..925b9a4a9b8 100644 --- a/code/datums/diseases/gbs.dm +++ b/code/datums/diseases/gbs.dm @@ -1,16 +1,16 @@ /datum/disease/gbs name = "GBS" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Synaptizine & Sulfur" - cure_id = list("synaptizine","sulfur") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") cure_chance = 15//higher chance to cure, since two reagents are required agent = "Gravitokinetic Bipotential SADS+" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 1 - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/gbs/stage_act() ..() diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index b6f6aa91f1b..cd600e214cd 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -1,15 +1,15 @@ /datum/disease/magnitis name = "Magnitis" max_stages = 4 - spread = "Airborne" - cure = "Iron" - cure_id = "iron" + spread_text = "Airborne" + cure_text = "Iron" + cures = list("iron") agent = "Fukkos Miracos" - affected_species = list("Human") - curable = 0 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 0.75 desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." - severity = "Medium" + severity = MEDIUM /datum/disease/magnitis/stage_act() ..() diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index 6f7f16301b8..34f0e14be85 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -1,15 +1,15 @@ /datum/disease/pierrot_throat name = "Pierrot's Throat" max_stages = 4 - spread = "Airborne" - cure = "Banana products, especially banana bread." - cure_id = "banana" + spread_text = "Airborne" + cure_text = "Banana products, especially banana bread." + cures = list("banana") cure_chance = 75 agent = "H0NI<42 Virus" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 0.75 desc = "If left untreated the subject will probably drive others to insanity." - severity = "Medium" + severity = MEDIUM longevity = 400 /datum/disease/pierrot_throat/stage_act() diff --git a/code/datums/diseases/plasmatoid.dm b/code/datums/diseases/plasmatoid.dm deleted file mode 100644 index 499edcb5fa1..00000000000 --- a/code/datums/diseases/plasmatoid.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/disease/plasmatoid - name = "Plasmatoid" - max_stages = 4 - cure = "None" - affected_species = list("Monkey", "Human") - severity = "Unknown" \ No newline at end of file diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index 40b56b05bf6..bc22d9641bf 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -1,29 +1,28 @@ /datum/disease/dna_retrovirus name = "Retrovirus" max_stages = 4 - spread = "Contact" - spread_type = CONTACT_GENERAL - cure = "Rest or an injection of ryetalyn" + spread_text = "Contact" + spread_flags = CONTACT_GENERAL + cure_text = "Rest or an injection of ryetalyn" cure_chance = 6 agent = "" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) desc = "A DNA-altering retrovirus that scrambles the structural and unique enzymes of a host constantly." - severity = "Dangerous!" + severity = DANGEROUS permeability_mod = 0.4 stage_prob = 2 var/SE var/UI var/restcure = 0 - New() - ..() - agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" - if(prob(40)) - cure_id = list("ryetalyn") - cure_list = list("ryetalyn") - else - restcure = 1 +/datum/disease/dna_retrovirus/New() + ..() + agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" + if(prob(40)) + cures = list("ryetalyn") + else + restcure = 1 /datum/disease/dna_retrovirus/stage_act() @@ -31,13 +30,7 @@ switch(stage) if(1) if(restcure) -/* - if(affected_mob.sleeping && prob(30)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(30)) //changed FROM prob(20) until sleeping is fixed + if(affected_mob.lying && prob(30)) affected_mob << "You feel better." cure() return @@ -49,13 +42,7 @@ affected_mob << "You feel angry." if(2) if(restcure) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." cure() return @@ -70,13 +57,7 @@ affected_mob << "Your stomach churns." if(3) if(restcure) -/* - if(affected_mob.sleeping && prob(20)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(20)) //changed FROM prob(10) until sleeping is fixed + if(affected_mob.lying && prob(20)) affected_mob << "You feel better." cure() return @@ -89,13 +70,7 @@ if(4) if(restcure) -/* - if(affected_mob.sleeping && prob(10)) //removed until sleeping is fixed - affected_mob << "\blue You feel better." - cure() - return -*/ - if(affected_mob.lying && prob(5)) //changed FROM prob(5) until sleeping is fixed + if(affected_mob.lying && prob(5)) affected_mob << "You feel better." cure() return diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 09225bf25b1..f0a5e2fd035 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -1,14 +1,14 @@ /datum/disease/rhumba_beat name = "The Rhumba Beat" max_stages = 5 - spread = "On contact" - spread_type = CONTACT_GENERAL - cure = "Chick Chicky Boom!" - cure_id = list("plasma") + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Chick Chicky Boom!" + cures = list("plasma") agent = "Unknown" - affected_species = list("Human") + viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 - severity = "BIOHAZARD THREAT!" + severity = BIOHAZARD /datum/disease/rhumba_beat/stage_act() ..() diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm deleted file mode 100644 index ac63febb375..00000000000 --- a/code/datums/diseases/robotic_transformation.dm +++ /dev/null @@ -1,64 +0,0 @@ -//Nanomachines! - -/datum/disease/robotic_transformation - name = "Robotic Transformation" - max_stages = 5 - spread = "Syringe" - spread_type = SPECIAL - cure = "An injection of copper." - cure_id = list("copper") - cure_chance = 5 - agent = "R2D2 Nanomachines" - affected_species = list("Human") - desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." - severity = "Major" - var/gibbed = 0 - -/datum/disease/robotic_transformation/stage_act() - ..() - switch(stage) - if(2) - if (prob(8)) - affected_mob << "Your joints feel stiff." - affected_mob.take_organ_damage(1) - if (prob(9)) - affected_mob << "Beep...boop.." - if (prob(9)) - affected_mob << "Bop...beeep..." - if(3) - if (prob(8)) - affected_mob << "Your joints feel very stiff." - affected_mob.take_organ_damage(1) - if (prob(8)) - affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) - if (prob(10)) - affected_mob << "Your skin feels loose." - affected_mob.take_organ_damage(5) - if (prob(4)) - affected_mob << "You feel a stabbing pain in your head." - affected_mob.Paralyse(2) - if (prob(4)) - affected_mob << "You can feel something move...inside." - if(4) - if (prob(10)) - affected_mob << "Your skin feels very loose." - affected_mob.take_organ_damage(8) - if (prob(20)) - affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...")) - if (prob(8)) - affected_mob << "You can feel... something...inside you." - if(5) - affected_mob <<"Your skin feels as if it's about to burst off..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(40)) //So everyone can feel like robot Seth Brundle - if(src.gibbed != 0) return 0 - var/turf/T = find_loc(affected_mob) - gibs(T) - gibbed = 1 - var/mob/living/carbon/human/H = affected_mob - if(istype(H) && !jobban_isbanned(affected_mob, "Cyborg")) - H.Robotize() - else - affected_mob.death(1) - diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 71dbe67181e..6c8a80c85d7 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -1,15 +1,14 @@ /datum/disease/transformation - name = "Transformation" max_stages = 5 - spread = "Acute" - spread_type = SPECIAL - cure = "A coder's love (theoretical)." + spread_text = "Acute" + spread_flags = SPECIAL + cure_text = "A coder's love (theoretical)." agent = "Shenanigans" - affected_species = list("Human", "Monkey", "Alien") - severity = "Harmful" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey, /mob/living/carbon/alien) + severity = HARMFUL stage_prob = 10 - hidden = list(1, 1) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC var/list/stage1 = list("You feel unremarkable.") var/list/stage2 = list("You feel boring.") var/list/stage3 = list("You feel utterly plain.") @@ -68,19 +67,19 @@ /datum/disease/transformation/jungle_fever name = "Jungle Fever" - cure = "Bananas" - cure_id = "banana" - spread = "Monkey Bites" - spread_type = SPECIAL - affected_species = list("Monkey", "Human") + cure_text = "Bananas" + cures = list("banana") + spread_text = "Monkey Bites" + spread_flags = SPECIAL + viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human) permeability_mod = 1 cure_chance = 1 - curable = 0 + disease_flags = CAN_CARRY|CAN_RESIST longevity = 30 desc = "Monkeys with this disease will bite humans, causing humans to mutate into a monkey." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0)//Not hidden, with the exception of the starting ape. + severity = BIOHAZARD stage_prob = 4 + visibility_flags = 0 agent = "Kongey Vibrion M-909" new_form = /mob/living/carbon/monkey @@ -118,13 +117,13 @@ /datum/disease/transformation/robot name = "Robotic Transformation" - cure = "An injection of copper." - cure_id = list("copper") + cure_text = "An injection of copper." + cures = list("copper") cure_chance = 5 agent = "R2D2 Nanomachines" desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." - severity = "Dangerous!" - hidden = list(0, 0) + severity = DANGEROUS + visibility_flags = 0 stage1 = null stage2 = list("Your joints feel stiff.", "Beep...boop..") stage3 = list("Your joints feel very stiff.", "Your skin feels loose.", "You can feel something move...inside.") @@ -150,13 +149,13 @@ /datum/disease/transformation/xeno name = "Xenomorph Transformation" - cure = "Spaceacillin & Glycerol" - cure_id = list("spaceacillin", "glycerol") + cure_text = "Spaceacillin & Glycerol" + cures = list("spaceacillin", "glycerol") cure_chance = 5 agent = "Rip-LEY Alien Microbes" desc = "This disease changes the victim into a xenomorph." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0) + severity = BIOHAZARD + visibility_flags = 0 stage1 = null stage2 = list("Your throat feels scratchy.", "Kill...") stage3 = list("Your throat feels very scratchy.", "Your skin feels tight.", "You can feel something move...inside.") @@ -178,13 +177,13 @@ /datum/disease/transformation/slime name = "Advanced Mutation Transformation" - cure = "frost oil" - cure_id = list("frostoil") + cure_text = "frost oil" + cures = list("frostoil") cure_chance = 80 agent = "Advanced Mutation Toxin" desc = "This highly concentrated extract converts anything into more of itself." - severity = "BIOHAZARD THREAT!" - hidden = list(0, 0) + severity = BIOHAZARD + visibility_flags = 0 stage1 = list("You don't feel very well.") stage2 = list("You are turning a little green.") stage3 = list("Your limbs are getting oozy.", "Your skin begins to peel away.") @@ -207,10 +206,10 @@ /datum/disease/transformation/corgi name = "The Barkening" - cure = "Death" + cure_text = "Death" agent = "Fell Doge Majicks" desc = "This disease transforms the victim into a corgi." - hidden = list(0, 0) + visibility_flags = 0 stage1 = list("BARK.") stage2 = list("You feel the need to wear silly hats.") stage3 = list("Must... eat... chocolate....", "YAP") diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index c8cf37d77aa..86ff3f4e7f7 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -1,18 +1,17 @@ /datum/disease/wizarditis name = "Wizarditis" max_stages = 4 - spread = "Airborne" - cure = "The Manly Dorf" - cure_id = "manlydorf" + spread_text = "Airborne" + cure_text = "The Manly Dorf" + cures = list("manlydorf") cure_chance = 100 agent = "Rincewindus Vulgaris" - affected_species = list("Human") - curable = 1 + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST permeability_mod = 0.75 desc = "Some speculate, that this virus is the cause of Wizard Federation existance. Subjects affected show the signs of mental retardation, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition." - severity = "Harmful" - requires = 1 - required_limb = list(/obj/item/organ/limb/head) + severity = HARMFUL + required_organs = list(/obj/item/organ/limb/head) /* BIRUZ BENNAR diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm deleted file mode 100644 index e8d6fad3777..00000000000 --- a/code/datums/diseases/xeno_transformation.dm +++ /dev/null @@ -1,60 +0,0 @@ -//Xenomicrobes - -/datum/disease/xeno_transformation - name = "Xenomorph Transformation" - max_stages = 5 - spread = "Syringe" - spread_type = SPECIAL - cure = "Spaceacillin & Glycerol" - cure_id = list("spaceacillin", "glycerol") - cure_chance = 5 - agent = "Rip-LEY Alien Microbes" - affected_species = list("Human") - var/gibbed = 0 - -/datum/disease/xeno_transformation/stage_act() - ..() - switch(stage) - if(2) - if (prob(8)) - affected_mob << "Your throat feels scratchy." - affected_mob.take_organ_damage(1) - if (prob(9)) - affected_mob << "Kill..." - if (prob(9)) - affected_mob << "Kill..." - if(3) - if (prob(8)) - affected_mob << "Your throat feels very scratchy." - affected_mob.take_organ_damage(1) - /* - if (prob(8)) - affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) - */ - if (prob(10)) - affected_mob << "Your skin feels tight." - affected_mob.take_organ_damage(5) - if (prob(4)) - affected_mob << "You feel a stabbing pain in your head." - affected_mob.Paralyse(2) - if (prob(4)) - affected_mob << "You can feel something move...inside." - if(4) - if (prob(10)) - affected_mob << pick("Your skin feels very tight.", "Your blood boils!") - affected_mob.take_organ_damage(8) - if (prob(20)) - affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!")) - if (prob(8)) - affected_mob << "You can feel... something...inside you." - if(5) - affected_mob <<"Your skin feels impossibly calloused..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(40)) - if(gibbed != 0) return 0 - var/turf/T = find_loc(affected_mob) - gibs(T) - gibbed = 1 - affected_mob:Alienize() - diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 581bb6bfe7f..73c65ec388f 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1003,9 +1003,9 @@ src = null M = H.monkeyize() src = M.mind - current.contract_disease(new /datum/disease/transformation/jungle_fever,1,0) + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) else if (istype(M)) - current.contract_disease(new /datum/disease/transformation/jungle_fever,1,0) + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) if("human") if (check_rights(R_ADMIN, 0)) var/mob/living/carbon/human/H = current diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 8cea24b69b5..603170f6dd0 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -99,8 +99,8 @@ proc/med_hud_suit_sensors(var/mob/living/carbon/human/patient) proc/med_hud_find_virus(var/mob/living/carbon/human/patient) for(var/datum/disease/D in patient.viruses) - if(!D.hidden[SCANNER]) - if(D.severity != D.non_threat) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if(D.severity != NONTHREAT) return 1 proc/med_hud_get_health(var/mob/living/carbon/human/patient) diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 266a7c35e06..29f3a209052 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -63,7 +63,7 @@ ape_infectees += carriermind var/datum/disease/D = new /datum/disease/transformation/jungle_fever - D.hidden = list(1,1) + D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC D.holder = carriermind.current D.affected_mob = carriermind.current carriermind.current.viruses += D @@ -71,7 +71,7 @@ /datum/game_mode/monkey/proc/check_monkey_victory() for(var/mob/living/carbon/monkey/M in living_mob_list) - if (M.has_disease(/datum/disease/transformation/jungle_fever)) + if (M.HasDisease(/datum/disease/transformation/jungle_fever)) var/area/A = get_area(M) if(is_type_in_list(A, centcom_areas)) escaped_monkeys++ diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 6642dcbbe41..a6cc7c66885 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -364,12 +364,12 @@ for(var/datum/disease/D in C.viruses) - if((D.hidden[SCANNER]) || (D.hidden[PANDEMIC])) //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. + //the medibot can't detect viruses that are undetectable to Health Analyzers or Pandemic machines. + if(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC) return 0 - if(D.severity == D.non_threat) // medibot doesn't try to heal truly harmless viruses + if(D.severity == NONTHREAT) // medibot doesn't try to heal truly harmless viruses return 0 - if((D.stage > 1) || (D.spread_type == AIRBORNE)) // medibot can't detect a virus in its initial stage unless it spreads airborne. - + if((D.stage > 1) || (D.spread_flags & AIRBORNE)) // medibot can't detect a virus in its initial stage unless it spreads airborne. if (!C.reagents.has_reagent(src.treatment_virus)) return 1 //STOP DISEASE FOREVER @@ -403,9 +403,10 @@ else var/virus = 0 for(var/datum/disease/D in C.viruses) - if((!D.hidden[SCANNER]) && (!D.hidden[PANDEMIC])) //detectable virus - if(D.severity != D.non_threat) //virus is harmful - if((D.stage > 1) || (D.spread_type == AIRBORNE)) + //detectable virus + if((!(D.visibility_flags & HIDDEN_SCANNER)) || (!(D.visibility_flags & HIDDEN_PANDEMIC))) + if(D.severity != NONTHREAT) //virus is harmful + if((D.stage > 1) || (D.spread_flags & AIRBORNE)) virus = 1 if (!reagent_id && (virus)) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index ab3182f0219..95122b1eff3 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -252,13 +252,13 @@ var/type = href_list["vir"] var/datum/disease/Dis = new type(0) var/AfS = "" - for(var/Str in Dis.affected_species) - AfS += " [Str];" + for(var/mob/M in Dis.viable_mobtypes) + AfS += " [initial(M.name)];" src.temp = {"Name: [Dis.name]
Number of stages: [Dis.max_stages] -
Spread: [Dis.spread] Transmission -
Possible Cure: [(Dis.cure||"none")] -
Affected Species:[AfS] +
Spread: [Dis.spread_text] Transmission +
Possible Cure: [(Dis.cure_text||"none")] +
Affected Lifeforms:[AfS]

Notes: [Dis.desc]
diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index acb94ea5e6d..795ff390d64 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -84,8 +84,8 @@ continue var/foundVirus = 0 for(var/datum/disease/D in patient.viruses) - if(!D.hidden[SCANNER]) - if(D.severity != D.non_threat) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if(D.severity != NONTHREAT) foundVirus++ //if(patient.virus2) // foundVirus++ diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm index 47977d2a77f..6ee8c478ebf 100644 --- a/code/game/objects/effects/gibs.dm +++ b/code/game/objects/effects/gibs.dm @@ -28,9 +28,6 @@ return var/obj/effect/decal/cleanable/blood/gibs/gib = null - for(var/datum/disease/D in viruses) - if(D.spread_type == SPECIAL) - del(D) if(sparks) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index cd44cf0ae72..513142a2e96 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -148,8 +148,8 @@ MASS SPECTROMETER user.show_message("Subject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.", 1) for(var/datum/disease/D in M.viruses) - if(!D.hidden[SCANNER]) - user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]", 1) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]", 1) if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.", 1) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index fa48db048c4..9c9113ec8d6 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -447,7 +447,7 @@ var/list/admin_verbs_hideable = list( set desc = "Gives a Disease to a mob." var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases if(!D) return - T.contract_disease(new D, 1) + T.ForceContractDisease(new D,) feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].") diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 09356add7d4..4b8eba034a2 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -1636,7 +1636,7 @@ ________________________________________________________________________________ dat += "Body Temperature: [U.bodytemperature-T0C]°C ([U.bodytemperature*1.8-459.67]°F)
" for(var/datum/disease/D in U.viruses) - dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure].
" + dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread_text]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure_text].
" dat += "