mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] Virology Fixes 6 (#9647)
Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
b3ce5296d0
commit
6af7c3e7ac
@@ -73,12 +73,19 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
|||||||
stage = min(stage + 1, max_stages)
|
stage = min(stage + 1, max_stages)
|
||||||
if(!discovered && stage >= CEILING(max_stages * discovery_threshold, 1))
|
if(!discovered && stage >= CEILING(max_stages * discovery_threshold, 1))
|
||||||
discovered = TRUE
|
discovered = TRUE
|
||||||
BITSET(affected_mob.hud_updateflag, STATUS_HUD)
|
|
||||||
|
|
||||||
/datum/disease/proc/handle_cure_testing(has_cure = FALSE)
|
/datum/disease/proc/handle_cure_testing(has_cure = FALSE)
|
||||||
if(has_cure && prob(cure_chance))
|
if(has_cure && prob(cure_chance))
|
||||||
stage = max(stage -1, 1)
|
stage = max(stage -1, 1)
|
||||||
|
|
||||||
|
for(var/organ in required_organs)
|
||||||
|
if(locate(organ) in affected_mob.internal_organs)
|
||||||
|
continue
|
||||||
|
if(locate(organ) in affected_mob.organs)
|
||||||
|
continue
|
||||||
|
cure()
|
||||||
|
return FALSE
|
||||||
|
|
||||||
if(disease_flags & CURABLE)
|
if(disease_flags & CURABLE)
|
||||||
if(has_cure && prob(cure_chance))
|
if(has_cure && prob(cure_chance))
|
||||||
cure()
|
cure()
|
||||||
@@ -165,7 +172,6 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
|
|||||||
|
|
||||||
/datum/disease/proc/remove_virus()
|
/datum/disease/proc/remove_virus()
|
||||||
affected_mob.viruses -= src
|
affected_mob.viruses -= src
|
||||||
BITSET(affected_mob.hud_updateflag, STATUS_HUD)
|
|
||||||
|
|
||||||
/datum/disease/proc/Start()
|
/datum/disease/proc/Start()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ Bonus
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/datum/symptom/confusion
|
/datum/symptom/confusion
|
||||||
|
|
||||||
name = "Confusion"
|
name = "Confusion"
|
||||||
stealth = 1
|
stealth = 1
|
||||||
resistance = -1
|
resistance = -1
|
||||||
@@ -25,7 +24,6 @@ Bonus
|
|||||||
level = 4
|
level = 4
|
||||||
severity = 2
|
severity = 2
|
||||||
|
|
||||||
|
|
||||||
/datum/symptom/confusion/Activate(datum/disease/advance/A)
|
/datum/symptom/confusion/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
if(prob(SYMPTOM_ACTIVATION_PROB))
|
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ Coughing
|
|||||||
Low Level.
|
Low Level.
|
||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Will force the affected mob to drop small items.
|
Will force the affected mob to drop small items. Small spread if not wearing a mask.
|
||||||
Small spread if not wearing a mask
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Bonus
|
|||||||
stage_speed = -4
|
stage_speed = -4
|
||||||
transmittable = -2
|
transmittable = -2
|
||||||
level = 4
|
level = 4
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/damage_converter/Activate(datum/disease/advance/A)
|
/datum/symptom/damage_converter/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Bonus
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/// Not the egg
|
|
||||||
/datum/symptom/dizzy
|
/datum/symptom/dizzy
|
||||||
name = "Dizziness"
|
name = "Dizziness"
|
||||||
stealth = 2
|
stealth = 2
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ Flippinov
|
|||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Makes the host FLIP.
|
Makes the host FLIP.
|
||||||
Should be used for buffing your disease.
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
@@ -23,7 +22,7 @@ BONUS
|
|||||||
stage_speed = 3
|
stage_speed = 3
|
||||||
transmittable = 1
|
transmittable = 1
|
||||||
level = 1
|
level = 1
|
||||||
severity = 1
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/spyndrome/Activate(datum/disease/advance/A)
|
/datum/symptom/spyndrome/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
Alopecia
|
Alopecia
|
||||||
|
|
||||||
Noticable.
|
Noticable.
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ Headache
|
|||||||
Low Level.
|
Low Level.
|
||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Displays an annoying message!
|
Displays an annoying message.
|
||||||
Should be used for buffing your disease.
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Bonus
|
|||||||
stage_speed = -4
|
stage_speed = -4
|
||||||
transmittable = -4
|
transmittable = -4
|
||||||
level = 6
|
level = 6
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/heal/Activate(datum/disease/advance/A)
|
/datum/symptom/heal/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
@@ -61,6 +62,7 @@ Bonus
|
|||||||
stage_speed = -1
|
stage_speed = -1
|
||||||
transmittable = -4
|
transmittable = -4
|
||||||
level = 3
|
level = 3
|
||||||
|
severity = 0
|
||||||
var/list/cured_diseases = list()
|
var/list/cured_diseases = list()
|
||||||
|
|
||||||
/datum/symptom/heal/metabolism/Heal(mob/living/M, datum/disease/advance/A)
|
/datum/symptom/heal/metabolism/Heal(mob/living/M, datum/disease/advance/A)
|
||||||
@@ -108,6 +110,7 @@ Bonus
|
|||||||
stage_speed = 4
|
stage_speed = 4
|
||||||
transmittable = 4
|
transmittable = 4
|
||||||
level = 3
|
level = 3
|
||||||
|
severity = 0
|
||||||
var/longevity = 30
|
var/longevity = 30
|
||||||
|
|
||||||
/datum/symptom/heal/longevity/Heal(mob/living/M, datum/disease/advance/A)
|
/datum/symptom/heal/longevity/Heal(mob/living/M, datum/disease/advance/A)
|
||||||
@@ -142,6 +145,7 @@ Bonus
|
|||||||
stage_speed = 0
|
stage_speed = 0
|
||||||
transmittable = -3
|
transmittable = -3
|
||||||
level = 5
|
level = 5
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/heal/dna/Heal(var/mob/living/carbon/M, var/datum/disease/advance/A)
|
/datum/symptom/heal/dna/Heal(var/mob/living/carbon/M, var/datum/disease/advance/A)
|
||||||
var/amt_healed = max(0, (sqrtor0(20+A.totalStageSpeed()*(3+rand())))-(sqrtor0(16+A.totalStealth()*rand())))
|
var/amt_healed = max(0, (sqrtor0(20+A.totalStageSpeed()*(3+rand())))-(sqrtor0(16+A.totalStealth()*rand())))
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ BONUS
|
|||||||
resistance = -4
|
resistance = -4
|
||||||
transmittable = 1
|
transmittable = 1
|
||||||
level = 4
|
level = 4
|
||||||
|
severity = 1
|
||||||
|
|
||||||
/datum/symptom/hematophagy/Start(datum/disease/advance/A)
|
/datum/symptom/hematophagy/Start(datum/disease/advance/A)
|
||||||
if(ishuman(A.affected_mob))
|
if(ishuman(A.affected_mob))
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ Itching
|
|||||||
Low Level.
|
Low Level.
|
||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Displays an annoying message!
|
Displays an annoying message.
|
||||||
Should be used for buffing your disease.
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Lingual Disocation
|
|||||||
Moderate Level.
|
Moderate Level.
|
||||||
|
|
||||||
Bonus
|
Bonus
|
||||||
Forces the affected mob to vomit
|
Randomly changes the language of the mob.
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
@@ -22,6 +22,7 @@ Bonus
|
|||||||
stage_speed = -2
|
stage_speed = -2
|
||||||
transmittable = -1
|
transmittable = -1
|
||||||
level = 3
|
level = 3
|
||||||
|
severity = 1
|
||||||
|
|
||||||
/datum/symptom/language/Activate(var/datum/disease/advance/A)
|
/datum/symptom/language/Activate(var/datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ Mlemingtong
|
|||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Mlem. Mlem. Mlem.
|
Mlem. Mlem. Mlem.
|
||||||
Should be used for buffing your disease.
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Bonus
|
|||||||
stage_speed = -3
|
stage_speed = -3
|
||||||
transmittable = -4
|
transmittable = -4
|
||||||
level = 6
|
level = 6
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/oxygen/Activate(var/datum/disease/advance/A)
|
/datum/symptom/oxygen/Activate(var/datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ BONUS
|
|||||||
stage_speed = 3
|
stage_speed = 3
|
||||||
transmittable = 1
|
transmittable = 1
|
||||||
level = 1
|
level = 1
|
||||||
severity = 1
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/pica/Start(datum/disease/advance/A)
|
/datum/symptom/pica/Start(datum/disease/advance/A)
|
||||||
add_verb(A.affected_mob, /mob/living/proc/eat_trash)
|
add_verb(A.affected_mob, /mob/living/proc/eat_trash)
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ Bonus
|
|||||||
stage_speed = 0
|
stage_speed = 0
|
||||||
transmittable = 1
|
transmittable = 1
|
||||||
level = 4
|
level = 4
|
||||||
severity = 1
|
severity = 3
|
||||||
|
|
||||||
/datum/symptom/sneeze/bluespace/Activate(datum/disease/advance/A)
|
/datum/symptom/sneeze/bluespace/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
@@ -79,8 +79,9 @@ Bonus
|
|||||||
M.emote("sniff")
|
M.emote("sniff")
|
||||||
else
|
else
|
||||||
SneezeTeleport(A, M)
|
SneezeTeleport(A, M)
|
||||||
A.spread(A.stage)
|
if(!M.wear_mask)
|
||||||
if(prob(30))
|
A.spread(A.stage)
|
||||||
|
if(prob(30) && !M.wear_mask)
|
||||||
var/obj/effect/decal/cleanable/mucus/icky = new(get_turf(M))
|
var/obj/effect/decal/cleanable/mucus/icky = new(get_turf(M))
|
||||||
icky.viruses |= A.Copy()
|
icky.viruses |= A.Copy()
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ Spyndrome
|
|||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
Makes the host spin.
|
Makes the host spin.
|
||||||
Should be used for buffing your disease.
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
@@ -23,7 +22,7 @@ BONUS
|
|||||||
stage_speed = 3
|
stage_speed = 3
|
||||||
transmittable = 1
|
transmittable = 1
|
||||||
level = 1
|
level = 1
|
||||||
severity = 1
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/spyndrome/Activate(var/datum/disease/advance/A)
|
/datum/symptom/spyndrome/Activate(var/datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
Healing
|
Overactve Adrenal Gland
|
||||||
|
|
||||||
No change to stealth.
|
No change to stealth.
|
||||||
Slightly decreases resistance.
|
Slightly decreases resistance.
|
||||||
@@ -10,7 +10,7 @@ Healing
|
|||||||
Moderate Level.
|
Moderate Level.
|
||||||
|
|
||||||
Bonus
|
Bonus
|
||||||
Heals toxins in the affected mob's blood stream.
|
The host produces hyperzine and gets very jittery
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Bonus
|
|||||||
stage_speed = -3
|
stage_speed = -3
|
||||||
transmittable = -4
|
transmittable = -4
|
||||||
level = 5
|
level = 5
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/telepathy/Start(datum/disease/advance/A)
|
/datum/symptom/telepathy/Start(datum/disease/advance/A)
|
||||||
var/mob/living/carbon/human/H = A.affected_mob
|
var/mob/living/carbon/human/H = A.affected_mob
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ BONUS
|
|||||||
stage_speed = -3
|
stage_speed = -3
|
||||||
transmittable = 0
|
transmittable = 0
|
||||||
level = 3
|
level = 3
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/viraladaptation/Activate(datum/disease/advance/A)
|
/datum/symptom/viraladaptation/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
@@ -53,6 +54,7 @@ BONUS
|
|||||||
stage_speed = 5
|
stage_speed = 5
|
||||||
transmittable = 3
|
transmittable = 3
|
||||||
level = 3
|
level = 3
|
||||||
|
severity = 0
|
||||||
|
|
||||||
/datum/symptom/viralevolution/Activate(datum/disease/advance/A)
|
/datum/symptom/viralevolution/Activate(datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
var/list/obj/item/organ/organ_list = list()
|
var/list/obj/item/organ/organ_list = list()
|
||||||
var/obj/item/organ/O
|
var/obj/item/organ/O
|
||||||
|
|
||||||
/datum/disease/roanoake/Start
|
/datum/disease/roanoake/Start()
|
||||||
var/mob/living/carbon/human/M = affected_mob
|
var/mob/living/carbon/human/M = affected_mob
|
||||||
|
|
||||||
organ_list += M.organs
|
organ_list += M.organs
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
if(prob(1))
|
if(prob(1))
|
||||||
to_chat(M, span_warning(pick("You feel hot.", "You feel like you're burning.")))
|
to_chat(M, span_warning(pick("You feel hot.", "You feel like you're burning.")))
|
||||||
if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
|
if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
|
||||||
|
fever(M)
|
||||||
if(3)
|
if(3)
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
to_chat(M, span_notice("You shiver a bit."))
|
to_chat(M, span_notice("You shiver a bit."))
|
||||||
@@ -77,8 +78,10 @@
|
|||||||
O.take_damage(rand(1, 3))
|
O.take_damage(rand(1, 3))
|
||||||
|
|
||||||
if(prob(1) && prob(10))
|
if(prob(1) && prob(10))
|
||||||
|
O = pick(organ_list)
|
||||||
|
var/obj/item/organ/external/E = O.parent_organ
|
||||||
var/datum/wound/W = new /datum/wound/internal_bleeding(5)
|
var/datum/wound/W = new /datum/wound/internal_bleeding(5)
|
||||||
O.wounds += W
|
E.wounds += W
|
||||||
|
|
||||||
if(M.stat == DEAD)
|
if(M.stat == DEAD)
|
||||||
M.species = /datum/species/xenochimera
|
M.species = /datum/species/xenochimera
|
||||||
|
|||||||
@@ -248,15 +248,15 @@
|
|||||||
else
|
else
|
||||||
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
|
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
if(LAZYLEN(C.resistances))
|
if(LAZYLEN(C.viruses))
|
||||||
for (var/datum/disease/virus in C.GetViruses())
|
for (var/datum/disease/virus in C.GetViruses())
|
||||||
if(virus.visibility_flags & HIDDEN_SCANNER || virus.visibility_flags & HIDDEN_PANDEMIC)
|
if(virus.visibility_flags & HIDDEN_SCANNER || virus.visibility_flags & HIDDEN_PANDEMIC)
|
||||||
continue
|
continue
|
||||||
if(virus.discovered)
|
virus.discovered = TRUE
|
||||||
dat += span_warning("Warning: [virus.name] detected in subject's blood.")
|
dat += span_warning("Warning: [virus.name] detected in subject's blood.")
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += span_warning("Severity: [virus.severity]")
|
dat += span_warning("Severity: [virus.severity]")
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
if (M.getCloneLoss())
|
if (M.getCloneLoss())
|
||||||
dat += span_warning("Subject appears to have been imperfectly cloned.")
|
dat += span_warning("Subject appears to have been imperfectly cloned.")
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
|
|||||||
@@ -2121,11 +2121,6 @@
|
|||||||
apply_hud(LIFE_HUD, holder)
|
apply_hud(LIFE_HUD, holder)
|
||||||
|
|
||||||
if (BITTEST(hud_updateflag, STATUS_HUD))
|
if (BITTEST(hud_updateflag, STATUS_HUD))
|
||||||
var/foundVirus = 0
|
|
||||||
for (var/datum/disease/D in GetViruses())
|
|
||||||
if(D.discovered)
|
|
||||||
foundVirus = 1
|
|
||||||
break
|
|
||||||
|
|
||||||
var/image/holder = grab_hud(STATUS_HUD)
|
var/image/holder = grab_hud(STATUS_HUD)
|
||||||
var/image/holder2 = grab_hud(STATUS_HUD_OOC)
|
var/image/holder2 = grab_hud(STATUS_HUD_OOC)
|
||||||
@@ -2135,7 +2130,7 @@
|
|||||||
else if(stat == DEAD)
|
else if(stat == DEAD)
|
||||||
holder.icon_state = "huddead"
|
holder.icon_state = "huddead"
|
||||||
holder2.icon_state = "huddead"
|
holder2.icon_state = "huddead"
|
||||||
else if(foundVirus)
|
else if(has_virus())
|
||||||
holder.icon_state = "hudill"
|
holder.icon_state = "hudill"
|
||||||
/* Start Chomp edit
|
/* Start Chomp edit
|
||||||
else if(has_brain_worms())
|
else if(has_brain_worms())
|
||||||
@@ -2148,10 +2143,8 @@
|
|||||||
End Chomp edit */
|
End Chomp edit */
|
||||||
else
|
else
|
||||||
holder.icon_state = "hudhealthy"
|
holder.icon_state = "hudhealthy"
|
||||||
if(viruses.len)
|
if(has_virus())
|
||||||
for(var/datum/disease/D in GetViruses())
|
holder2.icon_state = "hudill"
|
||||||
if(D.discovered)
|
|
||||||
holder2.icon_state = "hudill"
|
|
||||||
else
|
else
|
||||||
holder2.icon_state = "hudhealthy"
|
holder2.icon_state = "hudhealthy"
|
||||||
if(block_hud)
|
if(block_hud)
|
||||||
@@ -2312,6 +2305,15 @@ End Chomp edit */
|
|||||||
|
|
||||||
brain.tick_defib_timer()
|
brain.tick_defib_timer()
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/has_virus()
|
||||||
|
for(var/thing in viruses)
|
||||||
|
var/datum/disease/D = thing
|
||||||
|
if(!D.discovered)
|
||||||
|
continue
|
||||||
|
if((!(D.visibility_flags & HIDDEN_SCANNER)) && (D.severity != NONTHREAT))
|
||||||
|
return TRUE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
#undef HUMAN_MAX_OXYLOSS
|
#undef HUMAN_MAX_OXYLOSS
|
||||||
#undef HUMAN_CRIT_MAX_OXYLOSS
|
#undef HUMAN_CRIT_MAX_OXYLOSS
|
||||||
|
|
||||||
|
|||||||
@@ -703,6 +703,7 @@
|
|||||||
sdisabilities = 0
|
sdisabilities = 0
|
||||||
disabilities = 0
|
disabilities = 0
|
||||||
resting = FALSE
|
resting = FALSE
|
||||||
|
viruses.Cut()
|
||||||
|
|
||||||
// fix blindness and deafness
|
// fix blindness and deafness
|
||||||
blinded = 0
|
blinded = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user