/datum/disease/proc/get_antigen_string()
var/dat = ""
for (var/A in antigen)
dat += "[A]"
return dat
/datum/disease/proc/name(override=FALSE)
if(disease_flags & DISEASE_DORMANT)
.= "DORMANT - [form] #["[uniqueID]"][childID ? "-["[childID]"]" : ""]"
else
.= "[form] #["[uniqueID]"][childID ? "-["[childID]"]" : ""]"
if (!override && ("[uniqueID]-[subID]" in GLOB.virusDB))
var/datum/data/record/V = GLOB.virusDB["[uniqueID]-[subID]"]
.= V.fields["name"]
/datum/disease/proc/real_name()
if(disease_flags & DISEASE_DORMANT)
.= "DORMANT - [form] #["[uniqueID]"]-["[subID]"]"
else
.= "[form] #["[uniqueID]"]-["[subID]"]"
if ("[uniqueID]-[subID]" in GLOB.virusDB)
var/datum/data/record/v = GLOB.virusDB["[uniqueID]-[subID]"]
var/nickname = v.fields["nickname"] ? " \"[v.fields["nickname"]]\"" : ""
. += nickname
/datum/disease/proc/get_subdivisions_string()
var/subdivision = (strength - ((robustness * strength) / 100)) / max_stages
var/dat = "("
for (var/i = 1 to max_stages)
dat += "[round(strength - i * subdivision)]"
if (i < max_stages)
dat += ", "
dat += ")"
return dat
/datum/disease/proc/get_info()
var/r = "GNAv3 [name()]"
r += "
Strength / Robustness : [strength]% / [robustness]% - [get_subdivisions_string()]"
r += "
Infectability : [infectionchance]%"
r += "
Spread forms : [get_spread_string()]"
r += "
Progress Speed : [stageprob]%"
r += "
"
for(var/datum/symptom/acute/e in symptoms)
r += "- ● Stage [e.stage] - [e.name] (Danger: [e.badness]). Strength: [e.multiplier]. Occurrence: [e.chance]%.
"
r += "- [e.desc]
"
r += "
"
r += "
Antigen pattern: [get_antigen_string()]"
r += "
last analyzed at: [worldtime2text()]"
return r
/datum/disease/proc/get_spread_string()
if(spread_text)
return spread_text
var/dat = ""
var/check = 0
if (spread_flags & DISEASE_SPREAD_BLOOD)
dat += "Blood"
check += DISEASE_SPREAD_BLOOD
if (spread_flags > check)
dat += ", "
if (spread_flags & DISEASE_SPREAD_CONTACT_SKIN)
dat += "Skin Contact"
check += DISEASE_SPREAD_CONTACT_SKIN
if (spread_flags > check)
dat += ", "
if (spread_flags & DISEASE_SPREAD_AIRBORNE)
dat += "Airborne"
check += DISEASE_SPREAD_AIRBORNE
if (spread_flags > check)
dat += ", "
if (spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS)
dat += "Fluid Contact"
check += DISEASE_SPREAD_CONTACT_FLUIDS
if(spread_flags > check)
dat += ", "
if (spread_flags & DISEASE_SPREAD_NON_CONTAGIOUS)
dat += "Non Contagious"
check += DISEASE_SPREAD_NON_CONTAGIOUS
if(spread_flags > check)
dat += ", "
if (spread_flags & DISEASE_SPREAD_SPECIAL)
dat += "UNKNOWN SPREAD"
check += DISEASE_SPREAD_SPECIAL
if(spread_flags > check)
dat += ", "
/*
if (spread_flags & SPREAD_COLONY)
dat += "Colonizing"
check += SPREAD_COLONY
if (spread_flags > check)
dat += ", "
if (spread_flags & SPREAD_MEMETIC)
dat += "Memetic"
check += SPREAD_MEMETIC
if (spread_flags > check)
dat += ", "
*/
return dat
/datum/disease/proc/addToDB()
if ("[uniqueID]-[subID]" in GLOB.virusDB)
return 0
childID = 0
for (var/virus_file in GLOB.virusDB)
var/datum/data/record/v = GLOB.virusDB[virus_file]
if (v.fields["id"] == uniqueID)
childID++
var/datum/data/record/v = new()
v.fields["id"] = uniqueID
v.fields["sub"] = subID
v.fields["child"] = childID
v.fields["form"] = form
v.fields["name"] = name()
v.fields["nickname"] = ""
v.fields["description"] = get_info()
v.fields["description_hidden"] = get_info(TRUE)
v.fields["custom_desc"] = "No comments yet."
v.fields["antigen"] = get_antigen_string()
v.fields["spread_flags_type"] = get_spread_string()
v.fields["danger"] = "Undetermined"
GLOB.virusDB["[uniqueID]-[subID]"] = v
return 1