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