mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-23 13:18:09 +01:00
392 lines
13 KiB
Plaintext
392 lines
13 KiB
Plaintext
|
|
GLOBAL_LIST_EMPTY(station_waypoints) //Create global list for station waypoints, so things like explo carrier can pull docking codes form it without having to scan world.
|
|
|
|
/obj/effect/overmap/visitable/sector/Soluna_Nexus
|
|
name = "Soluna Nexus"
|
|
icon = 'modular_chomp/icons/obj/overmap.dmi'
|
|
icon_state = "southerncross"
|
|
desc = "Soluna Nexus station, orbiting Sif."
|
|
scanner_desc = @{"[i]Registration[/i]: NLS Soluna Nexus
|
|
[i]Class[/i]: Installation
|
|
[i]Transponder[/i]: Transmitting (NT), NanoTrasen IFF
|
|
[b]Notice[/b]: NanoTrasen communications station, authorized personnel only"}
|
|
base = 1
|
|
in_space = 1
|
|
start_x = 10
|
|
start_y = 10
|
|
known = 1 // lets Sectors appear on shuttle navigation for easy finding.
|
|
|
|
extra_z_levels = list(Z_NAME_SN_TRANSIT, Z_NAME_ALIAS_MISC, Z_NAME_ALIAS_SURFACE, Z_NAME_ALIAS_SURFACE_MINES, Z_NAME_ALIAS_SURFACE_WILDS) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
|
// "Z_LEVEL_SURFACE_SKYLANDS, " //removed due to lack of use
|
|
mob_announce_cooldown = 0
|
|
|
|
|
|
initial_generic_waypoints = list(
|
|
"sc-D1_L1A1",
|
|
"sc-D1_L1A2",
|
|
"sc-D1_L1A3",
|
|
"sc-D1_L1A4",
|
|
"sc-D1_L1A5",
|
|
"sc-D1_L1A6",
|
|
"sc-D1_L2A1",
|
|
"sc-D1_L5A1",
|
|
"sc-D1_L5A2",
|
|
"sc-D1_L5A3",
|
|
"sc-D1_L3A1",
|
|
"sc-D1_L4A2",
|
|
"sc-D1_L4A3",
|
|
"sc-D1_L4A4",
|
|
"sc-D1_L4A5",
|
|
"sc-D1_L4A6",
|
|
"sc-D1_H3",
|
|
"sc-D1_H4",
|
|
"sc-D1_near_nw",
|
|
"sc-D1_near_ne",
|
|
"sc-D2_near_nw",
|
|
"sc-D2_near_sw",
|
|
"sc-D2_near_se",
|
|
"sc-D2_near_ne",
|
|
"sc-D3_near_ne",
|
|
"sc-D3_near_se",
|
|
"hangar_2",
|
|
"baby_mammoth_dock",
|
|
"ursula_dock",
|
|
"stargazer_dock",
|
|
"needle_dock",
|
|
"echidna_dock"
|
|
)
|
|
|
|
/obj/effect/overmap/visitable/sector/Soluna_Nexus/get_space_zlevels() //These are the primary levels that our space station resides in. This also indicates what levels astronauts can drift into.
|
|
return list(
|
|
Z_LEVEL_SN_STATION_ONE,
|
|
Z_LEVEL_SN_STATION_TWO,
|
|
Z_LEVEL_SN_STATION_THREE,
|
|
GLOB.map_templates_loaded[Z_NAME_ALIAS_MISC])
|
|
|
|
/obj/effect/overmap/visitable/sector/Soluna_Nexus/Crossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = FALSE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Soluna_Nexus/Uncrossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = TRUE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Soluna_Nexus/announce_atc(atom/movable/AM, going = FALSE)
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/simplemob))
|
|
if(world.time < mob_announce_cooldown)
|
|
return
|
|
else
|
|
mob_announce_cooldown = world.time + 5 MINUTES
|
|
var/message = "Sensor contact for vessel '[AM.name]' has [going ? "left" : "entered"] ATC control area."
|
|
//For landables, we need to see if their shuttle is cloaked
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/landable))
|
|
var/obj/effect/overmap/visitable/ship/landable/SL = AM //Phew
|
|
var/datum/shuttle/autodock/multi/shuttle = SSshuttles.shuttles[SL.shuttle]
|
|
if(!istype(shuttle) || !shuttle.cloaked) //Not a multishuttle (the only kind that can cloak) or not cloaked
|
|
SSatc.msg(message)
|
|
|
|
//For ships, it's safe to assume they're big enough to not be sneaky
|
|
else if(istype(AM, /obj/effect/overmap/visitable/ship))
|
|
SSatc.msg(message)
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross
|
|
name = "Southern Cross"
|
|
icon = 'modular_chomp/icons/obj/overmap.dmi'
|
|
icon_state = "southerncross"
|
|
desc = "Southern Cross station, orbiting Sif."
|
|
scanner_desc = @{"[i]Registration[/i]: NLS Southern Cross
|
|
[i]Class[/i]: Installation
|
|
[i]Transponder[/i]: Transmitting (NT), NanoTrasen IFF
|
|
[b]Notice[/b]: NanoTrasen communications station, authorized personnel only"}
|
|
base = 1
|
|
in_space = 1
|
|
start_x = 10
|
|
start_y = 10
|
|
known = 1 // lets Sectors appear on shuttle navigation for easy finding.
|
|
|
|
extra_z_levels = list(Z_NAME_SC_TRANSIT, Z_NAME_ALIAS_MISC, Z_NAME_ALIAS_SURFACE, Z_NAME_ALIAS_SURFACE_MINES, Z_NAME_ALIAS_SURFACE_WILDS) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
|
// "Z_LEVEL_SURFACE_SKYLANDS, " //removed due to lack of use
|
|
mob_announce_cooldown = 0
|
|
|
|
|
|
initial_generic_waypoints = list(
|
|
"d1_aux_a",
|
|
"d1_aux_b",
|
|
"d1_aux_c",
|
|
"d1_aux_d",
|
|
"d1_near_ne",
|
|
"d1_near_nw",
|
|
"d1_near_se",
|
|
"d1_near_sw",
|
|
"d2_w1_a",
|
|
"d2_w1_c",
|
|
"d2_w1_e",
|
|
"d2_w2_e",
|
|
"d2_w3_a",
|
|
"d2_w3_c",
|
|
"d2_w3_e",
|
|
"hangar_2",
|
|
"d2_near_ne",
|
|
"d2_near_nw",
|
|
"d2_near_se",
|
|
"d2_near_sw",
|
|
"d3_near_w",
|
|
"d3_near_se",
|
|
"baby_mammoth_dock",
|
|
"ursula_dock",
|
|
"stargazer_dock",
|
|
"needle_dock",
|
|
"echidna_dock"
|
|
)
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/get_space_zlevels() //These are the primary levels that our space station resides in. This also indicates what levels astronauts can drift into.
|
|
return list(
|
|
Z_LEVEL_SC_STATION_MAINTS,
|
|
Z_LEVEL_SC_STATION_ONE,
|
|
Z_LEVEL_SC_STATION_TWO,
|
|
Z_LEVEL_SC_STATION_THREE,
|
|
GLOB.map_templates_loaded[Z_NAME_ALIAS_MISC])
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/Crossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = FALSE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/Uncrossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = TRUE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/announce_atc(atom/movable/AM, going = FALSE)
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/simplemob))
|
|
if(world.time < mob_announce_cooldown)
|
|
return
|
|
else
|
|
mob_announce_cooldown = world.time + 5 MINUTES
|
|
var/message = "Sensor contact for vessel '[AM.name]' has [going ? "left" : "entered"] ATC control area."
|
|
//For landables, we need to see if their shuttle is cloaked
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/landable))
|
|
var/obj/effect/overmap/visitable/ship/landable/SL = AM //Phew
|
|
var/datum/shuttle/autodock/multi/shuttle = SSshuttles.shuttles[SL.shuttle]
|
|
if(!istype(shuttle) || !shuttle.cloaked) //Not a multishuttle (the only kind that can cloak) or not cloaked
|
|
SSatc.msg(message)
|
|
|
|
//For ships, it's safe to assume they're big enough to not be sneaky
|
|
else if(istype(AM, /obj/effect/overmap/visitable/ship))
|
|
SSatc.msg(message)
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/Initialize(mapload)
|
|
. = ..()
|
|
GLOB.station_waypoints += src
|
|
|
|
/obj/effect/overmap/visitable/sector/Southern_Cross/Destroy()
|
|
GLOB.station_waypoints -= src
|
|
. = ..()
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus
|
|
name = "Cetus"
|
|
icon = 'modular_chomp/icons/obj/overmap.dmi'
|
|
icon_state = "cetus"
|
|
desc = "Cetus station, orbiting Sif."
|
|
scanner_desc = @{"[i]Registration[/i]: NSS Cetus
|
|
[i]Class[/i]: Installation
|
|
[i]Transponder[/i]: Transmitting (NT), NanoTrasen IFF
|
|
[b]Notice[/b]: NanoTrasen research station, authorized personnel only"}
|
|
base = 1
|
|
in_space = 1
|
|
start_x = 10
|
|
start_y = 10
|
|
known = 1 // lets Sectors appear on shuttle navigation for easy finding.
|
|
|
|
extra_z_levels = list(Z_NAME_CETUS_TRANSIT, Z_NAME_ALIAS_MISC, Z_NAME_ALIAS_SURFACE, Z_NAME_ALIAS_SURFACE_MINES, Z_NAME_ALIAS_SURFACE_WILDS) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
|
// "Z_LEVEL_SURFACE_SKYLANDS, " //removed due to lack of use
|
|
mob_announce_cooldown = 0
|
|
|
|
|
|
initial_generic_waypoints = list(
|
|
"w1_a",
|
|
"w1_b",
|
|
"w2_a",
|
|
"w3_a",
|
|
"w3_b",
|
|
"w3_c",
|
|
"hangar_2",
|
|
"andromeda_1",
|
|
"andromeda_2",
|
|
"andromeda_3",
|
|
"d1_near_jr",
|
|
"d1_near_se",
|
|
"d1_near_sw",
|
|
"d2_near_n",
|
|
"d2_near_se",
|
|
"d2_near_sw",
|
|
"d3_near_jr",
|
|
"d3_near_se",
|
|
"d3_near_sw",
|
|
"baby_mammoth_dock",
|
|
"ursula_dock",
|
|
"stargazer_dock",
|
|
"needle_dock",
|
|
"echidna_dock"
|
|
)
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/get_space_zlevels() //These are the primary levels that our space station resides in. This also indicates what levels astronauts can drift into.
|
|
return list(
|
|
Z_LEVEL_CETUS_STATION_ONE,
|
|
Z_LEVEL_CETUS_STATION_TWO,
|
|
Z_LEVEL_CETUS_STATION_THREE,
|
|
GLOB.map_templates_loaded[Z_NAME_ALIAS_MISC])
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/Crossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = FALSE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/Uncrossed(atom/movable/AM)
|
|
. = ..()
|
|
announce_atc(AM,going = TRUE)
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/announce_atc(atom/movable/AM, going = FALSE)
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/simplemob))
|
|
if(world.time < mob_announce_cooldown)
|
|
return
|
|
else
|
|
mob_announce_cooldown = world.time + 5 MINUTES
|
|
var/message = "Sensor contact for vessel '[AM.name]' has [going ? "left" : "entered"] ATC control area."
|
|
//For landables, we need to see if their shuttle is cloaked
|
|
if(istype(AM, /obj/effect/overmap/visitable/ship/landable))
|
|
var/obj/effect/overmap/visitable/ship/landable/SL = AM //Phew
|
|
var/datum/shuttle/autodock/multi/shuttle = SSshuttles.shuttles[SL.shuttle]
|
|
if(!istype(shuttle) || !shuttle.cloaked) //Not a multishuttle (the only kind that can cloak) or not cloaked
|
|
SSatc.msg(message)
|
|
|
|
//For ships, it's safe to assume they're big enough to not be sneaky
|
|
else if(istype(AM, /obj/effect/overmap/visitable/ship))
|
|
SSatc.msg(message)
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/Initialize(mapload)
|
|
. = ..()
|
|
GLOB.station_waypoints += src
|
|
|
|
/obj/effect/overmap/visitable/sector/Cetus/Destroy()
|
|
GLOB.station_waypoints -= src
|
|
. = ..()
|
|
|
|
/obj/effect/overmap/visitable/ship/explo_carrier
|
|
name = "NEV Aegis"
|
|
icon_state = "nt_destroyer_g"
|
|
desc = "Spacefaring vessel. NanoTrasen IFF detected."
|
|
//Whenever possible. Replace description with spans. Dont let this sit for 10 years without being done.
|
|
scanner_desc = @{"[i]Registration[/i]: NEV Aegis
|
|
[i]Class[/i]: Light Exploratory Carrier
|
|
[i]Transponder[/i]: Transmitting (EXP), NanoTrasen IFF"
|
|
[b]Notice[/b]: NanoTrasen exploratory vessel, authorized personnel only"}
|
|
vessel_mass = 20000
|
|
vessel_size = SHIP_SIZE_LARGE
|
|
initial_generic_waypoints = list("exphangar_1", "baby_mammoth_dock", "ursula_dock", "stargazer_dock", "needle_dock", "echidna_dock", "carrier_port_dock", "carrier_starboard_dock")
|
|
|
|
/obj/effect/overmap/visitable/ship/explo_carrier/Initialize(mapload)
|
|
. = ..()
|
|
for(var/obj/effect/overmap/visitable/sector/sc in GLOB.station_waypoints) //Scan the global list for our station, get docking codes so all other ships that spawn on it init with the correct ones.
|
|
if(istype(sc, /obj/effect/overmap/visitable/sector/Soluna_Nexus) || istype(sc, /obj/effect/overmap/visitable/sector/Cetus) || istype(sc, /obj/effect/overmap/visitable/sector/Southern_Cross))
|
|
src.docking_codes = sc.docking_codes
|
|
|
|
// Overmap object for Thor, hanging in the void of space
|
|
/obj/effect/overmap/visitable/planet/Thor
|
|
name = "Thor"
|
|
desc = "Location of NT and Vir civilian colonies."
|
|
scanner_desc = @{"[i]Registration[/i]: Vir System Authority
|
|
[i]Class[/i]: Colony
|
|
[i]Transponder[/i]: Transmitting (CIV), Vir IFF
|
|
[b]Notice[/b]: The Vir government welcomes you to this world."}
|
|
|
|
// Set map_z to your levels for a planetary base. If you're ever going to split this up/add more Z's to Thor, imitate SC. THESE MUST BE DEFINED FOR SENSORS + SUCH TO WORK.
|
|
map_z = list(Z_LEVEL_RB_CATACOMBS, Z_LEVEL_RB_UNDERGROUND, Z_LEVEL_RB_SURFACE, Z_LEVEL_RB_UPPER_FLOORS, Z_NAME_ALIAS_SURFACE_WILDS, Z_NAME_ALIAS_SURFACE, Z_NAME_ALIAS_MISC)
|
|
|
|
initial_generic_waypoints = list(
|
|
"baby_mammoth_dock",
|
|
"echidna_dock",
|
|
"stargazer_dock",
|
|
"ursula_dock",
|
|
"needle_dock",
|
|
)
|
|
|
|
in_space = 0
|
|
start_x = 11
|
|
start_y = 11
|
|
skybox_offset_x = 128
|
|
skybox_offset_y = 128
|
|
surface_color = "#3A5934"
|
|
mountain_color = "#725C45"
|
|
ice_color = "FFFFFF"
|
|
icecaps = "icecaps"
|
|
icon_state = "lush" //yeet
|
|
|
|
/obj/effect/overmap/visitable/planet/Thor/Initialize(mapload)
|
|
atmosphere = new(CELL_VOLUME)
|
|
atmosphere.adjust_gas_temp(GAS_O2, MOLES_O2STANDARD, 273)
|
|
atmosphere.adjust_gas_temp(GAS_N2, MOLES_N2STANDARD, 273)
|
|
|
|
. = ..()
|
|
|
|
/obj/effect/overmap/visitable/planet/Thor/get_space_zlevels()
|
|
return list(GLOB.map_templates_loaded[Z_NAME_ALIAS_MISC])
|
|
|
|
/obj/effect/overmap/visitable/planet/Thor/Initialize(mapload)
|
|
. = ..()
|
|
docking_codes = null
|
|
|
|
/obj/effect/overmap/visitable/planet/Thor/get_skybox_representation()
|
|
var/image/tmp = ..()
|
|
tmp.pixel_x = skybox_offset_x
|
|
tmp.pixel_y = skybox_offset_y
|
|
return tmp
|
|
|
|
// Overmap object for Sif, hanging in the void of space
|
|
/obj/effect/overmap/visitable/planet/Sif
|
|
name = "Sif"
|
|
desc = "Location of Vir civilian colonies."
|
|
scanner_desc = @{"[i]Registration[/i]: Vir System Authority
|
|
[i]Class[/i]: Colony
|
|
[i]Transponder[/i]: Transmitting (CIV), Vir IFF
|
|
[b]Notice[/b]: The Vir government welcomes you to this world."}
|
|
|
|
map_z = list(Z_NAME_ALIAS_SURFACE, Z_NAME_ALIAS_SURFACE_MINES, Z_NAME_ALIAS_SURFACE_WILDS)
|
|
//Z_LEVEL_SURFACE_SKYLANDS, //removed due to lack of use
|
|
|
|
initial_generic_waypoints = list(
|
|
"outpost_nw",
|
|
"outpost_s",
|
|
"outpost_w",
|
|
"wilderness_s",
|
|
"wilderness_se",
|
|
"wilderness_w",
|
|
"wilderness_n",
|
|
"wilderness_outpost",
|
|
)
|
|
|
|
in_space = 0
|
|
start_x = 10
|
|
start_y = 10
|
|
skybox_offset_x = 128
|
|
skybox_offset_y = 128
|
|
surface_color = "#2D545B"
|
|
mountain_color = "#735555"
|
|
ice_color = "FFFFFF"
|
|
icecaps = "icecaps"
|
|
icon_state = "frozen" //CHOMP comment: Not sure what this does at the moment, but we're doing it live.
|
|
|
|
/obj/effect/overmap/visitable/planet/Sif/Initialize(mapload)
|
|
atmosphere = new(CELL_VOLUME)
|
|
atmosphere.adjust_gas_temp(GAS_O2, MOLES_O2STANDARD, 273)
|
|
atmosphere.adjust_gas_temp(GAS_N2, MOLES_N2STANDARD, 273)
|
|
|
|
. = ..()
|
|
|
|
/obj/effect/overmap/visitable/planet/Sif/Initialize(mapload)
|
|
. = ..()
|
|
docking_codes = null
|
|
|
|
/obj/effect/overmap/visitable/planet/Sif/get_skybox_representation()
|
|
var/image/tmp = ..()
|
|
tmp.pixel_x = skybox_offset_x
|
|
tmp.pixel_y = skybox_offset_y
|
|
return tmp
|