Skip to content

Adds more items to the biogenerator #7059

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 3, 2025
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions code/controllers/configuration/entries/game_options.dm
Copy link
Contributor

@HimKobold HimKobold Jul 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could still flood Medbay, albeit I don't see many players making mob-tides anyhow & this could be reduced in the future if need be. I'd personally reduce the cap to 20 though for the sake of not being bulldozed by Romani Ranch.

Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,14 @@
default = 64
min_val = 0

/datum/config_entry/number/cowcap
default = 35
min_val = 0

/datum/config_entry/number/pigcap
default = 35
min_val = 0

/datum/config_entry/number/maxfine
default = 1000
min_val = 0
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/subsystem/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ SUBSYSTEM_DEF(mobs)
var/static/list/dead_players_by_zlevel[][] = list(list()) // Needs to support zlevel 1 here, MaxZChanged only happens when z2 is created and new_players can login before that.
var/static/list/cubemonkeys = list()
var/static/list/cheeserats = list()
var/static/list/cubecows = list()
var/static/list/cubepigs = list()

/datum/controller/subsystem/mobs/stat_entry(msg)
msg = "P:[length(GLOB.mob_living_list)]"
Expand Down
20 changes: 20 additions & 0 deletions code/game/objects/items/food/monkeycube.dm
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,23 @@
)
tastes = list("buzzing" = 1, "honey" = 1, "regret" = 1)
spawned_mob = /mob/living/basic/bee

/obj/item/food/monkeycube/cow
name = "Cow cube"
desc = "Because not all ethical committees agree with eating chimpanzee."
bite_consumption = 20
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 30
)
tastes = list("Leather" = 1, "Beef" = 1, "Jerky" = 1)
spawned_mob = /mob/living/basic/cow

/obj/item/food/monkeycube/pig
name = "Pig cube"
desc = "A whole new way to bring home the bacon"
bite_consumption = 20
food_reagents = list(
/datum/reagent/consumable/nutriment = 30
)
tastes = list("Pork" = 1, "Batons" =1)
spawned_mob = /mob/living/basic/pig
10 changes: 10 additions & 0 deletions code/modules/mob/living/basic/farm_animals/cow/_cow.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,18 @@
var/tame_message = "lets out a happy moo"
/// singular version for player cows
var/self_tame_message = "let out a happy moo"
/// does this cow contribute to the cowcap?
var/contributes_to_cowcap = TRUE

/mob/living/basic/cow/Initialize(mapload)
if(contributes_to_cowcap)
var/cap = CONFIG_GET(number/cowcap)
if (LAZYLEN(SSmobs.cubecows) > cap)
do_sparks(rand(3, 4), FALSE, src)
visible_message(span_warning("ERROR: Bluespace Disturbance Detected. More than [cap] entities will disturb bluespace harmonics. Entity eradicated"))
ai_controller = null
return INITIALIZE_HINT_QDEL
SSmobs.cubecows |= src
AddComponent(/datum/component/tippable, \
tip_time = 0.5 SECONDS, \
untip_time = 0.5 SECONDS, \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
///How much experience this cow will grant.
var/granted_experience


/mob/living/basic/cow/wisdom/Initialize(mapload, granted_wisdom, granted_experience = 500)
. = ..()
src.granted_wisdom = granted_wisdom
Expand Down
10 changes: 10 additions & 0 deletions code/modules/mob/living/basic/farm_animals/pig.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,19 @@
gold_core_spawnable = FRIENDLY_SPAWN
blood_volume = BLOOD_VOLUME_NORMAL
ai_controller = /datum/ai_controller/basic_controller/pig
/// does this pig contribute to the pig cap?
var/contributes_to_pigcap = TRUE

/mob/living/basic/pig/Initialize(mapload)
. = ..()
if(contributes_to_pigcap)
var/cap = CONFIG_GET(number/pigcap)
if (LAZYLEN(SSmobs.cubepigs) > cap)
do_sparks(rand(3, 4), FALSE, src)
visible_message(span_warning("ERROR: Bluespace Disturbance Detected. More than [cap] entities will disturb bluespace harmonics. Entity eradicated"))
ai_controller = null
return INITIALIZE_HINT_QDEL
SSmobs.cubepigs |= src
AddElement(/datum/element/pet_bonus, "oinks!")
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/ai_flee_while_injured)
Expand Down
56 changes: 56 additions & 0 deletions code/modules/research/designs/biogenerator_designs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@
make_reagent = /datum/reagent/consumable/flour
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/rice
name = "Rice"
id = "rice"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 0.6)
make_reagent = /datum/reagent/consumable/rice
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/sugar
name = "Sugar"
id = "sugar"
Expand All @@ -66,6 +74,30 @@
make_reagent = /datum/reagent/consumable/sugar
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/cornmeal
name = "Cornmeal"
id = "cornmeal"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 1.2)
make_reagent = /datum/reagent/consumable/cornmeal
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/yogurt
name = "Yogurt"
id = "yogurt"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 1.2)
make_reagent = /datum/reagent/consumable/yoghurt
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/soysauce
name = "Soy Sauce"
id = "soysauce"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 1.2)
make_reagent = /datum/reagent/consumable/soysauce
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/monkey_cube
name = "Monkey Cube"
id = "mcube"
Expand All @@ -82,6 +114,30 @@
build_path = /obj/item/food/seaweedsheet
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/cow_cube
name = "Cow Cube"
id = "cowcube"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass =SMALL_MATERIAL_AMOUNT*2)
build_path = /obj/item/food/monkeycube/cow
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/pig_cube
name = "Pig Cube"
id = "pigcube"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass =SMALL_MATERIAL_AMOUNT*2)
build_path = /obj/item/food/monkeycube/pig
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD)

/datum/design/water
name = "water"
id = "Water"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 0.1)
build_path = /datum/reagent/water
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_CHEMICALS)

/datum/design/ez_nut //easy nut :)
name = "E-Z Nutrient"
id = "ez_nut"
Expand Down
Loading