mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-31 00:49:06 +01:00
Removes Virology (#8927)
-Almost all aspects of virology and it's related machinery and objects have been purged from the code and map. -Most of disease code has been purged. Some pieces of it remain as holdovers because they would require extensive rewrite of defines and codes for things like nanite robot transformation and appendicitis (that frankly isn't necessary) -The outbreak event has been purged, as has the virology malicious code event variant. -The Virology department has been remapped into the Abandoned Sector.
This commit is contained in:
@@ -25,7 +25,6 @@
|
||||
var/treatment_oxy = "tricordrazine"
|
||||
var/treatment_fire = "tricordrazine"
|
||||
var/treatment_tox = "tricordrazine"
|
||||
var/treatment_virus = "deltamivir"
|
||||
var/treatment_emag = "toxin"
|
||||
var/declare_treatment = 0 //When attempting to treat a patient, should it notify everyone wearing medhuds?
|
||||
|
||||
@@ -306,10 +305,6 @@
|
||||
if((H.getToxLoss() >= heal_threshold) && (!H.reagents.has_reagent(treatment_tox)))
|
||||
return treatment_tox
|
||||
|
||||
for(var/datum/disease2/disease/D in H.virus2)
|
||||
if (!H.reagents.has_reagent(treatment_virus))
|
||||
return treatment_virus // STOP DISEASE FOREVER
|
||||
|
||||
/* Construction */
|
||||
|
||||
/obj/item/storage/firstaid/attackby(var/obj/item/robot_parts/S, mob/user as mob)
|
||||
|
||||
@@ -202,15 +202,12 @@
|
||||
if(B.id == "blood")
|
||||
B.data = list(
|
||||
"donor" = WEAKREF(src),
|
||||
"viruses" = null,
|
||||
"species" = species.name,
|
||||
"blood_DNA" = name,
|
||||
"blood_colour" = species.blood_color,
|
||||
"blood_type" = null,
|
||||
"resistances" = null,
|
||||
"trace_chem" = null,
|
||||
"virus2" = null,
|
||||
"antibodies" = list()
|
||||
"trace_chem" = null
|
||||
)
|
||||
B.color = B.data["blood_colour"]
|
||||
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
/mob/living/carbon/Life()
|
||||
..()
|
||||
|
||||
handle_viruses()
|
||||
|
||||
// Increase germ_level regularly
|
||||
if(germ_level < GERM_LEVEL_AMBIENT && prob(30)) //if you're just standing there, you shouldn't get more germs beyond an ambient level
|
||||
germ_level++
|
||||
@@ -114,15 +112,6 @@
|
||||
visible_message(span("notice", "[M] [action] [src] waking [t_him] up!"))
|
||||
sleeping = 0
|
||||
willfully_sleeping = FALSE
|
||||
|
||||
for(var/datum/disease/D in viruses)
|
||||
if(D.spread_by_touch())
|
||||
M.contract_disease(D, 0, 1, CONTACT_HANDS)
|
||||
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(D.spread_by_touch())
|
||||
contract_disease(D, 0, 1, CONTACT_HANDS)
|
||||
|
||||
return
|
||||
|
||||
/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, var/tesla_shock = 0, var/ground_zero)
|
||||
@@ -385,8 +374,6 @@
|
||||
if(now_pushing)
|
||||
return
|
||||
. = ..()
|
||||
if(istype(A, /mob/living/carbon) && prob(10))
|
||||
src.spread_disease_to(A, "Contact")
|
||||
|
||||
/mob/living/carbon/cannot_use_vents()
|
||||
return
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
gender = MALE
|
||||
var/datum/species/species //Contains icon generation and language information, set during New().
|
||||
//stomach contents redefined at mob/living level, removed from here
|
||||
var/list/datum/disease2/disease/virus2 = list()
|
||||
var/list/antibodies = list()
|
||||
|
||||
var/analgesic = 0 // when this is set, the mob isn't affected by shock or pain
|
||||
// life should decrease this by 1 every tick
|
||||
|
||||
@@ -174,10 +174,6 @@
|
||||
else
|
||||
B.blood_DNA[source.data["blood_DNA"]] = "O+"
|
||||
|
||||
// Update virus information.
|
||||
if(source.data["virus2"])
|
||||
B.virus2 = virus_copylist(source.data["virus2"])
|
||||
|
||||
B.fluorescent = 0
|
||||
B.invisibility = 0
|
||||
|
||||
|
||||
@@ -1256,13 +1256,6 @@
|
||||
H.brainmob.mind.transfer_to(src)
|
||||
qdel(H)
|
||||
|
||||
for (var/datum/disease/virus in viruses)
|
||||
virus.cure()
|
||||
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
V.cure(src)
|
||||
|
||||
losebreath = 0
|
||||
shock_stage = 0
|
||||
|
||||
|
||||
@@ -100,9 +100,6 @@
|
||||
|
||||
return
|
||||
|
||||
if(istype(M,/mob/living/carbon))
|
||||
M.spread_disease_to(src, "Contact")
|
||||
|
||||
var/datum/martial_art/attacker_style = H.martial_art
|
||||
|
||||
switch(M.a_intent)
|
||||
|
||||
@@ -309,14 +309,6 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/handle_post_breath(datum/gas_mixture/breath)
|
||||
..()
|
||||
//spread some viruses while we are at it
|
||||
if(breath && virus2.len > 0 && prob(10))
|
||||
for(var/mob/living/carbon/M in view(1,src))
|
||||
src.spread_disease_to(M)
|
||||
|
||||
|
||||
/mob/living/carbon/human/get_breath_from_internal(volume_needed=BREATH_VOLUME)
|
||||
if(internal)
|
||||
|
||||
@@ -1161,22 +1153,11 @@
|
||||
hud_list[LIFE_HUD] = holder
|
||||
|
||||
if (BITTEST(hud_updateflag, STATUS_HUD) && hud_list[STATUS_HUD] && hud_list[STATUS_HUD_OOC])
|
||||
var/foundVirus = 0
|
||||
for(var/datum/disease/D in viruses)
|
||||
if(!D.hidden[SCANNER])
|
||||
foundVirus++
|
||||
for (var/ID in virus2)
|
||||
if (SSrecords.find_record("id", "[ID]", RECORD_VIRUS))
|
||||
foundVirus = 1
|
||||
break
|
||||
|
||||
var/image/holder = hud_list[STATUS_HUD]
|
||||
if(stat == DEAD)
|
||||
holder.icon_state = "huddead"
|
||||
else if(status_flags & XENO_HOST)
|
||||
holder.icon_state = "hudxeno"
|
||||
else if(foundVirus)
|
||||
holder.icon_state = "hudill"
|
||||
else
|
||||
holder.icon_state = "hudhealthy"
|
||||
|
||||
@@ -1187,8 +1168,6 @@
|
||||
holder2.icon_state = "hudxeno"
|
||||
else if(has_brain_worms())
|
||||
holder2.icon_state = "hudbrainworm"
|
||||
else if(virus2.len)
|
||||
holder2.icon_state = "hudill"
|
||||
else
|
||||
holder2.icon_state = "hudhealthy"
|
||||
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
/mob/living/carbon/proc/handle_viruses()
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if(bodytemperature > 406)
|
||||
for(var/datum/disease/D in viruses)
|
||||
D.cure()
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
V.cure(src)
|
||||
|
||||
if(life_tick % 3) //don't spam checks over all objects in view every tick.
|
||||
for(var/obj/effect/decal/cleanable/O in view(1,src))
|
||||
if(istype(O,/obj/effect/decal/cleanable/blood))
|
||||
var/obj/effect/decal/cleanable/blood/B = O
|
||||
if (B.virus2 && islist(B.virus2))
|
||||
if(B.virus2.len)
|
||||
for (var/ID in B.virus2)
|
||||
var/datum/disease2/disease/V = B.virus2[ID]
|
||||
infect_virus2(src,V)
|
||||
else
|
||||
B.virus2 = list()
|
||||
|
||||
else if(istype(O,/obj/effect/decal/cleanable/mucus))
|
||||
var/obj/effect/decal/cleanable/mucus/M = O
|
||||
if(M.virus2 && islist(M.virus2) && M.virus2.len)
|
||||
for (var/ID in M.virus2)
|
||||
var/datum/disease2/disease/V = M.virus2[ID]
|
||||
infect_virus2(src,V)
|
||||
else
|
||||
M.virus2 = list()
|
||||
|
||||
if(virus2 && virus2.len)
|
||||
for (var/ID in virus2)
|
||||
var/datum/disease2/disease/V = virus2[ID]
|
||||
if(isnull(V)) // Trying to figure out a runtime error that keeps repeating
|
||||
CRASH("virus2 nulled before calling activate()")
|
||||
else
|
||||
V.activate(src)
|
||||
// activate may have deleted the virus
|
||||
if(!V) continue
|
||||
|
||||
// check if we're immune
|
||||
var/list/common_antibodies = V.antigen & src.antibodies
|
||||
if(common_antibodies.len)
|
||||
V.dead = 1
|
||||
|
||||
return
|
||||
@@ -229,7 +229,6 @@
|
||||
/obj/item/reagent_containers/spray,
|
||||
/obj/item/storage/pill_bottle,
|
||||
/obj/item/hand_labeler,
|
||||
/obj/item/virusdish,
|
||||
/obj/item/paper,
|
||||
/obj/item/stack/material/phoron,
|
||||
/obj/item/reagent_containers/blood,
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
//Methods that need to be cleaned.
|
||||
/* INFORMATION
|
||||
Put (mob/proc)s here that are in dire need of a code cleanup.
|
||||
*/
|
||||
|
||||
/mob/proc/has_disease(var/datum/disease/virus)
|
||||
for(var/datum/disease/D in viruses)
|
||||
if(D.IsSame(virus))
|
||||
//error("[D.name]/[D.type] is the same as [virus.name]/[virus.type]")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
// This proc has some procs that should be extracted from it. I believe we can develop some helper procs from it - Rockdtben
|
||||
/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1, var/spread_type = -5)
|
||||
if(stat >=2)
|
||||
return
|
||||
if(istype(virus, /datum/disease/advance))
|
||||
var/datum/disease/advance/A = virus
|
||||
if(A.GetDiseaseID() in resistances)
|
||||
return
|
||||
if(count_by_type(viruses, /datum/disease/advance) >= 3)
|
||||
return
|
||||
|
||||
else
|
||||
if(src.resistances.Find(virus.type))
|
||||
return
|
||||
|
||||
|
||||
if(has_disease(virus))
|
||||
return
|
||||
|
||||
|
||||
if(force_species_check)
|
||||
var/fail = 1
|
||||
for(var/name in virus.affected_species)
|
||||
if(istype(src, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = src
|
||||
if(C.species.name == name)
|
||||
fail = 0
|
||||
break
|
||||
if(fail) return
|
||||
|
||||
if(skip_this == 1)
|
||||
var/datum/disease/v = new virus.type(1, virus, 0)
|
||||
src.viruses += v
|
||||
v.affected_mob = src
|
||||
v.strain_data = v.strain_data.Copy()
|
||||
v.holder = src
|
||||
if(v.can_carry && prob(5))
|
||||
v.carrier = 1
|
||||
return
|
||||
|
||||
if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! but then you forgot resistances
|
||||
var/obj/item/clothing/Cl = null
|
||||
var/passed = 1
|
||||
|
||||
//chances to target this zone
|
||||
var/head_ch
|
||||
var/body_ch
|
||||
var/hands_ch
|
||||
var/feet_ch
|
||||
|
||||
if(spread_type == -5)
|
||||
spread_type = virus.spread_type
|
||||
|
||||
switch(spread_type)
|
||||
if(CONTACT_HANDS)
|
||||
head_ch = 0
|
||||
body_ch = 0
|
||||
hands_ch = 100
|
||||
feet_ch = 0
|
||||
if(CONTACT_FEET)
|
||||
head_ch = 0
|
||||
body_ch = 0
|
||||
hands_ch = 0
|
||||
feet_ch = 100
|
||||
else
|
||||
head_ch = 100
|
||||
body_ch = 100
|
||||
hands_ch = 25
|
||||
feet_ch = 25
|
||||
|
||||
|
||||
var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)//1 - head, 2 - body, 3 - hands, 4- feet
|
||||
|
||||
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/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)//arms and legs included
|
||||
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
|
||||
to_chat(src, "Something strange's going on, something's wrong.")
|
||||
|
||||
if(!passed && spread_type == AIRBORNE && !internals)
|
||||
passed = (prob((50*virus.permeability_mod) - 1))
|
||||
|
||||
if(passed)
|
||||
var/datum/disease/v = new virus.type(1, virus, 0)
|
||||
src.viruses += v
|
||||
v.affected_mob = src
|
||||
v.strain_data = v.strain_data.Copy()
|
||||
v.holder = src
|
||||
if(v.can_carry && prob(5))
|
||||
v.carrier = 1
|
||||
@@ -1038,15 +1038,12 @@ proc/is_blind(A)
|
||||
if(B.id == "blood")
|
||||
B.data = list(
|
||||
"donor" = WEAKREF(src),
|
||||
"viruses" = null,
|
||||
"species" = name,
|
||||
"blood_DNA" = md5("\ref[src]"),
|
||||
"blood_colour" = "#a10808",
|
||||
"blood_type" = null,
|
||||
"resistances" = null,
|
||||
"trace_chem" = null,
|
||||
"virus2" = null,
|
||||
"antibodies" = list()
|
||||
"trace_chem" = null
|
||||
)
|
||||
|
||||
B.color = B.data["blood_colour"]
|
||||
|
||||
Reference in New Issue
Block a user