From b75a07ee53e34c0ba2cf2b7f2a564925808277de Mon Sep 17 00:00:00 2001 From: quotefox Date: Tue, 3 May 2022 17:41:36 +0100 Subject: [PATCH] Chicken Farming V1 --- .../LayeniaStation/LayeniaStation.dmm | 225 +++++++++------- .../items/stacks/sheets/sheet_types.dm | 1 + .../simple_animal/friendly/farm_animals.dm | 141 ---------- .../objects/items/stacks/tiles/tile_types.dm | 28 ++ .../simple_animal/friendly/chicken_types.dm | 0 .../simple_animal/friendly/farm_animals.dm | 245 ++++++++++++++++++ hyperstation/code/obj/farming/farming.dm | 30 +++ hyperstation/icons/mob/chickens.dmi | Bin 0 -> 2600 bytes .../icons/obj/hydroponics/farming.dmi | Bin 0 -> 887 bytes .../icons/obj/hydroponics/harvest.dmi | Bin 410 -> 1546 bytes hyperstation/icons/obj/tiles.dmi | Bin 0 -> 649 bytes icons/mob/animal.dmi | Bin 235690 -> 227817 bytes icons/obj/hydroponics/harvest.dmi | Bin 95167 -> 98379 bytes icons/obj/tiles.dmi | Bin 21014 -> 21651 bytes tgstation.dme | 4 + 15 files changed, 442 insertions(+), 232 deletions(-) create mode 100644 hyperstation/code/game/objects/items/stacks/tiles/tile_types.dm create mode 100644 hyperstation/code/modules/mob/living/simple_animal/friendly/chicken_types.dm create mode 100644 hyperstation/code/modules/mob/living/simple_animal/friendly/farm_animals.dm create mode 100644 hyperstation/code/obj/farming/farming.dm create mode 100644 hyperstation/icons/mob/chickens.dmi create mode 100644 hyperstation/icons/obj/hydroponics/farming.dmi create mode 100644 hyperstation/icons/obj/tiles.dmi diff --git a/_maps/map_files/LayeniaStation/LayeniaStation.dmm b/_maps/map_files/LayeniaStation/LayeniaStation.dmm index 334b7be71..d75f5d7f9 100644 --- a/_maps/map_files/LayeniaStation/LayeniaStation.dmm +++ b/_maps/map_files/LayeniaStation/LayeniaStation.dmm @@ -9396,6 +9396,12 @@ dir = 1 }, /area/science/misc_lab) +"bbY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + name = "scrubbers pipe" + }, +/turf/closed/wall, +/area/hydroponics) "bcb" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -10909,8 +10915,8 @@ /obj/structure/cable{ icon_state = "1-4" }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/turf/closed/wall, +/area/hydroponics) "bwq" = ( /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; @@ -30955,6 +30961,17 @@ }, /turf/open/floor/plating, /area/maintenance/aft) +"gHS" = ( +/obj/machinery/light{ + dir = 1; + pixel_y = 16 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{ + dir = 4; + name = "air vent" + }, +/turf/open/floor/grass, +/area/hydroponics) "gIv" = ( /obj/effect/turf_decal/loading_area{ dir = 8; @@ -31764,8 +31781,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 4; +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ name = "scrubbers pipe" }, /turf/open/floor/plasteel/dark, @@ -34208,6 +34224,19 @@ dir = 8; pixel_x = 24 }, +/obj/structure/table, +/obj/item/watertank, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 3 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, /turf/open/floor/plasteel/dark, /area/hydroponics) "hDl" = ( @@ -40033,30 +40062,10 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "iWa" = ( -/obj/structure/table, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_y = 3 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/watertank, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/grass, /area/hydroponics) "iWe" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -43215,6 +43224,14 @@ }, /turf/open/floor/plating, /area/chapel/main) +"jRW" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 1; + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) "jSj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{ dir = 8; @@ -44650,13 +44667,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ name = "scrubbers pipe" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ - name = "air supply pipe" - }, /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{ + dir = 4; + name = "air supply pipe" + }, /turf/open/floor/plasteel/dark, /area/hydroponics) "knF" = ( @@ -48536,10 +48554,13 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness) "lvD" = ( -/obj/structure/kitchenspike, /obj/machinery/camera{ c_tag = "Kitchen Cold Room" }, +/obj/machinery/light{ + dir = 1; + pixel_y = 16 + }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "lwc" = ( @@ -49928,7 +49949,6 @@ /area/maintenance/fore) "lSg" = ( /obj/structure/table, -/obj/item/book/manual/hydroponics_pod_people, /obj/item/paper/guides/jobs/hydroponics, /obj/item/reagent_containers/glass/bottle/mutagen, /obj/item/reagent_containers/glass/bottle/mutagen, @@ -49948,6 +49968,9 @@ dir = 8; name = "air vent" }, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, /turf/open/floor/plasteel/dark, /area/hydroponics) "lSI" = ( @@ -54725,6 +54748,9 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) +"nfw" = ( +/turf/open/floor/grass, +/area/hydroponics) "nfB" = ( /obj/effect/turf_decal/tile/green{ dir = 1 @@ -66184,11 +66210,6 @@ }, /area/bridge) "pYk" = ( -/obj/machinery/door/airlock/maintenance{ - dir = 4; - name = "Hydroponics Maintenance"; - req_access_txt = "35" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 4; name = "scrubbers pipe" @@ -66200,8 +66221,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/maintenance/fore/secondary) +/turf/closed/wall, +/area/hydroponics) "pYn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -67012,26 +67033,17 @@ }, /area/medical/virology) "qlS" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/shovel/spade, -/obj/item/wrench, -/obj/item/reagent_containers/glass/bucket, -/obj/item/wirecutters, -/obj/item/screwdriver, -/obj/item/crowbar, -/obj/effect/turf_decal/loading_area{ - icon_state = "drain"; - name = "drain" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ + dir = 8; + name = "air supply pipe" }, -/obj/effect/turf_decal/loading_area{ +/obj/machinery/door/window/northleft{ dir = 4; - icon_state = "drain"; - name = "drain" + icon_state = "right"; + name = "Chicken Coop"; + req_access_txt = "35" }, -/obj/machinery/light_switch{ - pixel_x = -23 - }, -/turf/open/floor/plasteel, +/turf/open/floor/grass, /area/hydroponics) "qlU" = ( /obj/structure/sign/logo/kinaris{ @@ -67088,7 +67100,6 @@ }, /area/science/research) "qmq" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -67596,21 +67607,11 @@ /turf/open/floor/plasteel/dark, /area/tcommsat/computer) "qsc" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/turf/open/floor/grass, /area/hydroponics) "qsj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ @@ -69776,10 +69777,16 @@ }, /area/engine/break_room) "qRW" = ( -/obj/item/toy/beach_ball/holoball{ - name = "baskingball" +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/paper/guides/jobs/hydroponics{ + info = "Chickens love their wheat, if you feed it to them, they will be encouraged to lay eggs early. But make sure they have somewhere to nest, or they wont lay! Make sure they have soft grass, or hay to walk on, otherwise they will be unhappy. If a chickens unhappy, then you are unhappy."; + name = "paper- 'Chicken Keeping!'" }, -/turf/open/floor/plating, +/turf/open/floor/grass, /area/hydroponics) "qSg" = ( /obj/effect/turf_decal/loading_area{ @@ -71973,6 +71980,9 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + name = "scrubbers pipe" + }, /turf/open/floor/plasteel/dark/side, /area/hydroponics) "rrS" = ( @@ -88493,7 +88503,6 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/miningdock) "vuZ" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -90502,6 +90511,12 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) +"vTc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + name = "air scrubber" + }, +/turf/open/floor/grass, +/area/hydroponics) "vTh" = ( /obj/effect/turf_decal/loading_area{ dir = 1; @@ -95099,15 +95114,22 @@ /turf/open/floor/plasteel, /area/engine/atmos) "xee" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/shovel/spade, +/obj/item/wrench, +/obj/item/reagent_containers/glass/bucket, +/obj/item/wirecutters, +/obj/item/screwdriver, +/obj/item/crowbar, +/obj/effect/turf_decal/loading_area{ + icon_state = "drain"; + name = "drain" + }, /obj/effect/turf_decal/loading_area{ dir = 4; icon_state = "drain"; name = "drain" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 4; - name = "scrubbers pipe" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ dir = 8; name = "air supply pipe" @@ -95115,6 +95137,11 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 4; + name = "scrubbers pipe" + }, +/obj/structure/window/reinforced, /turf/open/floor/plasteel, /area/hydroponics) "xej" = ( @@ -96020,9 +96047,12 @@ /turf/open/floor/plasteel/dark, /area/arcade) "xqk" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) +/mob/living/simple_animal/chicken{ + force_gender = male; + name = "rooster" + }, +/turf/open/floor/grass, +/area/hydroponics) "xql" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -97856,6 +97886,19 @@ planetary_atmos = 1 }, /area/layenia/cloudlayer) +"xNj" = ( +/mob/living/simple_animal/chicken{ + force_gender = female; + name = "chicken" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + name = "scrubbers pipe" + }, +/obj/machinery/light{ + pixel_y = -1 + }, +/turf/open/floor/grass, +/area/hydroponics) "xNp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ dir = 8; @@ -126535,11 +126578,11 @@ tti aoE tti ksw -cHs -cHs -cHs -cHs -cHs +vxc +vxc +vxc +vxc +vxc cHs cHs cHs @@ -126794,7 +126837,7 @@ pWH rDw bwp xqk -vxc +nfw qRW vxc rrL @@ -127050,10 +127093,10 @@ aNI pre vxc pYk -vxc -vxc -vxc -vxc +gHS +vTc +xNj +bbY rrR gTc uJs @@ -127817,7 +127860,7 @@ kXX oog eLb aJe -vxc +jRW qmq hDa lSg diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 60c7de146..f8d822431 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -242,6 +242,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ + new/datum/stack_recipe("nestbox", /obj/structure/nestbox, 4, time = 30, one_per_turf = TRUE, on_floor = TRUE),\ null, \ new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \ diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 2e66809e5..4ebe01313 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -181,147 +181,6 @@ else ..() -/mob/living/simple_animal/chick - name = "\improper chick" - desc = "Adorable! They make such a racket though." - icon_state = "chick" - icon_living = "chick" - icon_dead = "chick_dead" - icon_gib = "chick_gib" - gender = FEMALE - mob_biotypes = MOB_ORGANIC|MOB_BEAST - speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") - speak_emote = list("cheeps") - emote_hear = list("cheeps.") - emote_see = list("pecks at the ground.","flaps its tiny wings.") - density = FALSE - speak_chance = 2 - turns_per_move = 2 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" - health = 3 - maxHealth = 3 - ventcrawler = VENTCRAWLER_ALWAYS - var/amount_grown = 0 - pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - mob_size = MOB_SIZE_TINY - gold_core_spawnable = FRIENDLY_SPAWN - - do_footstep = TRUE - -/mob/living/simple_animal/chick/Initialize() - . = ..() - pixel_x = rand(-6, 6) - pixel_y = rand(0, 10) - -/mob/living/simple_animal/chick/Life() - . =..() - if(!.) - return - if(!stat && !ckey) - amount_grown += rand(1,2) - if(amount_grown >= 100) - new /mob/living/simple_animal/chicken(src.loc) - qdel(src) - -/mob/living/simple_animal/chick/holo/Life() - ..() - amount_grown = 0 - -/mob/living/simple_animal/chicken - name = "\improper chicken" - desc = "Hopefully the eggs are good this season." - gender = FEMALE - mob_biotypes = MOB_ORGANIC|MOB_BEAST - icon_state = "chicken_brown" - icon_living = "chicken_brown" - icon_dead = "chicken_brown_dead" - speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") - speak_emote = list("clucks","croons") - emote_hear = list("clucks.") - emote_see = list("pecks at the ground.","flaps its wings viciously.") - density = FALSE - speak_chance = 2 - turns_per_move = 3 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 2) - var/egg_type = /obj/item/reagent_containers/food/snacks/egg - var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" - health = 15 - maxHealth = 15 - ventcrawler = VENTCRAWLER_ALWAYS - var/eggsleft = 0 - var/eggsFertile = TRUE - var/body_color - var/icon_prefix = "chicken" - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - var/list/feedMessages = list("It clucks happily.","It clucks happily.") - var/list/layMessage = EGG_LAYING_MESSAGES - var/list/validColors = list("brown","black","white") - gold_core_spawnable = FRIENDLY_SPAWN - var/static/chicken_count = 0 - - do_footstep = TRUE - -/mob/living/simple_animal/chicken/Initialize() - . = ..() - if(!body_color) - body_color = pick(validColors) - icon_state = "[icon_prefix]_[body_color]" - icon_living = "[icon_prefix]_[body_color]" - icon_dead = "[icon_prefix]_[body_color]_dead" - pixel_x = rand(-6, 6) - pixel_y = rand(0, 10) - ++chicken_count - -/mob/living/simple_animal/chicken/Destroy() - --chicken_count - return ..() - -/mob/living/simple_animal/chicken/attackby(obj/item/O, mob/user, params) - if(istype(O, food_type)) //feedin' dem chickens - if(!stat && eggsleft < 8) - var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]" - user.visible_message(feedmsg) - qdel(O) - eggsleft += rand(1, 4) - else - to_chat(user, "[name] doesn't seem hungry!") - else - ..() - -/mob/living/simple_animal/chicken/Life() - . =..() - if(!.) - return - if((!stat && prob(3) && eggsleft > 0) && egg_type) - visible_message("[src] [pick(layMessage)]") - eggsleft-- - var/obj/item/E = new egg_type(get_turf(src)) - E.pixel_x = rand(-6,6) - E.pixel_y = rand(-6,6) - if(eggsFertile) - if(chicken_count < MAX_CHICKENS && prob(25)) - START_PROCESSING(SSobj, E) - -/obj/item/reagent_containers/food/snacks/egg/var/amount_grown = 0 -/obj/item/reagent_containers/food/snacks/egg/process() - if(isturf(loc)) - amount_grown += rand(1,2) - if(amount_grown >= 100) - visible_message("[src] hatches with a quiet cracking sound.") - new /mob/living/simple_animal/chick(get_turf(src)) - STOP_PROCESSING(SSobj, src) - qdel(src) - else - STOP_PROCESSING(SSobj, src) // Space kiwis, ergo quite a copypasta of chickens. diff --git a/hyperstation/code/game/objects/items/stacks/tiles/tile_types.dm b/hyperstation/code/game/objects/items/stacks/tiles/tile_types.dm new file mode 100644 index 000000000..310dea667 --- /dev/null +++ b/hyperstation/code/game/objects/items/stacks/tiles/tile_types.dm @@ -0,0 +1,28 @@ +/turf/open/floor/ + var/farm_quality = 0 //all tiles have a farm quality, which is for farm animals to enjoy. 0 = worse 100 = best! + +//Grass quality +/turf/open/floor/grass + farm_quality = 50 + +/turf/open/floor/grass/fairy + farm_quality = 70 + +//Hay +/obj/item/stack/tile/hay + name = "hay bedding tile" + singular_name = "hay bedding tile" + desc = "A patch of bundled hay." + icon = 'hyperstation/icons/obj/tiles.dmi' + icon_state = "tile_hay" + item_state = "tile_hay" + turf_type = /turf/open/floor/grass/hay + resistance_flags = FLAMMABLE + +/turf/open/floor/grass/hay //like grass + name = "hay bedding" + icon = 'hyperstation/icons/obj/hydroponics/harvest.dmi' + desc = "A patch of bundled hay, to help keep animals happy." + icon_state = "hay" + farm_quality = 100 //the best for farming! + floor_tile = /obj/item/stack/tile/hay diff --git a/hyperstation/code/modules/mob/living/simple_animal/friendly/chicken_types.dm b/hyperstation/code/modules/mob/living/simple_animal/friendly/chicken_types.dm new file mode 100644 index 000000000..e69de29bb diff --git a/hyperstation/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/hyperstation/code/modules/mob/living/simple_animal/friendly/farm_animals.dm new file mode 100644 index 000000000..1da8a2618 --- /dev/null +++ b/hyperstation/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -0,0 +1,245 @@ +/mob/living/simple_animal/ + var/happiness = 50 //how happy they are. + + + + ///////////// +//////////////// CHICKEN ///////////////// + ///////////// + +/mob/living/simple_animal/chick + name = "\improper chick" + desc = "Adorable! They make such a racket though." + icon_state = "chick" + icon_living = "chick" + icon_dead = "chick_dead" + icon_gib = "chick_gib" + gender = FEMALE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") + speak_emote = list("cheeps") + emote_hear = list("cheeps.") + emote_see = list("pecks at the ground.","flaps its tiny wings.") + density = FALSE + speak_chance = 2 + turns_per_move = 2 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 1) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + attacktext = "kicks" + health = 3 + maxHealth = 3 + ventcrawler = VENTCRAWLER_ALWAYS + var/amount_grown = 0 + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + gold_core_spawnable = FRIENDLY_SPAWN + + do_footstep = TRUE + +/mob/living/simple_animal/chick/Initialize() + . = ..() + pixel_x = rand(-6, 6) + pixel_y = rand(0, 10) + +/mob/living/simple_animal/chick/Life() + . =..() + if(!.) + return + if(!stat && !ckey) + amount_grown += rand(1,2) + if(amount_grown >= 100) + new /mob/living/simple_animal/chicken(src.loc) + qdel(src) + +/mob/living/simple_animal/chick/holo/Life() + ..() + amount_grown = 0 + +/mob/living/simple_animal/chicken + icon = 'hyperstation/icons/mob/chickens.dmi' + name = "\improper chicken" + desc = "Hopefully the eggs are good this season." + gender = FEMALE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + icon_state = "chicken_brown" + icon_living = "chicken_brown" + icon_dead = "chicken_brown_dead" + speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") + speak_emote = list("clucks","croons") + emote_hear = list("clucks.") + emote_see = list("pecks at the ground.","flaps its wings viciously.") + density = FALSE + speak_chance = 2 + turns_per_move = 3 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 2) + var/egg_type = /obj/item/reagent_containers/food/snacks/egg + var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + attacktext = "kicks" + health = 15 + maxHealth = 15 + ventcrawler = VENTCRAWLER_ALWAYS + var/eggsleft = 0 + var/eggsFertile = FALSE + var/body_color + var/icon_prefix = "chicken" + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + var/list/feedMessages = list("It clucks happily.","It clucks happily.") + var/list/layMessage = EGG_LAYING_MESSAGES + var/list/validColors = list("brown","black","white") + gold_core_spawnable = FRIENDLY_SPAWN + var/static/chicken_count = 0 + + var/partner //for the sex. + var/egglay_timer = 0 + var/obj/structure/nestbox/nest_target + + var/last_egg + var/force_gender //for map loading + + + do_footstep = TRUE + +/mob/living/simple_animal/chicken/Initialize() + . = ..() + if((prob(30) && !force_gender) || force_gender == "male") //30% of a male. or setup if already male. + gender = MALE + name = "rooster" + + if(!body_color) + body_color = pick(validColors) + icon_state = "[icon_prefix]_[body_color]" + icon_living = "[icon_prefix]_[body_color]" + icon_dead = "[icon_prefix]_[body_color]_dead" + pixel_x = rand(-6, 6) + pixel_y = rand(0, 10) + ++chicken_count + +/mob/living/simple_animal/chicken/Destroy() + --chicken_count + return ..() + +/mob/living/simple_animal/chicken/attackby(obj/item/O, mob/user, params) + if(istype(O, food_type)) //feedin' dem chickens + if(!stat && eggsleft < 2) + var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]" + user.visible_message(feedmsg) + qdel(O) + eggsleft += 1 + egglay_timer = 0 + else + to_chat(user, "[name] doesn't seem hungry!") + else + ..() + + +/mob/living/simple_animal/chicken/Life() + . = ..() + if(!.) + return + if (istype(get_turf(src), /turf/open/floor)) + var/turf/open/floor/turfon = get_turf(src) + if (turfon.farm_quality > happiness) + happiness ++ + if (prob(5)) + visible_message("[src] pecks happily at the ground.") //CLUCK CLUCK CLUCK + else + happiness -- + else + happiness -- + + happiness = clamp(happiness,0,100) //clamp + + + if (!(gender == FEMALE)) //only females lay eggs and do the rest of the code. + return + + + //Breeding. + if (gender == FEMALE && eggsFertile == 0 && eggsleft > 0) + for(var/mob/living/simple_animal/chicken/C in view(2,src)) //look for a male near them, or on them. + if(C) + if(C.gender == MALE) //rooster + eggsFertile = 1 //they had sex, just go with it. + partner = C //you know who the partner is. + //EEGGGG TIME + + //after 10mins, lay a egg regardless. + if(world.time > (last_egg+600 SECONDS) && !eggsleft) + if(prob(15)) //just to offset + eggsleft ++ + last_egg = world.time + + + if((!stat && eggsleft > 0) && egg_type) + egglay_timer ++ + else + egglay_timer = 0 + + + //chance to lay egg on their own. + + + //look for nest! + + //We have found a nest, override movement + if(nest_target) //if alive and we have a target. + stop_automated_movement = 1 + walk_to(src,nest_target,0,8) + else + stop_automated_movement = 0 + walk_to(src,0) //reset walk_to + + if (egglay_timer > 10 && !stat) //time to lay a egg and not dead. + if((!stat && eggsleft > 0) && egg_type) + if (!nest_target) + for(var/obj/structure/nestbox/N in view(3,src)) // look for a eggbox if you dont have one already + nest_target = N + break + + //We are at the nest we have chosen. + if (nest_target) + for(var/obj/structure/nestbox/B in get_turf(src)) + if((prob(25) && eggsleft > 0) && egg_type) + visible_message("[src] [pick(layMessage)]") + eggsleft-- + var/obj/item/E = new egg_type(get_turf(src)) + E.pixel_x = rand(-6,6) + E.pixel_y = rand(-6,6) + egglay_timer = 0 //set timer + nest_target = null //layed the egg, time to move on + if(eggsFertile && partner) + if(chicken_count < MAX_CHICKENS && prob(happiness)) + START_PROCESSING(SSobj, E) + eggsFertile = 0 //youve layed your fertile egg. + E.name = "fertile egg" + partner = null + last_egg = world.time + break + + +/obj/item/reagent_containers/food/snacks/egg/var/amount_grown = 0 +/obj/item/reagent_containers/food/snacks/egg/process() + if(isturf(loc)) + for(var/obj/structure/nestbox/B in get_turf(src)) //can only hatch in a nestbox or incubator + amount_grown += rand(1,2) + if(amount_grown >= 100) + visible_message("[src] hatches with a quiet cracking sound.") + new /mob/living/simple_animal/chick(get_turf(src)) + STOP_PROCESSING(SSobj, src) + qdel(src) + break + else + STOP_PROCESSING(SSobj, src) + + +/mob/living/simple_animal/chicken/examine() + . = ..() + . += "this one is [gender]." + if(happiness<20) + . += "It looks stressed." diff --git a/hyperstation/code/obj/farming/farming.dm b/hyperstation/code/obj/farming/farming.dm new file mode 100644 index 000000000..8c203d78d --- /dev/null +++ b/hyperstation/code/obj/farming/farming.dm @@ -0,0 +1,30 @@ +/obj/item/reagent_containers/food/snacks/grown/wheat/ + var stacktype = /obj/item/stack/tile/hay + var/tile_coefficient = 0.02 // same as grass + +/obj/item/reagent_containers/food/snacks/grown/wheat/attack_self(mob/user) + to_chat(user, "You prepare the hay bedding.") + var/grassAmt = 1 + round(seed.potency * tile_coefficient) // The grass we're holding + for(var/obj/item/reagent_containers/food/snacks/grown/wheat/G in user.loc) // The grass on the floor + if(G.type != type) + continue + grassAmt += 1 + round(G.seed.potency * tile_coefficient) + qdel(G) + new stacktype(user.drop_location(), grassAmt) + qdel(src) + + +/obj/structure/nestbox + name = "nest box" + icon = 'hyperstation/icons/obj/hydroponics/farming.dmi' + icon_state = "nestbox" + desc = "A little nest box, for collecting eggs" + density = FALSE + anchored = TRUE + +/obj/structure/nestbox/wrench_act(mob/living/user, obj/item/I) + user.visible_message("[user] disassembles [src].", + "You start to disassemble [src]...", "You hear clanking and banging noises.") + if(I.use_tool(src, user, 20, volume=50)) + new /obj/item/stack/sheet/mineral/wood (loc, 4) + qdel(src) \ No newline at end of file diff --git a/hyperstation/icons/mob/chickens.dmi b/hyperstation/icons/mob/chickens.dmi new file mode 100644 index 0000000000000000000000000000000000000000..70fbbdda056175ca83eecc7a1656b37a4c119859 GIT binary patch literal 2600 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 H;h*|nh}!Q% literal 0 HcmV?d00001 diff --git a/hyperstation/icons/obj/hydroponics/farming.dmi b/hyperstation/icons/obj/hydroponics/farming.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1a478a052e2dcd028d1924af0e5fd220b401abc3 GIT binary patch literal 887 zcmV--1Bm>IP)O zZtT%2%$XeDwpQhKt=E^i z=^%Eq=A{i=*OhGySVzbB{@(?IgyaOopNL03`E>Wwb0^y{{=HuPrH70Y(=semr8T?S z1h5^q-tfQy55RS7fO7xDgId$~%>W0c?>B2du!;d`A!v8HJ@mQ{s6{FkmIVVkr0o%7 zY}7v;q5)Wz4vZ&LcXr14JY0lx&d=YtbTTeEc=+uwqCzg?r4%%}px7%p0ARF=k~GWL zd6p*83gPk&4&F4wSct56S7buO;pGN9`UD8B*n)56_3mbOEw_BZt^&|zc!YGBa@g;8 z?|1vXpdsrL;%OG9dpnO)xxTyqaDTU!X-scjQ(vJ0W@jXpdGYY^p~#nF)S=MOm#q8! zHkVnJ7oUne%Ot1Nuj_#8e?H|R74k8Elar{4%WoOn;w1o@`QRD z>`ko0K?jaX))5Ef`Rg+Y@X;EpLK%4Zd5*u5mkI!Xk`5T(ewXpz=sP&ZLn{>e{|Ep8 N002ovPDHLkV1jwgxG(?! literal 0 HcmV?d00001 diff --git a/hyperstation/icons/obj/hydroponics/harvest.dmi b/hyperstation/icons/obj/hydroponics/harvest.dmi index 5ba1d7501ac31668218fca0e5461158ffaf31dfa..7ef39845581f6ba7161385cfcb3a785fd3d1f0be 100644 GIT binary patch delta 1461 zcmV;m1xosw1BwiPiBL{Q4GJ0x0000DNk~Le0000$0000W2m=5B0F^_Iwg3PDj8IHe zMZmzoqhSZdhX>7*2efntUDRphQ4 z*N+Fjfe^ld58$a1&$d(5xpCB^G1ra<=f`infDYuZ9G6vp1>md~)wyrWwg}XrF5s;f z#)k*rz(wcBZse~UyMPJfpAz4v5!JYE)SxWDp#a>i4XA8B<);?s#B08K3%YR!=f-Q) zp9kN-Lf@+vz@GrlvrE*sYSW!4kX9`DYe472X62_8)SU<4zCW^X2ji_8Wi%rEG&aB^ zIJI^M=fh)v<)jeJr2yZw3*Wa5y?Y1RhX=ZR2j!v-=fPswdH~Rb0N=el*}eeFjR&-K z2dHNUxOxZPvj@zi0LhF8t!oFvg9pit2hEWOvvLQ_kOzPqI#?DsvvCK@j|aGO2d!)e zwRH!qYX{Dh2cTXB%7P8HcLkGB1)Em|vvCEQRt2q1Y6Z)W6p>B^$cqQdjT4_+1+;Vp z$BPiMZw0Jr2gip8qF@Kch6m%G61;v3zJL#|YX_xc2gr#B>otCs00001bW%=J06^y0 zW&i*Hc#&CXf5TO0Bv#^5qpaZS=K^*D07-i%S7E(}E&u=ns7XXYR7i=9m5F!LMi9oe zJ5x&}91ejtz>*TcKtg0EA>okigcw^U5aa*}w*xL$P}Pg07X^C!bDxY}Ym>e<#zyJEL|b-va?W!kPpy3V~xo zv|E0S@E*07^}g(2z!(6m^lrT$c5R3C_yMH}s|UaS<{%FNm`DJ2<`AqOKEm1@1z>_F zzdbgkCyxyV9A}N>=@TR4CpmZOGyrF0g{NoE&Q8ztd*I^f1LU!}pz?Et`Gtk-+&NyH zU&0FUfB6g9isKf|QY5{)FWCxkeB0az8FI(kc~@cTW{-sp#YKSm}pKZViHzl5*DH(`{F6d>Wp z(f3>fOGy%?ZoZJjx2Xr78;9SL=zFe#rK0d1>LxOinBlKc^xFIuM!$>o@Q>63&$YyS z9DUCb^dhjO!We+uura^ML;%uDvVuYmxT&tEVXFE#%n^8o;T z_#|gPN)kVG9i!C-beB;Ffa5Y`W5}Cx3ky<4$>DZ9u#!{k&0hjQBU9R-v8hpmmSQ`o z%2C^(si3i`jt8-{FMsjF(m=HtL-r4hOIKXsYbAX`qZl-grA;-F_U5k*n9|Dde*^$W zKP~c+!fpT7TER{L`5u5stNnTaW^-{1(|l%5uarwc<6baQ&Z`3Jaw!er3(_`#K4z12 z@lxIAbM>sDd4ElMRNa52hUm()w4BtwTD=@J=sv#w-ne-cZ7K+8m_HV}u}qlhEk6snigF|HOT4SI=yR=&5{3QzjfQ{@(uwi-Nd#uU>Mo P00000NkvXXu0mjf0dlas delta 317 zcmeC;nZ+F08Q|y6%O%Cdz`(%k>ERLtq!mDzg&9aThNK?{QqloFA+84w99WTKHz7>t zXSPGCiP9evvjfT&4Kh{{ViwyCzjXtZF_r}R1v5B2yO9Ru6izLNzKP9uM9Dgg?&N1u8SC5Y?u3Y;W_ut`| zzkQapc?9`W>|xsXliN)0EHc}Lk7C4bploIixq<-5&$Y}czkjS#@RUq z5KP6g&5`4b?F$mP=%G8YF0HBQ`UD8VFqlQ5H|M^0MNNnyN#pA@x(RQCEFpjn$VJ6> zNqql6-tbt1e1WiBArioN!W=n>Iq*yZtXC8-1@hN5d8D=x6Uw&|ft48rw(r$Pwfo#x jyy9QqZSd=V_~ZEjBqkEu0AZ*p00000NkvXXu0mjfPLdvV literal 0 HcmV?d00001 diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 8065118776a507c39392aaaf3efd4b177a8ca467..2d5b7140e3b81746a780684962abeda318093e9c 100644 GIT binary patch delta 204582 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