From 74ed605cd7cd5c0bdb1fd73b70dcb7c5c121d3fe Mon Sep 17 00:00:00 2001
From: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
Date: Thu, 22 Aug 2019 20:30:16 -0400
Subject: [PATCH] Cobbduceus Part 1/X: Category Twos, Base(d) Healers (#45749)
* 150 hours
* it compiles guys
* PERF
* meta conflictor
* oldcabin
* Revert "meta conflictor"
This reverts commit 812343ca615e5b00711786be4413ce3301cfcc90.
* oldmeta
* TAKE 5000
* NAME THIS
Also redoes Multiver/Palletta
* FRICK U FIZ
* NERF PERF
* comment cringe
* Checks for restraints/incapacitated for ichiyuri
* URIKA
Removes Healing-Scaling of Ichiyuri, Nerfs Healing of Aiuri.
* organ
* please upvote this
* maps...
* Gives Instabitaluri a Brand Name
Oh wow it's synthflesh :laughing:
* Update cat2_medicine_reagents.dm
* what kinda characters is Krys using
---
.../lavaland_surface_syndicate_base1.dmm | 2 +-
_maps/RandomRuins/SpaceRuins/deepstorage.dmm | 2 +-
_maps/RandomZLevels/SnowCabin.dmm | 6 +-
_maps/map_files/BoxStation/BoxStation.dmm | 6 +-
.../map_files/Deltastation/DeltaStation2.dmm | 14 +-
_maps/map_files/Donutstation/Donutstation.dmm | 4 +-
_maps/map_files/MetaStation/MetaStation.dmm | 18 +-
_maps/map_files/PubbyStation/PubbyStation.dmm | 4 +-
_maps/map_files/generic/CentCom.dmm | 12 +-
_maps/shuttles/emergency_delta.dmm | 4 +-
_maps/shuttles/emergency_donut.dmm | 4 +-
_maps/shuttles/emergency_kilo.dmm | 2 +-
_maps/shuttles/emergency_meta.dmm | 4 +-
_maps/shuttles/emergency_raven.dmm | 4 +-
_maps/shuttles/emergency_wabbajack.dmm | 2 +-
_maps/shuttles/infiltrator_advanced.dmm | 2 +-
_maps/shuttles/infiltrator_basic.dmm | 4 +-
_maps/shuttles/whiteship_box.dmm | 2 +-
_maps/shuttles/whiteship_delta.dmm | 2 +-
code/datums/diseases/advance/advance.dm | 2 +-
code/datums/diseases/tuberculosis.dm | 2 +-
code/datums/status_effects/buffs.dm | 2 +-
code/game/machinery/Sleeper.dm | 6 +-
code/game/machinery/limbgrower.dm | 20 +-
.../mecha/equipment/tools/medical_tools.dm | 2 +-
code/game/objects/items/stacks/medical.dm | 4 +-
code/game/objects/items/storage/boxes.dm | 2 +-
code/game/objects/items/storage/firstaid.dm | 38 +-
.../crates_lockers/closets/secure/medical.dm | 2 +-
code/modules/cargo/bounties/reagent.dm | 2 +-
code/modules/cargo/packs.dm | 2 +-
code/modules/events/vent_clog.dm | 2 +-
.../kitchen_machinery/smartfridge.dm | 4 +-
code/modules/hydroponics/grown/ambrosia.dm | 2 +-
code/modules/hydroponics/grown/berries.dm | 2 +-
code/modules/hydroponics/grown/flowers.dm | 2 +-
code/modules/hydroponics/grown/kudzu.dm | 2 +-
code/modules/hydroponics/grown/mushrooms.dm | 2 +-
code/modules/hydroponics/hydroponics.dm | 4 +-
.../carbon/human/species_types/synths.dm | 4 +-
.../mob/living/simple_animal/bot/medbot.dm | 12 +-
code/modules/reagents/chemistry/reagents.dm | 1 +
.../reagents/cat2_medicine_reagents.dm | 286 +++++++
.../chemistry/reagents/medicine_reagents.dm | 339 +-------
.../chemistry/reagents/toxin_reagents.dm | 1 +
.../chemistry/recipes/cat2_medicines.dm | 69 ++
.../reagents/chemistry/recipes/medicine.dm | 69 +-
.../reagents/chemistry/recipes/others.dm | 6 +-
.../chemistry/recipes/pyrotechnics.dm | 2 +-
.../reagents/chemistry/recipes/toxins.dm | 4 +-
.../reagents/reagent_containers/borghydro.dm | 742 +++++++++---------
.../reagents/reagent_containers/bottle.dm | 10 +-
.../reagents/reagent_containers/glass.dm | 22 +-
.../reagents/reagent_containers/hypospray.dm | 2 +-
.../reagents/reagent_containers/medigel.dm | 24 +-
.../reagents/reagent_containers/patch.dm | 22 +-
.../reagents/reagent_containers/pill.dm | 6 +-
.../reagents/reagent_containers/syringes.dm | 24 +-
.../research/designs/limbgrower_designs.dm | 10 +-
code/modules/vending/medical.dm | 16 +-
code/modules/vending/medical_wall.dm | 14 +-
tgstation.dme | 2 +
62 files changed, 937 insertions(+), 952 deletions(-)
create mode 100644 code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
create mode 100644 code/modules/reagents/chemistry/recipes/cat2_medicines.dm
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
index c2eaca17a52..7d9f84fabfa 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
@@ -278,7 +278,7 @@
pixel_y = -2
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/epinephrine,
diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
index 64d7a8741ae..fd7e8f7e2fc 100644
--- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -1905,7 +1905,7 @@
pixel_y = 4
},
/obj/item/storage/firstaid/toxin,
-/obj/item/storage/pill_bottle/charcoal,
+/obj/item/storage/pill_bottle/multiver,
/obj/machinery/light,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/deepstorage/armory)
diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm
index 243a615e141..a714371d4b7 100644
--- a/_maps/RandomZLevels/SnowCabin.dmm
+++ b/_maps/RandomZLevels/SnowCabin.dmm
@@ -1102,7 +1102,7 @@
/area/awaymission/cabin/snowforest/sovietsurface)
"dr" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/reagent_containers/pill/patch/styptic,
+/obj/item/reagent_containers/pill/patch/libital,
/turf/open/floor/plating/snowed/temperatre,
/area/awaymission/cabin/snowforest/sovietsurface)
"ds" = (
@@ -1283,7 +1283,7 @@
/turf/open/floor/plating/snowed/temperatre,
/area/awaymission/cabin/snowforest/sovietsurface)
"dW" = (
-/obj/item/reagent_containers/pill/patch/styptic,
+/obj/item/reagent_containers/pill/patch/libital,
/turf/open/floor/plating/snowed/temperatre,
/area/awaymission/cabin/snowforest/sovietsurface)
"dX" = (
@@ -3113,7 +3113,7 @@
/area/awaymission/cabin/snowforest/sovietsurface)
"hY" = (
/obj/effect/decal/cleanable/blood/gibs,
-/obj/item/reagent_containers/pill/patch/styptic,
+/obj/item/reagent_containers/pill/patch/libital,
/turf/open/floor/plating/snowed/temperatre,
/area/awaymission/cabin/snowforest/sovietsurface)
"hZ" = (
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 352fef333cd..7e4679bac5b 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -3384,7 +3384,7 @@
/obj/item/reagent_containers/syringe{
name = "steel point"
},
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/machinery/light{
dir = 8
@@ -41748,7 +41748,7 @@
pixel_y = 4
},
/obj/item/stock_parts/cell/high/plus,
-/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/item/reagent_containers/pill/patch/aiuri,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -49809,7 +49809,7 @@
/area/space/nearstation)
"gZG" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/item/reagent_containers/glass/beaker/instabitaluri,
/turf/open/floor/plasteel/white/side{
dir = 8
},
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 9eeb41803f2..fe72fd65b2e 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -19113,7 +19113,7 @@
/obj/structure/table/reinforced,
/obj/item/clipboard,
/obj/item/folder/yellow,
-/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/item/reagent_containers/pill/patch/aiuri,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -32314,7 +32314,7 @@
/obj/structure/table/glass,
/obj/item/storage/firstaid/regular,
/obj/item/reagent_containers/glass/bottle/epinephrine,
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/syringe,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -52225,7 +52225,7 @@
/obj/item/cartridge/engineering{
pixel_y = 6
},
-/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/item/reagent_containers/pill/patch/aiuri,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -70651,7 +70651,7 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/reagent_containers/syringe/charcoal,
+/obj/item/reagent_containers/syringe/multiver,
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
use_power = 0
@@ -78108,7 +78108,7 @@
/area/medical/medbay/central)
"cPq" = (
/obj/structure/table,
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/epinephrine,
@@ -83882,7 +83882,7 @@
"cZy" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/epinephrine,
@@ -87259,7 +87259,7 @@
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/plasma,
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/epinephrine,
diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm
index 334f66086e5..0caf4b28aff 100644
--- a/_maps/map_files/Donutstation/Donutstation.dmm
+++ b/_maps/map_files/Donutstation/Donutstation.dmm
@@ -12901,7 +12901,7 @@
pixel_y = 3
},
/obj/item/storage/firstaid/regular,
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/item/reagent_containers/syringe,
/turf/open/floor/plasteel/white,
@@ -14590,7 +14590,7 @@
/area/medical/surgery)
"aKl" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/item/reagent_containers/glass/beaker/instabitaluri,
/turf/open/floor/plasteel/white/side{
dir = 8
},
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 7a9253b2ab6..cbdd7a70f64 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -5828,7 +5828,7 @@
/obj/structure/table,
/obj/item/storage/firstaid/regular,
/obj/item/reagent_containers/glass/bottle/epinephrine,
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/syringe,
/obj/structure/extinguisher_cabinet{
pixel_x = -27
@@ -23415,7 +23415,7 @@
/obj/structure/table/reinforced,
/obj/item/folder/yellow,
/obj/item/stamp/ce,
-/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/item/reagent_containers/pill/patch/aiuri,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -42114,7 +42114,7 @@
/obj/structure/rack,
/obj/item/stack/medical/ointment,
/obj/item/stack/medical/bruise_pack,
-/obj/item/reagent_containers/syringe/charcoal,
+/obj/item/reagent_containers/syringe/multiver,
/obj/item/reagent_containers/syringe/epinephrine{
pixel_x = -1;
pixel_y = 2
@@ -46502,7 +46502,7 @@
pixel_x = 8;
pixel_y = 2
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -5
},
/obj/item/reagent_containers/glass/bottle/morphine,
@@ -47136,7 +47136,7 @@
pixel_x = 7;
pixel_y = -3
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -4;
pixel_y = -3
},
@@ -48023,7 +48023,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/item/reagent_containers/glass/beaker/instabitaluri,
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -52368,7 +52368,7 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -5
},
/obj/item/reagent_containers/syringe/epinephrine,
@@ -53069,7 +53069,7 @@
pixel_x = 7;
pixel_y = 2
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -2;
pixel_y = -1
},
@@ -53494,7 +53494,7 @@
pixel_x = -4;
pixel_y = 12
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 7;
pixel_y = 12
},
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index f80c5f9befa..903f0dfee70 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -3872,7 +3872,7 @@
/obj/item/reagent_containers/syringe{
name = "steel point"
},
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -33970,7 +33970,7 @@
/area/medical/medbay/central)
"bHb" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/item/reagent_containers/glass/beaker/instabitaluri,
/obj/machinery/newscaster/security_unit{
pixel_y = 32
},
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index e443cac4dc9..9142d076aa8 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -12104,14 +12104,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
@@ -12884,7 +12884,7 @@
/area/centcom/control)
"Da" = (
/obj/structure/table/reinforced,
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
@@ -17435,9 +17435,9 @@
/obj/machinery/iv_drip,
/obj/item/roller,
/obj/item/storage/firstaid/regular,
-/obj/item/reagent_containers/medigel/synthflesh,
-/obj/item/reagent_containers/medigel/synthflesh,
-/obj/item/reagent_containers/medigel/synthflesh,
+/obj/item/reagent_containers/medigel/instabitaluri,
+/obj/item/reagent_containers/medigel/instabitaluri,
+/obj/item/reagent_containers/medigel/instabitaluri,
/turf/open/floor/wood,
/area/centcom/holding)
"Qj" = (
diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm
index f1624c0c3e1..d0b66ee2330 100644
--- a/_maps/shuttles/emergency_delta.dmm
+++ b/_maps/shuttles/emergency_delta.dmm
@@ -232,14 +232,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
diff --git a/_maps/shuttles/emergency_donut.dmm b/_maps/shuttles/emergency_donut.dmm
index 2d4f64ed6c8..5cf8b4869df 100644
--- a/_maps/shuttles/emergency_donut.dmm
+++ b/_maps/shuttles/emergency_donut.dmm
@@ -412,14 +412,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm
index 67424936105..8f9b175881a 100644
--- a/_maps/shuttles/emergency_kilo.dmm
+++ b/_maps/shuttles/emergency_kilo.dmm
@@ -1629,7 +1629,7 @@
/obj/item/reagent_containers/hypospray/medipen{
pixel_y = -6
},
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"cY" = (
diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm
index b9a5697c253..814a9caa7ba 100644
--- a/_maps/shuttles/emergency_meta.dmm
+++ b/_maps/shuttles/emergency_meta.dmm
@@ -450,14 +450,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm
index 3680071c9b2..32b4abbf4aa 100644
--- a/_maps/shuttles/emergency_raven.dmm
+++ b/_maps/shuttles/emergency_raven.dmm
@@ -764,14 +764,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm
index 46079525d4f..95c96c908cd 100644
--- a/_maps/shuttles/emergency_wabbajack.dmm
+++ b/_maps/shuttles/emergency_wabbajack.dmm
@@ -295,7 +295,7 @@
pixel_x = 2;
pixel_y = 2
},
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aU" = (
diff --git a/_maps/shuttles/infiltrator_advanced.dmm b/_maps/shuttles/infiltrator_advanced.dmm
index bf9f7dc44cf..884ebe4a454 100644
--- a/_maps/shuttles/infiltrator_advanced.dmm
+++ b/_maps/shuttles/infiltrator_advanced.dmm
@@ -620,7 +620,7 @@
/obj/item/reagent_containers/hypospray/medipen{
pixel_y = -6
},
-/obj/item/reagent_containers/glass/bottle/charcoal,
+/obj/item/reagent_containers/glass/bottle/multiver,
/obj/structure/table/reinforced,
/obj/machinery/light{
dir = 1
diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm
index 1f8a52e6eff..eea12658511 100644
--- a/_maps/shuttles/infiltrator_basic.dmm
+++ b/_maps/shuttles/infiltrator_basic.dmm
@@ -578,14 +578,14 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = -3;
pixel_y = 8
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = 6;
pixel_y = 8
},
diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm
index bd4b45f6ed6..92aa8cc6b42 100644
--- a/_maps/shuttles/whiteship_box.dmm
+++ b/_maps/shuttles/whiteship_box.dmm
@@ -87,7 +87,7 @@
"am" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/item/reagent_containers/glass/beaker/instabitaluri,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/shuttle/abandoned/medbay)
diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm
index 2be39dcb56e..57243650ffa 100644
--- a/_maps/shuttles/whiteship_delta.dmm
+++ b/_maps/shuttles/whiteship_delta.dmm
@@ -2160,7 +2160,7 @@
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 6
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
+/obj/item/reagent_containers/glass/bottle/multiver{
pixel_x = -3
},
/obj/item/reagent_containers/syringe,
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 790a1f50dac..f9b8de9173f 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -45,7 +45,7 @@
/datum/reagent/consumable/sodiumchloride, /datum/reagent/consumable/sugar, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/milk
),
list( //level 4
- /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/charcoal
+ /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/C2/multiver
),
list( //level 5
/datum/reagent/oil, /datum/reagent/medicine/synaptizine, /datum/reagent/medicine/mannitol, /datum/reagent/drug/space_drugs, /datum/reagent/cryptobiolin
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index 1059e4a8e00..0ad6bf8b9a5 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -4,7 +4,7 @@
max_stages = 5
spread_text = "Airborne"
cure_text = "Spaceacillin & Perfluorodecalin"
- cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/perfluorodecalin)
+ cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/C2/convermol)
agent = "Fungal Tubercle bacillus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 5//like hell are you getting out of hell
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 5771b2cf8f8..1ec07eb0233 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -487,7 +487,7 @@
else
owner.visible_message("[owner]'s soul is absorbed into the rod, relieving the previous snake of its duty.")
var/mob/living/simple_animal/hostile/retaliate/poison/snake/healSnake = new(owner.loc)
- var/list/chems = list(/datum/reagent/medicine/sal_acid, /datum/reagent/medicine/perfluorodecalin, /datum/reagent/medicine/oxandrolone)
+ var/list/chems = list(/datum/reagent/medicine/sal_acid, /datum/reagent/medicine/C2/convermol, /datum/reagent/medicine/oxandrolone)
healSnake.poison_type = pick(chems)
healSnake.name = "Asclepius's Snake"
healSnake.real_name = "Asclepius's Snake"
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 88a7ac4c9a7..83234c6e6f0 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -20,9 +20,9 @@
var/list/available_chems
var/controls_inside = FALSE
var/list/possible_chems = list(
- list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/morphine, /datum/reagent/medicine/perfluorodecalin, /datum/reagent/medicine/sanguiose, /datum/reagent/medicine/frogenite),
+ list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/morphine, /datum/reagent/medicine/C2/convermol, /datum/reagent/medicine/C2/libital, /datum/reagent/medicine/C2/aiuri),
list(/datum/reagent/medicine/oculine,/datum/reagent/medicine/inacusiate),
- list(/datum/reagent/medicine/ferveatium, /datum/reagent/medicine/mutadone, /datum/reagent/medicine/mannitol, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/pen_acid),
+ list(/datum/reagent/medicine/C2/multiver, /datum/reagent/medicine/mutadone, /datum/reagent/medicine/mannitol, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/pen_acid),
list(/datum/reagent/medicine/omnizine)
)
var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: mutadone -> morphine
@@ -282,7 +282,7 @@
desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch."
icon_state = "sleeper_clockwork"
enter_message = "You hear the gentle hum and click of machinery, and are lulled into a sense of peace."
- possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/sanguiose, /datum/reagent/medicine/frogenite, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol))
+ possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/C2/libital, /datum/reagent/medicine/C2/aiuri, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol))
/obj/machinery/sleeper/clockwork/process()
if(occupant && isliving(occupant))
diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm
index d1065c67fd5..4960e3ba409 100644
--- a/code/game/machinery/limbgrower.dm
+++ b/code/game/machinery/limbgrower.dm
@@ -6,7 +6,7 @@
/obj/machinery/limbgrower
name = "limb grower"
- desc = "It grows new limbs using Synthflesh."
+ desc = "It grows new limbs using Synthflesh (Instabitaluri)."
icon = 'icons/obj/machines/limbgrower.dmi'
icon_state = "limbgrower_idleoff"
density = TRUE
@@ -98,10 +98,10 @@
return
- var/synth_cost = being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff
+ var/synth_cost = being_built.reagents_list[/datum/reagent/medicine/C2/instabitaluri]*prod_coeff
var/power = max(2000, synth_cost/5)
- if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff))
+ if(reagents.has_reagent(/datum/reagent/medicine/C2/instabitaluri, being_built.reagents_list[/datum/reagent/medicine/C2/instabitaluri]*prod_coeff))
busy = TRUE
use_power(power)
flick("limbgrower_fill",src)
@@ -115,8 +115,8 @@
return
/obj/machinery/limbgrower/proc/build_item()
- if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //sanity check, if this happens we are in big trouble
- reagents.remove_reagent(/datum/reagent/medicine/synthflesh,being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)
+ if(reagents.has_reagent(/datum/reagent/medicine/C2/instabitaluri, being_built.reagents_list[/datum/reagent/medicine/C2/instabitaluri]*prod_coeff)) //sanity check, if this happens we are in big trouble
+ reagents.remove_reagent(/datum/reagent/medicine/C2/instabitaluri,being_built.reagents_list[/datum/reagent/medicine/C2/instabitaluri]*prod_coeff)
var/buildpath = being_built.build_path
if(ispath(buildpath, /obj/item/bodypart)) //This feels like spatgheti code, but i need to initilise a limb somehow
build_limb(buildpath)
@@ -124,7 +124,7 @@
//Just build whatever it is
new buildpath(loc)
else
- src.visible_message(" Something went very wrong and there isnt enough synthflesh anymore!")
+ src.visible_message(" Something went very wrong and there isnt enough instabitaluri anymore!")
busy = FALSE
flick("limbgrower_unfill",src)
icon_state = "limbgrower_idleoff"
@@ -159,7 +159,7 @@
/obj/machinery/limbgrower/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += "The status display reads: Storing up to [reagents.maximum_volume]u of synthflesh.
Synthflesh consumption at [prod_coeff*100]%."
+ . += "The status display reads: Storing up to [reagents.maximum_volume]u of instabitaluri.
Instabitaluri consumption at [prod_coeff*100]%."
/obj/machinery/limbgrower/proc/main_win(mob/user)
var/dat = "
Limb Grower Menu:
"
@@ -211,12 +211,12 @@
return dat
/obj/machinery/limbgrower/proc/can_build(datum/design/D)
- return (reagents.has_reagent(/datum/reagent/medicine/synthflesh, D.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design
+ return (reagents.has_reagent(/datum/reagent/medicine/C2/instabitaluri, D.reagents_list[/datum/reagent/medicine/C2/instabitaluri]*prod_coeff)) //Return whether the machine has enough instabitaluri to produce the design
/obj/machinery/limbgrower/proc/get_design_cost(datum/design/D)
var/dat
- if(D.reagents_list[/datum/reagent/medicine/synthflesh])
- dat += "[D.reagents_list[/datum/reagent/medicine/synthflesh] * prod_coeff] Synthetic flesh "
+ if(D.reagents_list[/datum/reagent/medicine/C2/instabitaluri])
+ dat += "[D.reagents_list[/datum/reagent/medicine/C2/instabitaluri] * prod_coeff] Synthetic flesh "
return dat
/obj/machinery/limbgrower/emag_act(mob/user)
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index bb936d6ba05..ef049a23560 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -263,7 +263,7 @@
. = ..()
create_reagents(max_volume, NO_REACT)
syringes = new
- known_reagents = list(/datum/reagent/medicine/epinephrine="Epinephrine",/datum/reagent/medicine/charcoal="Charcoal")
+ known_reagents = list(/datum/reagent/medicine/epinephrine="Epinephrine",/datum/reagent/medicine/C2/multiver="Multiver")
processed_reagents = new
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach()
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 9e777db3f4a..3d3524a2ae1 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -54,7 +54,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
var/heal_brute = 40
self_delay = 20
- grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
+ grind_results = list(/datum/reagent/medicine/C2/libital = 10)
/obj/item/stack/medical/bruise_pack/heal(mob/living/M, mob/user)
if(M.stat == DEAD)
@@ -136,7 +136,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
var/heal_burn = 40
self_delay = 20
- grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
+ grind_results = list(/datum/reagent/medicine/C2/ichiyuri = 10)
/obj/item/stack/medical/ointment/heal(mob/living/M, mob/user)
if(M.stat == DEAD)
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index b39c61f865b..6a735ef558c 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -1062,7 +1062,7 @@
/obj/item/storage/box/silver_sulf/PopulateContents()
for(var/i in 1 to 7)
- new /obj/item/reagent_containers/pill/patch/silver_sulf(src)
+ new /obj/item/reagent_containers/pill/patch/aiuri(src)
/obj/item/storage/box/fountainpens
name = "box of fountain pens"
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index 0c8d0938d6c..4e5340dd179 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -68,7 +68,7 @@
if(empty)
return
var/static/items_inside = list(
- /obj/item/reagent_containers/pill/patch/silver_sulf = 3,
+ /obj/item/reagent_containers/pill/patch/aiuri = 3,
/obj/item/reagent_containers/spray/rhigoxane = 1,
/obj/item/reagent_containers/hypospray/medipen/oxandrolone = 1,
/obj/item/reagent_containers/hypospray/medipen = 1,
@@ -93,8 +93,8 @@
if(empty)
return
var/static/items_inside = list(
- /obj/item/storage/pill_bottle/charcoal/less = 1,
- /obj/item/reagent_containers/syringe/thializid = 3,
+ /obj/item/storage/pill_bottle/multiver/less = 1,
+ /obj/item/reagent_containers/syringe/syriniver = 3,
/obj/item/storage/pill_bottle/potassiodide = 1,
/obj/item/reagent_containers/hypospray/medipen/penacid = 1,
/obj/item/healthanalyzer = 1)
@@ -118,7 +118,7 @@
if(empty)
return
var/static/items_inside = list(
- /obj/item/reagent_containers/syringe/perfluorodecalin = 3,
+ /obj/item/reagent_containers/syringe/convermol = 3,
/obj/item/reagent_containers/hypospray/medipen/salbutamol = 1,
/obj/item/reagent_containers/hypospray/medipen = 1,
/obj/item/storage/pill_bottle/iron = 1,
@@ -143,7 +143,7 @@
if(empty)
return
var/static/items_inside = list(
- /obj/item/reagent_containers/pill/patch/styptic = 3,
+ /obj/item/reagent_containers/pill/patch/libital = 3,
/obj/item/stack/medical/gauze = 1,
/obj/item/storage/pill_bottle/trophazole = 1,
/obj/item/reagent_containers/hypospray/medipen/salacid = 1,
@@ -161,7 +161,7 @@
if(empty)
return
var/static/items_inside = list(
- /obj/item/reagent_containers/pill/patch/synthflesh = 3,
+ /obj/item/reagent_containers/pill/patch/instabitaluri = 3,
/obj/item/reagent_containers/hypospray/medipen/atropine = 2,
/obj/item/stack/medical/gauze = 1,
/obj/item/storage/pill_bottle/penacid = 1)
@@ -183,10 +183,10 @@
new /obj/item/stack/medical/gauze(src)
new /obj/item/defibrillator/compact/combat/loaded(src)
new /obj/item/reagent_containers/hypospray/combat(src)
- new /obj/item/reagent_containers/pill/patch/styptic(src)
- new /obj/item/reagent_containers/pill/patch/styptic(src)
- new /obj/item/reagent_containers/pill/patch/silver_sulf(src)
- new /obj/item/reagent_containers/pill/patch/silver_sulf(src)
+ new /obj/item/reagent_containers/pill/patch/libital(src)
+ new /obj/item/reagent_containers/pill/patch/libital(src)
+ new /obj/item/reagent_containers/pill/patch/aiuri(src)
+ new /obj/item/reagent_containers/pill/patch/aiuri(src)
new /obj/item/clothing/glasses/hud/health/night(src)
//medibot assembly
@@ -240,19 +240,19 @@
user.visible_message("[user] is trying to get the cap off [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (TOXLOSS)
-/obj/item/storage/pill_bottle/charcoal
- name = "bottle of charcoal pills"
+/obj/item/storage/pill_bottle/multiver
+ name = "bottle of multiver pills"
desc = "Contains pills used to counter toxins."
-/obj/item/storage/pill_bottle/charcoal/PopulateContents()
+/obj/item/storage/pill_bottle/multiver/PopulateContents()
for(var/i in 1 to 7)
- new /obj/item/reagent_containers/pill/charcoal(src)
+ new /obj/item/reagent_containers/pill/multiver(src)
-/obj/item/storage/pill_bottle/charcoal/less
+/obj/item/storage/pill_bottle/multiver/less
-/obj/item/storage/pill_bottle/charcoal/less/PopulateContents()
+/obj/item/storage/pill_bottle/multiver/less/PopulateContents()
for(var/i in 1 to 3)
- new /obj/item/reagent_containers/pill/charcoal(src)
+ new /obj/item/reagent_containers/pill/multiver(src)
/obj/item/storage/pill_bottle/epinephrine
name = "bottle of epinephrine pills"
@@ -315,9 +315,9 @@
desc = "Contains patches used to treat brute and burn damage."
/obj/item/storage/pill_bottle/mining/PopulateContents()
- new /obj/item/reagent_containers/pill/patch/silver_sulf(src)
+ new /obj/item/reagent_containers/pill/patch/aiuri(src)
for(var/i in 1 to 3)
- new /obj/item/reagent_containers/pill/patch/styptic(src)
+ new /obj/item/reagent_containers/pill/patch/libital(src)
/obj/item/storage/pill_bottle/zoom
name = "suspicious pill bottle"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index b49abbb1712..0bde14f0e4b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -14,7 +14,7 @@
/obj/item/reagent_containers/glass/bottle/toxin = 1,
/obj/item/reagent_containers/glass/bottle/morphine = 2,
/obj/item/reagent_containers/glass/bottle/epinephrine= 3,
- /obj/item/reagent_containers/glass/bottle/charcoal = 3,
+ /obj/item/reagent_containers/glass/bottle/multiver = 3,
/obj/item/storage/box/rxglasses = 1)
generate_items_inside(items_inside,src)
diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm
index d2a0084ebec..a9bf985d6ca 100644
--- a/code/modules/cargo/bounties/reagent.dm
+++ b/code/modules/cargo/bounties/reagent.dm
@@ -131,7 +131,7 @@
/datum/reagent/medicine/leporazine,\
/datum/reagent/medicine/clonexadone,\
/datum/reagent/medicine/mine_salve,\
- /datum/reagent/medicine/perfluorodecalin,\
+ /datum/reagent/medicine/C2/convermol,\
/datum/reagent/medicine/ephedrine,\
/datum/reagent/medicine/diphenhydramine,\
/datum/reagent/drug/space_drugs,\
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 7ada1605657..b43c8dbf214 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -1226,7 +1226,7 @@
name = "Medical Supplies Crate"
desc = "Contains several medical supplies. German doctor not included."
cost = 2000
- contains = list(/obj/item/reagent_containers/glass/bottle/charcoal,
+ contains = list(/obj/item/reagent_containers/glass/bottle/multiver,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/item/reagent_containers/glass/bottle/morphine,
/obj/item/reagent_containers/glass/bottle/toxin,
diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm
index e5c4bd8844c..f51b95aea49 100644
--- a/code/modules/events/vent_clog.dm
+++ b/code/modules/events/vent_clog.dm
@@ -14,7 +14,7 @@
var/randomProbability = 1
var/reagentsAmount = 100
var/list/saferChems = list(/datum/reagent/water,/datum/reagent/carbon,/datum/reagent/consumable/flour,/datum/reagent/space_cleaner,/datum/reagent/consumable/nutriment,/datum/reagent/consumable/condensedcapsaicin,/datum/reagent/drug/mushroomhallucinogen,/datum/reagent/lube,/datum/reagent/glitter/pink,/datum/reagent/cryptobiolin,
- /datum/reagent/toxin/plantbgone,/datum/reagent/blood,/datum/reagent/medicine/charcoal,/datum/reagent/drug/space_drugs,/datum/reagent/medicine/morphine,/datum/reagent/water/holywater,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/hot_coco,/datum/reagent/toxin/acid,/datum/reagent/toxin/mindbreaker,/datum/reagent/toxin/rotatium,/datum/reagent/bluespace,
+ /datum/reagent/toxin/plantbgone,/datum/reagent/blood,/datum/reagent/medicine/C2/multiver,/datum/reagent/drug/space_drugs,/datum/reagent/medicine/morphine,/datum/reagent/water/holywater,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/hot_coco,/datum/reagent/toxin/acid,/datum/reagent/toxin/mindbreaker,/datum/reagent/toxin/rotatium,/datum/reagent/bluespace,
/datum/reagent/pax,/datum/reagent/consumable/laughter,/datum/reagent/concentrated_barbers_aid,/datum/reagent/colorful_reagent,/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/consumable/sodiumchloride,/datum/reagent/consumable/ethanol/beer,/datum/reagent/hair_dye,/datum/reagent/consumable/sugar,/datum/reagent/glitter/white,/datum/reagent/growthserum)
//needs to be chemid unit checked at some point
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index 1f1591b32fa..32f692c04d0 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -469,9 +469,9 @@
/obj/machinery/smartfridge/chemistry/preloaded
initial_contents = list(
/obj/item/reagent_containers/pill/epinephrine = 12,
- /obj/item/reagent_containers/pill/charcoal = 5,
+ /obj/item/reagent_containers/pill/multiver = 5,
/obj/item/reagent_containers/glass/bottle/epinephrine = 1,
- /obj/item/reagent_containers/glass/bottle/charcoal = 1)
+ /obj/item/reagent_containers/glass/bottle/multiver = 1)
// ----------------------------
// Virology Medical Smartfridge
diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm
index f009d59dda8..376a4d31101 100644
--- a/code/modules/hydroponics/grown/ambrosia.dm
+++ b/code/modules/hydroponics/grown/ambrosia.dm
@@ -25,7 +25,7 @@
icon_dead = "ambrosia-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/ambrosia/deus)
- reagents_add = list(/datum/reagent/medicine/frogenite = 0.1, /datum/reagent/medicine/sanguiose = 0.1 ,/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/toxin = 0.1)
+ reagents_add = list(/datum/reagent/medicine/C2/aiuri = 0.1, /datum/reagent/medicine/C2/libital = 0.1 ,/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/toxin = 0.1)
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris
seed = /obj/item/seeds/ambrosia
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index 1a8001307e6..c076a453886 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -204,7 +204,7 @@
species = "greengrape"
plantname = "Green-Grape Vine"
product = /obj/item/reagent_containers/food/snacks/grown/grapes/green
- reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/medicine/frogenite = 0.2)
+ reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/medicine/C2/aiuri = 0.2)
/obj/item/reagent_containers/food/snacks/grown/grapes/green
seed = /obj/item/seeds/grape/green
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index 9bf1bdfcfc9..5ad4362cf18 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -15,7 +15,7 @@
icon_grow = "poppy-grow"
icon_dead = "poppy-dead"
mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily)
- reagents_add = list(/datum/reagent/medicine/sanguiose = 0.2, /datum/reagent/consumable/nutriment = 0.05)
+ reagents_add = list(/datum/reagent/medicine/C2/libital = 0.2, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/poppy
seed = /obj/item/seeds/poppy
diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm
index 5f1fdcdaa92..0c55aeca70f 100644
--- a/code/modules/hydroponics/grown/kudzu.dm
+++ b/code/modules/hydroponics/grown/kudzu.dm
@@ -14,7 +14,7 @@
growthstages = 4
rarity = 30
var/list/mutations = list()
- reagents_add = list(/datum/reagent/medicine/charcoal = 0.04, /datum/reagent/consumable/nutriment = 0.02)
+ reagents_add = list(/datum/reagent/medicine/C2/multiver = 0.04, /datum/reagent/consumable/nutriment = 0.02)
/obj/item/seeds/kudzu/Copy()
var/obj/item/seeds/kudzu/S = ..()
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index e575042f5d1..d46c3e29899 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -21,7 +21,7 @@
growthstages = 4
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
- reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/medicine/charcoal = 0.35, /datum/reagent/consumable/nutriment = 0)
+ reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/medicine/C2/multiver = 0.35, /datum/reagent/consumable/nutriment = 0)
/obj/item/reagent_containers/food/snacks/grown/mushroom/reishi
seed = /obj/item/seeds/reishi
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 4aab08aaf1d..380b5a9fa15 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -540,8 +540,8 @@
to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.")
// Antitoxin binds shit pretty well. So the tox goes significantly down
- if(S.has_reagent(/datum/reagent/medicine/charcoal, 1))
- adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/charcoal) * 2))
+ if(S.has_reagent(/datum/reagent/medicine/C2/multiver, 1))
+ adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/C2/multiver) * 2))
// NIGGA, YOU JUST WENT ON FULL RETARD.
if(S.has_reagent(/datum/reagent/toxin, 1))
diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm
index 3c18a60347e..f545e58d770 100644
--- a/code/modules/mob/living/carbon/human/species_types/synths.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synths.dm
@@ -9,7 +9,7 @@
meat = null
damage_overlay_type = "synth"
limbs_id = "synth"
- var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off
+ var/disguise_fail_health = 75 //When their health gets to this level their instabitaluri partially falls off
var/datum/species/fake_species //a species to do most of our work for us, unless we're damaged
var/list/initial_species_traits //for getting these values back for assume_disguise()
var/list/initial_inherent_traits
@@ -39,7 +39,7 @@
UnregisterSignal(H, COMSIG_MOB_SAY)
/datum/species/synth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.type == /datum/reagent/medicine/synthflesh)
+ if(chem.type == /datum/reagent/medicine/C2/instabitaluri)
chem.reaction_mob(H, TOUCH, 2 ,0) //heal a little
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index 6334014df5a..2edcf3cda5b 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -44,13 +44,13 @@
var/stationary_mode = 0 //If enabled, the Medibot will not move automatically.
//Setting which reagents to use to treat what by default. By id.
var/treatment_brute_avoid = null
- var/treatment_brute = /datum/reagent/medicine/sanguiose
+ var/treatment_brute = /datum/reagent/medicine/C2/libital
var/treatment_oxy_avoid = null
- var/treatment_oxy = /datum/reagent/medicine/dexalin
+ var/treatment_oxy = /datum/reagent/medicine/salbutamol
var/treatment_fire_avoid = null
- var/treatment_fire = /datum/reagent/medicine/frogenite
+ var/treatment_fire = /datum/reagent/medicine/C2/aiuri
var/treatment_tox_avoid = null
- var/treatment_tox = /datum/reagent/medicine/ferveatium
+ var/treatment_tox = /datum/reagent/medicine/C2/multiver
var/treatment_virus_avoid = null
var/treatment_virus = /datum/reagent/medicine/spaceacillin
var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible.
@@ -381,7 +381,7 @@
if((!C.reagents.has_reagent(treatment_fire_avoid)) && (C.getFireLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_fire)))
return TRUE
-
+
if((!C.reagents.has_reagent(treatment_tox_avoid)) && (C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox)))
return TRUE
@@ -461,7 +461,7 @@
if(!reagent_id && (C.getFireLoss() >= heal_threshold))
if(!C.reagents.has_reagent(treatment_fire) && !C.reagents.has_reagent(treatment_fire_avoid))
reagent_id = treatment_fire
-
+
if(!reagent_id && (C.getToxLoss() >= heal_threshold))
if(!C.reagents.has_reagent(treatment_tox) && !C.reagents.has_reagent(treatment_tox_avoid))
reagent_id = treatment_tox
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 6bc494809b3..fdafbaa2444 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -40,6 +40,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
var/self_consuming = FALSE
var/reagent_weight = 1 //affects how far it travels when sprayed
var/metabolizing = FALSE
+ var/harmful = FALSE //is it bad for you? Currently only used for borghypo. C2s and Toxins have it TRUE by default.
/datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
new file mode 100644
index 00000000000..f60cd91529f
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
@@ -0,0 +1,286 @@
+// Category 2 medicines are medicines that have an ill effect regardless of volume/OD to dissuade doping. Mostly used as emergency chemicals OR to convert damage (and heal a bit in the process). The type is used to prompt borgs that the medicine is harmful.
+/datum/reagent/medicine/C2
+ harmful = TRUE
+
+/******BRUTE******/
+/*Suffix: -bital*/
+
+/datum/reagent/medicine/C2/sanguibital
+ name = "Sanobital"
+ description = "A unique medicine that heals bruises, scaling with the rate at which one is bleeding out. Dilates blood streams, increasing the amount of blood lost. Overdosing further increases blood loss."
+ color = "#ECEC8D" // rgb: 236 236 141
+ taste_description = "whatever vampires would eat"
+ overdose_threshold = 35
+ reagent_state = SOLID
+
+/datum/reagent/medicine/C2/sanguibital/on_mob_life(mob/living/carbon/M)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.bleed_rate)
+ H.adjustBruteLoss(-0.5*H.bleed_rate*REM)
+ H.bleed_rate += 2
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/sanguibital/overdose_process(mob/living/carbon/M)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ H.bleed_rate += 2
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/libital //messes with your liber
+ name = "Libital"
+ description = "A bruise reliever. Does minor liver damage."
+ color = "#ECEC8D" // rgb: 236 236 141
+ taste_description = "bitter with a hint of alcohol"
+ reagent_state = SOLID
+
+/datum/reagent/medicine/C2/libital/on_mob_life(mob/living/carbon/M)
+ M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1*REM)
+ M.adjustBruteLoss(-1*REM)
+ ..()
+ return TRUE
+
+/******BURN******/
+/*Suffix: -uri*/
+/datum/reagent/medicine/C2/ichiyuri
+ name = "Ichiyuri"
+ description = "Used to treat serious burns. Prolonged exposure can cause burns to itch."
+ reagent_state = LIQUID
+ color = "#C8A5DC"
+ var/resetting_probability = 0
+ var/spammer = 0
+
+/datum/reagent/medicine/C2/ichiyuri/on_mob_life(mob/living/carbon/M)
+ M.adjustFireLoss(-2*REM)
+ if(prob(resetting_probability) && !(M.restrained() || M.incapacitated()))
+ if(spammer < world.time)
+ to_chat(M,"You can't help but to itch the burn.")
+ spammer = world.time + (10 SECONDS)
+ var/scab = rand(1,7)
+ M.adjustBruteLoss(scab*REM)
+ M.bleed(scab)
+ resetting_probability = 0
+ resetting_probability += (5*(current_cycle/10)) // 10 iterations = >51% to itch
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/aiuri
+ name = "Aiuri"
+ description = "Used to treat burns. Does minor eye damage."
+ reagent_state = LIQUID
+ color = "#C8A5DC"
+ var/resetting_probability = 0
+ var/message_cd = 0
+
+/datum/reagent/medicine/C2/aiuri/on_mob_life(mob/living/carbon/M)
+ M.adjustFireLoss(-0.5*REM)
+ M.adjustOrganLoss(ORGAN_SLOT_EYES,1*REM)
+ ..()
+ return TRUE
+
+/******OXY******/
+/*Suffix: -mol*/
+
+/datum/reagent/medicine/C2/convermol
+ name = "Convermol"
+ description = "Restores oxygen deprivation while producing a lesser amount of toxic byproducts. Both scale with exposure to the drug and current amount of oxygen deprivation. Overdose causes toxic byproducts regardless of oxygen deprivation."
+ reagent_state = LIQUID
+ color = "#FF6464"
+ metabolization_rate = 0.25 * REAGENTS_METABOLISM
+ overdose_threshold = 35 // at least 2 full syringes +some, this stuff is nasty if left in for long
+
+/datum/reagent/medicine/C2/convermol/on_mob_life(mob/living/carbon/human/M)
+ var/oxycalc = 2.5*REM*current_cycle
+ if(!overdosed)
+ oxycalc = min(oxycalc,M.getOxyLoss()+(current_cycle*0.1)) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.1*current_cycle. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
+ M.adjustOxyLoss(-oxycalc, 0)
+ M.adjustToxLoss(oxycalc/2.5, 0)
+ if(prob(current_cycle) && M.losebreath)
+ M.losebreath--
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/convermol/overdose_process(mob/living/carbon/human/M)
+ metabolization_rate += 1
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/tirimol
+ name = "Tirimol"
+ description = "An oxygen deprivation medication that causes fatigue. Prolonged exposure causes the patient to fall asleep once the medicine metabolizes."
+ color = "#FF6464"
+ var/drowsycd = 0
+
+/datum/reagent/medicine/C2/tirimol/on_mob_life(mob/living/carbon/human/M)
+ M.adjustOxyLoss(-1)
+ M.adjustStaminaLoss(2)
+ if(drowsycd && (world.time > drowsycd))
+ M.drowsyness += 10
+ drowsycd = world.time + (45 SECONDS)
+ else if(!drowsycd)
+ drowsycd = world.time + (15 SECONDS)
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/tirimol/on_mob_end_metabolize(mob/living/L)
+ if(current_cycle > 20)
+ L.Sleeping(200)
+ ..()
+
+/******TOXIN******/
+/*Suffix: -iver*/
+
+#define FIZ_WEAKRATE 0.005
+
+/datum/reagent/medicine/C2/fiziver //fiz = phys ok?
+ name = "Fiziver"
+ description = "An antitoxin that temporarily weakens the user, making them susceptible to other forms of damage. Weakness and toxin healing scales with exposure."
+ overdose_threshold = 11 // Scales every damage so naturally quite abusable. Luckily the OD purges the chem which resets the damage mod *wink*
+ var/reset_mods = 0 //amount, not bool
+
+/datum/reagent/medicine/C2/fiziver/on_mob_life(mob/living/carbon/human/M)
+ var/maths = FIZ_WEAKRATE * current_cycle
+ reset_mods += maths
+ var/datum/physiology/phis = M.physiology
+ phis.brute_mod += maths
+ phis.burn_mod += maths
+ phis.oxy_mod += maths
+ phis.stamina_mod += maths
+ M.adjustToxLoss(round(reset_mods*-1000,0.01)) //Math is fun!
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/fiziver/on_mob_delete(mob/living/carbon/human/M)
+ var/datum/physiology/phis = M.physiology
+ phis.brute_mod = max(phis.brute_mod - reset_mods, 1)
+ phis.burn_mod = max(phis.burn_mod - reset_mods, 1)
+ phis.oxy_mod = max(phis.oxy_mod - reset_mods, 1)
+ return ..()
+
+/datum/reagent/medicine/C2/fiziver/overdose_process(mob/living/carbon/human/M)
+ var/maths = reset_mods*3
+ M.adjustBruteLoss(maths)
+ M.adjustFireLoss(maths)
+ M.adjustOxyLoss(maths)
+ ..()
+ M.reagents.del_reagent(type)
+ return TRUE
+
+#undef FIZ_WEAKRATE
+
+/datum/reagent/medicine/C2/multiver //made up chem, it's a PALLETTE cleanser hehe
+ name = "Multiver"
+ description = "An antitoxin that scales with the more unique medicines in the body as well as purges chems (including itself). Causes lung damage."
+
+/datum/reagent/medicine/C2/multiver/on_mob_life(mob/living/carbon/human/M)
+ var/medibonus = 0 //it will always have itself which makes it REALLY start @ 1
+ for(var/r in M.reagents.reagent_list)
+ var/datum/reagent/the_reagent = r
+ if(istype(the_reagent, /datum/reagent/medicine))
+ medibonus += 1
+ M.adjustToxLoss(0.5 * medibonus)
+ M.adjustOrganLoss(ORGAN_SLOT_LUNGS, medibonus)
+ for(var/datum/reagent/R in M.reagents.reagent_list)
+ M.reagents.remove_reagent(R.type, medibonus*0.5)
+ ..()
+ return TRUE
+
+/datum/reagent/medicine/C2/syriniver
+ name = "Syriniver"
+ description = "A potent antidote for intravenous use with a narrow therapeutic index, it is considered an active prodrug of musiver."
+ reagent_state = LIQUID
+ color = "#8CDF24" // heavy saturation to make the color blend better
+ metabolization_rate = 0.75 * REAGENTS_METABOLISM
+ overdose_threshold = 6
+ var/conversion_amount
+
+/datum/reagent/medicine/C2/syriniver/on_transfer(atom/A, method=INJECT, trans_volume)
+ if(method != INJECT || !iscarbon(A))
+ return
+ var/mob/living/carbon/C = A
+ if(trans_volume >= 0.6) //prevents cheesing with ultralow doses.
+ C.adjustToxLoss(-1.5 * min(2, trans_volume) * REM, 0) //This is to promote iv pole use for that chemotherapy feel.
+ var/obj/item/organ/liver/L = C.internal_organs_slot[ORGAN_SLOT_LIVER]
+ if((L.organ_flags & ORGAN_FAILING) || !L)
+ return
+ conversion_amount = trans_volume * (min(100 -C.getOrganLoss(ORGAN_SLOT_LIVER), 80) / 100) //the more damaged the liver the worse we metabolize.
+ C.reagents.remove_reagent(/datum/reagent/medicine/C2/syriniver, conversion_amount)
+ C.reagents.add_reagent(/datum/reagent/medicine/C2/musiver, conversion_amount)
+ ..()
+
+/datum/reagent/medicine/C2/syriniver/on_mob_life(mob/living/carbon/M)
+ M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.8)
+ M.adjustToxLoss(-1*REM, 0)
+ for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
+ M.reagents.remove_reagent(R.type,1)
+
+ ..()
+ . = 1
+
+/datum/reagent/medicine/C2/syriniver/overdose_process(mob/living/carbon/M)
+ M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
+ M.adjust_disgust(3)
+ M.reagents.add_reagent(/datum/reagent/medicine/C2/musiver, 0.225 * REM)
+ ..()
+ . = 1
+
+/datum/reagent/medicine/C2/musiver
+ name = "Musiver"
+ description = "The active metabolite of syriniver. Causes muscle weakness on overdose"
+ reagent_state = LIQUID
+ color = "#DFD54E"
+ metabolization_rate = 0.25 * REAGENTS_METABOLISM
+ overdose_threshold = 25
+ var/datum/brain_trauma/mild/muscle_weakness/U
+
+/datum/reagent/medicine/C2/musiver/on_mob_life(mob/living/carbon/M)
+ M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1)
+ M.adjustToxLoss(-1*REM, 0)
+ for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
+ M.reagents.remove_reagent(R.type,1)
+ ..()
+ . = 1
+
+/datum/reagent/medicine/C2/musiver/overdose_start(mob/living/carbon/M)
+ U = new()
+ M.gain_trauma(U, TRAUMA_RESILIENCE_ABSOLUTE)
+ ..()
+
+/datum/reagent/medicine/C2/musiver/on_mob_delete(mob/living/carbon/M)
+ if(U)
+ QDEL_NULL(U)
+ return ..()
+
+/datum/reagent/medicine/C2/musiver/overdose_process(mob/living/carbon/M)
+ M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
+ M.adjust_disgust(3)
+ ..()
+ . = 1
+
+/******COMBOS******/
+/*Suffix: Combo of healing, prob gonna get wack REAL fast*/
+/datum/reagent/medicine/C2/instabitaluri
+ name = "Synthflesh (Instabitaluri)"
+ description = "Has a 100% chance of instantly healing brute and burn damage at the cost of toxicity (75% of damage healed). Touch application only."
+ reagent_state = LIQUID
+ color = "#FFEBEB"
+
+/datum/reagent/medicine/C2/instabitaluri/reaction_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1)
+ if(iscarbon(M))
+ var/mob/living/carbon/Carbies = M
+ if (Carbies.stat == DEAD)
+ show_message = 0
+ if(method in list(PATCH, TOUCH))
+ var/harmies = min(Carbies.getBruteLoss(),Carbies.adjustBruteLoss(-1.25 * reac_volume)*-1)
+ var/burnies = min(Carbies.getFireLoss(),Carbies.adjustFireLoss(-1.25 * reac_volume)*-1)
+ Carbies.adjustToxLoss((harmies+burnies)*0.75)
+ if(show_message)
+ to_chat(Carbies, "You feel your burns and bruises healing! It stings like hell!")
+ SEND_SIGNAL(Carbies, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ ..()
+ return TRUE
+
+/******NICHE******/
+//todo
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index db678f7ecbc..1d542631735 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -1,4 +1,4 @@
-#define PERF_BASE_DAMAGE 0.5
+
//////////////////////////////////////////////////////////////////////////////////////////
// MEDICINE REAGENTS
@@ -215,37 +215,6 @@
metabolization_rate = 0.1 * REAGENTS_METABOLISM
//Goon Chems. Ported mainly from Goonstation. Easily mixable (or not so easily) and provide a variety of effects.
-/datum/reagent/medicine/silver_sulfadiazine
- name = "Silver Sulfadiazine"
- description = "If used in touch-based applications, immediately restores burn wounds as well as restoring more over time. If ingested through other means or overdosed, deals minor toxin damage."
- reagent_state = LIQUID
- color = "#C8A5DC"
- overdose_threshold = 45
-
-/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
- if(iscarbon(M) && M.stat != DEAD)
- if(method in list(INGEST, VAPOR, INJECT))
- M.adjustToxLoss(0.5*reac_volume)
- if(show_message)
- to_chat(M, "You don't feel so good...")
- else if(M.getFireLoss())
- M.adjustFireLoss(-reac_volume)
- if(show_message)
- to_chat(M, "You feel your burns healing! It stings like hell!")
- M.emote("scream")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
- ..()
-
-/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/carbon/M)
- M.adjustFireLoss(-2*REM, 0)
- ..()
- . = 1
-
-/datum/reagent/medicine/silver_sulfadiazine/overdose_process(mob/living/M)
- M.adjustFireLoss(2.5*REM, 0)
- M.adjustToxLoss(0.5, 0)
- ..()
- . = 1
/datum/reagent/medicine/oxandrolone
name = "Oxandrolone"
@@ -269,39 +238,6 @@
. = 1
..()
-/datum/reagent/medicine/styptic_powder
- name = "Styptic Powder"
- description = "If used in touch-based applications, immediately restores bruising as well as restoring more over time. If ingested through other means or overdosed, deals minor toxin damage."
- reagent_state = LIQUID
- color = "#FF9696"
- overdose_threshold = 45
-
-/datum/reagent/medicine/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
- if(iscarbon(M) && M.stat != DEAD)
- if(method in list(INGEST, VAPOR, INJECT))
- M.adjustToxLoss(0.5*reac_volume)
- if(show_message)
- to_chat(M, "You don't feel so good...")
- else if(M.getBruteLoss())
- M.adjustBruteLoss(-reac_volume)
- if(show_message)
- to_chat(M, "You feel your bruises healing! It stings like hell!")
- M.emote("scream")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
- ..()
-
-
-/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-2*REM, 0)
- ..()
- . = 1
-
-/datum/reagent/medicine/styptic_powder/overdose_process(mob/living/M)
- M.adjustBruteLoss(2.5*REM, 0)
- M.adjustToxLoss(0.5, 0)
- ..()
- . = 1
-
/datum/reagent/medicine/salglu_solution
name = "Saline-Glucose Solution"
description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a temporary blood substitute."
@@ -380,47 +316,6 @@
N.hal_screwyhud = SCREWYHUD_NONE
..()
-/datum/reagent/medicine/synthflesh
- name = "Synthflesh"
- description = "Has a 100% chance of instantly healing brute and burn damage. One unit of the chemical will heal one point of damage. Touch application only."
- reagent_state = LIQUID
- color = "#FFEBEB"
-
-/datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1)
- if(iscarbon(M))
- if (M.stat == DEAD)
- show_message = 0
- if(method in list(PATCH, TOUCH))
- M.adjustBruteLoss(-1.25 * reac_volume)
- M.adjustFireLoss(-1.25 * reac_volume)
- if(show_message)
- to_chat(M, "You feel your burns and bruises healing! It stings like hell!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
- ..()
-
-/datum/reagent/medicine/charcoal
- name = "Charcoal"
- description = "Heals toxin damage as well as slowly removing any other chemicals the patient has in their bloodstream."
- reagent_state = LIQUID
- color = "#000000"
- metabolization_rate = 0.5 * REAGENTS_METABOLISM
- taste_description = "ash"
-
-/datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M)
- M.adjustToxLoss(-2*REM, 0)
- . = 1
- for(var/datum/reagent/R in M.reagents.reagent_list)
- if(R != src)
- M.reagents.remove_reagent(R.type,1)
- ..()
-
-/datum/reagent/medicine/charcoal/on_transfer(atom/A, method=TOUCH, volume)
- if(method == INGEST || !iscarbon(A)) //the atom not the charcoal
- return
- A.reagents.remove_reagent(/datum/reagent/medicine/charcoal/, volume) //We really should not be injecting an insoluble granular material.
- A.reagents.add_reagent(/datum/reagent/carbon, volume) // Its pores would get clogged with gunk anyway.
- ..()
-
/datum/reagent/medicine/omnizine
name = "Omnizine"
description = "Slowly heals all damage types. Overdose will cause damage in all types instead."
@@ -501,9 +396,9 @@
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/M)
if(M.getBruteLoss() > 25)
- M.adjustBruteLoss(-4*REM, 0) //Twice as effective as styptic powder for severe bruising
+ M.adjustBruteLoss(-4*REM, 0)
else
- M.adjustBruteLoss(-0.5*REM, 0) //But only a quarter as effective for more minor ones
+ M.adjustBruteLoss(-0.5*REM, 0)
..()
. = 1
@@ -527,29 +422,6 @@
..()
. = 1
-/datum/reagent/medicine/perfluorodecalin
- name = "Perfluorodecalin"
- description = "Restores oxygen deprivation while producing a lesser amount of toxic byproducts. Both scale with exposure to the drug and current amount of oxygen deprivation. Overdose causes toxic byproducts regardless of oxygen deprivation."
- reagent_state = LIQUID
- color = "#FF6464"
- metabolization_rate = 0.25 * REAGENTS_METABOLISM
- overdose_threshold = 35 // at least 2 full syringes +some, this stuff is nasty if left in for long
-
-/datum/reagent/medicine/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
- var/oxycalc = 2.5*REM*current_cycle
- if(!overdosed)
- oxycalc = min(oxycalc,M.getOxyLoss()+PERF_BASE_DAMAGE) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.5. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
- M.adjustOxyLoss(-oxycalc, 0)
- M.adjustToxLoss(oxycalc/2.5, 0)
- if(prob(current_cycle) && M.losebreath)
- M.losebreath--
- ..()
- return TRUE
-
-/datum/reagent/medicine/perfluorodecalin/overdose_process(mob/living/M)
- metabolization_rate += 1
- return ..()
-
/datum/reagent/medicine/ephedrine
name = "Ephedrine"
description = "Increases stun resistance and movement speed. Overdose deals toxin damage and inhibits breathing."
@@ -970,22 +842,6 @@
..()
//Trek Chems, used primarily by medibots. Only heals a specific damage type, but is very efficient.
-/datum/reagent/medicine/dexalin
- name = "Dexalin"
- description = "Restores oxygen loss. Overdose causes it instead."
- reagent_state = LIQUID
- color = "#C8A5DC"
- overdose_threshold = 30
-
-/datum/reagent/medicine/dexalin/on_mob_life(mob/living/carbon/M)
- M.adjustOxyLoss(-2*REM, 0)
- ..()
- . = 1
-
-/datum/reagent/medicine/dexalin/overdose_process(mob/living/M)
- M.adjustOxyLoss(4*REM, 0)
- ..()
- . = 1
/datum/reagent/medicine/inaprovaline
name = "Inaprovaline"
@@ -1337,194 +1193,7 @@
M.adjustFireLoss(3*REM, 0.)
M.adjust_bodytemperature(-35 * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
..()
-
-/datum/reagent/medicine/thializid
- name = "Thializid"
- description = "A potent antidote for intravenous use with a narrow therapeutic index, it is considered an active prodrug of oxalizid."
- reagent_state = LIQUID
- color = "#8CDF24" // heavy saturation to make the color blend better
- metabolization_rate = 0.75 * REAGENTS_METABOLISM
- overdose_threshold = 6
- var/conversion_amount
-
-/datum/reagent/medicine/thializid/on_transfer(atom/A, method=INJECT, trans_volume)
- if(method != INJECT || !iscarbon(A))
- return
- var/mob/living/carbon/C = A
- if(trans_volume >= 0.6) //prevents cheesing with ultralow doses.
- C.adjustToxLoss(-1.5 * min(2, trans_volume) * REM, 0) //This is to promote iv pole use for that chemotherapy feel.
- var/obj/item/organ/liver/L = C.internal_organs_slot[ORGAN_SLOT_LIVER]
- if((L.organ_flags & ORGAN_FAILING) || !L)
- return
- conversion_amount = trans_volume * (min(100 -C.getOrganLoss(ORGAN_SLOT_LIVER), 80) / 100) //the more damaged the liver the worse we metabolize.
- C.reagents.remove_reagent(/datum/reagent/medicine/thializid, conversion_amount)
- C.reagents.add_reagent(/datum/reagent/medicine/oxalizid, conversion_amount)
- ..()
-
-/datum/reagent/medicine/thializid/on_mob_life(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.8)
- M.adjustToxLoss(-1*REM, 0)
- for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
- M.reagents.remove_reagent(R.type,1)
-
- ..()
- . = 1
-
-/datum/reagent/medicine/thializid/overdose_process(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
- M.adjust_disgust(3)
- M.reagents.add_reagent(/datum/reagent/medicine/oxalizid, 0.225 * REM)
- ..()
- . = 1
-
-/datum/reagent/medicine/oxalizid
- name = "Oxalizid"
- description = "The active metabolite of thializid. Causes muscle weakness on overdose"
- reagent_state = LIQUID
- color = "#DFD54E"
- metabolization_rate = 0.25 * REAGENTS_METABOLISM
- overdose_threshold = 25
- var/datum/brain_trauma/mild/muscle_weakness/U
-
-/datum/reagent/medicine/oxalizid/on_mob_life(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1)
- M.adjustToxLoss(-1*REM, 0)
- for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
- M.reagents.remove_reagent(R.type,1)
- ..()
- . = 1
-
-/datum/reagent/medicine/oxalizid/overdose_start(mob/living/carbon/M)
- U = new()
- M.gain_trauma(U, TRAUMA_RESILIENCE_ABSOLUTE)
- ..()
-
-/datum/reagent/medicine/oxalizid/on_mob_delete(mob/living/carbon/M)
- if(U)
- QDEL_NULL(U)
- return ..()
-
-/datum/reagent/medicine/oxalizid/overdose_process(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5)
- M.adjust_disgust(3)
- ..()
- . = 1
-
-#undef PERF_BASE_DAMAGE
-
-//Injectables!
-//These are shitty chems
-
-/datum/reagent/medicine/sanguiose
- name = "Sanguiose"
- description = "A chemical developed to aid in the butchering proccess, it causes a chemical reaction which heals bruises and other similar injuries. Has a moderate chance of causing deafness in the user."
- reagent_state = LIQUID
- color = "#FF6464"
- metabolization_rate = 0.5* REAGENTS_METABOLISM
- overdose_threshold = 25
- taste_description = "salty"
-
-/datum/reagent/medicine/sanguiose/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-1, 0)
- if(prob(2))
- //Adds deafness with a 2% chance
- ADD_TRAIT(M, TRAIT_DEAF, SANGUIOSE_TRAIT)
- ..()
- . = 1
-
-/datum/reagent/medicine/sanguiose/on_mob_delete(mob/living/L)
- . = ..()
- //removes trait if it comes from the medicine trait.
- REMOVE_TRAIT(L, TRAIT_DEAF, SANGUIOSE_TRAIT)
-/datum/reagent/medicine/sanguiose/overdose_process(mob/living/M)
- M.adjustOxyLoss(3,0)
- M.blood_volume -= 2 //I hope you like blood.
- ..()
- . = 1
-
-/datum/reagent/medicine/sanguiose/on_transfer(atom/A, method=TOUCH, volume) // Borrowed from whoever made charcoal injection or pill only and modified so it doesn't add a reagent.
- if(method == INJECT || !iscarbon(A)) //the atom not the charcoal
- return
- A.reagents.remove_reagent(type, volume)
- ..()
-
-/datum/reagent/medicine/frogenite
- name = "Frogenite"
- description = "An industrial cryostorage chemical previously used for preservation and storage. It heals burns, but has a moderate chance of inducing temporary blindness. If too much is injected the medication will start freezing the hemoglobin reducing blood oxygen oxygen quickly."
- reagent_state = LIQUID
- color = "#00FFFF"
- metabolization_rate = 0.5* REAGENTS_METABOLISM
- overdose_threshold = 25
- taste_description = "Oil"
-
-/datum/reagent/medicine/frogenite/on_mob_life(mob/living/carbon/M) //Reuses code done by cobby in Perflu to convert burn damage to oxygen, Meant to simunlate a chemical reaction to remove oxygen from the body.
- M.adjustFireLoss(-1, 0)
- if(prob(2))
- //Adds blindness witha 2% chance
- ADD_TRAIT(M, TRAIT_BLIND, FROGENITE_TRAIT)
- ..()
- . = 1
-
-/datum/reagent/medicine/frogenite/on_mob_delete(mob/living/L)
- . = ..()
- //removes blindness if trait comes from the medicine
- REMOVE_TRAIT(L, TRAIT_BLIND, FROGENITE_TRAIT)
-
-/datum/reagent/medicine/frogenite/overdose_process(mob/living/M)
- M.adjustOxyLoss(3,0)
- M.reagents.remove_reagent(type, metabolization_rate*2) // Reused code from syndicate nanites meant to purge the chem quickly.
- to_chat(M, "You feel like you aren't getting any oxygen!")
- ..()
- . = 1
-
-/datum/reagent/medicine/frogenite/on_transfer(atom/A, method=TOUCH, volume) // Borrowed from whoever made charcoal injection or pill only and modified so it doesn't add a reagent.
- if(method == INJECT || !iscarbon(A)) //the atom not the charcoal
- return
- A.reagents.remove_reagent(type, volume)
- ..()
-
-/datum/reagent/medicine/ferveatium
- name = "Ferveatium"
- description = "A chemical previously used to cook questionable meat, it has come to enjoy a new life as a treatment for many poisons. Use has a slight chance of causing the patient to feel lethargic and slow."
- reagent_state = LIQUID
- color = "#00FFFF"
- metabolization_rate = 0.5* REAGENTS_METABOLISM
- overdose_threshold = 25
- taste_description = "Fire"
-
-/datum/reagent/medicine/ferveatium/on_mob_life(mob/living/carbon/M) //Reuses code done by cobby in Perflu to convert burn damage to oxygen, Meant to simunlate a chemical reaction to remove oxygen from the body.
- M.adjustToxLoss(-1, 0)
- if(prob(2))
- //Adds fatness with a 2% chance probability.
- ADD_TRAIT(M, TRAIT_FAT, FERVEATIUM_TRAIT)
- ..()
- . = 1
-
-/datum/reagent/medicine/ferveatium/on_mob_delete(mob/living/L)
- . = ..()
- //removes the fat trait.
- REMOVE_TRAIT(L, TRAIT_FAT, FERVEATIUM_TRAIT)
-
-/datum/reagent/medicine/ferveatium/overdose_process(mob/living/M)
- M.adjustFireLoss(3,0)
- M.reagents.remove_reagent(type, metabolization_rate*2) // Reused code from syndicate nanites meant to purge the chem quickly.
- to_chat(M, "You feel like you are melting!")
- ..()
- . = 1
-
-/datum/reagent/medicine/ferveatium/on_transfer(atom/A, method=TOUCH, volume) // Borrowed from whoever made charcoal injection or pill only and modified so it doesn't add a reagent.
- if(method == INJECT || !iscarbon(A)) //the atom not the charcoal
- return
- A.reagents.remove_reagent(type, volume)
- ..()
-
-/datum/reagent/medicine/silibinin
- name = "Silibinin"
- description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver."
- reagent_state = SOLID
- color = "#FFFFD0"
- metabolization_rate = 1.5 * REAGENTS_METABOLISM
-
+
/datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -2)//Add a chance to cure liver trauma once implemented.
..()
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 1febbe8bfdd..47af9e07856 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -7,6 +7,7 @@
color = "#CF3600" // rgb: 207, 54, 0
taste_description = "bitterness"
taste_mult = 1.2
+ harmful = TRUE
var/toxpwr = 1.5
var/silent_toxin = FALSE //won't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present.
diff --git a/code/modules/reagents/chemistry/recipes/cat2_medicines.dm b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm
new file mode 100644
index 00000000000..4be4b4420ad
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm
@@ -0,0 +1,69 @@
+
+
+/*****BRUTE*****/
+
+/datum/chemical_reaction/sanguibital
+ name = "Sanguibital"
+ id = /datum/reagent/medicine/C2/sanguibital
+ results = list(/datum/reagent/medicine/C2/sanguibital = 3)
+ required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/fluorine = 1, /datum/reagent/carbon = 1)
+ mix_message = "The mixture turns into a thick, yellow powder."
+
+/datum/chemical_reaction/libital
+ name = "Libital"
+ id = /datum/reagent/medicine/C2/libital
+ results = list(/datum/reagent/medicine/C2/libital = 3)
+ required_reagents = list(/datum/reagent/phenol = 1, /datum/reagent/oxygen = 1, /datum/reagent/nitrogen = 1)
+
+/*****BURN*****/
+
+/datum/chemical_reaction/ichiyuri
+ name = "Ichiyuri"
+ id = /datum/reagent/medicine/C2/ichiyuri
+ results = list(/datum/reagent/medicine/C2/ichiyuri = 5)
+ required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/silver = 1, /datum/reagent/sulfur = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1)
+
+/datum/chemical_reaction/aiuri
+ name = "Aiuri"
+ id = /datum/reagent/medicine/C2/aiuri
+ results = list(/datum/reagent/medicine/C2/aiuri = 4)
+ required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/hydrogen = 2)
+
+/*****OXY*****/
+
+/datum/chemical_reaction/convermol
+ name = "Convermol"
+ id = /datum/reagent/medicine/C2/convermol
+ results = list(/datum/reagent/medicine/C2/convermol = 3)
+ required_reagents = list(/datum/reagent/hydrogen = 1, /datum/reagent/fluorine = 1, /datum/reagent/oil = 1)
+ required_temp = 370
+ mix_message = "The mixture rapidly turns into a dense pink liquid."
+
+/datum/chemical_reaction/tirimol
+ name = "Tirimol"
+ id = /datum/reagent/medicine/C2/tirimol
+ results = list(/datum/reagent/medicine/C2/tirimol = 5)
+ required_reagents = list(/datum/reagent/nitrogen = 3, /datum/reagent/acetone = 2)
+ required_catalysts = list(/datum/reagent/toxin/acid = 1)
+
+/*****TOX*****/
+
+/datum/chemical_reaction/fiziver
+ name = "Fiziver"
+ id = /datum/reagent/medicine/C2/fiziver
+ results = list(/datum/reagent/medicine/C2/fiziver = 3)
+ required_reagents = list(/datum/reagent/nitrogen = 1, /datum/reagent/potassium = 1, /datum/reagent/aluminium = 1)
+
+/datum/chemical_reaction/multiver
+ name = "Multiver"
+ id = /datum/reagent/medicine/C2/multiver
+ results = list(/datum/reagent/medicine/C2/multiver = 2)
+ required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/sodiumchloride = 1)
+ mix_message = "The mixture yields a fine black powder."
+ required_temp = 380
+
+/datum/chemical_reaction/syriniver
+ name = "Syriniver"
+ id = /datum/reagent/medicine/C2/syriniver
+ results = list(/datum/reagent/medicine/C2/syriniver = 5)
+ required_reagents = list(/datum/reagent/sulfur = 1, /datum/reagent/fluorine = 1, /datum/reagent/toxin = 1, /datum/reagent/nitrous_oxide = 2)
diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm
index 5fbdf5b92d5..aaacb73884c 100644
--- a/code/modules/reagents/chemistry/recipes/medicine.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine.dm
@@ -22,7 +22,7 @@
name = /datum/reagent/medicine/inacusiate
id = /datum/reagent/medicine/inacusiate
results = list(/datum/reagent/medicine/inacusiate = 2)
- required_reagents = list(/datum/reagent/water = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/charcoal = 1)
+ required_reagents = list(/datum/reagent/water = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/C2/multiver = 1)
/datum/chemical_reaction/synaptizine
name = "Synaptizine"
@@ -30,20 +30,6 @@
results = list(/datum/reagent/medicine/synaptizine = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1, /datum/reagent/water = 1)
-/datum/chemical_reaction/charcoal
- name = "Charcoal"
- id = /datum/reagent/medicine/charcoal
- results = list(/datum/reagent/medicine/charcoal = 2)
- required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/sodiumchloride = 1)
- mix_message = "The mixture yields a fine black powder."
- required_temp = 380
-
-/datum/chemical_reaction/silver_sulfadiazine
- name = "Silver Sulfadiazine"
- id = /datum/reagent/medicine/silver_sulfadiazine
- results = list(/datum/reagent/medicine/silver_sulfadiazine = 5)
- required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/silver = 1, /datum/reagent/sulfur = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1)
-
/datum/chemical_reaction/salglu_solution
name = "Saline-Glucose Solution"
id = /datum/reagent/medicine/salglu_solution
@@ -62,18 +48,11 @@
results = list(/datum/reagent/medicine/mine_salve = 15)
required_reagents = list(/datum/reagent/toxin/plasma = 5, /datum/reagent/iron = 5, /datum/reagent/consumable/sugar = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these
-/datum/chemical_reaction/synthflesh
- name = "Synthflesh"
- id = /datum/reagent/medicine/synthflesh
- results = list(/datum/reagent/medicine/synthflesh = 3)
- required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/styptic_powder = 1)
-
-/datum/chemical_reaction/styptic_powder
- name = "Styptic Powder"
- id = /datum/reagent/medicine/styptic_powder
- results = list(/datum/reagent/medicine/styptic_powder = 4)
- required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1)
- mix_message = "The solution yields an astringent powder."
+/datum/chemical_reaction/instabitaluri
+ name = "Synthflesh (Instabitaluri)"
+ id = /datum/reagent/medicine/C2/instabitaluri
+ results = list(/datum/reagent/medicine/C2/instabitaluri = 3)
+ required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/C2/libital = 1)
/datum/chemical_reaction/calomel
name = "Calomel"
@@ -112,14 +91,6 @@
results = list(/datum/reagent/medicine/salbutamol = 5)
required_reagents = list(/datum/reagent/medicine/sal_acid = 1, /datum/reagent/lithium = 1, /datum/reagent/aluminium = 1, /datum/reagent/bromine = 1, /datum/reagent/ammonia = 1)
-/datum/chemical_reaction/perfluorodecalin
- name = "Perfluorodecalin"
- id = /datum/reagent/medicine/perfluorodecalin
- results = list(/datum/reagent/medicine/perfluorodecalin = 3)
- required_reagents = list(/datum/reagent/hydrogen = 1, /datum/reagent/fluorine = 1, /datum/reagent/oil = 1)
- required_temp = 370
- mix_message = "The mixture rapidly turns into a dense pink liquid."
-
/datum/chemical_reaction/ephedrine
name = "Ephedrine"
id = /datum/reagent/medicine/ephedrine
@@ -138,7 +109,7 @@
name = "Oculine"
id = /datum/reagent/medicine/oculine
results = list(/datum/reagent/medicine/oculine = 3)
- required_reagents = list(/datum/reagent/medicine/charcoal = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
+ required_reagents = list(/datum/reagent/medicine/C2/multiver = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
mix_message = "The mixture sputters loudly and becomes a pale pink color."
/datum/chemical_reaction/atropine
@@ -182,7 +153,7 @@
name = /datum/reagent/medicine/antihol
id = /datum/reagent/medicine/antihol
results = list(/datum/reagent/medicine/antihol = 3)
- required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/copper = 1)
+ required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/C2/multiver = 1, /datum/reagent/copper = 1)
/datum/chemical_reaction/cryoxadone
name = "Cryoxadone"
@@ -254,27 +225,3 @@
id = /datum/reagent/medicine/trophazole
results = list(/datum/reagent/medicine/trophazole = 4)
required_reagents = list(/datum/reagent/copper = 1, /datum/reagent/acetone = 2, /datum/reagent/phosphorus = 1)
-
-/datum/chemical_reaction/thializid
- name = "Thializid"
- id = /datum/reagent/medicine/thializid
- results = list(/datum/reagent/medicine/thializid = 5)
- required_reagents = list(/datum/reagent/sulfur = 1, /datum/reagent/fluorine = 1, /datum/reagent/toxin = 1, /datum/reagent/nitrous_oxide = 2)
-
-/datum/chemical_reaction/sanguiose
- name = "Sanguiose"
- id = /datum/reagent/medicine/sanguiose
- results = list(/datum/reagent/medicine/sanguiose= 4)
- required_reagents = list(/datum/reagent/phosphorus = 1, /datum/reagent/hydrogen = 1,/datum/reagent/phenol=1, /datum/reagent/acetone=1,)
-
-/datum/chemical_reaction/frogenite
- name = "Frogenite"
- id = /datum/reagent/medicine/frogenite
- results = list(/datum/reagent/medicine/frogenite = 4)
- required_reagents = list( /datum/reagent/lye = 1, /datum/reagent/hydrogen = 1,/datum/reagent/phenol=1, /datum/reagent/bromine=1,)
-
-/datum/chemical_reaction/ferveatium
- name = "Ferveatium"
- id = /datum/reagent/medicine/ferveatium
- results = list(/datum/reagent/medicine/ferveatium = 4)
- required_reagents = list( /datum/reagent/ammonia = 1, /datum/reagent/hydrogen = 1,/datum/reagent/phenol=1, /datum/reagent/toxin/acid=1,)
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 0fe5804640d..60e0b32e3ea 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -3,7 +3,7 @@
name = "Sterilizine"
id = /datum/reagent/space_cleaner/sterilizine
results = list(/datum/reagent/space_cleaner/sterilizine = 3)
- required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/chlorine = 1)
+ required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/C2/multiver = 1, /datum/reagent/chlorine = 1)
/datum/chemical_reaction/lube
name = "Space Lube"
@@ -510,7 +510,7 @@
/datum/chemical_reaction/life
name = "Life"
id = "life"
- required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/blood = 1)
+ required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/C2/instabitaluri = 1, /datum/reagent/blood = 1)
required_temp = 374
/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
@@ -519,7 +519,7 @@
/datum/chemical_reaction/life_friendly
name = "Life (Friendly)"
id = "life_friendly"
- required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/consumable/sugar = 1)
+ required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/C2/instabitaluri = 1, /datum/reagent/consumable/sugar = 1)
required_temp = 374
/datum/chemical_reaction/life_friendly/on_reaction(datum/reagents/holder, created_volume)
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index e8ad481494d..bfb50e9ccfb 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -83,7 +83,7 @@
name = "Black Powder"
id = /datum/reagent/blackpowder
results = list(/datum/reagent/blackpowder = 3)
- required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1)
+ required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/C2/multiver = 1, /datum/reagent/sulfur = 1)
/datum/chemical_reaction/reagent_explosion/blackpowder_explosion
name = "Black Powder Kaboom"
diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm
index dcaed3f70a5..d2c52227e30 100644
--- a/code/modules/reagents/chemistry/recipes/toxins.dm
+++ b/code/modules/reagents/chemistry/recipes/toxins.dm
@@ -24,7 +24,7 @@
name = "Itching Powder"
id = /datum/reagent/toxin/itching_powder
results = list(/datum/reagent/toxin/itching_powder = 3)
- required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/medicine/charcoal = 1)
+ required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/medicine/C2/multiver = 1)
/datum/chemical_reaction/facid
name = "Fluorosulfuric acid"
@@ -85,7 +85,7 @@
name = "Mindbreaker Toxin"
id = /datum/reagent/toxin/mindbreaker
results = list(/datum/reagent/toxin/mindbreaker = 5)
- required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/charcoal = 1)
+ required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/C2/multiver = 1)
/datum/chemical_reaction/heparin
name = "Heparin"
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index d42092ddce6..d9311da9e4d 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -1,366 +1,376 @@
-/*
-Contains:
-Borg Hypospray
-Borg Shaker
-Borg Beaker Storage Apparatus
-Nothing to do with hydroponics in here. Sorry to dissapoint you.
-*/
-
-/*
-Borg Hypospray
-*/
-/obj/item/reagent_containers/borghypo
- name = "cyborg hypospray"
- desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment."
- icon = 'icons/obj/syringe.dmi'
- item_state = "hypo"
- lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- icon_state = "borghypo"
- amount_per_transfer_from_this = 5
- volume = 30
- possible_transfer_amounts = list()
- var/mode = 1
- var/charge_cost = 50
- var/charge_tick = 0
- var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
- var/bypass_protection = 0 //If the hypospray can go through armor or thick material
-
- var/list/datum/reagents/reagent_list = list()
- var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/sanguiose, /datum/reagent/medicine/ferveatium, /datum/reagent/medicine/frogenite, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution)
- var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed.
- var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values.
- //Used as list for input() in shakers.
- var/list/reagent_names = list()
-
-
-/obj/item/reagent_containers/borghypo/Initialize()
- . = ..()
-
- for(var/R in reagent_ids)
- add_reagent(R)
-
- START_PROCESSING(SSobj, src)
-
-
-/obj/item/reagent_containers/borghypo/Destroy()
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-
-/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
- charge_tick++
- if(charge_tick >= recharge_time)
- regenerate_reagents()
- charge_tick = 0
-
- //update_icon()
- return 1
-
-// Use this to add more chemicals for the borghypo to produce.
-/obj/item/reagent_containers/borghypo/proc/add_reagent(datum/reagent/reagent)
- reagent_ids |= reagent
- var/datum/reagents/RG = new(30)
- RG.my_atom = src
- reagent_list += RG
-
- var/datum/reagents/R = reagent_list[reagent_list.len]
- R.add_reagent(reagent, 30)
-
- modes[reagent] = modes.len + 1
- reagent_names[initial(reagent.name)] = reagent
-
-/obj/item/reagent_containers/borghypo/proc/del_reagent(datum/reagent/reagent)
- reagent_ids -= reagent
- reagent_names -= initial(reagent.name)
- var/datum/reagents/RG
- var/datum/reagents/TRG
- for(var/i in 1 to reagent_ids.len)
- TRG = reagent_list[i]
- if (TRG.has_reagent(reagent))
- RG = TRG
- break
- if (RG)
- reagent_list -= RG
- RG.del_reagent(reagent)
-
- modes[reagent] = modes.len - 1
-
-/obj/item/reagent_containers/borghypo/proc/regenerate_reagents()
- if(iscyborg(src.loc))
- var/mob/living/silicon/robot/R = src.loc
- if(R && R.cell)
- for(var/i in 1 to reagent_ids.len)
- var/datum/reagents/RG = reagent_list[i]
- if(RG.total_volume < RG.maximum_volume) //Don't recharge reagents and drain power if the storage is full.
- R.cell.use(charge_cost) //Take power from borg...
- RG.add_reagent(reagent_ids[i], 5) //And fill hypo with reagent.
-
-/obj/item/reagent_containers/borghypo/attack(mob/living/carbon/M, mob/user)
- var/datum/reagents/R = reagent_list[mode]
- if(!R.total_volume)
- to_chat(user, "The injector is empty!")
- return
- if(!istype(M))
- return
- if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection))
- to_chat(M, "You feel a tiny prick!")
- to_chat(user, "You inject [M] with the injector.")
- if(M.reagents)
- var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT)
- to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.")
-
- var/list/injected = list()
- for(var/datum/reagent/RG in R.reagent_list)
- injected += RG.name
- log_combat(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])")
-
-/obj/item/reagent_containers/borghypo/attack_self(mob/user)
- var/chosen_reagent = modes[reagent_names[input(user, "What reagent do you want to dispense?") as null|anything in reagent_names]]
- if(!chosen_reagent)
- return
- mode = chosen_reagent
- playsound(loc, 'sound/effects/pop.ogg', 50, 0)
- var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]]
- to_chat(user, "[src] is now dispensing '[R.name]'.")
- return
-
-/obj/item/reagent_containers/borghypo/examine(mob/user)
- . = ..()
- . += DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
-
-/obj/item/reagent_containers/borghypo/proc/DescribeContents()
- . = list()
- var/empty = TRUE
-
- for(var/datum/reagents/RS in reagent_list)
- var/datum/reagent/R = locate() in RS.reagent_list
- if(R)
- . += "It currently has [R.volume] unit\s of [R.name] stored."
- empty = FALSE
-
- if(empty)
- . += "It is currently empty! Allow some time for the internal synthesizer to produce more."
-
-/obj/item/reagent_containers/borghypo/hacked
- icon_state = "borghypo_s"
- reagent_ids = list (/datum/reagent/toxin/acid/fluacid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin)
- accepts_reagent_upgrades = FALSE
-
-/obj/item/reagent_containers/borghypo/clown
- name = "laughter injector"
- desc = "Keeps the crew happy and productive!"
- reagent_ids = list(/datum/reagent/consumable/laughter)
- accepts_reagent_upgrades = FALSE
-
-/obj/item/reagent_containers/borghypo/clown/hacked
- name = "laughter injector"
- desc = "Keeps the crew so happy they don't work!"
- reagent_ids = list(/datum/reagent/consumable/superlaughter)
- accepts_reagent_upgrades = FALSE
-
-/obj/item/reagent_containers/borghypo/syndicate
- name = "syndicate cyborg hypospray"
- desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense."
- icon_state = "borghypo_s"
- charge_cost = 20
- recharge_time = 2
- reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine)
- bypass_protection = 1
- accepts_reagent_upgrades = FALSE
-
-/*
-Borg Shaker
-*/
-/obj/item/reagent_containers/borghypo/borgshaker
- name = "cyborg shaker"
- desc = "An advanced drink synthesizer and mixer."
- icon = 'icons/obj/drinks.dmi'
- icon_state = "shaker"
- possible_transfer_amounts = list(5,10,20)
- charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
- recharge_time = 3
- accepts_reagent_upgrades = FALSE
-
- reagent_ids = list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/grenadine, /datum/reagent/consumable/limejuice, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/space_cola, /datum/reagent/consumable/tonic, /datum/reagent/consumable/sodawater, /datum/reagent/consumable/ice, /datum/reagent/consumable/cream, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/rum, /datum/reagent/consumable/ethanol/gin, /datum/reagent/consumable/ethanol/tequila, /datum/reagent/consumable/ethanol/vermouth, /datum/reagent/consumable/ethanol/wine, /datum/reagent/consumable/ethanol/kahlua, /datum/reagent/consumable/ethanol/cognac, /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/milk, /datum/reagent/consumable/coffee, /datum/reagent/consumable/banana, /datum/reagent/consumable/lemonjuice)
-
-/obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user)
- return //Can't inject stuff with a shaker, can we? //not with that attitude
-
-/obj/item/reagent_containers/borghypo/borgshaker/regenerate_reagents()
- if(iscyborg(src.loc))
- var/mob/living/silicon/robot/R = src.loc
- if(R && R.cell)
- for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious.
- var/valueofi = modes[i]
- var/datum/reagents/RG = reagent_list[valueofi]
- if(RG.total_volume < RG.maximum_volume)
- R.cell.use(charge_cost)
- RG.add_reagent(reagent_ids[valueofi], 5)
-
-/obj/item/reagent_containers/borghypo/borgshaker/afterattack(obj/target, mob/user, proximity)
- . = ..()
- if(!proximity)
- return
-
- else if(target.is_refillable())
- var/datum/reagents/R = reagent_list[mode]
- if(!R.total_volume)
- to_chat(user, "[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.")
- return
-
- if(target.reagents.total_volume >= target.reagents.maximum_volume)
- to_chat(user, "[target] is full.")
- return
-
- var/trans = R.trans_to(target, amount_per_transfer_from_this, transfered_by = user)
- to_chat(user, "You transfer [trans] unit\s of the solution to [target].")
-
-/obj/item/reagent_containers/borghypo/borgshaker/DescribeContents()
- var/datum/reagents/RS = reagent_list[mode]
- var/datum/reagent/R = locate() in RS.reagent_list
- if(R)
- return "It currently has [R.volume] unit\s of [R.name] stored."
- else
- return "It is currently empty! Please allow some time for the synthesizer to produce more."
-
-/obj/item/reagent_containers/borghypo/borgshaker/hacked
- name = "cyborg shaker"
- desc = "Will mix drinks that knock them dead."
- icon = 'icons/obj/drinks.dmi'
- icon_state = "threemileislandglass"
- possible_transfer_amounts = list(5,10,20)
- charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
- recharge_time = 3
- accepts_reagent_upgrades = FALSE
-
- reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet)
-
-/obj/item/reagent_containers/borghypo/peace
- name = "Peace Hypospray"
-
- reagent_ids = list(/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/pax/peaceborg)
- accepts_reagent_upgrades = FALSE
-
-/obj/item/reagent_containers/borghypo/peace/hacked
- desc = "Everything's peaceful in death!"
- icon_state = "borghypo_s"
- reagent_ids = list(/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/pax/peaceborg,/datum/reagent/toxin/staminatoxin,/datum/reagent/toxin/sulfonal,/datum/reagent/toxin/sodium_thiopental,/datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl)
- accepts_reagent_upgrades = FALSE
-
-/obj/item/reagent_containers/borghypo/epi
- name = "epinephrine injector"
- desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
- reagent_ids = list(/datum/reagent/medicine/epinephrine)
- accepts_reagent_upgrades = FALSE
-
-//////////////////////
-//borg beaker holder//
-//////////////////////
-
-/**An arm that only holds beakers. Can drop them, place them into machines, or onto tables. Attacks made by the arm, or
-to the arm are passed onto a stored beaker, if one exists. */
-
-/obj/item/borg_beaker_holder
- name = "beaker storage apparatus"
- desc = "A special apparatus for carrying beakers without spilling the contents. Alt-Z or right-click to drop the beaker."
- icon = 'icons/mob/robot_items.dmi'
- icon_state = "borg_beaker_apparatus"
- var/obj/item/reagent_containers/stored
-
-/obj/item/borg_beaker_holder/Initialize()
- . = ..()
- stored = new /obj/item/reagent_containers/glass/beaker/large(src)
- RegisterSignal(stored, COMSIG_OBJ_UPDATE_ICON, .proc/update_icon)
- update_icon()
- RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/safedecon)
-
-/obj/item/borg_beaker_holder/Destroy()
- if(stored)
- stored.SplashReagents(get_turf(src))
- qdel(stored)
- . = ..()
-
-///If we're safely deconstructed, we put the beaker neatly onto the ground, rather than spilling it everywhere.
-/obj/item/borg_beaker_holder/proc/safedecon()
- if(stored)
- stored.forceMove(get_turf(src))
- stored = null
-
-/obj/item/borg_beaker_holder/examine()
- . = ..()
- if(stored)
- . += "The apparatus currently has [stored] secured, which contains:"
- if(length(stored.reagents.reagent_list))
- for(var/datum/reagent/R in stored.reagents.reagent_list)
- . += "[R.volume] units of [R.name]"
- else
- . += "Nothing."
-
-/obj/item/borg_beaker_holder/update_icon()
- cut_overlays()
- if(stored)
- COMPILE_OVERLAYS(stored)
- stored.pixel_x = 0
- stored.pixel_y = 0
- var/image/img = image("icon"=stored, "layer"=FLOAT_LAYER)
- var/image/arm = image("icon"="borg_beaker_apparatus_arm", "layer"=FLOAT_LAYER)
- if(istype(stored, /obj/item/reagent_containers/glass/beaker))
- arm.pixel_y = arm.pixel_y - 3
- img.plane = FLOAT_PLANE
- add_overlay(img)
- add_overlay(arm)
- else
- var/image/arm = image("icon"="borg_beaker_apparatus_arm", "layer"=FLOAT_LAYER)
- arm.pixel_y = arm.pixel_y - 5
- add_overlay(arm)
-
-/obj/item/borg_beaker_holder/Exited(atom/A)
- if(A == stored) //sanity check
- UnregisterSignal(stored, COMSIG_OBJ_UPDATE_ICON)
- stored = null
- update_icon()
- . = ..()
-
-///A right-click verb, for those not using hotkey mode.
-/obj/item/borg_beaker_holder/verb/verb_dropbeaker()
- set category = "Object"
- set name = "Drop Beaker"
-
- if(usr != loc || !stored)
- return
- stored.forceMove(get_turf(usr))
- return
-
-/obj/item/borg_beaker_holder/attack_self(mob/living/silicon/robot/user)
- if(!stored)
- return ..()
- if(user.client?.keys_held["Alt"])
- stored.forceMove(get_turf(user))
- return
- if(user.a_intent == "help")
- stored.attack_self(user)
- return
- else
- stored.SplashReagents(get_turf(user))
- loc.visible_message("[user] spills the contents of the [stored] all over the floor.")
-
-/obj/item/borg_beaker_holder/pre_attack(atom/A, mob/living/user, params)
- if(istype(A, /obj/item/reagent_containers/glass/beaker) || istype(A, /obj/item/reagent_containers/glass/bottle))
- if(!stored)
- var/obj/item/reagent_containers/container = A
- container.forceMove(src)
- stored = container
- RegisterSignal(stored, COMSIG_OBJ_UPDATE_ICON, .proc/update_icon)
- update_icon()
- return
- if(stored)
- stored.melee_attack_chain(user, A, params)
- return
- . = ..()
-
-/obj/item/borg_beaker_holder/attackby(obj/item/W, mob/user, params)
- if(stored)
- W.melee_attack_chain(user, stored, params)
- return
- . = ..()
\ No newline at end of file
+#define C2NAMEREAGENT "[initial(reagent.name)] (Has Side-Effects)"
+/*
+Contains:
+Borg Hypospray
+Borg Shaker
+Borg Beaker Storage Apparatus
+Nothing to do with hydroponics in here. Sorry to dissapoint you.
+*/
+
+/*
+Borg Hypospray
+*/
+/obj/item/reagent_containers/borghypo
+ name = "cyborg hypospray"
+ desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment."
+ icon = 'icons/obj/syringe.dmi'
+ item_state = "hypo"
+ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
+ icon_state = "borghypo"
+ amount_per_transfer_from_this = 5
+ volume = 30
+ possible_transfer_amounts = list()
+ var/mode = 1
+ var/charge_cost = 50
+ var/charge_tick = 0
+ var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
+ var/bypass_protection = 0 //If the hypospray can go through armor or thick material
+
+ var/list/datum/reagents/reagent_list = list()
+ var/list/reagent_ids = list(/datum/reagent/medicine/C2/convermol, /datum/reagent/medicine/C2/libital, /datum/reagent/medicine/C2/multiver, /datum/reagent/medicine/C2/aiuri, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution)
+ var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed.
+ var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values.
+ //Used as list for input() in shakers.
+ var/list/reagent_names = list()
+
+
+/obj/item/reagent_containers/borghypo/Initialize()
+ . = ..()
+
+ for(var/R in reagent_ids)
+ add_reagent(R)
+
+ START_PROCESSING(SSobj, src)
+
+
+/obj/item/reagent_containers/borghypo/Destroy()
+ STOP_PROCESSING(SSobj, src)
+ return ..()
+
+
+/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
+ charge_tick++
+ if(charge_tick >= recharge_time)
+ regenerate_reagents()
+ charge_tick = 0
+
+ //update_icon()
+ return 1
+
+// Use this to add more chemicals for the borghypo to produce.
+/obj/item/reagent_containers/borghypo/proc/add_reagent(datum/reagent/reagent)
+ reagent_ids |= reagent
+ var/datum/reagents/RG = new(30)
+ RG.my_atom = src
+ reagent_list += RG
+
+ var/datum/reagents/R = reagent_list[reagent_list.len]
+ R.add_reagent(reagent, 30)
+
+ modes[reagent] = modes.len + 1
+
+ if(initial(reagent.harmful))
+ reagent_names[C2NAMEREAGENT] = reagent
+ else
+ reagent_names[initial(reagent.name)] = reagent
+
+/obj/item/reagent_containers/borghypo/proc/del_reagent(datum/reagent/reagent)
+ reagent_ids -= reagent
+ if(istype(reagent, /datum/reagent/medicine/C2))
+ reagent_names -= C2NAMEREAGENT
+ else
+ reagent_names -= initial(reagent.name)
+ var/datum/reagents/RG
+ var/datum/reagents/TRG
+ for(var/i in 1 to reagent_ids.len)
+ TRG = reagent_list[i]
+ if (TRG.has_reagent(reagent))
+ RG = TRG
+ break
+ if (RG)
+ reagent_list -= RG
+ RG.del_reagent(reagent)
+
+ modes[reagent] = modes.len - 1
+
+/obj/item/reagent_containers/borghypo/proc/regenerate_reagents()
+ if(iscyborg(src.loc))
+ var/mob/living/silicon/robot/R = src.loc
+ if(R && R.cell)
+ for(var/i in 1 to reagent_ids.len)
+ var/datum/reagents/RG = reagent_list[i]
+ if(RG.total_volume < RG.maximum_volume) //Don't recharge reagents and drain power if the storage is full.
+ R.cell.use(charge_cost) //Take power from borg...
+ RG.add_reagent(reagent_ids[i], 5) //And fill hypo with reagent.
+
+/obj/item/reagent_containers/borghypo/attack(mob/living/carbon/M, mob/user)
+ var/datum/reagents/R = reagent_list[mode]
+ if(!R.total_volume)
+ to_chat(user, "The injector is empty!")
+ return
+ if(!istype(M))
+ return
+ if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection))
+ to_chat(M, "You feel a tiny prick!")
+ to_chat(user, "You inject [M] with the injector.")
+ if(M.reagents)
+ var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT)
+ to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.")
+
+ var/list/injected = list()
+ for(var/datum/reagent/RG in R.reagent_list)
+ injected += RG.name
+ log_combat(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])")
+
+/obj/item/reagent_containers/borghypo/attack_self(mob/user)
+ var/chosen_reagent = modes[reagent_names[input(user, "What reagent do you want to dispense?") as null|anything in reagent_names]]
+ if(!chosen_reagent)
+ return
+ mode = chosen_reagent
+ playsound(loc, 'sound/effects/pop.ogg', 50, 0)
+ var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]]
+ to_chat(user, "[src] is now dispensing '[R.name]'.")
+ return
+
+/obj/item/reagent_containers/borghypo/examine(mob/user)
+ . = ..()
+ . += DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
+
+/obj/item/reagent_containers/borghypo/proc/DescribeContents()
+ . = list()
+ var/empty = TRUE
+
+ for(var/datum/reagents/RS in reagent_list)
+ var/datum/reagent/R = locate() in RS.reagent_list
+ if(R)
+ . += "It currently has [R.volume] unit\s of [R.name] stored."
+ empty = FALSE
+
+ if(empty)
+ . += "It is currently empty! Allow some time for the internal synthesizer to produce more."
+
+/obj/item/reagent_containers/borghypo/hacked
+ icon_state = "borghypo_s"
+ reagent_ids = list (/datum/reagent/toxin/acid/fluacid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin)
+ accepts_reagent_upgrades = FALSE
+
+/obj/item/reagent_containers/borghypo/clown
+ name = "laughter injector"
+ desc = "Keeps the crew happy and productive!"
+ reagent_ids = list(/datum/reagent/consumable/laughter)
+ accepts_reagent_upgrades = FALSE
+
+/obj/item/reagent_containers/borghypo/clown/hacked
+ name = "laughter injector"
+ desc = "Keeps the crew so happy they don't work!"
+ reagent_ids = list(/datum/reagent/consumable/superlaughter)
+ accepts_reagent_upgrades = FALSE
+
+/obj/item/reagent_containers/borghypo/syndicate
+ name = "syndicate cyborg hypospray"
+ desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense."
+ icon_state = "borghypo_s"
+ charge_cost = 20
+ recharge_time = 2
+ reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine)
+ bypass_protection = 1
+ accepts_reagent_upgrades = FALSE
+
+/*
+Borg Shaker
+*/
+/obj/item/reagent_containers/borghypo/borgshaker
+ name = "cyborg shaker"
+ desc = "An advanced drink synthesizer and mixer."
+ icon = 'icons/obj/drinks.dmi'
+ icon_state = "shaker"
+ possible_transfer_amounts = list(5,10,20)
+ charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
+ recharge_time = 3
+ accepts_reagent_upgrades = FALSE
+
+ reagent_ids = list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/grenadine, /datum/reagent/consumable/limejuice, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/space_cola, /datum/reagent/consumable/tonic, /datum/reagent/consumable/sodawater, /datum/reagent/consumable/ice, /datum/reagent/consumable/cream, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/vodka, /datum/reagent/consumable/ethanol/rum, /datum/reagent/consumable/ethanol/gin, /datum/reagent/consumable/ethanol/tequila, /datum/reagent/consumable/ethanol/vermouth, /datum/reagent/consumable/ethanol/wine, /datum/reagent/consumable/ethanol/kahlua, /datum/reagent/consumable/ethanol/cognac, /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/milk, /datum/reagent/consumable/coffee, /datum/reagent/consumable/banana, /datum/reagent/consumable/lemonjuice)
+
+/obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user)
+ return //Can't inject stuff with a shaker, can we? //not with that attitude
+
+/obj/item/reagent_containers/borghypo/borgshaker/regenerate_reagents()
+ if(iscyborg(src.loc))
+ var/mob/living/silicon/robot/R = src.loc
+ if(R && R.cell)
+ for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious.
+ var/valueofi = modes[i]
+ var/datum/reagents/RG = reagent_list[valueofi]
+ if(RG.total_volume < RG.maximum_volume)
+ R.cell.use(charge_cost)
+ RG.add_reagent(reagent_ids[valueofi], 5)
+
+/obj/item/reagent_containers/borghypo/borgshaker/afterattack(obj/target, mob/user, proximity)
+ . = ..()
+ if(!proximity)
+ return
+
+ else if(target.is_refillable())
+ var/datum/reagents/R = reagent_list[mode]
+ if(!R.total_volume)
+ to_chat(user, "[src] is currently out of this ingredient! Please allow some time for the synthesizer to produce more.")
+ return
+
+ if(target.reagents.total_volume >= target.reagents.maximum_volume)
+ to_chat(user, "[target] is full.")
+ return
+
+ var/trans = R.trans_to(target, amount_per_transfer_from_this, transfered_by = user)
+ to_chat(user, "You transfer [trans] unit\s of the solution to [target].")
+
+/obj/item/reagent_containers/borghypo/borgshaker/DescribeContents()
+ var/datum/reagents/RS = reagent_list[mode]
+ var/datum/reagent/R = locate() in RS.reagent_list
+ if(R)
+ return "It currently has [R.volume] unit\s of [R.name] stored."
+ else
+ return "It is currently empty! Please allow some time for the synthesizer to produce more."
+
+/obj/item/reagent_containers/borghypo/borgshaker/hacked
+ name = "cyborg shaker"
+ desc = "Will mix drinks that knock them dead."
+ icon = 'icons/obj/drinks.dmi'
+ icon_state = "threemileislandglass"
+ possible_transfer_amounts = list(5,10,20)
+ charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
+ recharge_time = 3
+ accepts_reagent_upgrades = FALSE
+
+ reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet)
+
+/obj/item/reagent_containers/borghypo/peace
+ name = "Peace Hypospray"
+
+ reagent_ids = list(/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/pax/peaceborg)
+ accepts_reagent_upgrades = FALSE
+
+/obj/item/reagent_containers/borghypo/peace/hacked
+ desc = "Everything's peaceful in death!"
+ icon_state = "borghypo_s"
+ reagent_ids = list(/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/pax/peaceborg,/datum/reagent/toxin/staminatoxin,/datum/reagent/toxin/sulfonal,/datum/reagent/toxin/sodium_thiopental,/datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl)
+ accepts_reagent_upgrades = FALSE
+
+/obj/item/reagent_containers/borghypo/epi
+ name = "epinephrine injector"
+ desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
+ reagent_ids = list(/datum/reagent/medicine/epinephrine)
+ accepts_reagent_upgrades = FALSE
+
+//////////////////////
+//borg beaker holder//
+//////////////////////
+
+/**An arm that only holds beakers. Can drop them, place them into machines, or onto tables. Attacks made by the arm, or
+to the arm are passed onto a stored beaker, if one exists. */
+
+/obj/item/borg_beaker_holder
+ name = "beaker storage apparatus"
+ desc = "A special apparatus for carrying beakers without spilling the contents. Alt-Z or right-click to drop the beaker."
+ icon = 'icons/mob/robot_items.dmi'
+ icon_state = "borg_beaker_apparatus"
+ var/obj/item/reagent_containers/stored
+
+/obj/item/borg_beaker_holder/Initialize()
+ . = ..()
+ stored = new /obj/item/reagent_containers/glass/beaker/large(src)
+ RegisterSignal(stored, COMSIG_OBJ_UPDATE_ICON, .proc/update_icon)
+ update_icon()
+ RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/safedecon)
+
+/obj/item/borg_beaker_holder/Destroy()
+ if(stored)
+ stored.SplashReagents(get_turf(src))
+ qdel(stored)
+ . = ..()
+
+///If we're safely deconstructed, we put the beaker neatly onto the ground, rather than spilling it everywhere.
+/obj/item/borg_beaker_holder/proc/safedecon()
+ if(stored)
+ stored.forceMove(get_turf(src))
+ stored = null
+
+/obj/item/borg_beaker_holder/examine()
+ . = ..()
+ if(stored)
+ . += "The apparatus currently has [stored] secured, which contains:"
+ if(length(stored.reagents.reagent_list))
+ for(var/datum/reagent/R in stored.reagents.reagent_list)
+ . += "[R.volume] units of [R.name]"
+ else
+ . += "Nothing."
+
+/obj/item/borg_beaker_holder/update_icon()
+ cut_overlays()
+ if(stored)
+ COMPILE_OVERLAYS(stored)
+ stored.pixel_x = 0
+ stored.pixel_y = 0
+ var/image/img = image("icon"=stored, "layer"=FLOAT_LAYER)
+ var/image/arm = image("icon"="borg_beaker_apparatus_arm", "layer"=FLOAT_LAYER)
+ if(istype(stored, /obj/item/reagent_containers/glass/beaker))
+ arm.pixel_y = arm.pixel_y - 3
+ img.plane = FLOAT_PLANE
+ add_overlay(img)
+ add_overlay(arm)
+ else
+ var/image/arm = image("icon"="borg_beaker_apparatus_arm", "layer"=FLOAT_LAYER)
+ arm.pixel_y = arm.pixel_y - 5
+ add_overlay(arm)
+
+/obj/item/borg_beaker_holder/Exited(atom/A)
+ if(A == stored) //sanity check
+ UnregisterSignal(stored, COMSIG_OBJ_UPDATE_ICON)
+ stored = null
+ update_icon()
+ . = ..()
+
+///A right-click verb, for those not using hotkey mode.
+/obj/item/borg_beaker_holder/verb/verb_dropbeaker()
+ set category = "Object"
+ set name = "Drop Beaker"
+
+ if(usr != loc || !stored)
+ return
+ stored.forceMove(get_turf(usr))
+ return
+
+/obj/item/borg_beaker_holder/attack_self(mob/living/silicon/robot/user)
+ if(!stored)
+ return ..()
+ if(user.client?.keys_held["Alt"])
+ stored.forceMove(get_turf(user))
+ return
+ if(user.a_intent == "help")
+ stored.attack_self(user)
+ return
+ else
+ stored.SplashReagents(get_turf(user))
+ loc.visible_message("[user] spills the contents of the [stored] all over the floor.")
+
+/obj/item/borg_beaker_holder/pre_attack(atom/A, mob/living/user, params)
+ if(istype(A, /obj/item/reagent_containers/glass/beaker) || istype(A, /obj/item/reagent_containers/glass/bottle))
+ if(!stored)
+ var/obj/item/reagent_containers/container = A
+ container.forceMove(src)
+ stored = container
+ RegisterSignal(stored, COMSIG_OBJ_UPDATE_ICON, .proc/update_icon)
+ update_icon()
+ return
+ if(stored)
+ stored.melee_attack_chain(user, A, params)
+ return
+ . = ..()
+
+/obj/item/borg_beaker_holder/attackby(obj/item/W, mob/user, params)
+ if(stored)
+ W.melee_attack_chain(user, stored, params)
+ return
+ . = ..()
+
+#undef C2NAMEREAGENT
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index 6a6f0ff4126..459ee9ec36c 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -78,10 +78,10 @@
desc = "A small bottle of Mannitol. Useful for healing brain damage."
list_reagents = list(/datum/reagent/medicine/mannitol = 30)
-/obj/item/reagent_containers/glass/bottle/charcoal
- name = "charcoal bottle"
- desc = "A small bottle of charcoal, which removes toxins and other chemicals from the bloodstream."
- list_reagents = list(/datum/reagent/medicine/charcoal = 30)
+/obj/item/reagent_containers/glass/bottle/multiver
+ name = "multiver bottle"
+ desc = "A small bottle of multiver, which removes toxins and other chemicals from the bloodstream but causes shortness of breath. All effects scale with the amount of reagents in the patient."
+ list_reagents = list(/datum/reagent/medicine/C2/multiver = 30)
/obj/item/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
@@ -307,7 +307,7 @@
/obj/item/reagent_containers/glass/bottle/tuberculosiscure
name = "BVAK bottle"
desc = "A small bottle containing Bio Virus Antidote Kit."
- list_reagents = list(/datum/reagent/medicine/atropine = 5, /datum/reagent/medicine/epinephrine = 5, /datum/reagent/medicine/perfluorodecalin = 10, /datum/reagent/medicine/spaceacillin = 10)
+ list_reagents = list(/datum/reagent/medicine/atropine = 5, /datum/reagent/medicine/epinephrine = 5, /datum/reagent/medicine/C2/convermol = 10, /datum/reagent/medicine/spaceacillin = 10)
//Oldstation.dmm chemical storage bottles
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index d0f09da1c64..204bd00498e 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -222,24 +222,24 @@
/obj/item/reagent_containers/glass/beaker/slime
list_reagents = list(/datum/reagent/toxin/slimejelly = 50)
-/obj/item/reagent_containers/glass/beaker/large/styptic
- name = "styptic reserve tank"
- list_reagents = list(/datum/reagent/medicine/styptic_powder = 50)
+/obj/item/reagent_containers/glass/beaker/large/libital
+ name = "libital reserve tank"
+ list_reagents = list(/datum/reagent/medicine/C2/libital = 50)
-/obj/item/reagent_containers/glass/beaker/large/silver_sulfadiazine
- name = "silver sulfadiazine reserve tank"
- list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 50)
+/obj/item/reagent_containers/glass/beaker/large/aiuri
+ name = "aiuri reserve tank"
+ list_reagents = list(/datum/reagent/medicine/C2/aiuri = 50)
-/obj/item/reagent_containers/glass/beaker/large/charcoal
- name = "charcoal reserve tank"
- list_reagents = list(/datum/reagent/medicine/charcoal = 50)
+/obj/item/reagent_containers/glass/beaker/large/multiver
+ name = "multiver reserve tank"
+ list_reagents = list(/datum/reagent/medicine/C2/multiver = 50)
/obj/item/reagent_containers/glass/beaker/large/epinephrine
name = "epinephrine reserve tank"
list_reagents = list(/datum/reagent/medicine/epinephrine = 50)
-/obj/item/reagent_containers/glass/beaker/synthflesh
- list_reagents = list(/datum/reagent/medicine/synthflesh = 50)
+/obj/item/reagent_containers/glass/beaker/instabitaluri
+ list_reagents = list(/datum/reagent/medicine/C2/instabitaluri = 50)
/obj/item/reagent_containers/glass/bucket
name = "bucket"
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index c1100bfdcc3..1fcaf8b1b1d 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -193,7 +193,7 @@
item_state = "tbpen"
volume = 60
amount_per_transfer_from_this = 30
- list_reagents = list(/datum/reagent/medicine/atropine = 10, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/omnizine = 20, /datum/reagent/medicine/perfluorodecalin = 15, /datum/reagent/medicine/spaceacillin = 20)
+ list_reagents = list(/datum/reagent/medicine/atropine = 10, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/omnizine = 20, /datum/reagent/medicine/C2/convermol = 15, /datum/reagent/medicine/spaceacillin = 20)
/obj/item/reagent_containers/hypospray/medipen/tuberculosiscure/update_icon()
if(reagents.total_volume > 30)
diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm
index 86e0ad74ce0..22b7e009044 100644
--- a/code/modules/reagents/reagent_containers/medigel.dm
+++ b/code/modules/reagents/reagent_containers/medigel.dm
@@ -66,23 +66,23 @@
reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = apply_type)
return
-/obj/item/reagent_containers/medigel/styptic
- name = "medical gel (styptic powder)"
- desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains styptic powder, for treating cuts and bruises."
+/obj/item/reagent_containers/medigel/libital
+ name = "medical gel (libital)"
+ desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains libital, for treating cuts and bruises. Libital does minor liver damage."
icon_state = "brutegel"
- list_reagents = list(/datum/reagent/medicine/styptic_powder = 60)
+ list_reagents = list(/datum/reagent/medicine/C2/libital = 60)
-/obj/item/reagent_containers/medigel/silver_sulf
- name = "medical gel (silver sulfadiazine)"
- desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains silver sulfadiazine, useful for treating burns."
+/obj/item/reagent_containers/medigel/aiuri
+ name = "medical gel (aiuri)"
+ desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains aiuri, useful for treating burns. Aiuri does minor eye damage."
icon_state = "burngel"
- list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 60)
+ list_reagents = list(/datum/reagent/medicine/C2/aiuri = 60)
-/obj/item/reagent_containers/medigel/synthflesh
- name = "medical gel (synthflesh)"
- desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains synthflesh, an apex brute and burn healing agent."
+/obj/item/reagent_containers/medigel/instabitaluri
+ name = "medical gel (instabitaluri)"
+ desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap. This one contains instabitaluri, a brute and burn healing agent."
icon_state = "synthgel"
- list_reagents = list(/datum/reagent/medicine/synthflesh = 60)
+ list_reagents = list(/datum/reagent/medicine/C2/instabitaluri = 60)
custom_price = 80
/obj/item/reagent_containers/medigel/sterilizine
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index fd05482daa6..7761fedd6e9 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -27,20 +27,20 @@
return 0
return 1 // Masks were stopping people from "eating" patches. Thanks, inheritance.
-/obj/item/reagent_containers/pill/patch/styptic
- name = "brute patch"
- desc = "Helps with brute injuries."
- list_reagents = list(/datum/reagent/medicine/styptic_powder = 20)
+/obj/item/reagent_containers/pill/patch/libital
+ name = "libital patch (brute)"
+ desc = "A common pain reliever. Does minor liver damage."
+ list_reagents = list(/datum/reagent/medicine/C2/libital = 10)
icon_state = "bandaid_brute"
-/obj/item/reagent_containers/pill/patch/silver_sulf
- name = "burn patch"
- desc = "Helps with burn injuries."
- list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 20)
+/obj/item/reagent_containers/pill/patch/aiuri
+ name = "aiuri patch (burn)"
+ desc = "Helps with burn injuries. Does minor eye damage."
+ list_reagents = list(/datum/reagent/medicine/C2/aiuri = 10)
icon_state = "bandaid_burn"
-/obj/item/reagent_containers/pill/patch/synthflesh
- name = "synthflesh patch"
+/obj/item/reagent_containers/pill/patch/instabitaluri
+ name = "instabitaluri patch"
desc = "Helps with brute and burn injuries."
- list_reagents = list(/datum/reagent/medicine/synthflesh = 20)
+ list_reagents = list(/datum/reagent/medicine/C2/instabitaluri = 20)
icon_state = "bandaid_both"
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 43ab35fff85..c297e487854 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -114,11 +114,11 @@
list_reagents = list(/datum/reagent/medicine/salbutamol = 30)
rename_with_volume = TRUE
-/obj/item/reagent_containers/pill/charcoal
- name = "charcoal pill"
+/obj/item/reagent_containers/pill/multiver
+ name = "multiver pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
- list_reagents = list(/datum/reagent/medicine/charcoal = 10)
+ list_reagents = list(/datum/reagent/medicine/C2/multiver = 10)
rename_with_volume = TRUE
/obj/item/reagent_containers/pill/epinephrine
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index fc571957a0e..38bd5f004d3 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -179,15 +179,15 @@
desc = "Contains epinephrine - used to stabilize patients."
list_reagents = list(/datum/reagent/medicine/epinephrine = 15)
-/obj/item/reagent_containers/syringe/charcoal
- name = "syringe (charcoal)"
- desc = "Contains charcoal."
- list_reagents = list(/datum/reagent/medicine/charcoal = 15)
+/obj/item/reagent_containers/syringe/multiver
+ name = "syringe (multiver)"
+ desc = "Contains multiver."
+ list_reagents = list(/datum/reagent/medicine/C2/multiver = 15)
-/obj/item/reagent_containers/syringe/perfluorodecalin
- name = "syringe (perfluorodecalin)"
- desc = "Contains perfluorodecalin."
- list_reagents = list(/datum/reagent/medicine/perfluorodecalin = 15)
+/obj/item/reagent_containers/syringe/convermol
+ name = "syringe (convermol)"
+ desc = "Contains convermol."
+ list_reagents = list(/datum/reagent/medicine/C2/convermol = 15)
/obj/item/reagent_containers/syringe/antiviral
name = "syringe (spaceacillin)"
@@ -280,7 +280,7 @@
desc = "Contains pentetic acid, used to reduce high levels of radiation and heal severe toxins."
list_reagents = list(/datum/reagent/medicine/pen_acid = 15)
-/obj/item/reagent_containers/syringe/thializid
- name = "syringe (thializid)"
- desc = "Contains thializid, used to treat toxins and purge chemicals.The tag on the syringe states 'Inject one time per minute'"
- list_reagents = list(/datum/reagent/medicine/thializid = 15)
+/obj/item/reagent_containers/syringe/syriniver
+ name = "syringe (syriniver)"
+ desc = "Contains syriniver, used to treat toxins and purge chemicals.The tag on the syringe states 'Inject one time per minute'"
+ list_reagents = list(/datum/reagent/medicine/C2/syriniver = 15)
\ No newline at end of file
diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm
index 954dfca6586..3ed407da91b 100644
--- a/code/modules/research/designs/limbgrower_designs.dm
+++ b/code/modules/research/designs/limbgrower_designs.dm
@@ -6,7 +6,7 @@
name = "Left Arm"
id = "leftarm"
build_type = LIMBGROWER
- reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ reagents_list = list(/datum/reagent/medicine/C2/instabitaluri = 25)
build_path = /obj/item/bodypart/l_arm
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -14,7 +14,7 @@
name = "Right Arm"
id = "rightarm"
build_type = LIMBGROWER
- reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ reagents_list = list(/datum/reagent/medicine/C2/instabitaluri = 25)
build_path = /obj/item/bodypart/r_arm
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -22,7 +22,7 @@
name = "Left Leg"
id = "leftleg"
build_type = LIMBGROWER
- reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ reagents_list = list(/datum/reagent/medicine/C2/instabitaluri = 25)
build_path = /obj/item/bodypart/l_leg
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -30,7 +30,7 @@
name = "Right Leg"
id = "rightleg"
build_type = LIMBGROWER
- reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ reagents_list = list(/datum/reagent/medicine/C2/instabitaluri = 25)
build_path = /obj/item/bodypart/r_leg
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -38,6 +38,6 @@
name = "Arm Blade"
id = "armblade"
build_type = LIMBGROWER
- reagents_list = list(/datum/reagent/medicine/synthflesh = 75)
+ reagents_list = list(/datum/reagent/medicine/C2/instabitaluri = 75)
build_path = /obj/item/melee/synthetic_arm_blade
category = list("other","emagged")
\ No newline at end of file
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index d71a9ad6bea..56b5aaf83c2 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -9,27 +9,27 @@
/obj/item/reagent_containers/syringe = 12,
/obj/item/reagent_containers/dropper = 3,
/obj/item/healthanalyzer = 4,
- /obj/item/reagent_containers/pill/patch/styptic = 5,
- /obj/item/reagent_containers/pill/patch/silver_sulf = 5,
- /obj/item/reagent_containers/syringe/perfluorodecalin = 2,
+ /obj/item/reagent_containers/pill/patch/libital = 5,
+ /obj/item/reagent_containers/pill/patch/aiuri = 5,
+ /obj/item/reagent_containers/syringe/convermol = 2,
/obj/item/reagent_containers/pill/insulin = 5,
- /obj/item/reagent_containers/glass/bottle/charcoal = 4,
+ /obj/item/reagent_containers/glass/bottle/multiver = 4,
/obj/item/reagent_containers/glass/bottle/epinephrine = 3,
/obj/item/reagent_containers/glass/bottle/morphine = 4,
/obj/item/reagent_containers/glass/bottle/potass_iodide = 1,
/obj/item/reagent_containers/glass/bottle/salglu_solution = 3,
/obj/item/reagent_containers/glass/bottle/toxin = 3,
/obj/item/reagent_containers/syringe/antiviral = 6,
- /obj/item/reagent_containers/medigel/styptic = 2,
- /obj/item/reagent_containers/medigel/silver_sulf = 2,
+ /obj/item/reagent_containers/medigel/libital = 2,
+ /obj/item/reagent_containers/medigel/aiuri = 2,
/obj/item/reagent_containers/medigel/sterilizine = 1,
/obj/item/sensor_device = 2,
/obj/item/pinpointer/crew = 2)
contraband = list(/obj/item/reagent_containers/pill/tox = 3,
/obj/item/reagent_containers/pill/morphine = 4,
- /obj/item/reagent_containers/pill/charcoal = 6,
+ /obj/item/reagent_containers/pill/multiver = 6,
/obj/item/storage/box/hug/medical = 1)
- premium = list(/obj/item/reagent_containers/medigel/synthflesh = 2,
+ premium = list(/obj/item/reagent_containers/medigel/instabitaluri = 2,
/obj/item/storage/pill_bottle/psicodine = 2,
/obj/item/reagent_containers/hypospray/medipen = 3,
/obj/item/storage/belt/medical = 3,
diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm
index 91f7735dda5..80297eba7dc 100644
--- a/code/modules/vending/medical_wall.dm
+++ b/code/modules/vending/medical_wall.dm
@@ -5,11 +5,11 @@
icon_deny = "wallmed-deny"
density = FALSE
products = list(/obj/item/reagent_containers/syringe = 3,
- /obj/item/reagent_containers/pill/patch/styptic = 5,
- /obj/item/reagent_containers/pill/patch/silver_sulf = 5,
- /obj/item/reagent_containers/pill/charcoal = 2,
- /obj/item/reagent_containers/medigel/styptic = 2,
- /obj/item/reagent_containers/medigel/silver_sulf = 2,
+ /obj/item/reagent_containers/pill/patch/libital = 5,
+ /obj/item/reagent_containers/pill/patch/aiuri = 5,
+ /obj/item/reagent_containers/pill/multiver = 2,
+ /obj/item/reagent_containers/medigel/libital = 2,
+ /obj/item/reagent_containers/medigel/aiuri = 2,
/obj/item/reagent_containers/medigel/sterilizine = 1)
contraband = list(/obj/item/reagent_containers/pill/tox = 2,
/obj/item/reagent_containers/pill/morphine = 2)
@@ -26,6 +26,6 @@
/obj/machinery/vending/wallmed/pubby
products = list(/obj/item/reagent_containers/syringe = 3,
- /obj/item/reagent_containers/pill/patch/styptic = 1,
- /obj/item/reagent_containers/pill/patch/silver_sulf = 1,
+ /obj/item/reagent_containers/pill/patch/libital = 1,
+ /obj/item/reagent_containers/pill/patch/aiuri = 1,
/obj/item/reagent_containers/medigel/sterilizine = 1)
diff --git a/tgstation.dme b/tgstation.dme
index 22a60fc781a..d267de54f08 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2582,6 +2582,7 @@
#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm"
#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm"
#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm"
+#include "code\modules\reagents\chemistry\reagents\cat2_medicine_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\food_reagents.dm"
@@ -2589,6 +2590,7 @@
#include "code\modules\reagents\chemistry\reagents\other_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm"
+#include "code\modules\reagents\chemistry\recipes\cat2_medicines.dm"
#include "code\modules\reagents\chemistry\recipes\drugs.dm"
#include "code\modules\reagents\chemistry\recipes\medicine.dm"
#include "code\modules\reagents\chemistry\recipes\others.dm"