From 293713572816247397800cbbff8ccf0b9d18c8aa Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2019 20:21:33 -0400 Subject: [PATCH 01/21] Research Dupes (#1295) --- code/modules/research/fabricators/circuit_fabricator.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/fabricators/circuit_fabricator.dm b/code/modules/research/fabricators/circuit_fabricator.dm index 405c4ebb7a..b406baeb12 100644 --- a/code/modules/research/fabricators/circuit_fabricator.dm +++ b/code/modules/research/fabricators/circuit_fabricator.dm @@ -117,7 +117,7 @@ req_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_BIO = 2) build_path = /obj/item/weapon/circuitboard/crew build_type = MEDICALFAB - +/* /datum/design/circuit/reagent_heater name = "reagent heater" id = "rheater" @@ -132,7 +132,7 @@ build_path = /obj/item/weapon/circuitboard/reagent_heater/cooler build_type = MEDICALFAB -/* + /datum/design/circuit/bioprinter name = "bioprinter" id = "bioprinter" From d90c6edd49bc90df585c92986aac9555c17163fd Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2019 21:03:21 -0400 Subject: [PATCH 02/21] Update seed_extractor.dm --- code/game/machinery/seed_extractor.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index f2b9bf78f4..0fb870c2c0 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -30,16 +30,16 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob if(new_seed_type) to_chat(user, "You extract some seeds from [O].") - if(prob(35)) - var/produce =(1) - else - to_chat (user, "You fail to extract any seeds from [O].") + var/produce = pick(1, 2) for(var/i = 0;i<=produce;i++) var/obj/item/seeds/seeds = new(get_turf(src)) seeds.seed_type = new_seed_type.name seeds.update_seed() else - to_chat(user, "[O] doesn't seem to have any usable seeds inside it.") + to_chat (user, SPAN_NOTICE("You fail to extract any seeds from [O].")) + + else + to_chat(user, "[O] doesn't seem to have any usable seeds inside it.") qdel(O) From f31d22a08802039d9ce0e5d0297c798007ef477c Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2019 21:15:26 -0400 Subject: [PATCH 03/21] Update seed_extractor.dm --- code/game/machinery/seed_extractor.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index 0fb870c2c0..5fb501eb65 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -31,15 +31,12 @@ obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob if(new_seed_type) to_chat(user, "You extract some seeds from [O].") var/produce = pick(1, 2) - for(var/i = 0;i<=produce;i++) + for(var/i = 0; i <= produce; i++) var/obj/item/seeds/seeds = new(get_turf(src)) seeds.seed_type = new_seed_type.name seeds.update_seed() else - to_chat (user, SPAN_NOTICE("You fail to extract any seeds from [O].")) - - else - to_chat(user, "[O] doesn't seem to have any usable seeds inside it.") + to_chat(user, "[O] doesn't seem to have any usable seeds inside it.") qdel(O) From bfbc4e05cd0cf9bfef31185a24eef74b9483a50c Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2019 21:32:03 -0400 Subject: [PATCH 04/21] Travis --- code/unit_tests/mob_tests.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/unit_tests/mob_tests.dm b/code/unit_tests/mob_tests.dm index 1636e64c39..368b04f98a 100644 --- a/code/unit_tests/mob_tests.dm +++ b/code/unit_tests/mob_tests.dm @@ -699,7 +699,7 @@ datum/unit_test/species_base_skin/start_test() return 1 // return 1 to show we're done and don't want to recheck the result. - +/* /datum/unit_test/mob_nullspace name = "MOB: Mob in nullspace shall not cause runtimes" var/list/test_subjects = list() @@ -723,7 +723,7 @@ datum/unit_test/species_base_skin/start_test() // No failure state, we just rely on the general runtime check to fail the entire build for us pass("Mob nullspace test concluded.") return TRUE - +*/ /datum/unit_test/mob_organ_size name = "MOB: Internal organs fit inside external organs." From 8b81cc2abe42e2e2475e4282418aa0a62b4232ef Mon Sep 17 00:00:00 2001 From: PsyCommando Date: Fri, 5 Jul 2019 23:22:34 -0400 Subject: [PATCH 05/21] Offered lines of codes to calm the rage of travis, and make magazines fit in pockets (#1296) --- code/modules/projectiles/ammunition/boxes.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 4abef55903..49667e4fd8 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -157,7 +157,6 @@ Some standard magazines, speedloaders and clips matter = list(MATERIAL_STEEL = 1440) max_ammo = 4 multiple_sprites = 1 - w_class = ITEM_SIZE_NORMAL mass = 80 GRAMS var/marking_color @@ -245,7 +244,6 @@ Some standard magazines, speedloaders and clips ammo_type = /obj/item/ammo_casing/c9mm max_ammo = 20 multiple_sprites = 1 - w_class = ITEM_SIZE_NORMAL mass = 150 GRAMS /obj/item/ammo_magazine/box/c9mm/_20/empty initial_ammo = 0 @@ -332,7 +330,6 @@ Some standard magazines, speedloaders and clips ammo_type = /obj/item/ammo_casing/c45 max_ammo = 20 multiple_sprites = 1 - w_class = ITEM_SIZE_NORMAL mass = 150 GRAMS /obj/item/ammo_magazine/box/c45/_20/empty initial_ammo = 0 @@ -410,7 +407,6 @@ Some standard magazines, speedloaders and clips ammo_type = /obj/item/ammo_casing/c762 max_ammo = 15 //if we lived in a world where normal mags had 30 rounds, this would be a 20 round mag multiple_sprites = 1 - w_class = ITEM_SIZE_NORMAL mass = 180 GRAMS /obj/item/ammo_magazine/box/c762/empty initial_ammo = 0 From 7cfa9268858a5972ec15e0dfe7663c03c8350205 Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sat, 6 Jul 2019 00:58:59 -0700 Subject: [PATCH 06/21] Don't hose new botanists. (#1293) * Don't hose new botanists. We can nerf seed extraction without ruining the lives of new botany businesses 65% of the time. * Update beehive.dm --- code/modules/hydroponics/beekeeping/beehive.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index 139dd9b1ac..ca35157739 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -243,7 +243,7 @@ user.visible_message("\The [user] loads \the [H] into \the [src] and turns it on.", "You load \the [H] into \the [src] and turn it on.") processing = H.honey qdel(H) - time_end_processing = world.time + 300 SECONDS + time_end_processing = world.time + 60 SECONDS update_icon() update_use_power(POWER_USE_ACTIVE) return 1 From 4cfadc727872ac78c4c605e75633c24c9687a925 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sat, 6 Jul 2019 03:59:08 -0400 Subject: [PATCH 07/21] Makes wood floors look better. (#1299) --- icons/turf/flooring/wood.dmi | Bin 10625 -> 12707 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index 31a559bb73f5fee23987b9ccaa2e74db51b05817..5d660de5e4ab39813c70d91e281a47375cbbb1ef 100644 GIT binary patch delta 12487 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 Ag8%>k delta 10389 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 Date: Sat, 6 Jul 2019 00:59:23 -0700 Subject: [PATCH 08/21] Adds honey crystallization (#1292) Heat honey to 100C to boil off the water and separate it from the sugar. --- code/modules/reagents/Chemistry-Recipes.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 420e49f1a5..886ed1c4eb 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1939,6 +1939,13 @@ catalysts = list(/datum/reagent/enzyme = 5) result_amount = 2 +/datum/chemical_reaction/honey_crystallization + name = "Honey Crystallization" + result = /datum/reagent/sugar + required_reagents = list(/datum/reagent/nutriment/honey = 2) + minimum_temperature = 100 CELSIUS + result_amount = 1 + /datum/chemical_reaction/iced_beer name = "Iced Beer" result = /datum/reagent/ethanol/iced_beer From e19ff299e6aa15ada117ef23db2a20d3e70b6d1a Mon Sep 17 00:00:00 2001 From: PsyCommando Date: Sat, 6 Jul 2019 03:59:35 -0400 Subject: [PATCH 09/21] Plantfix (#1291) * Fixed compilation on dev * Make reagents be created after we get our seed data * Also added an error message when we don't have seed data and are trying to fill the fruit's reagents. * Re-added hydroponic trays saved vars, so things don't reset on load. * Made faction save and load properly hopefully.. --- code/modules/hydroponics/grown.dm | 6 +++--- code/modules/hydroponics/trays/tray.dm | 28 +++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 81c3082387..e86ed2bc37 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -24,17 +24,16 @@ fill_reagents() /obj/item/weapon/reagent_containers/food/snacks/grown/Initialize() - . = ..() if(!map_storage_loaded) //Only get plant type from SSPlant if we're newly created. Otherwise keep our stored properties if(!SSplants) log_error("Plant controller does not exist and [src] requires it. Aborting.") return INITIALIZE_HINT_QDEL seed = SSplants.seeds[plantname] - SetupReagents() if(!seed) + log_error("[src]\ref[src] at loc [loc]([x], [y], [z]) didn't have a seed when initialized!") return INITIALIZE_HINT_QDEL - + . = ..() //SetupReagents is called in the base class, and it calls fill_reagents, which needs the seed to be setup! SetName("[seed.seed_name]") trash = seed.get_trash_type() if(!dried_type) @@ -45,6 +44,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/proc/fill_reagents() if(!seed) + log_error("[src]\ref[src] had no seed when reagents were intialized!") return if(!seed.chems) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 9029e64a8b..0b4db1884e 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -132,7 +132,33 @@ /obj/machinery/portable_atmospherics/hydroponics/New() . = ..() - + ADD_SAVED_VAR(waterlevel) + ADD_SAVED_VAR(nutrilevel) + ADD_SAVED_VAR(pestlevel) + ADD_SAVED_VAR(weedlevel) + ADD_SAVED_VAR(dead) + ADD_SAVED_VAR(harvest) + ADD_SAVED_VAR(age) + ADD_SAVED_VAR(sampled) + ADD_SAVED_VAR(yield_mod) + ADD_SAVED_VAR(mutation_mod) + ADD_SAVED_VAR(toxins) + ADD_SAVED_VAR(mutation_level) + ADD_SAVED_VAR(tray_light) + ADD_SAVED_VAR(plant_health) + + ADD_SAVED_VAR(closed_system) + + ADD_SAVED_VAR(temp_chem_holder) + ADD_SAVED_VAR(labelled) + ADD_SAVED_VAR(seed) + ADD_SAVED_VAR(req_access_faction) + +/obj/machinery/portable_atmospherics/hydroponics/before_save() + . = ..() + if(connected_faction) + req_access_faction = connected_faction.uid + /obj/machinery/portable_atmospherics/hydroponics/after_load() ..() if(req_access_faction) From 1cb7f4db7737a6acf942a7c6e4f096993ecbf9bf Mon Sep 17 00:00:00 2001 From: Andromeda-K22 Date: Sat, 6 Jul 2019 03:59:58 -0400 Subject: [PATCH 10/21] fixes ore processor and other such things (#1298) * fixes ore processor and other such things * Update code/modules/mining/machinery/mineral_processor.dm Co-Authored-By: ike709 --- code/modules/materials/definitions/materials_metal.dm | 2 +- code/modules/mining/machinery/mineral_processor.dm | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/materials/definitions/materials_metal.dm b/code/modules/materials/definitions/materials_metal.dm index 8b94482d81..8e395f549a 100644 --- a/code/modules/materials/definitions/materials_metal.dm +++ b/code/modules/materials/definitions/materials_metal.dm @@ -395,7 +395,7 @@ weight = 23 stack_origin_tech = list(TECH_MATERIAL = 2) hitsound = 'sound/weapons/smash.ogg' - alloy_materials = list(MATERIAL_IRON = 1250, MATERIAL_PLATINUM = 1250, MATERIAL_GRAPHITE = 1250) + alloy_materials = list(MATERIAL_STEEL = 1875, MATERIAL_PLATINUM = 1875) alloy_product = TRUE ore_smelts_to = MATERIAL_PLASTEEL diff --git a/code/modules/mining/machinery/mineral_processor.dm b/code/modules/mining/machinery/mineral_processor.dm index e37c9ecd84..4f7d5df118 100644 --- a/code/modules/mining/machinery/mineral_processor.dm +++ b/code/modules/mining/machinery/mineral_processor.dm @@ -47,7 +47,7 @@ if(input_turf) for(var/obj/item/stack/S in input_turf) // If we are deleted or are neither dust or ore, continue - if(QDELETED(S) || (!istype(S, /obj/item/stack/material_dust) && !istype(S, /obj/item/stack/ore)) || !LAZYLEN(S.matter)) + if(QDELETED(S) || (!istype(S, /obj/item/stack/material_dust) && !istype(S, /obj/item/stack/ore) && !istype(S, /obj/item/stack/material)) || !LAZYLEN(S.matter)) continue // Otherwise add the matter in the stack to our stores. @@ -58,7 +58,7 @@ LAZYASSOC(materials_processing, M.name) qdel(S) - + if(output_turf) var/list/attempt_to_alloy = list() var/max_sheets = sheets_per_tick @@ -122,7 +122,7 @@ var/result = Clamp(Floor(materials_stored[M.name] / M.units_per_sheet), 0, max_result) if(!result) return 0 - + materials_stored[M.name] -= result * M.units_per_sheet use_power_oneoff(active_power_usage) @@ -132,7 +132,7 @@ N.place_sheet(output_turf, result) else M.place_sheet(output_turf, result) - + return result /obj/machinery/mineral/processing_unit/proc/attempt_compression(var/material/M, var/max_result) @@ -203,4 +203,4 @@ #undef ORE_DISABLED #undef ORE_SMELT #undef ORE_COMPRESS -#undef ORE_ALLOY \ No newline at end of file +#undef ORE_ALLOY From fc2eb90bb188eac89be3281da014759a3e6d1b75 Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sat, 6 Jul 2019 01:00:12 -0700 Subject: [PATCH 11/21] Adds new phorostimulant and some more addictions (#1290) * [WIP] Add more addictions Adds some more dependencies. * More dose effects for hallucinogens Nice. * Add a stimulant * Adds phorostimulant recipe PHORONATION * Phoronation is back and it's a drug * Fix stuff * Make people a little better at handling their liquor * Update alcohol effects --- .../Chemistry-Reagents-Dispenser.dm | 69 +++++++++-- .../Chemistry-Reagents-Toxins.dm | 107 +++++++++++++++++- code/modules/reagents/Chemistry-Recipes.dm | 6 + 3 files changed, 169 insertions(+), 13 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 50a769432e..c1868126eb 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -117,6 +117,44 @@ parent_substance = /datum/reagent/ethanol addiction_display_name = "Alcohol" + var/global/list/drink_tipsy_messages = list( + "You feel pleasantly warm.", + "You feel nice and toasty.", + "You're feeling pretty good.", + "You're ready for a party.", + "You wouldn't mind another drink.", + ) + + var/global/list/drink_buzzed_messages = list( + "You feel nice and toasty.", + "Your face feels warm.", + "You're full of energy.", + "You're feeling very chatty.", + "You wouldn't mind another drink.", + "You're in a good mood." + ) + + var/global/list/drink_drunk_messages = list( + "You're having trouble keeping your balance.", + "The world spins around you.", + "You feel nice and toasty.", + "You're full of energy.", + "Your face is burning.", + "You're feeling very chatty." + ) + + var/global/list/drink_hammered_messages = list( + "You feel like trash.", + "The world spins around you.", + "You're having trouble keeping your balance.", + "You can't remember the last few minutes.", + "You're absolutely hammered.", + "You're completely trashed.", + "You feel angry.", + "You feel sad.", + "You catch yourself staggering." + ) + glass_name = "ethanol" glass_desc = "A well-known alcohol with a variety of applications." gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_FUEL | XGM_GAS_REAGENT_GAS @@ -139,29 +177,44 @@ if(alien == IS_DIONA) strength_mod = 0 + var/drink_message = false + M.add_chemical_effect(CE_ALCOHOL, 1) var/effective_dose = M.chem_doses[type] * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster - if(effective_dose >= strength) // Early warning + if(effective_dose >= strength) // Just give a nice message + drink_message = pick(drink_tipsy_messages) + if(effective_dose >= strength * 2) // Early warning M.make_dizzy(6) // It is decreased at the speed of 3 per tick - if(effective_dose >= strength * 2) // Slurring + drink_message = pick(drink_buzzed_messages) + if(effective_dose >= strength * 3) // Slurring M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.slurring = max(M.slurring, 30) - if(effective_dose >= strength * 3) // Confusion - walking in random directions - M.add_chemical_effect(CE_PAINKILLER, 150/strength) - M.confused = max(M.confused, 20) + drink_message = pick(drink_buzzed_messages) if(effective_dose >= strength * 4) // Blurry vision M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.eye_blurry = max(M.eye_blurry, 10) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + drink_message = pick(drink_drunk_messages) + if(effective_dose >= strength * 5) // Confusion - walking in random directions + M.add_chemical_effect(CE_PAINKILLER, 150/strength) + M.confused = max(M.confused, 20) + drink_message = pick(drink_drunk_messages) + if(effective_dose >= strength * 6) // Drowsyness - periodically falling asleep M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.drowsyness = max(M.drowsyness, 20) - if(effective_dose >= strength * 6) // Toxic dose + drink_message = SPAN_WARNING(pick(drink_hammered_messages)) + if(effective_dose >= strength * 7) // Toxic dose M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(effective_dose >= strength * 7) // Pass out + drink_message = SPAN_WARNING(pick(drink_hammered_messages)) + if(effective_dose >= strength * 8) // Pass out + drink message = SPAN_DANGER("You black out...") M.Paralyse(20) M.Sleeping(30) + if(drink_message) + if(prob(10)) + to_chat(M, "[drink_message]") + if(druggy != 0) M.druggy = max(M.druggy, druggy) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index c01e7fb39c..a7ff5a7347 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -566,7 +566,31 @@ overdose = REAGENTS_OVERDOSE metabolism = REM * 0.5 gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_REAGENT_GAS - + + addictiveness = 2 + addiction_median_dose = 5 + + var/global/list/shroom_dose_messages = list( + "The world spins pleasantly around you.", + "You look down, and your hands aren't yours.", + "The walls flow slowly, over and over again.", + "You're not sure you've ever seen that color before.", + "The floor is fascinating.", + "Your arm feels very soft.", + "There's a brief fluttering in your chest.", + "You smile contentedly, for no reason.", + "Breathing feels nice.", + "You feel like you're in a dream.", + "You forgot you could be as happy as this.", + "Everything around you is crisp and clear.", + "All things love you, and you love them.", + "You feel a strong connection to the place around you.", + "The door into yourself opens.", + "Every emotion feels magnified.", + "You dream of being yourself.", + "You dream of being no one." + ) + /datum/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) return @@ -582,6 +606,8 @@ M.make_dizzy(5) if(prob(5)) M.emote(pick("twitch", "giggle")) + if(prob(5)) + to_chat(M, "[pick(shroom_dose_messages)]") else if(M.chem_doses[type] < 2 * threshold) M.apply_effect(3, STUTTER) M.make_jittery(5) @@ -589,6 +615,8 @@ M.druggy = max(M.druggy, 35) if(prob(10)) M.emote(pick("twitch", "giggle")) + if(prob(10)) + to_chat(M, "[pick(shroom_dose_messages)]") else M.add_chemical_effect(CE_MIND, -1) M.apply_effect(3, STUTTER) @@ -597,7 +625,76 @@ M.druggy = max(M.druggy, 40) if(prob(15)) M.emote(pick("twitch", "giggle")) + if(prob(15)) + to_chat(M, "[pick(shroom_dose_messages)]") + +/datum/reagent/phorostimulant + name = "Phorostim" + description = "A recreational stimulant derived from phoron." + taste_description = "sharpness" + reagent_state = LIQUID + color = "#ff3300" + metabolism = REM * 0.15 + overdose = REAGENTS_OVERDOSE * 0.5 + addictiveness = 3 + addiction_median_dose = 30 + + var/global/list/stim_dose_messages = list( + "The world races, but not as fast as you.", + "You feel on top of the world.", + "You're in control.", + "You can do anything.", + "You've accomplished so much.", + "Euphoria floods your mind.", + "You need to talk to someone else.", + "It's hard to stay calm!", + "You need to do something with your hands.", + "You have to stay busy.", + "You feel like cleaning something.", + "Your heart races like the wind.", + "You find yourself blinking a lot.", + "You can barely feel your face.", + "The world flashes a pleasant orange.", + "You think about space.", + "You think about stone.", + "Something alive flashes in the corner of your eye.", + "The floor rumbles beneath you.", + "You feel the urge to go on an adventure.", + "You feel the urge to mine." + ) + + var/global/list/stim_overdose_messages = list( + "The world is spinning, far too fast.", + "You stumble, your hands shaking.", + "You're not in control.", + "You need to move, but your body doesn't respond.", + "Your heart beats out of your chest.", + "You look down, and see endless slugs.", + "Teeth gnash at you, from every direction.", + "The ground shakes violently", + "Everything is orange.", + "You feel like you're going to die.", + "This is too much engagement." + ) + +/datum/reagent/phorostim/overdose(var/mob/living/carbon/M, var/alien) + ..() + M.adjustBrainLoss(1) + if(ishuman(M) && prob(10)) + var/mob/living/carbon/human/H = M + H.seizure() + if(prob(10)) + to_chat(M, SPAN_DANGER("[pick(stim_overdose_messages)]")) + +/datum/reagent/phorostim/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_DIONA) + return + if(prob(5)) + M.emote(pick("twitch", "blink_r", "shiver")) + to_chat(M, "[pick(stim_dose_messages)]") + M.add_chemical_effect(CE_SPEEDBOOST, 0.2) + M.add_chemical_effect(CE_PULSE, 3) /datum/reagent/three_eye name = "Three Eye" @@ -615,7 +712,7 @@ overdose = 25 // M A X I M U M C H E E S E - var/global/list/dose_messages = list( + var/global/list/three_eye_dose_messages = list( "Your name is called. It is your time.", "You are dissolving. Your hands are wax...", "It all runs together. It all mixes.", @@ -636,7 +733,7 @@ "Come back from there. Please." ) - var/global/list/overdose_messages = list( + var/global/list/three_eye_overdose_messages = list( "THE SIGNAL THE SIGNAL THE SIGNAL THE SIGNAL", "IT CRIES IT CRIES IT WAITS IT CRIES", "NOT YOURS NOT YOURS NOT YOURS NOT YOURS", @@ -659,7 +756,7 @@ H.seizure() H.adjustBrainLoss(rand(8, 12)) if(prob(5)) - to_chat(M, SPAN_WARNING("[pick(dose_messages)]")) + to_chat(M, SPAN_WARNING("[pick(three_eye_dose_messages)]")) /datum/reagent/three_eye/on_leaving_metabolism(var/mob/parent, var/metabolism_class) parent.remove_client_color(/datum/client_color/thirdeye) @@ -671,7 +768,7 @@ var/mob/living/carbon/human/H = M H.seizure() if(prob(10)) - to_chat(M, SPAN_DANGER("[pick(overdose_messages)]")) + to_chat(M, SPAN_DANGER("[pick(three_eye_overdose_messages)]")) if(M.psi) M.psi.check_latency_trigger(30, "a Three Eye overdose") diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 886ed1c4eb..4512590583 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -258,6 +258,12 @@ required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/phosphorus = 1, /datum/reagent/sulfur = 1) result_amount = 3 +/datum/chemical_reaction/phorostimulant + name = "Phorostimulant" + result = /datum/reagent/phorostimulant + required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/phoron = 1) + result_amount = 6 + /datum/chemical_reaction/ryetalyn name = "Ryetalyn" result = /datum/reagent/ryetalyn From 47afe97633de5971bb14f021375aa3dd263648b5 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sat, 6 Jul 2019 09:17:25 -0400 Subject: [PATCH 12/21] Revert "Adds new phorostimulant and some more addictions (#1290)" This reverts commit fc2eb90bb188eac89be3281da014759a3e6d1b75. --- .../Chemistry-Reagents-Dispenser.dm | 69 ++--------- .../Chemistry-Reagents-Toxins.dm | 107 +----------------- code/modules/reagents/Chemistry-Recipes.dm | 6 - 3 files changed, 13 insertions(+), 169 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index c1868126eb..50a769432e 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -117,44 +117,6 @@ parent_substance = /datum/reagent/ethanol addiction_display_name = "Alcohol" - var/global/list/drink_tipsy_messages = list( - "You feel pleasantly warm.", - "You feel nice and toasty.", - "You're feeling pretty good.", - "You're ready for a party.", - "You wouldn't mind another drink.", - ) - - var/global/list/drink_buzzed_messages = list( - "You feel nice and toasty.", - "Your face feels warm.", - "You're full of energy.", - "You're feeling very chatty.", - "You wouldn't mind another drink.", - "You're in a good mood." - ) - - var/global/list/drink_drunk_messages = list( - "You're having trouble keeping your balance.", - "The world spins around you.", - "You feel nice and toasty.", - "You're full of energy.", - "Your face is burning.", - "You're feeling very chatty." - ) - - var/global/list/drink_hammered_messages = list( - "You feel like trash.", - "The world spins around you.", - "You're having trouble keeping your balance.", - "You can't remember the last few minutes.", - "You're absolutely hammered.", - "You're completely trashed.", - "You feel angry.", - "You feel sad.", - "You catch yourself staggering." - ) - glass_name = "ethanol" glass_desc = "A well-known alcohol with a variety of applications." gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_FUEL | XGM_GAS_REAGENT_GAS @@ -177,44 +139,29 @@ if(alien == IS_DIONA) strength_mod = 0 - var/drink_message = false - M.add_chemical_effect(CE_ALCOHOL, 1) var/effective_dose = M.chem_doses[type] * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster - if(effective_dose >= strength) // Just give a nice message - drink_message = pick(drink_tipsy_messages) - if(effective_dose >= strength * 2) // Early warning + if(effective_dose >= strength) // Early warning M.make_dizzy(6) // It is decreased at the speed of 3 per tick - drink_message = pick(drink_buzzed_messages) - if(effective_dose >= strength * 3) // Slurring + if(effective_dose >= strength * 2) // Slurring M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.slurring = max(M.slurring, 30) - drink_message = pick(drink_buzzed_messages) + if(effective_dose >= strength * 3) // Confusion - walking in random directions + M.add_chemical_effect(CE_PAINKILLER, 150/strength) + M.confused = max(M.confused, 20) if(effective_dose >= strength * 4) // Blurry vision M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.eye_blurry = max(M.eye_blurry, 10) - drink_message = pick(drink_drunk_messages) - if(effective_dose >= strength * 5) // Confusion - walking in random directions - M.add_chemical_effect(CE_PAINKILLER, 150/strength) - M.confused = max(M.confused, 20) - drink_message = pick(drink_drunk_messages) - if(effective_dose >= strength * 6) // Drowsyness - periodically falling asleep + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.drowsyness = max(M.drowsyness, 20) - drink_message = SPAN_WARNING(pick(drink_hammered_messages)) - if(effective_dose >= strength * 7) // Toxic dose + if(effective_dose >= strength * 6) // Toxic dose M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - drink_message = SPAN_WARNING(pick(drink_hammered_messages)) - if(effective_dose >= strength * 8) // Pass out - drink message = SPAN_DANGER("You black out...") + if(effective_dose >= strength * 7) // Pass out M.Paralyse(20) M.Sleeping(30) - if(drink_message) - if(prob(10)) - to_chat(M, "[drink_message]") - if(druggy != 0) M.druggy = max(M.druggy, druggy) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index a7ff5a7347..c01e7fb39c 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -566,31 +566,7 @@ overdose = REAGENTS_OVERDOSE metabolism = REM * 0.5 gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_REAGENT_GAS - - addictiveness = 2 - addiction_median_dose = 5 - - var/global/list/shroom_dose_messages = list( - "The world spins pleasantly around you.", - "You look down, and your hands aren't yours.", - "The walls flow slowly, over and over again.", - "You're not sure you've ever seen that color before.", - "The floor is fascinating.", - "Your arm feels very soft.", - "There's a brief fluttering in your chest.", - "You smile contentedly, for no reason.", - "Breathing feels nice.", - "You feel like you're in a dream.", - "You forgot you could be as happy as this.", - "Everything around you is crisp and clear.", - "All things love you, and you love them.", - "You feel a strong connection to the place around you.", - "The door into yourself opens.", - "Every emotion feels magnified.", - "You dream of being yourself.", - "You dream of being no one." - ) - + /datum/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) return @@ -606,8 +582,6 @@ M.make_dizzy(5) if(prob(5)) M.emote(pick("twitch", "giggle")) - if(prob(5)) - to_chat(M, "[pick(shroom_dose_messages)]") else if(M.chem_doses[type] < 2 * threshold) M.apply_effect(3, STUTTER) M.make_jittery(5) @@ -615,8 +589,6 @@ M.druggy = max(M.druggy, 35) if(prob(10)) M.emote(pick("twitch", "giggle")) - if(prob(10)) - to_chat(M, "[pick(shroom_dose_messages)]") else M.add_chemical_effect(CE_MIND, -1) M.apply_effect(3, STUTTER) @@ -625,76 +597,7 @@ M.druggy = max(M.druggy, 40) if(prob(15)) M.emote(pick("twitch", "giggle")) - if(prob(15)) - to_chat(M, "[pick(shroom_dose_messages)]") - -/datum/reagent/phorostimulant - name = "Phorostim" - description = "A recreational stimulant derived from phoron." - taste_description = "sharpness" - reagent_state = LIQUID - color = "#ff3300" - metabolism = REM * 0.15 - overdose = REAGENTS_OVERDOSE * 0.5 - addictiveness = 3 - addiction_median_dose = 30 - - var/global/list/stim_dose_messages = list( - "The world races, but not as fast as you.", - "You feel on top of the world.", - "You're in control.", - "You can do anything.", - "You've accomplished so much.", - "Euphoria floods your mind.", - "You need to talk to someone else.", - "It's hard to stay calm!", - "You need to do something with your hands.", - "You have to stay busy.", - "You feel like cleaning something.", - "Your heart races like the wind.", - "You find yourself blinking a lot.", - "You can barely feel your face.", - "The world flashes a pleasant orange.", - "You think about space.", - "You think about stone.", - "Something alive flashes in the corner of your eye.", - "The floor rumbles beneath you.", - "You feel the urge to go on an adventure.", - "You feel the urge to mine." - ) - - var/global/list/stim_overdose_messages = list( - "The world is spinning, far too fast.", - "You stumble, your hands shaking.", - "You're not in control.", - "You need to move, but your body doesn't respond.", - "Your heart beats out of your chest.", - "You look down, and see endless slugs.", - "Teeth gnash at you, from every direction.", - "The ground shakes violently", - "Everything is orange.", - "You feel like you're going to die.", - "This is too much engagement." - ) - -/datum/reagent/phorostim/overdose(var/mob/living/carbon/M, var/alien) - ..() - M.adjustBrainLoss(1) - if(ishuman(M) && prob(10)) - var/mob/living/carbon/human/H = M - H.seizure() - if(prob(10)) - to_chat(M, SPAN_DANGER("[pick(stim_overdose_messages)]")) - -/datum/reagent/phorostim/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - if(alien == IS_DIONA) - return - if(prob(5)) - M.emote(pick("twitch", "blink_r", "shiver")) - to_chat(M, "[pick(stim_dose_messages)]") - M.add_chemical_effect(CE_SPEEDBOOST, 0.2) - M.add_chemical_effect(CE_PULSE, 3) /datum/reagent/three_eye name = "Three Eye" @@ -712,7 +615,7 @@ overdose = 25 // M A X I M U M C H E E S E - var/global/list/three_eye_dose_messages = list( + var/global/list/dose_messages = list( "Your name is called. It is your time.", "You are dissolving. Your hands are wax...", "It all runs together. It all mixes.", @@ -733,7 +636,7 @@ "Come back from there. Please." ) - var/global/list/three_eye_overdose_messages = list( + var/global/list/overdose_messages = list( "THE SIGNAL THE SIGNAL THE SIGNAL THE SIGNAL", "IT CRIES IT CRIES IT WAITS IT CRIES", "NOT YOURS NOT YOURS NOT YOURS NOT YOURS", @@ -756,7 +659,7 @@ H.seizure() H.adjustBrainLoss(rand(8, 12)) if(prob(5)) - to_chat(M, SPAN_WARNING("[pick(three_eye_dose_messages)]")) + to_chat(M, SPAN_WARNING("[pick(dose_messages)]")) /datum/reagent/three_eye/on_leaving_metabolism(var/mob/parent, var/metabolism_class) parent.remove_client_color(/datum/client_color/thirdeye) @@ -768,7 +671,7 @@ var/mob/living/carbon/human/H = M H.seizure() if(prob(10)) - to_chat(M, SPAN_DANGER("[pick(three_eye_overdose_messages)]")) + to_chat(M, SPAN_DANGER("[pick(overdose_messages)]")) if(M.psi) M.psi.check_latency_trigger(30, "a Three Eye overdose") diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 4512590583..886ed1c4eb 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -258,12 +258,6 @@ required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/phosphorus = 1, /datum/reagent/sulfur = 1) result_amount = 3 -/datum/chemical_reaction/phorostimulant - name = "Phorostimulant" - result = /datum/reagent/phorostimulant - required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/phoron = 1) - result_amount = 6 - /datum/chemical_reaction/ryetalyn name = "Ryetalyn" result = /datum/reagent/ryetalyn From 6964739f43cbea76526b1e1630a9cfdf9a8e425e Mon Sep 17 00:00:00 2001 From: NataKilar Date: Sat, 6 Jul 2019 11:07:59 -0400 Subject: [PATCH 13/21] Moves bikes into the Consumer Fabricator (#1302) * Moves bikes to the Consumer Fab * Removes bikes from the Mech Fab --- .../research/fabricators/consumer_fabricator.dm | 13 +++++++++++++ .../modules/research/fabricators/mech_fabricator.dm | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/modules/research/fabricators/consumer_fabricator.dm b/code/modules/research/fabricators/consumer_fabricator.dm index 30907de08c..bc0c109ae7 100644 --- a/code/modules/research/fabricators/consumer_fabricator.dm +++ b/code/modules/research/fabricators/consumer_fabricator.dm @@ -584,3 +584,16 @@ name = "spaceball booster pack" build_path = /obj/item/weapon/pack/spaceball materials = list(MATERIAL_PLASTIC = 0.25 SHEETS) +//////////////////////////////////////////////////// +//////////////////////VEHICLES////////////////////// +//////////////////////////////////////////////////// + +/datum/design/item/consumerfab/vehicles + category = "Vehicles" + time = 50 + +/datum/design/item/consumerfab/vehicles/bike + name = "Motor bike" + id = "m_bike" + materials = list(MATERIAL_STEEL = 40000, MATERIAL_TUNGSTEN = 20000, MATERIAL_GLASS = 20000, MATERIAL_GOLD = 20000) + build_path = /obj/vehicle/bike diff --git a/code/modules/research/fabricators/mech_fabricator.dm b/code/modules/research/fabricators/mech_fabricator.dm index a0a756d5e0..518200ca25 100644 --- a/code/modules/research/fabricators/mech_fabricator.dm +++ b/code/modules/research/fabricators/mech_fabricator.dm @@ -919,16 +919,3 @@ materials = list(MATERIAL_STEEL = 750, MATERIAL_GLASS = 750) build_path = /obj/item/device/flash/synthetic category = "Misc" - -//////////////////////////////////////////////////// -//////////////////////VEHICLES////////////////////// -//////////////////////////////////////////////////// - -/datum/design/item/mechfab/bike - name = "Motor bike" - id = "m_bike" - req_tech = list(TECH_POWER = 1, TECH_ENGINEERING = 1, TECH_MATERIAL = 1) - materials = list(MATERIAL_STEEL = 40000, MATERIAL_TUNGSTEN = 20000, MATERIAL_GLASS = 20000, MATERIAL_GOLD = 20000) - build_path = /obj/vehicle/bike - category = "Vehicles" - time = 50 From d67ed32abb196f7f3738cfd0376c062c2fe77af0 Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sat, 6 Jul 2019 11:38:00 -0700 Subject: [PATCH 14/21] Various drug changes (#1304) * [WIP] Add more addictions Adds some more dependencies. * More dose effects for hallucinogens Nice. * Add a stimulant * Adds phorostimulant recipe PHORONATION * Phoronation is back and it's a drug * Fix stuff * Make people a little better at handling their liquor * Update alcohol effects * Assorted fixes for compile --- .../Chemistry-Reagents-Dispenser.dm | 69 +++++++++-- .../Chemistry-Reagents-Toxins.dm | 107 +++++++++++++++++- code/modules/reagents/Chemistry-Recipes.dm | 6 + 3 files changed, 169 insertions(+), 13 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 50a769432e..3372989683 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -117,6 +117,44 @@ parent_substance = /datum/reagent/ethanol addiction_display_name = "Alcohol" + var/global/list/drink_tipsy_messages = list( + "You feel pleasantly warm.", + "You feel nice and toasty.", + "You're feeling pretty good.", + "You're ready for a party.", + "You wouldn't mind another drink.", + ) + + var/global/list/drink_buzzed_messages = list( + "You feel nice and toasty.", + "Your face feels warm.", + "You're full of energy.", + "You're feeling very chatty.", + "You wouldn't mind another drink.", + "You're in a good mood." + ) + + var/global/list/drink_drunk_messages = list( + "You're having trouble keeping your balance.", + "The world spins around you.", + "You feel nice and toasty.", + "You're full of energy.", + "Your face is burning.", + "You're feeling very chatty." + ) + + var/global/list/drink_hammered_messages = list( + "You feel like trash.", + "The world spins around you.", + "You're having trouble keeping your balance.", + "You can't remember the last few minutes.", + "You're absolutely hammered.", + "You're completely trashed.", + "You feel angry.", + "You feel sad.", + "You catch yourself staggering." + ) + glass_name = "ethanol" glass_desc = "A well-known alcohol with a variety of applications." gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_FUEL | XGM_GAS_REAGENT_GAS @@ -139,29 +177,44 @@ if(alien == IS_DIONA) strength_mod = 0 + var/drink_message = FALSE + M.add_chemical_effect(CE_ALCOHOL, 1) var/effective_dose = M.chem_doses[type] * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster - if(effective_dose >= strength) // Early warning + if(effective_dose >= strength) // Just give a nice message + drink_message = pick(drink_tipsy_messages) + if(effective_dose >= strength * 2) // Early warning M.make_dizzy(6) // It is decreased at the speed of 3 per tick - if(effective_dose >= strength * 2) // Slurring + drink_message = pick(drink_buzzed_messages) + if(effective_dose >= strength * 3) // Slurring M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.slurring = max(M.slurring, 30) - if(effective_dose >= strength * 3) // Confusion - walking in random directions - M.add_chemical_effect(CE_PAINKILLER, 150/strength) - M.confused = max(M.confused, 20) + drink_message = pick(drink_buzzed_messages) if(effective_dose >= strength * 4) // Blurry vision M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.eye_blurry = max(M.eye_blurry, 10) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + drink_message = pick(drink_drunk_messages) + if(effective_dose >= strength * 5) // Confusion - walking in random directions + M.add_chemical_effect(CE_PAINKILLER, 150/strength) + M.confused = max(M.confused, 20) + drink_message = pick(drink_drunk_messages) + if(effective_dose >= strength * 6) // Drowsyness - periodically falling asleep M.add_chemical_effect(CE_PAINKILLER, 150/strength) M.drowsyness = max(M.drowsyness, 20) - if(effective_dose >= strength * 6) // Toxic dose + drink_message = SPAN_WARNING(pick(drink_hammered_messages)) + if(effective_dose >= strength * 7) // Toxic dose M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(effective_dose >= strength * 7) // Pass out + drink_message = SPAN_WARNING(pick(drink_hammered_messages)) + if(effective_dose >= strength * 8) // Pass out + drink_message = SPAN_DANGER("You black out...") M.Paralyse(20) M.Sleeping(30) + if(drink_message) + if(prob(10)) + to_chat(M, "[drink_message]") + if(druggy != 0) M.druggy = max(M.druggy, druggy) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index c01e7fb39c..d79b57aba8 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -566,7 +566,31 @@ overdose = REAGENTS_OVERDOSE metabolism = REM * 0.5 gas_flags = XGM_GAS_CONTAMINANT | XGM_GAS_REAGENT_GAS - + + addictiveness = 2 + addiction_median_dose = 5 + + var/global/list/shroom_dose_messages = list( + "The world spins pleasantly around you.", + "You look down, and your hands aren't yours.", + "The walls flow slowly, over and over again.", + "You're not sure you've ever seen that color before.", + "The floor is fascinating.", + "Your arm feels very soft.", + "There's a brief fluttering in your chest.", + "You smile contentedly, for no reason.", + "Breathing feels nice.", + "You feel like you're in a dream.", + "You forgot you could be as happy as this.", + "Everything around you is crisp and clear.", + "All things love you, and you love them.", + "You feel a strong connection to the place around you.", + "The door into yourself opens.", + "Every emotion feels magnified.", + "You dream of being yourself.", + "You dream of being no one." + ) + /datum/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) return @@ -582,6 +606,8 @@ M.make_dizzy(5) if(prob(5)) M.emote(pick("twitch", "giggle")) + if(prob(5)) + to_chat(M, "[pick(shroom_dose_messages)]") else if(M.chem_doses[type] < 2 * threshold) M.apply_effect(3, STUTTER) M.make_jittery(5) @@ -589,6 +615,8 @@ M.druggy = max(M.druggy, 35) if(prob(10)) M.emote(pick("twitch", "giggle")) + if(prob(10)) + to_chat(M, "[pick(shroom_dose_messages)]") else M.add_chemical_effect(CE_MIND, -1) M.apply_effect(3, STUTTER) @@ -597,7 +625,76 @@ M.druggy = max(M.druggy, 40) if(prob(15)) M.emote(pick("twitch", "giggle")) + if(prob(15)) + to_chat(M, "[pick(shroom_dose_messages)]") + +/datum/reagent/phorostimulant + name = "Phorostim" + description = "A recreational stimulant derived from phoron." + taste_description = "sharpness" + reagent_state = LIQUID + color = "#ff3300" + metabolism = REM * 0.15 + overdose = REAGENTS_OVERDOSE * 0.5 + addictiveness = 3 + addiction_median_dose = 30 + + var/global/list/stim_dose_messages = list( + "The world races, but not as fast as you.", + "You feel on top of the world.", + "You're in control.", + "You can do anything.", + "You've accomplished so much.", + "Euphoria floods your mind.", + "You need to talk to someone else.", + "It's hard to stay calm!", + "You need to do something with your hands.", + "You have to stay busy.", + "You feel like cleaning something.", + "Your heart races like the wind.", + "You find yourself blinking a lot.", + "You can barely feel your face.", + "The world flashes a pleasant orange.", + "You think about space.", + "You think about stone.", + "Something alive flashes in the corner of your eye.", + "The floor rumbles beneath you.", + "You feel the urge to go on an adventure.", + "You feel the urge to mine." + ) + + var/global/list/stim_overdose_messages = list( + "The world is spinning, far too fast.", + "You stumble, your hands shaking.", + "You're not in control.", + "You need to move, but your body doesn't respond.", + "Your heart beats out of your chest.", + "You look down, and see endless slugs.", + "Teeth gnash at you, from every direction.", + "The ground shakes violently", + "Everything is orange.", + "You feel like you're going to die.", + "This is too much engagement." + ) + +/datum/reagent/phorostimulant/overdose(var/mob/living/carbon/M, var/alien) + ..() + M.adjustBrainLoss(1) + if(ishuman(M) && prob(10)) + var/mob/living/carbon/human/H = M + H.seizure() + if(prob(10)) + to_chat(M, SPAN_DANGER("[pick(stim_overdose_messages)]")) + +/datum/reagent/phorostimulant/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_DIONA) + return + if(prob(5)) + M.emote(pick("twitch", "blink_r", "shiver")) + to_chat(M, "[pick(stim_dose_messages)]") + M.add_chemical_effect(CE_SPEEDBOOST, 0.2) + M.add_chemical_effect(CE_PULSE, 3) /datum/reagent/three_eye name = "Three Eye" @@ -615,7 +712,7 @@ overdose = 25 // M A X I M U M C H E E S E - var/global/list/dose_messages = list( + var/global/list/three_eye_dose_messages = list( "Your name is called. It is your time.", "You are dissolving. Your hands are wax...", "It all runs together. It all mixes.", @@ -636,7 +733,7 @@ "Come back from there. Please." ) - var/global/list/overdose_messages = list( + var/global/list/three_eye_overdose_messages = list( "THE SIGNAL THE SIGNAL THE SIGNAL THE SIGNAL", "IT CRIES IT CRIES IT WAITS IT CRIES", "NOT YOURS NOT YOURS NOT YOURS NOT YOURS", @@ -659,7 +756,7 @@ H.seizure() H.adjustBrainLoss(rand(8, 12)) if(prob(5)) - to_chat(M, SPAN_WARNING("[pick(dose_messages)]")) + to_chat(M, SPAN_WARNING("[pick(three_eye_dose_messages)]")) /datum/reagent/three_eye/on_leaving_metabolism(var/mob/parent, var/metabolism_class) parent.remove_client_color(/datum/client_color/thirdeye) @@ -671,7 +768,7 @@ var/mob/living/carbon/human/H = M H.seizure() if(prob(10)) - to_chat(M, SPAN_DANGER("[pick(overdose_messages)]")) + to_chat(M, SPAN_DANGER("[pick(three_eye_overdose_messages)]")) if(M.psi) M.psi.check_latency_trigger(30, "a Three Eye overdose") diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 886ed1c4eb..cb5e12444b 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -258,6 +258,12 @@ required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/phosphorus = 1, /datum/reagent/sulfur = 1) result_amount = 3 +/datum/chemical_reaction/phorostimulant + name = "Phorostimulant" + result = /datum/reagent/phorostimulant + required_reagents = list(/datum/reagent/sugar = 1, /datum/reagent/toxin/phoron = 1) + result_amount = 6 + /datum/chemical_reaction/ryetalyn name = "Ryetalyn" result = /datum/reagent/ryetalyn From 4b4455f8d839fa4114ab1f0112f5a8b404767efe Mon Sep 17 00:00:00 2001 From: Andrew Date: Sat, 6 Jul 2019 21:09:09 -0400 Subject: [PATCH 15/21] Updates floor descriptions (#1303) --- code/game/turfs/flooring/flooring.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 6409239a82..763f634cad 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -257,7 +257,7 @@ /decl/flooring/wood name = "wooden floor" - desc = "Polished redwood planks." + desc = "Polished oak planks." icon = 'icons/turf/flooring/wood.dmi' icon_base = "wood" has_damage_range = 6 @@ -271,26 +271,32 @@ color = WOOD_COLOR_GENERIC /decl/flooring/wood/mahogany + desc = "Polished mahogany planks." color = WOOD_COLOR_RICH build_type = /obj/item/stack/tile/mahogany /decl/flooring/wood/maple + desc = "Polished maple planks." color = WOOD_COLOR_PALE build_type = /obj/item/stack/tile/maple /decl/flooring/wood/ebony + desc = "Polished ebony planks." color = WOOD_COLOR_BLACK build_type = /obj/item/stack/tile/ebony /decl/flooring/wood/walnut + desc = "Polished walnut planks." color = WOOD_COLOR_CHOCOLATE build_type = /obj/item/stack/tile/walnut /decl/flooring/wood/bamboo + desc = "Polished bamboo planks." color = WOOD_COLOR_PALE2 build_type = /obj/item/stack/tile/bamboo /decl/flooring/wood/yew + desc = "Polished yew planks." color = WOOD_COLOR_YELLOW build_type = /obj/item/stack/tile/yew From 4ad6fc7698307849f9198f727329f3c8913d7cc1 Mon Sep 17 00:00:00 2001 From: FaurnsGoldberg Date: Sun, 7 Jul 2019 13:54:13 -0600 Subject: [PATCH 16/21] CANVAS IN FABS + many fixes --- code/controllers/subsystems/market.dm | 2 +- code/modules/admin/admin_verbs.dm | 14 +++++++------- code/modules/designer/canvas.dm | 2 +- code/modules/designer/canvas/size_M.dm | 5 +++-- code/modules/economy/Accounts.dm | 15 ++------------- .../file_system/programs/generic/email_client.dm | 2 +- .../research/fabricators/consumer_fabricator.dm | 9 +++++++++ code/modules/shuttles/shuttle.dm | 12 ++++++------ code/modules/world_save/map_storage.dm | 14 +++++++------- nano/templates/email_client.tmpl | 1 - 10 files changed, 37 insertions(+), 39 deletions(-) diff --git a/code/controllers/subsystems/market.dm b/code/controllers/subsystems/market.dm index d6aaa32e1e..3bd533a3dd 100644 --- a/code/controllers/subsystems/market.dm +++ b/code/controllers/subsystems/market.dm @@ -46,7 +46,7 @@ SUBSYSTEM_DEF(market) if((faction.weekly_assigned + 7 DAY) < world.realtime) faction.assign_weekly_objective() else - if((faction.daily_assigned + 7 DAYS) < world.realtime) + if((faction.weekly_assigned + 7 DAYS) < world.realtime) faction.assign_weekly_objective() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index a5ce742a06..5f8141fd1a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -511,13 +511,13 @@ var/list/admin_verbs_mentor = list( /client/proc/unban_panel() set name = "Unban Panel" set category = "Admin" - // if(holder) - // if(config.ban_legacy_system) - // holder.unbanpanel() - // else - // holder.DB_ban_panel() - // SSstatistics.add_field_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - // return + if(holder) + if(config.ban_legacy_system) + holder.unbanpanel() + else + holder.DB_ban_panel() + SSstatistics.add_field_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return /client/proc/game_panel() set name = "Game Panel" diff --git a/code/modules/designer/canvas.dm b/code/modules/designer/canvas.dm index da0aedfe58..a7aa30880b 100644 --- a/code/modules/designer/canvas.dm +++ b/code/modules/designer/canvas.dm @@ -1,5 +1,5 @@ /obj/item/frame/canvas - name = "Canvas (30x30)" + name = "Canvas" desc = "Such avant-garde, much art." gender = NEUTER icon = 'icons/obj/bureaucracy.dmi' diff --git a/code/modules/designer/canvas/size_M.dm b/code/modules/designer/canvas/size_M.dm index b8b1b6b0d0..886f499b6f 100644 --- a/code/modules/designer/canvas/size_M.dm +++ b/code/modules/designer/canvas/size_M.dm @@ -4,17 +4,18 @@ icon_offset_y = 5 icon_width = 22 icon_height = 22 - + name = "canvas (22x22)" /obj/item/frame/canvas/size_m/portrait icon_state = "canvas_m_p" icon_offset_x = 8 icon_offset_y = 5 icon_width = 16 icon_height = 22 - + name = "canvas (16x22)" /obj/item/frame/canvas/size_m/landscape icon_state = "canvas_m_l" icon_offset_x = 5 icon_offset_y = 8 icon_width = 22 icon_height = 16 + name = "canvas (22x16)" \ No newline at end of file diff --git a/code/modules/economy/Accounts.dm b/code/modules/economy/Accounts.dm index 475f6619a0..96398d5d13 100644 --- a/code/modules/economy/Accounts.dm +++ b/code/modules/economy/Accounts.dm @@ -22,22 +22,11 @@ /datum/money_account/New() ADD_SAVED_VAR(dupe_fixed) ..() + /datum/money_account/after_load() - var/datum/money_account/M = get_account_loadless(account_number) - if(M && M.money >= money) - message_admins("duplicate account loaded owner: [owner_name] account_number: [M.account_number]") - return M - else if(M && M.money < money) - all_money_accounts.Remove(M) - all_money_accounts.Add(src) - return src - else - all_money_accounts.Add(src) + all_money_accounts.Add(src) if(money < 0) money = 0 - if(!dupe_fixed && money > 3000) - money = 3000 - dupe_fixed = 1 ..() return src diff --git a/code/modules/modular_computers/file_system/programs/generic/email_client.dm b/code/modules/modular_computers/file_system/programs/generic/email_client.dm index f5d2ec9c68..75d5e72857 100644 --- a/code/modules/modular_computers/file_system/programs/generic/email_client.dm +++ b/code/modules/modular_computers/file_system/programs/generic/email_client.dm @@ -252,7 +252,7 @@ "body" = pencode2html(message.stored_data), "source" = message.source, "timestamp" = message.timestamp, - "ref" = "\ref[message.uid]" + "ref" = "\ref[message]" ))) data["messages"] = all_messages data["messagecount"] = all_messages.len diff --git a/code/modules/research/fabricators/consumer_fabricator.dm b/code/modules/research/fabricators/consumer_fabricator.dm index 30907de08c..4d64f1139b 100644 --- a/code/modules/research/fabricators/consumer_fabricator.dm +++ b/code/modules/research/fabricators/consumer_fabricator.dm @@ -90,6 +90,15 @@ build_path = /obj/item/instrument/guitar materials = list(MATERIAL_WOOD = 1.5 SHEETS, MATERIAL_STEEL = 1 SHEET) +/datum/design/item/consumerfab/consumer/canvas + build_path = /obj/item/frame/canvas/size_m + materials = list(MATERIAL_WOOD = 3 SHEETS) + build_type = list(CONSUMERFAB, SERVICEFAB) +/datum/design/item/consumerfab/consumer/canvas/portrait + build_path = /obj/item/frame/canvas/size_m/portrait + +/datum/design/item/consumerfab/consumer/canvas/landscape + build_path = /obj/item/frame/canvas/size_m/landscape /datum/design/item/consumerfab/consumer/basketball build_path = /obj/item/weapon/basketball diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 64549f2df5..6f91a8dd00 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -44,8 +44,8 @@ shuttle_area = list(shuttle_area) for(var/T in shuttle_area) var/area/A = locate(T) - if(!istype(A)) - CRASH("Shuttle \"[name]\" couldn't locate area [T].") + // if(!istype(A)) + // CRASH("Shuttle \"[name]\" couldn't locate area [T].") areas += A shuttle_area = areas @@ -53,11 +53,11 @@ current_location = initial_location else current_location = SSshuttle.get_landmark(current_location) - if(!istype(current_location)) - CRASH("Shuttle \"[name]\" could not find its starting location.") +// if(!istype(current_location)) +// CRASH("Shuttle \"[name]\" could not find its starting location.") - if(src.name in SSshuttle.shuttles) - CRASH("A shuttle with the name '[name]' is already defined.") +// if(src.name in SSshuttle.shuttles) +// CRASH("A shuttle with the name '[name]' is already defined.") SSshuttle.shuttles[src.name] = src if(logging_home_tag) new /datum/shuttle_log(src) diff --git a/code/modules/world_save/map_storage.dm b/code/modules/world_save/map_storage.dm index 3fdc7c6639..80958336d6 100644 --- a/code/modules/world_save/map_storage.dm +++ b/code/modules/world_save/map_storage.dm @@ -319,13 +319,13 @@ var/global/list/debug_data = list() L.linked_account = L.linked_account.after_load() L.linked_account.money = 1000 to_file(f, L.linked_account) - if(L.linked_account) - var/key2 = L.linked_account.account_number + // if(L.linked_account) + // var/key2 = L.linked_account.account_number - fdel("record_saves/[key2].sav") - var/savefile/fa = new("record_saves/[key2].sav") - to_file(fa, L) - to_file(fa, L.linked_account) + // fdel("record_saves/[key2].sav") + // var/savefile/fa = new("record_saves/[key2].sav") + // to_file(fa, L) + // to_file(fa, L.linked_account) var/key3 = L.get_fingerprint() fdel("record_saves/[key3].sav") var/savefile/fe = new("record_saves/[key3].sav") @@ -452,7 +452,7 @@ var/global/list/debug_data = list() v.linked_account = account if(v.linked_account) v.linked_account = v.linked_account.after_load() - + v.linked_account.owner_name = get_name() for(var/datum/computer_file/report/crew_record/record2 in GLOB.all_crew_records) if(record2.get_name() == v.get_name()) if(v.linked_account && !record2.linked_account || (record2.linked_account && v.linked_account && record2.linked_account.money < v.linked_account)) diff --git a/nano/templates/email_client.tmpl b/nano/templates/email_client.tmpl index 61eb659504..5cfba28795 100644 --- a/nano/templates/email_client.tmpl +++ b/nano/templates/email_client.tmpl @@ -159,7 +159,6 @@ {{:helper.link('', 'trash', {'delete' : value.uid})}} {{:helper.link('', 'arrowreturnthick-1-w', {'reply' : value.uid})}} {{:helper.link('', 'search', {'view' : value.ref})}} - {{:helper.link('', 'search', {'view' : value.ref})}} {{/for}} From 22ab0b72a4564ee61bf6751c6a985e74fbda6fb2 Mon Sep 17 00:00:00 2001 From: FaurnsGoldberg Date: Sun, 7 Jul 2019 16:34:03 -0600 Subject: [PATCH 17/21] compile --- code/modules/admin/admin_verbs.dm | 6 +++--- code/modules/designer/canvas.dm | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 5f8141fd1a..7f5b3ae985 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -512,9 +512,9 @@ var/list/admin_verbs_mentor = list( set name = "Unban Panel" set category = "Admin" if(holder) - if(config.ban_legacy_system) - holder.unbanpanel() - else + if(config.ban_legacy_system) + holder.unbanpanel() + else holder.DB_ban_panel() SSstatistics.add_field_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return diff --git a/code/modules/designer/canvas.dm b/code/modules/designer/canvas.dm index a7aa30880b..6f4506617c 100644 --- a/code/modules/designer/canvas.dm +++ b/code/modules/designer/canvas.dm @@ -104,6 +104,7 @@ canvas_item = frame.type designer_associate(frame.designer_unit) designer_update_icon() + anchored = 1 /obj/structure/canvas/Destroy() designer_disassociate() From 8482307fd6a3907b7a158d48dfa07e52ea066523 Mon Sep 17 00:00:00 2001 From: FaurnsGoldberg Date: Sun, 7 Jul 2019 16:38:49 -0600 Subject: [PATCH 18/21] small relief fix --- code/modules/mob/new_player/new_player.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 90ca3202b1..e32b870502 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -479,7 +479,9 @@ to_chat(src, "Your character is not loading correctly. Contact Brawler.") spawning = FALSE return - Retrieve_Record(character.real_name) + if (!Retrieve_Record(character.real_name)) + var/datum/computer_file/report/crew_record/new_record = CreateModularRecord(character) + GLOB.all_crew_records |= new_record var/turf/spawnTurf = locate(0,0,0) //Instead of null start with 0,0,0 because the unsafe spawn check will kick in and warn the user if there's something wrong if(character.spawn_type == CHARACTER_SPAWN_TYPE_CRYONET) From b27f1f0a0a7470a4a642e69486d7ba8a402b862d Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sun, 7 Jul 2019 17:43:01 -0700 Subject: [PATCH 19/21] Update crew_record.dm --- .../modular_computers/file_system/reports/crew_record.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/modular_computers/file_system/reports/crew_record.dm b/code/modules/modular_computers/file_system/reports/crew_record.dm index 1f37d35c04..c75207cf6b 100644 --- a/code/modules/modular_computers/file_system/reports/crew_record.dm +++ b/code/modules/modular_computers/file_system/reports/crew_record.dm @@ -110,8 +110,8 @@ FIELD_LONG("Exploitable Information", antagRecord, access_syndicate, access_synd if(linked_account.money < cost) to_chat(user, "Insufficent funds.") return - var/datum/transaction/T = new("Nexus Account Upgrade", "Nexus Account Upgrade", cost, "Nexus Account Upgrade") - linked_account.do_transaction(T) + var/datum/transaction/Te = new("Nexus Account Upgrade", "Nexus Account Upgrade", -cost, "Nexus Account Upgrade") + linked_account.do_transaction(Te) network_level++ /datum/computer_file/report/crew_record/proc/get_stock_limit() From 513983846d4178d6edae19b63bbad6e351727147 Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sun, 7 Jul 2019 17:52:52 -0700 Subject: [PATCH 20/21] Update market.dm --- code/controllers/subsystems/market.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystems/market.dm b/code/controllers/subsystems/market.dm index d6aaa32e1e..7ba420db73 100644 --- a/code/controllers/subsystems/market.dm +++ b/code/controllers/subsystems/market.dm @@ -149,7 +149,7 @@ SUBSYSTEM_DEF(market) if(R) payee_account = R.linked_account if(payee_account) - if(payee_account.money >= pay_amount) + if(payer_account.money >= pay_amount) var/datum/transaction/T = new("[payee] (via recurring contract)", "Contract Payment", -pay_amount, "Recurring Contract") payer_account.do_transaction(T) //transfer the money From 7efcc0ecca33277295b1757c7bd74a04dd374372 Mon Sep 17 00:00:00 2001 From: Rhicora <37093159+rhicora@users.noreply.github.com> Date: Sun, 7 Jul 2019 19:44:16 -0700 Subject: [PATCH 21/21] Update faction.dm --- code/modules/factions/faction.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/factions/faction.dm b/code/modules/factions/faction.dm index c2008b6197..775fd0815f 100644 --- a/code/modules/factions/faction.dm +++ b/code/modules/factions/faction.dm @@ -3438,7 +3438,7 @@ var/PriorityQueue/all_feeds /datum/business_spec/mining/monsterhunter name = "Monster Hunter" desc = "This specialization gives the business capacity for a medical fabricator and tech that can produce machines and equipment to keep employees alive while fighting the top tier of monsters. Travel to the outer reaches and dig for riches, let the monsters come to you." - limits = /datum/machine_limits/retail/spec/bigstore + limits = /datum/machine_limits/mining/spec/monsterhunter hourly_objectives = list(/datum/module_objective/hourly/monsters) daily_objectives = list(/datum/module_objective/daily/monsters) weekly_objectives = list(/datum/module_objective/weekly/monsters)