mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
Co-authored-by: Will <7099514+Willburd@users.noreply.github.com> Co-authored-by: C.L. <killer65311@gmail.com>
291 lines
12 KiB
Plaintext
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
|