diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index c83be1a3a7a..4769153e1fd 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -182,3 +182,11 @@ user.put_in_hands(T) to_chat(user, "You open [src]\'s shell, revealing \a [T].") qdel(src) + +// Diona Nymphs can eat these as well as weeds to gain nutrition. +/obj/item/reagent_containers/food/snacks/grown/attack_animal(mob/living/simple_animal/M) + if(isnymph(M)) + var/mob/living/simple_animal/diona/D = M + D.consume(src) + else + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index e8c108a11de..7d6f90b7d0d 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -202,6 +202,20 @@ qdel(src) return TRUE +// Consumes plant matter other than weeds to evolve +/mob/living/simple_animal/diona/proc/consume(obj/item/reagent_containers/food/snacks/grown/G) + if(nutrition >= nutrition_need) // Prevents griefing by overeating plant items without evolving. + to_chat(src, "You're too full to consume this! Perhaps it's time to grow bigger...") + else + if(do_after_once(src, 20, target = G)) + visible_message("[src] ravenously consumes [G].", "You ravenously devour [G].") + playsound(loc, 'sound/items/eatfood.ogg', 30, 0, frequency = 1.5) + if(G.reagents.get_reagent_amount("nutriment") + G.reagents.get_reagent_amount("plantmatter") < 1) + adjust_nutrition(2) + else + adjust_nutrition((G.reagents.get_reagent_amount("nutriment") + G.reagents.get_reagent_amount("plantmatter")) * 2) + qdel(G) + /mob/living/simple_animal/diona/proc/steal_blood() if(stat != CONSCIOUS) return FALSE