diff --git a/code/datums/supplypacks/hydroponics.dm b/code/datums/supplypacks/hydroponics.dm index abe6033bd2..c03fe4c56b 100644 --- a/code/datums/supplypacks/hydroponics.dm +++ b/code/datums/supplypacks/hydroponics.dm @@ -150,3 +150,9 @@ contains = list(/obj/machinery/portable_atmospherics/hydroponics{anchored = 0} = 3) access = access_hydroponics +/datum/supply_packs/hydro/deer + name = "Deer crate" + cost = 50 + containertype = /obj/structure/largecrate/animal/deer + containername = "Deer crate" + access = access_hydroponics diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index b4a0d60dcb..dde0035671 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -81,3 +81,7 @@ /obj/structure/largecrate/animal/chick name = "chicken crate" starts_with = list(/mob/living/simple_animal/chick = 5) + +/obj/structure/largecrate/animal/deer + name = "deer crate" + starts_with = list(/mob/living/simple_animal/deer = 3) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 721c99cc3a..71284f53b2 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -50,6 +50,7 @@ "Wraith" = "wraith", "Viscerator" = "viscerator", "Corgi" = "corgi", + "Deer" = "deer", "Tamaskan" = "tamaskan", "Black Cat" = "blackcat", "Lizard" = "lizard", diff --git a/code/modules/mob/living/simple_animal/animals/deer.dm b/code/modules/mob/living/simple_animal/animals/deer.dm new file mode 100644 index 0000000000..cc72a31a4d --- /dev/null +++ b/code/modules/mob/living/simple_animal/animals/deer.dm @@ -0,0 +1,104 @@ +/mob/living/simple_animal/deer + name = "Deer" + desc = "An animal with impressive antlers and skittish personality, though this one seems domesticated." + tt_desc = "Cervus elaphus" + icon_state = "Deer" + icon_living = "Deer" + icon_dead = "Deer_dead" + icon_gib = "generic_gib" + intelligence_level = SA_ANIMAL + + health = 50 + turns_per_move = 5 + see_in_dark = 6 + + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "gores" + attacktext = list("gored") + + speak_chance = 1 + speak = list("meer?","meer","MEEEEER") + speak_emote = list("bellows","bellows loudly") + emote_hear = list("bellows") + emote_see = list("wiggles its tail") + + meat_amount = 3 + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + +/mob/living/simple_animal/deer/New() + + if(prob(1)) + name = "Kyle" + desc = "A deer with no antlers and a very skittish personality, it seems to be a male even though its a doe." + tt_desc = "Cervus flailicus" + icon_state = "Kyle" + icon_living = "Kyle" + icon_dead = "Kyle_dead" + icon_gib = "generic_gib" + intelligence_level = SA_ANIMAL + vore_active = 1 + + health = 100 + turns_per_move = 1 + see_in_dark = 6 + + response_help = "pets" + response_disarm = "barely manage to push aside" + response_harm = "nibbles" + attacktext = list("nibbled") + + speak_chance = 20 + speak = list("wh-?","wh-!","WH-?!","aaaaa","HELP MAINTS","SPOHGJPDFHDFH!","EEP","!!!!!","gposdjafgpmgd","y e e t") + speak_emote = list("Bleats","Bleats loudly","Wh-s","Flails","Flails a lot") + emote_hear = list("Bleats", "Bleats loudly","Wh-s") + emote_see = list("wiggles his tail","Flails around","Flails","Runs around in a circle") + ..() +/mob/living/simple_animal/deer/init_vore() + ..() + var/obj/belly/B = vore_selected + B.name = "Stomach" + B.desc = "Your curled up inside Kyle's belly, and he doesnt seem very quite eager about the idea judging from all the bleating..." + + B.emote_lists[DM_HOLD] = list( + "The tight belly rubs your body as the panicking deer runs around.", + "You hear the sounds of his stomach squishing your form and his heart thundering away nearby.", + "Kyle doesnt seem to know where to go. The constant turning around in place is pressing you against the walls, its a miracle your not getting dizzy.", + "All the moving about is making you a little sleepy, its like a tight and warm hammock that you constantly swing back and forth in thanks to your unwilling predator.", + "Kyle tries again to cough you up and fails, one has to wonder if you will ever get out.") + + B.emote_lists[DM_DIGEST] = list( + "His herbivore belly isnt suited for a meal like you, but he moves so much that fresh stomach juices are always kneaded into your form to break you down.", + "While the distressed deer is trying to get his unwelcome guest out of his stomach, his stomach is busy claiming its food by tightening around you to grind you into mush.", + "Its hard to see inside the dark and damp belly, but the sound of sloshing liquids grows louder by every minute, and the same goes for the ominous gurgling noises.", + "Everytime Kyle stops to bleat nervously his belly tightens around you, forcing you to curl up tighter than before. Will you get out before its to late, get digested first, or even crushed into a paste?", + "The deer tries his best to regurgitate you, but all it does is excite his stomach even more and fill up the organ with more liquids to churn you up with.") + +// All them complicated deer procedures. +/mob/living/simple_animal/deer/Life() + . = ..() + if(!.) return + + handle_flee_target() + +/mob/living/simple_animal/deer/proc/handle_flee_target() + //see if we should stop fleeing + if (flee_target && !(flee_target in ListTargets(view_range))) + flee_target = null + GiveUpMoving() + + if (flee_target && !stat && !buckled) + if (resting) + lay_down() + if(prob(25)) say("!Bleats!") + stop_automated_movement = 1 + walk_away(src, flee_target, 7, 2) + +/mob/living/simple_animal/deer/react_to_attack(var/atom/A) + if(A == src) return + flee_target = A + turns_since_scan = 5 + +/mob/living/simple_animal/deer/ex_act() + . = ..() + react_to_attack(src.loc) \ No newline at end of file diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 00fbaf6912..949c6e3584 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/vorestation.dme b/vorestation.dme index f1e7d2e0d5..98da256e10 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2183,6 +2183,7 @@ #include "code\modules\mob\living\simple_animal\animals\corgi.dm" #include "code\modules\mob\living\simple_animal\animals\corgi_vr.dm" #include "code\modules\mob\living\simple_animal\animals\crab.dm" +#include "code\modules\mob\living\simple_animal\animals\deer.dm" #include "code\modules\mob\living\simple_animal\animals\farm_animals.dm" #include "code\modules\mob\living\simple_animal\animals\fish.dm" #include "code\modules\mob\living\simple_animal\animals\fish_vr.dm"