Exoplanet Random Plants (#17967)

* icons

* and now, we suffer

* i keep screaming but god wont answer

* adapt seed

* Update code/modules/hydroponics/trays/tray_update_icons.dm

Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>

* Update code/modules/hydroponics/trays/tray_update_icons.dm

Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>

* Update code/modules/hydroponics/trays/tray_update_icons.dm

Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>

* Update code/modules/hydroponics/trays/tray_update_icons.dm

Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>

* addresses requested changes

---------

Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
This commit is contained in:
RustingWithYou
2023-12-20 00:45:10 +13:00
committed by GitHub
parent 9a0d640f3f
commit 6f9140382f
26 changed files with 242 additions and 66 deletions
@@ -8,7 +8,8 @@
spawn_types = list(
SMALL_FLORA = list(
/obj/structure/flora/rock/desert = 3,
/obj/structure/flora/rock/desert/scrub = 2
/obj/structure/flora/rock/desert/scrub = 2,
/obj/effect/landmark/exoplanet_spawn/plant = 2
),
LARGE_FLORA = list(
/obj/effect/floor_decal/dune/random = 3,
@@ -35,6 +36,7 @@
SMALL_FLORA = list(
/obj/structure/flora/rock/desert = 1,
/obj/structure/flora/rock/desert/scrub = 3,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
LARGE_FLORA = list(
/obj/structure/flora/tree/desert/tiny = 1
@@ -61,6 +63,7 @@
SMALL_FLORA = list(
/obj/structure/flora/rock/desert = 1,
/obj/structure/flora/rock/desert/scrub = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
LARGE_FLORA = list(
/obj/structure/flora/tree/desert/tiny = 4,
@@ -25,7 +25,8 @@
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/yithian = 2,
@@ -47,7 +48,8 @@
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/reedbush = 1,
/obj/structure/flora/ausbushes/stalkybush = 1
/obj/structure/flora/ausbushes/stalkybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/yithian = 2,
@@ -80,7 +82,9 @@
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/yithian = 2,
@@ -98,7 +102,8 @@
exclusive_generators = list(LARGE_FLORA)
spawn_types = list(
LARGE_FLORA = list(
/obj/structure/flora/tree/grove = 1
/obj/structure/flora/tree/grove = 1,
/obj/effect/landmark/exoplanet_spawn/large_plant = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/ywflowers = 1,
@@ -107,7 +112,8 @@
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/yithian = 2,
@@ -9,13 +9,15 @@
spawn_types = list(
LARGE_FLORA = list(
/obj/structure/flora/tree/jungle/small/random = 5,
/obj/structure/flora/tree/jungle/random = 1
/obj/structure/flora/tree/jungle/random = 1,
/obj/effect/landmark/exoplanet_spawn/large_plant = 1
),
SMALL_FLORA = list(
/obj/structure/flora/bush/jungle/large/random = 1,
/obj/structure/flora/bush/jungle/random = 3,
/obj/structure/flora/bush/jungle/b/random = 3,
/obj/structure/flora/bush/jungle/c/random = 3
/obj/structure/flora/bush/jungle/c/random = 3,
/obj/effect/landmark/exoplanet_spawn/plant = 3
),
GRASSES = list(
/obj/structure/flora/grass/junglegrass/random = 4,
@@ -40,7 +42,8 @@
SMALL_FLORA = list(
/obj/structure/flora/bush/jungle/random = 3,
/obj/structure/flora/bush/jungle/b/random = 3,
/obj/structure/flora/bush/jungle/c/random = 3
/obj/structure/flora/bush/jungle/c/random = 3,
/obj/effect/landmark/exoplanet_spawn/plant = 3
),
GRASSES = list(
/obj/structure/flora/grass/junglegrass/random = 4,
@@ -15,7 +15,8 @@
/obj/effect/floor_decal/fungus/random = 1
),
SMALL_FLORA = list(
/obj/structure/flora/bush/mushroom = 1
/obj/structure/flora/bush/mushroom = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/yithian = 1,
+12 -6
View File
@@ -18,12 +18,14 @@
/obj/effect/floor_decal/snowdrift/large/random = 4,
/obj/structure/flora/rock/snow = 4,
/obj/structure/flora/tree/dead = 2,
/obj/structure/flora/tree/pine = 1
/obj/structure/flora/tree/pine = 1,
/obj/effect/landmark/exoplanet_spawn/large_plant = 1
),
SMALL_FLORA = list(
/obj/structure/flora/bush = 2,
/obj/effect/floor_decal/snowrocks = 1,
/obj/effect/floor_decal/snowdrift/random = 1
/obj/effect/floor_decal/snowdrift/random = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 2
),
WILDLIFE = list(
/mob/living/simple_animal/hostile/retaliate/samak = 1,
@@ -49,12 +51,14 @@
LARGE_FLORA = list(
/obj/structure/flora/rock/snow = 1,
/obj/structure/flora/tree/dead = 2,
/obj/structure/flora/tree/pine = 4
/obj/structure/flora/tree/pine = 4,
/obj/effect/landmark/exoplanet_spawn/large_plant = 3
),
SMALL_FLORA = list(
/obj/structure/flora/bush = 3,
/obj/effect/floor_decal/snowrocks = 1,
/obj/effect/floor_decal/snowdrift/random = 1
/obj/effect/floor_decal/snowdrift/random = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 3
),
WILDLIFE = list(
/mob/living/simple_animal/hostile/retaliate/samak = 1,
@@ -78,7 +82,8 @@
),
SMALL_FLORA = list(
/obj/structure/flora/bush/adhomai = 3,
/obj/effect/floor_decal/snowdrift/random = 1
/obj/effect/floor_decal/snowdrift/random = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 2
),
WILDLIFE = list(
/mob/living/simple_animal/ice_tunneler = 1,
@@ -109,7 +114,8 @@
),
SMALL_FLORA = list(
/obj/structure/flora/bush/adhomai = 3,
/obj/effect/floor_decal/snowdrift/random = 1
/obj/effect/floor_decal/snowdrift/random = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 2
),
WILDLIFE = list(
/mob/living/simple_animal/ice_tunneler = 1,
@@ -35,6 +35,11 @@
var/list/actors = list() //things that appear in engravings on xenoarch finds.
var/list/species = list() //list of names to use for simple animals
var/flora_diversity = 0
var/has_trees = FALSE
var/list/small_flora_types = list()
var/list/big_flora_types = list()
var/repopulating = 0
var/repopulate_types = list() // animals which have died that may come back
@@ -114,6 +119,7 @@
/obj/effect/overmap/visitable/sector/exoplanet/proc/build_level()
generate_habitability()
generate_atmosphere()
generate_flora()
generate_map()
generate_features()
generate_landing(2)
@@ -433,3 +439,15 @@
colors += gas_data.tile_overlay_color[g]
if(colors.len)
return MixColors(colors)
/obj/effect/landmark/exoplanet_spawn/Initialize()
..()
return INITIALIZE_HINT_LATELOAD
/obj/effect/landmark/exoplanet_spawn/LateInitialize(mapload)
var/obj/effect/overmap/visitable/sector/exoplanet/E = map_sectors["[z]"]
if (istype(E))
do_spawn(E)
/obj/effect/landmark/exoplanet_spawn/proc/do_spawn(obj/effect/overmap/visitable/sector/exoplanet/planet)
return
@@ -0,0 +1,51 @@
/obj/effect/overmap/visitable/sector/exoplanet/proc/generate_flora()
if(flora_diversity == 0)
return
for(var/i = 1 to flora_diversity)
var/datum/seed/S = new()
if(atmosphere?.gas)
S.randomize(atmosphere.gas.Copy())
else
S.randomize()
var/plant_icon = "alien[rand(1,7)]"
S.set_trait(TRAIT_PRODUCT_ICON,plant_icon)
S.set_trait(TRAIT_PLANT_ICON, plant_icon)
var/color = pick(plant_colors)
if(color == "RANDOM")
color = get_random_colour(0,75,190)
S.set_trait(TRAIT_PLANT_COLOUR,color)
adapt_seed(S)
small_flora_types += S
if(has_trees)
var/tree_diversity = max(1, flora_diversity/2)
for(var/i = 1 to tree_diversity)
var/datum/seed/S = new()
S.randomize()
S.set_trait(TRAIT_PRODUCT_ICON,"alien[rand(1,5)]")
S.set_trait(TRAIT_PLANT_ICON,"tree")
S.set_trait(TRAIT_SPREAD,0)
S.set_trait(TRAIT_HARVEST_REPEAT,1)
S.set_trait(TRAIT_LARGE,1)
var/color = pick(plant_colors)
if (color == "RANDOM")
color = get_random_colour(0,75,190)
S.set_trait(TRAIT_LEAVES_COLOUR,color)
S.chems[/singleton/reagent/woodpulp] = list(1)
adapt_seed(S)
big_flora_types += S
/obj/effect/landmark/exoplanet_spawn/plant
name = "spawn exoplanet plant"
/obj/effect/landmark/exoplanet_spawn/plant/do_spawn(var/obj/effect/overmap/visitable/sector/exoplanet/planet)
if(LAZYLEN(planet.small_flora_types))
new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(get_turf(src), pick(planet.small_flora_types), TRUE)
/obj/effect/landmark/exoplanet_spawn/large_plant
name = "spawn exoplanet large plant"
/obj/effect/landmark/exoplanet_spawn/large_plant/do_spawn(var/obj/effect/overmap/visitable/sector/exoplanet/planet)
if(LAZYLEN(planet.big_flora_types))
new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(get_turf(src), pick(planet.big_flora_types), TRUE)