diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm
index 8ede060b3cc..2deb6a9ba0c 100644
--- a/_maps/map_files/MiniStation/MiniStation.dmm
+++ b/_maps/map_files/MiniStation/MiniStation.dmm
@@ -1246,7 +1246,7 @@
"xX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small,/obj/machinery/processor,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xY" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xZ" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
-"ya" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
+"ya" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
"yb" = (/obj/structure/table,/obj/machinery/light,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/hypospray,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
"yc" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"}; width = 18},/turf/space,/area/space)
"yd" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating,/area/hallway/primary/central)
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index d1ff2b07c89..99f2902a4c9 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -418,7 +418,7 @@
"aib" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aic" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aid" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
-"aie" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
+"aie" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
"aif" = (/obj/machinery/camera{c_tag = "Prison Sanitatium"; dir = 1; network = list("SS13","Prison"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
"aig" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
"aih" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig)
@@ -6426,7 +6426,7 @@
"ctD" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine,/area/toxins/explab)
"ctE" = (/obj/machinery/r_n_d/experimentor,/turf/simulated/floor/engine,/area/toxins/explab)
"ctF" = (/obj/machinery/camera{c_tag = "Telescience Test Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/simulated/floor/engine,/area/toxins/explab)
-"ctG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
+"ctG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"ctH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering)
"ctI" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office)
diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm
index 5013f51b1ae..9b2b4ce6d12 100644
--- a/_maps/map_files/generic/z2.dmm
+++ b/_maps/map_files/generic/z2.dmm
@@ -741,7 +741,7 @@
"om" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"on" = (/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"oo" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"op" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"op" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"oq" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space)
"or" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"os" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
diff --git a/code/datums/diseases/advance/symptoms/stimulant.dm b/code/datums/diseases/advance/symptoms/stimulant.dm
index aeb76b340c4..c4cf94b0956 100644
--- a/code/datums/diseases/advance/symptoms/stimulant.dm
+++ b/code/datums/diseases/advance/symptoms/stimulant.dm
@@ -30,8 +30,8 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(5)
- if (M.reagents.get_reagent_amount("morphine") < 30)
- M.reagents.add_reagent("morphine", 10)
+ if (M.reagents.get_reagent_amount("ephedrine") < 30)
+ M.reagents.add_reagent("ephedrine", 10)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
M << "[pick("You feel restless.", "You feel like running laps around the station.")]"
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index f5c0b4d5d33..d0822f3e127 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -3,8 +3,8 @@
max_stages = 4
spread_text = "On contact"
spread_flags = CONTACT_GENERAL
- cure_text = "Alkysine"
- cures = list("alkysine")
+ cure_text = "Mannitol"
+ cures = list("mannitol")
agent = "Cryptococcus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
disease_flags = CAN_CARRY|CAN_RESIST
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index 6df8582e325..c24e13668e0 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -3,8 +3,8 @@
max_stages = 4
spread_text = "On contact"
spread_flags = CONTACT_GENERAL
- cure_text = "Ryetalyn"
- cures = list("ryetalyn")
+ cure_text = "Mutadone"
+ cures = list("mutadone")
disease_flags = CAN_CARRY|CAN_RESIST
agent = "S4E1 retrovirus"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm
index bc22d9641bf..c5eb3cea9e2 100644
--- a/code/datums/diseases/retrovirus.dm
+++ b/code/datums/diseases/retrovirus.dm
@@ -20,7 +20,7 @@
..()
agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]"
if(prob(40))
- cures = list("ryetalyn")
+ cures = list("mutadone")
else
restcure = 1
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index c6d5253ee01..9a2b80739f7 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -534,8 +534,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/reagent_containers/glass/bottle/charcoal,
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,
- /obj/item/weapon/reagent_containers/glass/bottle/stoxin,
- /obj/item/weapon/reagent_containers/glass/bottle/stoxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/morphine,
+ /obj/item/weapon/reagent_containers/glass/bottle/morphine,
/obj/item/weapon/reagent_containers/glass/bottle/morphine,
/obj/item/weapon/reagent_containers/glass/bottle/morphine,
/obj/item/weapon/reagent_containers/glass/bottle/morphine,
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index c25fb4d9653..4fec23faac0 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -311,7 +311,7 @@ var/list/uplink_items = list()
name = "Poison Kit"
desc = "An assortment of nasty chemicals."
item = /obj/item/weapon/storage/box/syndie_kit/chemical
- cost = 2
+ cost = 6
surplus = 50
/datum/uplink_item/stealthy_weapons/detomatix
diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm
index e69d8f861a1..ceb7fc8e311 100644
--- a/code/game/gamemodes/changeling/powers/panacea.dm
+++ b/code/game/gamemodes/changeling/powers/panacea.dm
@@ -10,7 +10,7 @@
/obj/effect/proc_holder/changeling/panacea/sting_action(var/mob/user)
user << "We cleanse impurities from our form."
- user.reagents.add_reagent("ryetalyn", 10)
+ user.reagents.add_reagent("mutadone", 10)
user.reagents.add_reagent("potass_iodide", 10)
user.reagents.add_reagent("charcoal", 20)
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index a64291d805d..610708a9454 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -16,10 +16,9 @@
var/initial_bin_rating = 1
var/min_health = 25
var/list/injection_chems = list() //list of injectable chems except ephedrine, coz ephedrine is always avalible
- var/list/possible_chems = list(list("stoxin", "salbutamol", "salglu_solution", "salglu_solution"),
- list("stoxin", "salbutamol", "salglu_solution", "salglu_solution", "oculine"),
- list("stoxin", "salbutamol", "salglu_solution", "salglu_solution", "oculine", "charcoal", "ryetalyn", "alkysine", "pen_acid"))
-
+ var/list/possible_chems = list(list("morphine", "salbutamol", "salglu_solution"),
+ list("morphine", "salbutamol", "salglu_solution", "oculine"),
+ list("morphine", "salbutamol", "salglu_solution", "oculine", "charcoal", "mutadone", "mannitol", "pen_acid"))
/obj/machinery/sleeper/New()
..()
component_parts = list()
@@ -228,4 +227,4 @@
if(state_open)
icon_state = "sleeper-open"
else
- icon_state = "sleeper"
+ icon_state = "sleeper"
\ No newline at end of file
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index ae846787d06..68ca61280e7 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -47,6 +47,10 @@
/obj/machinery/atmospherics/unary/cryo_cell/process()
..()
+ if(occupant)
+ if(occupant.health >= 100)
+ on = 0
+ open_machine()
if(!node || !is_operational())
return
if(!on)
@@ -61,7 +65,6 @@
if(occupant)
if(occupant.stat != 2)
process_occupant()
-
if(abs(temperature_archived-air_contents.temperature) > 1)
parent.update = 1
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 4efa040e6c5..8ef870b823c 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -765,10 +765,10 @@
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
req_access_txt = "5"
products = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4,
- /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4,
+ /obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4,
/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/weapon/reagent_containers/hypospray/medipen = 5,
/obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, /obj/item/device/sensor_device = 2)
- contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6)
+ contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6)
//This one's from bay12
diff --git a/code/modules/food&drinks/recipes/drinks_recipes.dm b/code/modules/food&drinks/recipes/drinks_recipes.dm
index 92e19a356da..cd97b0eccc8 100644
--- a/code/modules/food&drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food&drinks/recipes/drinks_recipes.dm
@@ -441,7 +441,7 @@
name = "Neurotoxin"
id = "neurotoxin"
result = "neurotoxin"
- required_reagents = list("gargleblaster" = 1, "stoxin" = 1)
+ required_reagents = list("gargleblaster" = 1, "morphine" = 1)
result_amount = 2
/datum/chemical_reaction/snowwhite
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 36e7d97b11d..b757827c5da 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -844,14 +844,14 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("charcoal", 3+round(potency / 3, 1))
- reagents.add_reagent("stoxin", 3+round(potency / 3, 1))
+ reagents.add_reagent("morphine", 3+round(potency / 3, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi/attackby(var/obj/item/O as obj, var/mob/user as mob)
. = ..()
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
user << "- Anti-Toxin: [reagents.get_reagent_amount("charcoal")]%"
- user << "- Sleep Toxin: [reagents.get_reagent_amount("stoxin")]%"
+ user << "- Morphine: [reagents.get_reagent_amount("morphine")]%"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita
seed = /obj/item/seeds/amanitamycelium
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 42d05eb5d08..fa45d328e39 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -65,7 +65,7 @@
melee_damage_upper = 10
poison_per_bite = 10
var/atom/cocoon_target
- poison_type = "stoxin"
+ poison_type = "morphine"
var/fed = 0
//hunters have the most poison and move the fastest, so they can find prey
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 2d5ead77aff..bbc692383da 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -322,7 +322,7 @@
/obj/item/weapon/paper/Toxin
name = "paper- 'Chemical Information'"
- info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep toxins.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSleep Toxin T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization"
+ info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep toxins.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tMorphine T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization"
/obj/item/weapon/paper/courtroom
name = "paper- 'A Crash Course in Legal SOP on SS13'"
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index df2f366af0e..e37f7ecfa38 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -70,7 +70,7 @@
/obj/item/weapon/pen/sleepy/New()
create_reagents(55)
- reagents.add_reagent("stoxin", 30)
+ reagents.add_reagent("morphine", 30)
reagents.add_reagent("mutetoxin", 15)
reagents.add_reagent("tirizene", 10)
..()
diff --git a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
index 2570f4232e7..aacabb4a04d 100644
--- a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
+++ b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
@@ -10,6 +10,8 @@ datum/reagent/nicotine
description = "Stun reduction per cycle, slight stamina regeneration buff. Overdoses become rapidly deadly."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
+ overdose_threshold = 35
+ addiction_threshold = 30
datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -18,11 +20,14 @@ datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob)
M << "[smoke_message]"
M.AdjustStunned(-1)
M.adjustStaminaLoss(-1*REM)
- if(volume > 35)
- if(prob(20))
- M << "You feel like you smoked too much."
- M.adjustToxLoss(1*REM)
- M.adjustOxyLoss(1*REM)
+ ..()
+ return
+
+datum/reagent/nicotine/overdose_process(var/mob/living/M as mob)
+ if(prob(20))
+ M << "You feel like you smoked too much."
+ M.adjustToxLoss(1*REM)
+ M.adjustOxyLoss(1*REM)
..()
return
@@ -32,6 +37,8 @@ datum/reagent/crank
description = "2x stun reduction per cycle. Warms you up, makes you jittery as hell."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
+ overdose_threshold = 20
+ addiction_threshold = 10
datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -41,13 +48,33 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
M.AdjustParalysis(-2)
M.AdjustStunned(-2)
M.AdjustWeakened(-2)
- if(volume > 20)
- M.adjustBrainLoss(rand(1,10)*REM)
- M.adjustToxLoss(rand(1,10)*REM)
- M.adjustBruteLoss(rand(1,10)*REM)
+ ..()
+ return
+datum/reagent/crank/overdose_process(var/mob/living/M as mob)
+ M.adjustBrainLoss(rand(1,10)*REM)
+ M.adjustToxLoss(rand(1,10)*REM)
+ M.adjustBruteLoss(rand(1,10)*REM)
..()
return
+datum/reagent/crank/addiction_act_stage1(var/mob/living/M as mob)
+ M.adjustBrainLoss(rand(1,10)*REM)
+ ..()
+ return
+datum/reagent/crank/addiction_act_stage2(var/mob/living/M as mob)
+ M.adjustToxLoss(rand(1,10)*REM)
+ ..()
+ return
+datum/reagent/crank/addiction_act_stage3(var/mob/living/M as mob)
+ M.adjustBruteLoss(rand(1,10)*REM)
+ ..()
+ return
+datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
+ M.adjustBrainLoss(rand(1,10)*REM)
+ M.adjustToxLoss(rand(1,10)*REM)
+ M.adjustBruteLoss(rand(1,10)*REM)
+ ..()
+ return
/datum/chemical_reaction/crank
name = "Crank"
id = "crank"
@@ -63,8 +90,8 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
description = "Cools and calms you down, occasional BRAIN and TOX damage."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
- var/cycle_count = 0
- var/overdosed
+ overdose_threshold = 20
+ addiction_threshold = 15
/datum/reagent/krokodil/on_mob_life(var/mob/living/M as mob)
@@ -72,22 +99,40 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
if(prob(5))
M << "[high_message]"
+ ..()
+ return
+
+/datum/reagent/krokodil/overdose_process(var/mob/living/M as mob)
if(prob(10))
M.adjustBrainLoss(rand(1,5)*REM)
M.adjustToxLoss(rand(1,5)*REM)
- if(cycle_count == 10)
- M.adjustBrainLoss(rand(1,10)*REM)
- M.adjustToxLoss(rand(1,10)*REM)
- if(cycle_count == 20)
+ ..()
+ return
+
+
+/datum/reagent/krokodil/addiction_act_stage1(var/mob/living/M as mob)
+ M.adjustBrainLoss(rand(1,5)*REM)
+ M.adjustToxLoss(rand(1,5)*REM)
+ ..()
+ return
+/datum/reagent/krokodil/addiction_act_stage2(var/mob/living/M as mob)
+ if(prob(25))
M << "Your skin feels loose..."
- if(cycle_count == 50)
- M << "Your skin falls off!"
+ ..()
+ return
+/datum/reagent/krokodil/addiction_act_stage3(var/mob/living/M as mob)
+ if(prob(25))
+ M << "Your skin starts to peel away..."
+ M.adjustBruteLoss(3*REM)
+ ..()
+ return
+/datum/reagent/krokodil/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
+ if(!istype(M.dna.species, /datum/species/skeleton))
+ M << "Your skin falls off! Holy shit!"
M.adjustBruteLoss(rand(50,80)*REM) // holy shit your skin just FELL THE FUCK OFF
hardset_dna(M, null, null, null, null, /datum/species/skeleton)
- if(volume > 20)
- overdosed = 1
- if(overdosed)
- cycle_count++
+ else
+ M.adjustBruteLoss(5*REM)
..()
return
diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm
index ca28e5c1c56..db68b5cbaa0 100644
--- a/code/modules/reagents/Chemistry-Goon-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm
@@ -59,15 +59,15 @@ datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob)
datum/reagent/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
- description = "33% chance per cycle of healing 1 point each of BRUTE and BURN damage."
+ description = "33% chance per cycle of healing 3 point each of BRUTE and BURN damage."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(33))
- M.adjustBruteLoss(-1*REM)
- M.adjustFireLoss(-1*REM)
+ if(prob(50))
+ M.adjustBruteLoss(-3*REM)
+ M.adjustFireLoss(-3*REM)
..()
return
@@ -81,8 +81,8 @@ datum/reagent/synthflesh
datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
if(!M) M = holder.my_atom
if(method == TOUCH)
- M.heal_organ_damage(volume*REM,0)
- M.adjustFireLoss((volume-(volume*2)*REM))
+ M.adjustBruteLoss(-(1*volume)*REM)
+ M.adjustFireLoss(-(1*volume)*REM)
M << "You feel your burns healing and your flesh knitting together!"
..()
return
@@ -90,16 +90,16 @@ datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vo
datum/reagent/charcoal
name = "Charcoal"
id = "charcoal"
- description = "Heals 2 TOX damage per cycle."
+ description = "Heals 3 TOX damage per cycle and purges other chemicals slowly."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjustToxLoss(-1.5*REM)
+ M.adjustToxLoss(-3*REM)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
- M.reagents.remove_reagent(R.id,0.5)
+ M.reagents.remove_reagent(R.id,1)
..()
return
@@ -148,6 +148,7 @@ datum/reagent/omnizine
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.2
+ overdose_threshold = 30
datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -158,6 +159,14 @@ datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
..()
return
+datum/reagent/omnizine/overdose_process(var/mob/living/M as mob)
+ M.adjustToxLoss(3*REM)
+ M.adjustOxyLoss(3*REM)
+ M.adjustBruteLoss(3*REM)
+ M.adjustFireLoss(3*REM)
+ ..()
+ return
+
datum/reagent/calomel
name = "Calomel"
id = "calomel"
@@ -242,6 +251,7 @@ datum/reagent/sal_acid
description = "If BRUTE damage is under 50, 50% chance to heal one unit."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
+ overdose_threshold = 25
datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -251,6 +261,13 @@ datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
..()
return
+datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob)
+ if(M.getBruteLoss() < 50)
+ if(prob(50))
+ M.adjustBruteLoss(2*REM)
+ ..()
+ return
+
/datum/chemical_reaction/sal_acid
name = "Salicyclic Acid"
id = "sal_acid"
@@ -315,12 +332,12 @@ datum/reagent/ephedrine
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.3
+ overdose_threshold = 45
+ addiction_threshold = 30
datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.status_flags |= GOTTAGOFAST
- if(M.losebreath >= 10)
- M.losebreath = max(10, M.losebreath-5)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
@@ -328,6 +345,38 @@ datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
..()
return
+datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustToxLoss(1*REM)
+ M.losebreath++
+ ..()
+ return
+
+datum/reagent/ephedrine/addiction_act_stage1(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustToxLoss(2*REM)
+ M.losebreath += 2
+ ..()
+ return
+datum/reagent/ephedrine/addiction_act_stage2(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustToxLoss(3*REM)
+ M.losebreath += 3
+ ..()
+ return
+datum/reagent/ephedrine/addiction_act_stage3(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustToxLoss(4*REM)
+ M.losebreath += 4
+ ..()
+ return
+datum/reagent/ephedrine/addiction_act_stage4(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustToxLoss(5*REM)
+ M.losebreath += 5
+ ..()
+ return
+
/datum/chemical_reaction/ephedrine
name = "Ephedrine"
id = "ephedrine"
@@ -365,17 +414,66 @@ datum/reagent/morphine
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
var/cycle_count = 0
+ overdose_threshold = 30
+ addiction_threshold = 25
+
datum/reagent/morphine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.status_flags |= GOTTAGOFAST
if(cycle_count == 36)
- M.sleeping += 1
- if(volume > 20)
+ M.drowsyness += 1
+ cycle_count++
+ ..()
+ return
+
+datum/reagent/morphine/overdose_process(var/mob/living/M as mob)
+ if(prob(33))
var/obj/item/I = M.get_active_hand()
if(I)
M.drop_item()
- cycle_count++
+ M.Dizzy(1)
+ M.Jitter(1)
+ ..()
+ return
+
+datum/reagent/morphine/addiction_act_stage1(var/mob/living/M as mob)
+ if(prob(33))
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ M.Dizzy(2)
+ M.Jitter(2)
+ ..()
+ return
+datum/reagent/morphine/addiction_act_stage2(var/mob/living/M as mob)
+ if(prob(33))
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ M.adjustToxLoss(1*REM)
+ M.Dizzy(3)
+ M.Jitter(3)
+ ..()
+ return
+datum/reagent/morphine/addiction_act_stage3(var/mob/living/M as mob)
+ if(prob(33))
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ M.adjustToxLoss(2*REM)
+ M.Dizzy(4)
+ M.Jitter(4)
+ ..()
+ return
+datum/reagent/morphine/addiction_act_stage4(var/mob/living/M as mob)
+ if(prob(33))
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ M.adjustToxLoss(3*REM)
+ M.Dizzy(5)
+ M.Jitter(5)
..()
return
@@ -418,6 +516,7 @@ datum/reagent/atropine
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.2
+ overdose_threshold = 35
datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -436,6 +535,14 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
..()
return
+datum/reagent/atropine/overdose_process(var/mob/living/M as mob)
+ if(prob(50))
+ M.adjustToxLoss(2*REM)
+ M.Dizzy(1)
+ M.Jitter(1)
+ ..()
+ return
+
/datum/chemical_reaction/atropine
name = "Atropine"
id = "atropine"
@@ -450,6 +557,7 @@ datum/reagent/epinephrine
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.2
+ overdose_threshold = 30
datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -466,7 +574,15 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- M.sleeping -= 1
+ M.sleeping = 0
+ ..()
+ return
+
+datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob)
+ if(prob(33))
+ M.adjustStaminaLoss(5*REM)
+ M.adjustToxLoss(2*REM)
+ M.losebreath++
..()
return
@@ -500,6 +616,10 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob,
M.visible_message("[M]'s body convulses a bit.")
if(M.health <= config.health_threshold_dead && !M.suiciding && !ghost && !(NOCLONE in M.mutations))
M.stat = 1
+ M.adjustBruteLoss(-10)
+ M.adjustFireLoss(-10)
+ M.adjustOxyLoss(-10)
+ M.adjustToxLoss(-10)
dead_mob_list -= M
living_mob_list |= list(M)
M.emote("gasp")
@@ -635,3 +755,32 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac
id = "mutadone"
description = "Chance to remove genetic disabilities."
color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/antihol
+ name = "Antihol"
+ id = "antihol"
+ description = "A powerful oxidizer that reacts with ethanol."
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
+ M.dizziness = 0
+ M.drowsyness = 0
+ M.stuttering = 0
+ M.confused = 0
+ M.reagents.remove_reagent("ethanol", 8)
+ M.adjustToxLoss(-0.2*REM)
+ ..()
+
+/datum/chemical_reaction/antihol
+ name = "antihol"
+ id = "antihol"
+ result = "antihol"
+ required_reagents = list("ethanol" = 1, "charcoal" = 1)
+ result_amount = 2
+
+/datum/chemical_reaction/cryoxadone
+ name = "Cryoxadone"
+ id = "cryoxadone"
+ result = "cryoxadone"
+ required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1)
+ result_amount = 3
diff --git a/code/modules/reagents/Chemistry-Goon-Other.dm b/code/modules/reagents/Chemistry-Goon-Other.dm
index 33752902ea8..5f91bcd9e3f 100644
--- a/code/modules/reagents/Chemistry-Goon-Other.dm
+++ b/code/modules/reagents/Chemistry-Goon-Other.dm
@@ -101,4 +101,50 @@ datum/reagent/acetone
result = "ash"
required_reagents = list("oil" = 1)
result_amount = 1
- required_temp = 480
\ No newline at end of file
+ required_temp = 480
+
+datum/reagent/colorful_reagent
+ name = "Colorful Reagent"
+ id = "colorful_reagent"
+ description = "A solution."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+/datum/chemical_reaction/colorful_reagent
+ name = "colorful_reagent"
+ id = "colorful_reagent"
+ result = "colorful_reagent"
+ required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1)
+ result_amount = 5
+ var/list/potential_colors = list("#FF0000","#0000FF","#008000","#FFFF00")
+
+datum/reagent/colorful_reagent/reaction_mob(var/mob/M, var/volume)
+ if(M)
+ M.color = pick(potential_colors)
+ ..()
+ return
+datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume)
+ if(O)
+ O.color = pick(potential_colors)
+ ..()
+ return
+datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume)
+ if(T)
+ T.color = pick(potential_colors)
+ ..()
+ return
+
+
+datum/reagent/triple_citrus
+ name = "Triple Citrus"
+ id = "triple_citrus"
+ description = "A solution."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+/datum/chemical_reaction/triple_citrus
+ name = "triple_citrus"
+ id = "triple_citrus"
+ result = "triple_citrus"
+ required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1)
+ result_amount = 5
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
index 1f7f0e8b3a5..dc8268a2d51 100644
--- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
+++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
@@ -124,6 +124,8 @@ datum/reagent/clf3/on_mob_life(var/mob/living/M as mob)
proc/goonchem_vortex(var/turf/simulated/T, var/setting_type, var/range, var/pull_times)
for(var/atom/movable/X in orange(range, T))
+ if(istype(X, /obj/effect))
+ continue // stop pulling smoke and hotspots please
if(istype(X, /atom/movable))
if((X) && !X.anchored)
if(setting_type)
diff --git a/code/modules/reagents/Chemistry-Goon-Toxins.dm b/code/modules/reagents/Chemistry-Goon-Toxins.dm
index 355962d588a..6423c1571eb 100644
--- a/code/modules/reagents/Chemistry-Goon-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Goon-Toxins.dm
@@ -26,25 +26,27 @@ datum/reagent/histamine
reagent_state = LIQUID
color = "#CF3600" // rgb: 207, 54, 0
metabolization_rate = 0.2
+ overdose_threshold = 30
datum/reagent/histamine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(volume >= 30)
- M.adjustOxyLoss(pick(2,5)*REM)
- M.adjustBruteLoss(pick(2,5)*REM)
- M.adjustToxLoss(pick(2,5)*REM)
- if(volume < 30)
- switch(pick(1, 2, 3))
- if(1)
- M << "You are unable to look straight!"
- M.Dizzy(10)
- if(2)
- M.emote("cough")
- var/obj/item/I = M.get_active_hand()
- if(I)
- M.drop_item()
- if(3)
- M.adjustBruteLoss(5*REM)
+ switch(pick(1, 2, 3))
+ if(1)
+ M << "You are unable to look straight!"
+ M.Dizzy(10)
+ if(2)
+ M.emote("cough")
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ if(3)
+ M.adjustBruteLoss(1*REM)
+ ..()
+ return
+datum/reagent/histamine/overdose_process(var/mob/living/M as mob)
+ M.adjustOxyLoss(pick(2,5)*REM)
+ M.adjustBruteLoss(pick(2,5)*REM)
+ M.adjustToxLoss(pick(2,5)*REM)
..()
return
@@ -156,4 +158,41 @@ datum/reagent/questionmark/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1*REM)
..()
- return
\ No newline at end of file
+ return
+
+datum/reagent/itching_powder
+ name = "Itching Powder"
+ id = "itching_powder"
+ description = "Lots of annoying random effects, chances to do BRUTE damage from scratching. 6% chance to decay into 1-3 units of histamine."
+ reagent_state = LIQUID
+ color = "#CF3600" // rgb: 207, 54, 0
+ metabolization_rate = 0.3
+
+/datum/reagent/itching_powder/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ if(method == TOUCH)
+ M.reagents.add_reagent("itching_powder", volume)
+ return
+
+datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ if(prob(rand(5,50)))
+ M << "You scratch at your head."
+ M.adjustBruteLoss(0.2*REM)
+ if(prob(rand(5,50)))
+ M << "You scratch at your leg."
+ M.adjustBruteLoss(0.2*REM)
+ if(prob(rand(5,50)))
+ M << "You scratch at your arm."
+ M.adjustBruteLoss(0.2*REM)
+ if(prob(6))
+ M.reagents.add_reagent("histamine",rand(1,3))
+ M.reagents.remove_reagent("itching_powder",1)
+ ..()
+ return
+
+/datum/chemical_reaction/itching_powder
+ name = "Itching Powder"
+ id = "itching_powder"
+ result = "itching_powder"
+ required_reagents = list("fuel" = 1, "ammonia" = 1)
+ result_amount = 2
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index 2e5fb825a15..17e51b1f63d 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -11,7 +11,9 @@ datum/reagents
var/maximum_volume = 100
var/atom/my_atom = null
var/chem_temp = 150
- var/last_tick = 0
+ var/last_tick = 1
+ var/addiction_tick = 1
+ var/list/datum/reagent/addiction_list = new/list()
datum/reagents/New(maximum=100)
maximum_volume = maximum
@@ -197,12 +199,46 @@ datum/reagents/proc/trans_id_to(var/obj/target, var/reagent, var/amount=1, var/p
datum/reagents/proc/metabolize(var/mob/M)
if(last_tick == 3)
- last_tick = 0
+ last_tick = 1
for(var/A in reagent_list)
var/datum/reagent/R = A
if(M && R)
if(M.reagent_check(R) != 1)
+ if(R.volume >= R.overdose_threshold && !R.overdosed && R.overdose_threshold > 0)
+ R.overdosed = 1
+ M << "You feel like you took too much of [R.name]!"
+ if(R.volume >= R.addiction_threshold && !is_type_in_list(R, addiction_list) && R.addiction_threshold > 0)
+ var/datum/reagent/new_reagent = new R.type()
+ addiction_list.Add(new_reagent)
+ if(R.overdosed)
+ R.overdose_process(M)
+ if(is_type_in_list(R,addiction_list))
+ for(var/datum/reagent/addicted_reagent in addiction_list)
+ if(istype(R, addicted_reagent))
+ addicted_reagent.addiction_stage = -15 // you're satisfied for a good while.
R.on_mob_life(M)
+ if(addiction_tick == 6)
+ addiction_tick = 1
+ for(var/A in addiction_list)
+ var/datum/reagent/R = A
+ if(M && R)
+ if(R.addiction_stage < 0)
+ R.addiction_stage++
+ if(R.addiction_stage >= 0 && R.addiction_stage <= 10)
+ R.addiction_act_stage1(M)
+ R.addiction_stage++
+ if(R.addiction_stage >= 10 && R.addiction_stage <= 20)
+ R.addiction_act_stage2(M)
+ R.addiction_stage++
+ if(R.addiction_stage >= 20 && R.addiction_stage <= 30)
+ R.addiction_act_stage3(M)
+ R.addiction_stage++
+ if(R.addiction_stage > 30 && R.addiction_stage <= 40)
+ R.addiction_act_stage4(M)
+ if(R.addiction_stage > 40)
+ M << "You feel like you've gotten over your need for [R.name]."
+ addiction_list.Remove(R)
+ addiction_tick++
last_tick++
update_total()
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index ab4f165efd9..3533e2f79ef 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -1294,9 +1294,11 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
if(beaker)
if(beaker.reagents.chem_temp > temperature)
beaker.reagents.chem_temp = max(beaker.reagents.chem_temp-rate, temperature)
+ beaker.reagents.handle_reactions()
state_change = 1
else if(beaker.reagents.chem_temp < temperature)
beaker.reagents.chem_temp = min(beaker.reagents.chem_temp+rate, temperature)
+ beaker.reagents.handle_reactions()
state_change = 1
if(state_change)
SSnano.update_uis(src)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
index d8f1fd0d318..1f1c086844e 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
@@ -24,6 +24,10 @@ datum/reagent
var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
var/metabolization_rate = REAGENTS_METABOLISM
var/overrides_metab = 0
+ var/overdose_threshold = 0
+ var/addiction_threshold = 0
+ var/addiction_stage = 0
+ var/overdosed = 0 // You fucked up and this is now triggering it's overdose effects, purge that shit quick.
datum/reagent/proc/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //By default we have a chance to transfer some
if(!istype(M, /mob/living))
@@ -88,6 +92,31 @@ datum/reagent/proc/on_merge(var/data)
datum/reagent/proc/on_update(var/atom/A)
return
+// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
+datum/reagent/proc/overdose_process(var/mob/living/M as mob)
+ return
+
+datum/reagent/proc/addiction_act_stage1(var/mob/living/M as mob)
+ if(prob(30))
+ M << "You feel like some [name] right about now."
+ return
+
+datum/reagent/proc/addiction_act_stage2(var/mob/living/M as mob)
+ if(prob(30))
+ M << "You feel like you need [name]. You just can't get enough."
+ return
+
+datum/reagent/proc/addiction_act_stage3(var/mob/living/M as mob)
+ if(prob(30))
+ M << "You have an intense craving for [name]."
+ return
+
+datum/reagent/proc/addiction_act_stage4(var/mob/living/M as mob)
+ if(prob(30))
+ M << "You're not feeling good at all! You really need some [name]."
+ return
+
+
datum/reagent/blood
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
name = "Blood"
diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
index 34509773034..8d1a446a249 100644
--- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
@@ -137,27 +137,15 @@ datum/reagent/medicine/cryoxadone
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/cryoxadone/on_mob_life(var/mob/living/M as mob)
- if(M.stat != DEAD && M.bodytemperature < 170)
- M.adjustCloneLoss(-1)
- M.adjustOxyLoss(-3)
- M.heal_organ_damage(3,3)
- M.adjustToxLoss(-3)
- ..()
- return
-
-datum/reagent/medicine/clonexadone
- name = "Clonexadone"
- id = "clonexadone"
- description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube."
- color = "#C8A5DC" // rgb: 200, 165, 220
-
-datum/reagent/medicine/clonexadone/on_mob_life(var/mob/living/M as mob)
- if(M.stat != DEAD && M.bodytemperature < 170)
+ if(M.stat != DEAD && M.bodytemperature < 270)
M.adjustCloneLoss(-3)
- M.adjustOxyLoss(-3)
+ M.adjustOxyLoss(-10)
M.heal_organ_damage(3,3)
+ M.adjustBruteLoss(-3)
+ M.adjustFireLoss(-3)
M.adjustToxLoss(-3)
M.status_flags &= ~DISFIGURED
+
..()
return
diff --git a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm
index 10e37a7f979..fef938a2ab3 100644
--- a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm
@@ -222,30 +222,6 @@ datum/reagent/toxin/pestkiller/reaction_mob(var/mob/living/M, var/method=TOUCH,
if(!C.wear_mask) // If not wearing a mask
C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
-datum/reagent/toxin/stoxin
- name = "Sleep Toxin"
- id = "stoxin"
- description = "An effective hypnotic used to treat insomnia."
- color = "#E895CC" // rgb: 232, 149, 204
- toxpwr = 0
-
-datum/reagent/toxin/stoxin/on_mob_life(var/mob/living/M as mob)
- if(!data) data = 1
- switch(data)
- if(1 to 12)
- if(prob(5)) M.emote("yawn")
- if(12 to 15)
- M.eye_blurry = max(M.eye_blurry, 10)
- if(15 to 25)
- M.drowsyness = max(M.drowsyness, 20)
- if(25 to INFINITY)
- M.Paralyse(20)
- M.drowsyness = max(M.drowsyness, 30)
- data++
- ..()
- return
-
-
datum/reagent/toxin/spore
name = "Spore Toxin"
id = "spore"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index e6ad594a341..3350a40de13 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -150,21 +150,6 @@ silicate
required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1)
result_amount = 3
-/datum/chemical_reaction/cryoxadone
- name = "Cryoxadone"
- id = "cryoxadone"
- result = "cryoxadone"
- required_reagents = list("salbutamol" = 1, "water" = 1, "oxygen" = 1)
- result_amount = 3
-
-/datum/chemical_reaction/clonexadone
- name = "Clonexadone"
- id = "clonexadone"
- result = "clonexadone"
- required_reagents = list("cryoxadone" = 1, "sodium" = 1)
- required_catalysts = list("plasma" = 5)
- result_amount = 2
-
/datum/chemical_reaction/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
@@ -179,20 +164,6 @@ silicate
required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1)
result_amount = 2
-/datum/chemical_reaction/ethylredoxrazine
- name = "Ethylredoxrazine"
- id = "ethylredoxrazine"
- result = "ethylredoxrazine"
- required_reagents = list("oxygen" = 1, "charcoal" = 1, "carbon" = 1)
- result_amount = 3
-
-/datum/chemical_reaction/ethanoloxidation
- name = "ethanoloxidation" //Kind of a placeholder in case someone ever changes it so that chemicals
- id = "ethanoloxidation" // react in the body. Also it would be silly if it didn't exist.
- result = "water"
- required_reagents = list("ethylredoxrazine" = 1, "ethanol" = 1)
- result_amount = 2
-
/datum/chemical_reaction/glycerol
name = "Glycerol"
id = "glycerol"
diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm
index de269f2c42e..8257a2b38c7 100644
--- a/code/modules/reagents/reagent_containers/glass/bottle.dm
+++ b/code/modules/reagents/reagent_containers/glass/bottle.dm
@@ -42,11 +42,11 @@
icon_state = "bottle12"
spawned_reagent = "cyanide"
-/obj/item/weapon/reagent_containers/glass/bottle/stoxin
+/obj/item/weapon/reagent_containers/glass/bottle/morphine
name = "sleep-toxin bottle"
desc = "A small bottle of sleep toxins. Just the fumes make you sleepy."
icon_state = "bottle20"
- spawned_reagent = "stoxin"
+ spawned_reagent = "morphine"
/obj/item/weapon/reagent_containers/glass/bottle/morphine
name = "morphine bottle"
@@ -66,7 +66,7 @@
name = "charcoal bottle"
desc = "A small bottle of charcoal."
icon_state = "bottle17"
- spawned_reagent = "salglu_solution"
+ spawned_reagent = "charcoal"
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 5137bd9ebb4..164ab3c9112 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -123,7 +123,7 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites
name = "stimpack medipen"
desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor at the cost of some shortness of breath."
icon_state = "stimpen"
- starting_reagent = "morphine"
+ starting_reagent = "ephedrine"
starting_amount = 9
/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack/New()
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index 08ef1efcb37..32bea05008c 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -27,7 +27,7 @@
/obj/item/weapon/reagent_containers/pill/patch/styptic/New()
..()
- reagents.add_reagent("styptic_powder", 25)
+ reagents.add_reagent("styptic_powder", 50)
/obj/item/weapon/reagent_containers/pill/patch/silver_sulf
name = "silver sulfadiazine patch"
@@ -35,4 +35,4 @@
/obj/item/weapon/reagent_containers/pill/patch/silver_sulf/New()
..()
- reagents.add_reagent("silver_sulfadiazine", 25)
\ No newline at end of file
+ reagents.add_reagent("silver_sulfadiazine", 50)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 7ed76b9c01a..9bafa5d06ed 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -106,13 +106,13 @@
reagents.add_reagent("adminordrazine", 50)
-/obj/item/weapon/reagent_containers/pill/stox
- name = "sleeping pill"
+/obj/item/weapon/reagent_containers/pill/morphine
+ name = "morphine pill"
desc = "Commonly used to treat insomnia."
icon_state = "pill8"
-/obj/item/weapon/reagent_containers/pill/stox/New()
+/obj/item/weapon/reagent_containers/pill/morphine/New()
..()
- reagents.add_reagent("stoxin", 30)
+ reagents.add_reagent("morphine", 30)
/obj/item/weapon/reagent_containers/pill/stimulant
name = "stimulant pill"
@@ -121,7 +121,7 @@
/obj/item/weapon/reagent_containers/pill/stimulant/New()
..()
- reagents.add_reagent("morphine", 10)
+ reagents.add_reagent("ephedrine", 10)
reagents.add_reagent("ethylredoxrazine", 10)
reagents.add_reagent("coffee", 30)
diff --git a/html/changelogs/iamgoofball-goonchem3.yml b/html/changelogs/iamgoofball-goonchem3.yml
new file mode 100644
index 00000000000..ed917f1f27e
--- /dev/null
+++ b/html/changelogs/iamgoofball-goonchem3.yml
@@ -0,0 +1,42 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscdel (general adding of nice things)
+# rscadd (general deleting of nice things)
+# imageadd
+# imagedel
+# spellcheck (typo fixes)
+# experiment
+# tgs (TG-ported fixes?)
+#################################
+author: Iamgoofball
+delete-after: True
+changes:
+ - rscadd: "Addiction and Overdosing has been added to Chemistry."
+ - rscadd: "Deal with Overdosing by purging the ODing chemical with Calomel or Penetic Acid."
+ - rscadd: "Deal with Addiction by either going cold turkey on it and weathering the effects, eventually causing the addiction to subside, or by taking more of the addictive substance to keep the effects down."
+ - rscadd: "Cryoxadane was heavily buffed. Clonex was removed as it was merged into Cryox."
+ - rscadd: "Fixes a shitton of stuff adding Morphine instead of Ephedrine. Sorry, miners."
+ - rscadd: "Fixes instances of Alkysine not being replaced with Mannitol. Same with Ryetalyn being replaced with Mutadone."
+ - rscadd: "Adds Itching Powder. Welding Fuel and Ammonia."
+ - rscadd: "Adds Antihol. Ethanol and Charcoal."
+ - rscadd: "Adds Triple Citrus. Lemon Juice, Lime Juice, and Orange Juice."
+ - rscadd: "Adds Colorful Reagent. Stable Plasma, Triple Citrus, "
+ - rscadd: "Morphine replaces sleep toxin now, not Hyperzine. Hyperzine is replaced by Ephedrine now."
+ - rscadd: "Cryotubes will now autoeject you once you are fully healed."
+ - rscadd: "Synthflesh damage values have been fixed."
+ - rscadd: "Charcoal has been buffed to heal 3 TOX damage a cycle and it purges other chemicals faster."
+ - rscadd: "Saline-Glucose Solution has been buffed. It now has a 50% chance per cycle to heal 3 BRUTE and BURN per tick."
+ - rscadd: "Fixes Strange Reagent revivals dying right after being revived. They'll still need immediate medical treatment, however."
+ - rscadd: "Cryoxadone has had a recipe change. It is now Stable Plasma, Acetone, and Unstable Mutagen."
\ No newline at end of file