Skip to content

Commit

Permalink
Merge pull request #3674 from MistakeNot4892/feature/duck
Browse files Browse the repository at this point in the history
Duck!
  • Loading branch information
out-of-phaze authored Feb 12, 2024
2 parents 1a39a2d + 5fada20 commit c2abade
Show file tree
Hide file tree
Showing 9 changed files with 73 additions and 29 deletions.
7 changes: 7 additions & 0 deletions code/datums/supplypacks/livecargo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,10 @@
containertype = /obj/structure/largecrate/animal
containername = "chicken crate"
access = access_hydroponics

/decl/hierarchy/supply_pack/livecargo/duck
name = "Live - Duck"
contains = list(/mob/living/simple_animal/fowl/duck = 3)
containertype = /obj/structure/largecrate/animal
containername = "duck crate"
access = access_hydroponics
6 changes: 4 additions & 2 deletions code/datums/trading/traders/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@
/mob/living/simple_animal/tomato = TRADER_THIS_TYPE,
/mob/living/simple_animal/cow = TRADER_THIS_TYPE,
/mob/living/simple_animal/chick = TRADER_THIS_TYPE,
/mob/living/simple_animal/chicken = TRADER_THIS_TYPE,
/mob/living/simple_animal/fowl/chicken = TRADER_THIS_TYPE,
/mob/living/simple_animal/fowl/duck = TRADER_THIS_TYPE,
/mob/living/simple_animal/yithian = TRADER_THIS_TYPE,
/mob/living/simple_animal/hostile/retaliate/beast/diyaab = TRADER_THIS_TYPE,
/mob/living/simple_animal/hostile/bear = TRADER_THIS_TYPE,
Expand All @@ -60,7 +61,8 @@
/mob/living/simple_animal/tomato = TRADER_THIS_TYPE,
/mob/living/simple_animal/cow = TRADER_THIS_TYPE,
/mob/living/simple_animal/chick = TRADER_THIS_TYPE,
/mob/living/simple_animal/chicken = TRADER_THIS_TYPE,
/mob/living/simple_animal/fowl/chicken = TRADER_THIS_TYPE,
/mob/living/simple_animal/fowl/duck = TRADER_THIS_TYPE,
/mob/living/simple_animal/yithian = TRADER_THIS_TYPE,
/mob/living/simple_animal/hostile/retaliate/beast/diyaab = TRADER_THIS_TYPE,
/mob/living/simple_animal/hostile/bear = TRADER_THIS_TYPE,
Expand Down
80 changes: 57 additions & 23 deletions code/modules/mob/living/simple_animal/friendly/farm_animals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -193,53 +193,62 @@
return FALSE
amount_grown += rand(1,2)
if(amount_grown >= 100)
new /mob/living/simple_animal/chicken(src.loc)
new /mob/living/simple_animal/fowl/chicken(src.loc)
qdel(src)

/mob/living/simple_animal/fowl
mob_default_max_health = 10
pass_flags = PASS_FLAG_TABLE
mob_size = MOB_SIZE_SMALL
meat_type = /obj/item/chems/food/meat/chicken
meat_amount = 2
skin_material = /decl/material/solid/organic/skin/feathers
speak_chance = 2
turns_per_move = 3
abstract_type = /mob/living/simple_animal/fowl
var/body_color

/mob/living/simple_animal/fowl/Initialize()
if(!default_pixel_x)
default_pixel_x = rand(-6, 6)
if(!default_pixel_y)
default_pixel_y = rand(0, 10)
. = ..()

var/global/const/MAX_CHICKENS = 50
var/global/chicken_count = 0

/mob/living/simple_animal/chicken
/mob/living/simple_animal/fowl/chicken
name = "chicken"
desc = "Hopefully the eggs are good this season."
icon = 'icons/mob/simple_animal/chicken_white.dmi'
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")
speak_chance = 2
turns_per_move = 3
mob_default_max_health = 10
pass_flags = PASS_FLAG_TABLE
mob_size = MOB_SIZE_SMALL

meat_type = /obj/item/chems/food/meat/chicken
meat_amount = 2
skin_material = /decl/material/solid/organic/skin/feathers

var/eggsleft = 0
var/body_color

/mob/living/simple_animal/chicken/Initialize()
/mob/living/simple_animal/fowl/chicken/Initialize()
. = ..()
if(!body_color)
body_color = pick( list("brown","black","white") )
body_color = pick("brown", "black", "white")
update_icon()
global.chicken_count += 1

