diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm new file mode 100644 index 00000000000..19fed9d99db --- /dev/null +++ b/code/datums/diseases/tuberculosis.dm @@ -0,0 +1,62 @@ +/datum/disease/tuberculosis + name = "Fungal tuberculosis" + max_stages = 4 + spread_text = "Airborne" + cure_text = "Spaceacillin & salbutamol" + cures = list("spaceacillin", "salbutamol") + agent = "Fungal Tubercle bacillus Cosmosis" + viable_mobtypes = list(/mob/living/carbon/human) + cure_chance = 5//like hell are you getting out of hell + desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue." + required_organs = list(/obj/item/organ/limb/head) + severity = DANGEROUS + +/datum/disease/tuberculosis/stage_act() //it begins + ..() + + switch(stage) + if(2) + if(prob(2)) + affected_mob.emote("cough") + affected_mob << "Your chest hurts." + if(prob(2)) + affected_mob << "Your stomach violently rumbles!" + if(prob(2)) + affected_mob << "You feel a sharp pain from your lower chest!" + affected_mob.adjustOxyLoss(5) + affected_mob.emote("gasp") + if(prob(5)) + affected_mob.vomit(20) + if(3) + if(prob(2)) + affected_mob << "You see four of everything" + affected_mob.Dizzy(5) + if(prob(2)) + affected_mob << "You feel a cold sweat form." + if(prob(10)) + affected_mob << "You feel air escape from your lungs painfully." + affected_mob.adjustOxyLoss(25) + affected_mob.emote("gasp") + + if(4) + if(prob(2)) + affected_mob << "[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]" + affected_mob.adjustStaminaLoss(70) + if(prob(10)) + affected_mob.adjustStaminaLoss(100) + affected_mob.visible_message("[affected_mob] faints!", "You surrender yourself and feel at peace...") + affected_mob.sleeping += 5 + if(prob(2)) + affected_mob << "You feel your mind relax and your thoughts drift!" + affected_mob.confused = min(100, affected_mob.confused + 8) + if(prob(15)) + affected_mob.vomit(0, 1) + if(prob(3)) + affected_mob << "[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]" + affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0) + affected_mob.nutrition = max(affected_mob.nutrition - 100, 0) + if(prob(15)) + affected_mob << "[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]" + affected_mob.bodytemperature += 40 + return + diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index e8fa9613def..b79afa72ee4 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -292,6 +292,14 @@ var/list/uplink_items = list() gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) surplus = 0 +/datum/uplink_item/stealthy_weapons/operator_virus_grenade + name = "Fungal Tuberculosis grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing the BVAK solution." + item = /obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade + cost = 12 + surplus = 35 + gamemodes = list(/datum/game_mode/nuclear) + /datum/uplink_item/dangerous/gygax name = "Gygax Exosuit" desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent for hit-and-run style attacks. \ @@ -549,6 +557,14 @@ var/list/uplink_items = list() cost = 1 surplus = 50 +/datum/uplink_item/stealthy_weapons/traitor_virus_kit + name = "Virus Kit" + desc = "An active fungal pathogen in a sterile, compact box. Comes with one Bio Virus Antidote Kit (BVAK) autoinjector for rapid application on up to two targets each, a syringe, and a bottle containing the BVAK solution." + item = /obj/item/weapon/storage/box/syndie_kit/tuberculosiskit + cost = 20 //because nobody knows jack shit about virology + surplus = 50 + excludefrom = list(/datum/game_mode/nuclear) + /datum/uplink_item/stealthy_weapons/traitor_chem_bottle name = "Poison Kit" desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index a6a525541d5..f7037ee5516 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -441,6 +441,25 @@ beakers += B1 beakers += B2 +/obj/item/weapon/grenade/chem_grenade/tuberculosis + name = "Fungal tuberculosis grenade" + desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/tuberculosis/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("potassium", 50) + B1.reagents.add_reagent("phosphorus", 50) + B1.reagents.add_reagent("fungalspores", 200) + B2.reagents.add_reagent("blood", 250) + B2.reagents.add_reagent("sugar", 50) + + beakers += B1 + beakers += B2 + #undef EMPTY #undef WIRED #undef READY diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 2ccaa9071f0..46963c125f5 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -240,3 +240,32 @@ new /obj/item/weapon/screwdriver/nuke(src) new /obj/item/nuke_core_container(src) new /obj/item/weapon/paper/nuke_instructions(src) + + +/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade + name = "boxed virus grenade kit" + +/obj/item/weapon/storage/box/virus_kit/tuberculosisgrenade/New() + ..() + new /obj/item/weapon/grenade/chem_grenade/tuberculosis + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/syringe + new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure + return + +/obj/item/weapon/storage/box/syndie_kit/tuberculosiskit + name = "boxed virus kit" + +/obj/item/weapon/storage/box/virus_kit/tuberculosiskit/New() + ..() + new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosis + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + new /obj/item/weapon/reagent_containers/syringe + new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure + return + + diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11d169070d1..a1eb743a34e 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -763,6 +763,16 @@ if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) M.ContractDisease(new /datum/disease/transformation/xeno(0)) +/datum/reagent/fungalspores + name = "Tubercle bacillus Cosmosis microbes" + id = "fungalspores" + description = "Active fungal spores." + color = "#92D17D" // rgb: 146, 209, 125 + +/datum/reagent/fungalspores/reaction_mob(mob/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) + if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) + M.ForceContractDisease(new /datum/disease/tuberculosis(0)) + /datum/reagent/fluorosurfactant//foam precursor name = "Fluorosurfactant" id = "fluorosurfactant" diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 1ac7629b5bd..36b9eb2ed21 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -296,4 +296,16 @@ name = "Spanish flu culture bottle" desc = "A small bottle. Contains a sample of Inquisitius." icon_state = "bottle3" - spawned_disease = /datum/disease/fluspanish \ No newline at end of file + spawned_disease = /datum/disease/fluspanish + +/obj/item/weapon/reagent_containers/glass/bottle/tuberculosis + name = "Fungal Tuberculosis culture bottle" + desc = "A small bottle. Contains a sample of Fungal Tubercle bacillus." + icon_state = "bottle3" + spawned_disease = /datum/disease/tuberculosis + +/obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure + name = "BVAK bottle" + desc = "A small bottle containing Bio Virus Antidote Kit." + icon_state = "bottle5" + list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index df207b0b3cf..090942bf0e6 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -112,3 +112,11 @@ name = "morphine medipen" desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." list_reagents = list("morphine" = 10) + +/obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure + name = "BVAK autoinjector" + desc = "Bio Virus Antidote Kit autoinjector. Has a two use system for yourself, and someone else. Inject when infected." + icon_state = "stimpen" + volume = 60 + amount_per_transfer_from_this = 30 + list_reagents = list("atropine" = 10, "epinephrine" = 10, "salbutamol" = 20, "spaceacillin" = 20) diff --git a/tgstation.dme b/tgstation.dme index e246757c731..c41f946fcbb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -208,6 +208,7 @@ #include "code\datums\diseases\retrovirus.dm" #include "code\datums\diseases\rhumba_beat.dm" #include "code\datums\diseases\transformation.dm" +#include "code\datums\diseases\tuberculosis.dm" #include "code\datums\diseases\wizarditis.dm" #include "code\datums\diseases\advance\advance.dm" #include "code\datums\diseases\advance\presets.dm"