Simultaneous map definitions (#16924)

* initial

* Update file pathing

* Fix dup vars

* Move shuttle datums around

* Why am I fixing pdas

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
Drathek
2025-03-03 17:25:45 -05:00
committed by GitHub
co-authored by Cameron Lennox
parent 592bbd1a1e
commit 3e46e16e8c
49 changed files with 2078 additions and 2674 deletions
+22
View File
@@ -45,3 +45,25 @@
#define VIRGO3BB_SET_ATMOS nitrogen=VIRGO3BB_MOL_N2;oxygen=VIRGO3BB_MOL_O2;carbon_dioxide=VIRGO3BB_MOL_CO2;phoron=VIRGO3BB_MOL_PHORON;temperature=VIRGO3BB_AVG_TEMP
#define VIRGO3BB_TURF_CREATE(x) x/virgo3b_better/nitrogen=VIRGO3BB_MOL_N2;x/virgo3b_better/oxygen=VIRGO3BB_MOL_O2;x/virgo3b_better/carbon_dioxide=VIRGO3BB_MOL_CO2;x/virgo3b_better/phoron=VIRGO3BB_MOL_PHORON;x/virgo3b_better/temperature=VIRGO3BB_AVG_TEMP;x/virgo3b_better/outdoors=TRUE;x/virgo3b_better/update_graphic(list/graphic_add = null, list/graphic_remove = null) return 0
#define VIRGO3BB_TURF_CREATE_UN(x) x/virgo3b_better/nitrogen=VIRGO3BB_MOL_N2;x/virgo3b_better/oxygen=VIRGO3BB_MOL_O2;x/virgo3b_better/carbon_dioxide=VIRGO3BB_MOL_CO2;x/virgo3b_better/phoron=VIRGO3BB_MOL_PHORON;x/virgo3b_better/temperature=VIRGO3BB_AVG_TEMP
//Atmosphere properties
#define VIRGO2_ONE_ATMOSPHERE 312.1 //kPa
#define VIRGO2_AVG_TEMP 612 //kelvin
#define VIRGO2_PER_N2 0.10 //percent
#define VIRGO2_PER_O2 0.03
#define VIRGO2_PER_N2O 0.00 //Currently no capacity to 'start' a turf with this. See turf.dm
#define VIRGO2_PER_CO2 0.87
#define VIRGO2_PER_PHORON 0.00
//Math only beyond this point
#define VIRGO2_MOL_PER_TURF (VIRGO2_ONE_ATMOSPHERE*CELL_VOLUME/(VIRGO2_AVG_TEMP*R_IDEAL_GAS_EQUATION))
#define VIRGO2_MOL_N2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2)
#define VIRGO2_MOL_O2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_O2)
#define VIRGO2_MOL_N2O (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2O)
#define VIRGO2_MOL_CO2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_CO2)
#define VIRGO2_MOL_PHORON (VIRGO2_MOL_PER_TURF * VIRGO2_PER_PHORON)
//Turfmakers
#define VIRGO2_SET_ATMOS nitrogen=VIRGO2_MOL_N2;oxygen=VIRGO2_MOL_O2;carbon_dioxide=VIRGO2_MOL_CO2;phoron=VIRGO2_MOL_PHORON;temperature=VIRGO2_AVG_TEMP
#define VIRGO2_TURF_CREATE(x) x/virgo2/nitrogen=VIRGO2_MOL_N2;x/virgo2/oxygen=VIRGO2_MOL_O2;x/virgo2/carbon_dioxide=VIRGO2_MOL_CO2;x/virgo2/phoron=VIRGO2_MOL_PHORON;x/virgo2/temperature=VIRGO2_AVG_TEMP;x/virgo2/color="#eacd7c"
@@ -1,5 +1,6 @@
/obj/machinery/embedded_controller
name = "Embedded Controller"
layer = ABOVE_WINDOW_LAYER
anchored = TRUE
use_power = USE_POWER_IDLE
idle_power_usage = 10
@@ -1,9 +1,12 @@
// Formerly /datum/shuttle/ferry/emergency
/datum/shuttle/autodock/ferry/emergency
category = /datum/shuttle/autodock/ferry/emergency
var/frequency = 1380 // Why this frequency? BECAUSE! Thats what someone decided once.
var/datum/radio_frequency/radio_connection
/datum/shuttle/autodock/ferry/emergency/New()
..()
radio_connection = radio_controller.add_object(src, frequency, null)
if(emergency_shuttle.shuttle)
CRASH("An emergency shuttle has already been defined.")
emergency_shuttle.shuttle = src
@@ -106,6 +109,17 @@
..(user)
/datum/shuttle/autodock/ferry/emergency/escape
name = "Escape"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/escape
warmup_time = 10
landmark_offsite = "escape_cc"
landmark_station = "escape_station"
landmark_transition = "escape_transit"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = SOUTH
docking_controller_tag = "escape_shuttle"
/obj/machinery/computer/shuttle_control/emergency
+11
View File
@@ -94,3 +94,14 @@
//returns the ETA in deciseconds
/datum/shuttle/autodock/ferry/supply/proc/eta_deciseconds()
return round(arrive_time - world.time)
/datum/shuttle/autodock/ferry/supply/cargo
name = "Supply"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/supply
warmup_time = 10
landmark_offsite = "supply_cc"
landmark_station = "supply_station"
docking_controller_tag = "supply_shuttle"
flags = SHUTTLE_FLAGS_PROCESS|SHUTTLE_FLAGS_SUPPLY
move_direction = WEST
+1 -1
View File
@@ -9,7 +9,7 @@
var/floor_wait_delay = 85 // Time to wait at floor stops.
var/obj/structure/lift/panel/control_panel_interior // Lift control panel.
var/doors_closing = 0 // Whether doors are in the process of closing
var/list/music = null // Elevator music to set on areas
var/list/music = list('sound/music/elevator.ogg') // Elevator music to set on areas
var/priority_mode = FALSE // Flag to block buttons from calling the elevator if in priority mode.
var/fire_mode = FALSE // Flag to indicate firefighter mode is active.
+232
View File
@@ -0,0 +1,232 @@
// The aerostat shuttle
/area/shuttle/aerostat
name = "\improper Aerostat Shuttle"
//The aerostat itself
/area/tether_away/aerostat
name = "\improper Away Mission - Aerostat Outside"
icon_state = "away"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
requires_power = FALSE
dynamic_lighting = FALSE
/area/tether_away/aerostat/inside
name = "\improper Away Mission - Aerostat Inside"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
requires_power = TRUE
dynamic_lighting = TRUE
forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/argitoth.ogg', 'sound/ambience/tension/burning_terror.ogg')
/area/tether_away/aerostat/solars
name = "\improper Away Mission - Aerostat Solars"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
dynamic_lighting = TRUE
/area/offmap/aerostat/surface
flags = RAD_SHIELDED
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
/area/offmap/aerostat/surface/explored
name = "Away Mission - Aerostat Surface (E)"
icon_state = "explored"
/area/offmap/aerostat/surface/shuttleconsole
name = "Away Mission - Aerostat Surface Console"
icon_state = "explored"
dynamic_lighting = FALSE
requires_power = FALSE
/area/offmap/aerostat/surface/unexplored
name = "Away Mission - Aerostat Surface (UE)"
icon_state = "unexplored"
/area/offmap/aerostat/surface/outpost
requires_power = TRUE
dynamic_lighting = TRUE
ambience = null
/area/offmap/aerostat/surface/outpost/backroom
name = "V2 Outpost - Research Area"
/area/offmap/aerostat/surface/outpost/hallway
name = "V2 Outpost - Hallway"
/area/offmap/aerostat/surface/outpost/cafe
name = "V2 Outpost - Cafe"
/area/offmap/aerostat/surface/outpost/park
name = "V2 Outpost - Park"
/area/offmap/aerostat/surface/outpost/officerone
name = "V2 Outpost - Officer's Quarters 1"
/area/offmap/aerostat/surface/outpost/officertwo
name = "V2 Outpost - Officer's Quarters 2"
/area/offmap/aerostat/surface/outpost/barracks
name = "V2 Outpost - Barracks"
/area/offmap/aerostat/surface/outpost/airlock
name = "V2 Outpost - Airlock"
/area/offmap/aerostat/surface/outpost/powerroom
name = "V2 Outpost - Power Room"
/area/offmap/aerostat/surface/outpost/guardpost
name = "V2 Outpost - Guard Post"
/area/offmap/aerostat/inside
name = "\improper Away Mission - Aerostat Inside"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
requires_power = TRUE
dynamic_lighting = TRUE
// forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/argitoth.ogg', 'sound/ambience/tension/burning_terror.ogg')
/area/offmap/aerostat/inside
icon = 'icons/turf/areas_vr.dmi'
icon_state = "blublasqu"
/area/offmap/aerostat/inside/toxins
name = "Toxins Lab"
icon_state = "purwhisqu"
/area/offmap/aerostat/inside/xenoarch
name = "Xenoarchaeolegy Lab"
icon_state = "yelwhisqu"
/area/offmap/aerostat/inside/xenoarch/chamber
name = "Xenoarchaeolegy Vent Chamber"
/area/offmap/aerostat/inside/genetics
name = "Genetics Lab"
icon_state = "grewhisqu"
/area/offmap/aerostat/inside/telesci
name = "Telescience Lab"
icon_state = "bluwhisqu"
/area/offmap/aerostat/inside/atmos
name = "Atmospherics"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/firingrange
name = "Firing Range"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/miscstorage
name = "Miscellaneous Storage"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/virology
name = "Virology Lab"
icon_state = "yelwhicir"
/area/offmap/aerostat/inside/south
name = "Miscellaneous Labs A"
icon_state = "blublasqu"
/area/offmap/aerostat/inside/south/b
name = "Miscellaneous Labs B"
icon_state = "blublasqu"
/area/offmap/aerostat/inside/powercontrol
name = "Power Control"
icon_state = "orawhicir"
/area/offmap/aerostat/inside/westhall
name = "West Hall"
icon_state = "orablacir"
/area/offmap/aerostat/inside/easthall
name = "East Hall"
icon_state = "orablacir"
/area/offmap/aerostat/inside/northchamb
name = "North Chamber"
icon_state = "orablacir"
/area/offmap/aerostat/inside/southchamb
name = "South Chamber"
icon_state = "orablacir"
/area/offmap/aerostat/inside/drillstorage
name = "Drill Storage"
icon_state = "orablacir"
/area/offmap/aerostat/inside/zorrenoffice
name = "Zorren Reception"
icon_state = "orablacir"
/area/offmap/aerostat/inside/lobby
name = "Lobby"
icon_state = "orablacir"
/area/offmap/aerostat/inside/xenobiolab
name = "Xenobiology Lab"
icon_state = "orablacir"
/area/offmap/aerostat/inside/airlock
name = "Airlock"
icon_state = "redwhicir"
/area/offmap/aerostat/inside/airlock/north
name = "North Airlock"
/area/offmap/aerostat/inside/airlock/east
name = "East Airlock"
/area/offmap/aerostat/inside/airlock/west
name = "West Airlock"
/area/offmap/aerostat/inside/airlock/south
name = "South Airlock"
/area/offmap/aerostat/inside/arm/ne
name = "North-East Solar Arm"
/area/offmap/aerostat/inside/arm/nw
name = "North-West Solar Arm"
/area/offmap/aerostat/inside/arm/se
name = "South-East Solar Arm"
/area/offmap/aerostat/inside/arm/sw
name = "South-West Solar Arm"
/area/offmap/aerostat/glassgetsitsownarea
name = "Aerostat Glass"
icon_state = "crew_quarters"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
dynamic_lighting = FALSE
/area/offmap/aerostat/solars
name = "\improper Away Mission - Aerostat Solars"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
dynamic_lighting = FALSE
/area/sdmine
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/vacuum
/area/sdmine/unexplored
name = "asteroid field"
icon_state = "unexplored"
/area/sdmine/explored
name = "asteroid field"
icon_state = "explored"
/area/submap/space_rocks
name = "POI - Space Rocks"
ambience = AMBIENCE_FOREBODING
/area/submap/space_rocks/bittynest1
name = "POI - Bittynest1"
/area/submap/space_rocks/bittynest2
name = "POI - Bittynest2"
/area/submap/space_rocks/bittynest3
name = "POI - Bittynest3"
/area/submap/space_rocks/bittynest4
name = "POI - Bittynest4"
/area/submap/space_rocks/tunnel1
name = "POI - Tunnel1"
/area/submap/space_rocks/tunnel2
name = "POI - Tunnel2"
/area/submap/space_rocks/spacecrystals
name = "POI - Space Crystals"
/area/submap/space_rocks/clearing
name = "POI - Clearing"
/area/submap/space_rocks/seventemple
name = "POI - Temple of the Seven"
+146
View File
@@ -0,0 +1,146 @@
// Tether
#define Z_LEVEL_SURFACE_LOW 1
#define Z_LEVEL_SURFACE_MID 2
#define Z_LEVEL_SURFACE_HIGH 3
#define Z_LEVEL_TRANSIT 4
#define Z_LEVEL_SPACE_LOW 5
#define Z_LEVEL_SURFACE_MINE 6
#define Z_LEVEL_SOLARS 7
#define Z_LEVEL_UNDERDARK 21
#define Z_LEVEL_PLAINS 22
#define Z_LEVEL_ROGUEMINE_1 23
#define Z_LEVEL_ROGUEMINE_2 24
// Stellar Delight
#define Z_LEVEL_SHIP_LOW 1
#define Z_LEVEL_SHIP_MID 2
#define Z_LEVEL_SHIP_HIGH 3
#define Z_LEVEL_OVERMAP 4
#define Z_LEVEL_SPACE_ROCKS 5
// Groundbase
#define Z_LEVEL_GB_BOTTOM 1
#define Z_LEVEL_GB_MIDDLE 2
#define Z_LEVEL_GB_TOP 3
#define Z_LEVEL_GB_WILD_N 4
#define Z_LEVEL_GB_WILD_S 5
#define Z_LEVEL_GB_WILD_E 6
#define Z_LEVEL_GB_WILD_W 7
// Common
#define Z_LEVEL_CENTCOM 8
#define Z_LEVEL_MISC 9
#define Z_LEVEL_OFFMAP1 10
#define Z_LEVEL_AEROSTAT 11
#define Z_LEVEL_AEROSTAT_SURFACE 12
#define Z_LEVEL_DEBRISFIELD 13
#define Z_LEVEL_FUELDEPOT 14
#define Z_LEVEL_GATEWAY 15
#define Z_LEVEL_OM_ADVENTURE 16
#define Z_LEVEL_REDGATE 17
#define Z_LEVEL_BEACH 18
#define Z_LEVEL_BEACH_CAVE 19
#define Z_LEVEL_MINING 20
//Camera networks
#define NETWORK_TETHER "Tether"
#define NETWORK_OUTSIDE "Outside"
#define NETWORK_HALLS "Halls"
/obj/effect/landmark/map_data/groundbase
height = 3
/obj/effect/landmark/map_data/stellar_delight
height = 3
/obj/effect/overmap/visitable/sector/virgo3b
name = "Virgo 3B"
desc = "Full of phoron, and home to the NSB Adephagia."
scanner_desc = @{"[i]Registration[/i]: NSB Adephagia
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "virgo3b"
skybox_icon = 'icons/skybox/virgo3b.dmi'
skybox_icon_state = "small"
skybox_pixel_x = 0
skybox_pixel_y = 0
var/mob_announce_cooldown = 0
/obj/effect/overmap/visitable/sector/virgo3c
name = "Virgo 3C"
desc = "A small, volcanically active moon."
scanner_desc = @{"[i]Registration[/i]: NSB Rascal's Pass
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
known = TRUE
in_space = TRUE
icon = 'icons/obj/overmap.dmi'
icon_state = "lush"
skybox_icon = null
skybox_icon_state = null
skybox_pixel_x = 0
skybox_pixel_y = 0
initial_generic_waypoints = list("groundbase", "gb_excursion_pad","omship_axolotl")
initial_restricted_waypoints = list()
extra_z_levels = list(
Z_LEVEL_MINING,
Z_LEVEL_GB_WILD_N,
Z_LEVEL_GB_WILD_S,
Z_LEVEL_GB_WILD_E,
Z_LEVEL_GB_WILD_W
)
/obj/effect/overmap/visitable/ship/stellar_delight
name = "NRV Stellar Delight"
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "stellar_delight_g"
desc = "Spacefaring vessel. Friendly IFF detected."
scanner_desc = @{"[i]Registration[/i]: NRV Stellar Delight
[i]Class[/i]: Nanotrasen Response Vessel
[i]Transponder[/i]: Transmitting (CIV), non-hostile"
[b]Notice[/b]: A response vessel registered to Nanotrasen."}
vessel_mass = 25000
vessel_size = SHIP_SIZE_LARGE
initial_generic_waypoints = list("starboard_shuttlepad","port_shuttlepad","sd-1-23-54","sd-1-67-15","sd-1-70-130","sd-1-115-85","sd-2-25-98","sd-2-117-98","sd-3-22-78","sd-3-36-33","sd-3-104-33","sd-3-120-78")
initial_restricted_waypoints = list("Exploration Shuttle" = list("sd_explo"), "Mining Shuttle" = list("sd_mining"))
levels_for_distress = list(Z_LEVEL_OFFMAP1, Z_LEVEL_BEACH, Z_LEVEL_AEROSTAT, Z_LEVEL_DEBRISFIELD, Z_LEVEL_FUELDEPOT)
unowned_areas = list(/area/shuttle/sdboat)
known = TRUE
start_x = 2
start_y = 2
fore_dir = NORTH
skybox_icon = 'maps/stellar_delight/stelardelightskybox.dmi'
skybox_icon_state = "skybox"
skybox_pixel_x = 450
skybox_pixel_y = 200
/obj/effect/overmap/visitable/sector/virgo2
name = "Virgo 2"
desc = "Includes the Remmi Aerostat and associated ground mining complexes."
scanner_desc = @{"[i]Stellar Body[/i]: Virgo 2
[i]Class[/i]: R-Class Planet
[i]Habitability[/i]: Low (High Temperature, Toxic Atmosphere)
[b]Notice[/b]: Planetary environment not suitable for life. Landing may be hazardous."}
icon_state = "globe"
in_space = 0
known = TRUE
icon_state = "chlorine"
skybox_icon = 'icons/skybox/virgo2.dmi'
skybox_icon_state = "v2"
skybox_pixel_x = 0
skybox_pixel_y = 0
extra_z_levels = list(Z_LEVEL_AEROSTAT_SURFACE)
+44
View File
@@ -0,0 +1,44 @@
/////Virgo Flyer/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/ccboat
name = "Virgo Flyer control console"
shuttle_tag = "Virgo Flyer"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/ccboat
name = "NTV Virgo Flyer"
desc = "A small shuttle from Central Command."
vessel_mass = 1000
vessel_size = SHIP_SIZE_TINY
shuttle = "Virgo Flyer"
known = TRUE
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/ccboat
name = "Central Command Shuttlepad"
base_area = /area/shuttle/centcom/ccbay
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "cc_shuttlepad"
docking_controller = "cc_landing_pad"
shuttle_type = /datum/shuttle/autodock/overmap/ccboat
/datum/shuttle/autodock/overmap/ccboat
name = "Virgo Flyer"
current_location = "cc_shuttlepad"
docking_controller_tag = "ccboat"
shuttle_area = /area/shuttle/ccboat
fuel_consumption = 0
defer_initialisation = TRUE
/area/shuttle/ccboat
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Virgo Flyer"
requires_power = 0
/area/shuttle/centcom/ccbay
icon = 'icons/turf/areas_vr.dmi'
icon_state = "bluwhisqu"
name = "Central Command Shuttle Bay"
requires_power = 0
dynamic_lighting = 0
+8
View File
@@ -0,0 +1,8 @@
/area/maintenance/substation/tcomms
name = "\improper Telecomms Substation"
/area/maintenance/station/tcomms
name = "\improper Telecoms Maintenance"
/obj/item/multitool/station_buffered
name = "pre-linked multitool"
+407
View File
@@ -0,0 +1,407 @@
/obj/effect/step_trigger/teleporter/to_mining
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
/obj/effect/step_trigger/teleporter/from_mining
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
/obj/effect/step_trigger/teleporter/to_solars
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/from_solars
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/wild
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/to_underdark
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/from_underdark
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/to_plains
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/from_plains
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/lost_in_space
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
var/deathmessage = "You drift off into space, floating alone in the void until your life support runs out."
/obj/effect/step_trigger/lost_in_space/Trigger(var/atom/movable/A) //replacement for shuttle dump zones because there's no empty space levels to dump to
if(ismob(A))
to_chat(A, span_danger("[deathmessage]"))
qdel(A)
/obj/effect/step_trigger/lost_in_space/bluespace
deathmessage = "Everything goes blue as your component particles are scattered throughout the known and unknown universe."
var/last_sound = 0
/obj/effect/step_trigger/lost_in_space/bluespace/Trigger(A)
if(world.time - last_sound > 5 SECONDS)
last_sound = world.time
playsound(src, 'sound/effects/supermatter.ogg', 75, 1)
if(ismob(A) && prob(5))//lucky day
var/destturf = locate(rand(5,world.maxx-5),rand(5,world.maxy-5),pick(using_map.station_levels))
new /datum/teleport/instant(A, destturf, 0, 1, null, null, null, 'sound/effects/phasein.ogg')
else
return ..()
/obj/effect/step_trigger/lost_in_space/tram
deathmessage = "You fly down the tunnel of the tram at high speed for a few moments before impact kills you with sheer concussive force."
//
// TRAM STATION
//
// The tram's electrified maglev tracks
/turf/simulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
can_be_plated = FALSE
var/area/shock_area = /area/tether/surfacebase/tram
/turf/simulated/floor/maglev/Initialize()
. = ..()
shock_area = locate(shock_area)
// Walking on maglev tracks will shock you! Horray!
/turf/simulated/floor/maglev/Entered(var/atom/movable/AM, var/atom/old_loc)
if(isliving(AM) && !(AM.is_incorporeal()) && prob(50))
track_zap(AM)
/turf/simulated/floor/maglev/attack_hand(var/mob/user)
if(prob(75))
track_zap(user)
/turf/simulated/floor/maglev/proc/track_zap(var/mob/living/user)
if (!istype(user)) return
if (electrocute_mob(user, shock_area, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
// Tram air scrubbers for keeping arrivals clean - they work even with no area power
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram
name = "\improper Tram Air Scrubber"
icon_state = "scrubber:1"
on = TRUE
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram/powered()
return TRUE // Always be powered
// Tram departure cryo doors that turn into ordinary airlock doors at round end
/obj/machinery/cryopod/robot/door/tram
name = "\improper Tram Station"
icon = 'icons/obj/doors/Doorextglass.dmi'
icon_state = "door_closed"
can_atmos_pass = ATMOS_PASS_NO
base_icon_state = "door_closed"
occupied_icon_state = "door_locked"
desc = "The tram station you might've came in from. You could leave the base easily using this."
on_store_message = "has departed on the tram."
on_store_name = "Travel Oversight"
on_enter_occupant_message = "The tram arrives at the platform; you step inside and take a seat."
on_store_visible_message_1 = "'s speakers chime, anouncing a tram has arrived to take"
on_store_visible_message_2 = "to the colony"
time_till_despawn = 10 SECONDS
spawnpoint_type = /datum/spawnpoint/tram
/obj/machinery/cryopod/robot/door/tram/process()
if(emergency_shuttle.online() || emergency_shuttle.returned())
// Transform into a door! But first despawn anyone inside
time_till_despawn = 0
..()
var/turf/T = get_turf(src)
var/obj/machinery/door/airlock/glass_external/door = new(T)
door.req_access = null
door.req_one_access = null
qdel(src)
// Otherwise just operate normally
return ..()
/obj/machinery/cryopod/robot/door/tram/Bumped(var/atom/movable/AM)
if(!ishuman(AM))
return
var/mob/living/carbon/human/user = AM
var/choice = tgui_alert(user, "Do you want to depart via the tram? Your character will leave the round.","Departure",list("Yes","No"))
if(user && Adjacent(user) && choice == "Yes")
var/mob/observer/dead/newghost = user.ghostize()
newghost.timeofdeath = world.time
despawn_occupant(user)
//
// Holodorms
//
/obj/machinery/computer/HolodeckControl/holodorm
name = "Don't use this one!!!"
powerdown_program = "Off"
default_program = "Off"
//Smollodeck
active_power_usage = 500
item_power_usage = 100
supported_programs = list(
"Off" = new/datum/holodeck_program(/area/holodeck/holodorm/source_off),
"Basic Dorm" = new/datum/holodeck_program(/area/holodeck/holodorm/source_basic),
"Table Seating" = new/datum/holodeck_program(/area/holodeck/holodorm/source_seating),
"Beach Sim" = new/datum/holodeck_program(/area/holodeck/holodorm/source_beach),
"Desert Area" = new/datum/holodeck_program(/area/holodeck/holodorm/source_desert),
"Snow Field" = new/datum/holodeck_program(/area/holodeck/holodorm/source_snow),
"Flower Garden" = new/datum/holodeck_program(/area/holodeck/holodorm/source_garden),
"Space Sim" = new/datum/holodeck_program(/area/holodeck/holodorm/source_space),
"Boxing Ring" = new/datum/holodeck_program(/area/holodeck/holodorm/source_boxing)
)
/obj/machinery/computer/HolodeckControl/holodorm/one
name = "dorm one holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_1/holo
/obj/machinery/computer/HolodeckControl/holodorm/three
name = "dorm three holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_3/holo
/obj/machinery/computer/HolodeckControl/holodorm/five
name = "dorm five holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_5/holo
/obj/machinery/computer/HolodeckControl/holodorm/seven
name = "dorm seven holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_7/holo
//"Red" Armory Door
/obj/machinery/door/airlock/security/armory
name = "Red Armory"
//color = ""
/obj/machinery/door/airlock/security/armory/allowed(mob/user)
if(get_security_level() in list("green","blue"))
return FALSE
return ..(user)
//Tether-unique network cameras
/obj/machinery/camera/network/tether
network = list(NETWORK_TETHER)
/obj/machinery/camera/network/outside
network = list(NETWORK_OUTSIDE)
/obj/tether_away_spawner/tether_outside
name = "Tether Outside Spawner"
prob_spawn = 75
prob_fall = 50
mobs_to_pick_from = list(
/mob/living/simple_mob/animal/passive/gaslamp = 300
)
// Landmarks for wildlife events
/obj/effect/landmark/wildlife/water
name = "aquatic wildlife"
wildlife_type = 1
/obj/effect/landmark/wildlife/forest
name = "roaming wildlife"
wildlife_type = 2
// SD Things
/obj/machinery/camera/network/halls
network = list(NETWORK_HALLS)
/obj/item/paper/sdshield
name = "ABOUT THE SHIELD GENERATOR"
info = "<H1>ABOUT THE SHIELD GENERATOR</H1><BR><BR>If you&#39;re up here you are more than likely worried about hitting rocks or some other such thing. It is good to worry about such things as that is an inevitability.<BR><BR>The Stellar Delight is a rather compact vessel, so a setting of 55 to the range will just barely cover her aft. <BR><BR>It is recommended that you turn off all of the different protection types except multi dimensional warp and whatever it is you&#39;re worried about running into. (probably meteors (hyperkinetic)). <BR><BR>With only those two and all the other default settings, the shield uses more than 6 MW to run, which is more than the ship can ordinarily produce. AS SUCH, it is also recommended that you reduce the input cap to whatever you find reasonable (being as it defaults to 1 MW, which is the entirety of the stock power supply) and activate and configure the shield BEFORE you need it. <BR><BR>The shield takes some time to expand its range to the desired specifications, and on top of that, under the default low power setting, takes around 40 seconds to spool up. Once it is active, the fully charged internal capacitors will last for a few minutes before depleting fully. You can increase the passive energy use to decrease the spool up time, but it also uses the stored energy much faster, so, that is not recommended except in dire emergencies.<BR><BR>So, this shield is not intended to be run indefinitely, unless you seriously beef up the ship&#39;s engine and power supply.<BR><BR>Fortunately, if you&#39;ve got a good pilot, you shouldn&#39;t really need the shield generator except in rare cases and only for short distances. Still, it is a good idea to configure the shield to be ready before you need it.<BR><BR>Good luck out there - <I>Budly Gregington</I>"
/obj/item/book/manual/sd_guide
name = "Stellar Delight User's Guide"
icon = 'icons/obj/library.dmi'
icon_state ="newscodex"
item_state = "newscodex"
author = "Central Command" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Stellar Delight User's Guide"
/obj/item/book/manual/sd_guide/New()
..()
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
h2 {font-size: 15px; margin: 15px 0px 5px;}
h3 {font-size: 13px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
body {font-size: 13px; font-family: Verdana;}
</style>
</head>
<body>
<h1>Stellar Delight Operations</h1>
<br><br>
Welcome to the Stellar Delight! Before you get started there are a few things you ought to know.
<br><br>
The Stellar Delight is a Nanotrasen response vessel operating in the Virgo-Erigone system. It's primary duty is in answering calls for help, investigating anomalies in space around the system, and generally responding to requests from Central Command or whoever else needs the services the vessel can provide. It has fully functioning security, medical, and research facilities, as well as a host of civillian facilities, in addition to the standard things one might expect to find on such a ship. That is to say, the ship doesn't have a highly defined specialization, it is just as capable as a small space station might be.
<br><br>
Notably though, there are some research facilities that are not safe to carry around. There is a refurbished Aerostat that has been set up over Virgo 2 that posesses a number of different, more dangerous research facilities. The command staff of this vessel has access to its docking codes in their offices.
<br><br>
Mining and Exploration will probably also want to disembark to do their respective duties.
<br><br>
The ship is ordinarily protected from many space hazards by an array of point defense turrets, however, it should be noted that this defense network is not infallible. If the ship encounters a dangerous environment, occasionally hazardous material may slip past the network and damage the ship.
<br><br><br>
<h1>Before Moving the Ship</h1>
<br><br>
The ship requires power to fuel and run its engines and sensors. While there may be some charge in the ship at the start of the shift, it is <b>HIGHLY RECOMMENDED</b> that the engine be started before attempting to move the ship. If any of the components responsible for moving the ship lose power (including but not limited to the helm control console and the thrusters), then you will be incapable of adjusting the ship's speed or heading until the problem is resolved.
<br><br>
Additionally, the shield generator should be configured before the ship moves, as it takes time to calibrate before it can be activated. The shield should not be run indefinitely however, as it uses more power than the ship ordinarily generates. You can however activate it for a short time if you know that you need to proceed through a dangerous reigon of space. For more information, see the configuration guide sheet in the shield control room on deck 3, aft of the Command Office section.
<br><br><br>
<h1>Starting and Moving the Ship</h1>
<br><br>
The ship can of course move around on its own, but a few steps need to/should be taken before you can do so.
<br><br>
-FIRST. <b>You should appoint a pilot.</b> If there isn't a pilot, or the pilot isn't responding, you should fax for a pilot. If no pilots respond to the fax within a reasonable timeframe, then, if you are qualified to fly Nanotrasen spacecraft you may fly the ship. Appointing a pilot to the bridge however should always be done even if you know how to fly and have access to the helm control console. <i><b>Refusing to attempt to appoint a pilot and just flying the ship yourself can be grounds for demotion to pilot.</i></b>
<br><br>
-SECOND. In order for the ship to move one must start the engines. The ship's fuel pump in Atmospherics must be turned on and configured. Atmospheric technicians may elect to modify the fuel mix to help the ship go faster or make the fuel last longer. Either way, once the fuel pump is on, you may use the engine control console on the bridge to activate the engines.
<br><br>
Once these steps have been taken, the helm control console should respond to input commands from the pilot.
<br><br><br>
<h1>Disembarking</h1>
<br><br>
Being a response vessel, the Stellar Delight has 3 shuttles in total.
<br><br>
The mining and exploration shuttles are located in the aft of deck 1 between their respective departments. Both of these shuttles are short jump shuttles, meaning, they are not suitable for more than ferrying people back and forth between the ship and the present destination. They do have a small range that they can traverse in their bluespace hops, but they must be within one 'grid square' of a suitable landing site to jump. As such, it is recommended that you avoid flying away from wherever either of these shuttles are without establishing a flight plan with the away teams to indicate a time of returning. In cases where the mining team and the exploration team want to go to different places, it may be necessary to fly from one location to the other now and then to facilitate both operations. However, it is recommended that exploration and mining be encouraged to enter the same operations areas, as the mining team is poorly armed, and the exploration team is ideally equipped for offsite defense and support of ship personnel.
<br><br>
There is also the Starstuff, a long range capable shuttle which is ordinarily docked on the port landing pad of deck 3. This shuttle is meant for general crew transport, but does require a pilot to be flown.
<br><br>
In cases where the shuttles will be docking with another facility, such as the Science outpost on the Virgo 2 Aerostat, docking codes may be required in order to be accessed. Anywhere requiring such codes will need to have them entered into the given shuttle's short jump console. It is recommended that anyone operating such a shuttle take note of the Stellar Delight's docking codes, as they will need them to dock with the ship. Any Nanotrasen owned facility that requires them that your ship has authorization to access will have the codes stored in the Command Offices.
<br><br>
A final note on disembarking. While it may not necessarily be their job to do so, it is highly encouraged for the Command staff to attempt to involve volunteers in off ship operations as necessary. Just make sure to let let it be known what kind of operation is happening when you ask. This being a response ship, it is very good to get as much help to handle whatever the issue is as thoroughly as possible.
<br><br>
All that said, have a safe trip. - Central Command Officer <i>Alyssa Trems</i> </body>
</html>
"}
/obj/item/multitool/scioutpost
name = "science outpost linked multitool"
desc = "It has the data for the science outpost's quantum pad pre-loaded... assuming you didn't override it."
/obj/item/multitool/scioutpost/Initialize()
. = ..()
for(var/obj/machinery/power/quantumpad/scioutpost/outpost in world)
connectable = outpost
if(connectable)
icon_state = "multitool_red"
return
/obj/machinery/power/quantumpad/scioutpost
//Special map objects
/obj/effect/landmark/map_data/virgo3b
height = 5
/obj/turbolift_map_holder/tether
name = "Tether Climber"
depth = 5
lift_size_x = 3
lift_size_y = 3
icon = 'icons/obj/turbolift_preview_3x3.dmi'
wall_type = null // Don't make walls
areas_to_use = list(
/area/turbolift/t_surface/level1,
/area/turbolift/t_surface/level2,
/area/turbolift/t_surface/level3,
/area/turbolift/tether/transit,
/area/turbolift/t_station/level1
)
/obj/machinery/atmospherics/unary/vent_pump/positive
use_power = USE_POWER_IDLE
icon_state = "map_vent_out"
external_pressure_bound = ONE_ATMOSPHERE * 1.1
/obj/machinery/computer/shuttle_control/aerostat_shuttle
name = "aerostat ferry control console"
shuttle_tag = "Aerostat Ferry"
/obj/tether_away_spawner/aerostat_inside
name = "Aerostat Indoors Spawner"
faction = FACTION_AEROSTAT_INSIDE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 50
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 3,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 1,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 3,
/mob/living/simple_mob/vore/aggressive/corrupthound = 1
)
/obj/tether_away_spawner/aerostat_surface
name = "Aerostat Surface Spawner"
faction = FACTION_AEROSTAT_SURFACE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 30
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/jelly = 6,
/mob/living/simple_mob/mechanical/viscerator = 6,
/mob/living/simple_mob/vore/aggressive/corrupthound = 3,
/mob/living/simple_mob/vore/oregrub = 2,
/mob/living/simple_mob/vore/oregrub/lava = 1
)
/obj/structure/old_roboprinter
name = "old drone fabricator"
desc = "Built like a tank, still working after so many years."
icon = 'icons/obj/machines/drone_fab.dmi'
icon_state = "drone_fab_idle"
anchored = TRUE
density = TRUE
/obj/structure/metal_edge
name = "metal underside"
desc = "A metal wall that extends downwards."
icon = 'icons/turf/cliff.dmi'
icon_state = "metal"
anchored = TRUE
density = FALSE
+199
View File
@@ -0,0 +1,199 @@
//Unsimulated
/turf/unsimulated/mineral/virgo3b
blocks_air = TRUE
/turf/unsimulated/floor/steel
icon = 'icons/turf/flooring/tiles_vr.dmi'
icon_state = "steel"
// Some turfs to make floors look better in centcom tram station.
/turf/unsimulated/floor/techfloor_grid
name = "floor"
icon = 'icons/turf/flooring/techfloor.dmi'
icon_state = "techfloor_grid"
/turf/unsimulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
/turf/unsimulated/wall/transit
icon = 'icons/turf/transit_vr.dmi'
/turf/unsimulated/floor/transit
icon = 'icons/turf/transit_vr.dmi'
/obj/effect/floor_decal/transit/orange
icon = 'icons/turf/transit_vr.dmi'
icon_state = "transit_techfloororange_edges"
/obj/effect/transit/light
icon = 'icons/turf/transit_128.dmi'
icon_state = "tube1-2"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/dirt)
/turf/simulated/floor/outdoors/dirt/virgo3b
icon = 'icons/turf/flooring/asteroid.dmi'
icon_state = "asteroid"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/grass/sif)
/turf/simulated/floor/outdoors/grass/sif
turf_layers = list(
/turf/simulated/floor/outdoors/rocks/virgo3b,
/turf/simulated/floor/outdoors/dirt/virgo3b
)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/steel_dirty)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/water/indoors)
VIRGO3B_TURF_CREATE(/turf/simulated/open)
VIRGO3B_TURF_CREATE(/turf/simulated/floor)
VIRGO3B_TURF_CREATE(/turf/simulated/mineral)
VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/plating/external)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/reinforced)
// Bluespace jump turf!
/turf/space/bluespace
name = "bluespace"
icon = 'icons/turf/space_vr.dmi'
icon_state = "bluespace"
// Desert jump turf!
/turf/space/sandyscroll
name = "sand transit"
icon = 'icons/turf/transit_vr.dmi'
icon_state = "desert_ns"
//Sky stuff!
// A simple turf to fake the appearance of flying.
/turf/simulated/sky/virgo3b
color = "#FFBBBB"
/turf/simulated/sky/virgo3b/Initialize()
SSplanets.addTurf(src)
set_light(2, 2, "#FFBBBB")
/turf/simulated/sky/virgo3b/north
dir = NORTH
/turf/simulated/sky/virgo3b/south
dir = SOUTH
/turf/simulated/sky/virgo3b/east
dir = EAST
/turf/simulated/sky/virgo3b/west
dir = WEST
/turf/simulated/sky/virgo3b/moving
icon_state = "sky_fast"
/turf/simulated/sky/virgo3b/moving/north
dir = NORTH
/turf/simulated/sky/virgo3b/moving/south
dir = SOUTH
/turf/simulated/sky/virgo3b/moving/east
dir = EAST
/turf/simulated/sky/virgo3b/moving/west
dir = WEST
/turf/simulated/floor/midpoint_glass
name = "glass floor"
desc = "Dont jump on it, or do, I'm not your mom."
icon = 'icons/turf/flooring/glass.dmi'
icon_state = "glass-0"
base_icon_state = "glass"
/turf/simulated/floor/midpoint_glass/reinf
name = "reinforced glass floor"
desc = "Do jump on it, it can take it."
icon = 'icons/turf/flooring/reinf_glass.dmi'
icon_state = "reinf_glass-0"
base_icon_state = "reinf_glass"
/turf/simulated/floor/midpoint_glass/Initialize()
. = ..()
return INITIALIZE_HINT_LATELOAD
/turf/simulated/floor/midpoint_glass/LateInitialize()
do_icons()
/turf/simulated/floor/midpoint_glass/proc/do_icons()
var/new_junction = NONE
for(var/direction in cardinal) //Cardinal case first.
var/turf/T = get_step(src, direction)
if(istype(T, type))
new_junction |= direction
if(!(new_junction & (NORTH|SOUTH)) || !(new_junction & (EAST|WEST)))
icon_state = "[base_icon_state]-[new_junction]"
return
if(new_junction & NORTH)
if(new_junction & WEST)
var/turf/T = get_step(src, NORTHWEST)
if(istype(T, type))
new_junction |= (1<<7)
if(new_junction & EAST)
var/turf/T = get_step(src, NORTHEAST)
if(istype(T, type))
new_junction |= (1<<4)
if(new_junction & SOUTH)
if(new_junction & WEST)
var/turf/T = get_step(src, SOUTHWEST)
if(istype(T, type))
new_junction |= (1<<6)
if(new_junction & EAST)
var/turf/T = get_step(src, SOUTHEAST)
if(istype(T, type))
new_junction |= (1<<5)
icon_state = "[base_icon_state]-[new_junction]"
add_vis_overlay('icons/effects/effects.dmi', "white", plane = SPACE_PLANE, add_vis_flags = VIS_INHERIT_ID|VIS_UNDERLAY)
/turf/space/v3b_midpoint
// Tram transit floor
/turf/simulated/floor/tiled/techfloor/grid/transit
icon = 'icons/turf/transit_vr.dmi'
initial_flooring = null
/turf/unsimulated/floor/sky/virgo2_sky
name = "virgo 2 atmosphere"
desc = "Be careful where you step!"
color = "#eacd7c"
VIRGO2_SET_ATMOS
/turf/simulated/shuttle/wall/voidcraft/green/virgo2
VIRGO2_SET_ATMOS
color = "#eacd7c"
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol
color = null
VIRGO2_TURF_CREATE(/turf/unsimulated/wall/planetary)
VIRGO2_TURF_CREATE(/turf/simulated/wall)
VIRGO2_TURF_CREATE(/turf/simulated/floor/plating)
VIRGO2_TURF_CREATE(/turf/simulated/floor/bluegrid)
VIRGO2_TURF_CREATE(/turf/simulated/floor/tiled/techfloor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
VIRGO2_TURF_CREATE(/turf/simulated/floor/hull)
/turf/simulated/mineral/vacuum/gb_mine
/turf/simulated/floor/virgo3b_indoors
VIRGO3B_SET_ATMOS
/turf/simulated/floor/virgo3b_indoors/update_graphic(list/graphic_add = null, list/graphic_remove = null)
return 0
+2 -185
View File
@@ -1,23 +1,7 @@
#include "../../submaps/pois_vr/aerostat/virgo2.dm"
/obj/effect/overmap/visitable/sector/virgo2
name = "Virgo 2"
desc = "Includes the Remmi Aerostat and associated ground mining complexes."
scanner_desc = @{"[i]Stellar Body[/i]: Virgo 2
[i]Class[/i]: R-Class Planet
[i]Habitability[/i]: Low (High Temperature, Toxic Atmosphere)
[b]Notice[/b]: Planetary environment not suitable for life. Landing may be hazardous."}
icon_state = "globe"
in_space = 0
initial_generic_waypoints = list("aerostat_west","aerostat_east","aerostat_south","aerostat_northwest","aerostat_northeast")
extra_z_levels = list(Z_LEVEL_AEROSTAT_SURFACE)
known = TRUE
icon_state = "chlorine"
skybox_icon = 'icons/skybox/virgo2.dmi'
skybox_icon_state = "v2"
skybox_pixel_x = 0
skybox_pixel_y = 0
// -- Datums -- //
@@ -28,11 +12,6 @@
landmark_station = "aerostat_east"
landmark_offsite = "aerostat_surface"
/datum/random_map/noise/ore/virgo2
descriptor = "virgo 2 ore distribution map"
deep_val = 0.2
rare_val = 0.1
/datum/random_map/noise/ore/virgo2/check_map_sanity()
return 1 //Totally random, but probably beneficial.
@@ -111,106 +90,12 @@
//T.resources[ORE_PAINITE] = 0
return
// -- Objs -- //
/obj/machinery/computer/shuttle_control/aerostat_shuttle
name = "aerostat ferry control console"
shuttle_tag = "Aerostat Ferry"
/obj/tether_away_spawner/aerostat_inside
name = "Aerostat Indoors Spawner"
faction = FACTION_AEROSTAT_INSIDE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 50
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 3,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 1,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 3,
/mob/living/simple_mob/vore/aggressive/corrupthound = 1
)
/obj/tether_away_spawner/aerostat_surface
name = "Aerostat Surface Spawner"
faction = FACTION_AEROSTAT_SURFACE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 30
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/jelly = 6,
/mob/living/simple_mob/mechanical/viscerator = 6,
/mob/living/simple_mob/vore/aggressive/corrupthound = 3,
/mob/living/simple_mob/vore/oregrub = 2,
/mob/living/simple_mob/vore/oregrub/lava = 1
)
/obj/structure/old_roboprinter
name = "old drone fabricator"
desc = "Built like a tank, still working after so many years."
icon = 'icons/obj/machines/drone_fab.dmi'
icon_state = "drone_fab_idle"
anchored = TRUE
density = TRUE
/obj/structure/metal_edge
name = "metal underside"
desc = "A metal wall that extends downwards."
icon = 'icons/turf/cliff.dmi'
icon_state = "metal"
anchored = TRUE
density = FALSE
// -- Turfs -- //
//Atmosphere properties
#define VIRGO2_ONE_ATMOSPHERE 312.1 //kPa
#define VIRGO2_AVG_TEMP 612 //kelvin
#define VIRGO2_PER_N2 0.10 //percent
#define VIRGO2_PER_O2 0.03
#define VIRGO2_PER_N2O 0.00 //Currently no capacity to 'start' a turf with this. See turf.dm
#define VIRGO2_PER_CO2 0.87
#define VIRGO2_PER_PHORON 0.00
//Math only beyond this point
#define VIRGO2_MOL_PER_TURF (VIRGO2_ONE_ATMOSPHERE*CELL_VOLUME/(VIRGO2_AVG_TEMP*R_IDEAL_GAS_EQUATION))
#define VIRGO2_MOL_N2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2)
#define VIRGO2_MOL_O2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_O2)
#define VIRGO2_MOL_N2O (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2O)
#define VIRGO2_MOL_CO2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_CO2)
#define VIRGO2_MOL_PHORON (VIRGO2_MOL_PER_TURF * VIRGO2_PER_PHORON)
//Turfmakers
#define VIRGO2_SET_ATMOS nitrogen=VIRGO2_MOL_N2;oxygen=VIRGO2_MOL_O2;carbon_dioxide=VIRGO2_MOL_CO2;phoron=VIRGO2_MOL_PHORON;temperature=VIRGO2_AVG_TEMP
#define VIRGO2_TURF_CREATE(x) x/virgo2/nitrogen=VIRGO2_MOL_N2;x/virgo2/oxygen=VIRGO2_MOL_O2;x/virgo2/carbon_dioxide=VIRGO2_MOL_CO2;x/virgo2/phoron=VIRGO2_MOL_PHORON;x/virgo2/temperature=VIRGO2_AVG_TEMP;x/virgo2/color="#eacd7c"
/turf/unsimulated/floor/sky/virgo2_sky
name = "virgo 2 atmosphere"
desc = "Be careful where you step!"
color = "#eacd7c"
VIRGO2_SET_ATMOS
/turf/unsimulated/floor/sky/virgo2_sky/Initialize()
skyfall_levels = list(z+1)
. = ..()
/turf/simulated/shuttle/wall/voidcraft/green/virgo2
VIRGO2_SET_ATMOS
color = "#eacd7c"
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol
color = null
VIRGO2_TURF_CREATE(/turf/unsimulated/wall/planetary)
VIRGO2_TURF_CREATE(/turf/simulated/wall)
VIRGO2_TURF_CREATE(/turf/simulated/floor/plating)
VIRGO2_TURF_CREATE(/turf/simulated/floor/bluegrid)
VIRGO2_TURF_CREATE(/turf/simulated/floor/tiled/techfloor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral)
/turf/simulated/mineral/virgo2/make_ore()
if(mineral)
return
@@ -222,82 +107,14 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral)
UpdateMineral()
update_icon()
VIRGO2_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
// -- Areas -- //
// The aerostat shuttle
/area/shuttle/aerostat
name = "\improper Aerostat Shuttle"
//The aerostat itself
/area/tether_away/aerostat
name = "\improper Away Mission - Aerostat Outside"
icon_state = "away"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
requires_power = FALSE
dynamic_lighting = FALSE
/area/tether_away/aerostat/inside
name = "\improper Away Mission - Aerostat Inside"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
requires_power = TRUE
dynamic_lighting = TRUE
forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/argitoth.ogg', 'sound/ambience/tension/burning_terror.ogg')
/area/tether_away/aerostat/solars
name = "\improper Away Mission - Aerostat Solars"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
dynamic_lighting = TRUE
/area/offmap/aerostat/surface
flags = RAD_SHIELDED
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
/area/offmap/aerostat/surface/explored
name = "Away Mission - Aerostat Surface (E)"
icon_state = "explored"
dynamic_lighting = FALSE
/area/offmap/aerostat/surface/shuttleconsole
name = "Away Mission - Aerostat Surface Console"
icon_state = "explored"
dynamic_lighting = FALSE
requires_power = FALSE
dynamic_lighting = FALSE // Override
/area/offmap/aerostat/surface/unexplored
name = "Away Mission - Aerostat Surface (UE)"
icon_state = "unexplored"
dynamic_lighting = FALSE
VIRGO2_TURF_CREATE(/turf/simulated/floor/hull)
/area/offmap/aerostat/surface/outpost
requires_power = TRUE
dynamic_lighting = TRUE
ambience = null
/area/offmap/aerostat/surface/outpost/backroom
name = "V2 Outpost - Research Area"
/area/offmap/aerostat/surface/outpost/hallway
name = "V2 Outpost - Hallway"
/area/offmap/aerostat/surface/outpost/cafe
name = "V2 Outpost - Cafe"
/area/offmap/aerostat/surface/outpost/park
name = "V2 Outpost - Park"
/area/offmap/aerostat/surface/outpost/officerone
name = "V2 Outpost - Officer's Quarters 1"
/area/offmap/aerostat/surface/outpost/officertwo
name = "V2 Outpost - Officer's Quarters 2"
/area/offmap/aerostat/surface/outpost/barracks
name = "V2 Outpost - Barracks"
/area/offmap/aerostat/surface/outpost/airlock
name = "V2 Outpost - Airlock"
/area/offmap/aerostat/surface/outpost/powerroom
name = "V2 Outpost - Power Room"
/area/offmap/aerostat/surface/outpost/guardpost
name = "V2 Outpost - Guard Post"
dynamic_lighting = FALSE // Override
@@ -2,23 +2,7 @@
/obj/effect/overmap/visitable/sector/virgo2
name = "Virgo 2"
desc = "Includes the Remmi Aerostat and associated ground mining complexes."
scanner_desc = @{"[i]Stellar Body[/i]: Virgo 2
[i]Class[/i]: R-Class Planet
[i]Habitability[/i]: Low (High Temperature, Toxic Atmosphere)
[b]Notice[/b]: Planetary environment not suitable for life. Landing may be hazardous."}
icon_state = "globe"
in_space = 0
initial_generic_waypoints = list("aerostat_n_w", "aerostat_n_n","aerostat_n_e","aerostat_s_w","aerostat_s_s","aerostat_s_e","aerostat_west","aerostat_east")
extra_z_levels = list(Z_LEVEL_AEROSTAT_SURFACE)
known = TRUE
icon_state = "chlorine"
skybox_icon = 'icons/skybox/virgo2.dmi'
skybox_icon_state = "v2"
skybox_pixel_x = 0
skybox_pixel_y = 0
/obj/effect/overmap/visitable/sector/virgo2/Initialize()
for(var/obj/effect/overmap/visitable/ship/stellar_delight/sd in world)
@@ -35,11 +19,6 @@
landmark_station = "aerostat_east"
landmark_offsite = "aerostat_surface"
/datum/random_map/noise/ore/virgo2
descriptor = "virgo 2 ore distribution map"
deep_val = 0.2
rare_val = 0.1
/datum/random_map/noise/ore/virgo2/check_map_sanity()
return 1 //Totally random, but probably beneficial.
@@ -50,43 +29,6 @@
shuttle_tag = "Aerostat Ferry"
ai_control = TRUE
/obj/tether_away_spawner/aerostat_inside
name = "Aerostat Indoors Spawner"
faction = FACTION_AEROSTAT_INSIDE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 50
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 3,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 1,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 3,
/mob/living/simple_mob/vore/aggressive/corrupthound = 1
)
/obj/tether_away_spawner/aerostat_surface
name = "Aerostat Surface Spawner"
faction = FACTION_AEROSTAT_SURFACE
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 50
//guard = 20
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/jelly = 6,
/mob/living/simple_mob/mechanical/viscerator = 6,
/mob/living/simple_mob/vore/aggressive/corrupthound = 3,
/mob/living/simple_mob/vore/oregrub = 2,
/mob/living/simple_mob/vore/oregrub/lava = 1
)
/obj/structure/old_roboprinter
name = "old drone fabricator"
desc = "Built like a tank, still working after so many years."
icon = 'icons/obj/machines/drone_fab.dmi'
icon_state = "drone_fab_idle"
anchored = TRUE
density = TRUE
/obj/structure/metal_edge
name = "metal underside"
desc = "A metal wall that extends downwards."
@@ -97,53 +39,10 @@
// -- Turfs -- //
//Atmosphere properties
#define VIRGO2_ONE_ATMOSPHERE 312.1 //kPa
#define VIRGO2_AVG_TEMP 612 //kelvin
#define VIRGO2_PER_N2 0.10 //percent
#define VIRGO2_PER_O2 0.03
#define VIRGO2_PER_N2O 0.00 //Currently no capacity to 'start' a turf with this. See turf.dm
#define VIRGO2_PER_CO2 0.87
#define VIRGO2_PER_PHORON 0.00
//Math only beyond this point
#define VIRGO2_MOL_PER_TURF (VIRGO2_ONE_ATMOSPHERE*CELL_VOLUME/(VIRGO2_AVG_TEMP*R_IDEAL_GAS_EQUATION))
#define VIRGO2_MOL_N2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2)
#define VIRGO2_MOL_O2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_O2)
#define VIRGO2_MOL_N2O (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2O)
#define VIRGO2_MOL_CO2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_CO2)
#define VIRGO2_MOL_PHORON (VIRGO2_MOL_PER_TURF * VIRGO2_PER_PHORON)
//Turfmakers
#define VIRGO2_SET_ATMOS nitrogen=VIRGO2_MOL_N2;oxygen=VIRGO2_MOL_O2;carbon_dioxide=VIRGO2_MOL_CO2;phoron=VIRGO2_MOL_PHORON;temperature=VIRGO2_AVG_TEMP
#define VIRGO2_TURF_CREATE(x) x/virgo2/nitrogen=VIRGO2_MOL_N2;x/virgo2/oxygen=VIRGO2_MOL_O2;x/virgo2/carbon_dioxide=VIRGO2_MOL_CO2;x/virgo2/phoron=VIRGO2_MOL_PHORON;x/virgo2/temperature=VIRGO2_AVG_TEMP;x/virgo2/color="#eacd7c"
/turf/unsimulated/floor/sky/virgo2_sky
name = "virgo 2 atmosphere"
desc = "Be careful where you step!"
color = "#eacd7c"
VIRGO2_SET_ATMOS
/turf/unsimulated/floor/sky/virgo2_sky/Initialize()
skyfall_levels = list(z+1)
. = ..()
/turf/simulated/shuttle/wall/voidcraft/green/virgo2
VIRGO2_SET_ATMOS
color = "#eacd7c"
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol
color = null
VIRGO2_TURF_CREATE(/turf/unsimulated/wall/planetary)
VIRGO2_TURF_CREATE(/turf/simulated/wall)
VIRGO2_TURF_CREATE(/turf/simulated/floor/plating)
VIRGO2_TURF_CREATE(/turf/simulated/floor/bluegrid)
VIRGO2_TURF_CREATE(/turf/simulated/floor/tiled/techfloor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral)
/////Copied from Virgo3b's ore generation, since there was concern about not being able to get the ore they need on V2
/turf/simulated/mineral/virgo2/make_ore(var/rare_ore)
if(mineral)
@@ -179,16 +78,8 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral)
UpdateMineral()
update_icon()
VIRGO2_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
// -- Areas -- //
// The aerostat shuttle
/area/shuttle/aerostat
name = "\improper Aerostat Shuttle"
//The aerostat itself
/area/offmap/aerostat
name = "\improper Away Mission - Aerostat Outside"
@@ -196,170 +87,3 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
requires_power = FALSE
dynamic_lighting = FALSE
/area/offmap/aerostat/inside
name = "\improper Away Mission - Aerostat Inside"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
requires_power = TRUE
dynamic_lighting = TRUE
// forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/argitoth.ogg', 'sound/ambience/tension/burning_terror.ogg')
/area/offmap/aerostat/solars
name = "\improper Away Mission - Aerostat Solars"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
dynamic_lighting = FALSE
/area/offmap/aerostat/surface
flags = RAD_SHIELDED
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
/area/offmap/aerostat/surface/explored
name = "Away Mission - Aerostat Surface (E)"
icon_state = "explored"
/area/offmap/aerostat/surface/unexplored
name = "Away Mission - Aerostat Surface (UE)"
icon_state = "unexplored"
VIRGO2_TURF_CREATE(/turf/simulated/floor/hull)
/area/offmap/aerostat/surface/outpost
requires_power = TRUE
dynamic_lighting = TRUE
ambience = list()
/area/offmap/aerostat/surface/outpost/backroom
name = "V2 Outpost - Research Area"
/area/offmap/aerostat/surface/outpost/hallway
name = "V2 Outpost - Hallway"
/area/offmap/aerostat/surface/outpost/cafe
name = "V2 Outpost - Cafe"
/area/offmap/aerostat/surface/outpost/park
name = "V2 Outpost - Park"
/area/offmap/aerostat/surface/outpost/officerone
name = "V2 Outpost - Officer's Quarters 1"
/area/offmap/aerostat/surface/outpost/officertwo
name = "V2 Outpost - Officer's Quarters 2"
/area/offmap/aerostat/surface/outpost/barracks
name = "V2 Outpost - Barracks"
/area/offmap/aerostat/surface/outpost/airlock
name = "V2 Outpost - Airlock"
/area/offmap/aerostat/surface/outpost/powerroom
name = "V2 Outpost - Power Room"
/area/offmap/aerostat/surface/outpost/guardpost
name = "V2 Outpost - Guard Post"
/area/offmap/aerostat/inside
icon = 'icons/turf/areas_vr.dmi'
icon_state = "blublasqu"
/area/offmap/aerostat/inside/toxins
name = "Toxins Lab"
icon_state = "purwhisqu"
/area/offmap/aerostat/inside/xenoarch
name = "Xenoarchaeolegy Lab"
icon_state = "yelwhisqu"
/area/offmap/aerostat/inside/xenoarch/chamber
name = "Xenoarchaeolegy Vent Chamber"
/area/offmap/aerostat/inside/genetics
name = "Genetics Lab"
icon_state = "grewhisqu"
/area/offmap/aerostat/inside/telesci
name = "Telescience Lab"
icon_state = "bluwhisqu"
/area/offmap/aerostat/inside/atmos
name = "Atmospherics"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/firingrange
name = "Firing Range"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/miscstorage
name = "Miscellaneous Storage"
icon_state = "orawhisqu"
/area/offmap/aerostat/inside/virology
name = "Virology Lab"
icon_state = "yelwhicir"
/area/offmap/aerostat/inside/south
name = "Miscellaneous Labs A"
icon_state = "blublasqu"
/area/offmap/aerostat/inside/south/b
name = "Miscellaneous Labs B"
icon_state = "blublasqu"
/area/offmap/aerostat/inside/powercontrol
name = "Power Control"
icon_state = "orawhicir"
/area/offmap/aerostat/inside/westhall
name = "West Hall"
icon_state = "orablacir"
/area/offmap/aerostat/inside/easthall
name = "East Hall"
icon_state = "orablacir"
/area/offmap/aerostat/inside/northchamb
name = "North Chamber"
icon_state = "orablacir"
/area/offmap/aerostat/inside/southchamb
name = "South Chamber"
icon_state = "orablacir"
/area/offmap/aerostat/inside/drillstorage
name = "Drill Storage"
icon_state = "orablacir"
/area/offmap/aerostat/inside/zorrenoffice
name = "Zorren Reception"
icon_state = "orablacir"
/area/offmap/aerostat/inside/lobby
name = "Lobby"
icon_state = "orablacir"
/area/offmap/aerostat/inside/xenobiolab
name = "Xenobiology Lab"
icon_state = "orablacir"
/area/offmap/aerostat/inside/airlock
name = "Airlock"
icon_state = "redwhicir"
/area/offmap/aerostat/inside/airlock/north
name = "North Airlock"
/area/offmap/aerostat/inside/airlock/east
name = "East Airlock"
/area/offmap/aerostat/inside/airlock/west
name = "West Airlock"
/area/offmap/aerostat/inside/airlock/south
name = "South Airlock"
/area/offmap/aerostat/inside/arm/ne
name = "North-East Solar Arm"
/area/offmap/aerostat/inside/arm/nw
name = "North-West Solar Arm"
/area/offmap/aerostat/inside/arm/se
name = "South-East Solar Arm"
/area/offmap/aerostat/inside/arm/sw
name = "South-West Solar Arm"
/area/offmap/aerostat/glassgetsitsownarea
name = "Aerostat Glass"
icon_state = "crew_quarters"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
dynamic_lighting = FALSE
/area/offmap/aerostat/surface/shuttleconsole
name = "Away Mission - Aerostat Surface Console"
icon_state = "explored"
dynamic_lighting = FALSE
requires_power = FALSE
+1 -5
View File
@@ -1,15 +1,11 @@
#if !defined(USING_MAP_DATUM)
#include "groundbase_areas.dm"
#include "groundbase_defines.dm"
#include "groundbase_shuttles.dm"
#include "groundbase_telecomms.dm"
#include "groundbase_things.dm"
#include "..\tether\tether_jobs.dm"
#include "groundbase_events.dm"
#include "groundbase_poi_stuff.dm"
#include "groundbase_wilds.dm"
#include "..\offmap_vr\common_offmaps.dm"
#include "groundbase_poi_maps.dm"
#include "..\~map_system\maps_vr.dm"
#ifndef AWAY_MISSION_TEST //Don't include these for just testing away missions
+10
View File
@@ -574,3 +574,13 @@
excluded |= /area/groundbase/level3/sw/open
excluded |= /area/groundbase/level3/escapepad
..()
/area/gb_mine/
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor
/area/gb_mine/unexplored
name = "Virgo 3c Underground"
icon_state = "unexplored"
/area/gb_mine/explored
name = "Virgo 3c Underground"
icon_state = "explored"
-61
View File
@@ -1,28 +1,3 @@
//Normal map defs
#define Z_LEVEL_GB_BOTTOM 1
#define Z_LEVEL_GB_MIDDLE 2
#define Z_LEVEL_GB_TOP 3
#define Z_LEVEL_GB_WILD_N 4
#define Z_LEVEL_GB_WILD_S 5
#define Z_LEVEL_GB_WILD_E 6
#define Z_LEVEL_GB_WILD_W 7
#define Z_LEVEL_CENTCOM 8
#define Z_LEVEL_MISC 9
#define Z_LEVEL_MINING 10
#define Z_LEVEL_BEACH 11
#define Z_LEVEL_BEACH_CAVE 12
#define Z_LEVEL_AEROSTAT 13
#define Z_LEVEL_AEROSTAT_SURFACE 14
#define Z_LEVEL_DEBRISFIELD 15
#define Z_LEVEL_FUELDEPOT 16
#define Z_LEVEL_OFFMAP1 17
#define Z_LEVEL_GATEWAY 18
#define Z_LEVEL_OM_ADVENTURE 19
#define Z_LEVEL_REDGATE 20
//Camera networks
#define NETWORK_HALLS "Halls"
/datum/map/groundbase/New()
..()
var/choice = pickweight(list(
@@ -297,16 +272,7 @@
Z_LEVEL_BEACH
)
/obj/effect/landmark/map_data/groundbase
height = 3
/obj/effect/overmap/visitable/sector/virgo3b
name = "Virgo 3B"
desc = "Full of phoron, and home to the NSB Adephagia."
scanner_desc = @{"[i]Registration[/i]: NSB Adephagia
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
known = TRUE
in_space = TRUE
@@ -323,34 +289,7 @@
extra_z_levels = list()
/obj/effect/overmap/visitable/sector/virgo3c
name = "Virgo 3C"
desc = "A small, volcanically active moon."
scanner_desc = @{"[i]Registration[/i]: NSB Rascal's Pass
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
known = TRUE
in_space = TRUE
icon = 'icons/obj/overmap.dmi'
icon_state = "lush"
skybox_icon = null
skybox_icon_state = null
skybox_pixel_x = 0
skybox_pixel_y = 0
initial_generic_waypoints = list("groundbase", "gb_excursion_pad","omship_axolotl")
initial_restricted_waypoints = list()
extra_z_levels = list(
Z_LEVEL_MINING,
Z_LEVEL_GB_WILD_N,
Z_LEVEL_GB_WILD_S,
Z_LEVEL_GB_WILD_E,
Z_LEVEL_GB_WILD_W
)
// For making the 6-in-1 holomap, we calculate some offsets
#define SHIP_MAP_SIZE 140 // Width and height of compiled in tether z levels.
-10
View File
@@ -39,13 +39,3 @@
/datum/random_map/noise/ore/mining/check_map_sanity()
return 1 //Totally random, but probably beneficial.
/area/gb_mine/
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor
/area/gb_mine/unexplored
name = "Virgo 3c Underground"
icon_state = "unexplored"
/area/gb_mine/explored
name = "Virgo 3c Underground"
icon_state = "explored"
+188
View File
@@ -0,0 +1,188 @@
#ifdef MAP_TEST
#include "pois/outdoors1.dmm"
#include "pois/outdoors2.dmm"
#include "pois/outdoors3.dmm"
#include "pois/outdoors4.dmm"
#include "pois/outdoors5.dmm"
#include "pois/outdoors6.dmm"
#include "pois/outdoors7.dmm"
#include "pois/outdoors8.dmm"
#include "pois/outdoors9.dmm"
#include "pois/outdoors10.dmm"
#include "pois/outdoors11.dmm"
#include "pois/outdoors12.dmm"
#include "pois/outdoors13.dmm"
#include "pois/outdoors14.dmm"
#include "pois/outdoors16.dmm"
#include "pois/cave1.dmm"
#include "pois/cave2.dmm"
#include "pois/cave3.dmm"
#include "pois/cave4.dmm"
#include "pois/cave5.dmm"
#include "pois/cave6.dmm"
#include "pois/cave7.dmm"
#include "pois/cave8.dmm"
#include "pois/cave9.dmm"
#include "pois/cave10.dmm"
#include "pois/cave11.dmm"
#include "pois/cave12.dmm"
#include "pois/cave13.dmm"
#include "pois/cave14.dmm"
#include "pois/cave15.dmm"
#include "pois/cave16.dmm"
#include "pois/cave17.dmm"
#include "pois/cave18.dmm"
#include "pois/cave19.dmm"
#include "pois/cave20.dmm"
#include "pois/cave21.dmm"
#include "pois/cave22.dmm"
#include "pois/cave23.dmm"
#include "pois/cave24.dmm"
#include "pois/cave25.dmm"
#include "pois/cave26.dmm"
#include "pois/cave27.dmm"
#include "pois/cave28.dmm"
#include "pois/cave29.dmm"
#include "pois/cave30.dmm"
#include "pois/cave31.dmm"
#include "pois/cave32.dmm"
#include "pois/cave33.dmm"
#include "pois/cave34.dmm"
#include "pois/cave35.dmm"
#include "pois/cave36.dmm"
#include "pois/cave37.dmm"
#include "pois/cave38.dmm"
#include "pois/cave39.dmm"
#include "pois/cave40.dmm"
#include "pois/cave41.dmm"
#include "pois/cave42.dmm"
#include "pois/cave43.dmm"
#include "pois/cave44.dmm"
#include "pois/cave45.dmm"
#include "pois/cave46.dmm"
#include "pois/cave47.dmm"
#include "pois/cave48.dmm"
#include "pois/cave49.dmm"
#include "pois/cave50.dmm"
#include "pois/cave51.dmm"
#include "pois/cave52.dmm"
#include "pois/cave53.dmm"
#include "pois/cave54.dmm"
#include "pois/cave1b.dmm"
#include "pois/cave2b.dmm"
#include "pois/cave3b.dmm"
#include "pois/cave4b.dmm"
#include "pois/cave5b.dmm"
#include "pois/cave6b.dmm"
#include "pois/cave7b.dmm"
#include "pois/cave8b.dmm"
#include "pois/cave9b.dmm"
#include "pois/cave10b.dmm"
#include "pois/cave11b.dmm"
#include "pois/cave12b.dmm"
#include "pois/cave13b.dmm"
#include "pois/cave14b.dmm"
#include "pois/cave15b.dmm"
#include "pois/cave16b.dmm"
#include "pois/cave17b.dmm"
#include "pois/cave18b.dmm"
#include "pois/cave19b.dmm"
#include "pois/cave20b.dmm"
#include "pois/cave21b.dmm"
#include "pois/cave22b.dmm"
#include "pois/cave23b.dmm"
#include "pois/cave24b.dmm"
#include "pois/cave25b.dmm"
#include "pois/cave26b.dmm"
#include "pois/cave27b.dmm"
#include "pois/cave28b.dmm"
#include "pois/cave29b.dmm"
#include "pois/cave30b.dmm"
#include "pois/cave31b.dmm"
#include "pois/cave32b.dmm"
#include "pois/cave33b.dmm"
#include "pois/cave34b.dmm"
#include "pois/cave35b.dmm"
#include "pois/cave36b.dmm"
#include "pois/cave37b.dmm"
#include "pois/cave38b.dmm"
#include "pois/cave39b.dmm"
#include "pois/cave40b.dmm"
#include "pois/cave41b.dmm"
#include "pois/cave42b.dmm"
#include "pois/cave43b.dmm"
#include "pois/cave44b.dmm"
#include "pois/cave45b.dmm"
#include "pois/cave46b.dmm"
#include "pois/cave47b.dmm"
#include "pois/cave48b.dmm"
#include "pois/cave49b.dmm"
#include "pois/cave1c.dmm"
#include "pois/cave2c.dmm"
#include "pois/cave3c.dmm"
#include "pois/cave4c.dmm"
#include "pois/cave5c.dmm"
#include "pois/cave6c.dmm"
#include "pois/cave7c.dmm"
#include "pois/cave8c.dmm"
#include "pois/cave9c.dmm"
#include "pois/cave10c.dmm"
#include "pois/cave11c.dmm"
#include "pois/cave12c.dmm"
#include "pois/cave13c.dmm"
#include "pois/cave14c.dmm"
#include "pois/cave15c.dmm"
#include "pois/cave16c.dmm"
#include "pois/cave17c.dmm"
#include "pois/cave18c.dmm"
#include "pois/cave19c.dmm"
#include "pois/cave20c.dmm"
#include "pois/cave21c.dmm"
#include "pois/cave22c.dmm"
#include "pois/cave23c.dmm"
#include "pois/cave24c.dmm"
#include "pois/cave25c.dmm"
#include "pois/cave26c.dmm"
#include "pois/cave27c.dmm"
#include "pois/cave28c.dmm"
#include "pois/cave29c.dmm"
#include "pois/cave30c.dmm"
#include "pois/cave31c.dmm"
#include "pois/cave32c.dmm"
#include "pois/cave33c.dmm"
#include "pois/cave34c.dmm"
#include "pois/cave35c.dmm"
#include "pois/cave36c.dmm"
#include "pois/cave37c.dmm"
#include "pois/cave38c.dmm"
#include "pois/cave39c.dmm"
#include "pois/cave40c.dmm"
#include "pois/cave41c.dmm"
#include "pois/cave42c.dmm"
#include "pois/cave43c.dmm"
#include "pois/cave44c.dmm"
#include "pois/cave45c.dmm"
#include "pois/cave46c.dmm"
#include "pois/cave47c.dmm"
#include "pois/cave48c.dmm"
#include "pois/cave49c.dmm"
#include "pois/cavething1.dmm"
#include "pois/cavething2.dmm"
#include "pois/cavething3.dmm"
#include "pois/cavething4.dmm"
#include "pois/cavething5.dmm"
#include "pois/cavething6.dmm"
#include "pois/cavething7.dmm"
#include "pois/cavething8.dmm"
#include "pois/cavething9.dmm"
#include "pois/cavething10.dmm"
#include "pois/cavething11.dmm"
#include "pois/cavething12.dmm"
#include "pois/cavething13.dmm"
#include "pois/cavething14.dmm"
#endif
-190
View File
@@ -1,193 +1,3 @@
#ifdef MAP_TEST
#include "pois/outdoors1.dmm"
#include "pois/outdoors2.dmm"
#include "pois/outdoors3.dmm"
#include "pois/outdoors4.dmm"
#include "pois/outdoors5.dmm"
#include "pois/outdoors6.dmm"
#include "pois/outdoors7.dmm"
#include "pois/outdoors8.dmm"
#include "pois/outdoors9.dmm"
#include "pois/outdoors10.dmm"
#include "pois/outdoors11.dmm"
#include "pois/outdoors12.dmm"
#include "pois/outdoors13.dmm"
#include "pois/outdoors14.dmm"
#include "pois/outdoors16.dmm"
#include "pois/cave1.dmm"
#include "pois/cave2.dmm"
#include "pois/cave3.dmm"
#include "pois/cave4.dmm"
#include "pois/cave5.dmm"
#include "pois/cave6.dmm"
#include "pois/cave7.dmm"
#include "pois/cave8.dmm"
#include "pois/cave9.dmm"
#include "pois/cave10.dmm"
#include "pois/cave11.dmm"
#include "pois/cave12.dmm"
#include "pois/cave13.dmm"
#include "pois/cave14.dmm"
#include "pois/cave15.dmm"
#include "pois/cave16.dmm"
#include "pois/cave17.dmm"
#include "pois/cave18.dmm"
#include "pois/cave19.dmm"
#include "pois/cave20.dmm"
#include "pois/cave21.dmm"
#include "pois/cave22.dmm"
#include "pois/cave23.dmm"
#include "pois/cave24.dmm"
#include "pois/cave25.dmm"
#include "pois/cave26.dmm"
#include "pois/cave27.dmm"
#include "pois/cave28.dmm"
#include "pois/cave29.dmm"
#include "pois/cave30.dmm"
#include "pois/cave31.dmm"
#include "pois/cave32.dmm"
#include "pois/cave33.dmm"
#include "pois/cave34.dmm"
#include "pois/cave35.dmm"
#include "pois/cave36.dmm"
#include "pois/cave37.dmm"
#include "pois/cave38.dmm"
#include "pois/cave39.dmm"
#include "pois/cave40.dmm"
#include "pois/cave41.dmm"
#include "pois/cave42.dmm"
#include "pois/cave43.dmm"
#include "pois/cave44.dmm"
#include "pois/cave45.dmm"
#include "pois/cave46.dmm"
#include "pois/cave47.dmm"
#include "pois/cave48.dmm"
#include "pois/cave49.dmm"
#include "pois/cave50.dmm"
#include "pois/cave51.dmm"
#include "pois/cave52.dmm"
#include "pois/cave53.dmm"
#include "pois/cave54.dmm"
#include "pois/cave1b.dmm"
#include "pois/cave2b.dmm"
#include "pois/cave3b.dmm"
#include "pois/cave4b.dmm"
#include "pois/cave5b.dmm"
#include "pois/cave6b.dmm"
#include "pois/cave7b.dmm"
#include "pois/cave8b.dmm"
#include "pois/cave9b.dmm"
#include "pois/cave10b.dmm"
#include "pois/cave11b.dmm"
#include "pois/cave12b.dmm"
#include "pois/cave13b.dmm"
#include "pois/cave14b.dmm"
#include "pois/cave15b.dmm"
#include "pois/cave16b.dmm"
#include "pois/cave17b.dmm"
#include "pois/cave18b.dmm"
#include "pois/cave19b.dmm"
#include "pois/cave20b.dmm"
#include "pois/cave21b.dmm"
#include "pois/cave22b.dmm"
#include "pois/cave23b.dmm"
#include "pois/cave24b.dmm"
#include "pois/cave25b.dmm"
#include "pois/cave26b.dmm"
#include "pois/cave27b.dmm"
#include "pois/cave28b.dmm"
#include "pois/cave29b.dmm"
#include "pois/cave30b.dmm"
#include "pois/cave31b.dmm"
#include "pois/cave32b.dmm"
#include "pois/cave33b.dmm"
#include "pois/cave34b.dmm"
#include "pois/cave35b.dmm"
#include "pois/cave36b.dmm"
#include "pois/cave37b.dmm"
#include "pois/cave38b.dmm"
#include "pois/cave39b.dmm"
#include "pois/cave40b.dmm"
#include "pois/cave41b.dmm"
#include "pois/cave42b.dmm"
#include "pois/cave43b.dmm"
#include "pois/cave44b.dmm"
#include "pois/cave45b.dmm"
#include "pois/cave46b.dmm"
#include "pois/cave47b.dmm"
#include "pois/cave48b.dmm"
#include "pois/cave49b.dmm"
#include "pois/cave1c.dmm"
#include "pois/cave2c.dmm"
#include "pois/cave3c.dmm"
#include "pois/cave4c.dmm"
#include "pois/cave5c.dmm"
#include "pois/cave6c.dmm"
#include "pois/cave7c.dmm"
#include "pois/cave8c.dmm"
#include "pois/cave9c.dmm"
#include "pois/cave10c.dmm"
#include "pois/cave11c.dmm"
#include "pois/cave12c.dmm"
#include "pois/cave13c.dmm"
#include "pois/cave14c.dmm"
#include "pois/cave15c.dmm"
#include "pois/cave16c.dmm"
#include "pois/cave17c.dmm"
#include "pois/cave18c.dmm"
#include "pois/cave19c.dmm"
#include "pois/cave20c.dmm"
#include "pois/cave21c.dmm"
#include "pois/cave22c.dmm"
#include "pois/cave23c.dmm"
#include "pois/cave24c.dmm"
#include "pois/cave25c.dmm"
#include "pois/cave26c.dmm"
#include "pois/cave27c.dmm"
#include "pois/cave28c.dmm"
#include "pois/cave29c.dmm"
#include "pois/cave30c.dmm"
#include "pois/cave31c.dmm"
#include "pois/cave32c.dmm"
#include "pois/cave33c.dmm"
#include "pois/cave34c.dmm"
#include "pois/cave35c.dmm"
#include "pois/cave36c.dmm"
#include "pois/cave37c.dmm"
#include "pois/cave38c.dmm"
#include "pois/cave39c.dmm"
#include "pois/cave40c.dmm"
#include "pois/cave41c.dmm"
#include "pois/cave42c.dmm"
#include "pois/cave43c.dmm"
#include "pois/cave44c.dmm"
#include "pois/cave45c.dmm"
#include "pois/cave46c.dmm"
#include "pois/cave47c.dmm"
#include "pois/cave48c.dmm"
#include "pois/cave49c.dmm"
#include "pois/cavething1.dmm"
#include "pois/cavething2.dmm"
#include "pois/cavething3.dmm"
#include "pois/cavething4.dmm"
#include "pois/cavething5.dmm"
#include "pois/cavething6.dmm"
#include "pois/cavething7.dmm"
#include "pois/cavething8.dmm"
#include "pois/cavething9.dmm"
#include "pois/cavething10.dmm"
#include "pois/cavething11.dmm"
#include "pois/cavething12.dmm"
#include "pois/cavething13.dmm"
#include "pois/cavething14.dmm"
#endif
/area/submap/groundbase/poi
name = "POI - Rascal's Pass"
icon = 'icons/turf/areas_vr.dmi'
@@ -0,0 +1,97 @@
/////EXPLOSHUTTL/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/gbexplo
name = "short jump console"
shuttle_tag = "Exploration Shuttle"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/gbexplo
name = "Exploration Shuttle"
desc = "A small shuttle from Rascal's Pass."
vessel_mass = 2500
vessel_size = SHIP_SIZE_TINY
shuttle = "Exploration Shuttle"
known = TRUE
/area/shuttle/groundbase/exploration
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Exploration Shuttle"
requires_power = 1
//////////////////////////////////////////////
/obj/effect/shuttle_landmark/premade/groundbase
name = "Rascal's Pass"
landmark_tag = "groundbase"
///////////////////////////////////////////////
//AXOLOTL
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/axolotl
name = "short jump console"
shuttle_tag = "Axolotl"
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/axolotl
name = "ITV Axolotl"
base_area = /area/submap/groundbase/wilderness/west
base_turf = /turf/simulated/floor/outdoors/sidewalk/slab/virgo3c
landmark_tag = "omship_axolotl"
// The 'ship'
/obj/effect/overmap/visitable/ship/landable/axolotl
name = "ITV Axolotl"
scanner_desc = @{"[i]Registration[/i]: ITV Axolotl
[i]Class[/i]: Corvette
[i]Transponder[/i]: Transmitting (CIV), non-hostile
[b]Notice[/b]: Multirole independent vessel"}
vessel_mass = 4500
vessel_size = SHIP_SIZE_LARGE
fore_dir = EAST
shuttle = "Axolotl"
known = TRUE
/area/shuttle/axolotl
name = "\improper Axolotl Cabin"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray"
requires_power = 1
/area/shuttle/axolotl_engineering
name = "\improper Axolotl Engineering"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "yellow"
requires_power = 1
/area/shuttle/axolotl_cockpit
name = "\improper Axolotl Cockpit"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "blue"
requires_power = 1
/area/shuttle/axolotl_q1
name = "\improper Axolotl Quarters 1"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray-p"
requires_power = 1
/area/shuttle/axolotl_q2
name = "\improper Axolotl Quarters 2"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray-s"
requires_power = 1
/area/shuttle/axolotl_galley
name = "\improper Axolotl Galley"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "dark-s"
requires_power = 1
/area/shuttle/axolotl_head
name = "\improper Axolotl Head"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "dark-p"
requires_power = 1
+21 -185
View File
@@ -1,20 +1,10 @@
// Supply shuttle
/datum/shuttle/autodock/ferry/supply/cargo/New(_name)
..()
move_direction = WEST
ceiling_type = /turf/simulated/floor/reinforced/virgo3c
/////EXPLOSHUTTL/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/gbexplo
name = "short jump console"
shuttle_tag = "Exploration Shuttle"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/gbexplo
name = "Exploration Shuttle"
desc = "A small shuttle from Rascal's Pass."
vessel_mass = 2500
vessel_size = SHIP_SIZE_TINY
shuttle = "Exploration Shuttle"
known = TRUE
// A shuttle lateloader landmark
/datum/shuttle/autodock/overmap/gbexplo
name = "Exploration Shuttle"
current_location = "gb_excursion_pad"
@@ -23,55 +13,28 @@
fuel_consumption = 1
move_direction = NORTH
/area/shuttle/groundbase/exploration
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Exploration Shuttle"
requires_power = 1
//AXOLOTL
/datum/shuttle/autodock/overmap/axolotl
name = "Axolotl"
current_location = "omship_axolotl"
docking_controller_tag = "axolotl_docking"
shuttle_area = list(/area/shuttle/axolotl,/area/shuttle/axolotl_cockpit,/area/shuttle/axolotl_engineering,/area/shuttle/axolotl_q1,/area/shuttle/axolotl_q2,/area/shuttle/axolotl_galley,/area/shuttle/axolotl_head)
defer_initialisation = TRUE //We're not loaded until an admin does it
fuel_consumption = 5
ceiling_type = /turf/simulated/floor/reinforced/airless
//////////////////////////////////////////////
// Supply shuttle
/datum/shuttle/autodock/ferry/supply/cargo
name = "Supply"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/supply
warmup_time = 10
landmark_offsite = "supply_cc"
landmark_station = "supply_station"
docking_controller_tag = "supply_shuttle"
flags = SHUTTLE_FLAGS_PROCESS|SHUTTLE_FLAGS_SUPPLY
move_direction = WEST
ceiling_type = /turf/simulated/floor/reinforced/virgo3c
////////////////////////////////////////////////
/obj/effect/shuttle_landmark/premade/groundbase
name = "Rascal's Pass"
landmark_tag = "groundbase"
///////////////////////////////////////////////
/obj/effect/shuttle_landmark/shuttle_initializer/axolotl/New(loc, ...)
shuttle_type = /datum/shuttle/autodock/overmap/axolotl
..()
// Escape shuttle
/datum/shuttle/autodock/ferry/emergency/escape
name = "Escape"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/escape
warmup_time = 10
landmark_offsite = "escape_cc"
landmark_station = "escape_station"
landmark_transition = "escape_transit"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = EAST
/datum/shuttle/autodock/ferry/emergency
var/frequency = 1380 // Why this frequency? BECAUSE! Thats what someone decided once.
var/datum/radio_frequency/radio_connection
/datum/shuttle/autodock/ferry/emergency/escape/New()
..()
move_direction = EAST
/datum/shuttle/autodock/ferry/emergency/New()
radio_connection = radio_controller.add_object(src, frequency, null)
..()
move_direction = EAST
/datum/shuttle/autodock/ferry/emergency/dock()
..()
@@ -95,130 +58,3 @@
return radio_connection.post_signal(src, signal, filter)
else
qdel(signal)
//////////////////////////////////////////////
/////Virgo Flyer/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/ccboat
name = "Virgo Flyer control console"
shuttle_tag = "Virgo Flyer"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/ccboat
name = "NTV Virgo Flyer"
desc = "A small shuttle from Central Command."
vessel_mass = 1000
vessel_size = SHIP_SIZE_TINY
shuttle = "Virgo Flyer"
known = TRUE
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/ccboat
name = "Central Command Shuttlepad"
base_area = /area/shuttle/centcom/ccbay
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "cc_shuttlepad"
docking_controller = "cc_landing_pad"
shuttle_type = /datum/shuttle/autodock/overmap/ccboat
/datum/shuttle/autodock/overmap/ccboat
name = "Virgo Flyer"
current_location = "cc_shuttlepad"
docking_controller_tag = "ccboat"
shuttle_area = /area/shuttle/ccboat
fuel_consumption = 0
defer_initialisation = TRUE
/area/shuttle/ccboat
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Virgo Flyer"
requires_power = 0
/area/shuttle/centcom/ccbay
icon = 'icons/turf/areas_vr.dmi'
icon_state = "bluwhisqu"
name = "Central Command Shuttle Bay"
requires_power = 0
dynamic_lighting = 0
//AXOLOTL
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/axolotl
name = "short jump console"
shuttle_tag = "Axolotl"
// The 'shuttle'
/datum/shuttle/autodock/overmap/axolotl
name = "Axolotl"
current_location = "omship_axolotl"
docking_controller_tag = "axolotl_docking"
shuttle_area = list(/area/shuttle/axolotl,/area/shuttle/axolotl_cockpit,/area/shuttle/axolotl_engineering,/area/shuttle/axolotl_q1,/area/shuttle/axolotl_q2,/area/shuttle/axolotl_galley,/area/shuttle/axolotl_head)
defer_initialisation = TRUE //We're not loaded until an admin does it
fuel_consumption = 5
ceiling_type = /turf/simulated/floor/reinforced/airless
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/axolotl
name = "ITV Axolotl"
base_area = /area/submap/groundbase/wilderness/west
base_turf = /turf/simulated/floor/outdoors/sidewalk/slab/virgo3c
landmark_tag = "omship_axolotl"
shuttle_type = /datum/shuttle/autodock/overmap/axolotl
// The 'ship'
/obj/effect/overmap/visitable/ship/landable/axolotl
name = "ITV Axolotl"
scanner_desc = @{"[i]Registration[/i]: ITV Axolotl
[i]Class[/i]: Corvette
[i]Transponder[/i]: Transmitting (CIV), non-hostile
[b]Notice[/b]: Multirole independent vessel"}
vessel_mass = 4500
vessel_size = SHIP_SIZE_LARGE
fore_dir = EAST
shuttle = "Axolotl"
known = TRUE
/area/shuttle/axolotl
name = "\improper Axolotl Cabin"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray"
requires_power = 1
/area/shuttle/axolotl_engineering
name = "\improper Axolotl Engineering"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "yellow"
requires_power = 1
/area/shuttle/axolotl_cockpit
name = "\improper Axolotl Cockpit"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "blue"
requires_power = 1
/area/shuttle/axolotl_q1
name = "\improper Axolotl Quarters 1"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray-p"
requires_power = 1
/area/shuttle/axolotl_q2
name = "\improper Axolotl Quarters 2"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "gray-s"
requires_power = 1
/area/shuttle/axolotl_galley
name = "\improper Axolotl Galley"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "dark-s"
requires_power = 1
/area/shuttle/axolotl_head
name = "\improper Axolotl Head"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "dark-p"
requires_power = 1
@@ -0,0 +1,52 @@
// #### Hub ####
/obj/machinery/telecomms/hub/preset/groundbase
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"groundbase_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/groundbase
id = "groundbase_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/groundbase
id = "groundbase_tx"
/obj/machinery/telecomms/bus/preset_two/groundbase
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/groundbase
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/groundbase/command/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/groundbase/command/tcomms/entrance
name = "\improper Telecomms Teleporter"
/area/groundbase/command/tcomms/foyer
name = "\improper Telecomms Foyer"
/area/groundbase/command/tcomms/storage
name = "\improper Telecomms Storage"
/area/groundbase/command/tcomms/computer
name = "\improper Telecomms Control Room"
/area/groundbase/command/tcomms/chamber
name = "\improper Telecomms Central Compartment"
flags = BLUE_SHIELDED
/obj/item/bluespaceradio/groundbase_prelinked
name = "bluespace radio (Rascal's Pass)"
handset = /obj/item/radio/bluespacehandset/linked/groundbase_prelinked
/obj/item/radio/bluespacehandset/linked/groundbase_prelinked
bs_tx_preload_id = "groundbase_rx" //Transmit to a receiver
bs_rx_preload_id = "groundbase_tx" //Recveive from a transmitter
+4 -67
View File
@@ -1,63 +1,10 @@
// ### Preset machines ###
// #### Relays ####
// Telecomms doesn't know about connected z-levels, so we need relays even for the other surface levels.
/obj/machinery/telecomms/relay/preset/station
/obj/machinery/telecomms/relay/preset/station/New()
..()
id = "groundbase Relay"
autolinkers = list("groundbase_relay")
// #### Hub ####
/obj/machinery/telecomms/hub/preset/groundbase
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"groundbase_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/groundbase
id = "groundbase_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/groundbase
id = "groundbase_tx"
/obj/machinery/telecomms/bus/preset_two/groundbase
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/groundbase
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/groundbase/command/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/groundbase/command/tcomms/entrance
name = "\improper Telecomms Teleporter"
/area/groundbase/command/tcomms/foyer
name = "\improper Telecomms Foyer"
/area/groundbase/command/tcomms/storage
name = "\improper Telecomms Storage"
/area/groundbase/command/tcomms/computer
name = "\improper Telecomms Control Room"
/area/groundbase/command/tcomms/chamber
name = "\improper Telecomms Central Compartment"
flags = BLUE_SHIELDED
/area/maintenance/substation/tcomms
name = "\improper Telecomms Substation"
/area/maintenance/station/tcomms
name = "\improper Telecoms Maintenance"
/datum/map/groundbase/default_internal_channels()
return list(
num2text(PUB_FREQ) = list(),
@@ -76,18 +23,8 @@
num2text(EXP_FREQ) = list(access_explorer)
)
/obj/item/multitool/station_buffered
name = "pre-linked multitool (Rascal's Pass hub)"
desc = "This multitool has already been linked to the groundbase telecomms hub and can be used to configure one (1) relay."
/obj/item/multitool/station_buffered/Initialize()
. = ..()
name = "pre-linked multitool (Rascal's Pass hub)"
desc = "This multitool has already been linked to the groundbase telecomms hub and can be used to configure one (1) relay."
buffer = locate(/obj/machinery/telecomms/hub/preset/groundbase)
/obj/item/bluespaceradio/groundbase_prelinked
name = "bluespace radio (Rascal's Pass)"
handset = /obj/item/radio/bluespacehandset/linked/groundbase_prelinked
/obj/item/radio/bluespacehandset/linked/groundbase_prelinked
bs_tx_preload_id = "groundbase_rx" //Transmit to a receiver
bs_rx_preload_id = "groundbase_tx" //Recveive from a transmitter
+3 -97
View File
@@ -1,114 +1,20 @@
/obj/effect/step_trigger/teleporter/to_mining
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
/obj/effect/step_trigger/teleporter/to_mining/Initialize()
. = ..()
teleport_x = x
teleport_y = y ++
teleport_z = Z_LEVEL_MINING
/obj/effect/step_trigger/teleporter/from_mining
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
/obj/effect/step_trigger/teleporter/from_mining/Initialize()
. = ..()
teleport_x = x
teleport_y = y --
teleport_z = Z_LEVEL_GB_BOTTOM
/turf/unsimulated/mineral/virgo3b
blocks_air = TRUE
/turf/unsimulated/floor/steel
icon = 'icons/turf/flooring/tiles_vr.dmi'
icon_state = "steel"
// Some turfs to make floors look better in centcom tram station.
/turf/unsimulated/floor/techfloor_grid
name = "floor"
icon = 'icons/turf/flooring/techfloor.dmi'
icon_state = "techfloor_grid"
/turf/unsimulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
/turf/unsimulated/wall/transit
icon = 'icons/turf/transit_vr.dmi'
/turf/unsimulated/floor/transit
icon = 'icons/turf/transit_vr.dmi'
/obj/effect/floor_decal/transit/orange
icon = 'icons/turf/transit_vr.dmi'
icon_state = "transit_techfloororange_edges"
/obj/effect/transit/light
icon = 'icons/turf/transit_128.dmi'
icon_state = "tube1-2"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/grass/sif)
/turf/simulated/floor/outdoors/grass/sif
turf_layers = list(
/turf/simulated/floor/outdoors/rocks/virgo3b,
/turf/simulated/floor/outdoors/dirt/virgo3b
)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/dirt)
/turf/simulated/floor/outdoors/dirt/virgo3b
icon = 'icons/turf/flooring/asteroid.dmi'
icon_state = "asteroid"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
/turf/simulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
can_be_plated = FALSE
var/area/shock_area = /area/centcom/terminal/tramfluff
/turf/simulated/floor/maglev/Initialize()
. = ..()
shock_area = locate(shock_area)
// Walking on maglev tracks will shock you! Horray!
/turf/simulated/floor/maglev/Entered(var/atom/movable/AM, var/atom/old_loc)
if(isliving(AM) && !(AM.is_incorporeal()) && prob(50))
track_zap(AM)
/turf/simulated/floor/maglev/attack_hand(var/mob/user)
if(prob(75))
track_zap(user)
/turf/simulated/floor/maglev/proc/track_zap(var/mob/living/user)
if (!istype(user)) return
if (electrocute_mob(user, shock_area, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
/turf/simulated/floor/maglev/New(loc, ...)
..()
shock_area = /area/centcom/terminal/tramfluff
// Shelter Capsule extra restrictions
/datum/map_template/shelter/New()
..()
banned_areas += list(/area/groundbase/level3/escapepad)
// Landmarks for wildlife events
/obj/effect/landmark/wildlife/water
name = "aquatic wildlife"
wildlife_type = 1
/obj/effect/landmark/wildlife/forest
name = "roaming wildlife"
wildlife_type = 2
+10
View File
@@ -66,6 +66,16 @@
mappath = "maps/expedition_vr/aerostat/surface.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat_surface
/datum/map_template/virgo2
name = "Surface Content - Virgo 2"
desc = "For seeding submaps on Virgo 2"
allow_duplicates = FALSE
/datum/random_map/noise/ore/virgo2
descriptor = "virgo 2 ore distribution map"
deep_val = 0.2
rare_val = 0.1
/datum/map_template/common_lateload/away_aerostat_surface/on_map_loaded(z)
. = ..()
seed_submaps(list(Z_LEVEL_AEROSTAT_SURFACE), 120, /area/offmap/aerostat/surface/unexplored, /datum/map_template/virgo2)
+1 -4
View File
@@ -1,15 +1,12 @@
#if !defined(USING_MAP_DATUM)
#include "stellar_delight_areas.dm"
#include "stellar_delight_defines.dm"
#include "stellar_delight_jobs.dm"
#include "stellar_delight_shuttle_defs.dm"
#include "stellar_delight_shuttles.dm"
#include "stellar_delight_telecomms.dm"
#include "stellar_delight_things.dm"
#include "stellar_delight_turfs.dm"
#include "stellar_delight_events.dm"
#include "..\offmap_vr\common_offmaps.dm"
#include "..\tether\tether_jobs.dm"
#ifndef AWAY_MISSION_TEST //Don't include these for just testing away missions
#include "stellar_delight1.dmm"
+46 -51
View File
@@ -1,25 +1,3 @@
//Normal map defs
#define Z_LEVEL_SHIP_LOW 1
#define Z_LEVEL_SHIP_MID 2
#define Z_LEVEL_SHIP_HIGH 3
#define Z_LEVEL_CENTCOM 4
#define Z_LEVEL_MISC 5
#define Z_LEVEL_SPACE_ROCKS 6
#define Z_LEVEL_BEACH 7
#define Z_LEVEL_BEACH_CAVE 8
#define Z_LEVEL_AEROSTAT 9
#define Z_LEVEL_AEROSTAT_SURFACE 10
#define Z_LEVEL_DEBRISFIELD 11
#define Z_LEVEL_FUELDEPOT 12
#define Z_LEVEL_OVERMAP 13
#define Z_LEVEL_OFFMAP1 14
#define Z_LEVEL_GATEWAY 15
#define Z_LEVEL_OM_ADVENTURE 16
#define Z_LEVEL_REDGATE 17
//Camera networks
#define NETWORK_HALLS "Halls"
/datum/map/stellar_delight/New()
..()
var/choice = pickweight(list(
@@ -234,35 +212,6 @@
Z_LEVEL_BEACH
)
/obj/effect/landmark/map_data/stellar_delight
height = 3
/obj/effect/overmap/visitable/ship/stellar_delight
name = "NRV Stellar Delight"
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "stellar_delight_g"
desc = "Spacefaring vessel. Friendly IFF detected."
scanner_desc = @{"[i]Registration[/i]: NRV Stellar Delight
[i]Class[/i]: Nanotrasen Response Vessel
[i]Transponder[/i]: Transmitting (CIV), non-hostile"
[b]Notice[/b]: A response vessel registered to Nanotrasen."}
vessel_mass = 25000
vessel_size = SHIP_SIZE_LARGE
initial_generic_waypoints = list("starboard_shuttlepad","port_shuttlepad","sd-1-23-54","sd-1-67-15","sd-1-70-130","sd-1-115-85","sd-2-25-98","sd-2-117-98","sd-3-22-78","sd-3-36-33","sd-3-104-33","sd-3-120-78")
initial_restricted_waypoints = list("Exploration Shuttle" = list("sd_explo"), "Mining Shuttle" = list("sd_mining"))
levels_for_distress = list(Z_LEVEL_OFFMAP1, Z_LEVEL_BEACH, Z_LEVEL_AEROSTAT, Z_LEVEL_DEBRISFIELD, Z_LEVEL_FUELDEPOT)
unowned_areas = list(/area/shuttle/sdboat)
known = TRUE
start_x = 2
start_y = 2
fore_dir = NORTH
skybox_icon = 'stelardelightskybox.dmi'
skybox_icon_state = "skybox"
skybox_pixel_x = 450
skybox_pixel_y = 200
/obj/effect/overmap/visitable/ship/stellar_delight/build_skybox_representation()
..()
if(!cached_skybox_image)
@@ -384,3 +333,49 @@
desc = "The Virgo 2 Aerostat away mission."
mappath = "maps/expedition_vr/aerostat/aerostat_science_outpost.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat
/////FOR CENTCOMM (at least)/////
/obj/effect/overmap/visitable/sector/virgo3b
known = TRUE
in_space = TRUE
initial_generic_waypoints = list("sr-c","sr-n","sr-s")
initial_restricted_waypoints = list("Central Command Shuttlepad" = list("cc_shuttlepad"))
extra_z_levels = list(Z_LEVEL_SPACE_ROCKS)
/////SD Starts at V3b to pick up crew refuel and repair (And to make sure it doesn't spawn on hazards)
/obj/effect/overmap/visitable/sector/virgo3b/Initialize()
. = ..()
for(var/obj/effect/overmap/visitable/ship/stellar_delight/sd in world)
sd.forceMove(loc, SOUTH)
return
/obj/effect/overmap/visitable/sector/virgo3b/Crossed(var/atom/movable/AM)
. = ..()
announce_atc(AM,going = FALSE)
/obj/effect/overmap/visitable/sector/virgo3b/Uncrossed(var/atom/movable/AM)
. = ..()
announce_atc(AM,going = TRUE)
/obj/effect/overmap/visitable/sector/virgo3b/proc/announce_atc(var/atom/movable/AM, var/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
atc.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))
atc.msg(message)
/obj/effect/overmap/visitable/sector/virgo3b/get_space_zlevels()
return list(Z_LEVEL_SPACE_ROCKS)
@@ -1,57 +1,5 @@
////////////////SHUTTLE TIME///////////////////
//////////////////////////////////////////////////////////////
// Escape shuttle and pods
/datum/shuttle/autodock/ferry/emergency/escape
name = "Escape"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/escape
warmup_time = 10
landmark_offsite = "escape_cc"
landmark_station = "escape_station"
landmark_transition = "escape_transit"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = SOUTH
docking_controller_tag = "escape_shuttle"
/datum/shuttle/autodock/ferry/escape_pod/portescape
name = "Port Escape Pod"
location = FERRY_LOCATION_STATION
shuttle_area = /area/stellardelight/deck2/portescape
warmup_time = 0
landmark_station = "port_ship_berth"
landmark_offsite = "port_escape_cc"
landmark_transition = "port_escape_transit"
docking_controller_tag = "port_escape_pod"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = EAST
/datum/shuttle/autodock/ferry/escape_pod/starboardescape
name = "Starboard Escape Pod"
location = FERRY_LOCATION_STATION
shuttle_area = /area/stellardelight/deck2/starboardescape
warmup_time = 0
landmark_station = "starboard_ship_berth"
landmark_offsite = "starboard_escape_cc"
landmark_transition = "starboard_escape_transit"
docking_controller_tag = "starboard_escape_pod"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = WEST
//////////////////////////////////////////////////////////////
// Supply shuttle
/datum/shuttle/autodock/ferry/supply/cargo
name = "Supply"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/supply
warmup_time = 10
landmark_offsite = "supply_cc"
landmark_station = "supply_station"
docking_controller_tag = "supply_shuttle"
flags = SHUTTLE_FLAGS_PROCESS|SHUTTLE_FLAGS_SUPPLY
move_direction = WEST
/////EXPLORATION SHUTTLE
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/stellardelight/exploration
@@ -67,17 +15,6 @@
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "sd_explo"
docking_controller = "explodocker_bay"
shuttle_type = /datum/shuttle/autodock/overmap/exboat
// The 'shuttle'
/datum/shuttle/autodock/overmap/exboat
name = "Exploration Shuttle"
current_location = "sd_explo"
docking_controller_tag = "explodocker"
shuttle_area = /area/stellardelight/deck1/exploshuttle
fuel_consumption = 0
defer_initialisation = TRUE
range = 1
/////MINING SHUTTLE
// The shuttle's 'shuttle' computer
@@ -94,17 +31,6 @@
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "sd_mining"
docking_controller = "miningdocker_bay"
shuttle_type = /datum/shuttle/autodock/overmap/mineboat
// The 'shuttle'
/datum/shuttle/autodock/overmap/mineboat
name = "Mining Shuttle"
current_location = "sd_mining"
docking_controller_tag = "miningdocker"
shuttle_area = /area/stellardelight/deck1/miningshuttle
fuel_consumption = 0
defer_initialisation = TRUE
range = 1
/////STARSTUFF/////
// The shuttle's 'shuttle' computer
@@ -128,15 +54,6 @@
base_turf = /turf/simulated/floor/reinforced/airless
landmark_tag = "port_shuttlepad"
docking_controller = "sd_port_landing"
shuttle_type = /datum/shuttle/autodock/overmap/sdboat
/datum/shuttle/autodock/overmap/sdboat
name = "Starstuff"
current_location = "port_shuttlepad"
docking_controller_tag = "sdboat_docker"
shuttle_area = list(/area/shuttle/sdboat/fore,/area/shuttle/sdboat/aft)
fuel_consumption = 1
defer_initialisation = TRUE
/area/shuttle/sdboat/fore
icon = 'icons/turf/areas_vr.dmi'
@@ -150,51 +67,6 @@
name = "Starstuff Crew Compartment"
requires_power = 1
/////Virgo Flyer/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/ccboat
name = "Virgo Flyer control console"
shuttle_tag = "Virgo Flyer"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/ccboat
name = "NTV Virgo Flyer"
desc = "A small shuttle from Central Command."
vessel_mass = 1000
vessel_size = SHIP_SIZE_TINY
shuttle = "Virgo Flyer"
known = TRUE
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/ccboat
name = "Central Command Shuttlepad"
base_area = /area/shuttle/centcom/ccbay
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "cc_shuttlepad"
docking_controller = "cc_landing_pad"
shuttle_type = /datum/shuttle/autodock/overmap/ccboat
/datum/shuttle/autodock/overmap/ccboat
name = "Virgo Flyer"
current_location = "cc_shuttlepad"
docking_controller_tag = "ccboat"
shuttle_area = /area/shuttle/ccboat
fuel_consumption = 0
defer_initialisation = TRUE
/area/shuttle/ccboat
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Virgo Flyer"
requires_power = 0
/area/shuttle/centcom/ccbay
icon = 'icons/turf/areas_vr.dmi'
icon_state = "bluwhisqu"
name = "Central Command Shuttle Bay"
requires_power = 0
dynamic_lighting = 0
/////LANDING LANDMARKS/////
/obj/effect/shuttle_landmark/premade/sd/deck1/portairlock
name = "Near Deck 1 Port Airlock"
@@ -231,65 +103,3 @@
/obj/item/paper/dockingcodes/sd
name = "Stellar Delight Docking Codes"
codes_from_z = Z_LEVEL_SHIP_LOW
/////FOR CENTCOMM (at least)/////
/obj/effect/overmap/visitable/sector/virgo3b
name = "Virgo 3B"
desc = "Full of phoron, and home to the NSB Adephagia."
scanner_desc = @{"[i]Registration[/i]: NSB Adephagia
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
known = TRUE
in_space = TRUE
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "virgo3b"
skybox_icon = 'icons/skybox/virgo3b.dmi'
skybox_icon_state = "small"
skybox_pixel_x = 0
skybox_pixel_y = 0
initial_generic_waypoints = list("sr-c","sr-n","sr-s")
initial_restricted_waypoints = list("Central Command Shuttlepad" = list("cc_shuttlepad"))
extra_z_levels = list(Z_LEVEL_SPACE_ROCKS)
var/mob_announce_cooldown = 0
/////SD Starts at V3b to pick up crew refuel and repair (And to make sure it doesn't spawn on hazards)
/obj/effect/overmap/visitable/sector/virgo3b/Initialize()
. = ..()
for(var/obj/effect/overmap/visitable/ship/stellar_delight/sd in world)
sd.forceMove(loc, SOUTH)
return
/obj/effect/overmap/visitable/sector/virgo3b/Crossed(var/atom/movable/AM)
. = ..()
announce_atc(AM,going = FALSE)
/obj/effect/overmap/visitable/sector/virgo3b/Uncrossed(var/atom/movable/AM)
. = ..()
announce_atc(AM,going = TRUE)
/obj/effect/overmap/visitable/sector/virgo3b/proc/announce_atc(var/atom/movable/AM, var/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
atc.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))
atc.msg(message)
/obj/effect/overmap/visitable/sector/virgo3b/get_space_zlevels()
return list(Z_LEVEL_SPACE_ROCKS)
@@ -0,0 +1,68 @@
//////////////////////////////////////////////////////////////
// Escape shuttle and pods
/datum/shuttle/autodock/ferry/escape_pod/portescape
name = "Port Escape Pod"
location = FERRY_LOCATION_STATION
shuttle_area = /area/stellardelight/deck2/portescape
warmup_time = 0
landmark_station = "port_ship_berth"
landmark_offsite = "port_escape_cc"
landmark_transition = "port_escape_transit"
docking_controller_tag = "port_escape_pod"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = EAST
/datum/shuttle/autodock/ferry/escape_pod/starboardescape
name = "Starboard Escape Pod"
location = FERRY_LOCATION_STATION
shuttle_area = /area/stellardelight/deck2/starboardescape
warmup_time = 0
landmark_station = "starboard_ship_berth"
landmark_offsite = "starboard_escape_cc"
landmark_transition = "starboard_escape_transit"
docking_controller_tag = "starboard_escape_pod"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = WEST
/////EXPLORATION SHUTTLE
/datum/shuttle/autodock/overmap/exboat
name = "Exploration Shuttle"
current_location = "sd_explo"
docking_controller_tag = "explodocker"
shuttle_area = /area/stellardelight/deck1/exploshuttle
fuel_consumption = 0
defer_initialisation = TRUE
range = 1
/obj/effect/shuttle_landmark/shuttle_initializer/exploration/New(loc, ...)
shuttle_type = /datum/shuttle/autodock/overmap/exboat
..()
/datum/shuttle/autodock/overmap/mineboat
name = "Mining Shuttle"
current_location = "sd_mining"
docking_controller_tag = "miningdocker"
shuttle_area = /area/stellardelight/deck1/miningshuttle
fuel_consumption = 0
defer_initialisation = TRUE
range = 1
/obj/effect/shuttle_landmark/shuttle_initializer/mining/New(loc, ...)
shuttle_type = /datum/shuttle/autodock/overmap/mineboat
..()
/datum/shuttle/autodock/overmap/sdboat
name = "Starstuff"
current_location = "port_shuttlepad"
docking_controller_tag = "sdboat_docker"
shuttle_area = list(/area/shuttle/sdboat/fore,/area/shuttle/sdboat/aft)
fuel_consumption = 1
defer_initialisation = TRUE
/obj/effect/shuttle_landmark/shuttle_initializer/sdboat/New(loc, ...)
shuttle_type = /datum/shuttle/autodock/overmap/sdboat
..()
/obj/item/paper/dockingcodes/sd/New(newloc, text, title)
..()
codes_from_z = Z_LEVEL_SHIP_LOW
@@ -0,0 +1,57 @@
// #### Hub ####
/obj/machinery/telecomms/hub/preset/sd
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"sd_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/sd
id = "sd_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/sd
id = "sd_tx"
/obj/machinery/telecomms/bus/preset_two/sd
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/sd
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/sd/surfacebase/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/sd/surfacebase/tcomms/entrance
name = "\improper Telecomms Teleporter"
icon_state = "tcomsatentrance"
/area/sd/surfacebase/tcomms/foyer
name = "\improper Telecomms Foyer"
icon_state = "tcomsatfoyer"
/area/sd/surfacebase/tcomms/storage
name = "\improper Telecomms Storage"
icon_state = "tcomsatwest"
/area/sd/surfacebase/tcomms/computer
name = "\improper Telecomms Control Room"
icon_state = "tcomsatcomp"
/area/sd/surfacebase/tcomms/chamber
name = "\improper Telecomms Central Compartment"
icon_state = "tcomsatcham"
flags = BLUE_SHIELDED
/obj/item/bluespaceradio/sd_prelinked
name = "bluespace radio (Stellar Delight)"
handset = /obj/item/radio/bluespacehandset/linked/sd_prelinked
/obj/item/radio/bluespacehandset/linked/sd_prelinked
bs_tx_preload_id = "sd_rx" //Transmit to a receiver
bs_rx_preload_id = "sd_tx" //Recveive from a transmitter
@@ -1,68 +1,10 @@
// ### Preset machines ###
// #### Relays ####
// Telecomms doesn't know about connected z-levels, so we need relays even for the other surface levels.
/obj/machinery/telecomms/relay/preset/station
/obj/machinery/telecomms/relay/preset/station/New()
..()
id = "SD Relay"
autolinkers = list("sd_relay")
// #### Hub ####
/obj/machinery/telecomms/hub/preset/sd
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"sd_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/sd
id = "sd_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/sd
id = "sd_tx"
/obj/machinery/telecomms/bus/preset_two/sd
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/sd
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/sd/surfacebase/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/sd/surfacebase/tcomms/entrance
name = "\improper Telecomms Teleporter"
icon_state = "tcomsatentrance"
/area/sd/surfacebase/tcomms/foyer
name = "\improper Telecomms Foyer"
icon_state = "tcomsatfoyer"
/area/sd/surfacebase/tcomms/storage
name = "\improper Telecomms Storage"
icon_state = "tcomsatwest"
/area/sd/surfacebase/tcomms/computer
name = "\improper Telecomms Control Room"
icon_state = "tcomsatcomp"
/area/sd/surfacebase/tcomms/chamber
name = "\improper Telecomms Central Compartment"
icon_state = "tcomsatcham"
flags = BLUE_SHIELDED
/area/maintenance/substation/tcomms
name = "\improper Telecomms Substation"
/area/maintenance/station/tcomms
name = "\improper Telecoms Maintenance"
/datum/map/sd/default_internal_channels()
return list(
num2text(PUB_FREQ) = list(),
@@ -81,18 +23,8 @@
num2text(EXP_FREQ) = list(access_explorer)
)
/obj/item/multitool/station_buffered
name = "pre-linked multitool (sd hub)"
desc = "This multitool has already been linked to the SD telecomms hub and can be used to configure one (1) relay."
/obj/item/multitool/station_buffered/Initialize()
. = ..()
name = "pre-linked multitool (sd hub)"
desc = "This multitool has already been linked to the SD telecomms hub and can be used to configure one (1) relay."
buffer = locate(/obj/machinery/telecomms/hub/preset/sd)
/obj/item/bluespaceradio/sd_prelinked
name = "bluespace radio (Stellar Delight)"
handset = /obj/item/radio/bluespacehandset/linked/sd_prelinked
/obj/item/radio/bluespacehandset/linked/sd_prelinked
bs_tx_preload_id = "sd_rx" //Transmit to a receiver
bs_rx_preload_id = "sd_tx" //Recveive from a transmitter
+1 -178
View File
@@ -1,180 +1,3 @@
/obj/machinery/camera/network/halls
network = list(NETWORK_HALLS)
/area/tether/surfacebase/tram
name = "\improper Tram Station"
icon_state = "dk_yellow"
/turf/simulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
can_be_plated = FALSE
var/area/shock_area = /area/tether/surfacebase/tram
/turf/simulated/floor/maglev/Initialize()
. = ..()
shock_area = locate(shock_area)
// Walking on maglev tracks will shock you! Horray!
/turf/simulated/floor/maglev/Entered(var/atom/movable/AM, var/atom/old_loc)
if(isliving(AM) && !(AM.is_incorporeal()) && prob(50))
track_zap(AM)
/turf/simulated/floor/maglev/attack_hand(var/mob/user)
if(prob(75))
track_zap(user)
/turf/simulated/floor/maglev/proc/track_zap(var/mob/living/user)
if (!istype(user)) return
if (electrocute_mob(user, shock_area, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
/obj/item/paper/sdshield
name = "ABOUT THE SHIELD GENERATOR"
info = "<H1>ABOUT THE SHIELD GENERATOR</H1><BR><BR>If you&#39;re up here you are more than likely worried about hitting rocks or some other such thing. It is good to worry about such things as that is an inevitability.<BR><BR>The Stellar Delight is a rather compact vessel, so a setting of 55 to the range will just barely cover her aft. <BR><BR>It is recommended that you turn off all of the different protection types except multi dimensional warp and whatever it is you&#39;re worried about running into. (probably meteors (hyperkinetic)). <BR><BR>With only those two and all the other default settings, the shield uses more than 6 MW to run, which is more than the ship can ordinarily produce. AS SUCH, it is also recommended that you reduce the input cap to whatever you find reasonable (being as it defaults to 1 MW, which is the entirety of the stock power supply) and activate and configure the shield BEFORE you need it. <BR><BR>The shield takes some time to expand its range to the desired specifications, and on top of that, under the default low power setting, takes around 40 seconds to spool up. Once it is active, the fully charged internal capacitors will last for a few minutes before depleting fully. You can increase the passive energy use to decrease the spool up time, but it also uses the stored energy much faster, so, that is not recommended except in dire emergencies.<BR><BR>So, this shield is not intended to be run indefinitely, unless you seriously beef up the ship&#39;s engine and power supply.<BR><BR>Fortunately, if you&#39;ve got a good pilot, you shouldn&#39;t really need the shield generator except in rare cases and only for short distances. Still, it is a good idea to configure the shield to be ready before you need it.<BR><BR>Good luck out there - <I>Budly Gregington</I>"
/obj/item/book/manual/sd_guide
name = "Stellar Delight User's Guide"
icon = 'icons/obj/library.dmi'
icon_state ="newscodex"
item_state = "newscodex"
author = "Central Command" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Stellar Delight User's Guide"
/obj/item/book/manual/sd_guide/New()
..()
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
h2 {font-size: 15px; margin: 15px 0px 5px;}
h3 {font-size: 13px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
body {font-size: 13px; font-family: Verdana;}
</style>
</head>
<body>
<h1>Stellar Delight Operations</h1>
<br><br>
Welcome to the Stellar Delight! Before you get started there are a few things you ought to know.
<br><br>
The Stellar Delight is a Nanotrasen response vessel operating in the Virgo-Erigone system. It's primary duty is in answering calls for help, investigating anomalies in space around the system, and generally responding to requests from Central Command or whoever else needs the services the vessel can provide. It has fully functioning security, medical, and research facilities, as well as a host of civillian facilities, in addition to the standard things one might expect to find on such a ship. That is to say, the ship doesn't have a highly defined specialization, it is just as capable as a small space station might be.
<br><br>
Notably though, there are some research facilities that are not safe to carry around. There is a refurbished Aerostat that has been set up over Virgo 2 that posesses a number of different, more dangerous research facilities. The command staff of this vessel has access to its docking codes in their offices.
<br><br>
Mining and Exploration will probably also want to disembark to do their respective duties.
<br><br>
The ship is ordinarily protected from many space hazards by an array of point defense turrets, however, it should be noted that this defense network is not infallible. If the ship encounters a dangerous environment, occasionally hazardous material may slip past the network and damage the ship.
<br><br><br>
<h1>Before Moving the Ship</h1>
<br><br>
The ship requires power to fuel and run its engines and sensors. While there may be some charge in the ship at the start of the shift, it is <b>HIGHLY RECOMMENDED</b> that the engine be started before attempting to move the ship. If any of the components responsible for moving the ship lose power (including but not limited to the helm control console and the thrusters), then you will be incapable of adjusting the ship's speed or heading until the problem is resolved.
<br><br>
Additionally, the shield generator should be configured before the ship moves, as it takes time to calibrate before it can be activated. The shield should not be run indefinitely however, as it uses more power than the ship ordinarily generates. You can however activate it for a short time if you know that you need to proceed through a dangerous reigon of space. For more information, see the configuration guide sheet in the shield control room on deck 3, aft of the Command Office section.
<br><br><br>
<h1>Starting and Moving the Ship</h1>
<br><br>
The ship can of course move around on its own, but a few steps need to/should be taken before you can do so.
<br><br>
-FIRST. <b>You should appoint a pilot.</b> If there isn't a pilot, or the pilot isn't responding, you should fax for a pilot. If no pilots respond to the fax within a reasonable timeframe, then, if you are qualified to fly Nanotrasen spacecraft you may fly the ship. Appointing a pilot to the bridge however should always be done even if you know how to fly and have access to the helm control console. <i><b>Refusing to attempt to appoint a pilot and just flying the ship yourself can be grounds for demotion to pilot.</i></b>
<br><br>
-SECOND. In order for the ship to move one must start the engines. The ship's fuel pump in Atmospherics must be turned on and configured. Atmospheric technicians may elect to modify the fuel mix to help the ship go faster or make the fuel last longer. Either way, once the fuel pump is on, you may use the engine control console on the bridge to activate the engines.
<br><br>
Once these steps have been taken, the helm control console should respond to input commands from the pilot.
<br><br><br>
<h1>Disembarking</h1>
<br><br>
Being a response vessel, the Stellar Delight has 3 shuttles in total.
<br><br>
The mining and exploration shuttles are located in the aft of deck 1 between their respective departments. Both of these shuttles are short jump shuttles, meaning, they are not suitable for more than ferrying people back and forth between the ship and the present destination. They do have a small range that they can traverse in their bluespace hops, but they must be within one 'grid square' of a suitable landing site to jump. As such, it is recommended that you avoid flying away from wherever either of these shuttles are without establishing a flight plan with the away teams to indicate a time of returning. In cases where the mining team and the exploration team want to go to different places, it may be necessary to fly from one location to the other now and then to facilitate both operations. However, it is recommended that exploration and mining be encouraged to enter the same operations areas, as the mining team is poorly armed, and the exploration team is ideally equipped for offsite defense and support of ship personnel.
<br><br>
There is also the Starstuff, a long range capable shuttle which is ordinarily docked on the port landing pad of deck 3. This shuttle is meant for general crew transport, but does require a pilot to be flown.
<br><br>
In cases where the shuttles will be docking with another facility, such as the Science outpost on the Virgo 2 Aerostat, docking codes may be required in order to be accessed. Anywhere requiring such codes will need to have them entered into the given shuttle's short jump console. It is recommended that anyone operating such a shuttle take note of the Stellar Delight's docking codes, as they will need them to dock with the ship. Any Nanotrasen owned facility that requires them that your ship has authorization to access will have the codes stored in the Command Offices.
<br><br>
A final note on disembarking. While it may not necessarily be their job to do so, it is highly encouraged for the Command staff to attempt to involve volunteers in off ship operations as necessary. Just make sure to let let it be known what kind of operation is happening when you ask. This being a response ship, it is very good to get as much help to handle whatever the issue is as thoroughly as possible.
<br><br>
All that said, have a safe trip. - Central Command Officer <i>Alyssa Trems</i> </body>
</html>
"}
// ### Wall Machines On Full Windows ###
// To make sure wall-mounted machines placed on full-tile windows are clickable they must be above the window
//
/obj/item/radio/intercom
layer = ABOVE_WINDOW_LAYER
/obj/item/storage/secure/safe
layer = ABOVE_WINDOW_LAYER
/obj/machinery/airlock_sensor
layer = ABOVE_WINDOW_LAYER
/obj/machinery/alarm
layer = ABOVE_WINDOW_LAYER
/obj/machinery/button
layer = ABOVE_WINDOW_LAYER
/obj/machinery/access_button
layer = ABOVE_WINDOW_LAYER
/obj/machinery/computer/guestpass
layer = ABOVE_WINDOW_LAYER
/obj/machinery/computer/security/telescreen
layer = ABOVE_WINDOW_LAYER
/obj/machinery/door_timer
layer = ABOVE_WINDOW_LAYER
/obj/machinery/embedded_controller
layer = ABOVE_WINDOW_LAYER
/obj/machinery/firealarm
layer = ABOVE_WINDOW_LAYER
/obj/machinery/flasher
layer = ABOVE_WINDOW_LAYER
/obj/machinery/keycard_auth
layer = ABOVE_WINDOW_LAYER
/obj/machinery/light_switch
layer = ABOVE_WINDOW_LAYER
/obj/machinery/mineral/processing_unit_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/mineral/stacking_unit_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/newscaster
layer = ABOVE_WINDOW_LAYER
/obj/machinery/power/apc
layer = ABOVE_WINDOW_LAYER
/obj/machinery/requests_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/status_display
layer = ABOVE_WINDOW_LAYER
/obj/machinery/vending/wallmed1
layer = ABOVE_WINDOW_LAYER
/obj/machinery/vending/wallmed2
layer = ABOVE_WINDOW_LAYER
/obj/structure/fireaxecabinet
layer = ABOVE_WINDOW_LAYER
/obj/structure/extinguisher_cabinet
layer = ABOVE_WINDOW_LAYER
/obj/structure/mirror
layer = ABOVE_WINDOW_LAYER
/obj/structure/noticeboard
layer = ABOVE_WINDOW_LAYER
/obj/item/multitool/scioutpost
name = "science outpost linked multitool"
desc = "It has the data for the science outpost's quantum pad pre-loaded... assuming you didn't override it."
/obj/item/multitool/scioutpost/Initialize()
. = ..()
for(var/obj/machinery/power/quantumpad/scioutpost/outpost in world)
connectable = outpost
if(connectable)
icon_state = "multitool_red"
return
/obj/machinery/power/quantumpad/scioutpost
/datum/random_map/noise/ore/virgo2 // Less OP generation map, but better than Underdark
deep_val = 0.7
rare_val = 0.5
rare_val = 0.5
@@ -1,51 +1,3 @@
/turf/unsimulated/mineral/virgo3b
blocks_air = TRUE
/turf/unsimulated/floor/steel
icon = 'icons/turf/flooring/tiles_vr.dmi'
icon_state = "steel"
// Some turfs to make floors look better in centcom tram station.
/turf/unsimulated/floor/techfloor_grid
name = "floor"
icon = 'icons/turf/flooring/techfloor.dmi'
icon_state = "techfloor_grid"
/turf/unsimulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
/turf/unsimulated/wall/transit
icon = 'icons/turf/transit_vr.dmi'
/turf/unsimulated/floor/transit
icon = 'icons/turf/transit_vr.dmi'
/obj/effect/floor_decal/transit/orange
icon = 'icons/turf/transit_vr.dmi'
icon_state = "transit_techfloororange_edges"
/obj/effect/transit/light
icon = 'icons/turf/transit_128.dmi'
icon_state = "tube1-2"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/grass/sif)
/turf/simulated/floor/outdoors/grass/sif
turf_layers = list(
/turf/simulated/floor/outdoors/rocks/virgo3b,
/turf/simulated/floor/outdoors/dirt/virgo3b
)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/dirt)
/turf/simulated/floor/outdoors/dirt/virgo3b
icon = 'icons/turf/flooring/asteroid.dmi'
icon_state = "asteroid"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
/turf/simulated/mineral/virgo2/make_ore(var/rare_ore) // Override V2 ore generation
if(mineral || ignore_mapgen)
return
+1 -1
View File
@@ -1,6 +1,6 @@
// Compile in the map for CI testing if we're testing compileability of all the maps
#ifdef MAP_TEST
#include "mercship.dmm"
#include "kk_mercship.dmm"
#endif
-5
View File
@@ -30,11 +30,6 @@
#include "SamplePocket.dmm"
#endif
/datum/map_template/virgo2
name = "Surface Content - Virgo 2"
desc = "For seeding submaps on Virgo 2"
allow_duplicates = FALSE
/datum/map_template/virgo2/Flake
name = "Forest Lake"
desc = "A serene lake sitting amidst the surface."
-12
View File
@@ -1,5 +1,4 @@
#include "space_rocks_pois.dm"
#include "space_rocks_stuff.dm"
/turf/simulated/mineral/vacuum/sdmine/make_ore(var/rare_ore)
if(mineral)
@@ -35,17 +34,6 @@
UpdateMineral()
update_icon()
/area/sdmine
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/vacuum
/area/sdmine/unexplored
name = "asteroid field"
icon_state = "unexplored"
/area/sdmine/explored
name = "asteroid field"
icon_state = "explored"
/obj/effect/overmap/visitable/sector/virgo3b/generate_skybox(zlevel)
var/static/image/smallone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "small")
@@ -10,85 +10,54 @@
#include "tunnel2.dmm"
#endif
/area/submap/space_rocks
name = "POI - Space Rocks"
ambience = AMBIENCE_FOREBODING
/area/submap/space_rocks/bittynest1
name = "POI - Bittynest1"
/datum/map_template/space_rocks/bittynest1
name = "Bittynest1"
desc = "A smol nest for smol badguys"
mappath = "maps/submaps/space_rocks/bittynest1.dmm"
cost = 5
/area/submap/space_rocks/bittynest2
name = "POI - Bittynest2"
/datum/map_template/space_rocks/bittynest2
name = "Bittynest2"
desc = "A smol nest for smol badguys"
mappath = "maps/submaps/space_rocks/bittynest2.dmm"
cost = 5
/area/submap/space_rocks/bittynest3
name = "POI - Bittynest3"
/datum/map_template/space_rocks/bittynest3
name = "Bittynest3"
desc = "A smol nest for smol badguys"
mappath = "maps/submaps/space_rocks/bittynest3.dmm"
cost = 5
/area/submap/space_rocks/bittynest4
name = "POI - Bittynest4"
/datum/map_template/space_rocks/bittynest4
name = "Bittynest4"
desc = "A smol nest for smol badguys"
mappath = "maps/submaps/space_rocks/bittynest4.dmm"
cost = 5
/area/submap/space_rocks/tunnel1
name = "POI - Tunnel1"
/datum/map_template/space_rocks/tunnel1
name = "Tunnel1"
desc = "A tunnel left behind!"
mappath = "maps/submaps/space_rocks/tunnel1.dmm"
cost = 10
/area/submap/space_rocks/tunnel2
name = "POI - Tunnel2"
/datum/map_template/space_rocks/tunnel2
name = "Tunnel2"
desc = "A tunnel left behind!"
mappath = "maps/submaps/space_rocks/tunnel2.dmm"
cost = 10
/area/submap/space_rocks/spacecrystals
name = "POI - Space Crystals"
/datum/map_template/space_rocks/tunnel2
name = "Space Crystals"
desc = "Some crystals living in space!"
mappath = "maps/submaps/space_rocks/spacecrystals.dmm"
cost = 10
/area/submap/space_rocks/clearing
name = "POI - Clearing"
/datum/map_template/space_rocks/clearing
name = "Clearing"
desc = "A clear spot for mischief to happen."
mappath = "maps/submaps/space_rocks/clearing.dmm"
cost = 10
/area/submap/space_rocks/seventemple
name = "POI - Temple of the Seven"
/datum/map_template/space_rocks/seventemple
name = "Temple of the Seven"
desc = "A mysterious space!"
@@ -1,4 +1,3 @@
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/mud)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/snow)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/water)
@@ -15,4 +14,4 @@ VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/old_tile/green)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/old_tile/white)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/carpet/turcarpet)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/greengrid)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/greengrid)
-5
View File
@@ -3,14 +3,9 @@
#include "tether_defines.dm"
#include "tether_turfs.dm"
#include "tether_things.dm"
#include "tether_phoronlock.dm"
#include "tether_areas.dm"
#include "tether_shuttle_defs.dm"
#include "tether_shuttles.dm"
#include "tether_telecomms.dm"
#include "tether_jobs.dm"
#include "tether_events.dm"
#include "../offmap_vr/common_offmaps.dm"
#ifndef AWAY_MISSION_TEST //Don't include these for just testing away missions
#include "tether-01-surface1.dmm"
-46
View File
@@ -1,34 +1,3 @@
//Normal map defs
#define Z_LEVEL_SURFACE_LOW 1
#define Z_LEVEL_SURFACE_MID 2
#define Z_LEVEL_SURFACE_HIGH 3
#define Z_LEVEL_TRANSIT 4
#define Z_LEVEL_SPACE_LOW 5
#define Z_LEVEL_SURFACE_MINE 6
#define Z_LEVEL_SOLARS 7
#define Z_LEVEL_CENTCOM 8
#define Z_LEVEL_MISC 9
#define Z_LEVEL_UNDERDARK 10
#define Z_LEVEL_PLAINS 11
#define Z_LEVEL_OFFMAP1 12
//#define Z_LEVEL_OFFMAP2 12
#define Z_LEVEL_ROGUEMINE_1 13
#define Z_LEVEL_ROGUEMINE_2 14
#define Z_LEVEL_BEACH 15
#define Z_LEVEL_BEACH_CAVE 16
#define Z_LEVEL_AEROSTAT 17
#define Z_LEVEL_AEROSTAT_SURFACE 18
#define Z_LEVEL_DEBRISFIELD 19
#define Z_LEVEL_FUELDEPOT 20
#define Z_LEVEL_GATEWAY 21
#define Z_LEVEL_OM_ADVENTURE 22
#define Z_LEVEL_REDGATE 23
//Camera networks
#define NETWORK_TETHER "Tether"
#define NETWORK_OUTSIDE "Outside"
/datum/map/tether/New()
..()
var/choice = pickweight(list(
@@ -278,22 +247,8 @@
// Overmap represetation of tether
/obj/effect/overmap/visitable/sector/virgo3b
name = "Virgo 3B"
desc = "Full of phoron, and home to the NSB Adephagia, where you can dock and refuel your craft."
scanner_desc = @{"[i]Registration[/i]: NSB Adephagia
[i]Class[/i]: Installation
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
base = 1
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "virgo3b"
skybox_icon = 'icons/skybox/virgo3b.dmi'
skybox_icon_state = "small"
skybox_pixel_x = 0
skybox_pixel_y = 0
initial_generic_waypoints = list(
"tether_dockarm_d1a1", //Bottom left,
"tether_dockarm_d1a2", //Top left,
@@ -319,7 +274,6 @@
)
levels_for_distress = list(Z_LEVEL_OFFMAP1, Z_LEVEL_BEACH, Z_LEVEL_AEROSTAT, Z_LEVEL_DEBRISFIELD, Z_LEVEL_FUELDEPOT)
var/mob_announce_cooldown = 0
/obj/effect/overmap/visitable/sector/virgo3b/Crossed(var/atom/movable/AM)
. = ..()
+89 -256
View File
@@ -1,270 +1,103 @@
//////////////////////////////////////////////////////////////
// Escape shuttle and pods
/datum/shuttle/autodock/ferry/emergency/escape
name = "Escape"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/escape
warmup_time = 10
landmark_offsite = "escape_cc"
landmark_station = "escape_station"
landmark_transition = "escape_transit"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = NORTH
////////////////////////////////////////
// Tether custom shuttle implemnetations
////////////////////////////////////////
//////////////////////////////////////////////////////////////
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod1
name = "Large Escape Pod 1"
location = FERRY_LOCATION_STATION
shuttle_area = /area/shuttle/large_escape_pod1
warmup_time = 0
landmark_station = "escapepod1_station"
landmark_offsite = "escapepod1_cc"
landmark_transition = "escapepod1_transit"
docking_controller_tag = "large_escape_pod_1"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = EAST
/obj/machinery/computer/shuttle_control/tether_backup
name = "tether backup shuttle control console"
shuttle_tag = "Tether Backup"
req_one_access = list()
ai_control = TRUE
//////////////////////////////////////////////////////////////
// Supply shuttle
/datum/shuttle/autodock/ferry/supply/cargo
name = "Supply"
location = FERRY_LOCATION_OFFSITE
shuttle_area = /area/shuttle/supply
warmup_time = 10
landmark_offsite = "supply_cc"
landmark_station = "supply_station"
docking_controller_tag = "supply_shuttle"
flags = SHUTTLE_FLAGS_PROCESS|SHUTTLE_FLAGS_SUPPLY
move_direction = NORTH
/obj/machinery/computer/shuttle_control/multi/mercenary
name = "vessel control console"
shuttle_tag = "Mercenary"
req_one_access = list(access_syndicate)
//////////////////////////////////////////////////////////////
// Trade Ship
/datum/shuttle/autodock/multi/trade
name = "Trade"
current_location = "trade_dock"
shuttle_area = /area/shuttle/trade
docking_controller_tag = "trade_shuttle"
warmup_time = 10 //want some warmup time so people can cancel.
destination_tags = list(
"trade_dock",
"tether_dockarm_d1l",
"aerostat_south",
"beach_e",
"beach_c",
"beach_nw"
)
defer_initialisation = TRUE
move_direction = WEST
/obj/machinery/computer/shuttle_control/multi/ninja
name = "vessel control console"
shuttle_tag = "Ninja"
//req_one_access = list()
//////////////////////////////////////////////////////////////
// Tether Shuttle
/datum/shuttle/autodock/ferry/tether_backup
name = "Tether Backup"
location = FERRY_LOCATION_OFFSITE //Offsite is the surface hangar
warmup_time = 5
move_time = 5
landmark_offsite = "tether_backup_low"
landmark_station = "tether_dockarm_d1a3"
landmark_transition = "tether_backup_transit"
shuttle_area = /area/shuttle/tether
//crash_areas = list(/area/shuttle/tether/crash1, /area/shuttle/tether/crash2)
docking_controller_tag = "tether_shuttle"
move_direction = NORTH
/obj/machinery/computer/shuttle_control/multi/specops
name = "vessel control console"
shuttle_tag = "NDV Phantom"
req_one_access = list(access_cent_specops)
//////////////////////////////////////////////////////////////
// Mercenary Shuttle
/datum/shuttle/autodock/multi/mercenary
name = "Mercenary"
warmup_time = 8
move_time = 60
current_location = "merc_base"
shuttle_area = /area/shuttle/mercenary
destination_tags = list(
"merc_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d2l" //End of right docking arm
)
docking_controller_tag = "merc_shuttle"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = WEST
/obj/machinery/computer/shuttle_control/multi/trade
name = "vessel control console"
shuttle_tag = "Trade"
req_one_access = list(access_trader)
//////////////////////////////////////////////////////////////
// Ninja Shuttle
/datum/shuttle/autodock/multi/ninja
name = "Ninja"
warmup_time = 8
move_time = 60
can_cloak = TRUE
cloaked = TRUE
current_location = "ninja_base"
landmark_transition = "ninja_transit"
shuttle_area = /area/shuttle/ninja
destination_tags = list(
"ninja_base",
"aerostat_northeast",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1a3" //Inside of left dockarm
)
docking_controller_tag = "ninja_shuttle"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = NORTH
/obj/machinery/computer/shuttle_control/surface_mining_outpost
name = "surface mining outpost shuttle control console"
shuttle_tag = "Mining Outpost"
req_one_access = list(access_mining)
ai_control = TRUE
//////////////////////////////////////////////////////////////
// Skipjack
/datum/shuttle/autodock/multi/heist
name = "Skipjack"
warmup_time = 8
move_time = 60
can_cloak = TRUE
cloaked = TRUE
current_location = "skipjack_base"
landmark_transition = "skipjack_transit"
shuttle_area = /area/shuttle/skipjack
destination_tags = list(
"skipjack_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1l" //End of left dockarm
)
//docking_controller_tag = ??? doesn't have one?
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = NORTH
////////////////////////////////////////
//////// Excursion Shuttle /////////////
////////////////////////////////////////
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/excursion
name = "Excursion Shuttle"
desc = "The traditional Excursion Shuttle. NT Approved!"
icon_state = "htu_destroyer_g"
vessel_mass = 8000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Excursion Shuttle"
//////////////////////////////////////////////////////////////
// ERT Shuttle
/datum/shuttle/autodock/multi/specialops
name = "NDV Phantom"
can_cloak = TRUE
cloaked = FALSE
warmup_time = 8
move_time = 60
current_location = "specops_base"
landmark_transition = "specops_transit"
shuttle_area = /area/shuttle/specops/centcom
destination_tags = list(
"specops_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1l" //End of left dockarm
)
docking_controller_tag = "ert1_control"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An NT support vessel is approaching Virgo-3B."
departure_message = "Attention. A NT support vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = WEST
//////////////////////////////////////////////////////////////
// RogueMiner "Belter: Shuttle
/datum/shuttle/autodock/ferry/belter
name = "Belter"
location = FERRY_LOCATION_STATION
warmup_time = 5
move_time = 30
shuttle_area = /area/shuttle/belter
landmark_station = "belter_station"
landmark_offsite = "belter_zone1"
landmark_transition = "belter_transit"
docking_controller_tag = "belter_docking"
move_direction = EAST
/datum/shuttle/autodock/ferry/belter/New()
move_time = move_time + rand(-5 SECONDS, 5 SECONDS)
..()
//////////////////////////////////////////////////////////////
// Surface Mining Outpost Shuttle
/datum/shuttle/autodock/ferry/surface_mining_outpost
name = "Mining Outpost"
location = FERRY_LOCATION_STATION
warmup_time = 5
shuttle_area = /area/shuttle/mining_outpost
landmark_station = "mining_station"
landmark_offsite = "mining_outpost"
docking_controller_tag = "mining_docking"
move_direction = NORTH
/////Virgo Flyer/////
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/ccboat
name = "Virgo Flyer control console"
shuttle_tag = "Virgo Flyer"
/obj/machinery/computer/shuttle_control/explore/excursion
name = "short jump console"
shuttle_tag = "Excursion Shuttle"
req_one_access = list(access_pilot)
/obj/effect/overmap/visitable/ship/landable/ccboat
name = "NTV Virgo Flyer"
desc = "A small shuttle from Central Command."
vessel_mass = 1000
vessel_size = SHIP_SIZE_TINY
shuttle = "Virgo Flyer"
known = TRUE
////////////////////////////////////////
//////// Tour Bus /////////////
////////////////////////////////////////
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/tourbus
name = "Tour Bus"
desc = "A small 'space bus', if you will."
icon_state = "htu_frigate_g"
vessel_mass = 2000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Tour Bus"
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/ccboat
name = "Central Command Shuttlepad"
base_area = /area/shuttle/centcom/ccbay
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "cc_shuttlepad"
docking_controller = "cc_landing_pad"
shuttle_type = /datum/shuttle/autodock/overmap/ccboat
/obj/machinery/computer/shuttle_control/explore/tourbus
name = "short jump console"
shuttle_tag = "Tour Bus"
req_one_access = list(access_pilot)
/datum/shuttle/autodock/overmap/ccboat
name = "Virgo Flyer"
current_location = "cc_shuttlepad"
docking_controller_tag = "ccboat"
shuttle_area = /area/shuttle/ccboat
fuel_consumption = 0
defer_initialisation = TRUE
////////////////////////////////////////
//////// Medivac /////////////
////////////////////////////////////////
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/medivac
name = "Medivac Shuttle"
desc = "A medical evacuation shuttle."
icon_state = "htu_frigate_g"
vessel_mass = 4000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Medivac Shuttle"
fore_dir = EAST
/area/shuttle/ccboat
icon = 'icons/turf/areas_vr.dmi'
icon_state = "yelwhitri"
name = "Virgo Flyer"
requires_power = 0
/obj/machinery/computer/shuttle_control/explore/medivac
name = "short jump console"
shuttle_tag = "Medivac Shuttle"
/area/shuttle/centcom/ccbay
icon = 'icons/turf/areas_vr.dmi'
icon_state = "bluwhisqu"
name = "Central Command Shuttle Bay"
requires_power = 0
dynamic_lighting = 0
////////////////////////////////////////
//////// Securiship /////////////
////////////////////////////////////////
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/securiship
name = "Securiship Shuttle"
desc = "A security transport ship."
icon_state = "htu_frigate_g"
vessel_mass = 4000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Securiship Shuttle"
fore_dir = EAST
/obj/machinery/computer/shuttle_control/explore/securiship
name = "short jump console"
shuttle_tag = "Securiship Shuttle"
+252 -141
View File
@@ -1,57 +1,273 @@
//////////////////////////////////////////////////////////////
// Escape shuttle and pods
/datum/shuttle/autodock/ferry/emergency/escape/New()
..()
move_direction = NORTH
// Large Escape Pod 1
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod1
name = "Large Escape Pod 1"
location = FERRY_LOCATION_STATION
shuttle_area = /area/shuttle/large_escape_pod1
warmup_time = 0
landmark_station = "escapepod1_station"
landmark_offsite = "escapepod1_cc"
landmark_transition = "escapepod1_transit"
docking_controller_tag = "large_escape_pod_1"
move_time = SHUTTLE_TRANSIT_DURATION_RETURN
move_direction = EAST
////////////////////////////////////////
// Tether custom shuttle implemnetations
//////// Excursion Shuttle /////////////
////////////////////////////////////////
// The 'shuttle' of the excursion shuttle
/datum/shuttle/autodock/overmap/excursion
name = "Excursion Shuttle"
warmup_time = 0
current_location = "tether_excursion_hangar"
docking_controller_tag = "expshuttle_docker"
shuttle_area = list(/area/shuttle/excursion/cockpit, /area/shuttle/excursion/general, /area/shuttle/excursion/cargo, /area/shuttle/excursion/power)
fuel_consumption = 3
move_direction = NORTH
/obj/machinery/computer/shuttle_control/tether_backup
name = "tether backup shuttle control console"
shuttle_tag = "Tether Backup"
req_one_access = list()
ai_control = TRUE
////////////////////////////////////////
//////// Tour Bus /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/tourbus
name = "Tour Bus"
warmup_time = 0
current_location = "tourbus_dock"
docking_controller_tag = "tourbus_docker"
shuttle_area = list(/area/shuttle/tourbus/cockpit, /area/shuttle/tourbus/general)
fuel_consumption = 1
move_direction = NORTH
/obj/machinery/computer/shuttle_control/multi/mercenary
name = "vessel control console"
shuttle_tag = "Mercenary"
req_one_access = list(access_syndicate)
////////////////////////////////////////
//////// Medivac /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/medivac
name = "Medivac Shuttle"
warmup_time = 0
current_location = "tether_medivac_dock"
docking_controller_tag = "medivac_docker"
shuttle_area = list(/area/shuttle/medivac/cockpit, /area/shuttle/medivac/general, /area/shuttle/medivac/engines)
fuel_consumption = 2
move_direction = EAST
/obj/machinery/computer/shuttle_control/multi/ninja
name = "vessel control console"
shuttle_tag = "Ninja"
//req_one_access = list()
////////////////////////////////////////
//////// Securiship /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/securiship
name = "Securiship Shuttle"
warmup_time = 0
current_location = "tether_securiship_dock"
docking_controller_tag = "securiship_docker"
shuttle_area = list(/area/shuttle/securiship/cockpit, /area/shuttle/securiship/general, /area/shuttle/securiship/engines)
fuel_consumption = 2
move_direction = NORTH
/obj/machinery/computer/shuttle_control/multi/skipjack
name = "vessel control console"
shuttle_tag = "Skipjack"
//req_one_access = list()
//////////////////////////////////////////////////////////////
// Trade Ship
/datum/shuttle/autodock/multi/trade
name = "Trade"
current_location = "trade_dock"
shuttle_area = /area/shuttle/trade
docking_controller_tag = "trade_shuttle"
warmup_time = 10 //want some warmup time so people can cancel.
destination_tags = list(
"trade_dock",
"tether_dockarm_d1l",
"aerostat_south",
"beach_e",
"beach_c",
"beach_nw"
)
defer_initialisation = TRUE
move_direction = WEST
/obj/machinery/computer/shuttle_control/multi/specops
name = "vessel control console"
shuttle_tag = "NDV Phantom"
req_one_access = list(access_cent_specops)
//////////////////////////////////////////////////////////////
// Tether Shuttle
/datum/shuttle/autodock/ferry/tether_backup
name = "Tether Backup"
location = FERRY_LOCATION_OFFSITE //Offsite is the surface hangar
warmup_time = 5
move_time = 5
landmark_offsite = "tether_backup_low"
landmark_station = "tether_dockarm_d1a3"
landmark_transition = "tether_backup_transit"
shuttle_area = /area/shuttle/tether
//crash_areas = list(/area/shuttle/tether/crash1, /area/shuttle/tether/crash2)
docking_controller_tag = "tether_shuttle"
move_direction = NORTH
/obj/machinery/computer/shuttle_control/multi/trade
name = "vessel control console"
shuttle_tag = "Trade"
req_one_access = list(access_trader)
//////////////////////////////////////////////////////////////
// Mercenary Shuttle
/datum/shuttle/autodock/multi/mercenary
name = "Mercenary"
warmup_time = 8
move_time = 60
current_location = "merc_base"
shuttle_area = /area/shuttle/mercenary
destination_tags = list(
"merc_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d2l" //End of right docking arm
)
docking_controller_tag = "merc_shuttle"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = WEST
//////////////////////////////////////////////////////////////
// Ninja Shuttle
/datum/shuttle/autodock/multi/ninja
name = "Ninja"
warmup_time = 8
move_time = 60
can_cloak = TRUE
cloaked = TRUE
current_location = "ninja_base"
landmark_transition = "ninja_transit"
shuttle_area = /area/shuttle/ninja
destination_tags = list(
"ninja_base",
"aerostat_northeast",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1a3" //Inside of left dockarm
)
docking_controller_tag = "ninja_shuttle"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = NORTH
//////////////////////////////////////////////////////////////
// Skipjack
/datum/shuttle/autodock/multi/heist
name = "Skipjack"
warmup_time = 8
move_time = 60
can_cloak = TRUE
cloaked = TRUE
current_location = "skipjack_base"
landmark_transition = "skipjack_transit"
shuttle_area = /area/shuttle/skipjack
destination_tags = list(
"skipjack_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1l" //End of left dockarm
)
//docking_controller_tag = ??? doesn't have one?
announcer = "Automated Traffic Control"
arrival_message = "Attention. An unregistered vessel is approaching Virgo-3B."
departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = NORTH
//////////////////////////////////////////////////////////////
// ERT Shuttle
/datum/shuttle/autodock/multi/specialops
name = "NDV Phantom"
can_cloak = TRUE
cloaked = FALSE
warmup_time = 8
move_time = 60
current_location = "specops_base"
landmark_transition = "specops_transit"
shuttle_area = /area/shuttle/specops/centcom
destination_tags = list(
"specops_base",
"aerostat_south",
"beach_e",
"beach_nw",
"tether_solars_ne",
"tether_solars_sw",
"tether_mine_nw",
"tether_space_NE",
"tether_space_SE",
"tether_space_SW",
"tether_dockarm_d1l" //End of left dockarm
)
docking_controller_tag = "ert1_control"
announcer = "Automated Traffic Control"
arrival_message = "Attention. An NT support vessel is approaching Virgo-3B."
departure_message = "Attention. A NT support vessel is now leaving Virgo-3B."
defer_initialisation = TRUE
move_direction = WEST
//////////////////////////////////////////////////////////////
// RogueMiner "Belter: Shuttle
/datum/shuttle/autodock/ferry/belter
name = "Belter"
location = FERRY_LOCATION_STATION
warmup_time = 5
move_time = 30
shuttle_area = /area/shuttle/belter
landmark_station = "belter_station"
landmark_offsite = "belter_zone1"
landmark_transition = "belter_transit"
docking_controller_tag = "belter_docking"
move_direction = EAST
/datum/shuttle/autodock/ferry/belter/New()
move_time = move_time + rand(-5 SECONDS, 5 SECONDS)
..()
//////////////////////////////////////////////////////////////
// Surface Mining Outpost Shuttle
/datum/shuttle/autodock/ferry/surface_mining_outpost
name = "Mining Outpost"
location = FERRY_LOCATION_STATION
warmup_time = 5
shuttle_area = /area/shuttle/mining_outpost
landmark_station = "mining_station"
landmark_offsite = "mining_outpost"
docking_controller_tag = "mining_docking"
move_direction = NORTH
//////////////////////////////////////////////////////////////
// Supply shuttle
/datum/shuttle/autodock/ferry/supply/cargo/New(_name)
..()
move_direction = NORTH
/obj/machinery/computer/shuttle_control/surface_mining_outpost
name = "surface mining outpost shuttle control console"
shuttle_tag = "Mining Outpost"
req_one_access = list(access_mining)
ai_control = TRUE
//
// "Tram" Emergency Shuttler
// Becuase the tram only has its own doors and no corresponding station doors, a docking controller is overkill.
// Just open the gosh darn doors! Also we avoid having a physical docking controller obj for gameplay reasons.
/datum/shuttle/autodock/ferry/emergency
var/tag_door_station = "escape_shuttle_hatch_station"
var/tag_door_offsite = "escape_shuttle_hatch_offsite"
var/frequency = 1380 // Why this frequency? BECAUSE! Thats what someone decided once.
var/datum/radio_frequency/radio_connection
move_direction = NORTH
/datum/shuttle/autodock/ferry/emergency/New()
radio_connection = radio_controller.add_object(src, frequency, null)
..()
move_direction = NORTH
/datum/shuttle/autodock/ferry/emergency/dock()
..()
@@ -183,108 +399,3 @@
update_icon()
return 1
*/
////////////////////////////////////////
//////// Excursion Shuttle /////////////
////////////////////////////////////////
// The 'shuttle' of the excursion shuttle
/datum/shuttle/autodock/overmap/excursion
name = "Excursion Shuttle"
warmup_time = 0
current_location = "tether_excursion_hangar"
docking_controller_tag = "expshuttle_docker"
shuttle_area = list(/area/shuttle/excursion/cockpit, /area/shuttle/excursion/general, /area/shuttle/excursion/cargo, /area/shuttle/excursion/power)
fuel_consumption = 3
move_direction = NORTH
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/excursion
name = "Excursion Shuttle"
desc = "The traditional Excursion Shuttle. NT Approved!"
icon_state = "htu_destroyer_g"
vessel_mass = 8000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Excursion Shuttle"
/obj/machinery/computer/shuttle_control/explore/excursion
name = "short jump console"
shuttle_tag = "Excursion Shuttle"
req_one_access = list(access_pilot)
////////////////////////////////////////
//////// Tour Bus /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/tourbus
name = "Tour Bus"
warmup_time = 0
current_location = "tourbus_dock"
docking_controller_tag = "tourbus_docker"
shuttle_area = list(/area/shuttle/tourbus/cockpit, /area/shuttle/tourbus/general)
fuel_consumption = 1
move_direction = NORTH
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/tourbus
name = "Tour Bus"
desc = "A small 'space bus', if you will."
icon_state = "htu_frigate_g"
vessel_mass = 2000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Tour Bus"
/obj/machinery/computer/shuttle_control/explore/tourbus
name = "short jump console"
shuttle_tag = "Tour Bus"
req_one_access = list(access_pilot)
////////////////////////////////////////
//////// Medivac /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/medivac
name = "Medivac Shuttle"
warmup_time = 0
current_location = "tether_medivac_dock"
docking_controller_tag = "medivac_docker"
shuttle_area = list(/area/shuttle/medivac/cockpit, /area/shuttle/medivac/general, /area/shuttle/medivac/engines)
fuel_consumption = 2
move_direction = EAST
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/medivac
name = "Medivac Shuttle"
desc = "A medical evacuation shuttle."
icon_state = "htu_frigate_g"
vessel_mass = 4000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Medivac Shuttle"
fore_dir = EAST
/obj/machinery/computer/shuttle_control/explore/medivac
name = "short jump console"
shuttle_tag = "Medivac Shuttle"
////////////////////////////////////////
//////// Securiship /////////////
////////////////////////////////////////
/datum/shuttle/autodock/overmap/securiship
name = "Securiship Shuttle"
warmup_time = 0
current_location = "tether_securiship_dock"
docking_controller_tag = "securiship_docker"
shuttle_area = list(/area/shuttle/securiship/cockpit, /area/shuttle/securiship/general, /area/shuttle/securiship/engines)
fuel_consumption = 2
move_direction = NORTH
// The 'ship' of the excursion shuttle
/obj/effect/overmap/visitable/ship/landable/securiship
name = "Securiship Shuttle"
desc = "A security transport ship."
icon_state = "htu_frigate_g"
vessel_mass = 4000
vessel_size = SHIP_SIZE_SMALL
shuttle = "Securiship Shuttle"
fore_dir = EAST
/obj/machinery/computer/shuttle_control/explore/securiship
name = "short jump console"
shuttle_tag = "Securiship Shuttle"
+49
View File
@@ -0,0 +1,49 @@
// #### Hub ####
/obj/machinery/telecomms/hub/preset/tether
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"tether_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/tether
id = "tether_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/tether
id = "tether_tx"
/obj/machinery/telecomms/bus/preset_two/tether
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/tether
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/tether/surfacebase/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/tether/surfacebase/tcomms/entrance
name = "\improper Telecomms Teleporter"
icon_state = "tcomsatentrance"
/area/tether/surfacebase/tcomms/foyer
name = "\improper Telecomms Foyer"
icon_state = "tcomsatfoyer"
/area/tether/surfacebase/tcomms/storage
name = "\improper Telecomms Storage"
icon_state = "tcomsatwest"
/area/tether/surfacebase/tcomms/computer
name = "\improper Telecomms Control Room"
icon_state = "tcomsatcomp"
/area/tether/surfacebase/tcomms/chamber
name = "\improper Telecomms Central Compartment"
icon_state = "tcomsatcham"
flags = BLUE_SHIELDED
+4 -64
View File
@@ -1,68 +1,10 @@
// ### Preset machines ###
// #### Relays ####
// Telecomms doesn't know about connected z-levels, so we need relays even for the other surface levels.
/obj/machinery/telecomms/relay/preset/station
/obj/machinery/telecomms/relay/preset/station/New()
..()
id = "Tether Relay"
autolinkers = list("tether_relay")
// #### Hub ####
/obj/machinery/telecomms/hub/preset/tether
id = "Hub"
network = "tcommsat"
autolinkers = list("hub",
"tether_relay", "c_relay", "m_relay", "r_relay",
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "Away Team", "unused",
"hb_relay", "receiverA", "broadcasterA"
)
/obj/machinery/telecomms/receiver/preset_right/tether
id = "tether_rx"
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ)
/obj/machinery/telecomms/broadcaster/preset_right/tether
id = "tether_tx"
/obj/machinery/telecomms/bus/preset_two/tether
freq_listening = list(SUP_FREQ, SRV_FREQ, EXP_FREQ)
/obj/machinery/telecomms/server/presets/service/tether
freq_listening = list(SRV_FREQ, EXP_FREQ)
autolinkers = list("service", "Away Team")
// Telecommunications Satellite
/area/tether/surfacebase/tcomms
name = "\improper Telecomms"
ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg')
/area/tether/surfacebase/tcomms/entrance
name = "\improper Telecomms Teleporter"
icon_state = "tcomsatentrance"
/area/tether/surfacebase/tcomms/foyer
name = "\improper Telecomms Foyer"
icon_state = "tcomsatfoyer"
/area/tether/surfacebase/tcomms/storage
name = "\improper Telecomms Storage"
icon_state = "tcomsatwest"
/area/tether/surfacebase/tcomms/computer
name = "\improper Telecomms Control Room"
icon_state = "tcomsatcomp"
/area/tether/surfacebase/tcomms/chamber
name = "\improper Telecomms Central Compartment"
icon_state = "tcomsatcham"
flags = BLUE_SHIELDED
/area/maintenance/substation/tcomms
name = "\improper Telecomms Substation"
/area/maintenance/station/tcomms
name = "\improper Telecoms Maintenance"
/datum/map/tether/default_internal_channels()
return list(
num2text(PUB_FREQ) = list(),
@@ -81,10 +23,8 @@
num2text(EXP_FREQ) = list(access_explorer)
)
/obj/item/multitool/station_buffered
name = "pre-linked multitool (tether hub)"
desc = "This multitool has already been linked to the Tether telecomms hub and can be used to configure one (1) relay."
/obj/item/multitool/station_buffered/Initialize()
. = ..()
name = "pre-linked multitool (tether hub)"
desc = "This multitool has already been linked to the Tether telecomms hub and can be used to configure one (1) relay."
buffer = locate(/obj/machinery/telecomms/hub/preset/tether)
-267
View File
@@ -1,32 +1,3 @@
//Special map objects
/obj/effect/landmark/map_data/virgo3b
height = 5
/obj/turbolift_map_holder/tether
name = "Tether Climber"
depth = 5
lift_size_x = 3
lift_size_y = 3
icon = 'icons/obj/turbolift_preview_3x3.dmi'
wall_type = null // Don't make walls
areas_to_use = list(
/area/turbolift/t_surface/level1,
/area/turbolift/t_surface/level2,
/area/turbolift/t_surface/level3,
/area/turbolift/tether/transit,
/area/turbolift/t_station/level1
)
/datum/turbolift
music = list('sound/music/elevator.ogg') // Woo elevator music!
/obj/machinery/atmospherics/unary/vent_pump/positive
use_power = USE_POWER_IDLE
icon_state = "map_vent_out"
external_pressure_bound = ONE_ATMOSPHERE * 1.1
/obj/effect/step_trigger/teleporter/to_mining/Initialize()
. = ..()
teleport_x = src.x
@@ -69,10 +40,6 @@
else
teleport_y = src.y
/obj/effect/step_trigger/teleporter/to_underdark
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/to_underdark/Initialize()
. = ..()
teleport_x = x
@@ -82,10 +49,6 @@
if(Z.name == "Underdark")
teleport_z = Z.z
/obj/effect/step_trigger/teleporter/from_underdark
icon = 'icons/obj/structures/stairs_64x64.dmi'
icon_state = ""
invisibility = 0
/obj/effect/step_trigger/teleporter/from_underdark/Initialize()
. = ..()
teleport_x = x
@@ -110,241 +73,11 @@
/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b/find_planet()
planet = planet_virgo3b
/obj/effect/step_trigger/lost_in_space
var/deathmessage = "You drift off into space, floating alone in the void until your life support runs out."
/obj/effect/step_trigger/lost_in_space/Trigger(var/atom/movable/A) //replacement for shuttle dump zones because there's no empty space levels to dump to
if(ismob(A))
to_chat(A, span_danger("[deathmessage]"))
qdel(A)
/obj/effect/step_trigger/lost_in_space/bluespace
deathmessage = "Everything goes blue as your component particles are scattered throughout the known and unknown universe."
var/last_sound = 0
/obj/effect/step_trigger/lost_in_space/bluespace/Trigger(A)
if(world.time - last_sound > 5 SECONDS)
last_sound = world.time
playsound(src, 'sound/effects/supermatter.ogg', 75, 1)
if(ismob(A) && prob(5))//lucky day
var/destturf = locate(rand(5,world.maxx-5),rand(5,world.maxy-5),pick(using_map.station_levels))
new /datum/teleport/instant(A, destturf, 0, 1, null, null, null, 'sound/effects/phasein.ogg')
else
return ..()
/obj/effect/step_trigger/lost_in_space/tram
deathmessage = "You fly down the tunnel of the tram at high speed for a few moments before impact kills you with sheer concussive force."
//
// TRAM STATION
//
// The tram's electrified maglev tracks
/turf/simulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
can_be_plated = FALSE
var/area/shock_area = /area/tether/surfacebase/tram
/turf/simulated/floor/maglev/Initialize()
. = ..()
shock_area = locate(shock_area)
// Walking on maglev tracks will shock you! Horray!
/turf/simulated/floor/maglev/Entered(var/atom/movable/AM, var/atom/old_loc)
if(isliving(AM) && !(AM.is_incorporeal()) && prob(50))
track_zap(AM)
/turf/simulated/floor/maglev/attack_hand(var/mob/user)
if(prob(75))
track_zap(user)
/turf/simulated/floor/maglev/proc/track_zap(var/mob/living/user)
if (!istype(user)) return
if (electrocute_mob(user, shock_area, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
// Tram air scrubbers for keeping arrivals clean - they work even with no area power
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram
name = "\improper Tram Air Scrubber"
icon_state = "scrubber:1"
on = TRUE
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram/powered()
return TRUE // Always be powered
// Tram departure cryo doors that turn into ordinary airlock doors at round end
/obj/machinery/cryopod/robot/door/tram
name = "\improper Tram Station"
icon = 'icons/obj/doors/Doorextglass.dmi'
icon_state = "door_closed"
can_atmos_pass = ATMOS_PASS_NO
base_icon_state = "door_closed"
occupied_icon_state = "door_locked"
desc = "The tram station you might've came in from. You could leave the base easily using this."
on_store_message = "has departed on the tram."
on_store_name = "Travel Oversight"
on_enter_occupant_message = "The tram arrives at the platform; you step inside and take a seat."
on_store_visible_message_1 = "'s speakers chime, anouncing a tram has arrived to take"
on_store_visible_message_2 = "to the colony"
time_till_despawn = 10 SECONDS
spawnpoint_type = /datum/spawnpoint/tram
/obj/machinery/cryopod/robot/door/tram/process()
if(emergency_shuttle.online() || emergency_shuttle.returned())
// Transform into a door! But first despawn anyone inside
time_till_despawn = 0
..()
var/turf/T = get_turf(src)
var/obj/machinery/door/airlock/glass_external/door = new(T)
door.req_access = null
door.req_one_access = null
qdel(src)
// Otherwise just operate normally
return ..()
/obj/machinery/cryopod/robot/door/tram/Bumped(var/atom/movable/AM)
if(!ishuman(AM))
return
var/mob/living/carbon/human/user = AM
var/choice = tgui_alert(user, "Do you want to depart via the tram? Your character will leave the round.","Departure",list("Yes","No"))
if(user && Adjacent(user) && choice == "Yes")
var/mob/observer/dead/newghost = user.ghostize()
newghost.timeofdeath = world.time
despawn_occupant(user)
//
// Holodorms
//
/obj/machinery/computer/HolodeckControl/holodorm
name = "Don't use this one!!!"
powerdown_program = "Off"
default_program = "Off"
//Smollodeck
active_power_usage = 500
item_power_usage = 100
supported_programs = list(
"Off" = new/datum/holodeck_program(/area/holodeck/holodorm/source_off),
"Basic Dorm" = new/datum/holodeck_program(/area/holodeck/holodorm/source_basic),
"Table Seating" = new/datum/holodeck_program(/area/holodeck/holodorm/source_seating),
"Beach Sim" = new/datum/holodeck_program(/area/holodeck/holodorm/source_beach),
"Desert Area" = new/datum/holodeck_program(/area/holodeck/holodorm/source_desert),
"Snow Field" = new/datum/holodeck_program(/area/holodeck/holodorm/source_snow),
"Flower Garden" = new/datum/holodeck_program(/area/holodeck/holodorm/source_garden),
"Space Sim" = new/datum/holodeck_program(/area/holodeck/holodorm/source_space),
"Boxing Ring" = new/datum/holodeck_program(/area/holodeck/holodorm/source_boxing)
)
/obj/machinery/computer/HolodeckControl/holodorm/one
name = "dorm one holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_1/holo
/obj/machinery/computer/HolodeckControl/holodorm/three
name = "dorm three holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_3/holo
/obj/machinery/computer/HolodeckControl/holodorm/five
name = "dorm five holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_5/holo
/obj/machinery/computer/HolodeckControl/holodorm/seven
name = "dorm seven holodeck control"
projection_area = /area/crew_quarters/sleep/Dorm_7/holo
// Our map is small, if the supermatter is ejected lets not have it just blow up somewhere else
/obj/machinery/power/supermatter/touch_map_edge()
qdel(src)
//"Red" Armory Door
/obj/machinery/door/airlock/security/armory
name = "Red Armory"
//color = ""
/obj/machinery/door/airlock/security/armory/allowed(mob/user)
if(get_security_level() in list("green","blue"))
return FALSE
return ..(user)
//Tether-unique network cameras
/obj/machinery/camera/network/tether
network = list(NETWORK_TETHER)
/obj/machinery/camera/network/outside
network = list(NETWORK_OUTSIDE)
// Shelter Capsule extra restrictions
/datum/map_template/shelter/New()
..()
banned_areas += list(/area/tether/surfacebase/fish_farm, /area/tether/surfacebase/public_garden, /area/tether/surfacebase/tram)
//
// ### Wall Machines On Full Windows ###
// To make sure wall-mounted machines placed on full-tile windows are clickable they must be above the window
//
/obj/item/radio/intercom
layer = ABOVE_WINDOW_LAYER
/obj/item/storage/secure/safe
layer = ABOVE_WINDOW_LAYER
/obj/machinery/airlock_sensor
layer = ABOVE_WINDOW_LAYER
/obj/machinery/alarm
layer = ABOVE_WINDOW_LAYER
/obj/machinery/button
layer = ABOVE_WINDOW_LAYER
/obj/machinery/access_button
layer = ABOVE_WINDOW_LAYER
/obj/machinery/computer/guestpass
layer = ABOVE_WINDOW_LAYER
/obj/machinery/computer/security/telescreen
layer = ABOVE_WINDOW_LAYER
/obj/machinery/door_timer
layer = ABOVE_WINDOW_LAYER
/obj/machinery/embedded_controller
layer = ABOVE_WINDOW_LAYER
/obj/machinery/firealarm
layer = ABOVE_WINDOW_LAYER
/obj/machinery/flasher
layer = ABOVE_WINDOW_LAYER
/obj/machinery/keycard_auth
layer = ABOVE_WINDOW_LAYER
/obj/machinery/light_switch
layer = ABOVE_WINDOW_LAYER
/obj/machinery/mineral/processing_unit_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/mineral/stacking_unit_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/newscaster
layer = ABOVE_WINDOW_LAYER
/obj/machinery/power/apc
layer = ABOVE_WINDOW_LAYER
/obj/machinery/requests_console
layer = ABOVE_WINDOW_LAYER
/obj/machinery/status_display
layer = ABOVE_WINDOW_LAYER
/obj/machinery/vending/wallmed1
layer = ABOVE_WINDOW_LAYER
/obj/machinery/vending/wallmed2
layer = ABOVE_WINDOW_LAYER
/obj/structure/fireaxecabinet
layer = ABOVE_WINDOW_LAYER
/obj/structure/extinguisher_cabinet
layer = ABOVE_WINDOW_LAYER
/obj/structure/mirror
layer = ABOVE_WINDOW_LAYER
/obj/structure/noticeboard
layer = ABOVE_WINDOW_LAYER
/obj/tether_away_spawner/tether_outside
name = "Tether Outside Spawner"
prob_spawn = 75
prob_fall = 50
mobs_to_pick_from = list(
/mob/living/simple_mob/animal/passive/gaslamp = 300
)
-177
View File
@@ -1,11 +1,4 @@
//Simulated
VIRGO3B_TURF_CREATE(/turf/simulated/floor/reinforced)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/steel_dirty)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/wood/sif)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
VIRGO3B_TURF_CREATE(/turf/simulated/floor/water/indoors)
VIRGO3B_TURF_CREATE(/turf/simulated/open)
/turf/simulated/open/virgo3b
edge_blending_priority = 0.5 //Turfs which also have e_b_p and higher than this will plop decorative edges onto this turf
/* Handled by parent now
@@ -15,25 +8,6 @@ VIRGO3B_TURF_CREATE(/turf/simulated/open)
SSplanets.addTurf(src)
*/
VIRGO3B_TURF_CREATE(/turf/simulated/floor)
/turf/simulated/floor/virgo3b_indoors
VIRGO3B_SET_ATMOS
/turf/simulated/floor/virgo3b_indoors/update_graphic(list/graphic_add = null, list/graphic_remove = null)
return 0
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/dirt)
/turf/simulated/floor/outdoors/dirt/virgo3b
icon = 'icons/turf/flooring/asteroid.dmi'
icon_state = "asteroid"
VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/grass/sif)
/turf/simulated/floor/outdoors/grass/sif
turf_layers = list(
/turf/simulated/floor/outdoors/rocks/virgo3b,
/turf/simulated/floor/outdoors/dirt/virgo3b
)
// Overriding these for the sake of submaps that use them on other planets.
// This means that mining on tether base and space is oxygen-generating, but solars and mining should use the virgo3b subtype
/turf/simulated/mineral
@@ -58,8 +32,6 @@ VIRGO3B_TURF_CREATE(/turf/simulated/floor/outdoors/grass/sif)
nitrogen = 0
temperature = TCMB
VIRGO3B_TURF_CREATE(/turf/simulated/mineral)
VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
//This proc is responsible for ore generation on surface turfs
/turf/simulated/mineral/virgo3b/make_ore(var/rare_ore)
if(mineral || ignore_mapgen)
@@ -127,150 +99,6 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
UpdateMineral()
update_icon()
//Unsimulated
/turf/unsimulated/mineral/virgo3b
blocks_air = TRUE
/turf/unsimulated/floor/steel
icon = 'icons/turf/flooring/tiles_vr.dmi'
icon_state = "steel"
// Some turfs to make floors look better in centcom tram station.
/turf/unsimulated/floor/techfloor_grid
name = "floor"
icon = 'icons/turf/flooring/techfloor.dmi'
icon_state = "techfloor_grid"
/turf/unsimulated/floor/maglev
name = "maglev track"
desc = "Magnetic levitation tram tracks. Caution! Electrified!"
icon = 'icons/turf/flooring/maglevs.dmi'
icon_state = "maglevup"
/turf/unsimulated/wall/transit
icon = 'icons/turf/transit_vr.dmi'
/turf/unsimulated/floor/transit
icon = 'icons/turf/transit_vr.dmi'
/obj/effect/floor_decal/transit/orange
icon = 'icons/turf/transit_vr.dmi'
icon_state = "transit_techfloororange_edges"
/obj/effect/transit/light
icon = 'icons/turf/transit_128.dmi'
icon_state = "tube1-2"
// Bluespace jump turf!
/turf/space/bluespace
name = "bluespace"
icon = 'icons/turf/space_vr.dmi'
icon_state = "bluespace"
/turf/space/bluespace/Initialize()
. = ..()
icon = 'icons/turf/space_vr.dmi'
icon_state = "bluespace"
// Desert jump turf!
/turf/space/sandyscroll
name = "sand transit"
icon = 'icons/turf/transit_vr.dmi'
icon_state = "desert_ns"
/turf/space/sandyscroll/Initialize()
. = ..()
icon_state = "desert_ns"
//Sky stuff!
// A simple turf to fake the appearance of flying.
/turf/simulated/sky/virgo3b
color = "#FFBBBB"
/turf/simulated/sky/virgo3b/Initialize()
SSplanets.addTurf(src)
set_light(2, 2, "#FFBBBB")
/turf/simulated/sky/virgo3b/north
dir = NORTH
/turf/simulated/sky/virgo3b/south
dir = SOUTH
/turf/simulated/sky/virgo3b/east
dir = EAST
/turf/simulated/sky/virgo3b/west
dir = WEST
/turf/simulated/sky/virgo3b/moving
icon_state = "sky_fast"
/turf/simulated/sky/virgo3b/moving/north
dir = NORTH
/turf/simulated/sky/virgo3b/moving/south
dir = SOUTH
/turf/simulated/sky/virgo3b/moving/east
dir = EAST
/turf/simulated/sky/virgo3b/moving/west
dir = WEST
/turf/simulated/floor/midpoint_glass
name = "glass floor"
desc = "Dont jump on it, or do, I'm not your mom."
icon = 'icons/turf/flooring/glass.dmi'
icon_state = "glass-0"
base_icon_state = "glass"
/turf/simulated/floor/midpoint_glass/reinf
name = "reinforced glass floor"
desc = "Do jump on it, it can take it."
icon = 'icons/turf/flooring/reinf_glass.dmi'
icon_state = "reinf_glass-0"
base_icon_state = "reinf_glass"
/turf/simulated/floor/midpoint_glass/Initialize()
. = ..()
return INITIALIZE_HINT_LATELOAD
/turf/simulated/floor/midpoint_glass/LateInitialize()
do_icons()
/turf/simulated/floor/midpoint_glass/proc/do_icons()
var/new_junction = NONE
for(var/direction in cardinal) //Cardinal case first.
var/turf/T = get_step(src, direction)
if(istype(T, type))
new_junction |= direction
if(!(new_junction & (NORTH|SOUTH)) || !(new_junction & (EAST|WEST)))
icon_state = "[base_icon_state]-[new_junction]"
return
if(new_junction & NORTH)
if(new_junction & WEST)
var/turf/T = get_step(src, NORTHWEST)
if(istype(T, type))
new_junction |= (1<<7)
if(new_junction & EAST)
var/turf/T = get_step(src, NORTHEAST)
if(istype(T, type))
new_junction |= (1<<4)
if(new_junction & SOUTH)
if(new_junction & WEST)
var/turf/T = get_step(src, SOUTHWEST)
if(istype(T, type))
new_junction |= (1<<6)
if(new_junction & EAST)
var/turf/T = get_step(src, SOUTHEAST)
if(istype(T, type))
new_junction |= (1<<5)
icon_state = "[base_icon_state]-[new_junction]"
add_vis_overlay('icons/effects/effects.dmi', "white", plane = SPACE_PLANE, add_vis_flags = VIS_INHERIT_ID|VIS_UNDERLAY)
/turf/space/v3b_midpoint/Initialize()
. = ..()
new /obj/effect/step_trigger/teleporter/planetary_fall/virgo3b(src)
@@ -282,8 +110,3 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
/turf/space/v3b_midpoint/CanZPass(atom, direction)
return 0 // We're not Space
// Tram transit floor
/turf/simulated/floor/tiled/techfloor/grid/transit
icon = 'icons/turf/transit_vr.dmi'
initial_flooring = null
+2 -1
View File
@@ -1,4 +1,4 @@
#if !defined(CITESTING) && !defined(SPACEMAN_DMM)
#if !defined(CITESTING)
/*********************/
/* MAP SELECTION */
@@ -33,6 +33,7 @@
#include "../groundbase/groundbase.dm"
#endif
// Debug: Minitest
#ifdef USE_MAP_MINITEST
#include "../virgo_minitest/virgo_minitest.dm"
#endif
@@ -8,15 +8,6 @@ mapdirs=(
"maps/tether"
"maps/offmap_vr/talon"
)
#Put a define file to include. One per line matching mapdirs.
#If the same define is reused it will be batched if in sequence.
mapdefines=(
"maps/groundbase/groundbase.dm"
"maps/stellar_delight/stellar_delight.dm"
"maps/tether/tether.dm"
"maps/tether/tether.dm"
)
dme="vorestation.dme"
RED='\033[0;31m'
GREEN="\033[0;32m"
@@ -42,49 +33,20 @@ printf "\n\n\n"
#Duplicate stderr because dmm-tools doesn't return an error code for bad icons or bad path so we need to capture it
exec 5>&2
#Now render per group to initial images
#Render maps to initial images ignoring some tg specific icon_state handling
any_errors=0
map_files=()
index=0
for mapdir in "${mapdirs[@]}"; do
#https://stackoverflow.com/a/23357277
while IFS= read -r -d $'\0'; do
map_files+=("$REPLY")
done < <(find "${BASEDIR}/${mapdir}" -maxdepth 1 -name '*[0-9]*.dmm' -print0)
cur_define=${mapdefines[index++]}
result=$(~/dmm-tools minimap "${map_files[@]}" --disable smart-cables,overlays,pretty,transit-tube 2>&1 | tee /dev/fd/5)
if [[ (index -lt ${#mapdefines[@]}) && ("${cur_define}" == "${mapdefines[$index]}") ]]; then
# Next iteration uses the same define so batch it
echo "Batching next iteration..."
continue
fi
#Insert the define file into the dme if needed
if [[ "${cur_define}" != "" ]]; then
echo "Injecting ${cur_define} into ${dme}..."
echo "#include \"${cur_define}\"" >> ${dme}
fi
#Render maps to initial images ignoring some tg specific icon_state handling
result=$(~/dmm-tools minimap "${map_files[@]}" --disable smart-cables,overlays,pretty,transit-tube 2>&1 | tee /dev/fd/5)
#Check if anything errored
if [[ ($? -ne 0) || ("${result}" =~ ("bad icon"|"bad path"|"error")) ]]; then
any_errors=1
fi
#Undo changes for next iteration
map_files=()
if [[ "${cur_define}" != "" ]]; then
sed -i '$ d' ${dme}
fi
printf "\n"
done
#Check if anything errored
if [[ ($? -ne 0) || ("${result}" =~ ("bad icon"|"bad path"|"error")) ]]; then
any_errors=1
fi
#Close the new file descriptor
exec 5>&-
printf "\n"
#Give results if we're just testing
if [[ $1 == "--testing" ]]; then
if [[ any_errors -ne 0 ]]; then
+22
View File
@@ -4479,9 +4479,22 @@
#include "interface\interface.dm"
#include "interface\stylesheet.dm"
#include "interface\skin.dmf"
#include "maps\common\common_areas.dm"
#include "maps\common\common_defines.dm"
#include "maps\common\common_shuttles.dm"
#include "maps\common\common_telecomms.dm"
#include "maps\common\common_things.dm"
#include "maps\common\common_turfs.dm"
#include "maps\expedition_vr\beach\submaps\mountains.dm"
#include "maps\expedition_vr\beach\submaps\mountains_areas.dm"
#include "maps\expedition_vr\virgo5\v5_features.dm"
#include "maps\groundbase\groundbase_areas.dm"
#include "maps\groundbase\groundbase_poi_maps.dm"
#include "maps\groundbase\groundbase_poi_stuff.dm"
#include "maps\groundbase\groundbase_shuttle_defs.dm"
#include "maps\groundbase\groundbase_telecomm_defs.dm"
#include "maps\groundbase\groundbase_wilds.dm"
#include "maps\offmap_vr\common_offmaps.dm"
#include "maps\redgate\facility_items.dm"
#include "maps\redgate\fantasy_items.dm"
#include "maps\redgate\falls\atoll_decals.dm"
@@ -4490,16 +4503,25 @@
#include "maps\southern_cross\items\clothing\sc_accessory.dm"
#include "maps\southern_cross\items\clothing\sc_suit.dm"
#include "maps\southern_cross\items\clothing\sc_under.dm"
#include "maps\stellar_delight\stellar_delight_areas.dm"
#include "maps\stellar_delight\stellar_delight_shuttle_defs.dm"
#include "maps\stellar_delight\stellar_delight_telecomm_defs.dm"
#include "maps\submaps\_helpers.dm"
#include "maps\submaps\_readme.dm"
#include "maps\submaps\admin_use_vr\event_autonomous_drone.dm"
#include "maps\submaps\engine_submaps\engine.dm"
#include "maps\submaps\engine_submaps\engine_areas.dm"
#include "maps\submaps\engine_submaps_vr\tether\_engine_submaps.dm"
#include "maps\submaps\space_rocks\space_rocks_stuff.dm"
#include "maps\submaps\space_submaps\space.dm"
#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
#include "maps\tether\tether_areas.dm"
#include "maps\tether\tether_jobs.dm"
#include "maps\tether\tether_phoronlock.dm"
#include "maps\tether\tether_shuttle_defs.dm"
#include "maps\tether\tether_telecomm_defs.dm"
#include "maps\~map_system\_map_selection.dm"
#include "maps\~map_system\maps.dm"
// END_INCLUDE