/mob/living/simple_animal/fowl/chicken/on_update_icon()
. = ..()
switch(body_color)
if("brown")
icon = 'icons/mob/simple_animal/chicken_brown.dmi'
if("black")
icon = 'icons/mob/simple_animal/chicken_black.dmi'
else
icon = 'icons/mob/simple_animal/chicken_white.dmi'
pixel_x = rand(-6, 6)
pixel_y = rand(0, 10)
chicken_count += 1

/mob/living/simple_animal/chicken/death(gibbed, deathmessage, show_dead_message)
/mob/living/simple_animal/fowl/chicken/death(gibbed, deathmessage, show_dead_message)
..(gibbed, deathmessage, show_dead_message)
chicken_count -= 1
global.chicken_count -= 1

/mob/living/simple_animal/chicken/attackby(var/obj/item/O, var/mob/user)
/mob/living/simple_animal/fowl/chicken/attackby(var/obj/item/O, var/mob/user)
if(istype(O, /obj/item/chems/food/grown)) //feedin' dem chickens
var/obj/item/chems/food/grown/G = O
if(G.seed && G.seed.kitchen_tag == "wheat")
Expand All @@ -254,7 +263,7 @@ var/global/chicken_count = 0
else
..()

/mob/living/simple_animal/chicken/handle_living_non_stasis_processes()
/mob/living/simple_animal/fowl/chicken/handle_living_non_stasis_processes()
. = ..()
if(!.)
return FALSE
Expand All @@ -268,6 +277,31 @@ var/global/chicken_count = 0
E.amount_grown = 1
START_PROCESSING(SSobj, E)

/mob/living/simple_animal/fowl/duck
name = "duck"
desc = "It's a duck. Quack."
icon = 'icons/mob/simple_animal/duck_white.dmi'
speak = list("Wak!","Wak wak wak!","Wak wak.")
speak_emote = list("quacks")
emote_hear = list("quacks")
emote_see = list("preens itself", "waggles its tail")

/mob/living/simple_animal/fowl/duck/Initialize()
. = ..()
if(!body_color)
body_color = pick("brown", "mallard", "white")
update_icon()

/mob/living/simple_animal/fowl/duck/on_update_icon()
. = ..()
switch(body_color)
if("brown")
icon = 'icons/mob/simple_animal/duck_brown.dmi'
if("mallard")
icon = 'icons/mob/simple_animal/duck_mallard.dmi'
else
icon = 'icons/mob/simple_animal/duck_white.dmi'

/obj/item/chems/food/egg
var/amount_grown = 0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
/mob/living/simple_animal/cat,
/mob/living/simple_animal/corgi,
/mob/living/simple_animal/corgi/puppy,
/mob/living/simple_animal/chicken,
/mob/living/simple_animal/fowl/chicken,
/mob/living/simple_animal/cow,
/mob/living/simple_animal/hostile/retaliate/parrot,
/mob/living/simple_animal/crab,
Expand Down
Binary file added icons/mob/simple_animal/duck_brown.dmi
Binary file not shown.
Binary file added icons/mob/simple_animal/duck_mallard.dmi
Binary file not shown.
Binary file added icons/mob/simple_animal/duck_white.dmi
Binary file not shown.
4 changes: 2 additions & 2 deletions maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -6907,7 +6907,7 @@
/obj/machinery/light{
dir = 8
},
/mob/living/simple_animal/chicken,
/mob/living/simple_animal/fowl/chicken,
/turf/simulated/floor/grass,
/area/map_template/colony/hydroponics)
"nm" = (
Expand Down Expand Up @@ -7806,7 +7806,7 @@
/turf/exterior/concrete,
/area/template_noop)
"vt" = (
/mob/living/simple_animal/chicken,
/mob/living/simple_animal/fowl/chicken,
/turf/simulated/floor/grass,
/area/map_template/colony/hydroponics)
"vJ" = (
Expand Down
3 changes: 2 additions & 1 deletion mods/content/xenobiology/colours/colour_gold.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
/mob/living/simple_animal/corgi/puppy,
/mob/living/simple_animal/cow,
/mob/living/simple_animal/chick,
/mob/living/simple_animal/chicken
/mob/living/simple_animal/fowl/chicken,
/mob/living/simple_animal/fowl/duck
)

/decl/slime_colour/gold/handle_uranium_reaction(var/datum/reagents/holder)
Expand Down

0 comments on commit c2abade

Please sign in to comment.