Adds the Xanu System & Xanu Prime (#20917)

Adds a Xanu region for Xanu Prime to spawn in. Ice/barren asteroids as
possible spawns for mining operations.

Adds Xanu Prime as a visitable planet, with 2 regions: the arid
grasslands of Naya-Khyber; the tundra of Himavatia.

Only basic, super generic planet ruins included.

Random ground survey data available for scientific investigations.

The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| /html/images/scans/exoplanets/xanu_prime.png | Kyres1 (Sourced from
our own wiki) | CC BY-SA 4.0 |
| /sound/music/regional/xanu/xanu_rock_1.ogg | Swara Sutra
(https://swarasutra.bandcamp.com/album/indulgence) | CC BY-NC-SA 3.0 |
| /sound/music/regional/xanu/xanu_rock_2.ogg | Swara Sutra
(https://swarasutra.bandcamp.com/album/indulgence) | CC BY-NC-SA 3.0 |
This commit is contained in:
smellie
2025-07-10 17:27:38 +00:00
committed by GitHub
parent 7b9692be60
commit 7b865b9f2e
21 changed files with 328 additions and 12 deletions
@@ -51,11 +51,9 @@
/datum/space_sector/libertys_cradle
name = SECTOR_LIBERTYS_CRADLE
description = "The beating heart of the modern Coalition of Colonies, Libertys Cradle is home to many of the Coalitions most developed and influential worlds. In contrast to the Solarian stereotype of the frontier as a decivilized wasteland populated by roving bands of pirates and petty warlords, Libertys Cradle is a prosperous and safe region which has a higher standard of living than much of the former Middle and Outer Ring possessed prior to the Solarian Collapse of 2462. Post-Collapse the area has continued to prosper and, now that it dwells far behind the Coalition-controlled Weeping Stars, is more secure than it has ever been before."
skybox_icon = "the_clash"//placeholder
skybox_icon = "arusha"//placeholder
// cargo_price_coef = TBD
starlight_color = "#962d96"
starlight_power = 2
starlight_range = 4
starlight_range = 2
/datum/space_sector/burzsia
name = SECTOR_BURZSIA
@@ -133,3 +131,19 @@
"77.7 SoulFM" = 'texts/lore_radio/konyang/77.7_SoulFM.txt',
"78.1 RealFM" = 'texts/lore_radio/konyang/78.1_RealFM.txt'
)
/datum/space_sector/xanu
name = SECTOR_XANU
description = "Located in the eastern Orion Spur. The Xanu system is home to the Xanu Prime, colonised in 2185, which has grown into the current capital of the Coalition of Colonies, a decentralised government that won its independence from the Solarian Alliance after the Interstellar War."
skybox_icon = "arusha" //placeholder
possible_exoplanets = list(/obj/effect/overmap/visitable/sector/exoplanet/barren/asteroid, /obj/effect/overmap/visitable/sector/exoplanet/barren/asteroid/ice)
guaranteed_exoplanets = list(/obj/effect/overmap/visitable/sector/exoplanet/xanu)
ports_of_call = list("Pataliputra")
scheduled_port_visits = list("Saturday", "Sunday")
starlight_range = 2
lobby_tracks = list(
'sound/music/regional/xanu/xanu_rock_1.ogg',
'sound/music/regional/xanu/xanu_rock_2.ogg'
)
@@ -0,0 +1,109 @@
// Xanu Prime
/obj/effect/overmap/visitable/sector/exoplanet/xanu
name = "Xanu Prime"
desc = "The capital of the Coalition of Colonies. Xanu Prime is a geographically diverse, Earth-like world with varied biomes, ranging from equatorial rainforests and tropical deserts to boreal forests and polar continents. Sieged during the Interstellar War, the planet is scarred by battles and orbital bombardments of the past."
icon_state = "globe2"
scanimage = "xanu_prime.png"
color = "#7c945c"
planetary_area = /area/exoplanet/grass/xanu
initial_weather_state = /singleton/state/weather/calm
has_water_weather = TRUE
massvolume = "~1.05"
surfacegravity = "1.07"
charted = "Charted 2156, Sol Alliance Department of Colonization."
alignment = "Coalition of Colonies"
geology = "4 major continents exhibiting typical seismic activty. Abundance of cratering detected on surface; flooded to form lakes."
weather = "Global full-atmosphere hydrological weather system."
surfacewater = "67% surface salt water"
surface_color = null//pre colored
water_color = null//pre colored
rock_colors = null//pre colored
plant_colors = null//pre colored
generated_name = FALSE
flora_diversity = 0
has_trees = FALSE
ruin_planet_type = PLANET_LORE
place_near_main = list(1,0)
// Defaults, later set under pre_ruin_preparation
ruin_type_whitelist = list(/datum/map_template/ruin/exoplanet/delivery_site, /datum/map_template/ruin/exoplanet/crashed_coc_skipjack)
possible_themes = list(/datum/exoplanet_theme/grass/xanu_nayakhyber)
surface_color = "#7c945c"
var/landing_region = "grasslands and mountains of Naya Khyber"
/obj/effect/overmap/visitable/sector/exoplanet/xanu/generate_habitability()
return HABITABILITY_IDEAL
/obj/effect/overmap/visitable/sector/exoplanet/xanu/generate_map()
lightlevel = rand(1,10)
..()
/obj/effect/overmap/visitable/sector/exoplanet/xanu/update_icon()
return
/obj/effect/overmap/visitable/sector/exoplanet/xanu/generate_atmosphere()
..()
if(atmosphere)
atmosphere.remove_ratio(1)
atmosphere.adjust_gas(GAS_OXYGEN, MOLES_O2STANDARD, 1)
atmosphere.adjust_gas(GAS_NITROGEN, MOLES_N2STANDARD, 1)
if(landing_region)
switch(landing_region)
if("grasslands and mountains of Naya Khyber")
atmosphere.temperature = T0C + rand(25,30)
if("valleys and cliffs of Himavatia")
atmosphere.temperature = T0C - rand(1,5)
atmosphere.update_values()
/obj/effect/overmap/visitable/sector/exoplanet/xanu/generate_ground_survey_result()
ground_survey_result = "<br><b>Notable Features:</b>"
switch(landing_region)
if("grasslands and mountains of Naya Khyber")
ground_survey_result += "<br>Clay-loam soil with a dense, sticky texture; excellent retention of nutrients and water for agricultural purposes."
ground_survey_result += "<br>Trace materials and signatures consistent with historical orbital bombardment: lead, uranium. Carbon-dated: ~220 years old."
switch(rand(1,3))
if(1)
ground_survey_result += "<br>(!) Large mineral deposit of lithium in the form of spodumene. Inform local authority for reward."
if(2)
ground_survey_result += "<br>(!) Region displays above average retention of nutrients and water for agricultural purposes. Inform local authority for reward."
if(3)
ground_survey_result += "<br>(!) Region otherwise typical of Naya Khyber."
if("valleys and cliffs of Himavatia")
ground_survey_result += "<br>Permafrost with massive ice layer. Unable to sustain deep-rooted flora."
ground_survey_result += "<br>Ground form consistent with high, historical glacial activity."
switch(rand(1,2))
if(1)
ground_survey_result += "<br>(!) Large oil trap detected, containing significant crude oil deposit. Inform local authority for reward."
if(2)
ground_survey_result += "<br>(!) Region otherwise typical of Himavatia."
/obj/effect/overmap/visitable/sector/exoplanet/xanu/pre_ruin_preparation()
if(prob(66))
landing_region = "grasslands and mountains of Naya Khyber"
else
landing_region = "valleys and cliffs of Himavatia"
desc += " The landing sites are located in the [landing_region]."
switch(landing_region)
if("grasslands and mountains of Naya Khyber")
possible_themes = list(/datum/exoplanet_theme/grass/xanu_nayakhyber)
surface_color = "#7c945c"
ruin_type_whitelist = list(/datum/map_template/ruin/exoplanet/delivery_site, /datum/map_template/ruin/exoplanet/crashed_coc_skipjack)
desc += " The local government only permits Scientific Sampling operations in this area; other operations are not permitted."
if("valleys and cliffs of Himavatia")
possible_themes = list(/datum/exoplanet_theme/snow/tundra/xanu_himavatia)
surface_color = "#d0fac5"
initial_weather_state = /singleton/state/weather/calm/arctic_planet
ruin_type_whitelist = list(/datum/map_template/ruin/exoplanet/delivery_site, /datum/map_template/ruin/exoplanet/crashed_coc_skipjack)
desc += " The local government only permits Scientific Sampling operations in this area; other operations are not permitted."
@@ -455,3 +455,91 @@
/mob/living/simple_animal/miervesh = 1
)
)
//Xanu Biomes
//TODO: Xanu flora and fauna
/singleton/biome/grass/xanu
turf_type = /turf/simulated/floor/exoplanet/grass/stalk
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() // No wildlife assets for xanu
)
/singleton/biome/grass/forest/xanu
turf_type = /turf/simulated/floor/exoplanet/grass/stalk
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()
)
/singleton/biome/grass/riverside/xanu
turf_type = /turf/simulated/floor/exoplanet/grass/stalk
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/aquatic/fish/cod = 1,
/mob/living/simple_animal/aquatic/fish/gupper = 1
)
)
/singleton/biome/grass/chaparral/xanu
turf_type = /turf/simulated/floor/exoplanet/dirt_konyang
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()
)
@@ -254,3 +254,51 @@
/singleton/biome/water/ice/polar
turf_type = /turf/simulated/floor/exoplanet/ice/dark
// Xanu Biomes
// TODO: Xanan wildlife
/singleton/biome/snow/xanu
spawn_types = list(
PLANET_TURF = list(/turf/simulated/floor/exoplanet/permafrost = 1),
GRASSES = list(
/obj/structure/flora/grass/both = 2,
/obj/structure/flora/grass/green = 1,
/obj/structure/flora/grass/brown = 1
),
LARGE_FLORA = list(
/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/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/landmark/exoplanet_spawn/plant = 2
),
WILDLIFE = list() //No Xanu wildlife assets yet
)
/singleton/biome/snow/forest/xanu
spawn_types = list(
GRASSES = list(
/obj/structure/flora/grass/both = 1,
/obj/structure/flora/grass/green = 2,
/obj/structure/flora/grass/brown = 1
),
LARGE_FLORA = list(
/obj/structure/flora/rock/snow = 1,
/obj/structure/flora/tree/dead = 2,
/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/landmark/exoplanet_spawn/plant = 3
),
WILDLIFE = list() //no xanu wildlife assets yet
)
@@ -68,6 +68,10 @@
name = "Konyang Wilderness"
base_turf = /turf/simulated/floor/exoplanet/konyang
/area/exoplanet/grass/xanu
name = "Xanu Prime Wilderness"
base_turf = /turf/simulated/floor/exoplanet/grass/stalk
/area/exoplanet/lava
name = "\improper Planetary surface"
ambience = AMBIENCE_LAVA
@@ -158,3 +158,28 @@
BIOME_SEMIARID = 0.5,
BIOME_SUBHUMID = 1.0
)
/datum/exoplanet_theme/grass/xanu_nayakhyber
name = "Naya Khyber"
surface_turfs = list(
/turf/simulated/floor/exoplanet/grass/stalk,
/turf/simulated/mineral/planet
)
possible_biomes = list(
BIOME_COOL = list(
BIOME_ARID = /singleton/biome/grass/xanu,
BIOME_SEMIARID = /singleton/biome/grass/chaparral/xanu,
BIOME_SUBHUMID = /singleton/biome/grass/forest/xanu
),
BIOME_WARM = list(
BIOME_ARID = /singleton/biome/grass/chaparral/xanu,
BIOME_SEMIARID = /singleton/biome/grass/chaparral/xanu,
BIOME_SUBHUMID = /singleton/biome/grass/riverside/xanu
),
BIOME_EQUATOR = list(
BIOME_ARID = /singleton/biome/grass/forest/xanu,
BIOME_SEMIARID = /singleton/biome/grass/forest/xanu,
BIOME_SUBHUMID = /singleton/biome/grass/chaparral/xanu
)
)
@@ -89,3 +89,17 @@
BIOME_SEMIARID = /singleton/biome/snow/adhomai/polar/eclipse
)
)
/datum/exoplanet_theme/snow/tundra/xanu_himavatia
name = "Himavatian Tundra"
possible_biomes = list(
BIOME_POLAR = list(
BIOME_ARID = /singleton/biome/water/ice,
BIOME_SEMIARID = /singleton/biome/snow/xanu
),
BIOME_COOL = list(
BIOME_ARID = /singleton/biome/snow/xanu,
BIOME_SEMIARID = /singleton/biome/snow/forest/xanu
)
)