diff --git a/code/datums/stress/positive_events.dm b/code/datums/stress/positive_events.dm index 826621fd6..26a77dc07 100644 --- a/code/datums/stress/positive_events.dm +++ b/code/datums/stress/positive_events.dm @@ -43,6 +43,16 @@ stressadd = -4 desc = span_blue("I love you sweet leaf.") +/datum/stressevent/westleachtea + timer = 5 MINUTES + stressadd = -4 + desc = span_blue("An energising and refreshing tea.") + +/datum/stressevent/swampweedtea + timer = 5 MINUTES + stressadd = -4 + desc = span_blue("A calming and relaxing tea.") + /datum/stressevent/high timer = 5 MINUTES stressadd = -4 diff --git a/code/modules/farming/crafting_recipes.dm b/code/modules/farming/crafting_recipes.dm index 3483a2f6b..e55c5d7d4 100644 --- a/code/modules/farming/crafting_recipes.dm +++ b/code/modules/farming/crafting_recipes.dm @@ -36,6 +36,17 @@ skillcraft = /datum/skill/craft/carpentry time = 4 SECONDS +/datum/crafting_recipe/roguetown/dryflower + name = "dry fyritius" + result = /obj/item/reagent_containers/food/snacks/grown/rogue/fyritiusdry + reqs = list(/obj/item/reagent_containers/food/snacks/grown/rogue/fyritius = 1) + structurecraft = /obj/structure/fluff/dryingrack + time = 2 SECONDS + verbage_simple = "dry" + verbage = "dries" + craftsound = null + skillcraft = null + /datum/crafting_recipe/roguetown/dryleaf name = "dry swampweed" result = /obj/item/reagent_containers/food/snacks/grown/rogue/sweetleafdry diff --git a/code/modules/farming/produce.dm b/code/modules/farming/produce.dm index 56f4d905d..ba3d06e4e 100644 --- a/code/modules/farming/produce.dm +++ b/code/modules/farming/produce.dm @@ -230,7 +230,7 @@ /obj/item/reagent_containers/food/snacks/grown/rogue/pipeweeddry seed = null - name = "westleach leaf" + name = "dried westleach" desc = "A dried leaf." icon_state = "westleachd" dry = TRUE @@ -241,7 +241,7 @@ /obj/item/reagent_containers/food/snacks/grown/rogue/sweetleafdry seed = null - name = "swampweed" + name = "dried swampweed" desc = "It's dried." icon_state = "swampweedd" dry = TRUE @@ -250,6 +250,17 @@ grind_results = list(/datum/reagent/drug/space_drugs = 5) eat_effect = /datum/status_effect/debuff/badmeal +/obj/item/reagent_containers/food/snacks/grown/rogue/fyritiusdry + seed = null + name = "dried fyritius" + desc = "A dried flower. The drying process has only turned the flower's warmth into an almost stinging heat." + icon_state = "fyritiusd" + dry = TRUE + pipe_reagents = list(/datum/reagent/toxin/fyritiusnectar = 30) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/fyritiusnectar = 5) + grind_results = list(/datum/reagent/toxin/fyritiusnectar = 5) + eat_effect = /datum/status_effect/debuff/badmeal + /obj/item/reagent_containers/food/snacks/grown/onion/rogue name = "onion" desc = "" diff --git a/code/modules/power/roguelighting.dm b/code/modules/power/roguelighting.dm index 314cd1105..59942c5cd 100644 --- a/code/modules/power/roguelighting.dm +++ b/code/modules/power/roguelighting.dm @@ -836,6 +836,37 @@ pot.reagents.remove_reagent(/datum/reagent/water, 1) return + if(W.type in subtypesof(/obj/item/reagent_containers/food/snacks/rogue/herb)) + if(!pot.reagents.has_reagent(/datum/reagent/water, 33)) + to_chat(user, "Not enough water.") + return TRUE + if(pot.reagents.chem_temp < 374) + to_chat(user, "[pot] isn't boiling!") + return + if(do_after(user,2 SECONDS, target = src)) + user.visible_message("[user] places [W] into the pot.") + playsound(src.loc, 'sound/items/Fish_out.ogg', 20, TRUE) + pot.reagents.remove_reagent(/datum/reagent/water, 32) + if(istype(W, /obj/item/reagent_containers/food/snacks/rogue/herb/pipeweeddry_sliced)) + qdel(W) + sleep(800) + playsound(src, "bubbles", 30, TRUE) + pot.reagents.add_reagent(/datum/reagent/consumable/soup/tea/westleach, 32) + pot.reagents.remove_reagent(/datum/reagent/water, 1) + if(istype(W, /obj/item/reagent_containers/food/snacks/rogue/herb/sweetleafdry_sliced)) + qdel(W) + sleep(900) + playsound(src, "bubbles", 30, TRUE) + pot.reagents.add_reagent(/datum/reagent/consumable/soup/tea/swampweed, 32) + pot.reagents.remove_reagent(/datum/reagent/water, 1) + if(istype(W, /obj/item/reagent_containers/food/snacks/rogue/herb/fyritiusdry_sliced)) + qdel(W) + sleep(1000) + playsound(src, "bubbles", 30, TRUE) + pot.reagents.add_reagent(/datum/reagent/consumable/soup/tea/fyritius, 32) + pot.reagents.remove_reagent(/datum/reagent/water, 1) + return + diff --git a/code/modules/roguetown/roguejobs/alchemist/reagents.dm b/code/modules/roguetown/roguejobs/alchemist/reagents.dm index b92638899..81ba4208e 100644 --- a/code/modules/roguetown/roguejobs/alchemist/reagents.dm +++ b/code/modules/roguetown/roguejobs/alchemist/reagents.dm @@ -112,7 +112,7 @@ alpha = 173 /datum/reagent/medicine/manapot/on_mob_life(mob/living/carbon/M) - M.rogstam_add(10) + M.rogstam_add(25) ..() . = 1 diff --git a/html/changelogs/furrycactus - tea_brewing.yml b/html/changelogs/furrycactus - tea_brewing.yml new file mode 100644 index 000000000..498ea9b47 --- /dev/null +++ b/html/changelogs/furrycactus - tea_brewing.yml @@ -0,0 +1,54 @@ +################################ +# 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 +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# maptweak +# - (map updates/tweaks) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# refactor +# - (refactors code) +# admin +# - (makes changes to administrator tools) +################################# + +# Your name. +author: "Furrycactus" + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds three new herbal teas - Swampweed, Westleach, and Fyritius. Swampweed makes you high, Westleach restores a little bit of fatigue, Fyritius is a powerful health potion that will kill you quickly if you drink more than a tiny bit." diff --git a/icons/roguetown/items/produce.dmi b/icons/roguetown/items/produce.dmi index b3e4ef1c4..fe34ddbcc 100644 Binary files a/icons/roguetown/items/produce.dmi and b/icons/roguetown/items/produce.dmi differ diff --git a/modular/Neu_Food/code/NeuFood.dm b/modular/Neu_Food/code/NeuFood.dm index 02f7b052a..c04ea31e2 100644 --- a/modular/Neu_Food/code/NeuFood.dm +++ b/modular/Neu_Food/code/NeuFood.dm @@ -314,6 +314,152 @@ color = "#9e559c" taste_description = "something rancid" +/* ........ Teas ................ */// These are made in the pot in the exact same way you make soups and stews, but they have different effects depending on the type of tea and are more mechanically involved than just food. Better than smoking, worse than alchemy. + +/datum/reagent/consumable/soup/tea + name = "tea" + metabolization_rate = 0.1 + taste_description = "bitterness" + var/trippy = FALSE //Does this tea make you trip? + +/datum/reagent/consumable/soup/tea/on_mob_end_metabolize(mob/living/M) + if(trippy) + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[type]_high") + +/datum/reagent/consumable/soup/tea/westleach + name = "westleach tea" + description = "An energising brew. Popular with sleep deprived soldiers, or peasants rising before dawn." + color = "#aa2c1665" + reagent_state = LIQUID + nutriment_factor = 1 + taste_mult = 4 + hydration = 10 + metabolization_rate = 0.5 * REAGENTS_METABOLISM + taste_description = "tart aromatic tea" + +/datum/reagent/consumable/soup/tea/westleach/on_mob_metabolize(mob/living/M) + M.add_stress(/datum/stressevent/westleachtea) + ..() + +/datum/reagent/consumable/soup/tea/westleach/on_mob_life(mob/living/carbon/M) + if(prob(1)) + var/tea_message = pick("You feel alert.", "You feel energised.", "You feel refreshed.") + to_chat(M, span_notice("[tea_message]")) + +/datum/reagent/consumable/soup/tea/westleach/on_mob_life(mob/living/carbon/M) + M.rogstam_add(10) + ..() + . = 1 + +/datum/reagent/consumable/soup/tea/swampweed + name = "swampweed tea" + description = "A relaxing and calming brew. A common herbal remedy and sleep aid, for peasantry and nobility alike." + color = "#47210a81" + trippy = TRUE + overdose_threshold = 50 + metabolization_rate = 0.5 * REAGENTS_METABOLISM + taste_description = "bitter earthy tea" + +/datum/reagent/consumable/soup/tea/swampweed/on_mob_life(mob/living/carbon/M) + M.set_drugginess(30) + if(prob(1)) + var/tea_message = pick("You feel relaxed.", "You feel calm.", "You feel like your anxieties are less of a burden.") + to_chat(M, span_notice("[tea_message]")) + if(prob(5)) + if(M.gender == FEMALE) + M.emote(pick("twitch_s","giggle")) + else + M.emote(pick("twitch_s","chuckle")) + M.apply_status_effect(/datum/status_effect/buff/weed) + ..() + +/datum/reagent/consumable/soup/tea/swampweed/on_mob_end_metabolize(mob/living/M) + M.clear_fullscreen("weedsm") + M.update_body_parts_head_only() + +/datum/reagent/consumable/soup/tea/swampweed/on_mob_metabolize(mob/living/M) + ..() + M.set_drugginess(30) + M.update_body_parts_head_only() + M.overlay_fullscreen("weedsm", /atom/movable/screen/fullscreen/weedsm) + +/atom/movable/screen/fullscreen/weedsm + icon_state = "smok" + plane = BLACKNESS_PLANE + layer = AREA_LAYER + blend_mode = 0 + alpha = 100 + show_when_dead = FALSE + +/atom/movable/screen/fullscreen/weedsm/Initialize() + . = ..() + filters += filter(type="angular_blur",x=5,y=5,size=1) + +/datum/reagent/consumable/soup/tea/swampweed/overdose_start(mob/living/M) + to_chat(M, span_danger("I start tripping hard!")) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) + +/datum/reagent/drug/space_drugs/overdose_process(mob/living/M) + M.adjustToxLoss(0.1*REM, 0) + M.adjustOxyLoss(1.1*REM, 0) + ..() + +/datum/reagent/consumable/soup/tea/fyritius // Inteded to be a more available healing potion alternative to characters that live out in the wild but don't have alchemy skill. Potent and strong healing, but will probably kill you dead if you're not careful with it. Risk and reward. + name = "fyritius tea" + description = "An ever-simmering, dangerous brew. Old wives tales and outdated apothecary journals speak of this tea as having potent medicinal properties, but twice as terrible consequences if not portioned carefully." + color = "#ff99007e" + reagent_state = LIQUID + nutriment_factor = 1 + taste_mult = 4 + hydration = 10 + metabolization_rate = 1.5 * REAGENTS_METABOLISM + overdose_threshold = 15 + taste_description = "burning floral tea" + +/datum/reagent/consumable/soup/tea/fyritius/on_mob_life(mob/living/carbon/M) + if(prob(1)) + var/tea_message = pick("You feel warmth blossom outwards from your chest. It's just slightly too hot to be comfortable.", "You feel your blood almost simmering with heat, bringing relief and faint stinging pain in equal measure.") + to_chat(M, span_notice("[tea_message]")) + +/datum/reagent/consumable/soup/tea/fyritius/on_mob_life(mob/living/carbon/M) + if(volume >= 60) + M.reagents.remove_reagent(/datum/reagent/consumable/soup/tea/fyritius, 2) //No overhealing. + var/list/wCount = M.get_wounds() + if(M.blood_volume < BLOOD_VOLUME_NORMAL) + M.blood_volume = min(M.blood_volume+50, BLOOD_VOLUME_MAXIMUM) + else + M.blood_volume = min(M.blood_volume+10, BLOOD_VOLUME_MAXIMUM) + if(wCount.len > 0) + M.heal_wounds(3) + M.update_damage_overlays() + M.adjustBruteLoss(-2*REM, 0) + M.adjustFireLoss(-2*REM, 0) + M.adjustOxyLoss(-2, 0) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2*REM) + M.adjustCloneLoss(-2*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!istype(H.dna.species, /datum/species/werewolf)) + M.adjust_nutrition(-0.5*REM) + ..() + . = 1 + +/datum/reagent/consumable/soup/tea/fyritius/overdose_start(mob/living/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!istype(H.dna.species, /datum/species/werewolf)) + H.playsound_local(H, 'sound/misc/heroin_rush.ogg', 100, FALSE) + H.visible_message(span_warning("A terrible fever-flush seizes [H], and burning blisters begin to spread!")) + . = 1 + +/datum/reagent/consumable/soup/tea/fyritius/overdose_process(mob/living/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!istype(H.dna.species, /datum/species/werewolf)) + M.adjustFireLoss(6, 0) + M.adjustToxLoss(2, 0) + ..() + . = 1 /* * * * * * * * * * * * * * * * * * diff --git a/modular/Neu_Food/code/raw/NeuFood_herbs.dm b/modular/Neu_Food/code/raw/NeuFood_herbs.dm new file mode 100644 index 000000000..a9dfd7d10 --- /dev/null +++ b/modular/Neu_Food/code/raw/NeuFood_herbs.dm @@ -0,0 +1,43 @@ +/* * * * * * * * * * * ** + * * + * NeuFood * + * (Herbs) * + * * + * * * * * * * * * * * **/ + + +/* .................. Westleach ................... */ +/obj/item/reagent_containers/food/snacks/grown/rogue/pipeweeddry + desc = "A dried leaf." + slices_num = 1 + slice_path = /obj/item/reagent_containers/food/snacks/rogue/herb/pipeweeddry_sliced + tastes = list("sweet" = 1,"bitterness" = 1) + chopping_sound = TRUE + +/obj/item/reagent_containers/food/snacks/rogue/herb/pipeweeddry_sliced + name = "crushed westleach" + icon_state = "westleachd_crushed" + +/* .................. Swampweed ................... */ +/obj/item/reagent_containers/food/snacks/grown/rogue/sweetleafdry + desc = "It's dried." + slices_num = 1 + slice_path = /obj/item/reagent_containers/food/snacks/rogue/herb/sweetleafdry_sliced + tastes = list("sweet" = 1,"bitterness" = 1) + chopping_sound = TRUE + +/obj/item/reagent_containers/food/snacks/rogue/herb/sweetleafdry_sliced + name = "crushed swampweed" + icon_state = "swampweedd_crushed" + +/* .................. Fyritius ................... */ +/obj/item/reagent_containers/food/snacks/grown/rogue/fyritiusdry + desc = "A dried flower. The drying process has only turned the flower's warmth into an almost stinging heat." + slices_num = 1 + slice_path = /obj/item/reagent_containers/food/snacks/rogue/herb/fyritiusdry_sliced + tastes = list("tastes like a burning coal and fire" = 1) + chopping_sound = TRUE + +/obj/item/reagent_containers/food/snacks/rogue/herb/fyritiusdry_sliced + name = "crushed fyritius" + icon_state = "fyritiusd_crushed" diff --git a/modular/Neu_Food/icons/food.dmi b/modular/Neu_Food/icons/food.dmi index 035ba259c..5fc694854 100644 Binary files a/modular/Neu_Food/icons/food.dmi and b/modular/Neu_Food/icons/food.dmi differ diff --git a/roguetown.dme b/roguetown.dme index 0ff657c6a..928a1de23 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -3553,6 +3553,7 @@ #include "modular\Neu_Food\code\raw\NeuFood_meat.dm" #include "modular\Neu_Food\code\raw\NeuFood_processed.dm" #include "modular\Neu_Food\code\raw\NeuFood_veggies.dm" +#include "modular\Neu_Food\code\raw\NeuFood_herbs.dm" #include "modular\ze_genesis_call\genesis_call.dm" #include "modular_azurepeak\_statpacks.dm" #include "modular_azurepeak\_virtue.dm"