diff --git a/GainStation13/code/modules/hydroponics/lipoplant.dm b/GainStation13/code/modules/hydroponics/lipoplant.dm new file mode 100644 index 00000000..e31d06b7 --- /dev/null +++ b/GainStation13/code/modules/hydroponics/lipoplant.dm @@ -0,0 +1,124 @@ +/*/obj/item/seeds/lipoplant + name = "pack of adipolipus" + desc = "These seeds grow into a foreign plant." + icon_state = "seed-fat" + species = "adipolipus" + plantname = "Adipolipus" + product = /obj/item/reagent_containers/food/snacks/grown/lipofruit + lifespan = 30 + potency = 20 + maturation = 8 + production = 5 + yield = 1 + growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' + icon_grow = "fat-grow" // Uses one growth icons set for all the subtypes + icon_dead = "fat-dead" // Same for the dead icon + reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05) + +/obj/item/reagent_containers/food/snacks/grown/lipofruit + seed = /obj/item/seeds/lipoplant + name = "lipofruit" + desc = "A foreign fruit with an hard shell. Perhaps something sharp could open it?" + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "lipofruit" + item_state = "lipofruit" + possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) + spillable = FALSE + resistance_flags = ACID_PROOF + volume = 150 //so it won't cut reagents despite having the capacity for them + w_class = WEIGHT_CLASS_SMALL + force = 5 + throwforce = 5 + hitsound = 'sound/weapons/klonk.ogg' + attack_verb = list("klonked", "donked", "bonked") + distill_reagent = "creme_de_coconut" + var/opened = FALSE + +/obj/item/reagent_containers/food/snacks/grown/lipofruit/attackby(obj/item/W, mob/user, params) + if(!opened && W.sharpness) + user.show_message("You slice the fruit open!", 1) + opened = TRUE + spillable = TRUE + reagent_flags = OPENCONTAINER + ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER) + icon_state = "lipofruit_opened" + desc = "A foreign fruit with an hard shell, the liquid inside looks very inviting." + playsound(user, W.hitsound, 50, 1, -1) + return + return ..() + +/obj/item/reagent_containers/food/snacks/grown/lipofruit/attack(mob/living/M, mob/user, obj/target) + if(!opened) + return + if(!canconsume(M, user)) + return + if(!reagents || !reagents.total_volume) + to_chat(user, "[src] is empty!") + return + + if(user.a_intent == INTENT_HARM && spillable) + var/R + M.visible_message("[user] splashes the contents of [src] onto [M]!", + "[user] splashes the contents of [src] onto [M]!") + if(reagents) + for(var/datum/reagent/A in reagents.reagent_list) + R += A.type + " (" + R += num2text(A.volume) + ")," + if(isturf(target) && reagents.reagent_list.len && thrownby) + log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]") + message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].") + reagents.reaction(M, TOUCH) + log_combat(user, M, "splashed", R) + reagents.clear_reagents() + else + if(M != user) + M.visible_message("[user] attempts to feed something to [M].", + "[user] attempts to feed something to you.") + if(!do_mob(user, M)) + return + if(!reagents || !reagents.total_volume) + return // The drink might be empty after the delay, such as by spam-feeding + M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.") + log_combat(user, M, "fed", reagents.log_list()) + else + to_chat(user, "You swallow a gulp of [src].") + var/fraction = min(5/reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction) + addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), M, 5), 5) + playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) + if(!reagents || !reagents.total_volume) + icon_state = "lipofruit_empty" + desc = "A foreign fruit with an hard shell." + +/obj/item/reagent_containers/food/snacks/grown/lipofruit/afterattack(obj/target, mob/user, proximity) + . = ..() + if((!proximity) || !check_allowed_items(target,target_self=1)) + return + if(target.is_refillable()) //Something like a glass. Player probably wants to transfer TO it. + if(!reagents.total_volume) + to_chat(user, "[src] is empty!") + return + if(target.reagents.holder_full()) + to_chat(user, "[target] is full.") + return + var/trans = reagents.trans_to(target, amount_per_transfer_from_this) + to_chat(user, "You transfer [trans] unit\s of the solution to [target].") + else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us. + if(!target.reagents.total_volume) + to_chat(user, "[target] is empty and can't be refilled!") + return + if(reagents.holder_full()) + to_chat(user, "[src] is full.") + return + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].") + else if(reagents.total_volume) + if(user.a_intent == INTENT_HARM && spillable == TRUE) + user.visible_message("[user] splashes the contents of [src] onto [target]!", \ + "You splash the contents of [src] onto [target].") + reagents.reaction(target, TOUCH) + reagents.clear_reagents() + if(reagents && reagents.total_volume) + icon_state = "lipofruit_opened" + desc = "A foreign fruit with an hard shell, the liquid inside looks very inviting." +*/ diff --git a/GainStation13/code/modules/hydroponics/munchies_weed.dm b/GainStation13/code/modules/hydroponics/munchies_weed.dm new file mode 100644 index 00000000..bafba6f5 --- /dev/null +++ b/GainStation13/code/modules/hydroponics/munchies_weed.dm @@ -0,0 +1,53 @@ +/mob/living/carbon + var/nutri_mult = 1 + +/obj/item/seeds/cannabis/munchies + name = "pack of munchies weed seeds" + desc = "These seeds grow into munchies weed." + icon_state = "seed-munchies" + species = "munchycannabis" + plantname = "Munchies Weed" + icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes + icon_dead = "munchycannabis-dead" // Same for the dead icon + product = /obj/item/reagent_containers/food/snacks/grown/cannabis/munchies + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/orange) + mutatelist = list() + reagents_add = list(/datum/reagent/drug/space_drugs = 0.05, + /datum/reagent/drug/munchies = 0.10) + rarity = 69 + +/obj/item/reagent_containers/food/snacks/grown/cannabis/munchies + seed = /obj/item/seeds/cannabis/munchies + name = "munchies cannabis leaf" + desc = "You feel hungry just looking at it." + icon_state = "munchycannabis" + wine_power = 90 + +/datum/reagent/drug/munchies + name = "Appetite Stimulant" + value = 6 + description = "A chemical compound that makes one mindlessly ravenous." + color = "#60A584" + pH = 9 + metabolization_rate = REAGENTS_METABOLISM / 4 + +/datum/reagent/drug/munchies/on_mob_add(mob/living/L, amount) + . = ..() + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.nutri_mult += 0.5 + +/datum/reagent/drug/munchies/on_mob_delete(mob/living/L) + . = ..() + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.nutri_mult -= 0.5 + +/datum/reagent/drug/munchies/on_mob_life(mob/living/carbon/M) + . = ..() + if(prob(10)) + to_chat(M, "[pick("You feel a little ravenous...", "You could really go feel for a snack right now...", "The taste of food seems really enticing right now...", "Your belly groans, demanding food...")]") + if(M.fullness > 10) + M.fullness -= 1 + if(M.nutrition > 150) + M.nutrition -= 1 diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm index 0531bd2c..1131f21e 100644 --- a/code/modules/hydroponics/grown/cannabis.dm +++ b/code/modules/hydroponics/grown/cannabis.dm @@ -14,7 +14,8 @@ icon_dead = "cannabis-dead" // Same for the dead icon genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cannabis/rainbow, - /obj/item/seeds/cannabis/death) + /obj/item/seeds/cannabis/death, + /obj/item/seeds/cannabis/munchies) reagents_add = list(/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/medicine/lipolicide = 0.35) // gives u the munchies /obj/item/seeds/cannabis/rainbow diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 71ebc0d6..2841186d 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -356,6 +356,11 @@ datum/plant_gene/trait/glow/white name = "Pink Bioluminescence" glow_color = "#FFB3DA" +/datum/plant_gene/trait/glow/orange + //GS13 + name = "Orange Bioluminescence" + glow_color = "#f59c18" + //Change grow, harvest, and crafted food's color //Made for mostly being fancy with stuff. Should be rare or hard to obtain, with the exception of strange seeds /datum/plant_gene/trait/modified_color diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 81da3b74..21686e3e 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -17,7 +17,7 @@ /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) current_cycle++ - M.nutrition += nutriment_factor + M.nutrition += nutriment_factor * M.nutri_mult //GS13 nutriment multiplier to make nutrition stronger based on certain effects M.thirst += hydration holder.remove_reagent(type, metabolization_rate) diff --git a/code/modules/research/xenoarch/artifact.dm b/code/modules/research/xenoarch/artifact.dm index 0ec2d64c..6c45cb08 100644 --- a/code/modules/research/xenoarch/artifact.dm +++ b/code/modules/research/xenoarch/artifact.dm @@ -74,7 +74,8 @@ if(!do_after(user,50,target=src)) to_chat(user,"You need to stand still to extract the seeds.") return - var/seed = pick(list( /obj/item/seeds/amauri, + var/seed = pick(list( /obj/item/seeds/lipoplant, + /obj/item/seeds/amauri, /obj/item/seeds/gelthi, /obj/item/seeds/jurlmah, /obj/item/seeds/nofruit, diff --git a/code/modules/research/xenoarch/artifact_list.dm b/code/modules/research/xenoarch/artifact_list.dm index d4fda49f..4f230244 100644 --- a/code/modules/research/xenoarch/artifact_list.dm +++ b/code/modules/research/xenoarch/artifact_list.dm @@ -7,7 +7,6 @@ GLOBAL_LIST_INIT(bas_artifact,list( /obj/item/kitchen/fork=1, /obj/item/trash/plate=1, /obj/item/extendohand=1, /obj/item/toy/plush/random=1, - /obj/item/clothing/head/condom=1, /obj/item/ancientartifact/useless=11 )) @@ -17,9 +16,7 @@ GLOBAL_LIST_INIT(adv_artifact,list( /obj/item/shield/riot/roman=1, /obj/item/stack/telecrystal=1, /obj/item/sharpener=1, /obj/item/switchblade=1, - /obj/item/laser_pointer=1, /obj/item/instrument/piano_synth=1, - /obj/item/megaphone=1, /obj/item/storage/backpack/satchel/bone=1, /obj/item/clothing/accessory/talisman=1, /obj/item/clothing/accessory/skullcodpiece=1, @@ -31,9 +28,8 @@ GLOBAL_LIST_INIT(adv_artifact,list( /obj/item/shield/riot/roman=1, /obj/item/reagent_containers/pill/floorpill=1, /obj/item/survivalcapsule/luxury=1, /obj/item/slime_extract/grey=1, - /obj/item/ancientartifact/useless=5, /obj/item/ancientartifact/faunafossil=10, - /obj/item/ancientartifact/florafossil=10 + /obj/item/ancientartifact/florafossil=20 )) GLOBAL_LIST_INIT(ult_artifact,list( /obj/item/nuke_core/supermatter_sliver=1, diff --git a/goon/icons/obj/hydroponics.dmi b/goon/icons/obj/hydroponics.dmi index 5fb5d4ed..a06fc323 100644 Binary files a/goon/icons/obj/hydroponics.dmi and b/goon/icons/obj/hydroponics.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 3bc523e6..4a43c5d7 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/tgstation.dme b/tgstation.dme index e83232b4..f1798d7a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3113,6 +3113,8 @@ #include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm" #include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm" #include "GainStation13\code\modules\gym\gym.dm" +#include "GainStation13\code\modules\hydroponics\lipoplant.dm" +#include "GainStation13\code\modules\hydroponics\munchies_weed.dm" #include "GainStation13\code\modules\hydroponics\grown\berries.dm" #include "GainStation13\code\modules\mob\living\emote.dm" #include "GainStation13\code\modules\mob\living\emote_modular.dm"