diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 9033a74526a..f1c79744698 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -977,12 +977,12 @@ /obj/item/seeds/cabbage = 3,/obj/item/seeds/carrot = 3,/obj/item/seeds/cherry = 3,/obj/item/seeds/chanter = 3, /obj/item/seeds/chili = 3,/obj/item/seeds/cocoapod = 3,/obj/item/seeds/coffee = 3, /obj/item/seeds/comfrey =3, /obj/item/seeds/corn = 3, /obj/item/seeds/nymph =3, /obj/item/seeds/eggplant = 3,/obj/item/seeds/grape = 3,/obj/item/seeds/grass = 3,/obj/item/seeds/lemon = 3, - /obj/item/seeds/lime = 3,/obj/item/seeds/orange = 3, /obj/item/seeds/peanuts = 3, /obj/item/seeds/potato = 3,/obj/item/seeds/poppy = 3, + /obj/item/seeds/lime = 3,/obj/item/seeds/onion = 3,/obj/item/seeds/orange = 3, /obj/item/seeds/peanuts = 3, /obj/item/seeds/potato = 3,/obj/item/seeds/poppy = 3, /obj/item/seeds/pumpkin = 3,/obj/item/seeds/replicapod = 3,/obj/item/seeds/wheat/rice = 3,/obj/item/seeds/soya = 3,/obj/item/seeds/sunflower = 3, /obj/item/seeds/tea = 3,/obj/item/seeds/tobacco = 3,/obj/item/seeds/tomato = 3, /obj/item/seeds/tower = 3,/obj/item/seeds/watermelon = 3,/obj/item/seeds/wheat = 3,/obj/item/seeds/whitebeet = 3) contraband = list(/obj/item/seeds/amanita = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/liberty = 2,/obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3, /obj/item/seeds/fungus = 3, /obj/item/seeds/random = 2) + /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3,/obj/item/seeds/starthistle = 2,/obj/item/seeds/fungus = 3, /obj/item/seeds/random = 2) premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) /** diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index eb62395c82a..d22d4eb2c93 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -2490,3 +2490,11 @@ icon_state = "tatortot" list_reagents = list("nutriment" = 4) filling_color = "FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/onionrings + name = "onion rings" + desc = "Onion slices coated in batter." + icon_state = "onionrings" + list_reagents = list("nutriment" = 3) + filling_color = "#C0C9A0" + gender = PLURAL \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm index a0998a67a58..329e39011eb 100644 --- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm +++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm @@ -541,6 +541,10 @@ datum/recipe/microwave/slimesandwich being_cooked.reagents.del_reagent("toxin") return being_cooked +/datum/recipe/microwave/onionrings + items = list(/obj/item/weapon/reagent_containers/food/snacks/onion_slice) + result = /obj/item/weapon/reagent_containers/food/snacks/onionrings + ////////////////////////////FOOD ADDITTIONS/////////////////////////////// /datum/recipe/microwave/wrap diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index bade37d1b3a..1656e4d327f 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -15,11 +15,12 @@ var/datum/plant_gene/target var/operation = "" - var/rating = 0 - var/max_extract_pot = 50 - // The cap on potency gene extraction. - // This number is for T1, each upgraded part adds 5% for a tech level above T1. - // At T4, it reaches 95%. + var/max_potency = 50 // See RefreshParts() for how these work + var/max_yield = 2 + var/min_production = 12 + var/max_endurance = 10 // IMPT: ALSO AFFECTS LIFESPAN + var/min_wchance = 67 + var/min_wrate = 10 /obj/machinery/plantgenes/New() ..() @@ -40,13 +41,27 @@ QDEL_NULL(disk) return ..() -/obj/machinery/plantgenes/RefreshParts() - rating = 0 - for(var/I in component_parts) - if(istype(I, /obj/item/weapon/stock_parts)) - var/obj/item/weapon/stock_parts/S = I - rating += S.rating-1 - max_extract_pot = initial(max_extract_pot) + rating*5 +/obj/machinery/plantgenes/RefreshParts() // Comments represent the max you can set per tier, respectively. seeds.dm [219] clamps these for us but we don't want to mislead the viewer. + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + if(M.rating > 3) + max_potency = 95 + else + max_potency = initial(max_potency) + (M.rating**3) // 53,59,77,95 Clamps at 100 + + max_yield = initial(max_yield) + (M.rating*2) // 4,6,8,10 Clamps at 10 + + for(var/obj/item/weapon/stock_parts/scanning_module/SM in component_parts) + if(SM.rating > 3) //If you create t5 parts I'm a step ahead mwahahaha! + min_production = 1 + else + min_production = 12 - (SM.rating * 3) //9,6,3,1. Requires if to avoid going below clamp [1] + + max_endurance = initial(max_endurance) + (SM.rating * 25) // 35,60,85,100 Clamps at 10min 100max + + for(var/obj/item/weapon/stock_parts/micro_laser/ML in component_parts) + var/wratemod = ML.rating * 2.5 + min_wrate = Floor(10-wratemod) // 7,5,2,0 Clamps at 0 and 10 You want this low + min_wchance = 67-(ML.rating*16) // 48,35,19,3 Clamps at 0 and 67 You want this low /obj/machinery/plantgenes/update_icon() ..() @@ -133,11 +148,36 @@ if("extract") dat += "[target.get_name()] gene from \the [seed]?
" dat += "The sample will be destroyed in process!" - if(istype(target, /datum/plant_gene/core/potency)) + if(istype(target, /datum/plant_gene/core)) var/datum/plant_gene/core/gene = target - if(gene.value > max_extract_pot) - dat += "

This device's extraction capabilities are currently limited to [max_extract_pot] potency. " - dat += "Target gene will be degraded to [max_extract_pot] potency on extraction." + if(istype(target, /datum/plant_gene/core/potency)) + if(gene.value > max_potency) + dat += "

This device's extraction capabilities are currently limited to [max_potency] potency. " + dat += "Target gene will be degraded to [max_potency] potency on extraction." + else if(istype(target, /datum/plant_gene/core/lifespan)) + if(gene.value > max_endurance) + dat += "

This device's extraction capabilities are currently limited to [max_endurance] lifespan. " + dat += "Target gene will be degraded to [max_endurance] Lifespan on extraction." + else if(istype(target, /datum/plant_gene/core/endurance)) + if(gene.value > max_endurance) + dat += "

This device's extraction capabilities are currently limited to [max_endurance] endurance. " + dat += "Target gene will be degraded to [max_endurance] endurance on extraction." + else if(istype(target, /datum/plant_gene/core/yield)) + if(gene.value > max_yield) + dat += "

This device's extraction capabilities are currently limited to [max_yield] yield. " + dat += "Target gene will be degraded to [max_yield] yield on extraction." + else if(istype(target, /datum/plant_gene/core/production)) + if(gene.value < min_production) + dat += "

This device's extraction capabilities are currently limited to [min_production] production. " + dat += "Target gene will be degraded to [min_production] production on extraction." + else if(istype(target, /datum/plant_gene/core/weed_rate)) + if(gene.value < min_wrate) + dat += "

This device's extraction capabilities are currently limited to [min_wrate] weed rate. " + dat += "Target gene will be degraded to [min_wrate] weed rate on extraction." + else if(istype(target, /datum/plant_gene/core/weed_chance)) + if(gene.value < min_wchance) + dat += "

This device's extraction capabilities are currently limited to [min_wchance] weed chance. " + dat += "Target gene will be degraded to [min_wchance] weed chance on extraction." if("replace") dat += "[target.get_name()] gene with [disk.gene.get_name()]?
" if("insert") @@ -292,9 +332,22 @@ if("extract") if(disk && !disk.read_only) disk.gene = G.Copy() - if(istype(disk.gene, /datum/plant_gene/core/potency)) + if(istype(disk.gene, /datum/plant_gene/core)) var/datum/plant_gene/core/gene = disk.gene - gene.value = min(gene.value, max_extract_pot) + if(istype(disk.gene, /datum/plant_gene/core/potency)) + gene.value = min(gene.value, max_potency) + else if(istype(disk.gene, /datum/plant_gene/core/lifespan)) + gene.value = min(gene.value, max_endurance) //INTENDED + else if(istype(disk.gene, /datum/plant_gene/core/endurance)) + gene.value = min(gene.value, max_endurance) + else if(istype(disk.gene, /datum/plant_gene/core/production)) + gene.value = max(gene.value, min_production) + else if(istype(disk.gene, /datum/plant_gene/core/yield)) + gene.value = min(gene.value, max_yield) + else if(istype(disk.gene, /datum/plant_gene/core/weed_rate)) + gene.value = max(gene.value, min_wrate) + else if(istype(disk.gene, /datum/plant_gene/core/weed_chance)) + gene.value = max(gene.value, min_wchance) disk.update_name() QDEL_NULL(seed) update_icon() @@ -397,7 +450,7 @@ /obj/item/weapon/disk/plantgene/proc/update_name() if(gene) - name = "plant data disk - '[gene.get_name()]'" + name = "[gene.get_name()] (Plant Data Disk)" else name = "plant data disk" diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 82abda8e7d6..8e2e83675e0 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -112,6 +112,7 @@ for(var/datum/plant_gene/trait/trait in seed.genes) trait.on_squash(src, target) + reagents.reaction(T) for(var/A in T) if(reagents) reagents.reaction(A) diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 2e05e3f18a0..1aa5e2048c4 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -1,18 +1,32 @@ -// Weeds -/obj/item/seeds/weeds - name = "pack of weed seeds" - desc = "Yo mang, want some weeds?" - icon_state = "seed" - species = "weeds" +// Starthistle +/obj/item/seeds/starthistle + name = "pack of starthistle seeds" + desc = "A robust species of weed that often springs up in-between the cracks of spaceship parking lots" + icon_state = "seed-starthistle" + species = "starthistle" plantname = "Starthistle" - lifespan = 100 + lifespan = 70 endurance = 50 // damm pesky weeds maturation = 5 production = 1 - yield = -1 - potency = -1 - growthstages = 4 + yield = 2 + potency = 10 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) + mutatelist = list(/obj/item/seeds/harebell) + +/obj/item/seeds/starthistle/harvest(mob/user) + var/obj/machinery/hydroponics/parent = loc + var/seed_count = yield + if(prob(getYield() * 20)) + seed_count++ + var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc + for(var/i in 1 to seed_count) + var/obj/item/seeds/starthistle/harvestseeds = Copy() + harvestseeds.forceMove(output_loc) + + parent.update_tray() // Cabbage diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm new file mode 100644 index 00000000000..41229481d8d --- /dev/null +++ b/code/modules/hydroponics/grown/onion.dm @@ -0,0 +1,61 @@ +/obj/item/seeds/onion + name = "pack of onion seeds" + desc = "These seeds grow into onions." + icon_state = "seed-onion" + species = "onion" + plantname = "Onion Sprouts" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/onion + lifespan = 20 + maturation = 3 + production = 4 + yield = 6 + endurance = 25 + growthstages = 3 + weed_chance = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) + mutatelist = list(/obj/item/seeds/onion/red) + +/obj/item/weapon/reagent_containers/food/snacks/grown/onion + seed = /obj/item/seeds/onion + name = "onion" + desc = "Nothing to cry over." + icon_state = "onion" + filling_color = "#C0C9A0" + bitesize_mod = 2 + slice_path = /obj/item/weapon/reagent_containers/food/snacks/onion_slice + slices_num = 2 + +/obj/item/seeds/onion/red + name = "pack of red onion seeds" + desc = "For growing exceptionally potent onions." + icon_state = "seed-onionred" + species = "onion_red" + plantname = "Red Onion Sprouts" + weed_chance = 1 + product = /obj/item/weapon/reagent_containers/food/snacks/grown/onion/red + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1, "onionjuice" = 0.05) + +/obj/item/weapon/reagent_containers/food/snacks/grown/onion/red + seed = /obj/item/seeds/onion/red + name = "red onion" + desc = "Purple despite the name." + icon_state = "onion_red" + filling_color = "#C29ACF" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/onion_slice/red + +/obj/item/weapon/reagent_containers/food/snacks/onion_slice + name = "onion slices" + desc = "Rings, not for wearing." + icon_state = "onionslice" + list_reagents = list("plantmatter" = 5, "vitamin" = 2) + filling_color = "#C0C9A0" + gender = PLURAL + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/onionrings + +/obj/item/weapon/reagent_containers/food/snacks/onion_slice/red + name = "red onion slices" + desc = "They shine like exceptionally low quality amethyst." + icon_state = "onionslice_red" + filling_color = "#C29ACF" + list_reagents = list("plantmatter" = 5, "vitamin" = 2, "onionjuice" = 2.5) \ No newline at end of file diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 339459669be..c70def96fde 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -50,6 +50,9 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/weapon/reagent_containers/food/snacks/grown/wheat) +/obj/item/weapon/grown/log/New() + ..() + accepted = typecacheof(accepted) /obj/item/weapon/grown/log/attackby(obj/item/weapon/W, mob/user, params) if(is_sharp(W)) @@ -66,7 +69,7 @@ to_chat(user, "You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].") qdel(src) - if(is_type_in_list(W,accepted)) + if(is_type_in_typecache(W, accepted)) var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W if(leaf.dry) user.show_message("You wrap \the [W] around the log, turning it into a torch!") @@ -138,7 +141,7 @@ /obj/structure/bonfire/proc/CheckOxygen() var/datum/gas_mixture/G = loc.return_air() // Check if we're standing in an oxygenless environment - if(G.oxygen > 16) + if(G.oxygen > 13) return 1 return 0 diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index c3449514edc..6bac2fc70e8 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -30,6 +30,8 @@ var/lid_state = 0 var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses + var/self_sufficiency_req = 20 //Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood. + var/self_sufficiency_progress = 0 var/self_sustaining = FALSE //If the tray generates nutrients and water on its own hud_possible = list (PLANT_NUTRIENT_HUD, PLANT_WATER_HUD, PLANT_STATUS_HUD, PLANT_HEALTH_HUD, PLANT_TOXIN_HUD, PLANT_PEST_HUD, PLANT_WEED_HUD) @@ -358,6 +360,9 @@ if(!self_sustaining) to_chat(user, "Water: [waterlevel]/[maxwater]") to_chat(user, "Nutrient: [nutrilevel]/[maxnutri]") + if(self_sufficiency_progress > 0) + var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req) + to_chat(user, "Treatment for self-sustenance are [percent_progress]% complete.") else to_chat(user, "It doesn't require any water or nutrients.") @@ -392,7 +397,7 @@ if(4 to 5) myseed = new /obj/item/seeds/plump(src) else - myseed = new /obj/item/seeds/weeds(src) + myseed = new /obj/item/seeds/starthistle(src) age = 0 plant_health = myseed.endurance lastcycle = world.time @@ -546,6 +551,14 @@ adjustNutri(round(S.get_reagent_amount("fishwater") * 0.75)) adjustWater(round(S.get_reagent_amount("fishwater") * 1)) + // Ambrosia Gaia produces earthsblood. + if(S.has_reagent("earthsblood")) + self_sufficiency_progress += S.get_reagent_amount("earthsblood") + if(self_sufficiency_progress >= self_sufficiency_req) + become_self_sufficient() + else if(!self_sustaining) + to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.") + // Antitoxin binds shit pretty well. So the tox goes significantly down if(S.has_reagent("charcoal", 1)) adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) @@ -720,33 +733,7 @@ /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) //Called when mob user "attacks" it with object O - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/gaia)) //Checked early on so it doesn't have to deal with composting checks - if(self_sustaining) - to_chat(user, "This [name] is already self-sustaining!") - return - if(myseed || weedlevel) - to_chat(user, "[src] needs to be clear of plants and weeds!") - return - if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user) - return - if(!O || qdeleted(O)) - return - if(!Adjacent(user)) - return - if(self_sustaining) - to_chat(user, "This [name] is already self-sustaining!") - return - if(myseed || weedlevel) - to_chat(user, "[src] needs to be clear of plants and weeds!") - return - user.visible_message("[user] gently pulls open the soil for [O] and places it inside.", "You tenderly root [O] into [src].") - user.drop_item() - qdel(O) - visible_message("[src] begins to glow with a beautiful light!") - self_sustaining = TRUE - update_icon() - - else if(istype(O, /obj/item/weapon/reagent_containers) ) // Syringe stuff (and other reagent containers now too) + if(istype(O, /obj/item/weapon/reagent_containers) ) // Syringe stuff (and other reagent containers now too) var/obj/item/weapon/reagent_containers/reagent_source = O if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe)) @@ -988,6 +975,11 @@ var/mob/living/simple_animal/hostile/C = new chosen C.faction = list("plants") +/obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect + visible_message("[src] begins to glow with a beautiful light!") + self_sustaining = TRUE + update_icon() + ///Diona Nymph Related Procs/// /obj/machinery/hydroponics/CanPass(atom/movable/mover, turf/target, height=0) //So nymphs can climb over top of trays. if(height==0) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index b9b1c8efcc6..efc3d0f594f 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -267,7 +267,7 @@ rate = 0.03 examine_line = "It emits a soft glow." trait_id = "glow" - var/glow_color = "#AAD84B" + var/glow_color = "#C3E381" /datum/plant_gene/trait/glow/proc/glow_range(obj/item/seeds/S) return 1.4 + S.potency*rate @@ -284,6 +284,7 @@ //adds -potency*(rate*0.05) light power to products name = "Shadow Emission" rate = 0.04 + glow_color = "#AAD84B" /datum/plant_gene/trait/glow/shadow/glow_power(obj/item/seeds/S) return -max(S.potency*(rate*0.05), 0.075) diff --git a/code/modules/mob/living/carbon/carbon_defenses.dm b/code/modules/mob/living/carbon/carbon_defenses.dm index a570ad50cb3..6878a0f28f7 100644 --- a/code/modules/mob/living/carbon/carbon_defenses.dm +++ b/code/modules/mob/living/carbon/carbon_defenses.dm @@ -40,3 +40,7 @@ if(D.IsSpreadByTouch()) ContractDisease(D) return 0 + +/mob/living/carbon/is_mouth_covered(head_only = FALSE, mask_only = FALSE) + if((!mask_only && head && (head.flags_cover & HEADCOVERSMOUTH)) || (!head_only && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH))) + return TRUE \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 02b87dde494..9783673bc33 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -393,3 +393,10 @@ emp_act ..() species.water_act(src,volume,temperature,source) +/mob/living/carbon/human/is_eyes_covered(check_glasses = TRUE, check_head = TRUE, check_mask = TRUE) + if(check_glasses && glasses && (glasses.flags_cover & GLASSESCOVERSEYES)) + return TRUE + if(check_head && head && (head.flags_cover & HEADCOVERSEYES)) + return TRUE + if(check_mask && wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH)) + return TRUE \ No newline at end of file diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index fa9624aa036..d757aff3ada 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -37,6 +37,11 @@ /mob/living/proc/getarmor(var/def_zone, var/type) return 0 +/mob/living/proc/is_mouth_covered(head_only = FALSE, mask_only = FALSE) + return FALSE + +/mob/living/proc/is_eyes_covered(check_glasses = TRUE, check_head = TRUE, check_mask = TRUE) + return FALSE /mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone) //Armor diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index db574418725..9b4ffbad1c4 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -492,6 +492,25 @@ M.adjustFireLoss(-1) ..() +/datum/reagent/consumable/onion + name = "Concentrated Onion Juice" + id = "onionjuice" + description = "A strong tasting substance that can induce partial blindness." + color = "#c0c9a0" + taste_message = "bitterness" + +/datum/reagent/consumable/onion/reaction_mob(mob/living/M, method = TOUCH, volume) + if(method == TOUCH) + if(!M.is_mouth_covered() && !M.is_eyes_covered()) + if(!M.get_organ_slot("eyes")) //can't blind somebody with no eyes + to_chat(M, "Your eye sockets feel wet.") + else + if(!M.eye_blurry) + to_chat(M, "Tears well up in your eyes!") + M.EyeBlind(2) + M.EyeBlurry(5) + ..() + /datum/reagent/consumable/chocolate name = "Chocolate" id = "chocolate" diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index d90a19f00b1..2fe44fcddd1 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi index e1f308c87b4..cceb7491212 100644 Binary files a/icons/obj/hydroponics/growing_flowers.dmi and b/icons/obj/hydroponics/growing_flowers.dmi differ diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi index 070d3531a21..9fc1520175e 100644 Binary files a/icons/obj/hydroponics/growing_vegetables.dmi and b/icons/obj/hydroponics/growing_vegetables.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index d5bb7d48acb..bd596597624 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index edc0ee4894f..a84ed3dd730 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/paradise.dme b/paradise.dme index 1e66e3547b5..1f36a1269a0 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1399,6 +1399,7 @@ #include "code\modules\hydroponics\grown\mushrooms.dm" #include "code\modules\hydroponics\grown\nettle.dm" #include "code\modules\hydroponics\grown\nymph.dm" +#include "code\modules\hydroponics\grown\onion.dm" #include "code\modules\hydroponics\grown\peanut.dm" #include "code\modules\hydroponics\grown\potato.dm" #include "code\modules\hydroponics\grown\pumpkin.dm"