Uueoa-Esa, Part 1: Sector & Planets (#18941)

Adds the Uueoa-Esa system, its skybox and stargazer, and its lore
planets, currently without ruins for ease of review.
This commit is contained in:
RustingWithYou
2024-04-19 02:03:05 +12:00
committed by GitHub
parent 61668a3d58
commit a066384247
43 changed files with 1232 additions and 17 deletions
@@ -23,3 +23,12 @@
/singleton/biome/barren/asteroid/ice
turf_type = /turf/simulated/floor/exoplanet/ice
/singleton/biome/barren/pid
turf_type = /turf/simulated/floor/exoplanet/barren
generators = list(SMALL_FLORA = list(POISSON_SAMPLE, 7))
spawn_types = list(
SMALL_FLORA = list(
/obj/effect/landmark/exoplanet_spawn/plant = 2
)
)
@@ -75,3 +75,29 @@
/mob/living/simple_animal/tindalos = 1
)
)
/singleton/biome/desert/wasteland //TODO: Add cool wrecked shit for the wasteland
generators = list(
GRASSES = list(BATCHED_NOISE, -0.1, 360, 4),
SMALL_FLORA = list(POISSON_SAMPLE, 7),
LARGE_FLORA = list(POISSON_SAMPLE, 7),
WILDLIFE = list(POISSON_SAMPLE, 45)
)
spawn_types = list(
GRASSES = list(
/obj/structure/flora/grass/desert/bush = 1,
/obj/structure/flora/grass/desert = 3
),
SMALL_FLORA = list(
/obj/structure/flora/rock/desert = 1,
/obj/structure/flora/rock/desert/scrub = 3,
),
LARGE_FLORA = list(
/obj/structure/flora/tree/desert/tiny = 1
),
WILDLIFE = list(
/mob/living/simple_animal/hostile/shrieker = 1,
/mob/living/carbon/human/stok/moghes = 1,
/mob/living/simple_animal/threshbeast = 1
)
)
@@ -193,3 +193,265 @@
/mob/living/simple_animal/cosmozoan = 1,
)
)
//Moghes Biomes
//TODO - add Moghes flora and fauna here when they're implemented, as well as generic structure/flora for the planet.
/singleton/biome/grass/moghes
turf_type = /turf/simulated/floor/exoplanet/grass/moghes
generators = list(
SMALL_FLORA = list(POISSON_SAMPLE, 4),
GRASSES = list(BATCHED_NOISE, -0.1, 360, 4),
WILDLIFE = list(POISSON_SAMPLE, 10)
)
spawn_types = list(
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/effect/landmark/exoplanet_spawn/plant = 3
),
GRASSES = list(
/obj/structure/flora/grass/junglegrass/random = 4,
/obj/structure/flora/grass/junglegrass/dense/random = 2,
/obj/structure/flora/grass/junglegrass/rocky/random = 1
),
WILDLIFE = list(
/mob/living/carbon/human/stok/moghes = 1,
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/hostile/retaliate/hegeranzi = 1,
/mob/living/simple_animal/hostile/shrieker = 1,
/mob/living/simple_animal/otzek = 1
//other mobs when added
)
)
/singleton/biome/grass/forest/moghes
turf_type = /turf/simulated/floor/exoplanet/grass/moghes
generators = list(
LARGE_FLORA = list(POISSON_SAMPLE, 5),
SMALL_FLORA = list(POISSON_SAMPLE, 1),
GRASSES = list(BATCHED_NOISE, 0.1, 360, 4),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(LARGE_FLORA, SMALL_FLORA)
spawn_types = list(
LARGE_FLORA = list(
/obj/structure/flora/tree/jungle/small/random = 5,
/obj/structure/flora/tree/jungle/random = 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/effect/landmark/exoplanet_spawn/plant = 3
),
GRASSES = list(
/obj/structure/flora/grass/junglegrass/random = 4,
/obj/structure/flora/grass/junglegrass/dense/random = 2,
/obj/structure/flora/grass/junglegrass/rocky/random = 1
),
WILDLIFE = list(
/mob/living/carbon/human/stok/moghes = 1,
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/hostile/retaliate/hegeranzi = 1,
/mob/living/simple_animal/hostile/shrieker = 1,
/mob/living/simple_animal/otzek = 1
//other mobs when added
)
)
/singleton/biome/grass/riverside/moghes
turf_type = /turf/simulated/floor/exoplanet/grass/moghes
generators = list(
PLANET_TURF = list(HEIGHT_MOD, 0.95),
SMALL_FLORA = list(POISSON_SAMPLE, 1),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(PLANET_TURF)
spawn_types = list(
PLANET_TURF = list(
/turf/simulated/floor/exoplanet/water/shallow/moghes = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/reedbush = 1,
/obj/structure/flora/ausbushes/stalkybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/carbon/human/stok/moghes = 1,
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/hostile/retaliate/hegeranzi = 1,
/mob/living/simple_animal/hostile/shrieker = 1,
/mob/living/simple_animal/aquatic/fish/moghes = 1,
/mob/living/simple_animal/otzek = 1
//other mobs when added
)
)
/singleton/biome/grass/chaparral/moghes
generators = list(
GRASS_1 = list(BATCHED_NOISE, -0.4, 360, 4),
GRASS_2 = list(BATCHED_NOISE, -0.4, 360, 4),
GRASS_3 = list(BATCHED_NOISE, -0.4, 360, 4),
SMALL_FLORA = list(POISSON_SAMPLE, 3),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(GRASS_1, GRASS_2, GRASS_3)
spawn_types = list(
GRASS_1 = list(
/obj/structure/flora/ausbushes/ywflowers = 1
),
GRASS_2 = list(
/obj/structure/flora/ausbushes/brflowers = 1
),
GRASS_3 = list(
/obj/structure/flora/ausbushes/ppflowers = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/carbon/human/stok/moghes = 1,
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/hostile/retaliate/hegeranzi = 1,
/mob/living/simple_animal/hostile/shrieker = 1,
/mob/living/simple_animal/otzek = 1
//other mobs when added
)
)
//Ouerea Biomes
//TODO: Ouerea flora and fauna
/singleton/biome/grass/ouerea
turf_type = /turf/simulated/floor/exoplanet/grass
generators = list(
GRASS_1 = list(BATCHED_NOISE, -0.3, 360, 4),
GRASS_2 = list(BATCHED_NOISE, -0.3, 360, 4),
GRASS_3 = list(BATCHED_NOISE, -0.3, 360, 4),
SMALL_FLORA = list(POISSON_SAMPLE, 6),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(GRASS_1, GRASS_2, GRASS_3)
spawn_types = list(
GRASS_1 = list(
/obj/structure/flora/ausbushes/ywflowers = 1
),
GRASS_2 = list(
/obj/structure/flora/ausbushes/brflowers = 1
),
GRASS_3 = list(
/obj/structure/flora/ausbushes/ppflowers = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/ywflowers = 1,
/obj/structure/flora/ausbushes/brflowers = 1,
/obj/structure/flora/ausbushes/ppflowers = 1,
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/otzek = 1,
/mob/living/simple_animal/miervesh = 1
)
)
/singleton/biome/grass/forest/ouerea
turf_type = /turf/simulated/floor/exoplanet/grass
generators = list(
LARGE_FLORA = list(POISSON_SAMPLE, 5),
SMALL_FLORA = list(POISSON_SAMPLE, 1),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(LARGE_FLORA)
spawn_types = list(
LARGE_FLORA = list(
/obj/structure/flora/tree/grove = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/ywflowers = 1,
/obj/structure/flora/ausbushes/brflowers = 1,
/obj/structure/flora/ausbushes/ppflowers = 1,
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/otzek = 1,
/mob/living/simple_animal/miervesh = 1
)
)
/singleton/biome/grass/riverside/ouerea
turf_type = /turf/simulated/floor/exoplanet/grass
generators = list(
PLANET_TURF = list(HEIGHT_MOD, 0.95),
SMALL_FLORA = list(POISSON_SAMPLE, 1),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(PLANET_TURF)
spawn_types = list(
PLANET_TURF = list(
/turf/simulated/floor/exoplanet/water/shallow = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/reedbush = 1,
/obj/structure/flora/ausbushes/stalkybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/aquatic/fish/moghes = 1,
/mob/living/simple_animal/otzek = 1,
/mob/living/simple_animal/miervesh = 1
)
)
/singleton/biome/grass/chaparral/ouerea
turf_type = /turf/simulated/floor/exoplanet/grass
generators = list(
GRASS_1 = list(BATCHED_NOISE, -0.4, 360, 4),
GRASS_2 = list(BATCHED_NOISE, -0.4, 360, 4),
GRASS_3 = list(BATCHED_NOISE, -0.4, 360, 4),
SMALL_FLORA = list(POISSON_SAMPLE, 3),
WILDLIFE = list(POISSON_SAMPLE, 15)
)
exclusive_generators = list(GRASS_1, GRASS_2, GRASS_3)
spawn_types = list(
GRASS_1 = list(
/obj/structure/flora/ausbushes/ywflowers = 1
),
GRASS_2 = list(
/obj/structure/flora/ausbushes/brflowers = 1
),
GRASS_3 = list(
/obj/structure/flora/ausbushes/ppflowers = 1
),
SMALL_FLORA = list(
/obj/structure/flora/ausbushes/grassybush = 1,
/obj/structure/flora/ausbushes/palebush = 1,
/obj/structure/flora/ausbushes = 1,
/obj/structure/flora/ausbushes/fernybush = 1,
/obj/effect/landmark/exoplanet_spawn/plant = 1
),
WILDLIFE = list(
/mob/living/simple_animal/threshbeast = 1,
/mob/living/simple_animal/otzek = 1,
/mob/living/simple_animal/miervesh = 1
)
)
@@ -29,11 +29,25 @@
/area/exoplanet/barren/burzsia
name = "Burzsia Surface"
/area/exoplanet/barren/pid
name = "Pid Surface"
area_blurb = "The surface of this moon is lifeless and rocky - almost. A faint yellow light suffuses the ground, the dim glow of spores in bloom."
/area/exoplanet/crystal
name = "\improper Planetary surface"
ambience = AMBIENCE_SPACE
base_turf = /turf/simulated/floor/exoplanet/crystal
/area/exoplanet/moghes //ambience and area_blurb are set on init
name = "Moghes Wilderness"
base_turf = /turf/simulated/floor/exoplanet/grass/moghes/dirt
/area/exoplanet/ouerea
name = "Ouerea Wilderness"
ambience = AMBIENCE_JUNGLE
base_turf = /turf/simulated/floor/exoplanet/barren
area_blurb = "Strange grasses beneath your feet, and a warm breeze in the air. The shapes of strange flying reptiles dart between the trees, their bright and clear calls drifting on the wind."
/area/exoplanet/desert
ambience = list('sound/effects/wind/desert0.ogg','sound/effects/wind/desert1.ogg','sound/effects/wind/desert2.ogg','sound/effects/wind/desert3.ogg','sound/effects/wind/desert4.ogg','sound/effects/wind/desert5.ogg')
base_turf = /turf/simulated/floor/exoplanet/desert
@@ -45,3 +45,16 @@
/turf/simulated/floor/exoplanet/grass/marsh/Initialize()
. = ..()
icon_state = "marsh[rand(1,8)]"
/turf/simulated/floor/exoplanet/grass/moghes
icon = 'icons/turf/flooring/exoplanet/moghes.dmi'
icon_state = "grass"
color = null
/turf/simulated/floor/exoplanet/grass/moghes/dirt
icon_state = "dirt"
color = null
does_footprint = TRUE
/turf/simulated/floor/exoplanet/grass/moghes/dirt/beach
icon_state = "beach"
@@ -171,6 +171,10 @@
W.germ_level = INFECTION_LEVEL_ONE
W.germ_level += rand(10, 50)
/turf/simulated/floor/exoplanet/water/shallow/moghes
icon = 'icons/turf/flooring/exoplanet/moghes.dmi'
icon_state = "water"
/turf/simulated/floor/exoplanet/water/proc/wash(atom/movable/O)
var/obj/effect/effect/water/W = new(O)
@@ -205,6 +205,7 @@
generate_flora()
generate_map()
generate_features()
theme.after_map_generation(src)
generate_landing(2)
update_biome()
generate_planet_image()
@@ -356,3 +356,5 @@
M.UpdateMineral() // It's already a mineral turf, so we can avoid changeturf here
/datum/exoplanet_theme/proc/get_planet_image_extra()
/datum/exoplanet_theme/proc/after_map_generation(obj/effect/overmap/visitable/sector/exoplanet/E) //after the map is generated and ruins exist
@@ -94,3 +94,55 @@
ORE_PHORON = list(0, 2)
)
)
/datum/exoplanet_theme/barren/pid
name = "Pid"
possible_biomes = list(
BIOME_POLAR = list(
BIOME_ARID = /singleton/biome/barren/pid
)
)
/datum/exoplanet_theme/barren/asteroid/chanterel
name = "Chanterel"
surface_turfs = list(
/turf/simulated/mineral/planet,
/turf/simulated/floor/exoplanet/barren
)
possible_biomes = list(
BIOME_POLAR = list(
BIOME_ARID = /singleton/biome/barren
)
)
wall_ore_levels = list(
ORE_PLATINUM = 0.6,
ORE_DIAMOND = 0.6,
ORE_URANIUM = 0.7,
ORE_GOLD = 0.68,
ORE_SILVER = 0.7,
ORE_COAL = 0.9,
ORE_IRON = 0.92,
)
ground_ore_levels = list(
SURFACE_ORES = list(
ORE_IRON = list(2, 4),
ORE_GOLD = list(0, 2),
ORE_SILVER = list(0, 2),
ORE_URANIUM = list(0, 2)
),
RARE_ORES = list(
ORE_GOLD = list(1, 3),
ORE_SILVER = list(1, 3),
ORE_URANIUM = list(1, 3),
ORE_PLATINUM = list(1, 3),
),
DEEP_ORES = list(
ORE_URANIUM = list(0, 2),
ORE_DIAMOND = list(0, 2),
ORE_PLATINUM = list(2, 4),
ORE_HYDROGEN = list(1, 3),
)
)
@@ -53,3 +53,34 @@
BIOME_SUBHUMID = 0.8,
BIOME_HUMID = 1.0
)
/datum/exoplanet_theme/desert/wasteland //nuked Moghes theme
name = "Wasteland"
possible_biomes = list(
BIOME_EQUATOR = list(
BIOME_ARID = /singleton/biome/desert/wasteland //ecological diversity? in this economy?
)
)
mountain_threshold = 0.6
heat_levels = list(
BIOME_EQUATOR = 1.0
)
humidity_levels = list(
BIOME_ARID = 1.0
)
/datum/exoplanet_theme/desert/wasteland/after_map_generation(obj/effect/overmap/visitable/sector/exoplanet/E) //irradiate to shit
var/area/A = E.planetary_area
LAZYDISTINCTADD(A.ambience, AMBIENCE_DESERT)
A.area_blurb = "The sweltering heat presses down on you from every direction. Clouds of sand swirl around your feet. In the distance, the jagged shapes of broken skyscrapers loom on the horizon. This is the Wasteland of Moghes, a bleeding scar of a war that had no victors."
var/radiation_power = rand(10, 37.5)
var/num_craters = round(min(0.04, rand()) * 0.02 * E.maxx, E.maxy)
for(var/i = 1 to num_craters)
var/turf/simulated/T = pick_area_turf(E.planetary_area, list(/proc/not_turf_contains_dense_objects))
if(!T)
return
var/datum/radiation_source/S = new(T, radiation_power, FALSE)
S.range = 4
SSradiation.add_source(S)
@@ -84,3 +84,77 @@
BIOME_SUBHUMID = /singleton/biome/grass/riverside/biesel
)
)
/datum/exoplanet_theme/grass/moghes //un-nuked Moghes theme
name = "Untouched Lands"
mountain_threshold = 0.9
possible_biomes = list(
BIOME_COOL = list(
BIOME_ARID = /singleton/biome/grass/chaparral/moghes,
BIOME_SEMIARID = /singleton/biome/grass/forest/moghes,
BIOME_SUBHUMID = /singleton/biome/grass/forest/moghes
),
BIOME_WARM = list(
BIOME_ARID = /singleton/biome/grass/chaparral/moghes,
BIOME_SEMIARID = /singleton/biome/grass/moghes,
BIOME_SUBHUMID = /singleton/biome/grass/riverside/moghes
),
BIOME_EQUATOR = list(
BIOME_ARID = /singleton/biome/grass/moghes,
BIOME_SEMIARID = /singleton/biome/grass/riverside/moghes,
BIOME_SUBHUMID = /singleton/biome/grass/riverside/moghes
)
)
heat_levels = list(
BIOME_COOL = 0.4,
BIOME_WARM = 0.8,
BIOME_EQUATOR = 1.0
)
humidity_levels = list(
BIOME_ARID = 0.2,
BIOME_SEMIARID = 0.5,
BIOME_SUBHUMID = 1.0
)
/datum/exoplanet_theme/grass/moghes/after_map_generation(obj/effect/overmap/visitable/sector/exoplanet/E)
var/area/A = E.planetary_area
LAZYDISTINCTADD(A.ambience, AMBIENCE_JUNGLE)
A.area_blurb = "The air is hot and humid, clinging to your skin. An occasional cool breeze offers some small respite. Beneath your feet lies lush grass, and the sounds of strange animals fill the air."
/datum/exoplanet_theme/grass/ouerea //Ouerea theme.
name = "Ouerea"
surface_turfs = list(
/turf/simulated/mineral
)
mountain_threshold = 0.9
possible_biomes = list(
BIOME_COOL = list(
BIOME_ARID = /singleton/biome/grass/chaparral/ouerea,
BIOME_SEMIARID = /singleton/biome/grass/forest/ouerea,
BIOME_SUBHUMID = /singleton/biome/grass/forest/ouerea
),
BIOME_WARM = list(
BIOME_ARID = /singleton/biome/grass/chaparral/ouerea,
BIOME_SEMIARID = /singleton/biome/grass/ouerea,
BIOME_SUBHUMID = /singleton/biome/grass/riverside/ouerea
),
BIOME_EQUATOR = list(
BIOME_ARID = /singleton/biome/grass/ouerea,
BIOME_SEMIARID = /singleton/biome/grass/riverside/ouerea,
BIOME_SUBHUMID = /singleton/biome/grass/riverside/ouerea
)
)
heat_levels = list(
BIOME_COOL = 0.4,
BIOME_WARM = 0.8,
BIOME_EQUATOR = 1.0
)
humidity_levels = list(
BIOME_ARID = 0.2,
BIOME_SEMIARID = 0.5,
BIOME_SUBHUMID = 1.0
)