Files
CHOMPStation2/modular_chomp/maps/soluna_nexus/soluna_nexus_defines.dm
CHOMPStation2StaffMirrorBot d82d0807a5 [MIRROR] Polaris Hook Removal Part 1 (#11887)
Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
Co-authored-by: C.L. <killer65311@gmail.com>
2025-10-30 21:40:35 +01:00

291 lines
12 KiB
Plaintext

// To be filled out when more progress on the new map occurs.
/datum/map/soluna_nexus
name = "Soluna Nexus"
full_name = "Soluna Nexus"
path = "soluna_nexus"
lobby_screens = list('modular_chomp/html/lobby/chompstation.webp')
id_hud_icons = 'icons/mob/hud_jobs_vr.dmi'
holomap_smoosh = list(list(
Z_LEVEL_SN_STATION_ONE,
Z_LEVEL_SN_STATION_TWO,
Z_LEVEL_SN_STATION_THREE,
))
zlevel_datum_type = /datum/map_z_level/soluna_nexus
station_name = "NLS Soluna Nexus"
station_short = "Soluna Nexus"
facility_type = "station"
dock_name = "NCS Northern Star" // Now we're the centcom!
boss_name = "Central Command"
boss_short = "Centcom"
company_name = "NanoTrasen"
company_short = "NT"
starsys_name = "Vir"
use_overmap = TRUE
overmap_size = 50
overmap_event_areas = 44
shuttle_docked_message = "The scheduled shuttle to the %dock_name% has docked with the station at docks one and two. It will depart in approximately %ETD%."
shuttle_leaving_dock = "The Crew Transfer Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
shuttle_called_message = "A crew transfer to %dock_name% has been scheduled. The shuttle has been called. Those leaving should proceed to docks one and two in approximately %ETA%."
shuttle_recall_message = "The scheduled crew transfer has been cancelled."
emergency_shuttle_docked_message = "The Emergency Shuttle has docked with the station at docks one and two. You have approximately %ETD% to board the Emergency Shuttle."
emergency_shuttle_leaving_dock = "The Emergency Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately %ETA%."
emergency_shuttle_recall_message = "The emergency shuttle has been recalled."
// Networks that will show up as options in the camera monitor program
station_networks = list(
NETWORK_CARGO,
NETWORK_CIRCUITS,
NETWORK_CIVILIAN,
NETWORK_COMMAND,
NETWORK_ENGINE,
NETWORK_ENGINEERING,
NETWORK_ENGINEERING_OUTPOST,
NETWORK_FIRST_DECK,
NETWORK_SECOND_DECK,
NETWORK_THIRD_DECK,
NETWORK_MAIN_OUTPOST,
NETWORK_MEDICAL,
NETWORK_MINE,
NETWORK_RESEARCH,
NETWORK_RESEARCH_OUTPOST,
NETWORK_CARRIER,
NETWORK_ROBOTS,
NETWORK_PRISON,
NETWORK_SECURITY,
NETWORK_TELECOM,
) //CHOMPedit: add "NETWORK_CARRIER" for exploration outpost cams
// Camera networks that exist, but don't show on regular camera monitors.
secondary_networks = list(
NETWORK_ERT,
NETWORK_MERCENARY,
NETWORK_THUNDER,
NETWORK_COMMUNICATORS,
NETWORK_ALARM_ATMOS,
NETWORK_ALARM_POWER,
NETWORK_ALARM_FIRE,
NETWORK_SUPPLY,
)
usable_email_tlds = list("freemail.nt")
allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage", "Station gateway", "Sif plains", "Fuel Depot")
default_skybox = /datum/skybox_settings/soluna_nexus
unit_test_exempt_areas = list(/area/ninja_dojo, /area/shuttle/ninja)
unit_test_exempt_from_atmos = list(/area/engineering/Telecomms_Network, /area/security/Transit_Turrets)
planet_datums_to_make = list(/datum/planet/sif, /datum/planet/thor, /datum/planet/tyr) //This must be added to load maps at round start otherwise they will have weather or sun.
unit_test_z_levels = list(
Z_LEVEL_SN_STATION_ONE,
Z_LEVEL_SN_STATION_TWO,
Z_LEVEL_SN_STATION_THREE,
)
lateload_z_levels = list(
list(Z_NAME_SC_SURFACE),
list(Z_NAME_SC_SURFACE_MINE),
list(Z_NAME_SC_SURFACE_WILD),
list(Z_NAME_SN_MISC),
list(Z_NAME_SN_CENTCOM),
list(Z_NAME_SN_TRANSIT),
list(Z_NAME_VR_WORLD_CH),
list(Z_NAME_FUELDEPOT_CH),
list(Z_NAME_PLANET_THOR_CH),
list(Z_NAME_PLANET_TYR_CH),
)
lateload_gateway = list(
list(Z_NAME_GATEWAY_SNOW_FIELD_CH),
list(Z_NAME_GATEWAY_MADNESS_LAB_CH),
list(Z_NAME_GATEWAY_ABANDONED_CITY_CH),
list(Z_NAME_GATEWAY_SKYSCRAPER_CH),
)
/datum/map/soluna_nexus/perform_map_generation()
// First, place a bunch of submaps. This comes before tunnel/forest generation as to not interfere with the submap.(This controls POI limit generation, increase or lower its values to have more or less POI's)
// Cave submaps are first.
var/surface_mine_z = GLOB.map_templates_loaded[Z_NAME_ALIAS_SURFACE_MINES]
seed_submaps(list(surface_mine_z), 140, /area/surface/cave/unexplored/normal, /datum/map_template/surface/mountain_ch/normal)
seed_submaps(list(surface_mine_z), 140, /area/surface/cave/unexplored/deep, /datum/map_template/surface/mountain_ch/deep)
// Plains to make them less plain.
var/surface_z = GLOB.map_templates_loaded[Z_NAME_ALIAS_SURFACE]
seed_submaps(list(surface_z), 220, /area/surface/outside/plains/normal, /datum/map_template/surface/plains_ch) // Center area is WIP until map editing settles down.
// Wilderness is next.
var/surface_wild_z = GLOB.map_templates_loaded[Z_NAME_ALIAS_SURFACE_WILDS]
seed_submaps(list(surface_wild_z), 240, /area/surface/outside/wilderness/normal, /datum/map_template/surface/wilderness_ch/normal)
seed_submaps(list(surface_wild_z), 240, /area/surface/outside/wilderness/deep, /datum/map_template/surface/wilderness_ch/deep)
// If Space submaps are made, add a line to make them here as well.
// Now for the tunnels. (This decides the load order of ore generation and cave generation. Check Random_Map to see % )
new /datum/random_map/automata/cave_system/(null, 1, 1, surface_mine_z, world.maxx, world.maxy) // Create the mining Z-level.
new /datum/random_map/noise/ore(null, 1, 1, surface_mine_z, 64, 64) // Create the mining ore distribution map.
// Todo: Forest generation.
return 1
/datum/map/soluna_nexus/get_map_info()
. = list()
. += "The NLS [full_name] is a small waystation in orbit of the frozen garden world of Sif, jewel of the Vir system.<br>"
. += "Though Vir is typically peaceful, the system has seen its fair share of conflict in the face of technological extremists, rogue drone intelligence, and worse.<br>"
. += "As an employee of NanoTrasen, operators of the Southern Cross and one of the galaxy's largest research corporations, you're probably just here to do a job."
return jointext(., "<br>")
// Skybox Settings
/datum/skybox_settings/soluna_nexus
icon_state = "dyable"
random_color = TRUE
// Lateload handling
/datum/map_template/soluna_nexus_lateload
allow_duplicates = FALSE
var/associated_map_datum
/datum/map_template/soluna_nexus_lateload/on_map_loaded(z)
if(!associated_map_datum || !ispath(associated_map_datum))
log_game("Extra z-level [src] has no associated map datum")
return
new associated_map_datum(using_map, z)
return ..()
/datum/map_z_level/soluna_nexus_lateload/New(datum/map/map, mapZ)
z = mapZ
return ..(map)
// For making the 4-in-1 holomap, we calculate some offsets
#define SOUTHERN_CROSS_MAP_SIZE 200 // Width and height of compiled in Southern Cross z levels.
#define SOUTHERN_CROSS_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns
#define SOUTHERN_CROSS_HOLOMAP_MARGIN_X ((HOLOMAP_ICON_SIZE - (2*SOUTHERN_CROSS_MAP_SIZE) - SOUTHERN_CROSS_HOLOMAP_CENTER_GUTTER) / 2) // 100
#define SOUTHERN_CROSS_HOLOMAP_MARGIN_Y ((HOLOMAP_ICON_SIZE - (2*SOUTHERN_CROSS_MAP_SIZE)) / 2) // 60
// Station Z-Levels
/datum/map_z_level/soluna_nexus/station
flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_VORESPAWN
holomap_legend_x = 220
holomap_legend_y = 160
/datum/map_z_level/soluna_nexus/station/station_one
z = Z_LEVEL_SN_STATION_ONE
name = "Deck 1"
base_turf = /turf/space
transit_chance = 15
holomap_offset_x = SOUTHERN_CROSS_HOLOMAP_MARGIN_X - SOUTHERN_CROSS_HOLOMAP_CENTER_GUTTER / 2
holomap_offset_y = SOUTHERN_CROSS_HOLOMAP_MARGIN_Y //+ SOUTHERN_CROSS_MAP_SIZE*0
/datum/map_z_level/soluna_nexus/station/station_two
z = Z_LEVEL_SN_STATION_TWO
name = "Deck 2"
base_turf = /turf/simulated/open
transit_chance = 15
holomap_offset_x = SOUTHERN_CROSS_HOLOMAP_MARGIN_X - SOUTHERN_CROSS_HOLOMAP_CENTER_GUTTER / 2
holomap_offset_y = SOUTHERN_CROSS_HOLOMAP_MARGIN_Y + SOUTHERN_CROSS_MAP_SIZE
/datum/map_z_level/soluna_nexus/station/station_three
z = Z_LEVEL_SN_STATION_THREE
name = "Deck 3"
base_turf = /turf/simulated/open
transit_chance = 15
holomap_offset_x = SOUTHERN_CROSS_HOLOMAP_MARGIN_X + SOUTHERN_CROSS_MAP_SIZE + SOUTHERN_CROSS_HOLOMAP_CENTER_GUTTER / 2
holomap_offset_y = SOUTHERN_CROSS_HOLOMAP_MARGIN_Y + SOUTHERN_CROSS_MAP_SIZE
/* //CHOMPedit: Disabling empty space map level as overmap generation now generates this as needed.
/datum/map_z_level/southern_cross/empty_space
z = Z_LEVEL_EMPTY_SPACE
name = "Empty"
flags = MAP_LEVEL_PLAYER
transit_chance = 60
*/
// Surface Z-Level (overlaps with /datum/map_z_level/southern_cross_lateload/surface so could instead be a common map)
/datum/map_z_level/soluna_nexus_lateload/surface
name = Z_NAME_SC_SURFACE
flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES|MAP_LEVEL_VORESPAWN
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_template/soluna_nexus_lateload/surface
name = Z_NAME_SC_SURFACE
name_alias = Z_NAME_ALIAS_SURFACE
mappath = "modular_chomp/maps/southern_cross/southern_cross-5.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/surface
// Surface Mine Z-Level (overlaps with /datum/map_z_level/southern_cross_lateload/surface_mine so could instead be a common map)
/datum/map_z_level/soluna_nexus_lateload/surface_mine
name = Z_NAME_SC_SURFACE_MINE
flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_template/soluna_nexus_lateload/surface_mine
name = Z_NAME_SC_SURFACE_MINE
name_alias = Z_NAME_ALIAS_SURFACE_MINES
mappath = "modular_chomp/maps/southern_cross/southern_cross-6.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/surface_mine
// Surface Wild Z-Level (overlaps with /datum/map_z_level/southern_cross_lateload/surface_wild so could instead be a common map)
/datum/map_z_level/soluna_nexus_lateload/surface_wild
name = Z_NAME_SC_SURFACE_WILD
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_template/soluna_nexus_lateload/surface_wild
name = Z_NAME_SC_SURFACE_WILD
name_alias = Z_NAME_ALIAS_SURFACE_WILDS
mappath = "modular_chomp/maps/southern_cross/southern_cross-10.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/surface_wild
// Misc Z-Level
/datum/map_z_level/soluna_nexus_lateload/misc
name = Z_NAME_SN_MISC
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_VORESPAWN
transit_chance = 15
/datum/map_template/soluna_nexus_lateload/misc
name = Z_NAME_SN_MISC
name_alias = Z_NAME_ALIAS_MISC
mappath = "modular_chomp/maps/soluna_nexus/soluna_nexus-6.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/misc
// Centcom Z-Level
/datum/map_z_level/soluna_nexus_lateload/centcom
name = Z_NAME_SN_CENTCOM
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_CONTACT
/datum/map_template/soluna_nexus_lateload/centcom
name = Z_NAME_SN_CENTCOM
name_alias = Z_NAME_ALIAS_CENTCOM
mappath = "modular_chomp/maps/soluna_nexus/soluna_nexus-7.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/centcom
// Transit Z-Level
/datum/map_z_level/soluna_nexus_lateload/transit
name = Z_NAME_SN_TRANSIT
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT
/datum/map_template/soluna_nexus_lateload/transit
name = Z_NAME_SN_TRANSIT
mappath = "modular_chomp/maps/soluna_nexus/soluna_nexus-8.dmm"
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/transit
//Thor Z-Level
/datum/map_z_level/soluna_nexus_lateload/thor
name = Z_NAME_PLANET_THOR_CH
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_template/common_lateload/thor
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/thor
// Tyr Z-Level
/datum/map_z_level/soluna_nexus_lateload/valley
name = Z_NAME_PLANET_TYR_CH
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_template/common_lateload/tyr
associated_map_datum = /datum/map_z_level/soluna_nexus_lateload/valley