mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-21 21:10:30 +01:00
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:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user