mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 13:09:11 +01:00
Removes the old virus system
Appendicitis moved to appendix organ
This commit is contained in:
@@ -605,22 +605,6 @@ var/list/admin_verbs_mentor = list(
|
||||
message_admins("\blue [ckey] creating an admin explosion at [epicenter.loc].")
|
||||
feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom
|
||||
set category = "Fun"
|
||||
set name = "Give Disease (old)"
|
||||
set desc = "Gives a (tg-style) Disease to a mob."
|
||||
var/list/disease_names = list()
|
||||
for(var/v in diseases)
|
||||
// "/datum/disease/" 15 symbols ~Intercross
|
||||
disease_names.Add(copytext("[v]", 16, 0))
|
||||
var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in disease_names
|
||||
if(!D) return
|
||||
var/path = text2path("/datum/disease/[D]")
|
||||
T.contract_disease(new path, 1)
|
||||
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("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1)
|
||||
|
||||
/client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom
|
||||
set category = "Fun"
|
||||
set name = "Give Disease"
|
||||
|
||||
@@ -627,7 +627,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]", 1)
|
||||
|
||||
if(istype(M, /mob/dead/observer))
|
||||
gibs(M.loc, M.viruses)
|
||||
gibs(M.loc)
|
||||
return
|
||||
|
||||
M.gib()
|
||||
|
||||
@@ -74,17 +74,6 @@
|
||||
src.give_spell(M)
|
||||
href_list["datumrefresh"] = href_list["give_spell"]
|
||||
|
||||
else if(href_list["give_disease"])
|
||||
if(!check_rights(R_ADMIN|R_FUN)) return
|
||||
|
||||
var/mob/M = locate(href_list["give_disease"])
|
||||
if(!istype(M))
|
||||
usr << "This can only be used on instances of type /mob"
|
||||
return
|
||||
|
||||
src.give_disease(M)
|
||||
href_list["datumrefresh"] = href_list["give_spell"]
|
||||
|
||||
else if(href_list["give_disease2"])
|
||||
if(!check_rights(R_ADMIN|R_FUN)) return
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
/datum/event/disease_outbreak
|
||||
announceWhen = 15
|
||||
|
||||
|
||||
/datum/event/disease_outbreak/announce()
|
||||
command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg')
|
||||
|
||||
/datum/event/disease_outbreak/setup()
|
||||
announceWhen = rand(15, 30)
|
||||
|
||||
/datum/event/disease_outbreak/start()
|
||||
var/virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis)
|
||||
|
||||
for(var/mob/living/carbon/human/H in shuffle(living_mob_list))
|
||||
var/foundAlready = 0 // don't infect someone that already has the virus
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T)
|
||||
continue
|
||||
if(isNotStationLevel(T.z))
|
||||
continue
|
||||
for(var/datum/disease/D in H.viruses)
|
||||
foundAlready = 1
|
||||
if(H.stat == 2 || foundAlready)
|
||||
continue
|
||||
|
||||
if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work.
|
||||
if((!H.dna) || (H.sdisabilities & BLIND)) //A blindness disease would be the worst.
|
||||
continue
|
||||
var/datum/disease/dnaspread/D = new
|
||||
D.strain_data["name"] = H.real_name
|
||||
D.strain_data["UI"] = H.dna.UI.Copy()
|
||||
D.strain_data["SE"] = H.dna.SE.Copy()
|
||||
D.carrier = 1
|
||||
D.holder = H
|
||||
D.affected_mob = H
|
||||
H.viruses += D
|
||||
break
|
||||
else
|
||||
var/datum/disease/D = new virus_type
|
||||
D.carrier = 1
|
||||
D.holder = H
|
||||
D.affected_mob = H
|
||||
H.viruses += D
|
||||
break
|
||||
@@ -1,13 +1,4 @@
|
||||
/datum/event/spontaneous_appendicitis/start()
|
||||
for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) if(H.client && H.stat != DEAD)
|
||||
var/foundAlready = 0 //don't infect someone that already has the virus
|
||||
for(var/datum/disease/D in H.viruses)
|
||||
foundAlready = 1
|
||||
if(H.stat == 2 || foundAlready)
|
||||
continue
|
||||
|
||||
var/datum/disease/D = new /datum/disease/appendicitis
|
||||
D.holder = H
|
||||
D.affected_mob = H
|
||||
H.viruses += D
|
||||
break
|
||||
for(var/mob/living/carbon/human/H in shuffle(living_mob_list))
|
||||
if(H.client && H.appendicitis())
|
||||
break
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
animation.master = src
|
||||
|
||||
flick(anim, animation)
|
||||
if(do_gibs) gibs(loc, viruses, dna)
|
||||
if(do_gibs) gibs(loc, dna)
|
||||
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
|
||||
@@ -287,10 +287,6 @@
|
||||
if((H.getToxLoss() >= heal_threshold) && (!H.reagents.has_reagent(treatment_tox)))
|
||||
return treatment_tox
|
||||
|
||||
for(var/datum/disease/D in H.viruses)
|
||||
if (!H.reagents.has_reagent(treatment_virus))
|
||||
return treatment_virus // STOP DISEASE FOREVER
|
||||
|
||||
/* Construction */
|
||||
|
||||
/obj/item/weapon/storage/firstaid/attackby(var/obj/item/robot_parts/S, mob/user as mob)
|
||||
|
||||
@@ -93,18 +93,6 @@
|
||||
H << "\red You can't use your [temp.name]"
|
||||
return
|
||||
|
||||
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)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
I.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/I.w_class))
|
||||
|
||||
..(species.gibbed_anim)
|
||||
gibs(loc, viruses, dna, null, species.get_flesh_colour(src), species.get_blood_colour(src))
|
||||
gibs(loc, dna, null, species.get_flesh_colour(src), species.get_blood_colour(src))
|
||||
|
||||
/mob/living/carbon/human/dust()
|
||||
if(species)
|
||||
|
||||
@@ -909,9 +909,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)
|
||||
|
||||
@@ -1628,9 +1628,6 @@
|
||||
|
||||
if (BITTEST(hud_updateflag, STATUS_HUD))
|
||||
var/foundVirus = 0
|
||||
for(var/datum/disease/D in viruses)
|
||||
if(!D.hidden[SCANNER])
|
||||
foundVirus++
|
||||
for (var/ID in virus2)
|
||||
if (ID in virusDB)
|
||||
foundVirus = 1
|
||||
|
||||
@@ -161,7 +161,6 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
return
|
||||
|
||||
if(!sterile)
|
||||
//target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance
|
||||
new /obj/item/alien_embryo(target)
|
||||
target.status_flags |= XENO_HOST
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
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)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/silicon/gib()
|
||||
..("gibbed-r")
|
||||
gibs(loc, viruses, null, /obj/effect/gibspawner/robot)
|
||||
gibs(loc, null, /obj/effect/gibspawner/robot)
|
||||
|
||||
/mob/living/silicon/dust()
|
||||
..("dust-r", /obj/effect/decal/remains/robot)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
held_item.loc = src.loc
|
||||
held_item = null
|
||||
|
||||
gibs(loc, viruses, null, null, /obj/effect/gibspawner/robot) //TODO: use gib() or refactor spiderbots into synthetics.
|
||||
gibs(loc, null, null, /obj/effect/gibspawner/robot) //TODO: use gib() or refactor spiderbots into synthetics.
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
client.screen = list()
|
||||
if(mind && mind.current == src)
|
||||
spellremove(src)
|
||||
for(var/infection in viruses)
|
||||
qdel(infection)
|
||||
ghostize()
|
||||
..()
|
||||
|
||||
|
||||
@@ -1,199 +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)
|
||||
//world << "Contract_disease called by [src] with virus [virus]"
|
||||
if(stat >=2)
|
||||
//world << "He's dead jim."
|
||||
return
|
||||
if(istype(virus, /datum/disease/advance))
|
||||
//world << "It's an advance virus."
|
||||
var/datum/disease/advance/A = virus
|
||||
if(A.GetDiseaseID() in resistances)
|
||||
//world << "It resisted us!"
|
||||
return
|
||||
if(count_by_type(viruses, /datum/disease/advance) >= 3)
|
||||
return
|
||||
|
||||
else
|
||||
if(src.resistances.Find(virus.type))
|
||||
//world << "Normal virus and resisted"
|
||||
return
|
||||
|
||||
|
||||
if(has_disease(virus))
|
||||
return
|
||||
|
||||
|
||||
if(force_species_check)
|
||||
var/fail = 1
|
||||
for(var/name in virus.affected_species)
|
||||
var/mob_type = text2path("/mob/living/carbon/[lowertext(name)]")
|
||||
if(mob_type && istype(src, mob_type))
|
||||
fail = 0
|
||||
break
|
||||
if(fail) return
|
||||
|
||||
if(skip_this == 1)
|
||||
//world << "infectin"
|
||||
//if(src.virus) < -- this used to replace the current disease. Not anymore!
|
||||
//src.virus.cure(0)
|
||||
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
|
||||
//world << "Not skipping."
|
||||
//if(src.virus) //
|
||||
//return //
|
||||
|
||||
|
||||
/*
|
||||
var/list/clothing_areas = list()
|
||||
var/list/covers = list(UPPER_TORSO,LOWER_TORSO,LEGS,FEET,ARMS,HANDS)
|
||||
for(var/Covers in covers)
|
||||
clothing_areas[Covers] = list()
|
||||
|
||||
for(var/obj/item/clothing/Clothing in src)
|
||||
if(Clothing)
|
||||
for(var/Covers in covers)
|
||||
if(Clothing&Covers)
|
||||
clothing_areas[Covers] += Clothing
|
||||
|
||||
*/
|
||||
if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! but then you forgot resistances
|
||||
//world << "past prob()"
|
||||
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/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)//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
|
||||
src << "Something strange's going on, something's wrong."
|
||||
|
||||
/*if("feet")
|
||||
if(H.shoes && istype(H.shoes, /obj/item/clothing/))
|
||||
Cl = H.shoes
|
||||
passed = prob(Cl.permeability_coefficient*100)
|
||||
//
|
||||
world << "Shoes pass [passed]"
|
||||
*/ //
|
||||
|
||||
if(!passed && spread_type == AIRBORNE && !internals)
|
||||
passed = (prob((50*virus.permeability_mod) - 1))
|
||||
|
||||
if(passed)
|
||||
//world << "Infection in the mob [src]. YAY"
|
||||
|
||||
|
||||
/*
|
||||
var/score = 0
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
if(src:gloves) score += 5
|
||||
if(istype(src:wear_suit, /obj/item/clothing/suit/space)) score += 10
|
||||
if(istype(src:wear_suit, /obj/item/clothing/suit/bio_suit)) score += 10
|
||||
if(istype(src:head, /obj/item/clothing/head/helmet/space)) score += 5
|
||||
if(istype(src:head, /obj/item/clothing/head/bio_hood)) score += 5
|
||||
if(wear_mask)
|
||||
score += 5
|
||||
if((istype(src:wear_mask, /obj/item/clothing/mask) || istype(src:wear_mask, /obj/item/clothing/mask/surgical)) && !internal)
|
||||
score += 5
|
||||
if(internal)
|
||||
score += 5
|
||||
if(score > 20)
|
||||
return
|
||||
else if(score == 20 && prob(95))
|
||||
return
|
||||
else if(score >= 15 && prob(75))
|
||||
return
|
||||
else if(score >= 10 && prob(55))
|
||||
return
|
||||
else if(score >= 5 && prob(35))
|
||||
return
|
||||
else if(prob(15))
|
||||
return
|
||||
else*/
|
||||
|
||||
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
|
||||
return
|
||||
@@ -185,14 +185,6 @@
|
||||
//Changlings, but can be used in other modes
|
||||
// var/obj/effect/proc_holder/changpower/list/power_list = list()
|
||||
|
||||
//List of active diseases
|
||||
|
||||
var/list/viruses = list() // replaces var/datum/disease/virus
|
||||
|
||||
//Monkey/infected mode
|
||||
var/list/resistances = list()
|
||||
var/datum/disease/virus = null
|
||||
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
|
||||
var/update_icon = 1 //Set to 1 to trigger update_icons() at the next life() call
|
||||
|
||||
@@ -165,11 +165,6 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
B.data["virus2"] |= virus_copylist(src.virus2)
|
||||
B.data["antibodies"] = src.antibodies
|
||||
B.data["blood_DNA"] = copytext(src.dna.unique_enzymes,1,0)
|
||||
if(src.resistances && src.resistances.len)
|
||||
if(B.data["resistances"])
|
||||
B.data["resistances"] |= src.resistances.Copy()
|
||||
else
|
||||
B.data["resistances"] = src.resistances.Copy()
|
||||
B.data["blood_type"] = copytext(src.dna.b_type,1,0)
|
||||
|
||||
// Putting this here due to return shenanigans.
|
||||
|
||||
@@ -205,15 +205,51 @@
|
||||
icon_state = "appendix"
|
||||
parent_organ = BP_GROIN
|
||||
organ_tag = "appendix"
|
||||
var/inflamed = 0
|
||||
var/inflame_progress = 0
|
||||
|
||||
/mob/living/carbon/human/proc/appendicitis()
|
||||
if(stat == DEAD)
|
||||
return 0
|
||||
var/obj/item/organ/internal/appendix/A = internal_organs_by_name[O_APPENDIX]
|
||||
if(istype(A) && !A.inflamed)
|
||||
A.inflamed = 1
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/organ/internal/appendix/process()
|
||||
if(!inflamed || !owner)
|
||||
return
|
||||
|
||||
if(++inflame_progress > 200)
|
||||
++inflamed
|
||||
inflame_progress = 0
|
||||
|
||||
if(inflamed == 1)
|
||||
if(prob(5))
|
||||
owner << "<span class='warning'>You feel a stinging pain in your abdomen!</span>"
|
||||
owner.emote("me", 1, "winces slightly.")
|
||||
if(inflamed > 1)
|
||||
if(prob(3))
|
||||
owner << "<span class='warning'>You feel a stabbing pain in your abdomen!</span>"
|
||||
owner.emote("me", 1, "winces painfully.")
|
||||
owner.adjustToxLoss(1)
|
||||
if(inflamed > 2)
|
||||
if(prob(1))
|
||||
owner.vomit()
|
||||
if(inflamed > 3)
|
||||
if(prob(1))
|
||||
owner << "<span class='danger'>Your abdomen is a world of pain!</span>"
|
||||
owner.Weaken(10)
|
||||
|
||||
var/obj/item/organ/external/groin = owner.get_organ(BP_GROIN)
|
||||
var/datum/wound/W = new /datum/wound/internal_bleeding(20)
|
||||
owner.adjustToxLoss(25)
|
||||
groin.wounds += W
|
||||
inflamed = 0
|
||||
|
||||
/obj/item/organ/internal/appendix/removed()
|
||||
if(owner)
|
||||
var/inflamed = 0
|
||||
for(var/datum/disease/appendicitis/appendicitis in owner.viruses)
|
||||
inflamed = 1
|
||||
appendicitis.cure()
|
||||
owner.resistances += appendicitis
|
||||
if(inflamed)
|
||||
icon_state = "appendixinflamed"
|
||||
name = "inflamed appendix"
|
||||
if(inflamed)
|
||||
icon_state = "appendixinflamed"
|
||||
name = "inflamed appendix"
|
||||
..()
|
||||
|
||||
@@ -303,258 +303,6 @@
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/machinery/computer/pandemic
|
||||
name = "PanD.E.M.I.C 2200"
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "mixer0"
|
||||
circuit = /obj/item/weapon/circuitboard/pandemic
|
||||
//use_power = 1
|
||||
//idle_power_usage = 20 //defaults make more sense.
|
||||
var/temphtml = ""
|
||||
var/wait = null
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
||||
|
||||
|
||||
/obj/machinery/computer/pandemic/set_broken()
|
||||
icon_state = (src.beaker?"mixer1_b":"mixer0_b")
|
||||
stat |= BROKEN
|
||||
|
||||
|
||||
/obj/machinery/computer/pandemic/power_change()
|
||||
..()
|
||||
if(stat & BROKEN)
|
||||
icon_state = (src.beaker?"mixer1_b":"mixer0_b")
|
||||
|
||||
else if(!(stat & NOPOWER))
|
||||
icon_state = (src.beaker?"mixer1":"mixer0")
|
||||
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
src.icon_state = (src.beaker?"mixer1_nopower":"mixer0_nopower")
|
||||
|
||||
|
||||
/obj/machinery/computer/pandemic/Topic(href, href_list)
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
if(usr.stat || usr.restrained()) return
|
||||
if(!in_range(src, usr)) return
|
||||
|
||||
usr.set_machine(src)
|
||||
if(!beaker) return
|
||||
|
||||
if (href_list["create_vaccine"])
|
||||
if(!src.wait)
|
||||
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
|
||||
if(B)
|
||||
var/path = href_list["create_vaccine"]
|
||||
var/vaccine_type = text2path(path)
|
||||
var/datum/disease/D = null
|
||||
|
||||
if(!vaccine_type)
|
||||
D = archive_diseases[path]
|
||||
vaccine_type = path
|
||||
else
|
||||
if(vaccine_type in diseases)
|
||||
D = new vaccine_type(0, null)
|
||||
|
||||
if(D)
|
||||
B.name = "[D.name] vaccine bottle"
|
||||
B.reagents.add_reagent("vaccine",15,vaccine_type)
|
||||
wait = 1
|
||||
var/datum/reagents/R = beaker.reagents
|
||||
var/datum/reagent/blood/Blood = null
|
||||
for(var/datum/reagent/blood/L in R.reagent_list)
|
||||
if(L)
|
||||
Blood = L
|
||||
break
|
||||
var/list/res = Blood.data["resistances"]
|
||||
spawn(res.len*200)
|
||||
src.wait = null
|
||||
else
|
||||
src.temphtml = "The replicator is not ready yet."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["create_virus_culture"])
|
||||
if(!wait)
|
||||
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
|
||||
B.icon_state = "bottle-1"
|
||||
var/type = text2path(href_list["create_virus_culture"])//the path is received as string - converting
|
||||
var/datum/disease/D = null
|
||||
if(!type)
|
||||
var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]]
|
||||
if(A)
|
||||
D = new A.type(0, A)
|
||||
else
|
||||
if(type in diseases) // Make sure this is a disease
|
||||
D = new type(0, null)
|
||||
var/list/data = list("viruses"=list(D))
|
||||
var/name = sanitizeSafe(input(usr,"Name:","Name the culture",D.name), MAX_NAME_LEN)
|
||||
if(!name || name == " ") name = D.name
|
||||
B.name = "[name] culture bottle"
|
||||
B.desc = "A small bottle. Contains [D.agent] culture in synthblood medium."
|
||||
B.reagents.add_reagent("blood",20,data)
|
||||
B.update_icon()
|
||||
src.updateUsrDialog()
|
||||
wait = 1
|
||||
spawn(1000)
|
||||
src.wait = null
|
||||
else
|
||||
src.temphtml = "The replicator is not ready yet."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["empty_beaker"])
|
||||
beaker.reagents.clear_reagents()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["eject"])
|
||||
beaker:loc = src.loc
|
||||
beaker = null
|
||||
icon_state = "mixer0"
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if(href_list["clear"])
|
||||
src.temphtml = ""
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if(href_list["name_disease"])
|
||||
var/new_name = sanitizeSafe(input(usr, "Name the Disease", "New Name", ""), MAX_NAME_LEN)
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
if(usr.stat || usr.restrained()) return
|
||||
if(!in_range(src, usr)) return
|
||||
var/id = href_list["name_disease"]
|
||||
if(archive_diseases[id])
|
||||
var/datum/disease/advance/A = archive_diseases[id]
|
||||
A.AssignName(new_name)
|
||||
for(var/datum/disease/advance/AD in active_diseases)
|
||||
AD.Refresh()
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
else
|
||||
usr << browse(null, "window=pandemic")
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/machinery/computer/pandemic/attack_ai(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/computer/pandemic/attack_hand(mob/user as mob)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
if(src.temphtml)
|
||||
dat = "[src.temphtml]<BR><BR><A href='?src=\ref[src];clear=1'>Main Menu</A>"
|
||||
else if(!beaker)
|
||||
dat += "Please insert beaker.<BR>"
|
||||
dat += "<A href='?src=\ref[user];mach_close=pandemic'>Close</A>"
|
||||
else
|
||||
var/datum/reagents/R = beaker.reagents
|
||||
var/datum/reagent/blood/Blood = null
|
||||
for(var/datum/reagent/blood/B in R.reagent_list)
|
||||
if(B)
|
||||
Blood = B
|
||||
break
|
||||
if(!R.total_volume||!R.reagent_list.len)
|
||||
dat += "The beaker is empty<BR>"
|
||||
else if(!Blood)
|
||||
dat += "No blood sample found in beaker"
|
||||
else if(!Blood.data)
|
||||
dat += "No blood data found in beaker."
|
||||
else
|
||||
dat += "<h3>Blood sample data:</h3>"
|
||||
dat += "<b>Blood DNA:</b> [(Blood.data["blood_DNA"]||"none")]<BR>"
|
||||
dat += "<b>Blood Type:</b> [(Blood.data["blood_type"]||"none")]<BR>"
|
||||
|
||||
|
||||
if(Blood.data["viruses"])
|
||||
var/list/vir = Blood.data["viruses"]
|
||||
if(vir.len)
|
||||
for(var/datum/disease/D in Blood.data["viruses"])
|
||||
if(!D.hidden[PANDEMIC])
|
||||
|
||||
|
||||
var/disease_creation = D.type
|
||||
if(istype(D, /datum/disease/advance))
|
||||
|
||||
var/datum/disease/advance/A = D
|
||||
D = archive_diseases[A.GetDiseaseID()]
|
||||
disease_creation = A.GetDiseaseID()
|
||||
if(D.name == "Unknown")
|
||||
dat += "<b><a href='?src=\ref[src];name_disease=[A.GetDiseaseID()]'>Name Disease</a></b><BR>"
|
||||
|
||||
if(!D)
|
||||
CRASH("We weren't able to get the advance disease from the archive.")
|
||||
|
||||
dat += "<b>Disease Agent:</b> [D?"[D.agent] - <A href='?src=\ref[src];create_virus_culture=[disease_creation]'>Create virus culture bottle</A>":"none"]<BR>"
|
||||
dat += "<b>Common name:</b> [(D.name||"none")]<BR>"
|
||||
dat += "<b>Description: </b> [(D.desc||"none")]<BR>"
|
||||
dat += "<b>Spread:</b> [(D.spread||"none")]<BR>"
|
||||
dat += "<b>Possible cure:</b> [(D.cure||"none")]<BR><BR>"
|
||||
|
||||
if(istype(D, /datum/disease/advance))
|
||||
var/datum/disease/advance/A = D
|
||||
dat += "<b>Symptoms:</b> "
|
||||
var/english_symptoms = list()
|
||||
for(var/datum/symptom/S in A.symptoms)
|
||||
english_symptoms += S.name
|
||||
dat += english_list(english_symptoms)
|
||||
|
||||
|
||||
dat += "<BR><b>Contains antibodies to:</b> "
|
||||
if(Blood.data["resistances"])
|
||||
var/list/res = Blood.data["resistances"]
|
||||
if(res.len)
|
||||
dat += "<ul>"
|
||||
for(var/type in Blood.data["resistances"])
|
||||
var/disease_name = "Unknown"
|
||||
|
||||
if(!ispath(type))
|
||||
var/datum/disease/advance/A = archive_diseases[type]
|
||||
if(A)
|
||||
disease_name = A.name
|
||||
else
|
||||
var/datum/disease/D = new type(0, null)
|
||||
disease_name = D.name
|
||||
|
||||
dat += "<li>[disease_name] - <A href='?src=\ref[src];create_vaccine=[type]'>Create vaccine bottle</A></li>"
|
||||
dat += "</ul><BR>"
|
||||
else
|
||||
dat += "nothing<BR>"
|
||||
else
|
||||
dat += "nothing<BR>"
|
||||
dat += "<BR><A href='?src=\ref[src];eject=1'>Eject beaker</A>[((R.total_volume&&R.reagent_list.len) ? "-- <A href='?src=\ref[src];empty_beaker=1'>Empty beaker</A>":"")]<BR>"
|
||||
dat += "<A href='?src=\ref[user];mach_close=pandemic'>Close</A>"
|
||||
|
||||
user << browse("<TITLE>[src.name]</TITLE><BR>[dat]", "window=pandemic;size=575x400")
|
||||
onclose(user, "pandemic")
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
if(src.beaker)
|
||||
user << "A beaker is already loaded into the machine."
|
||||
return
|
||||
|
||||
src.beaker = I
|
||||
user.drop_item()
|
||||
I.loc = src
|
||||
user << "You add the beaker to the machine!"
|
||||
src.updateUsrDialog()
|
||||
icon_state = "mixer1"
|
||||
|
||||
else
|
||||
..()
|
||||
return
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
/obj/machinery/reagentgrinder
|
||||
|
||||
name = "All-In-One Grinder"
|
||||
|
||||
@@ -23,23 +23,6 @@
|
||||
t["virus2"] = v.Copy()
|
||||
return t
|
||||
|
||||
/datum/reagent/blood/mix_data(var/newdata, var/newamount) // You have a reagent with data, and new reagent with its own data get added, how do you deal with that?
|
||||
if(data["viruses"] || newdata["viruses"])
|
||||
var/list/mix1 = data["viruses"]
|
||||
var/list/mix2 = newdata["viruses"]
|
||||
var/list/to_mix = list() // Stop issues with the list changing during mixing.
|
||||
for(var/datum/disease/advance/AD in mix1)
|
||||
to_mix += AD
|
||||
for(var/datum/disease/advance/AD in mix2)
|
||||
to_mix += AD
|
||||
var/datum/disease/advance/AD = Advance_Mix(to_mix)
|
||||
if(AD)
|
||||
var/list/preserve = list(AD)
|
||||
for(var/D in data["viruses"])
|
||||
if(!istype(D, /datum/disease/advance))
|
||||
preserve += D
|
||||
data["viruses"] = preserve
|
||||
|
||||
/datum/reagent/blood/touch_turf(var/turf/simulated/T)
|
||||
if(!istype(T) || volume < 3)
|
||||
return
|
||||
@@ -55,12 +38,6 @@
|
||||
M.adjustToxLoss(removed)
|
||||
if(dose > 15)
|
||||
M.adjustToxLoss(removed)
|
||||
if(data && data["viruses"])
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS)
|
||||
continue
|
||||
if(D.spread_type in list(CONTACT_FEET, CONTACT_HANDS, CONTACT_GENERAL))
|
||||
M.contract_disease(D)
|
||||
if(data && data["virus2"])
|
||||
var/list/vlist = data["virus2"]
|
||||
if(vlist.len)
|
||||
@@ -74,12 +51,6 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.isSynthetic())
|
||||
return
|
||||
if(data && data["viruses"])
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS)
|
||||
continue
|
||||
if(D.spread_type in list(CONTACT_FEET, CONTACT_HANDS, CONTACT_GENERAL))
|
||||
M.contract_disease(D)
|
||||
if(data && data["virus2"])
|
||||
var/list/vlist = data["virus2"]
|
||||
if(vlist.len)
|
||||
@@ -94,26 +65,6 @@
|
||||
M.inject_blood(src, volume)
|
||||
remove_self(volume)
|
||||
|
||||
/datum/reagent/vaccine
|
||||
name = "Vaccine"
|
||||
id = "vaccine"
|
||||
reagent_state = LIQUID
|
||||
color = "#C81040"
|
||||
|
||||
/datum/reagent/vaccine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(data)
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(istype(D, /datum/disease/advance))
|
||||
var/datum/disease/advance/A = D
|
||||
if(A.GetDiseaseID() == data)
|
||||
D.cure()
|
||||
else
|
||||
if(D.type == data)
|
||||
D.cure()
|
||||
|
||||
M.resistances += data
|
||||
return
|
||||
|
||||
// pure concentrated antibodies
|
||||
/datum/reagent/antibodies
|
||||
data = list("antibodies"=list())
|
||||
|
||||
@@ -141,11 +141,6 @@
|
||||
M.confused = 0
|
||||
M.sleeping = 0
|
||||
M.jitteriness = 0
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
D.spread = "Remissive"
|
||||
D.stage--
|
||||
if(D.stage < 1)
|
||||
D.cure()
|
||||
|
||||
/datum/reagent/gold
|
||||
name = "Gold"
|
||||
|
||||
@@ -500,31 +500,3 @@
|
||||
else
|
||||
new_mob.key = M.key
|
||||
qdel(M)
|
||||
|
||||
/datum/reagent/nanites
|
||||
name = "Nanomachines"
|
||||
id = "nanites"
|
||||
description = "Microscopic construction robots."
|
||||
reagent_state = LIQUID
|
||||
color = "#535E66"
|
||||
|
||||
/datum/reagent/nanites/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(prob(10))
|
||||
M.contract_disease(new /datum/disease/robotic_transformation(0), 1) //What
|
||||
|
||||
/datum/reagent/nanites/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.contract_disease(new /datum/disease/robotic_transformation(0), 1)
|
||||
|
||||
/datum/reagent/xenomicrobes
|
||||
name = "Xenomicrobes"
|
||||
id = "xenomicrobes"
|
||||
description = "Microbes with an entirely alien cellular structure."
|
||||
reagent_state = LIQUID
|
||||
color = "#535E66"
|
||||
|
||||
/datum/reagent/xenomicrobes/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(prob(10))
|
||||
M.contract_disease(new /datum/disease/xeno_transformation(0), 1)
|
||||
|
||||
/datum/reagent/xenomicrobes/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.contract_disease(new /datum/disease/xeno_transformation(0), 1)
|
||||
|
||||
@@ -825,8 +825,6 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 2)
|
||||
if(prob(5))
|
||||
reagents.add_reagent("nanites", 2)
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/roburgerbig
|
||||
@@ -838,7 +836,6 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nanites", 100)
|
||||
bitesize = 0.1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/xenoburger
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
/obj/machinery/dna_scannernew,
|
||||
/obj/item/weapon/grenade/chem_grenade,
|
||||
/mob/living/bot/medbot,
|
||||
/obj/machinery/computer/pandemic,
|
||||
/obj/item/weapon/storage/secure/safe,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/machinery/disease2/incubator,
|
||||
|
||||
@@ -154,184 +154,6 @@
|
||||
reagents.add_reagent("diethylamine", 60)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
|
||||
name = "Flu virion culture bottle"
|
||||
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/advance/flu(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
|
||||
name = "Epiglottis virion culture bottle"
|
||||
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/advance/voice_change(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
|
||||
name = "Liver enhancement virion culture bottle"
|
||||
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/advance/heal(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
|
||||
name = "Hullucigen virion culture bottle"
|
||||
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/advance/hullucigen(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
|
||||
name = "Pierrot's Throat culture bottle"
|
||||
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/pierrot_throat(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/cold
|
||||
name = "Rhinovirus culture bottle"
|
||||
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/advance/F = new /datum/disease/advance/cold(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/random
|
||||
name = "Random culture bottle"
|
||||
desc = "A small bottle. Contains a random disease."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/advance/F = new(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/retrovirus
|
||||
name = "Retrovirus culture bottle"
|
||||
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/dna_retrovirus(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/gbs
|
||||
name = "GBS culture bottle"
|
||||
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
amount_per_transfer_from_this = 5
|
||||
|
||||
New()
|
||||
var/datum/reagents/R = new/datum/reagents(20)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
var/datum/disease/F = new /datum/disease/gbs
|
||||
var/list/data = list("virus"= F)
|
||||
R.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
|
||||
name = "GBS culture bottle"
|
||||
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/fake_gbs(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
/*
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/rhumba_beat
|
||||
name = "Rhumba Beat culture bottle"
|
||||
desc = "A small bottle. Contains The Rhumba Beat culture in synthblood medium."//Or simply - General BullShit
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
amount_per_transfer_from_this = 5
|
||||
|
||||
New()
|
||||
var/datum/reagents/R = new/datum/reagents(20)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
var/datum/disease/F = new /datum/disease/rhumba_beat
|
||||
var/list/data = list("virus"= F)
|
||||
R.add_reagent("blood", 20, data)
|
||||
*/
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
|
||||
name = "Brainrot culture bottle"
|
||||
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/brainrot(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
|
||||
name = "Magnitis culture bottle"
|
||||
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/magnitis(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
|
||||
name = "Wizarditis culture bottle"
|
||||
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle-4"
|
||||
New()
|
||||
..()
|
||||
var/datum/disease/F = new /datum/disease/wizarditis(0)
|
||||
var/list/data = list("viruses"= list(F))
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pacid
|
||||
name = "Polytrinic Acid Bottle"
|
||||
desc = "A small bottle. Contains a small amount of Polytrinic Acid"
|
||||
|
||||
@@ -779,12 +779,6 @@ CIRCUITS BELOW
|
||||
build_path = /obj/item/weapon/circuitboard/operating
|
||||
sort_string = "FACAA"
|
||||
|
||||
/datum/design/circuit/pandemic
|
||||
name = "PanD.E.M.I.C. 2200"
|
||||
id = "pandemic"
|
||||
build_path = /obj/item/weapon/circuitboard/pandemic
|
||||
sort_string = "FAEAA"
|
||||
|
||||
/datum/design/circuit/scan_console
|
||||
name = "DNA machine"
|
||||
id = "scan_console"
|
||||
|
||||
Reference in New Issue
Block a user