diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index aae29bdf3c..9e26cb48fd 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -63,6 +63,24 @@ plant_type = 0 growthstages = 6 +/obj/item/seeds/plastiseed + name = "plastellium mycelium" + desc = "This mycelium grows into Plastellium" + icon_state = "mycelium-plast" + mypath = "/obj/item/seeds/plastiseed" + species = "plastellium" + plantname = "Plastellium" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/plastellium" + lifespan = 15 + endurance = 17 + maturation = 5 + production = 6 + yield = 6 + oneharvest = 1 + potency = 20 + plant_type = 2 + growthstages = 3 + /obj/item/seeds/replicapod name = "pack of replica pod seeds" desc = "These seeds grow into replica pods. They say these are used to harvest humans." @@ -413,6 +431,24 @@ plant_type = 0 growthstages = 6 +/obj/item/seeds/riceseed + name = "pack of rice seeds" + desc = "These seeds grow into rice stalks." + icon_state = "seed-rice" + mypath = "/obj/item/seeds/riceseed" + species = "rice" + plantname = "Rice Stalks" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk" + lifespan = 25 + endurance = 15 + maturation = 6 + production = 1 + yield = 4 + potency = 5 + oneharvest = 1 + plant_type = 0 + growthstages = 4 + /obj/item/seeds/carrotseed name = "pack of carrot seeds" desc = "These seeds grow into carrots." diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 59abc057a2..d98d57de30 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -774,7 +774,7 @@ /obj/item/seeds/sunflowerseed = 3,/obj/item/seeds/tomatoseed = 3,/obj/item/seeds/towermycelium = 3,/obj/item/seeds/wheatseed = 3,/obj/item/seeds/appleseed = 3, /obj/item/seeds/poppyseed = 3,/obj/item/seeds/ambrosiavulgarisseed = 3,/obj/item/seeds/whitebeetseed = 3,/obj/item/seeds/watermelonseed = 3,/obj/item/seeds/limeseed = 3, /obj/item/seeds/lemonseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/cocoapodseed = 3, - /obj/item/seeds/cabbageseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3) + /obj/item/seeds/cabbageseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/plastiseed = 3,/obj/item/seeds/riceseed = 3) contraband = list(/obj/item/seeds/amanitamycelium = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/libertymycelium = 2,/obj/item/seeds/nettleseed = 2, /obj/item/seeds/plumpmycelium = 2,/obj/item/seeds/reishimycelium = 2) premium = list(/obj/item/toy/waterflower = 1) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 42fe0a3e4c..c76ff2511f 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -114,6 +114,33 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \ pixel_y = rand(0,4)-4 ..() +/obj/item/stack/sheet/mineral/plastic + name = "Plastic" + icon_state = "sheet-plastic" + force = 5.0 + throwforce = 5 + w_class = 3.0 + throw_speed = 3 + throw_range = 3 + origin_tech = "materials=3" + perunit = 2000 + sheettype = "plastic" + +var/global/list/datum/stack_recipe/plastic_recipes = list ( \ + new/datum/stack_recipe("plastic crate", /obj/structure/closet/pcrate, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("plastic ashtray", /obj/item/ashtray/plastic, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("plastic fork", /obj/item/weapon/kitchen/utensil/pfork, 1, on_floor = 1), \ + new/datum/stack_recipe("plastic spoon", /obj/item/weapon/kitchen/utensil/pspoon, 1, on_floor = 1), \ + new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/utensil/pknife, 1, on_floor = 1), \ + new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/plastic/New(var/loc, var/amount=null) + recipes = plastic_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + /* * Gold */ diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index c21601d023..a68276a310 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -40,6 +40,12 @@ icon_state = "spoon" attack_verb = list("attacked", "poked") +/obj/item/weapon/kitchen/utensil/pspoon + name = "plastic spoon" + desc = "Super dull action!" + icon_state = "pspoon" + attack_verb = list("attacked", "poked") + /* * Forks */ @@ -71,6 +77,34 @@ M = user return eyestab(M,user) +/obj/item/weapon/kitchen/utensil/pfork + name = "plastic fork" + desc = "Yay, no washing up to do." + icon_state = "pfork" + +/obj/item/weapon/kitchen/utensil/pfork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M)) + return ..() + + if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head") + return ..() + + if (src.icon_state == "forkloaded") //This is a poor way of handling it, but a proper rewrite of the fork to allow for a more varied foodening can happen when I'm in the mood. --NEO + if(M == user) + for(var/mob/O in viewers(M, null)) + O.show_message(text("\blue [] eats a delicious forkful of omelette!", user), 1) + M.reagents.add_reagent("nutriment", 1) + else + for(var/mob/O in viewers(M, null)) + O.show_message(text("\blue [] feeds [] a delicious forkful of omelette!", user, M), 1) + M.reagents.add_reagent("nutriment", 1) + src.icon_state = "fork" + return + else + if((CLUMSY in user.mutations) && prob(50)) + M = user + return eyestab(M,user) + /* * Knives */ @@ -95,6 +129,21 @@ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return ..() +/obj/item/weapon/kitchen/utensil/pknife + name = "plastic knife" + desc = "The bluntest of blades." + icon_state = "pknife" + force = 10.0 + throwforce = 10.0 + +/obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) + if ((CLUMSY in user.mutations) && prob(50)) + user << "\red You somehow managed to cut yourself with the [src]." + user.take_organ_damage(20) + return + playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + return ..() + /* * Kitchen knives */ diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index ebaebdcabe..706102d614 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -38,7 +38,6 @@ can_hold = list() // any cant_hold = list("/obj/item/weapon/disk/nuclear") - /obj/item/weapon/storage/bag/trash/update_icon() if(contents.len == 0) icon_state = "trashbag0" @@ -48,6 +47,24 @@ icon_state = "trashbag2" else icon_state = "trashbag3" + +// ----------------------------- +// Plastic Bag +// ----------------------------- + +/obj/item/weapon/storage/bag/plasticbag + name = "plastic bag" + desc = "It's a very flimsy, very noisy alternative to a bag." + icon = 'icons/obj/trash.dmi' + icon_state = "plasticbag" + item_state = "plasticbag" + + w_class = 4 + max_w_class = 2 + storage_slots = 21 + can_hold = list() // any + cant_hold = list("/obj/item/weapon/disk/nuclear") + // ----------------------------- // Mining Satchel // ----------------------------- diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 0026aa5316..61b1750a82 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -14,6 +14,20 @@ // mouse_drag_pointer = MOUSE_ACTIVE_POINTER //??? var/rigged = 0 +/obj/structure/closet/pcrate + name = "plastic crate" + desc = "A rectangular plastic crate." + icon = 'icons/obj/storage.dmi' + icon_state = "plasticcrate" + density = 1 + icon_opened = "plasticcrateopen" + icon_closed = "plasticcrate" + req_access = null + opened = 0 + flags = FPRINT +// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //??? + var/rigged = 0 + /obj/structure/closet/crate/internals desc = "A internals crate." name = "Internals crate" diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index b9b61906d7..4260c13da9 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -819,6 +819,14 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti +/datum/recipe/boiledrice + reagents = list("water" = 5, "rice" = 10) + result = /obj/item/weapon/reagent_containers/food/snacks/boiledrice + +/datum/recipe/ricepudding + reagents = list("milk" = 5, "rice" = 10) + result = /obj/item/weapon/reagent_containers/food/snacks/ricepudding + /datum/recipe/pastatomato reagents = list("water" = 5) items = list( diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 247c380eb2..0babdc8406 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -780,7 +780,10 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("cornoil" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), + /obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk = list("rice" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/plastellium = list("plasticide" = 5), + //archaeology! /obj/item/weapon/rocksliver = list("ground_rock" = 50), diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index fd74fc674e..43c2642688 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -331,6 +331,21 @@ datum ..() return + plasticide + name = "Plasticide" + id = "plasticide" + description = "Liquid plastic, do not eat." + reagent_state = LIQUID + color = "#CF3600" // rgb: 207, 54, 0 + custom_metabolism = 0.01 + + on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + // Toxins are really weak, but without being treated, last very long. + M.adjustToxLoss(0.2) + ..() + return + cyanide // Fast and lethal name = "Cyanide" @@ -1121,15 +1136,26 @@ datum reagent_state = LIQUID color = "#660000" // rgb: 102, 0, 0 - +//Commenting this out as it's horribly broken. It's a neat effect though, so it might be worth making a new reagent (that is less common) with similar effects. -Pete +/* reaction_obj(var/obj/O, var/volume) + src = null var/turf/the_turf = get_turf(O) if(!the_turf) return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO - new /obj/effect/decal/cleanable/liquid_fuel(the_turf, volume) + var/datum/gas_mixture/napalm = new + var/datum/gas/volatile_fuel/fuel = new + fuel.moles = 15 + napalm.trace_gases += fuel + the_turf.assume_air(napalm) reaction_turf(var/turf/T, var/volume) - new /obj/effect/decal/cleanable/liquid_fuel(T, volume) - return + src = null + var/datum/gas_mixture/napalm = new + var/datum/gas/volatile_fuel/fuel = new + fuel.moles = 15 + napalm.trace_gases += fuel + T.assume_air(napalm) + return*/ on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1) @@ -2277,6 +2303,19 @@ datum if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour(T) + rice + name = "Rice" + id = "rice" + description = "Enjoy the great taste of nothing." + reagent_state = SOLID + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#FFFFFF" // rgb: 0, 0, 0 + + on_mob_life(var/mob/living/M as mob) + M.nutrition += nutriment_factor + ..() + return + cherryjelly name = "Cherry Jelly" id = "cherryjelly" @@ -2792,6 +2831,12 @@ datum description = "Number one drink AND fueling choice for Russians worldwide." color = "#664300" // rgb: 102, 67, 0 + sake + name = "Sake" + id = "sake" + description = "Anime's favorite drink." + color = "#664300" // rgb: 102, 67, 0 + tequilla name = "Tequila" id = "tequilla" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 60835c6ce8..975b0b5801 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -385,10 +385,8 @@ datum for(var/turf/simulated/floor/target_tile in range(0,location)) var/datum/gas_mixture/napalm = new - var/datum/gas/volatile_fuel/fuel = new - fuel.moles = created_volume - napalm.trace_gases += fuel + napalm.toxins = created_volume*10 napalm.temperature = 400+T0C napalm.update_values() @@ -482,6 +480,19 @@ datum var/location = get_turf(holder.my_atom) new /obj/item/stack/sheet/mineral/plasma(location) return + + plastication + name = "Plastic" + id = "solidplastic" + result = null + required_reagents = list("pacid" = 10, "plasticide" = 20) + result_amount = 1 + on_reaction(var/datum/reagents/holder) + var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic + M.amount = 10 + M.loc = get_turf_loc(holder.my_atom) + return + virus_food name = "Virus Food" id = "virusfood" @@ -1461,6 +1472,13 @@ datum required_reagents = list("potato" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10 + sake + name = "Sake" + id = "sake" + result = "sake" + required_reagents = list("rice" = 10) + required_catalysts = list("enzyme" = 5) + result_amount = 10 kahlua name = "Kahlua" diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index dce8366c18..f594990904 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -82,6 +82,10 @@ icon_state = "ginvodkaglass" name = "Glass of vodka" desc = "The glass contain wodka. Xynta." + if("sake") + icon_state = "ginvodkaglass" + name = "Glass of Sake" + desc = "A glass of Sake." if("goldschlager") icon_state = "ginvodkaglass" name = "Glass of goldschlager" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 44fd0cf046..a5985618ec 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -1566,6 +1566,26 @@ reagents.add_reagent("nutriment", 2) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/boiledrice + name = "Boiled Rice" + desc = "A boring dish of boring rice." + icon_state = "boiledrice" + trash = /obj/item/trash/snack_bowl + New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/ricepudding + name = "Rice Pudding" + desc = "Where's the Jam!" + icon_state = "rpudding" + trash = /obj/item/trash/snack_bowl + New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/pastatomato name = "Spagetti" desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!" diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 474323928d..dd3010ca63 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -232,6 +232,17 @@ reagents.add_reagent("nutriment", 1+round((potency / 10), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) +/obj/item/weapon/reagent_containers/food/snacks/grown/plastellium + seed = "/obj/item/seeds/plastiseed" + name = "clump of plastellium" + desc = "Hmm, needs some processing" + icon_state = "plastellium" + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("plasticide", 1+round((potency / 10), 1)) + bitesize = 1+round(reagents.total_volume / 2, 1) + /obj/item/weapon/reagent_containers/food/snacks/grown/glowberries seed = "/obj/item/seeds/glowberryseed" name = "bunch of glow-berries" @@ -648,6 +659,18 @@ reagents.add_reagent("nutriment", 1+round((potency / 25), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) +/obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk + seed = "/obj/item/seeds/riceseed" + name = "rice stalk" + desc = "Rice to see you." + gender = PLURAL + icon_state = "rice" + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 25), 1)) + bitesize = 1+round(reagents.total_volume / 2, 1) + /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod seed = "/obj/item/seeds/kudzuseed" name = "kudzu pod" diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 0d535f5641..040b717637 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 4f54739e80..e24902bf98 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 68b562026f..9c31373db1 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi index 8f8cd72f2e..3b110ac901 100644 Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index 98e2ea0cca..fa78753cdc 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index a8f3633ecc..4141cca718 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 089bf90755..9cccbfeb83 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index fa049b8bf8..2567f7828e 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 2f88238897..e53127bd93 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index 7bf71f66fe..c031a9576c 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