diff --git a/code/WorkInProgress/Chemistry-Machinery.dm b/code/WorkInProgress/Chemistry-Machinery.dm
index 6bc41363662..c846e8109f9 100644
--- a/code/WorkInProgress/Chemistry-Machinery.dm
+++ b/code/WorkInProgress/Chemistry-Machinery.dm
@@ -422,10 +422,12 @@
var/list/vir = Blood.data["viruses"]
if(vir.len)
for(var/datum/disease/D in Blood.data["viruses"])
+ if(!D.hidden[PANDEMIC])
- dat += "Disease Agent: [D?"[D.agent] - Create virus culture bottle":"none"]
"
- dat += "Common name: [(D.name||"none")]
"
- dat += "Possible cure: [(D.cure||"none")]
"
+ dat += "Disease Agent: [D?"[D.agent] - Create virus culture bottle":"none"]
"
+ dat += "Common name: [(D.name||"none")]
"
+ dat += "Description: [(D.desc||"none")]
"
+ dat += "Possible cure: [(D.cure||"none")]
"
dat += "Contains antibodies to: "
if(Blood.data["resistances"])
diff --git a/code/datums/disease.dm b/code/datums/disease.dm
index 14ff1abfdcb..3ba5a107d16 100644
--- a/code/datums/disease.dm
+++ b/code/datums/disease.dm
@@ -6,6 +6,9 @@
#define AIRBORNE 4
#define BLOOD 5
+#define SCANNER 1
+#define PANDEMIC 2
+
/*
IMPORTANT NOTE: Please delete the diseases by using cure() proc or del() instruction.
@@ -38,6 +41,10 @@ to null does not delete the object itself. Thank you.
var/desc = null//description. Leave it null and this disease won't show in med records.
var/severity = null//severity descr
var/longevity = 250//time in "ticks" the virus stays in inanimate object (blood stains, corpses, etc). In syringes, bottles and beakers it stays infinitely.
+ var/list/hidden = list(0, 0)
+ // if hidden[1] is true, then virus is hidden from medical scanners
+ // if hidden[2] is true, then virus is hidden from PANDEMIC machine
+
/datum/disease/proc/stage_act()
var/cure_present = has_cure()
@@ -274,7 +281,7 @@ to null does not delete the object itself. Thank you.
/datum/disease/proc/spread(var/atom/source=null)
//world << "Disease [src] proc spread was called from holder [source]"
- if(spread_type == SPECIAL)//does not spread
+ if(spread_type == SPECIAL || spread_type == NON_CONTAGIOUS)//does not spread
return
if(stage < contagious_period) //the disease is not contagious at this stage
@@ -318,15 +325,6 @@ to null does not delete the object itself. Thank you.
affected_mob = null
if(!affected_mob) //the virus is in inanimate obj
// world << "[src] longevity = [longevity]"
- /*
- if(holder)
-
- // spreads the love. Why hasn't anyone coded this in yet?!?!?!?
- for(var/mob/living/M in view(1, holder))
- if(M.stat != 2)
- if(prob(90))
- M.contract_disease(src)
- */
if(prob(70))
if(--longevity<=0)
diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm
index b07d46829a1..8363ab85a6a 100644
--- a/code/game/objects/devices/PDA/PDA.dm
+++ b/code/game/objects/devices/PDA/PDA.dm
@@ -691,7 +691,8 @@
user.show_message("\blue \t Key: Suffocation/Toxin/Burns/Brute", 1)
user.show_message("\blue \t Body Temperature: [C.bodytemperature-T0C]°C ([C.bodytemperature*1.8-459.67]°F)", 1)
for(var/datum/disease/D in C.viruses)
- user.show_message(text("\red Warning Virus Detected.\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
+ if(!D.hidden[SCANNER])
+ user.show_message(text("\red Warning Virus Detected.\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
if(2)
if (!istype(C:dna, /datum/dna) || !isnull(C:gloves))
diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm
index 93ab3e74434..052f4cbad2a 100644
--- a/code/game/objects/devices/scanners.dm
+++ b/code/game/objects/devices/scanners.dm
@@ -174,7 +174,8 @@ MASS SPECTROMETER
if (M.cloneloss)
user.show_message(text("\red Subject appears to have been imperfectly cloned."), 1)
for(var/datum/disease/D in M.viruses)
- user.show_message(text("\red Warning: Virus Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
+ if(!D.hidden[SCANNER])
+ user.show_message(text("\red Warning: Virus Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
user.show_message(text("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."), 1)
if (M.brainloss >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0)
diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm
index 32e287d3483..14a346e48ea 100644
--- a/code/game/objects/items/weapons/guns_new.dm
+++ b/code/game/objects/items/weapons/guns_new.dm
@@ -115,7 +115,7 @@ var/const/PROJECTILE_DART = 8
if(istype(src, /obj/item/projectile/freeze))
var/obj/item/projectile/freeze/F = src
F.Freeze(A)
- if(istype(src, /obj/item/projectile/plasma))
+ else if(istype(src, /obj/item/projectile/plasma))
var/obj/item/projectile/plasma/P = src
P.Heat(A)
else
@@ -864,7 +864,7 @@ var/const/PROJECTILE_DART = 8
name = "plasma gun"
icon_state = "plasmagun"
fire_sound = 'pulse3.ogg'
- desc = "A gun that fires super heated plasma at targets, thus increasing their overal body temparature and also harming them."
+ desc = "A gun that fires super heated plasma at targets, thus increasing their overall body temparature and also harming them."
var/temperature = T20C
var/current_temperature = T20C
charge_cost = 100
diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm
index 68c7d593bfd..6a038e46777 100644
--- a/code/modules/mob/living/silicon/pai/hud.dm
+++ b/code/modules/mob/living/silicon/pai/hud.dm
@@ -36,7 +36,9 @@
for(var/mob/living/carbon/human/patient in view(T))
var/foundVirus = 0
- for(var/datum/disease/D in patient.viruses) foundVirus = 1
+ for(var/datum/disease/D in patient.viruses)
+ if(!D.hidden[SCANNER])
+ foundVirus = 1
client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
if(patient.stat == 2)