From 9cbdf184ff3eb12b99531e3db971881e4ae914af Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 10 Mar 2020 22:20:17 -0400 Subject: [PATCH] Ported Basic Overmap Functionality - Ports the overmap, ships, sectors, and "landable" ships from baystation. - Ports necessary computers to control ships and overmap shuttles. - Shims missing machine and computer functionality pending future enhancements. - Includes required new sprites and sounds. --- code/__defines/atmos.dm | 1 + code/__defines/construction.dm | 1 + code/__defines/machinery.dm | 5 + .../_defines.dm => __defines/shuttle.dm} | 5 + code/_helpers/_lists.dm | 14 + code/controllers/subsystems/shuttles.dm | 84 +++-- code/datums/observation/helpers.dm | 3 + .../game/objects/items/weapons/tanks/tanks.dm | 3 + code/modules/mob/skillset.dm | 14 + code/modules/overmap/README.dm | 6 + code/modules/overmap/_defines.dm | 50 +-- code/modules/overmap/overmap_object.dm | 9 +- code/modules/overmap/overmap_shuttle.dm | 179 +++++++++++ code/modules/overmap/sectors.dm | 10 +- .../overmap/ships/computers/computer_shims.dm | 104 ++++++ .../overmap/ships/computers/engine_control.dm | 104 +++--- code/modules/overmap/ships/computers/helm.dm | 301 ++++++++++++------ .../overmap/ships/computers/sensors.dm | 226 +++++++++++++ code/modules/overmap/ships/computers/ship.dm | 99 ++++++ .../overmap/ships/computers/shuttle.dm | 162 ++-------- code/modules/overmap/ships/engines/engine.dm | 49 +-- .../overmap/ships/engines/gas_thruster.dm | 218 +++++++++++++ .../overmap/ships/engines/ion_thruster.dm | 86 +++++ code/modules/overmap/ships/landable.dm | 173 ++++++++++ code/modules/overmap/ships/ship.dm | 262 ++++++++++----- code/modules/shuttles/shuttle_console.dm | 2 +- code/modules/xgm/xgm_gas_mixture.dm | 10 + icons/obj/computer_vr.dmi | Bin 120730 -> 122310 bytes icons/obj/overmap.dmi | Bin 10656 -> 10716 bytes icons/turf/shuttle_parts.dmi | Bin 10182 -> 12474 bytes nano/templates/engines_control.tmpl | 42 ++- nano/templates/helm.tmpl | 215 ++++++++----- nano/templates/nav.tmpl | 59 ++++ nano/templates/shipsensors.tmpl | 90 ++++++ .../shuttle_control_console_exploration.tmpl | 18 +- sound/effects/locker_close.ogg | Bin 0 -> 8896 bytes sound/effects/locker_open.ogg | Bin 0 -> 10938 bytes sound/machines/thruster.ogg | Bin 0 -> 12206 bytes vorestation.dme | 15 +- 39 files changed, 2064 insertions(+), 555 deletions(-) rename code/{modules/shuttles/_defines.dm => __defines/shuttle.dm} (68%) create mode 100644 code/modules/mob/skillset.dm create mode 100644 code/modules/overmap/overmap_shuttle.dm create mode 100644 code/modules/overmap/ships/computers/computer_shims.dm create mode 100644 code/modules/overmap/ships/computers/sensors.dm create mode 100644 code/modules/overmap/ships/computers/ship.dm create mode 100644 code/modules/overmap/ships/engines/gas_thruster.dm create mode 100644 code/modules/overmap/ships/engines/ion_thruster.dm create mode 100644 code/modules/overmap/ships/landable.dm create mode 100644 nano/templates/nav.tmpl create mode 100644 nano/templates/shipsensors.tmpl create mode 100644 sound/effects/locker_close.ogg create mode 100644 sound/effects/locker_open.ogg create mode 100644 sound/machines/thruster.ogg diff --git a/code/__defines/atmos.dm b/code/__defines/atmos.dm index 66348344f2..56055273e4 100644 --- a/code/__defines/atmos.dm +++ b/code/__defines/atmos.dm @@ -29,6 +29,7 @@ #define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD * MINIMUM_AIR_RATIO_TO_SUSPEND) // Minimum amount of air that has to move before a group processing can be suspended #define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD * MINIMUM_AIR_RATIO_TO_SUSPEND) // Either this must be active #define MINIMUM_TEMPERATURE_TO_MOVE (T20C + 100) // or this (or both, obviously) +#define MINIMUM_PRESSURE_DIFFERENCE_TO_SUSPEND (MINIMUM_AIR_TO_SUSPEND*R_IDEAL_GAS_EQUATION*T20C)/CELL_VOLUME // Minimum pressure difference between zones to suspend #define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 // Minimum temperature difference before group processing is suspended. #define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 diff --git a/code/__defines/construction.dm b/code/__defines/construction.dm index 2bae550a22..f148803322 100644 --- a/code/__defines/construction.dm +++ b/code/__defines/construction.dm @@ -38,6 +38,7 @@ #define CONNECT_TYPE_SUPPLY 2 #define CONNECT_TYPE_SCRUBBER 4 #define CONNECT_TYPE_HE 8 +#define CONNECT_TYPE_FUEL 16 // TODO - Implement this! Its piping so better ask Leshana // We are based on the three named layers of supply, regular, and scrubber. #define PIPING_LAYER_SUPPLY 1 diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index 43937e0cbe..0be4bc2a4d 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -11,6 +11,11 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called #define DOOR_CRUSH_DAMAGE 20 #define ALIEN_SELECT_AFK_BUFFER 1 // How many minutes that a person can be AFK before not being allowed to be an alien. +// Constants for machine's use_power +#define USE_POWER_OFF 0 // No continuous power use +#define USE_POWER_IDLE 1 // Machine is using power at its idle power level +#define USE_POWER_ACTIVE 2 // Machine is using power at its active power level + // Channel numbers for power. #define EQUIP 1 #define LIGHT 2 diff --git a/code/modules/shuttles/_defines.dm b/code/__defines/shuttle.dm similarity index 68% rename from code/modules/shuttles/_defines.dm rename to code/__defines/shuttle.dm index 22d57fe9cb..9bf7dcad6f 100644 --- a/code/modules/shuttles/_defines.dm +++ b/code/__defines/shuttle.dm @@ -9,6 +9,11 @@ #define SLANDMARK_FLAG_AUTOSET 1 // If set, will set base area and turf type to same as where it was spawned at #define SLANDMARK_FLAG_ZERO_G 2 // Zero-G shuttles moved here will lose gravity unless the area has ambient gravity. +// Overmap landable shuttles (/obj/effect/overmap/visitable/ship/landable on a /datum/shuttle/autodock/overmap) +#define SHIP_STATUS_LANDED 1 // Ship is at any other shuttle landmark. +#define SHIP_STATUS_TRANSIT 2 // Ship is at it's shuttle datum's transition shuttle landmark. +#define SHIP_STATUS_OVERMAP 3 // Ship is at its "overmap" shuttle landmark (allowed to move on overmap now) + // Ferry shuttle location constants #define FERRY_LOCATION_STATION 0 #define FERRY_LOCATION_OFFSITE 1 diff --git a/code/_helpers/_lists.dm b/code/_helpers/_lists.dm index 0d5500d41c..fdd6fc03a7 100644 --- a/code/_helpers/_lists.dm +++ b/code/_helpers/_lists.dm @@ -206,6 +206,20 @@ proc/listclearnulls(list/list) result = first - second return result +/* +Two lists may be different (A!=B) even if they have the same elements. +This actually tests if they have the same entries and values. +*/ +/proc/same_entries(var/list/first, var/list/second) + if(!islist(first) || !islist(second)) + return 0 + if(length(first) != length(second)) + return 0 + for(var/entry in first) + if(!(entry in second) || (first[entry] != second[entry])) + return 0 + return 1 + /* * Returns list containing entries that are in either list but not both. * If skipref = 1, repeated elements are treated as one. diff --git a/code/controllers/subsystems/shuttles.dm b/code/controllers/subsystems/shuttles.dm index 35a93a5eac..27bbbae027 100644 --- a/code/controllers/subsystems/shuttles.dm +++ b/code/controllers/subsystems/shuttles.dm @@ -15,7 +15,6 @@ SUBSYSTEM_DEF(shuttles) flags = SS_KEEP_TIMING|SS_NO_TICK_CHECK runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME - // TODO OVERMAP - These two are unused for now var/overmap_halted = FALSE // Whether ships can move on the overmap; used for adminbus. var/list/ships = list() // List of all ships. @@ -99,14 +98,13 @@ SUBSYSTEM_DEF(shuttles) registered_shuttle_landmarks[shuttle_landmark_tag] = shuttle_landmark last_landmark_registration_time = world.time - // TODO - Uncomment once overmap sectors are ported - //var/obj/effect/overmap/visitable/O = landmarks_still_needed[shuttle_landmark_tag] - //if(O) //These need to be added to sectors, which we handle. - // try_add_landmark_tag(shuttle_landmark_tag, O) - // landmarks_still_needed -= shuttle_landmark_tag - //else if(istype(shuttle_landmark, /obj/effect/shuttle_landmark/automatic)) //These find their sector automatically - // O = map_sectors["[shuttle_landmark.z]"] - // O ? O.add_landmark(shuttle_landmark, shuttle_landmark.shuttle_restricted) : (landmarks_awaiting_sector += shuttle_landmark) + var/obj/effect/overmap/visitable/O = landmarks_still_needed[shuttle_landmark_tag] + if(O) //These need to be added to sectors, which we handle. + try_add_landmark_tag(shuttle_landmark_tag, O) + landmarks_still_needed -= shuttle_landmark_tag + else if(istype(shuttle_landmark, /obj/effect/shuttle_landmark/automatic)) //These find their sector automatically + O = map_sectors["[shuttle_landmark.z]"] + O ? O.add_landmark(shuttle_landmark, shuttle_landmark.shuttle_restricted) : (landmarks_awaiting_sector += shuttle_landmark) /datum/controller/subsystem/shuttles/proc/get_landmark(var/shuttle_landmark_tag) return registered_shuttle_landmarks[shuttle_landmark_tag] @@ -114,39 +112,37 @@ SUBSYSTEM_DEF(shuttles) //Checks if the given sector's landmarks have initialized; if so, registers them with the sector, if not, marks them for assignment after they come in. //Also adds automatic landmarks that were waiting on their sector to spawn. /datum/controller/subsystem/shuttles/proc/initialize_sector(obj/effect/overmap/visitable/given_sector) - return // TODO - Uncomment once overmap sectors are ported -// given_sector.populate_sector_objects() // This is a late init operation that sets up the sector's map_z and does non-overmap-related init tasks. + given_sector.populate_sector_objects() // This is a late init operation that sets up the sector's map_z and does non-overmap-related init tasks. -// for(var/landmark_tag in given_sector.initial_generic_waypoints) -// if(!try_add_landmark_tag(landmark_tag, given_sector)) -// landmarks_still_needed[landmark_tag] = given_sector // Landmark isn't registered yet, queue it to be added once it is. + for(var/landmark_tag in given_sector.initial_generic_waypoints) + if(!try_add_landmark_tag(landmark_tag, given_sector)) + landmarks_still_needed[landmark_tag] = given_sector // Landmark isn't registered yet, queue it to be added once it is. -// for(var/shuttle_name in given_sector.initial_restricted_waypoints) -// for(var/landmark_tag in given_sector.initial_restricted_waypoints[shuttle_name]) -// if(!try_add_landmark_tag(landmark_tag, given_sector)) -// landmarks_still_needed[landmark_tag] = given_sector // Landmark isn't registered yet, queue it to be added once it is. + for(var/shuttle_name in given_sector.initial_restricted_waypoints) + for(var/landmark_tag in given_sector.initial_restricted_waypoints[shuttle_name]) + if(!try_add_landmark_tag(landmark_tag, given_sector)) + landmarks_still_needed[landmark_tag] = given_sector // Landmark isn't registered yet, queue it to be added once it is. -// var/landmarks_to_check = landmarks_awaiting_sector.Copy() -// for(var/thing in landmarks_to_check) -// var/obj/effect/shuttle_landmark/automatic/landmark = thing -// if(landmark.z in given_sector.map_z) -// given_sector.add_landmark(landmark, landmark.shuttle_restricted) -// landmarks_awaiting_sector -= landmark + var/landmarks_to_check = landmarks_awaiting_sector.Copy() + for(var/thing in landmarks_to_check) + var/obj/effect/shuttle_landmark/automatic/landmark = thing + if(landmark.z in given_sector.map_z) + given_sector.add_landmark(landmark, landmark.shuttle_restricted) + landmarks_awaiting_sector -= landmark -// TODO - Uncomment once overmap sectors are ported -//// Attempts to add a landmark instance with a sector (returns false if landmark isn't registered yet) -///datum/controller/subsystem/shuttles/proc/try_add_landmark_tag(landmark_tag, obj/effect/overmap/visitable/given_sector) -// var/obj/effect/shuttle_landmark/landmark = get_landmark(landmark_tag) -// if(!landmark) -// return +// Attempts to add a landmark instance with a sector (returns false if landmark isn't registered yet) +/datum/controller/subsystem/shuttles/proc/try_add_landmark_tag(landmark_tag, obj/effect/overmap/visitable/given_sector) + var/obj/effect/shuttle_landmark/landmark = get_landmark(landmark_tag) + if(!landmark) + return -// if(landmark.landmark_tag in given_sector.initial_generic_waypoints) -// given_sector.add_landmark(landmark) -// . = 1 -// for(var/shuttle_name in given_sector.initial_restricted_waypoints) -// if(landmark.landmark_tag in given_sector.initial_restricted_waypoints[shuttle_name]) -// given_sector.add_landmark(landmark, shuttle_name) -// . = 1 + if(landmark.landmark_tag in given_sector.initial_generic_waypoints) + given_sector.add_landmark(landmark) + . = 1 + for(var/shuttle_name in given_sector.initial_restricted_waypoints) + if(landmark.landmark_tag in given_sector.initial_restricted_waypoints[shuttle_name]) + given_sector.add_landmark(landmark, shuttle_name) + . = 1 /datum/controller/subsystem/shuttles/proc/initialize_shuttle(var/shuttle_type) var/datum/shuttle/shuttle = shuttle_type @@ -170,13 +166,13 @@ SUBSYSTEM_DEF(shuttles) error("Shuttle [S] was unable to find mothership [mothership]!") // Admin command to halt/resume overmap -// /datum/controller/subsystem/shuttles/proc/toggle_overmap(new_setting) -// if(overmap_halted == new_setting) -// return -// overmap_halted = !overmap_halted -// for(var/ship in ships) -// var/obj/effect/overmap/visitable/ship/ship_effect = ship -// overmap_halted ? ship_effect.halt() : ship_effect.unhalt() +/datum/controller/subsystem/shuttles/proc/toggle_overmap(new_setting) + if(overmap_halted == new_setting) + return + overmap_halted = !overmap_halted + for(var/ship in ships) + var/obj/effect/overmap/visitable/ship/ship_effect = ship + overmap_halted ? ship_effect.halt() : ship_effect.unhalt() /datum/controller/subsystem/shuttles/stat_entry() ..("Shuttles:[process_shuttles.len]/[shuttles.len], Ships:[ships.len], L:[registered_shuttle_landmarks.len][overmap_halted ? ", HALT" : ""]") diff --git a/code/datums/observation/helpers.dm b/code/datums/observation/helpers.dm index 9116026700..12feeba16d 100644 --- a/code/datums/observation/helpers.dm +++ b/code/datums/observation/helpers.dm @@ -9,6 +9,9 @@ /atom/proc/recursive_dir_set(var/atom/a, var/old_dir, var/new_dir) set_dir(new_dir) +/datum/proc/qdel_self() + qdel(src) + /proc/register_all_movement(var/event_source, var/listener) GLOB.moved_event.register(event_source, listener, /atom/movable/proc/recursive_move) GLOB.dir_set_event.register(event_source, listener, /atom/proc/recursive_dir_set) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 9c54377e8f..3ab51cd237 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -328,6 +328,9 @@ var/list/global/tank_gauge_cache = list() /obj/item/weapon/tank/remove_air(amount) return air_contents.remove(amount) +/obj/item/weapon/tank/proc/remove_air_by_flag(flag, amount) + return air_contents.remove_by_flag(flag, amount) + /obj/item/weapon/tank/return_air() return air_contents diff --git a/code/modules/mob/skillset.dm b/code/modules/mob/skillset.dm new file mode 100644 index 0000000000..2877372491 --- /dev/null +++ b/code/modules/mob/skillset.dm @@ -0,0 +1,14 @@ + +// We don't actually have a skills system, so return max skill for everything. +/mob/proc/get_skill_value(skill_path) + return SKILL_EXPERT + +// A generic way of modifying success probabilities via skill values. Higher factor means skills have more effect. fail_chance is the chance at SKILL_NONE. +/mob/proc/skill_fail_chance(skill_path, fail_chance, no_more_fail = SKILL_EXPERT, factor = 1) + var/points = get_skill_value(skill_path) + if(points >= no_more_fail) + return 0 + else + return fail_chance * 2 ** (factor*(SKILL_BASIC - points)) + + return FALSE // We don't actually have a skills system, so never fail. diff --git a/code/modules/overmap/README.dm b/code/modules/overmap/README.dm index 14a7a955a5..ac9fc8890e 100644 --- a/code/modules/overmap/README.dm +++ b/code/modules/overmap/README.dm @@ -53,6 +53,12 @@ Changes desitnation area depending on current sector ship is in. Currently updating is called in attack_hand(), until a better place is found. Currently no modifications were made to interface to display availability of landing area in sector. +************************************************************* +Landable Ships +************************************************************* +Ship - Vessel that can move around on the overmap. It's entire z-level(s) "move" conceptually. +Shuttles - Vessel that can jump to shuttle landmarks. Its areas move by transition_turfs. +Landable Ship - Vessel that can do both. Sits at a special shuttle landmark for overmap movement mode. ************************************************************* Guide to how make new sector diff --git a/code/modules/overmap/_defines.dm b/code/modules/overmap/_defines.dm index a272ab7591..46fcaad7df 100644 --- a/code/modules/overmap/_defines.dm +++ b/code/modules/overmap/_defines.dm @@ -1,9 +1,19 @@ -//Zlevel where overmap objects should be -#define OVERMAP_ZLEVEL 1 //How far from the edge of overmap zlevel could randomly placed objects spawn -#define OVERMAP_EDGE 7 +#define OVERMAP_EDGE 2 +#define SHIP_SIZE_TINY 1 +#define SHIP_SIZE_SMALL 2 +#define SHIP_SIZE_LARGE 3 +//multipliers for max_speed to find 'slow' and 'fast' speeds for the ship +#define SHIP_SPEED_SLOW 1/(40 SECONDS) +#define SHIP_SPEED_FAST 3/(20 SECONDS)// 15 speed + +#define OVERMAP_WEAKNESS_NONE 0 +#define OVERMAP_WEAKNESS_FIRE 1 +#define OVERMAP_WEAKNESS_EMP 2 +#define OVERMAP_WEAKNESS_MINING 4 +#define OVERMAP_WEAKNESS_EXPLOSIVE 8 //Dimension of overmap (squares 4 lyfe) var/global/list/map_sectors = list() @@ -17,6 +27,7 @@ var/global/list/map_sectors = list() /turf/unsimulated/map icon = 'icons/turf/space.dmi' icon_state = "map" + initialized = FALSE // TODO - Fix unsimulated turf initialization so this override is not necessary! /turf/unsimulated/map/edge opacity = 1 @@ -48,11 +59,7 @@ var/global/list/map_sectors = list() I.pixel_x = 5*i - 2 if(x == global.using_map.overmap_size) I.pixel_x = 5*i + 2 - overlays += I - - - - + add_overlay(I) //list used to track which zlevels are being 'moved' by the proc below var/list/moving_levels = list() @@ -71,21 +78,20 @@ proc/toggle_move_stars(zlevel, direction) if(!direction) gen_dir = null - if (moving_levels["zlevel"] != gen_dir) - moving_levels["zlevel"] = gen_dir - for(var/x = 1 to world.maxx) - for(var/y = 1 to world.maxy) - var/turf/space/T = locate(x,y,zlevel) - if (istype(T)) - if(!gen_dir) - T.icon_state = "[((T.x + T.y) ^ ~(T.x * T.y) + T.z) % 25]" - else - T.icon_state = "speedspace_[gen_dir]_[rand(1,15)]" - for(var/atom/movable/AM in T) - if (!AM.anchored) - AM.throw_at(get_step(T,reverse_direction(direction)), 5, 1) - + if (moving_levels["[zlevel]"] != gen_dir) + moving_levels["[zlevel]"] = gen_dir + var/list/spaceturfs = block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)) + for(var/turf/space/T in spaceturfs) + if(!gen_dir) + T.icon_state = initial(T.icon_state) + else + T.icon_state = "speedspace_[gen_dir]_[rand(1,15)]" + for(var/atom/movable/AM in T) + if (AM.simulated && !AM.anchored) + AM.throw_at(get_step(T,reverse_direction(direction)), 5, 1) + CHECK_TICK + CHECK_TICK /* //list used to cache empty zlevels to avoid nedless map bloat var/list/cached_space = list() diff --git a/code/modules/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm index 9db73eff63..fd2798e7d6 100644 --- a/code/modules/overmap/overmap_object.dm +++ b/code/modules/overmap/overmap_object.dm @@ -21,11 +21,9 @@ if(known) //layer = ABOVE_LIGHTING_LAYER plane = PLANE_LIGHTING_ABOVE - // TODO - Leshana HELM - // for(var/obj/machinery/computer/ship/helm/H in global.machines) - // H.get_known_sectors() -/* -TODO - Leshana - No need for this, we don't have skyboxes + for(var/obj/machinery/computer/ship/helm/H in global.machines) + H.get_known_sectors() + /obj/effect/overmap/Crossed(var/obj/effect/overmap/visitable/other) if(istype(other)) for(var/obj/effect/overmap/visitable/O in loc) @@ -36,4 +34,3 @@ TODO - Leshana - No need for this, we don't have skyboxes SSskybox.rebuild_skyboxes(other.map_z) for(var/obj/effect/overmap/visitable/O in loc) SSskybox.rebuild_skyboxes(O.map_z) -*/ \ No newline at end of file diff --git a/code/modules/overmap/overmap_shuttle.dm b/code/modules/overmap/overmap_shuttle.dm new file mode 100644 index 0000000000..a565c51d62 --- /dev/null +++ b/code/modules/overmap/overmap_shuttle.dm @@ -0,0 +1,179 @@ +#define waypoint_sector(waypoint) map_sectors["[waypoint.z]"] + +/datum/shuttle/autodock/overmap + warmup_time = 10 + + var/range = 0 //how many overmap tiles can shuttle go, for picking destinations and returning. + var/fuel_consumption = 0 //Amount of moles of gas consumed per trip; If zero, then shuttle is magic and does not need fuel + var/list/obj/structure/fuel_port/fuel_ports //the fuel ports of the shuttle (but usually just one) + var/obj/effect/overmap/visitable/ship/landable/myship //my overmap ship object + + category = /datum/shuttle/autodock/overmap + var/skill_needed = SKILL_BASIC + var/operator_skill = SKILL_BASIC + +/datum/shuttle/autodock/overmap/New(var/_name, var/obj/effect/shuttle_landmark/start_waypoint) + ..(_name, start_waypoint) + refresh_fuel_ports_list() + +/datum/shuttle/autodock/overmap/Destroy() + . = ..() + myship = null + +/datum/shuttle/autodock/overmap/proc/refresh_fuel_ports_list() //loop through all + fuel_ports = list() + for(var/area/A in shuttle_area) + for(var/obj/structure/fuel_port/fuel_port_in_area in A) + fuel_port_in_area.parent_shuttle = src + fuel_ports += fuel_port_in_area + +/datum/shuttle/autodock/overmap/fuel_check() + if(!src.try_consume_fuel()) //insufficient fuel + for(var/area/A in shuttle_area) + for(var/mob/living/M in A) + M.show_message("You hear the shuttle engines sputter... perhaps it doesn't have enough fuel?", 1, + "The shuttle shakes but fails to take off.", 2) + return 0 //failure! + return 1 //sucess, continue with launch + +/datum/shuttle/autodock/overmap/proc/can_go() + if(!next_location) + return FALSE + if(moving_status == SHUTTLE_INTRANSIT) + return FALSE //already going somewhere, current_location may be an intransit location instead of in a sector + var/our_sector = waypoint_sector(current_location) + if(!our_sector && myship?.landmark && next_location == myship.landmark) + return TRUE //We're not on the overmap yet (admin spawned probably), and we're trying to hook up with our openspace sector + return get_dist(our_sector, waypoint_sector(next_location)) <= range + +/datum/shuttle/autodock/overmap/can_launch() + return ..() && can_go() + +/datum/shuttle/autodock/overmap/can_force() + return ..() && can_go() + +/datum/shuttle/autodock/overmap/get_travel_time() + var/distance_mod = get_dist(waypoint_sector(current_location),waypoint_sector(next_location)) + var/skill_mod = 0.2*(skill_needed - operator_skill) + return move_time * (1 + distance_mod + skill_mod) + +/datum/shuttle/autodock/overmap/process_launch() + if(prob(10*max(0, skill_needed - operator_skill))) + var/places = get_possible_destinations() + var/place = pick(places) + set_destination(places[place]) + ..() + +/datum/shuttle/autodock/overmap/proc/set_destination(var/obj/effect/shuttle_landmark/A) + if(A != current_location) + next_location = A + +/datum/shuttle/autodock/overmap/proc/get_possible_destinations() + var/list/res = list() + var/our_sector = waypoint_sector(current_location) + if(!our_sector && myship?.landmark) + res["Perform Test Jump"] = myship.landmark + return res //We're not on the overmap, maybe an admin spawned us on a non-sector map. We're broken until we connect to our space z-level. + for (var/obj/effect/overmap/visitable/S in range(get_turf(our_sector), range)) + var/list/waypoints = S.get_waypoints(name) + for(var/obj/effect/shuttle_landmark/LZ in waypoints) + if(LZ.is_valid(src)) + res["[waypoints[LZ]] - [LZ.name]"] = LZ + return res + +/datum/shuttle/autodock/overmap/get_location_name() + if(moving_status == SHUTTLE_INTRANSIT) + return "In transit" + return "[waypoint_sector(current_location)] - [current_location]" + +/datum/shuttle/autodock/overmap/get_destination_name() + if(!next_location) + return "None" + return "[waypoint_sector(next_location)] - [next_location]" + +/datum/shuttle/autodock/overmap/proc/try_consume_fuel() //returns 1 if sucessful, returns 0 if error (like insufficient fuel) + if(!fuel_consumption) + return 1 //shuttles with zero fuel consumption are magic and can always launch + if(!fuel_ports.len) + return 0 //Nowhere to get fuel from + var/list/obj/item/weapon/tank/fuel_tanks = list() + for(var/obj/structure/FP in fuel_ports) //loop through fuel ports and assemble list of all fuel tanks + var/obj/item/weapon/tank/FT = locate() in FP + if(FT) + fuel_tanks += FT + if(!fuel_tanks.len) + return 0 //can't launch if you have no fuel TANKS in the ports + var/total_flammable_gas_moles = 0 + for(var/obj/item/weapon/tank/FT in fuel_tanks) + total_flammable_gas_moles += FT.air_contents.get_by_flag(XGM_GAS_FUEL) + if(total_flammable_gas_moles < fuel_consumption) //not enough fuel + return 0 + // We are going to succeed if we got to here, so start consuming that fuel + var/fuel_to_consume = fuel_consumption + for(var/obj/item/weapon/tank/FT in fuel_tanks) //loop through tanks, consume their fuel one by one + var/fuel_available = FT.air_contents.get_by_flag(XGM_GAS_FUEL) + if(!fuel_available) // Didn't even have fuel. + continue + if(fuel_available >= fuel_to_consume) + FT.remove_air_by_flag(XGM_GAS_FUEL, fuel_to_consume) + return 1 //ALL REQUIRED FUEL HAS BEEN CONSUMED, GO FOR LAUNCH! + else //this tank doesn't have enough to launch shuttle by itself, so remove all its fuel, then continue loop + fuel_to_consume -= fuel_available + FT.remove_air_by_flag(XGM_GAS_FUEL, fuel_available) + +/obj/structure/fuel_port + name = "fuel port" + desc = "The fuel input port of the shuttle. Holds one fuel tank. Use a crowbar to open and close it." + icon = 'icons/turf/shuttle_parts.dmi' + icon_state = "fuel_port" + density = 0 + anchored = 1 + var/icon_closed = "fuel_port" + var/icon_empty = "fuel_port_empty" + var/icon_full = "fuel_port_full" + var/opened = 0 + var/parent_shuttle + +/obj/structure/fuel_port/Initialize() + . = ..() + new /obj/item/weapon/tank/phoron(src) + +/obj/structure/fuel_port/attack_hand(mob/user as mob) + if(!opened) + to_chat(user, "The door is secured tightly. You'll need a crowbar to open it.") + return + else if(contents.len > 0) + user.put_in_hands(contents[1]) + update_icon() + +/obj/structure/fuel_port/update_icon() + if(opened) + if(contents.len > 0) + icon_state = icon_full + else + icon_state = icon_empty + else + icon_state = icon_closed + ..() + +/obj/structure/fuel_port/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(W.is_crowbar()) + if(opened) + to_chat(user, "You tightly shut \the [src] door.") + playsound(src.loc, 'sound/effects/locker_close.ogg', 25, 0, -3) + opened = 0 + else + to_chat(user, "You open up \the [src] door.") + playsound(src.loc, 'sound/effects/locker_open.ogg', 15, 1, -3) + opened = 1 + else if(istype(W,/obj/item/weapon/tank)) + if(!opened) + to_chat(user, "\The [src] door is still closed!") + return + if(contents.len == 0) + user.unEquip(W, src) + update_icon() + +// Walls hide stuff inside them, but we want to be visible. +/obj/structure/fuel_port/hide() + return \ No newline at end of file diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index 15393a5be1..d53a2ce93b 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -50,9 +50,11 @@ //This is called later in the init order by SSshuttles to populate sector objects. Importantly for subtypes, shuttles will be created by then. /obj/effect/overmap/visitable/proc/populate_sector_objects() -// TODO - Leshana - Implement -///obj/effect/overmap/visitable/proc/get_areas() -// return get_filtered_areas(list(/proc/area_belongs_to_zlevels = map_z)) +/obj/effect/overmap/visitable/proc/get_areas() + . = list() + for(var/area/A) + if (A.z in map_z) + . += A /obj/effect/overmap/visitable/proc/find_z_levels() map_z = GetConnectedZlevels(z) @@ -117,7 +119,7 @@ return 1 testing("Building overmap...") - world.maxz++ + world.increment_max_z() global.using_map.overmap_z = world.maxz testing("Putting overmap on [global.using_map.overmap_z]") diff --git a/code/modules/overmap/ships/computers/computer_shims.dm b/code/modules/overmap/ships/computers/computer_shims.dm new file mode 100644 index 0000000000..c685acc49d --- /dev/null +++ b/code/modules/overmap/ships/computers/computer_shims.dm @@ -0,0 +1,104 @@ +/* +** +** HELLO! DON'T COPY THINGS FROM HERE - READ THIS! +** +** The ship machines/computers ported from baystation expect certain procs and infrastruture that we don't have. +** I /could/ just port those computers to our code, but I actually *like* that infrastructure. But I +** don't have time (yet) to implement it fully in our codebase, so I'm shimming it here experimentally as a test +** bed for later implementing it on /obj/machinery and /obj/machinery/computer for everything. ~Leshana (March 2020) +*/ + +// +// Power +// + +// This will have this machine have its area eat this much power next tick, and not afterwards. Do not use for continued power draw. +/obj/machinery/proc/use_power_oneoff(var/amount, var/chan = -1) + return use_power(amount, chan) + +// Change one of the power consumption vars +/obj/machinery/proc/change_power_consumption(new_power_consumption, use_power_mode = USE_POWER_IDLE) + switch(use_power_mode) + if(USE_POWER_IDLE) + idle_power_usage = new_power_consumption + if(USE_POWER_ACTIVE) + active_power_usage = new_power_consumption + // No need to do anything else in our power scheme. + +// Defining directly here to avoid conflicts with existing set_broken procs in our codebase that behave differently. +/obj/machinery/atmospherics/unary/engine/proc/set_broken(var/new_state, var/cause) + if(!(stat & BROKEN) == !new_state) + return // Nothing changed + stat ^= BROKEN + update_icon() + + +// +// Compoenents +// + +/obj/machinery/proc/total_component_rating_of_type(var/part_type) + . = 0 + for(var/thing in component_parts) + if(istype(thing, part_type)) + var/obj/item/weapon/stock_parts/part = thing + . += part.rating + // Now isn't THIS a cool idea? + // for(var/path in uncreated_component_parts) + // if(ispath(path, part_type)) + // var/obj/item/weapon/stock_parts/comp = path + // . += initial(comp.rating) * uncreated_component_parts[path] + +// +// Skills +// +/obj/machinery/computer/ship + var/core_skill = /datum/skill/devices //The skill used for skill checks for this machine (mostly so subtypes can use different skills). + +// +// Topic +// + +/obj/machinery/computer/ship/proc/DefaultTopicState() + return global.default_state + +/obj/machinery/computer/ship/Topic(var/href, var/href_list = list(), var/datum/topic_state/state) + if((. = ..())) + return + state = state || DefaultTopicState() || global.default_state + if(CanUseTopic(usr, state, href_list) == STATUS_INTERACTIVE) + CouldUseTopic(usr) + return OnTopic(usr, href_list, state) + CouldNotUseTopic(usr) + return TRUE + +/obj/machinery/computer/ship/proc/OnTopic(var/mob/user, var/href_list, var/datum/topic_state/state) + return TOPIC_NOACTION + +// +// Interaction +// + +// If you want to have interface interactions handled for you conveniently, use this. +// Return TRUE for handled. +// If you perform direct interactions in here, you are responsible for ensuring that full interactivity checks have been made (i.e CanInteract). +// The checks leading in to here only guarantee that the user should be able to view a UI. +/obj/machinery/computer/ship/proc/interface_interact(var/mob/user) + ui_interact(user) + return TRUE + +/obj/machinery/computer/ship/attack_ai(mob/user) + if(CanUseTopic(user, DefaultTopicState()) > STATUS_CLOSE) + return interface_interact(user) + +// After a recent rework this should mostly be safe. +/obj/machinery/computer/ship/attack_ghost(mob/user) + interface_interact(user) + +// If you don't call parent in this proc, you must make all appropriate checks yourself. +// If you do, you must respect the return value. +/obj/machinery/computer/ship/attack_hand(mob/user) + if((. = ..())) + return + if(CanUseTopic(user, DefaultTopicState()) > STATUS_CLOSE) + return interface_interact(user) diff --git a/code/modules/overmap/ships/computers/engine_control.dm b/code/modules/overmap/ships/computers/engine_control.dm index 01920ee2e0..9c77e1b995 100644 --- a/code/modules/overmap/ships/computers/engine_control.dm +++ b/code/modules/overmap/ships/computers/engine_control.dm @@ -1,46 +1,24 @@ //Engine control and monitoring console -/obj/machinery/computer/engines +/obj/machinery/computer/ship/engines name = "engine control console" icon_keyboard = "tech_key" - icon_screen = "id" - var/state = "status" - var/list/engines = list() - var/obj/effect/map/ship/linked + icon_screen = "engines" + var/display_state = "status" -/obj/machinery/computer/engines/Initialize() - . = ..() - linked = map_sectors["[z]"] - if (linked) - if (!linked.eng_control) - linked.eng_control = src - testing("Engines console at level [z] found a corresponding overmap object '[linked.name]'.") - else - testing("Engines console at level [z] was unable to find a corresponding overmap object.") - - for(var/datum/ship_engine/E in engines) - if (E.zlevel == z && !(E in engines)) - engines += E - -/obj/machinery/computer/engines/attack_hand(var/mob/user as mob) - if(..()) - user.unset_machine() - return - - if(!isAI(user)) - user.set_machine(src) - - ui_interact(user) - -/obj/machinery/computer/engines/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) +/obj/machinery/computer/ship/engines/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(!linked) + display_reconnect_dialog(user, "ship control systems") return var/data[0] - data["state"] = state + data["state"] = display_state + data["global_state"] = linked.engines_state + data["global_limit"] = round(linked.thrust_limit*100) + var/total_thrust = 0 var/list/enginfo[0] - for(var/datum/ship_engine/E in engines) + for(var/datum/ship_engine/E in linked.engines) var/list/rdata[0] rdata["eng_type"] = E.name rdata["eng_on"] = E.is_on() @@ -48,54 +26,70 @@ rdata["eng_thrust_limiter"] = round(E.get_thrust_limit()*100) rdata["eng_status"] = E.get_status() rdata["eng_reference"] = "\ref[E]" + total_thrust += E.get_thrust() enginfo.Add(list(rdata)) data["engines_info"] = enginfo + data["total_thrust"] = total_thrust ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "engines_control.tmpl", "[linked.name] Engines Control", 380, 530) + ui = new(user, src, ui_key, "engines_control.tmpl", "[linked.name] Engines Control", 390, 530) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) -/obj/machinery/computer/engines/Topic(href, href_list) +/obj/machinery/computer/ship/engines/OnTopic(var/mob/user, var/list/href_list, state) if(..()) - return 1 + return ..() if(href_list["state"]) - state = href_list["state"] + display_state = href_list["state"] + return TOPIC_REFRESH + + if(href_list["global_toggle"]) + linked.engines_state = !linked.engines_state + for(var/datum/ship_engine/E in linked.engines) + if(linked.engines_state == !E.is_on()) + E.toggle() + return TOPIC_REFRESH + + if(href_list["set_global_limit"]) + var/newlim = input("Input new thrust limit (0..100%)", "Thrust limit", linked.thrust_limit*100) as num + if(!CanInteract(user, state)) + return TOPIC_NOACTION + linked.thrust_limit = CLAMP(newlim/100, 0, 1) + for(var/datum/ship_engine/E in linked.engines) + E.set_thrust_limit(linked.thrust_limit) + return TOPIC_REFRESH + + if(href_list["global_limit"]) + linked.thrust_limit = CLAMP(linked.thrust_limit + text2num(href_list["global_limit"]), 0, 1) + for(var/datum/ship_engine/E in linked.engines) + E.set_thrust_limit(linked.thrust_limit) + return TOPIC_REFRESH if(href_list["engine"]) if(href_list["set_limit"]) var/datum/ship_engine/E = locate(href_list["engine"]) var/newlim = input("Input new thrust limit (0..100)", "Thrust limit", E.get_thrust_limit()) as num + if(!CanInteract(user, state)) + return var/limit = CLAMP(newlim/100, 0, 1) - if(E) + if(istype(E)) E.set_thrust_limit(limit) - + return TOPIC_REFRESH if(href_list["limit"]) var/datum/ship_engine/E = locate(href_list["engine"]) var/limit = CLAMP(E.get_thrust_limit() + text2num(href_list["limit"]), 0, 1) - if(E) + if(istype(E)) E.set_thrust_limit(limit) + return TOPIC_REFRESH if(href_list["toggle"]) var/datum/ship_engine/E = locate(href_list["engine"]) - if(E) + if(istype(E)) E.toggle() - - add_fingerprint(usr) - updateUsrDialog() - -/obj/machinery/computer/engines/proc/burn() - if(engines.len == 0) - return 0 - var/res = 0 - for(var/datum/ship_engine/E in engines) - res |= E.burn() - return res - -/obj/machinery/computer/engines/proc/get_total_thrust() - for(var/datum/ship_engine/E in engines) - . += E.get_thrust() + return TOPIC_REFRESH + return TOPIC_REFRESH + return TOPIC_NOACTION \ No newline at end of file diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index 0249fae482..51ffef4924 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -1,151 +1,188 @@ -/obj/machinery/computer/helm +// LEGACY_RECORD_STRUCTURE(all_waypoints, waypoint) +GLOBAL_LIST_EMPTY(all_waypoints) +/datum/computer_file/data/waypoint + var/list/fields + filetype = "WPT" + +/datum/computer_file/data/waypoint/New() + ..() + fields = list() + GLOB.all_waypoints.Add(src) + +/datum/computer_file/data/waypoint/Destroy() + . = ..() + GLOB.all_waypoints.Remove(src); +// End LEGACY_RECORD_STRUCTURE(all_waypoints, waypoint) + +/obj/machinery/computer/ship/helm name = "helm control console" - icon_keyboard = "med_key" - icon_screen = "id" - var/state = "status" - var/obj/effect/map/ship/linked //connected overmap object + icon_keyboard = "teleport_key" + icon_screen = "helm" + light_color = "#7faaff" + core_skill = /datum/skill/pilot var/autopilot = 0 - var/manual_control = 0 var/list/known_sectors = list() var/dx //desitnation var/dy //coordinates + var/speedlimit = 1/(20 SECONDS) //top speed for autopilot, 5 + var/accellimit = 0.001 //manual limiter for acceleration + req_one_access = list(access_pilot) -/obj/machinery/computer/helm/Initialize() +/obj/machinery/computer/ship/helm/Initialize() . = ..() - linked = map_sectors["[z]"] - if (linked) - if(!linked.nav_control) - linked.nav_control = src - testing("Helm console at level [z] found a corresponding overmap object '[linked.name]'.") - else - testing("Helm console at level [z] was unable to find a corresponding overmap object.") + get_known_sectors() - for(var/level in map_sectors) - var/obj/effect/map/sector/S = map_sectors["[level]"] - if (istype(S) && S.always_known) - var/datum/data/record/R = new() +/obj/machinery/computer/ship/helm/proc/get_known_sectors() + var/area/overmap/map = locate() in world + for(var/obj/effect/overmap/visitable/sector/S in map) + if (S.known) + var/datum/computer_file/data/waypoint/R = new() R.fields["name"] = S.name R.fields["x"] = S.x R.fields["y"] = S.y - known_sectors += R + known_sectors[S.name] = R -/obj/machinery/computer/helm/process() +/obj/machinery/computer/ship/helm/process() ..() if (autopilot && dx && dy) - var/turf/T = locate(dx,dy,1) + var/turf/T = locate(dx,dy,global.using_map.overmap_z) if(linked.loc == T) if(linked.is_still()) autopilot = 0 else linked.decelerate() - - var/brake_path = linked.get_brake_path() - - if(get_dist(linked.loc, T) > brake_path) - linked.accelerate(get_dir(linked.loc, T)) else - linked.decelerate() + var/brake_path = linked.get_brake_path() + var/direction = get_dir(linked.loc, T) + var/acceleration = min(linked.get_acceleration(), accellimit) + var/speed = linked.get_speed() + var/heading = linked.get_heading() + // Destination is current grid or speedlimit is exceeded + if ((get_dist(linked.loc, T) <= brake_path) || speed > speedlimit) + linked.decelerate() + // Heading does not match direction + else if (heading & ~direction) + linked.accelerate(turn(heading & ~direction, 180), accellimit) + // All other cases, move toward direction + else if (speed + acceleration <= speedlimit) + linked.accelerate(direction, accellimit) + linked.operator_skill = null//if this is on you can't dodge meteors return -/obj/machinery/computer/helm/relaymove(var/mob/user, direction) - if(manual_control && linked) - linked.relaymove(user,direction) +/obj/machinery/computer/ship/helm/relaymove(var/mob/user, direction) + if(viewing_overmap(user) && linked) + if(prob(user.skill_fail_chance(/datum/skill/pilot, 50, linked.skill_needed, factor = 1))) + direction = turn(direction,pick(90,-90)) + linked.relaymove(user, direction, accellimit) return 1 -/obj/machinery/computer/helm/check_eye(var/mob/user as mob) - if (!manual_control) - return -1 - if (!get_dist(user, src) > 1 || user.blinded || !linked ) - return -1 - return 0 - -/obj/machinery/computer/helm/attack_hand(var/mob/user as mob) - if(..()) - user.unset_machine() - manual_control = 0 - return - - if(!isAI(user)) - user.set_machine(src) - if(linked) - user.reset_view(linked) - - ui_interact(user) - -/obj/machinery/computer/helm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - if(!linked) - return - +/obj/machinery/computer/ship/helm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] - data["state"] = state - data["sector"] = linked.current_sector ? linked.current_sector.name : "Deep Space" - data["sector_info"] = linked.current_sector ? linked.current_sector.desc : "Not Available" - data["s_x"] = linked.x - data["s_y"] = linked.y - data["dest"] = dy && dx - data["d_x"] = dx - data["d_y"] = dy - data["speed"] = linked.get_speed() - data["accel"] = round(linked.get_acceleration()) - data["heading"] = linked.get_heading() ? dir2angle(linked.get_heading()) : 0 - data["autopilot"] = autopilot - data["manual_control"] = manual_control + if(!linked) + display_reconnect_dialog(user, "helm") + else + var/turf/T = get_turf(linked) + var/obj/effect/overmap/visitable/sector/current_sector = locate() in T - var/list/locations[0] - for (var/datum/data/record/R in known_sectors) - var/list/rdata[0] - rdata["name"] = R.fields["name"] - rdata["x"] = R.fields["x"] - rdata["y"] = R.fields["y"] - rdata["reference"] = "\ref[R]" - locations.Add(list(rdata)) + data["sector"] = current_sector ? current_sector.name : "Deep Space" + data["sector_info"] = current_sector ? current_sector.desc : "Not Available" + data["landed"] = linked.get_landed_info() + data["s_x"] = linked.x + data["s_y"] = linked.y + data["dest"] = dy && dx + data["d_x"] = dx + data["d_y"] = dy + data["speedlimit"] = speedlimit ? speedlimit*1000 : "Halted" + data["accel"] = min(round(linked.get_acceleration()*1000, 0.01),accellimit*1000) + data["heading"] = linked.get_heading_degrees() + data["autopilot"] = autopilot + data["manual_control"] = viewing_overmap(user) + data["canburn"] = linked.can_burn() + data["accellimit"] = accellimit*1000 - data["locations"] = locations + var/speed = round(linked.get_speed()*1000, 0.01) + if(linked.get_speed() < SHIP_SPEED_SLOW) + speed = "[speed]" + if(linked.get_speed() > SHIP_SPEED_FAST) + speed = "[speed]" + data["speed"] = speed - ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) - if (!ui) - ui = new(user, src, ui_key, "helm.tmpl", "[linked.name] Helm Control", 380, 530) - ui.set_initial_data(data) - ui.open() - ui.set_auto_update(1) + if(linked.get_speed()) + data["ETAnext"] = "[round(linked.ETA()/10)] seconds" + else + data["ETAnext"] = "N/A" -/obj/machinery/computer/helm/Topic(href, href_list) + var/list/locations[0] + for (var/key in known_sectors) + var/datum/computer_file/data/waypoint/R = known_sectors[key] + var/list/rdata[0] + rdata["name"] = R.fields["name"] + rdata["x"] = R.fields["x"] + rdata["y"] = R.fields["y"] + rdata["reference"] = "\ref[R]" + locations.Add(list(rdata)) + + data["locations"] = locations + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "helm.tmpl", "[linked.name] Helm Control", 565, 545) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/computer/ship/helm/OnTopic(var/mob/user, var/list/href_list, state) if(..()) - return 1 + return TOPIC_HANDLED - if (!linked) - return + if(!linked) + return TOPIC_HANDLED if (href_list["add"]) - var/datum/data/record/R = new() + var/datum/computer_file/data/waypoint/R = new() var/sec_name = input("Input naviation entry name", "New navigation entry", "Sector #[known_sectors.len]") as text + if(!CanInteract(user,state)) + return TOPIC_NOACTION if(!sec_name) sec_name = "Sector #[known_sectors.len]" R.fields["name"] = sec_name + if(sec_name in known_sectors) + to_chat(user, "Sector with that name already exists, please input a different name.") + return TOPIC_REFRESH switch(href_list["add"]) if("current") R.fields["x"] = linked.x R.fields["y"] = linked.y if("new") var/newx = input("Input new entry x coordinate", "Coordinate input", linked.x) as num - R.fields["x"] = CLAMP(newx, 1, world.maxx) + if(!CanInteract(user,state)) + return TOPIC_REFRESH var/newy = input("Input new entry y coordinate", "Coordinate input", linked.y) as num + if(!CanInteract(user,state)) + return TOPIC_NOACTION + R.fields["x"] = CLAMP(newx, 1, world.maxx) R.fields["y"] = CLAMP(newy, 1, world.maxy) - known_sectors += R + known_sectors[sec_name] = R if (href_list["remove"]) - var/datum/data/record/R = locate(href_list["remove"]) - known_sectors.Remove(R) + var/datum/computer_file/data/waypoint/R = locate(href_list["remove"]) + if(R) + known_sectors.Remove(R.fields["name"]) + qdel(R) if (href_list["setx"]) var/newx = input("Input new destiniation x coordinate", "Coordinate input", dx) as num|null + if(!CanInteract(user,state)) + return if (newx) dx = CLAMP(newx, 1, world.maxx) if (href_list["sety"]) var/newy = input("Input new destiniation y coordinate", "Coordinate input", dy) as num|null + if(!CanInteract(user,state)) + return if (newy) dy = CLAMP(newy, 1, world.maxy) @@ -157,9 +194,20 @@ dx = 0 dy = 0 + if (href_list["speedlimit"]) + var/newlimit = input("Input new speed limit for autopilot (0 to brake)", "Autopilot speed limit", speedlimit*1000) as num|null + if(newlimit) + speedlimit = CLAMP(newlimit/1000, 0, 100) + if (href_list["accellimit"]) + var/newlimit = input("Input new acceleration limit", "Acceleration limit", accellimit*1000) as num|null + if(newlimit) + accellimit = max(newlimit/1000, 0) + if (href_list["move"]) var/ndir = text2num(href_list["move"]) - linked.relaymove(usr, ndir) + if(prob(user.skill_fail_chance(/datum/skill/pilot, 50, linked.skill_needed, factor = 1))) + ndir = turn(ndir,pick(90,-90)) + linked.relaymove(user, ndir, accellimit) if (href_list["brake"]) linked.decelerate() @@ -168,10 +216,71 @@ autopilot = !autopilot if (href_list["manual"]) - manual_control = !manual_control + viewing_overmap(user) ? unlook(user) : look(user) - if (href_list["state"]) - state = href_list["state"] - add_fingerprint(usr) + add_fingerprint(user) updateUsrDialog() + +/obj/machinery/computer/ship/navigation + name = "navigation console" + icon_keyboard = "generic_key" + icon_screen = "helm" + +/obj/machinery/computer/ship/navigation/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + if(!linked) + display_reconnect_dialog(user, "Navigation") + return + + var/data[0] + + + var/turf/T = get_turf(linked) + var/obj/effect/overmap/visitable/sector/current_sector = locate() in T + + data["sector"] = current_sector ? current_sector.name : "Deep Space" + data["sector_info"] = current_sector ? current_sector.desc : "Not Available" + data["s_x"] = linked.x + data["s_y"] = linked.y + data["speed"] = round(linked.get_speed()*1000, 0.01) + data["accel"] = round(linked.get_acceleration()*1000, 0.01) + data["heading"] = linked.get_heading_degrees() + data["viewing"] = viewing_overmap(user) + + if(linked.get_speed()) + data["ETAnext"] = "[round(linked.ETA()/10)] seconds" + else + data["ETAnext"] = "N/A" + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "nav.tmpl", "[linked.name] Navigation Screen", 380, 530) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/computer/ship/navigation/OnTopic(var/mob/user, var/list/href_list) + if(..()) + return TOPIC_HANDLED + + if (!linked) + return TOPIC_NOACTION + + if (href_list["viewing"]) + viewing_overmap(user) ? unlook(user) : look(user) + return TOPIC_REFRESH + +/obj/machinery/computer/ship/navigation/telescreen //little hacky but it's only used on one ship so it should be okay + icon_state = "tele_nav" + icon_keyboard = null + icon_screen = null + density = 0 + +/obj/machinery/computer/ship/navigation/telescreen/update_icon() + if(stat & NOPOWER || stat & BROKEN) + icon_state = "tele_off" + set_light(0) + else + icon_state = "tele_nav" + set_light(light_range_on, light_power_on) + ..() diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm new file mode 100644 index 0000000000..08167b73da --- /dev/null +++ b/code/modules/overmap/ships/computers/sensors.dm @@ -0,0 +1,226 @@ +/obj/machinery/computer/ship/sensors + name = "sensors console" + icon_keyboard = "teleport_key" + icon_screen = "teleport" + light_color = "#77fff8" + extra_view = 4 + var/obj/machinery/shipsensors/sensors + +/obj/machinery/computer/ship/sensors/attempt_hook_up(obj/effect/overmap/visitable/ship/sector) + if(!(. = ..())) + return + find_sensors() + +/obj/machinery/computer/ship/sensors/proc/find_sensors() + if(!linked) + return + for(var/obj/machinery/shipsensors/S in global.machines) + if(linked.check_ownership(S)) + sensors = S + break + +/obj/machinery/computer/ship/sensors/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + if(!linked) + display_reconnect_dialog(user, "sensors") + return + + var/data[0] + + data["viewing"] = viewing_overmap(user) + if(sensors) + data["on"] = sensors.use_power + data["range"] = sensors.range + data["health"] = sensors.health + data["max_health"] = sensors.max_health + data["heat"] = sensors.heat + data["critical_heat"] = sensors.critical_heat + if(sensors.health == 0) + data["status"] = "DESTROYED" + else if(!sensors.powered()) + data["status"] = "NO POWER" + else if(!sensors.in_vacuum()) + data["status"] = "VACUUM SEAL BROKEN" + else + data["status"] = "OK" + var/list/contacts = list() + for(var/obj/effect/overmap/O in view(7,linked)) + if(linked == O) + continue + if(!O.scannable) + continue + var/bearing = round(90 - ATAN2(O.x - linked.x, O.y - linked.y),5) + if(bearing < 0) + bearing += 360 + contacts.Add(list(list("name"=O.name, "ref"="\ref[O]", "bearing"=bearing))) + if(contacts.len) + data["contacts"] = contacts + else + data["status"] = "MISSING" + data["range"] = "N/A" + data["on"] = 0 + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "shipsensors.tmpl", "[linked.name] Sensors Control", 420, 530, src) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/computer/ship/sensors/OnTopic(var/mob/user, var/list/href_list, state) + if(..()) + return TOPIC_HANDLED + + if (!linked) + return TOPIC_NOACTION + + if (href_list["viewing"]) + if(user && !isAI(user)) + viewing_overmap(user) ? unlook(user) : look(user) + return TOPIC_REFRESH + + if (href_list["link"]) + find_sensors() + return TOPIC_REFRESH + + if(sensors) + if (href_list["range"]) + var/nrange = input("Set new sensors range", "Sensor range", sensors.range) as num|null + if(!CanInteract(user,state)) + return TOPIC_NOACTION + if (nrange) + sensors.set_range(CLAMP(nrange, 1, world.view)) + return TOPIC_REFRESH + if (href_list["toggle"]) + sensors.toggle() + return TOPIC_REFRESH + + if (href_list["scan"]) + var/obj/effect/overmap/O = locate(href_list["scan"]) + if(istype(O) && !QDELETED(O) && (O in view(7,linked))) + playsound(loc, "sound/machines/dotprinter.ogg", 30, 1) + new/obj/item/weapon/paper/(get_turf(src), O.get_scan_data(user), "paper (Sensor Scan - [O])") + return TOPIC_HANDLED + +/obj/machinery/computer/ship/sensors/process() + ..() + if(!linked) + return + if(sensors && sensors.use_power && sensors.powered()) + var/sensor_range = round(sensors.range*1.5) + 1 + linked.set_light(sensor_range + 0.5, 4) + else + linked.set_light(0) + +/obj/machinery/shipsensors + name = "sensors suite" + desc = "Long range gravity scanner with various other sensors, used to detect irregularities in surrounding space. Can only run in vacuum to protect delicate quantum BS elements." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "sensors" + anchored = 1 + var/max_health = 200 + var/health = 200 + var/critical_heat = 50 // sparks and takes damage when active & above this heat + var/heat_reduction = 1.5 // mitigates this much heat per tick + var/heat = 0 + var/range = 1 + idle_power_usage = 5000 + +/obj/machinery/shipsensors/attackby(obj/item/weapon/W, mob/user) + var/damage = max_health - health + if(damage && istype(W, /obj/item/weapon/weldingtool)) + + var/obj/item/weapon/weldingtool/WT = W + + if(!WT.isOn()) + return + + if(WT.remove_fuel(0,user)) + to_chat(user, "You start repairing the damage to [src].") + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, max(5, damage / 5), src) && WT && WT.isOn()) + to_chat(user, "You finish repairing the damage to [src].") + take_damage(-damage) + else + to_chat(user, "You need more welding fuel to complete this task.") + return + return + ..() + +/obj/machinery/shipsensors/proc/in_vacuum() + var/turf/T=get_turf(src) + if(istype(T)) + var/datum/gas_mixture/environment = T.return_air() + if(environment && environment.return_pressure() > MINIMUM_PRESSURE_DIFFERENCE_TO_SUSPEND) + return 0 + return 1 + +/obj/machinery/shipsensors/update_icon() + if(use_power) + icon_state = "sensors" + else + icon_state = "sensors_off" + ..() + +/obj/machinery/shipsensors/examine(mob/user) + . = ..() + if(health <= 0) + to_chat(user, "\The [src] is wrecked.") + else if(health < max_health * 0.25) + to_chat(user, "\The [src] looks like it's about to break!") + else if(health < max_health * 0.5) + to_chat(user, "\The [src] looks seriously damaged!") + else if(health < max_health * 0.75) + to_chat(user, "\The [src] shows signs of damage!") + +/obj/machinery/shipsensors/bullet_act(var/obj/item/projectile/Proj) + take_damage(Proj.get_structure_damage()) + ..() + +/obj/machinery/shipsensors/proc/toggle() + if(!use_power && (health == 0 || !in_vacuum())) + return // No turning on if broken or misplaced. + if(!use_power) //need some juice to kickstart + use_power_oneoff(idle_power_usage*5) + update_use_power(!use_power) + update_icon() + +/obj/machinery/shipsensors/process() + if(use_power) //can't run in non-vacuum + if(!in_vacuum()) + toggle() + if(heat > critical_heat) + src.visible_message("\The [src] violently spews out sparks!") + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + + take_damage(rand(10,50)) + toggle() + heat += idle_power_usage/15000 + + if (heat > 0) + heat = max(0, heat - heat_reduction) + +/obj/machinery/shipsensors/power_change() + . = ..() + if(use_power && !powered()) + toggle() + +/obj/machinery/shipsensors/proc/set_range(nrange) + range = nrange + change_power_consumption(1500 * (range**2), USE_POWER_IDLE) //Exponential increase, also affects speed of overheating + +/obj/machinery/shipsensors/emp_act(severity) + if(!use_power) + return + take_damage(20/severity) + toggle() + +/obj/machinery/shipsensors/take_damage(value) + health = min(max(health - value, 0),max_health) + if(use_power && health == 0) + toggle() + +/obj/machinery/shipsensors/weak + heat_reduction = 0.2 + desc = "Miniturized gravity scanner with various other sensors, used to detect irregularities in surrounding space. Can only run in vacuum to protect delicate quantum BS elements." \ No newline at end of file diff --git a/code/modules/overmap/ships/computers/ship.dm b/code/modules/overmap/ships/computers/ship.dm new file mode 100644 index 0000000000..4f2c88c13a --- /dev/null +++ b/code/modules/overmap/ships/computers/ship.dm @@ -0,0 +1,99 @@ +/* +While these computers can be placed anywhere, they will only function if placed on either a non-space, non-shuttle turf +with an /obj/effect/overmap/visitable/ship present elsewhere on that z level, or else placed in a shuttle area with an /obj/effect/overmap/visitable/ship +somewhere on that shuttle. Subtypes of these can be then used to perform ship overmap movement functions. +*/ +/obj/machinery/computer/ship + var/obj/effect/overmap/visitable/ship/linked + var/list/viewers // Weakrefs to mobs in direct-view mode. + var/extra_view = 0 // how much the view is increased by when the mob is in overmap mode. + +// A late init operation called in SSshuttles, used to attach the thing to the right ship. +/obj/machinery/computer/ship/proc/attempt_hook_up(obj/effect/overmap/visitable/ship/sector) + if(!istype(sector)) + return + if(sector.check_ownership(src)) + linked = sector + return 1 + +/obj/machinery/computer/ship/proc/sync_linked() + var/obj/effect/overmap/visitable/ship/sector = map_sectors["[z]"] + if(!sector) + return + return attempt_hook_up_recursive(sector) + +/obj/machinery/computer/ship/proc/attempt_hook_up_recursive(obj/effect/overmap/visitable/ship/sector) + if(attempt_hook_up(sector)) + return sector + for(var/obj/effect/overmap/visitable/ship/candidate in sector) + if((. = .(candidate))) + return + +/obj/machinery/computer/ship/proc/display_reconnect_dialog(var/mob/user, var/flavor) + var/datum/browser/popup = new (user, "[src]", "[src]") + popup.set_content("
Error
Unable to connect to [flavor].
Reconnect
") + popup.open() + +// In computer_shims for now - we had to define it. +// /obj/machinery/computer/ship/interface_interact(var/mob/user) +// ui_interact(user) +// return TRUE + +/obj/machinery/computer/ship/OnTopic(var/mob/user, var/list/href_list) + if(..()) + return TOPIC_HANDLED + if(href_list["sync"]) + sync_linked() + return TOPIC_REFRESH + if(href_list["close"]) + unlook(user) + user.unset_machine() + return TOPIC_HANDLED + return TOPIC_NOACTION + +// Management of mob view displacement. look to shift view to the ship on the overmap; unlook to shift back. + +/obj/machinery/computer/ship/proc/look(var/mob/user) + if(linked) + user.reset_view(linked) + if(user.client) + user.client.view = world.view + extra_view + GLOB.moved_event.register(user, src, /obj/machinery/computer/ship/proc/unlook) + // TODO GLOB.stat_set_event.register(user, src, /obj/machinery/computer/ship/proc/unlook) + LAZYDISTINCTADD(viewers, weakref(user)) + +/obj/machinery/computer/ship/proc/unlook(var/mob/user) + user.reset_view() + if(user.client) + user.client.view = world.view + GLOB.moved_event.unregister(user, src, /obj/machinery/computer/ship/proc/unlook) + // TODO GLOB.stat_set_event.unregister(user, src, /obj/machinery/computer/ship/proc/unlook) + LAZYREMOVE(viewers, weakref(user)) + +/obj/machinery/computer/ship/proc/viewing_overmap(mob/user) + return (weakref(user) in viewers) + +/obj/machinery/computer/ship/CouldNotUseTopic(mob/user) + . = ..() + unlook(user) + +/obj/machinery/computer/ship/CouldUseTopic(mob/user) + . = ..() + if(viewing_overmap(user)) + look(user) + +/obj/machinery/computer/ship/check_eye(var/mob/user) + if (!get_dist(user, src) > 1 || user.blinded || !linked ) + unlook(user) + return -1 + else + return 0 + +/obj/machinery/computer/ship/sensors/Destroy() + sensors = null + if(LAZYLEN(viewers)) + for(var/weakref/W in viewers) + var/M = W.resolve() + if(M) + unlook(M) + . = ..() \ No newline at end of file diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm index 09bf47512d..726c339178 100644 --- a/code/modules/overmap/ships/computers/shuttle.dm +++ b/code/modules/overmap/ships/computers/shuttle.dm @@ -1,139 +1,45 @@ //Shuttle controller computer for shuttles going between sectors -/datum/shuttle/ferry/var/range = 0 //how many overmap tiles can shuttle go, for picking destinatiosn and returning. /obj/machinery/computer/shuttle_control/explore - name = "exploration shuttle console" - shuttle_tag = "Exploration" - req_access = list() - var/landing_type //area for shuttle ship-side - var/obj/effect/map/destination //current destination - var/obj/effect/map/home //current destination + name = "general shuttle control console" + ui_template = "shuttle_control_console_exploration.tmpl" -/obj/machinery/computer/shuttle_control/explore/Initialize() +/obj/machinery/computer/shuttle_control/explore/get_ui_data(var/datum/shuttle/autodock/overmap/shuttle) . = ..() - home = map_sectors["[z]"] - shuttle_tag = "[shuttle_tag]-[z]" - if(!shuttle_controller.shuttles[shuttle_tag]) - var/datum/shuttle/ferry/shuttle = new() - shuttle.warmup_time = 10 - shuttle.area_station = locate(landing_type) - shuttle.area_offsite = shuttle.area_station - shuttle_controller.shuttles[shuttle_tag] = shuttle - shuttle_controller.process_shuttles += shuttle - testing("Exploration shuttle '[shuttle_tag]' at z-level [z] successfully added.") + if(istype(shuttle)) + var/total_gas = 0 + for(var/obj/structure/fuel_port/FP in shuttle.fuel_ports) //loop through fuel ports + var/obj/item/weapon/tank/fuel_tank = locate() in FP + if(fuel_tank) + total_gas += fuel_tank.air_contents.total_moles -//Sets destination to new sector. Can be null. -/obj/machinery/computer/shuttle_control/explore/proc/update_destination(var/obj/effect/map/D) - destination = D - if(destination && shuttle_controller.shuttles[shuttle_tag]) - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] - shuttle.area_offsite = destination.shuttle_landing - testing("Shuttle controller [shuttle_tag] now sends shuttle to [destination]") - shuttle_controller.shuttles[shuttle_tag] = shuttle + var/fuel_span = "good" + if(total_gas < shuttle.fuel_consumption * 2) + fuel_span = "bad" -//Gets all sectors with landing zones in shuttle's range -/obj/machinery/computer/shuttle_control/explore/proc/get_possible_destinations() - var/list/res = list() - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] - for (var/obj/effect/map/S in orange(shuttle.range, home)) - if(S.shuttle_landing) - res += S - return res + . += list( + "destination_name" = shuttle.get_destination_name(), + "can_pick" = shuttle.moving_status == SHUTTLE_IDLE, + "fuel_usage" = shuttle.fuel_consumption * 100, + "remaining_fuel" = round(total_gas, 0.01) * 100, + "fuel_span" = fuel_span + ) -//Checks if current destination is still reachable -/obj/machinery/computer/shuttle_control/explore/proc/check_destination() - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] - return shuttle && destination && get_dist(home, destination) <= shuttle.range +/obj/machinery/computer/shuttle_control/explore/handle_topic_href(var/datum/shuttle/autodock/overmap/shuttle, var/list/href_list) + if(ismob(usr)) + var/mob/user = usr + shuttle.operator_skill = user.get_skill_value(/datum/skill/pilot) -/obj/machinery/computer/shuttle_control/explore/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - var/data[0] - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] - if (!istype(shuttle)) - return - - //If we are already there, or can't reach place anymore, reset destination - if(!shuttle.location && !check_destination()) - destination = null - - //check if shuttle can fly at all - var/can_go = !isnull(destination) - var/current_destination = destination ? destination.name : "None" - //shuttle doesn't need destination set to return home, as long as it's in range. - if(shuttle.location) - current_destination = "Return" - var/area/offsite = shuttle.area_offsite - var/obj/effect/map/cur_loc = map_sectors["[offsite.z]"] - can_go = (get_dist(home,cur_loc) <= shuttle.range) - - //disable picking locations if there are none, or shuttle is already off-site - var/list/possible_d = get_possible_destinations() - var/can_pick = !shuttle.location && possible_d.len - - var/shuttle_state - switch(shuttle.moving_status) - if(SHUTTLE_IDLE) shuttle_state = "idle" - if(SHUTTLE_WARMUP) shuttle_state = "warmup" - if(SHUTTLE_INTRANSIT) shuttle_state = "in_transit" - - var/shuttle_status - switch (shuttle.process_state) - if(IDLE_STATE) - if (shuttle.in_use) - shuttle_status = "Busy." - else if (!shuttle.location) - shuttle_status = "Standing-by at station." - else - shuttle_status = "Standing-by at offsite location." - if(WAIT_LAUNCH, FORCE_LAUNCH) - shuttle_status = "Shuttle has received command and will depart shortly." - if(WAIT_ARRIVE) - shuttle_status = "Proceeding to destination." - if(WAIT_FINISH) - shuttle_status = "Arriving at destination now." - - data = list( - "destination_name" = current_destination, - "can_pick" = can_pick, - "shuttle_status" = shuttle_status, - "shuttle_state" = shuttle_state, - "has_docking" = shuttle.docking_controller? 1 : 0, - "docking_status" = shuttle.docking_controller? shuttle.docking_controller.get_docking_status() : null, - "docking_override" = shuttle.docking_controller? shuttle.docking_controller.override_enabled : null, - "can_launch" = can_go && shuttle.can_launch(), - "can_cancel" = can_go && shuttle.can_cancel(), - "can_force" = can_go && shuttle.can_force(), - ) - - ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) - - if (!ui) - ui = new(user, src, ui_key, "shuttle_control_console_exploration.tmpl", "[shuttle_tag] Shuttle Control", 470, 310) - ui.set_initial_data(data) - ui.open() - ui.set_auto_update(1) - -/obj/machinery/computer/shuttle_control/explore/Topic(href, href_list) - if(..()) - return 1 - - usr.set_machine(src) - src.add_fingerprint(usr) - - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] - if (!istype(shuttle)) + if((. = ..()) != null) return if(href_list["pick"]) - var/obj/effect/map/self = map_sectors["[z]"] - if(self) - var/list/possible_d = get_possible_destinations() - var/obj/effect/map/D - if(possible_d.len) - D = input("Choose shuttle destination", "Shuttle Destination") as null|anything in possible_d - update_destination(D) - - if(href_list["move"]) - shuttle.launch(src) - if(href_list["force"]) - shuttle.force_launch(src) - else if(href_list["cancel"]) - shuttle.cancel_launch(src) \ No newline at end of file + var/list/possible_d = shuttle.get_possible_destinations() + var/D + if(possible_d.len) + D = input("Choose shuttle destination", "Shuttle Destination") as null|anything in possible_d + else + to_chat(usr,"No valid landing sites in range.") + possible_d = shuttle.get_possible_destinations() + if(CanInteract(usr, global.default_state) && (D in possible_d)) + shuttle.set_destination(possible_d[D]) + return TOPIC_REFRESH diff --git a/code/modules/overmap/ships/engines/engine.dm b/code/modules/overmap/ships/engines/engine.dm index 6e927e6431..a5d3bc7016 100644 --- a/code/modules/overmap/ships/engines/engine.dm +++ b/code/modules/overmap/ships/engines/engine.dm @@ -3,58 +3,43 @@ var/list/ship_engines = list() /datum/ship_engine var/name = "ship engine" - var/obj/machinery/engine //actual engine object - var/zlevel = 0 + var/obj/machinery/holder //actual engine object -/datum/ship_engine/New(var/obj/machinery/holder) - engine = holder - zlevel = holder.z - for(var/obj/machinery/computer/engines/E in machines) - if (E.z == zlevel && !(src in E.engines)) - E.engines += src - break +/datum/ship_engine/New(var/obj/machinery/_holder) + ..() + holder = _holder + ship_engines += src -//Tries to fire the engine. If successfull, returns 1 +/datum/ship_engine/proc/can_burn() + return 0 + +//Tries to fire the engine. Returns thrust /datum/ship_engine/proc/burn() - if(!engine) - die() - return 1 + return 0 //Returns status string for this engine /datum/ship_engine/proc/get_status() - if(!engine) - die() return "All systems nominal" /datum/ship_engine/proc/get_thrust() - if(!engine) - die() - return 100 + return 1 //Sets thrust limiter, a number between 0 and 1 /datum/ship_engine/proc/set_thrust_limit(var/new_limit) - if(!engine) - die() return 1 /datum/ship_engine/proc/get_thrust_limit() - if(!engine) - die() return 1 /datum/ship_engine/proc/is_on() - if(!engine) - die() return 1 /datum/ship_engine/proc/toggle() - if(!engine) - die() return 1 -/datum/ship_engine/proc/die() - for(var/obj/machinery/computer/engines/E in machines) - if (E.z == zlevel) - E.engines -= src - break - qdel(src) \ No newline at end of file +/datum/ship_engine/Destroy() + ship_engines -= src + for(var/obj/effect/overmap/visitable/ship/S in SSshuttles.ships) + S.engines -= src + holder = null + . = ..() \ No newline at end of file diff --git a/code/modules/overmap/ships/engines/gas_thruster.dm b/code/modules/overmap/ships/engines/gas_thruster.dm new file mode 100644 index 0000000000..4d6a048a3e --- /dev/null +++ b/code/modules/overmap/ships/engines/gas_thruster.dm @@ -0,0 +1,218 @@ +//Gas nozzle engine +/datum/ship_engine/gas_thruster + name = "gas thruster" + var/obj/machinery/atmospherics/unary/engine/nozzle + +/datum/ship_engine/gas_thruster/New(var/obj/machinery/_holder) + ..() + nozzle = _holder + +/datum/ship_engine/gas_thruster/Destroy() + nozzle = null + . = ..() + +/datum/ship_engine/gas_thruster/get_status() + return nozzle.get_status() + +/datum/ship_engine/gas_thruster/get_thrust() + return nozzle.get_thrust() + +/datum/ship_engine/gas_thruster/burn() + return nozzle.burn() + +/datum/ship_engine/gas_thruster/set_thrust_limit(var/new_limit) + nozzle.thrust_limit = new_limit + +/datum/ship_engine/gas_thruster/get_thrust_limit() + return nozzle.thrust_limit + +/datum/ship_engine/gas_thruster/is_on() + if(nozzle.use_power && nozzle.operable()) + if(nozzle.next_on > world.time) + return -1 + else + return 1 + return 0 + +/datum/ship_engine/gas_thruster/toggle() + if(nozzle.use_power) + nozzle.update_use_power(USE_POWER_OFF) + else + if(nozzle.blockage) + if(nozzle.check_blockage()) + return + nozzle.update_use_power(USE_POWER_IDLE) + if(nozzle.stat & NOPOWER)//try again + nozzle.power_change() + if(nozzle.is_on())//if everything is in working order, start booting! + nozzle.next_on = world.time + nozzle.boot_time + +/datum/ship_engine/gas_thruster/can_burn() + return nozzle.is_on() && nozzle.check_fuel() + +//Actual thermal nozzle engine object + +/obj/machinery/atmospherics/unary/engine + name = "rocket nozzle" + desc = "Simple rocket nozzle, expelling gas at hypersonic velocities to propell the ship." + icon = 'icons/turf/shuttle_parts.dmi' + icon_state = "nozzle" + opacity = 1 + density = 1 + can_atmos_pass = ATMOS_PASS_NO + connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_FUEL + + // construct_state = /decl/machine_construction/default/panel_closed + // maximum_component_parts = list(/obj/item/weapon/stock_parts = 6)//don't want too many, let upgraded component shine + // uncreated_component_parts = list(/obj/item/weapon/stock_parts/power/apc/buildable = 1) + + use_power = USE_POWER_OFF + power_channel = EQUIP + idle_power_usage = 21600 //6 Wh per tick for default 2 capacitor. Gives them a reason to turn it off, really to nerf backup battery + + var/datum/ship_engine/gas_thruster/controller + var/thrust_limit = 1 //Value between 1 and 0 to limit the resulting thrust + var/volume_per_burn = 15 //20 litres(with bin) + var/charge_per_burn = 36000 //10Wh for default 2 capacitor, chews through that battery power! Makes a trade off of fuel efficient vs energy efficient + var/boot_time = 35 + var/next_on + var/blockage + +/obj/machinery/atmospherics/unary/engine/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + return 0 + +/obj/machinery/atmospherics/unary/engine/Initialize() + . = ..() + controller = new(src) + update_nearby_tiles(need_rebuild=1) + + for(var/ship in SSshuttles.ships) + var/obj/effect/overmap/visitable/ship/S = ship + if(S.check_ownership(src)) + S.engines |= controller + if(dir != S.fore_dir) + set_broken(TRUE) + break + +/obj/machinery/atmospherics/unary/engine/Destroy() + QDEL_NULL(controller) + update_nearby_tiles() + . = ..() + +/obj/machinery/atmospherics/unary/engine/proc/get_status() + . = list() + .+= "Location: [get_area(src)]." + if(stat & NOPOWER) + .+= "Insufficient power to operate." + if(!check_fuel()) + .+= "Insufficient fuel for a burn." + if(stat & BROKEN) + .+= "Inoperable engine configuration." + if(blockage) + .+= "Obstruction of airflow detected." + + .+= "Propellant total mass: [round(air_contents.get_mass(),0.01)] kg." + .+= "Propellant used per burn: [round(air_contents.get_mass() * volume_per_burn * thrust_limit / air_contents.volume,0.01)] kg." + .+= "Propellant pressure: [round(air_contents.return_pressure()/1000,0.1)] MPa." + . = jointext(.,"
") + +/obj/machinery/atmospherics/unary/engine/power_change() + . = ..() + if(stat & NOPOWER) + update_use_power(USE_POWER_OFF) + +/obj/machinery/atmospherics/unary/engine/proc/is_on() + return use_power && operable() && (next_on < world.time) + +/obj/machinery/atmospherics/unary/engine/proc/check_fuel() + return air_contents.total_moles > 5 // minimum fuel usage is five moles, for EXTREMELY hot mix or super low pressure + +/obj/machinery/atmospherics/unary/engine/proc/get_thrust() + if(!is_on() || !check_fuel()) + return 0 + var/used_part = volume_per_burn * thrust_limit / air_contents.volume + . = calculate_thrust(air_contents, used_part) + return + +/obj/machinery/atmospherics/unary/engine/proc/check_blockage() + blockage = FALSE + var/exhaust_dir = reverse_direction(dir) + var/turf/A = get_step(src, exhaust_dir) + var/turf/B = A + while(isturf(A) && !(istype(A, /turf/space) || isopenspace(A))) + if((B.c_airblock(A)) & AIR_BLOCKED) + blockage = TRUE + break + B = A + A = get_step(A, exhaust_dir) + return blockage + +/obj/machinery/atmospherics/unary/engine/proc/burn() + if(!is_on()) + return 0 + if(!check_fuel() || (0 < use_power_oneoff(charge_per_burn)) || check_blockage()) + audible_message(src,"[src] coughs once and goes silent!") + update_use_power(USE_POWER_OFF) + return 0 + + var/datum/gas_mixture/removed = air_contents.remove_ratio(volume_per_burn * thrust_limit / air_contents.volume) + if(!removed) + return 0 + . = calculate_thrust(removed) + playsound(loc, 'sound/machines/thruster.ogg', 100 * thrust_limit, 0, world.view * 4, 0.1) + if(network) + network.update = 1 + + var/exhaust_dir = reverse_direction(dir) + var/turf/T = get_step(src,exhaust_dir) + if(T) + T.assume_air(removed) + new/obj/effect/engine_exhaust(T, exhaust_dir, air_contents.check_combustability() && air_contents.temperature >= PHORON_MINIMUM_BURN_TEMPERATURE) + +/obj/machinery/atmospherics/unary/engine/proc/calculate_thrust(datum/gas_mixture/propellant, used_part = 1) + return round(sqrt(propellant.get_mass() * used_part * sqrt(air_contents.return_pressure()/200)),0.1) + +/obj/machinery/atmospherics/unary/engine/RefreshParts() + ..() + //allows them to upgrade the max limit of fuel intake (which only gives diminishing returns) for increase in max thrust but massive reduction in fuel economy + var/bin_upgrade = 5 * CLAMP(total_component_rating_of_type(/obj/item/weapon/stock_parts/matter_bin), 0, 6)//5 litre per rank + volume_per_burn = bin_upgrade ? initial(volume_per_burn) + bin_upgrade : 2 //Penalty missing part: 10% fuel use, no thrust + boot_time = bin_upgrade ? initial(boot_time) - bin_upgrade : initial(boot_time) * 2 + //energy cost - thb all of this is to limit the use of back up batteries + var/energy_upgrade = CLAMP(total_component_rating_of_type(/obj/item/weapon/stock_parts/capacitor), 0.1, 6) + charge_per_burn = initial(charge_per_burn) / energy_upgrade + change_power_consumption(initial(idle_power_usage) / energy_upgrade, USE_POWER_IDLE) + +//Exhaust effect +/obj/effect/engine_exhaust + name = "engine exhaust" + icon = 'icons/effects/effects.dmi' + icon_state = "smoke" + light_color = "#ed9200" + anchored = 1 + +/obj/effect/engine_exhaust/New(var/turf/nloc, var/ndir, var/flame) + ..(nloc) + if(flame) + icon_state = "exhaust" + nloc.hotspot_expose(1000,125) + set_light(0.5, 3) + set_dir(ndir) + QDEL_IN(src, 20) + +/obj/item/weapon/circuitboard/unary_atmos/engine //why don't we move this elsewhere? + name = T_BOARD("gas thruster") + icon_state = "mcontroller" + build_path = /obj/machinery/atmospherics/unary/engine + origin_tech = list(TECH_POWER = 1, TECH_ENGINEERING = 2) + req_components = list( + /obj/item/stack/cable_coil = 30, + /obj/item/pipe = 2, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/capacitor = 2) + +// Not Implemented - Variant that pulls power from cables. Too complicated without bay's power components. +// /obj/machinery/atmospherics/unary/engine/terminal +// base_type = /obj/machinery/atmospherics/unary/engine +// stock_part_presets = list(/decl/stock_part_preset/terminal_setup) +// uncreated_component_parts = list(/obj/item/weapon/stock_parts/power/terminal/buildable = 1) diff --git a/code/modules/overmap/ships/engines/ion_thruster.dm b/code/modules/overmap/ships/engines/ion_thruster.dm new file mode 100644 index 0000000000..34e464eef8 --- /dev/null +++ b/code/modules/overmap/ships/engines/ion_thruster.dm @@ -0,0 +1,86 @@ +/datum/ship_engine/ion + name = "ion thruster" + var/obj/machinery/ion_engine/thruster + +/datum/ship_engine/ion/New(var/obj/machinery/_holder) + ..() + thruster = _holder + +/datum/ship_engine/ion/Destroy() + thruster = null + . = ..() + +/datum/ship_engine/ion/get_status() + return thruster.get_status() + +/datum/ship_engine/ion/get_thrust() + return thruster.get_thrust() + +/datum/ship_engine/ion/burn() + return thruster.burn() + +/datum/ship_engine/ion/set_thrust_limit(var/new_limit) + thruster.thrust_limit = new_limit + +/datum/ship_engine/ion/get_thrust_limit() + return thruster.thrust_limit + +/datum/ship_engine/ion/is_on() + return thruster.on && thruster.powered() + +/datum/ship_engine/ion/toggle() + thruster.on = !thruster.on + +/datum/ship_engine/ion/can_burn() + return thruster.on && thruster.powered() + +/obj/machinery/ion_engine + name = "ion propulsion device" + desc = "An advanced ion propulsion device, using energy and minutes amount of gas to generate thrust." + icon = 'icons/turf/shuttle_parts.dmi' + icon_state = "nozzle" + power_channel = ENVIRON + idle_power_usage = 100 + anchored = TRUE + // construct_state = /decl/machine_construction/default/panel_closed + var/datum/ship_engine/ion/controller + var/thrust_limit = 1 + var/on = 1 + var/burn_cost = 750 + var/generated_thrust = 2.5 + +/obj/machinery/ion_engine/Initialize() + . = ..() + controller = new(src) + +/obj/machinery/ion_engine/Destroy() + QDEL_NULL(controller) + . = ..() + +/obj/machinery/ion_engine/proc/get_status() + . = list() + .+= "Location: [get_area(src)]." + if(!powered()) + .+= "Insufficient power to operate." + + . = jointext(.,"
") + +/obj/machinery/ion_engine/proc/burn() + if(!on && !powered()) + return 0 + use_power_oneoff(burn_cost) + . = thrust_limit * generated_thrust + +/obj/machinery/ion_engine/proc/get_thrust() + return thrust_limit * generated_thrust * on + +/obj/item/weapon/circuitboard/engine/ion + name = T_BOARD("ion propulsion device") + board_type = "machine" + icon_state = "mcontroller" + build_path = /obj/machinery/ion_engine + origin_tech = list(TECH_POWER = 1, TECH_ENGINEERING = 2) + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/capacitor = 2) \ No newline at end of file diff --git a/code/modules/overmap/ships/landable.dm b/code/modules/overmap/ships/landable.dm new file mode 100644 index 0000000000..967fdeb571 --- /dev/null +++ b/code/modules/overmap/ships/landable.dm @@ -0,0 +1,173 @@ +// These come with shuttle functionality. Need to be assigned a (unique) shuttle datum name. +// Mapping location doesn't matter, so long as on a map loaded at the same time as the shuttle areas. +// Multiz shuttles currently not supported. Non-autodock shuttles currently not supported. + +/obj/effect/overmap/visitable/ship/landable + var/shuttle // Name of associated shuttle. Must be autodock. + var/obj/effect/shuttle_landmark/ship/landmark // Record our open space landmark for easy reference. + var/multiz = 0 // Index of multi-z levels, starts at 0 + var/status = SHIP_STATUS_LANDED + icon_state = "shuttle" + moving_state = "shuttle_moving" + +/obj/effect/overmap/visitable/ship/landable/Destroy() + GLOB.shuttle_moved_event.unregister(SSshuttles.shuttles[shuttle], src) + return ..() + +/obj/effect/overmap/visitable/ship/landable/can_burn() + if(status != SHIP_STATUS_OVERMAP) + return 0 + return ..() + +/obj/effect/overmap/visitable/ship/landable/burn() + if(status != SHIP_STATUS_OVERMAP) + return 0 + return ..() + +/obj/effect/overmap/visitable/ship/landable/check_ownership(obj/object) + var/datum/shuttle/shuttle_datum = SSshuttles.shuttles[shuttle] + if(!shuttle_datum) + return + var/list/areas = shuttle_datum.find_childfree_areas() + if(get_area(object) in areas) + return 1 + +// We autobuild our z levels. +/obj/effect/overmap/visitable/ship/landable/find_z_levels() + for(var/i = 0 to multiz) + world.increment_max_z() + map_z += world.maxz + + var/turf/center_loc = locate(round(world.maxx/2), round(world.maxy/2), world.maxz) + landmark = new (center_loc, shuttle) + add_landmark(landmark, shuttle) + + var/visitor_dir = fore_dir + for(var/landmark_name in list("FORE", "PORT", "AFT", "STARBOARD")) + var/turf/visitor_turf = get_ranged_target_turf(center_loc, visitor_dir, round(min(world.maxx/4, world.maxy/4))) + var/obj/effect/shuttle_landmark/visiting_shuttle/visitor_landmark = new (visitor_turf, landmark, landmark_name) + add_landmark(visitor_landmark) + visitor_dir = turn(visitor_dir, 90) + + if(multiz) + new /obj/effect/landmark/map_data(center_loc, (multiz + 1)) + +/obj/effect/overmap/visitable/ship/landable/get_areas() + var/datum/shuttle/shuttle_datum = SSshuttles.shuttles[shuttle] + if(!shuttle_datum) + return list() + return shuttle_datum.find_childfree_areas() + +/obj/effect/overmap/visitable/ship/landable/populate_sector_objects() + ..() + var/datum/shuttle/shuttle_datum = SSshuttles.shuttles[shuttle] + if(istype(shuttle_datum,/datum/shuttle/autodock/overmap)) + var/datum/shuttle/autodock/overmap/oms = shuttle_datum + oms.myship = src + GLOB.shuttle_moved_event.register(shuttle_datum, src, .proc/on_shuttle_jump) + on_landing(landmark, shuttle_datum.current_location) // We "land" at round start to properly place ourselves on the overmap. + +/obj/effect/shuttle_landmark/ship + name = "Open Space" + landmark_tag = "ship" + flags = SLANDMARK_FLAG_AUTOSET | SLANDMARK_FLAG_ZERO_G + var/shuttle_name + var/list/visitors // landmark -> visiting shuttle stationed there + +/obj/effect/shuttle_landmark/ship/Initialize(mapload, shuttle_name) + landmark_tag += "_[shuttle_name]" + src.shuttle_name = shuttle_name + . = ..() + +/obj/effect/shuttle_landmark/ship/Destroy() + var/obj/effect/overmap/visitable/ship/landable/ship = map_sectors["[z]"] + if(istype(ship) && ship.landmark == src) + ship.landmark = null + . = ..() + +/obj/effect/shuttle_landmark/ship/cannot_depart(datum/shuttle/shuttle) + if(LAZYLEN(visitors)) + return "Grappled by other shuttle; cannot manouver." + +/obj/effect/shuttle_landmark/visiting_shuttle + flags = SLANDMARK_FLAG_AUTOSET | SLANDMARK_FLAG_ZERO_G + var/obj/effect/shuttle_landmark/ship/core_landmark + +/obj/effect/shuttle_landmark/visiting_shuttle/Initialize(mapload, obj/effect/shuttle_landmark/ship/master, _name) + core_landmark = master + name = _name + landmark_tag = master.shuttle_name + _name + GLOB.destroyed_event.register(master, src, /datum/proc/qdel_self) + . = ..() + +/obj/effect/shuttle_landmark/visiting_shuttle/Destroy() + GLOB.destroyed_event.unregister(core_landmark, src) + LAZYREMOVE(core_landmark.visitors, src) + core_landmark = null + . = ..() + +/obj/effect/shuttle_landmark/visiting_shuttle/is_valid(datum/shuttle/shuttle) + . = ..() + if(!.) + return + var/datum/shuttle/boss_shuttle = SSshuttles.shuttles[core_landmark.shuttle_name] + if(boss_shuttle.current_location != core_landmark) + return FALSE // Only available when our governing shuttle is in space. + if(shuttle == boss_shuttle) // Boss shuttle only lands on main landmark + return FALSE + +/obj/effect/shuttle_landmark/visiting_shuttle/shuttle_arrived(datum/shuttle/shuttle) + LAZYSET(core_landmark.visitors, src, shuttle) + GLOB.shuttle_moved_event.register(shuttle, src, .proc/shuttle_left) + +/obj/effect/shuttle_landmark/visiting_shuttle/proc/shuttle_left(datum/shuttle/shuttle, obj/effect/shuttle_landmark/old_landmark, obj/effect/shuttle_landmark/new_landmark) + if(old_landmark == src) + GLOB.shuttle_moved_event.unregister(shuttle, src) + LAZYREMOVE(core_landmark.visitors, src) + +/obj/effect/overmap/visitable/ship/landable/proc/on_shuttle_jump(datum/shuttle/given_shuttle, obj/effect/shuttle_landmark/from, obj/effect/shuttle_landmark/into) + if(given_shuttle != SSshuttles.shuttles[shuttle]) + return + var/datum/shuttle/autodock/auto = given_shuttle + if(into == auto.landmark_transition) + status = SHIP_STATUS_TRANSIT + on_takeoff(from, into) + return + if(into == landmark) + status = SHIP_STATUS_OVERMAP + on_takeoff(from, into) + return + status = SHIP_STATUS_LANDED + on_landing(from, into) + +/obj/effect/overmap/visitable/ship/landable/proc/on_landing(obj/effect/shuttle_landmark/from, obj/effect/shuttle_landmark/into) + var/obj/effect/overmap/visitable/target = map_sectors["[into.z]"] + var/datum/shuttle/shuttle_datum = SSshuttles.shuttles[shuttle] + if(into.landmark_tag == shuttle_datum.motherdock) // If our motherdock is a landable ship, it won't be found properly here so we need to find it manually. + for(var/obj/effect/overmap/visitable/ship/landable/landable in SSshuttles.ships) + if(landable.shuttle == shuttle_datum.mothershuttle) + target = landable + break + if(!target || target == src) + return + forceMove(target) + halt() + +/obj/effect/overmap/visitable/ship/landable/proc/on_takeoff(obj/effect/shuttle_landmark/from, obj/effect/shuttle_landmark/into) + if(!isturf(loc)) + forceMove(get_turf(loc)) + unhalt() + +/obj/effect/overmap/visitable/ship/landable/get_landed_info() + switch(status) + if(SHIP_STATUS_LANDED) + var/obj/effect/overmap/visitable/location = loc + if(istype(loc, /obj/effect/overmap/visitable/sector)) + return "Landed on \the [location.name]. Use secondary thrust to get clear before activating primary engines." + if(istype(loc, /obj/effect/overmap/visitable/ship)) + return "Docked with \the [location.name]. Use secondary thrust to get clear before activating primary engines." + return "Docked with an unknown object." + if(SHIP_STATUS_TRANSIT) + return "Maneuvering under secondary thrust." + if(SHIP_STATUS_OVERMAP) + return "In open space." \ No newline at end of file diff --git a/code/modules/overmap/ships/ship.dm b/code/modules/overmap/ships/ship.dm index 0abd450a69..44a2d8e45e 100644 --- a/code/modules/overmap/ships/ship.dm +++ b/code/modules/overmap/ships/ship.dm @@ -1,116 +1,234 @@ -/obj/effect/map/ship +#define SHIP_MOVE_RESOLUTION 0.00001 +#define MOVING(speed) abs(speed) >= min_speed +#define SANITIZE_SPEED(speed) SIGN(speed) * CLAMP(abs(speed), 0, max_speed) +#define CHANGE_SPEED_BY(speed_var, v_diff) \ + v_diff = SANITIZE_SPEED(v_diff);\ + if(!MOVING(speed_var + v_diff)) \ + {speed_var = 0};\ + else \ + {speed_var = SANITIZE_SPEED((speed_var + v_diff)/(1 + speed_var*v_diff/(max_speed ** 2)))} +// Uses Lorentzian dynamics to avoid going too fast. + +/obj/effect/overmap/visitable/ship name = "generic ship" desc = "Space faring vessel." - icon_state = "sheet-sandstone" - var/vessel_mass = 9000 //tonnes, random number - var/default_delay = 60 - var/list/speed = list(0,0) - var/last_burn = 0 - var/list/last_movement = list(0,0) - var/fore_dir = NORTH - var/rotate = 1 //For proc rotate + icon_state = "ship" + var/moving_state = "ship_moving" - var/obj/effect/map/current_sector - var/obj/machinery/computer/helm/nav_control - var/obj/machinery/computer/engines/eng_control + var/vessel_mass = 10000 //tonnes, arbitrary number, affects acceleration provided by engines + var/vessel_size = SHIP_SIZE_LARGE //arbitrary number, affects how likely are we to evade meteors + var/max_speed = 1/(1 SECOND) //"speed of light" for the ship, in turfs/tick. + var/min_speed = 1/(2 MINUTES) // Below this, we round speed to 0 to avoid math errors. -/obj/effect/map/ship/Initialize() + var/list/speed = list(0,0) //speed in x,y direction + var/last_burn = 0 //worldtime when ship last acceleated + var/burn_delay = 1 SECOND //how often ship can do burns + var/list/last_movement = list(0,0) //worldtime when ship last moved in x,y direction + var/fore_dir = NORTH //what dir ship flies towards for purpose of moving stars effect procs + + var/list/engines = list() + var/engines_state = 0 //global on/off toggle for all engines + var/thrust_limit = 1 //global thrust limit for all engines, 0..1 + var/halted = 0 //admin halt or other stop. + var/skill_needed = SKILL_ADEPT //piloting skill needed to steer it without going in random dir + var/operator_skill + +/obj/effect/overmap/visitable/ship/Initialize() . = ..() - for(var/obj/machinery/computer/engines/E in machines) - if (E.z == map_z) - eng_control = E - break - for(var/obj/machinery/computer/helm/H in machines) - if (H.z == map_z) - nav_control = H - break + min_speed = round(min_speed, SHIP_MOVE_RESOLUTION) + max_speed = round(max_speed, SHIP_MOVE_RESOLUTION) + SSshuttles.ships += src START_PROCESSING(SSobj, src) -/obj/effect/map/ship/relaymove(mob/user, direction) - accelerate(direction) +/obj/effect/overmap/visitable/ship/Destroy() + STOP_PROCESSING(SSobj, src) + SSshuttles.ships -= src + . = ..() -/obj/effect/map/ship/proc/is_still() - return !(speed[1] || speed[2]) +/obj/effect/overmap/visitable/ship/relaymove(mob/user, direction, accel_limit) + accelerate(direction, accel_limit) + operator_skill = user.get_skill_value(/datum/skill/pilot) -/obj/effect/map/ship/proc/get_acceleration() - return eng_control.get_total_thrust()/vessel_mass +/obj/effect/overmap/visitable/ship/proc/is_still() + return !MOVING(speed[1]) && !MOVING(speed[2]) -/obj/effect/map/ship/proc/get_speed() - return round(sqrt(speed[1]*speed[1] + speed[2]*speed[2])) +/obj/effect/overmap/visitable/ship/get_scan_data(mob/user) + . = ..() + if(!is_still()) + . += "
Heading: [get_heading_degrees()], speed [get_speed() * 1000]" -/obj/effect/map/ship/proc/get_heading() +//Projected acceleration based on information from engines +/obj/effect/overmap/visitable/ship/proc/get_acceleration() + return round(get_total_thrust()/get_vessel_mass(), SHIP_MOVE_RESOLUTION) + +//Does actual burn and returns the resulting acceleration +/obj/effect/overmap/visitable/ship/proc/get_burn_acceleration() + return round(burn() / get_vessel_mass(), SHIP_MOVE_RESOLUTION) + +/obj/effect/overmap/visitable/ship/proc/get_vessel_mass() + . = vessel_mass + for(var/obj/effect/overmap/visitable/ship/ship in src) + . += ship.get_vessel_mass() + +/obj/effect/overmap/visitable/ship/proc/get_speed() + return round(sqrt(speed[1] ** 2 + speed[2] ** 2), SHIP_MOVE_RESOLUTION) + +// Get heading in BYOND dir bits +/obj/effect/overmap/visitable/ship/proc/get_heading() var/res = 0 - if(speed[1]) + if(MOVING(speed[1])) if(speed[1] > 0) res |= EAST else res |= WEST - if(speed[2]) + if(MOVING(speed[2])) if(speed[2] > 0) res |= NORTH else res |= SOUTH return res -/obj/effect/map/ship/proc/adjust_speed(n_x, n_y) - speed[1] = CLAMP(speed[1] + n_x, -default_delay, default_delay) - speed[2] = CLAMP(speed[2] + n_y, -default_delay, default_delay) - if(is_still()) - toggle_move_stars(map_z) - else - toggle_move_stars(map_z, fore_dir) +// Get heading in degrees (like a compass heading) +/obj/effect/overmap/visitable/ship/proc/get_heading_degrees() + return (ATAN2(speed[2], speed[1]) + 360) % 360 // Yes ATAN2(y, x) is correct to get clockwise degrees -/obj/effect/map/ship/proc/can_burn() - if (!eng_control) - return 0 - if (world.time < last_burn + 10) - return 0 - if (!eng_control.burn()) - return 0 - return 1 +/obj/effect/overmap/visitable/ship/proc/adjust_speed(n_x, n_y) + CHANGE_SPEED_BY(speed[1], n_x) + CHANGE_SPEED_BY(speed[2], n_y) + for(var/zz in map_z) + if(is_still()) + toggle_move_stars(zz) + else + toggle_move_stars(zz, fore_dir) + update_icon() -/obj/effect/map/ship/proc/get_brake_path() +/obj/effect/overmap/visitable/ship/proc/get_brake_path() if(!get_acceleration()) return INFINITY - return get_speed()/get_acceleration() + if(is_still()) + return 0 + if(!burn_delay) + return 0 + if(!get_speed()) + return 0 + var/num_burns = get_speed()/get_acceleration() + 2 //some padding in case acceleration drops form fuel usage + var/burns_per_grid = 1/ (burn_delay * get_speed()) + return round(num_burns/burns_per_grid) -#define SIGN(X) (X == 0 ? 0 : (X > 0 ? 1 : -1)) -/obj/effect/map/ship/proc/decelerate() - if(!is_still() && can_burn()) +/obj/effect/overmap/visitable/ship/proc/decelerate() + if(((speed[1]) || (speed[2])) && can_burn()) if (speed[1]) - adjust_speed(-SIGN(speed[1]) * min(get_acceleration(),abs(speed[1])), 0) + adjust_speed(-SIGN(speed[1]) * min(get_burn_acceleration(),abs(speed[1])), 0) if (speed[2]) - adjust_speed(0, -SIGN(speed[2]) * min(get_acceleration(),abs(speed[2]))) + adjust_speed(0, -SIGN(speed[2]) * min(get_burn_acceleration(),abs(speed[2]))) last_burn = world.time -/obj/effect/map/ship/proc/accelerate(direction) +/obj/effect/overmap/visitable/ship/proc/accelerate(direction, accel_limit) if(can_burn()) last_burn = world.time - + var/acceleration = min(get_burn_acceleration(), accel_limit) if(direction & EAST) - adjust_speed(get_acceleration(), 0) + adjust_speed(acceleration, 0) if(direction & WEST) - adjust_speed(-get_acceleration(), 0) + adjust_speed(-acceleration, 0) if(direction & NORTH) - adjust_speed(0, get_acceleration()) + adjust_speed(0, acceleration) if(direction & SOUTH) - adjust_speed(0, -get_acceleration()) + adjust_speed(0, -acceleration) - -/obj/effect/map/ship/proc/rotate(var/direction) - var/matrix/M = matrix() - M.Turn(dir2angle(direction)) - src.transform = M //Rotate ship - -/obj/effect/map/ship/process() - if(!is_still()) +/obj/effect/overmap/visitable/ship/process() + if(!halted && !is_still()) var/list/deltas = list(0,0) for(var/i=1, i<=2, i++) - if(speed[i] && world.time > last_movement[i] + default_delay - abs(speed[i])) - deltas[i] = speed[i] > 0 ? 1 : -1 + if(MOVING(speed[i]) && world.time > last_movement[i] + 1/abs(speed[i])) + deltas[i] = SIGN(speed[i]) last_movement[i] = world.time var/turf/newloc = locate(x + deltas[1], y + deltas[2], z) if(newloc) Move(newloc) - if(rotate) - rotate(get_heading()) + handle_wraparound() + update_icon() + +/obj/effect/overmap/visitable/ship/update_icon() + if(!is_still()) + icon_state = moving_state + dir = get_heading() + else + icon_state = initial(icon_state) + ..() + +/obj/effect/overmap/visitable/ship/proc/burn() + for(var/datum/ship_engine/E in engines) + . += E.burn() + +/obj/effect/overmap/visitable/ship/proc/get_total_thrust() + for(var/datum/ship_engine/E in engines) + . += E.get_thrust() + +/obj/effect/overmap/visitable/ship/proc/can_burn() + if(halted) + return 0 + if (world.time < last_burn + burn_delay) + return 0 + for(var/datum/ship_engine/E in engines) + . |= E.can_burn() + +//deciseconds to next step +/obj/effect/overmap/visitable/ship/proc/ETA() + . = INFINITY + for(var/i=1, i<=2, i++) + if(MOVING(speed[i])) + . = min(last_movement[i] - world.time + 1/abs(speed[i]), .) + . = max(.,0) + +/obj/effect/overmap/visitable/ship/proc/handle_wraparound() + var/nx = x + var/ny = y + var/low_edge = 1 + var/high_edge = global.using_map.overmap_size - 1 + + if((dir & WEST) && x == low_edge) + nx = high_edge + else if((dir & EAST) && x == high_edge) + nx = low_edge + if((dir & SOUTH) && y == low_edge) + ny = high_edge + else if((dir & NORTH) && y == high_edge) + ny = low_edge + if((x == nx) && (y == ny)) + return //we're not flying off anywhere + + var/turf/T = locate(nx,ny,z) + if(T) + forceMove(T) + +/obj/effect/overmap/visitable/ship/proc/halt() + adjust_speed(-speed[1], -speed[2]) + halted = 1 + +/obj/effect/overmap/visitable/ship/proc/unhalt() + if(!SSshuttles.overmap_halted) + halted = 0 + +/obj/effect/overmap/visitable/ship/Bump(var/atom/A) + if(istype(A,/turf/unsimulated/map/edge)) + handle_wraparound() + ..() + +/obj/effect/overmap/visitable/ship/proc/get_helm_skill()//delete this mover operator skill to overmap obj + return operator_skill + +/obj/effect/overmap/visitable/ship/populate_sector_objects() + ..() + for(var/obj/machinery/computer/ship/S in global.machines) + S.attempt_hook_up(src) + for(var/datum/ship_engine/E in ship_engines) + if(check_ownership(E.holder)) + engines |= E + +/obj/effect/overmap/visitable/ship/proc/get_landed_info() + return "This ship cannot land." + +#undef MOVING +#undef SANITIZE_SPEED +#undef CHANGE_SPEED_BY \ No newline at end of file diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 80086b1b47..cc9d6dcb05 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -121,7 +121,7 @@ ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, ui_template, "[shuttle_tag] Shuttle Control", 470, 310) + ui = new(user, src, ui_key, ui_template, "[shuttle_tag] Shuttle Control", 470, 360) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/code/modules/xgm/xgm_gas_mixture.dm b/code/modules/xgm/xgm_gas_mixture.dm index 7fe1a96d0d..6036b7381a 100644 --- a/code/modules/xgm/xgm_gas_mixture.dm +++ b/code/modules/xgm/xgm_gas_mixture.dm @@ -277,6 +277,12 @@ return removed +//Returns the amount of gas that has the given flag, in moles +/datum/gas_mixture/proc/get_by_flag(flag) + . = 0 + for(var/g in gas) + if(gas_data.flags[g] & flag) + . += gas[g] //Copies gas and temperature from another gas_mixture. /datum/gas_mixture/proc/copy_from(const/datum/gas_mixture/sample) @@ -478,3 +484,7 @@ gasmix.multiply(gasmix.volume) return 1 + +/datum/gas_mixture/proc/get_mass() + for(var/g in gas) + . += gas[g] * gas_data.molar_mass[g] * group_multiplier diff --git a/icons/obj/computer_vr.dmi b/icons/obj/computer_vr.dmi index 0c70fcd315488306bc84e3cb92286c5d12ae6e77..34716d288c593c4f62bbcea3ff4b8c32ba32c2d7 100644 GIT binary patch literal 122310 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 literal 120730 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 z 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 U9(@KI69M3fyqa98jQN}Y1sR`P%m4rY literal 10656 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 V6R|6Iz|KqHj@rH36)M&d{{j9QLbd<^ diff --git a/icons/turf/shuttle_parts.dmi b/icons/turf/shuttle_parts.dmi index f7f1308d70a7db0dc7cdaf2ec30d814af3df3c27..0604db6d7dfe424ebb465454c82a0cb36dbcd1aa 100644 GIT binary patch literal 12474 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 VrUgg?@XrVcYRcM5jS4oA{{=!hhTH%E literal 10182 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 DJLTTH diff --git a/nano/templates/engines_control.tmpl b/nano/templates/engines_control.tmpl index 726edf27ac..2933b1cbe6 100644 --- a/nano/templates/engines_control.tmpl +++ b/nano/templates/engines_control.tmpl @@ -1,8 +1,35 @@
- {{:helper.link('Overall status', 'note', {'state' :'status'}, null, data.state == 'status' ? 'selected' : null)}} + {{:helper.link('Overall info', 'note', {'state' :'status'}, null, data.state == 'status' ? 'selected' : null)}} {{:helper.link('Details', 'note', {'state' : 'engines'}, null, data.state == 'engines' ? 'selected' : null)}}
- +
+
+
+ Global controls: +
+
+ {{:helper.link(data.global_state ? 'Shut all down' : 'Power all up', 'power', {'global_toggle' : 1}, null, data.global_state ? 'selected' : null)}} +
+
+
+
+ Volume limit: +
+
+ {{:helper.link('', 'circle-plus', { 'global_limit' : 0.1}, null, null)}} + {{:helper.link(data.global_limit+'%', null, { 'set_global_limit' : 1 }, null, null)}} + {{:helper.link('', 'circle-minus', { 'global_limit' : -0.1}, null, null)}} +
+
+
+
+ Total thrust: +
+
+ {{:data.total_thrust}} +
+
+
{{if data.state == "engines"}} {{if data.engines_info}} {{for data.engines_info}} @@ -11,9 +38,8 @@ Engine #{{:(index + 1)}}:
- {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? 'selected' : null)}} + {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? value.eng_on == 1 ? 'linkOn' : 'yellowButton' : null)}}
-
@@ -28,7 +54,7 @@ Status:
- {{:value.eng_on ? 'Online' : 'Offline'}}
+ {{:value.eng_on ? value.eng_on == 1 ? 'Online' : 'Booting' : 'Offline'}}
{{:value.eng_status}}
@@ -42,7 +68,7 @@
- Thrust limit: + Volume limit:
{{:helper.link('', 'circle-plus', { 'limit' : 0.1, 'engine' : value.eng_reference }, null, null)}} @@ -63,14 +89,14 @@ Engine #{{:(index + 1)}}:
- {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? 'selected' : null)}} + {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? value.eng_on == 1 ? 'linkOn' : 'yellowButton' : null)}}
Thrust:
- Thrust limit: + Volume limit:
{{:value.eng_thrust}} diff --git a/nano/templates/helm.tmpl b/nano/templates/helm.tmpl index c72d0921b8..2d371b1154 100644 --- a/nano/templates/helm.tmpl +++ b/nano/templates/helm.tmpl @@ -1,114 +1,159 @@ -
-

Sector information

-
- {{:data.sector}} -
- Coordinates: {{:data.s_x}} : {{:data.s_y}} -
- Additional information: {{:data.sector_info}} -
-
-
-

Flight data

-
+ +
+
+ Flight data
-
- Speed: +
+ ETA to next grid:
- {{:data.speed}} + {{:data.ETAnext}}
-
- Acceleration: +
+ Speed:
- {{:data.accel}} + {{:data.speed}} Gm/h
-
- Heading: +
+ Acceleration:
- {{:data.heading}} + {{:data.accel}} Gm/h +
+
+
+
+ Heading: +
+
+ {{:data.heading}}°
-
+
+
+ Acceleration limiter: +
+
+ {{:helper.link(data.accellimit, null, { 'accellimit' : 1}, null, null)}} Gm/h +
+
+
- - -

Manual control

-
+ +
+
+ Manual control
-
-
- {{:helper.link('', 'triangle-1-nw', { 'move' : 9 }, null, null)}} - {{:helper.link('', 'triangle-1-n', { 'move' : 1 }, null, null)}} - {{:helper.link('', 'triangle-1-ne', { 'move' : 5 }, null, null)}} -
-
- {{:helper.link('', 'triangle-1-w', { 'move' : 8 }, null, null)}} - {{:helper.link('', 'circle-close', { 'brake' : 1 }, null, null)}} - {{:helper.link('', 'triangle-1-e', { 'move' : 4 }, null, null)}} -
-
- {{:helper.link('', 'triangle-1-sw', { 'move' : 10 }, null, null)}} - {{:helper.link('', 'triangle-1-s', { 'move' : 2 }, null, null)}} - {{:helper.link('', 'triangle-1-se', { 'move' : 6 }, null, null)}} -
+
+ {{:helper.link('', 'triangle-1-nw', { 'move' : 9 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'triangle-1-n', { 'move' : 1 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'triangle-1-ne', { 'move' : 5 }, data.canburn ? null : 'disabled', null)}} +
+
+ {{:helper.link('', 'triangle-1-w', { 'move' : 8 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'circle-close', { 'brake' : 1 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'triangle-1-e', { 'move' : 4 }, data.canburn ? null : 'disabled', null)}} +
+
+ {{:helper.link('', 'triangle-1-sw', { 'move' : 10 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'triangle-1-s', { 'move' : 2 }, data.canburn ? null : 'disabled', null)}} + {{:helper.link('', 'triangle-1-se', { 'move' : 6 }, data.canburn ? null : 'disabled', null)}}
-
-
- Direct control - {{:helper.link(data.manual_control ? 'Engaged' : 'Disengaged', 'shuffle', { 'manual' : 1 }, data.manual_control ? 'selected' : null, null)}} -
+
+ Direct control +
+ {{:helper.link(data.manual_control ? 'Engaged' : 'Disengaged', 'shuffle', { 'manual' : 1 }, null, data.manual_control ? 'selected' : null)}}
+
- -
-
-

Autopilot

-
-
+ +
+
+ Autopilot +
+
+ Target: +
+
+ {{if data.dest}} + {{:helper.link(data.d_x, null, { 'setx' : 1 }, null, null)}} {{:helper.link(data.d_y, null, { 'sety' : 1 }, null, null)}} + {{else}} + {{:helper.link('None', null, { 'sety' : 1, 'setx' : 1 }, null, null)}} + {{/if}} +
+
+
+
+ Speed limit: +
+
+ {{:helper.link(data.speedlimit, null, { 'speedlimit' : 1 }, null, null)}} Gm/h +
+
+
{{:helper.link(data.autopilot ? 'Engaged' : 'Disengaged', 'gear', { 'apilot' : 1 }, data.dest ? null : 'disabled', data.autopilot ? 'selected' : null)}}
-
-
-
- Target coordinates -
-
- {{if data.dest}} - {{:helper.link(data.d_x, null, { 'setx' : 1 }, null, null)}} {{:helper.link(data.d_y, null, { 'sety' : 1 }, null, null)}} - {{else}} - {{:helper.link('None', null, { 'sety' : 1, 'setx' : 1 }, null, null)}} - {{/if}} -
-
- -

Navigation data

-
- {{:helper.link('Save current position', 'disk', { 'add' : 'current' }, null)}} - {{:helper.link('Add new entry', 'document', { 'add' : 'new' }, null)}} +
- -
- {{if data.locations}} + +
+

Navigation data

+
+
+ Location: +
+
+ {{:data.sector}} +
+
+
+
+ Coordinates: +
+
+ {{:data.s_x}} : {{:data.s_y}} +
+
+
+
+ Scan data: +
+
+ {{:data.sector_info}} +
+
+
+
+ Status: +
+
+ {{:data.landed}} +
+
+
+ {{:helper.link('Save current position', 'disk', { 'add' : 'current' }, null)}} + {{:helper.link('Add new entry', 'document', { 'add' : 'new' }, null)}} +
+
+ +
NameCoordinatesActions {{for data.locations}} -
- {{:value.name}}: - {{:value.x}} : {{:value.y}} -
-
- {{:helper.link('Plot course', 'arrowreturnthick-1-e', { 'x' : value.x, 'y' : value.y }, null, null)}} - {{:helper.link('Remove entry', 'close', { 'remove' : value.reference }, null, null)}} -
+
{{:value.name}} + {{:value.x}} : {{:value.y}} + {{:helper.link('Plot course', 'arrowreturnthick-1-e', { 'x' : value.x, 'y' : value.y }, null, null)}} + {{:helper.link('Remove', 'close', { 'remove' : value.reference }, null, null)}} {{/for}} - {{/if}} - +
+
+
+ + \ No newline at end of file diff --git a/nano/templates/nav.tmpl b/nano/templates/nav.tmpl new file mode 100644 index 0000000000..6b5f5a9628 --- /dev/null +++ b/nano/templates/nav.tmpl @@ -0,0 +1,59 @@ +

Navigation

+
+
+
+
+ Map view + {{:helper.link(data.viewing ? 'Engaged' : 'Disengaged', 'shuffle', { 'viewing' : 1 }, null, data.viewing ? 'selected' : null)}} +
+
+
+
+
+

Sector information

+
+ {{:data.sector}} +
+ Coordinates: {{:data.s_x}} : {{:data.s_y}} +
+ Additional information: {{:data.sector_info}} +
+
+ +
+

Flight data

+
+
+
+ ETA to next grid: +
+
+ {{:data.ETAnext}} +
+
+
+
+ Speed: +
+
+ {{:data.speed}} Gm/h +
+
+
+
+ Acceleration: +
+
+ {{:data.accel}} Gm/h +
+
+
+
+ Heading: +
+
+ {{:data.heading}}° +
+
+
+
\ No newline at end of file diff --git a/nano/templates/shipsensors.tmpl b/nano/templates/shipsensors.tmpl new file mode 100644 index 0000000000..5931fd01b2 --- /dev/null +++ b/nano/templates/shipsensors.tmpl @@ -0,0 +1,90 @@ +

Sensors control console

+
+ {{:helper.link(data.on ? 'Switch off' : 'Switch on', 'gear', { 'toggle' : 1 }, data.status != 'MISSING' ? null : 'disabled', data.on ? 'selected' : null)}} +
+
+ Status: +
+
+ {{:data.status}} +
+
+
+
+ Range: +
+
+ {{:helper.link(data.range, null, { 'range' : 1 }, null, null)}} +
+
+
+
+
+
+ Integrity: +
+
+ {{if data.health < (data.max_health * 0.25)}} + {{:helper.displayBar(data.health, 0, data.max_health, 'bad')}} +
{{:data.health}}/{{:data.max_health}} + {{else data.health < data.max_health *.75}} + {{:helper.displayBar(data.health, 0, data.max_health, 'average')}} +
{{:data.health}}/{{:data.max_health}} + {{else}} + {{:helper.displayBar(data.health, 0, data.max_health, 'good')}} +
{{:data.health}}/{{:data.max_health}} + {{/if}} +
+
+
+
+ Temperature: +
+
+ {{if data.heat < (data.critical_heat * 0.5)}} + {{:helper.displayBar(data.heat, 0, data.critical_heat, 'good')}} + {{else data.heat < (data.critical_heat * 0.75)}} + {{:helper.displayBar(data.heat, 0, data.critical_heat, 'average')}} + {{else}} + {{:helper.displayBar(data.heat, 0, data.critical_heat, 'bad')}} + {{/if}} +
+
+ {{if data.heat < (data.critical_heat * 0.5)}} + Temperature low. + {{else data.heat < (data.critical_heat * 0.75)}} + Sensor temperature high! + {{else}} + TEMPERATURE CRITICAL: Disable or reduce power immediately! + {{/if}} +
+
+
+
+
+
+ Sector map view + {{:helper.link(data.viewing ? 'Engaged' : 'Disengaged', 'shuffle', { 'viewing' : 1 }, null, data.viewing ? 'selected' : null)}} +
+
+
+

Sensor contacts

+
+{{if data.contacts}} + + {{for data.contacts}} + +
+
+ + + + {{/for}} +
{{:helper.link('Scan', 'search' ,{ 'scan' : value.ref }, null, null)}}{{:value.name}}, bearing {{:value.bearing}}
+{{/if}} +
+{{if data.status == 'MISSING'}} +
+ {{:helper.link('Link up with the sensor suite', 'gear', { 'link' : 1 }, data.status == 'MISSING' ? null : 'disabled', null)}} +
+{{/if}} diff --git a/nano/templates/shuttle_control_console_exploration.tmpl b/nano/templates/shuttle_control_console_exploration.tmpl index fe765246d2..17f5a0b2d2 100644 --- a/nano/templates/shuttle_control_console_exploration.tmpl +++ b/nano/templates/shuttle_control_console_exploration.tmpl @@ -7,7 +7,7 @@
- Drive: + Engines:
{{if data.shuttle_state == "idle"}} @@ -61,6 +61,22 @@ {{:helper.link('Choose Destination', 'arrowreturn-1-s', {'pick' : '1'}, data.can_pick ? null : 'disabled' , null)}}
+{{if data.fuel_usage}} +
+
+ Est. Delta-V Budget: +
+
+ {{:data.remaining_fuel}} m/s +
+
+ Avg. Delta-V Per Maneuver: +
+
+ {{:data.fuel_usage}} m/s +
+
+{{/if}}

Shuttle Control

diff --git a/sound/effects/locker_close.ogg b/sound/effects/locker_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..86913e51a268c7a07eba0ba0360b8a539a153c1a GIT binary patch literal 8896 zcmaiYcUV)wv*-Z<>C!|>KuSVK2u-R2ijdF)p$bS92t9P92#7S1j&!7V2u+Gu5a~^N zM@4#3q>2jf1n=*@`~G;}-EXs*owl>HvuEZU?S~Kb07BruTC(3iU_O@Dm4KbV+ttI$ z0gFcwgtYymxX}_^0L=v2c**~6cu73vG+}3n+Uop&G}=r5)Chu9BL_G88`>TZIh-7< z3@(&&AUMQC;bNjmVo%*3S7!}3K5`nCI&z=~0B96-8M@sey$O(B9E5_D%9t2`2&5pNT6CdW z+&8sEsBt3fqOV4k3-#Asbg>I@H2~1jrBrcexO^dJ0|2CX($Pgm(M9&rYmsrJ;SrUD zKnMU3fy+qT(UVtAzB{aso@#QQ`ybsj)t31}9P}a0sDoV@Nu=l{W|E6@0L=)YjTY?; z`Hz!Bn2^-@WK}XtS<89G)EP*e3|p33qhDfXbc@Vd7Ivt2H48ojLit(7lo=r3T2^PC zG5J4;7w0#UA%MrZ4{bciqU{19o+`iijAxA?L|o+%m!XaWA+;7iRHix}hsCS97&bp{ zK(grZ)6({q)Xb5OAf(;3v6w~k-z*n=7fuHEt4I^^%yOQebac(0;~uRQi`a(J@wzA( zOIVij=BIW0!em)eSc*Fe$@|aYgn%L`=Mx5$+J6SCNX`f*k3RmAyilY-S!sT(SieyH zz{McDU0F{pM+xtwxg%KBiPCeHoHWAh%B*FCH5iy+sv1#9{-R_Q`Gx;DK;J8qFx$lI z;x$`E@|R?JkPDRlb0-J>XaGR_C*%_?+yCu*kYQSwE*;o~$HXMZ^iHoG4UO5gh*#B*Wzl#YwAhQllruok{!2<={7*sFf4N(VG zAB7H%3Tf|4Xwxg`GN_D6pg&zT)4l1eD`h(-X{IM-hBk0EOm#MG@|sJtojVR(`XAlw z^2HXx>nxkd&7a7{pSUa?2Sq5__Xq%rB={Q{{gp3nSvnDlNQ5~gKJ-g1P0!d!&k-oU zU;$|GEcg~(>>FL?8(r!fw;q{jpPpJ;mLb?zyxm&8^}ltBivWiLfG1Sd1FDLGs-QsN z!n+}qc<(|!z@aK0Lj9u>|MvKaUIBEdq36Gc#(y0E08sYUGW36fXwtzZP{L?E;R%$= zgdX~TYno#cn)IM!$?zBU9VC26xHKL?Cj26ruM@hCQo78)J|r5NcT6V}metK5qa5Fr ziU@y!zgI+nE_kotJ@8J5$B^zORAop;fUT%YMzyS9To;KeW)erjn)ETtS>SY&uZTrG zhOLOfIvNKG0hhra#mkZSs|1P+0PvUwMb7^u*=mS?EgsbeUxlEeWlFO2hGh7%llx?N zvXkiei?XaiYF6?PVkIkS6u}3^$2$V>r_3i|qXN+I0-xO=gGmya3@}Z46>SEy33`=@ z6p29zNnL%kCWGdLKH8X3b0P(%DXyu>fYzf|L0?7drD~#6Y=km9_M_TQ?|Q~GFADfC2>q^_r#F51=@)a-3L)r2;j^wMN7 zo6^&qxr#=oqGu*-(Wzb*o@g^ev#BYx;ZfksWT4rkmn9Qk^VEbF+S|)w(s?P(%gl)9 z!YVT~Xq6#cUzXYmUjq?D*NBg!7!Inb}P5;6227 zEiv6gPk8BhKe6z#wP^OTFm^Fpd)@TR>31J|>y7xId!823sS{27H7*n%Dz{ELc7@u0 z2r7&iz6kA{CIYT=$-hozUNL!6~kR_N4-i2HO6hp{t^De?83jo66 zv61|w307e8<9|Yfie?Inm*It3Ya#hzjXFq2T5B4C?n0X(1X)o71JZ#%dDMg-)}(`s zscJOQ!{8!NCKN>tMo0&Eqk%Q1sw)ysmX1YQe{+&u<@wNoJEPK7+4XL z;98;0i0%eQp*||AtdPN)57w24iiH)im_`e~V!~2`s!&llkPyS)&1gMDYpnyS0vG2m zYA`@LR(WV4K~)1v2vC(eg5PckvB^<5uB3`rh2RIRaspMUBj8O;SQq{#7Ni5H3WMP9 z0#yk&&C8NjJ<+$KEb5%L8fa-Wz+5a|2`iels%!)orz+|+LY3hqDsWRw)`R>__w`~V zUoiz#3%@eQQr~Jcz((^=FIfXTxO3Gc zJ4nDUUe?8AJ%sBr*TXb6F$HJ|Pu|Dwws%3o9IIAARs2m^nCkYa`A{JMcyMv$!o_s# zdyoJJIRJ=8z}Gk=$iXa@Oak7{q(qs^oZ-o0YaHS6s5MAl5gG)|C zVc?8luKx^X=m%lNonL_`5tT#$iU6RDvo_9om{IQ79|!Zx;VUn$*lgl9&f$$NFE4L$ z_RHZ1|68l8O)oI5)fHPg4i^}qtv8@ld3m*9{~Ooxa_~tDmK8rT%Qss=Ox+Ge#a3UP z&|H%X>xa!&u;OTP-s*D)nSQ^)K~$Tnf47SM>2d>~yYlY|fYNsn6SP{# z04RED0Ch#m9w|iq&yQE}e&jEPgi*?VNXCvJ_+Uk#TeHFvQOFc53W+FdoWw^f-g|a5 zCqMk+QUIV7IY1K?@#OQ5JUR}pV#1J4q9^x((%NRVw&su< zm+p^z1d~0fGEJxvM3I0@TKY=_@8XYe)~q}|{Y?%~FPK4r&ji5dW`K(;<3rEL^yl>- zCjc3k7{SH}oB)9I-H^!0RZ%esDQQ{xTZ+nHO#EvhAt4ulA~=SG{Cgi!1Pgk6!@rN< z852Y+lLUB$1qEJJROgiz=M@!muwCciVi(}$7lLwe3-bxJR+g5P4lSlFOIH^K^ZT4M%OmOjjCYP3UskKire`29&Sk9i zt+$g+zcT%&z-@cO{eGX{@8%AIx4BG^;V#t`z;mNRqUKVe<7K9{DQyPg-q~D{Kd-&7 zR=c3fyA%7e<`Y7l^jChL2Z>(+JTdH!N5NQv{!g)Pe^7_p-_bL1ru$)m#||+rloYuU zGsY=tEdeKcH|b7ej@WDt-YYieG42ro_H;m(lZJmyq1mTi2$5RG*{eVg!F;9JL8_uQ z^I?ganUiB{lW}9y_QrMY`fhgq)m%Rw>L8i`nc391k-45C*=EX@1a%^7G`}^`b!&&v zYbb=CZ zT|%F9i^GCdd4$J3*}TFJ!t>^}G^SooVI#0F_ctsJroy+z2_y(6#>3d{U*50g-Y(D4h6^Rh*1x_nbf+X-BSS@66#FN3iX4!uf2%pM-ER% zQAD@4v-3&+J}za^{qRlpCHI$BZYwEtHYVYPNmno==7vLiz0dja_8JnO(>d9Xc%nj*VB;8tcnHHA6U(jrM>ayhTdqD@4DTm$mO z>9S<%n^lvTt4}iy!Uh9yPfbqEJ&RmCoz}Y|PhPZQzj`GG23r5lS0YXuyni#LO0V*i z(RoqKAOlghT&^L%K@}NhA@%Mf9S~Ger4iw+G^&(zZA-yACZvgg^JN*2RQpZkkDhG1 z!hhH$`$}?Clt$9+9pr1|TM}AcNr=%g-VEF6)c39`VIutSNVnC}dx2Jba)pTHn<%2r zA!yw9V`9jMfhW{*33qo^dWT$|Fa-B{Z|iqb)EJGfLOdSryp;}P{}AMi-gFh{j=ICa zb@hWVQm5z!%HAc`Zc}ddahg{Gv@HGWt|kn~$$0iIJcxkVG17dZJ4pc-U@s}yt}C|j z^yopGPyKV4wfYcy%f47m4DHWbD&&_%bju4I;djLBxr7OnvU6#2 zAj(}^{%9@GGA*B#{p{}D%eUp#^+F}|(|5h!HxDhmoyJTJM?u|Je|oI{$cVuvG;55S z@2z1}Q?^Z{c89aO^jNv%LJNA}BO8#Kt;GgPv#Q!dhSL{zGd=MQ1m*$R1y`I2@*;ZB zuIA5$5+@y7Yu=egO`P+87x&Js{=FH{`lm9z<@^ty=l58RPkR(a^d_fXQu~(S$Lv%U ztD7&j>NoE^q^>6`ap#__`;{cR#~}ht*Jx$N>f_qz!_Yc7U$>C$$S+bi2Z>W;uX@Po z>Z;S$FzhvbX15D%p|3;wOxak@T2i$z9DPfkdnsqA{paS{qn<_14^vUlC+?BXzf~6A zkp%g(DUs(Z#p_~1&Gp(;2kI;*4s2gbs`Z^7PY&zgN}%eReh$4o?k0M@aru$&4|liF z#caQ)XL~y?t!L!e1IBT4#y%IuSKwU6fx2_|rqbgS*WgF2DH*{c6^ORGrUIeL@65*UVk~#Y{ z2!0*T0R$nl8>1%0IPVBAZ}~y6axOEW@dN}{A0h^vD&!&RE{^9*;c0EHYF0b`sgm8X z+OX0!VJ}CiZzE*e9#fBLDba#+pL<81ws^cQ@$T%W>4p>iaKAOHa&TBU*Pl+`*uvCU zFY>3gIQ^ib^U*l=u92HFl&vmQ#d$-6HrK5O1+o zbYoFRBXsBaxb!g*a-xv_DBaAHoCp{X0jpi(Fw%E62pFyJ)x@kG(S)H)|MNjyK|^8I z)U_*yw~Q<-Y7dabTkp}!{)|VPF8W_-&-j-dFGZHkhAy;bi50W>Fvn_H57R?9`@R** zCG)0l<#61zse7GrRrXxc`ODIj+{-t%@NC9VS*kr_fr2~rFCt?|vqOdNViF~#2wyyM zadpU|GaikFN(8+y&_;Jezj-0!{(NcQ+x?P|rF{Q4))2*yMAX9#o5jknJ&{hrr%hF{ z@=o_{6z>v9m?p)~UGIDhJIqx1v7vWhSiX_qkrlGZQ+uO{2s+i_vH$!Q0V20$hdhys z8aeK~7hV1Rq36-n=NUvISnjhP$UZYxD6HxTkGH4@wel!hV# zuc#E=vuerF2?vr$15WFrD7Y`^CrM|5wfCR=I{#@Q+uFf zj+9B_Z-=J=@}~1x)AJt^q*B7nV-wzUh}*b3)URj1F6>(mK1;muY2uB+-u6e_xexVS z<5k4xv-!?qrEOWoI1AZ1IHer$4chpo@^Ar;lIo+5R^K#K+byV!807(-2d=Nrh(=D?4wrckq68tAT;mjpurmvPcs8jqSot z1F(?&vEW>IL$GW`C_p%n@GctOAnxW@l27)aKKc9YhR=mD8UC(=n;!FmjcmckH-1$L z5@?tmR4AGIC39W6n~td*{F>2CCi@@5?vMq1z1Z zH4}@+rs+%DxiyWzeGC885yNXNKl8SB_Rmi%pKvIdY#e`Loj5*xR3+b5%GBJfjPtz= z++QA%`0EO3LnK`O>vlqW{BG7>8WwbDa;uJ|C{RXl>G^q$9z|mDPjf>J;M8xB&IY$Z z^zEAO$?u=o`+ogk<1!Yg zvGU6Fk^zw)m+w3p_TDGX=c-T>D|_Kap08u^V$Uy_bgF3&E_d#EL&9CFXkm@Jc-r{+ zU4_Vf7HM%m8k{^FY4#{*`ta8-_Y;Lh$)EYo4e!o_ewkmk{x~wUt^UU`{@6~770#P4 z4D7K#p)q0{)`{>-zTOS2s6O7p7Cfi{7H83qNqsK;dRz~GO>N*AJyZ$f5X&>LMRGNi zY^t&rVdTzIXAecj`kikPr7Jwdc--ur;_jzoyzI<1cX6=Z;nAiT>v@S%5<~Ep2B!vuGOG3NE{M0|_ZfQH2 zi0}gyguwa+BSdai|EIn-#Px%8Sf z&w$y5;?UoAO=3lH#gaTsN`Yg22>P?nfFLl{v@mG4*NFFz=-hXUJUt!_RjT6nGLtQPiXHwYW>x*HIIJoBa|`ohU%~sk@1 z*>5MqxeAg}yl4BrW>sv>s z4V5jqX^Hz^5jhOx1+_jt+U(q#UfkP5JB&Ekn8>O}{5(CJ%~((Y{TNbr~zGlrlKKe}&KQel_(CM-@@k50r2L^&F$Io^-~NHWs^zY2wU- z=<)D%@KvN*i{3P=R2JS@01iE0YP{6d4x&<8A=|Qy38s~~G^w`Y+uj)nTxIz_R#?YZ zvUd5|cJ3+Lz5C39(PC}K8*@xmWn0Lsz&jNE^El}F>01*+gMo!&a-{0iKK6NZ)uqjt=~GKZ1~(bgF+#5{#|2# z_%$D)sZ!E_b1Z43R`Il?D!*Qer+3=-q;s_2TF0ZB;{Sr0UWh_6QpE$71HKz-1x55w&~g(_@63$TIu^VNq4q`d*uZN5VQe?Jm_uD z%VQN@R2H)?u3yYo^6RE|Le_YR{V93+Dl=2N)p*1OgUg9pfAx>|q%CD<$1RcoXKKXd z&l!@Gb}b?u>0BGu?Q+&6c{t$y}f6f`Ah z@7RXgnASdE48WimqJ~*}X{V9r7%nxOcC79p_IsZ5r$ln>9@uusua_!ghHRUJ8gl%6lLFO}whgWoP5|jF(=L`!fiUWn&CHWi>xtF<4EA-U5 zkE-e?K_u5uDJH=hNtYsX9S{1pNp>u7oQO>fuOrIu7oTU*D*d6sUQYAm12fEa_d=v~SFh<;P6@bdGt3#2;65%%GH8kCd1{GoLy}-?~_g4&6fX?Y}qwj~`N>mx;RaAQJ-xW2S+Tv;5 z-=UVQoRcP@|LwBPYZ+yu6*#&v@HJYMsI6bT;J zAD0c~3zPzLOlbm)_|1j8cfVp*N!l>p7H2h6_ z^rw-+oNHH-7@WUk-3j!6L+fCET>Wcgyr=(Z@uW9#>L^a03{8r{w5LZEh7p~q3Fi@O ze@^%@nf%AQVXVTLX#250fF*ebyBq1SWwvH~2t%CwWp(y8T{{luG}nD=JhOajUqN=Z zVov;p%jYJZP~Gg=X_1%d>wOtyg0SPb0J0yquaF7szXAf82gI_QB9F7KuGTuKvO;#X zIv~)F0ae7RUE_MB6gTIr(4}NXzlTV*_?Ou^szt%51bce{X30@=HWwME+4x+4Z2OrS zn-axto)FaJ{6ho9k&ejUm@)E=E3 zYgl74Zr;B}G~-sgpSa*@g5Qtot}nxvxTN?v3V5wdriIU+XY}Weou1a3ynJ%d#k9+4B{=ndfN#TC z3g=zNB6S3?8qK-;_uAxMo8{>pMt|nsfV5vlukzQ?-FIof{8RQtc^R?Ud6n%dWPpZc zuhTD8cBP>~B7s1whr$o>X|L>__f_UpKl(ecofTAtOwE&%$v`>om;Wt~ z7$GW^)2Y;4R5Kf3&;jg!E)ewQ$O^MC>JV?(f*+=qYjrn+;Z+4y9@QjKjo&cI5mle> z6in#HzV=mpCs{Bi{O}hd8RHZslx#n-;Yc6-Y*xYLXHh;PH8SehBawUdTG_I}=%XiA zSBKcu<(3gKFBuF+ZhQ!bW2VO=Ec0V3=4E3deB;?fBom%{HFYP=zI0QF=*(NBdoVhm z$@F7Dw{3?90BxJ6i&jd=Bk>LJe>o((p|g_unwQ8mx9vCEz6Im2hNgy7&A7qVi~^Av zC+zw!zQV}2v8Fgum(C|NylB-JqONbACmt}e&V??i;M`Z5oahPW`D=&M9+mywu3=Xy zNxrlFrZQfr$T)24xbA8t^;fRiVX*PcCg)?Ufq#1cu{BMOXFhxx%^n~9FyOE4Hw_UQ zY~$#dU+G(-6Y?BYvpM3CYkx$Zkya@zveR=rPwyX`9Mq=35V31oyR%bot6JH=G|l;c zKRO)DyoniY_QU#T$PRAJ`K)ys^rU@e=Oj2I<0g%3Bzf@c%>ty{yV6kdT~I(k0KEXN zH6#3R(tJi9bH|(( zO3Ta5!^_Rf%}2|u?&xIe;%4b?>Eyw3D-#a*(}qdOD67F$rR8Aay!f{WsJ4onxP!B~ zy``Ipvx}t@1pVIt^wKgq5I_a0a@6U7a`#|VPwNGMJTq6jfSKG#CDc6CJVyh1joCU0a`P|b~FWplA|H}WS4(>Qw(AfV?gr$$veMDr3Ar?2@ESJv$R{vK< zVBSrU002ajAG0LWvm|c_$1^}BZ3b8YNsQYa8U2+xenU8!0h-Kcn{4fqUY42lJu{EB z;;spRciZGPMVGvYE`JeS_9A{KGTA0Gy{tToZK!0wt!D54mml02I0FE9Fetb&D8Lxx zU?6a(-5~5+?NWZ?VUTlUAD-g>H^)graZsVU9{&!F|5^Y5z#e={G(1VEO29Y^}E& zkxuMOhlaks-B)OUCb+M726%cX-NrO`8RW)9SgDYGA`0b2Gnz_uC8T^xj7{418#!Qg zml;W}97Ba9GLNnUI{}#B@4=giL}G{}5dgfxgWYEdOEnu~*-nHF@qD9%MT?Z?XpM<5 z=cW#cJjqQVU_s`XgVdbVG3ZuK$`q6tw2v+b_>*Slw~zzyn1D4G%Fz^lRU$@JLOFFJ z#4MrQY#RS4zksGTT$M<5RvWHQqB@(#sLH3RN(9#;l!Ft)wbE7LX_n*sj*Hsx6%shS z+0yV7v=h%&KGj7M`0Si2ywMY^uB17xWc)WP_`EjUP!K-bB%tYm(1cs+gPgrA=bPZV zbDpY1hTvN#)_Qo?2dECZ3iiEuJR&PKfRIO>quaLp*z(e1GIUOoY>Cn^Z`Due^7in zyy~uBYH}TEinrezs=HFMJWI2D;kc}8gFkVFwCMsqbK7RE*mB|Cg`Jl6hVi!tauWCM|sElcW@0SjZ3 zhEhy*qk)!vT{z6(0kT0)$(E;4$K1ZUFOuh8raO#xyEqkQz=mu{7g0dEC&Do4kjbzZ zMkFcQcCp2T=6Bj+ZCF%!F_AelV_z~XmJvyA7|qd4>W&Mtf<@JVgcz2767w;9a}AIc zI5-QkK}X51+D%OfWHllM1z9OWS**sOyR^kKQVO@Mpe&$N4j?OKC{GiqyAw+jxsol& z${xzn2eRU5`Yei79j0xDjqF)48)XeRZm;b=B?$CYT*agS!1Cow+r?{XWm1q6jj%&V;{q_t)X-~4`pZ_ zIJjf=95qO|9lX4c)O@V2&sfX8v5C}AjbqNp{jj5tGQ_U>8_0^KDaXF1WBzk6I{-Yt z+j6128a4w;0PTGM;11{6rscm6da+ataCfF8i(t})rt)snh9<(cDMOPD_Hsfrlt8Dy68H!uc zXkb4ka!#vaUpGhYfhSE01WkkL_kI3p7mG>G{MCOJ04p@rYy=!sMv3R!ZKx9Quj;PG z(+5_iu-@EKZ$0uY^)?V40oObP+>p8MxOX9`=p7Y{&f{NI8jL~jV%3TNidx^?HolEt zAwUp1F6e3mtKwZ?{3Lp}rgR%81~0j>^YAH(d}9|xqeE|nE3))9Sjm%ZwZQMw74uuD z@mLi17`T^%D*yz8-RU3z2G)HmAm}5cdz*F#4J%#{0Hh*E@S?)Q)_xWc(9)Nn1ofbW z83AQ)TNK+{f;dr)CVD|9al!Of0PJ{5%KlfsPSOB)~ZU2+IaVMtQ`kBe zOWKnEtq@jP6)e>HjlILcKQ+D+|Kiu&buJ;mzFIyz;uYjF;9dxc+;ze|=<|z#uhVSJ z|1ilkL9`tCZcijIv;S^sI=>IJE#lDXZ;ElAw+K0HiCi9<02jom;(mKG5^5yYx*E`1du#(2!^ZS)h(pC=l>6PxvO zyjoM?`LPu>Z4%)&$E2)id*`A;vUXNfsgb=_KZGVXx;m6{TlVA*Gi*(je92bcIjQOP zqbV_Gh$SC(>hP9{riLvXV@;!Y7AZ;OWqA@|lKcdWX_9!!7K@#&xNtQv9e_2#KHtaK zmcj~(1QhB;{hfTZ5BU}aEMH^I2v@G(?@-iy(k<*$ATne-gPX6@nAtx>)YZ+1`=yI_ zKOx&%87R+T;}F54`cd?5!O-*Y^=$9L7n)ir&pxS5)g}$)Qwc5O#z{ScA4d`ANNSAD zd%Fnjew9Zf#v_5P-MDJ=_oT2GyqksV3h%2w0*sYTVlg<^(BsA@97gACnPB|16WGs+ zdX200yhLz|j$%KUl39ryes3;D+VUMfz?W=2%=ddBV0L`-o=tSkp^wu(w&Q&L6dAe{ z&KL(o34dy=nYgg2!k_H$9#s=gv*p|VLDh` zQc*i`tNQV$kN4w?On4ms_If-;vn~0dZv1pZigCX`%Qel2s(RyfK(ICZY{e`6BW*f) z7E6m5&0eb(jse}P7Yc*-*GjD~45-6mD|Bsp>2c*DJ;xc34e7NMrJS+NSX8yAEf<&Q zsoCV$T?DuJJU+wb3f?F~!|I5}IR;iDc-y@Xjn^lKu2 z_9kZH)*=_sNZ#@}N)K7?3tGR6-;5M+@(uUkIZYi)#@<^x3>zsyl-3zD1AmI@E_wgz z1c zS))PGx)N5L0hwi(661MGa+?pYhL#%oOteN&Qh7 z)1k}o9-{@qT|jgl&Jw0#PEpK<6+KIn8)C;$$jdRNjEXB>1uMphsad@@p1m8ZD4(TW z=3TP$dk&z6QoT~Qfe_3nbs~+E8st;}fFgnQN7%wyytv};sB25EymW&k4Zf31c)wt+ z&XV$Uf3+ui*?ADwus5e&@fR+{2L++Xl)xWv9;;mKT&%-R^)Lprs%_~4)E3_`A8i$V z;Y_o&fO~Ip3*#*Gg_W_=Th)s(n#yarU!?uaAJxDc;6~!jzvGtezMAX7H|e9`ltzwG z(G*_hf9pmIROFxyQKUBk!QGdGJvB2QT!gvw!>%bmCmikkV)Ejc6F(FLIgd z)%?BAr25P2y_^7)mMp3wG2>&A#ayi20LjMye+Nt!*%jii*soq{mzNxLWw-wRY|ERj z(#Ay``RkVu%_rIWM`V2TQldj{4puW_ttB$vmEBq$GOzM~-B60j!G{JpECK_I`R=W! zqPUNsooSRGpq?rq%1z3?CSRG#y(u|Av8*_I=MIxXxRpXkG~82Bcs}C0UDd>;3$(Sa z!cng+cwX}geDqD%9cMG6*fMU<)X5>!mmO47=rjJ=T*ZdoNbr01#pqOu4C_)qMZZTH z-?w6Cxn2_MgSWxVuJzpXxcTJ*b}9~D`4!85ycQy|^7ia=KRG0Ma6YWfUt)F1?z({A z+a|bvp)`aD`2Hx~Z-M(v9TxcT1LV;<+V2I~ly z3hkb)rVw)a+@dKVPtn(Px|6_Ef5^+83kPNvNZP+R1IZ`oxZ>WmqP*S}qSOBK*vtE| zLh2?j%l5K(YASuPfi{Jch7y;lXa;@(M(ck+iP>9*bnO17s(p6KF|I2nPyuJ<@|Hx-e5;aeNtq9w@ugob= zY@;_mh}a34pY0+4p7L3Elv#U|bx+a98|hI7D_gTs7eA|nv1B7k!7n`UpvO?6-5(OD z!YhBoUN8>7dPc!`_-m!YTViG*x-1=Ux(pSS8j3Je)-AO)|0le&-3i}0kNqo|nshy4O} zpK@XHynkw3vDgjWUT9g>U@Umk)8%cH!y}$7GR)miF=g;HL#ad0Kh?Il zuJDLzy2-fD&nS9J=rEzxq%>d_KAf_YGbqpaSw2qOrY7gzYq-C$@=TuVFC&^DO0n_K)WpV~A1mCkYg=+(FgTi_YGlyYj# zh6$0=uXD}Y{}mnyO12JAWe6w7TP_ONAP?0;Fu(Ynw{tL$JM%JaCLH>HwtlXN;F z+oyGNOt01}V41TQ67kzI*k}GVUfa`H)y$eif@gfE4Yl{5nE)vAX(=73WY6t8m>~UK zjcDx}RjYL`^8b1Y7epFl6T$ergQ^-j2psNZ*ZpuizFtYn(R6{Zr{DxCaC9LX3)Xa- z;m0P8n*xt_Sy4D<6R`@)V-*i#TTB3vI?EFjz)hfKHHxrv)6-<5`si$0u;&Hoo^liA zYAgQ(?jOcA;LRS57VPDy`|q)%3EeaS+%Y~*Eb2eikYS!u$B%ey%Jd73@OrjtZ-J_W z_tNM=M;Ul7I0X$po3ZT`l_`>nD`ZdIns&wu;8HE3_sH7;aYQxu$xrEt2Wm{#oHq)N zH8eA6uS}>K|5lp138l1@Vx(#_5-){Q0=}k^*tN$@%U;W=6NQ)Wt|k}^QQscB$)DRw(BrmN_>i8N((rW9^$%`)u5Y!;S<$bLk zaEYmuWA-tA)$($9p1cbmaIU{-pDmpJZ1@1+Pt(R;-t$Ejrtgt^n8Zh>{`?6^ww?vKb3Kh!}p#U`P37tR$MNX znC}KCP`Q{&(&=K_G$)ZX8Z(Q_7Lv6-JbOs^2Ai-Q_S;V1*=H;Geq$b9xruF(mchDukAX>O-e|;@6!$91*7xV$%M&Z0OUzP%^%^;j>I`SP2XIT zKYR`WPyIi7Jx#DoKia53ab+KqnBy!UV4BQa+1p#F0~+9 zSDy;LYrM+2B;NtjbbW;FBNAZ=kP8LW_*}Npag)1oL1y}*}e}=+NY04TEeM){R1NK z@_&Tv68{l7ta}mHpw2i2e8KHKy*Kf(z11%Pk72&X2swm;$B|ym4FP-fNfEE%fZ-(ctgKbT7BW``)rmXS)~mRpE6~@ zf~hQI>q)EIg@+l2wwQ=6;L0z-Wkwjr!HZh`E(!`9{JaZ4h!l=}c|MjI3Ov`3gk1dj z@YhX$UXlS_Qf2<>xI1`t;D!G5#^NyNNpeGT=!iY}<%L)oDp1rrGg3Fv?vr$=&W4iu z4No6ipTlSBjl!ew!~IjTEw1FM{yoz7#F6`R;eLLD#K5p_)bk@_JmBtf0!^jqe=a9b zLGa~KQ8QIkOm0?eXymKVJO)Ol$IL8jOqInYnFX&43*WpUk{DQdJZcld67h(ke<@e# zhdeM36~BTAa+V8jG{c^*V9ac5pdd#!i{WmtI~UuwK42 zL1q-)*o|c8Kjv~}VY#ki=@A@_$`W<8Z*;XSNGYXvzkh(MjsXLTW+U0F4P+o$*;p_noPTS;8by6NccT~HR0rC0&(50 zp^WfHDU1xsH5=bbz+1}5b==K~ILgwrv#B1=T?z+-C@xH*S9>4L_e*or(4VP805Kp? z#Od7!S@+-G&t5)gY%4Ps=WV^OQ!2n@C4>H4uAS3>1p)-)p#uf82;>!=mesUN-#C z%k<-)R2w6>EloW$PapY~RF3|1%QH^Hyp)*yT(pYHY==riD<-+~LypA06dNbss$&e& zd9FIjWZ(DQ?QdoISi4=t8M+gLw}YR zNo?meKNZ}DGeKW#ezI|%AUV%-ZgtcfdF!wX@y{GpxG7OQ;e;Bj*x_ZbtF;7n1 z1(gr7R_EvTOMARJ+q+70)es-h)1Y$8KBFoU4Fp7iya-RxaHPwht49I|ar5_Njr+4b zVr7LIkEH3$Dy_CflTZNv9~s`}Vpj;aT(>==llT()>gK+<>+9c_FMZy#9PVdDG=In| zWbW+WkUNA&CpuJ>nhtyx8-DM^WbX6m0IQfBc9`;rlpzfxb~_xW}k`cikN=pEKy@$*jYK~DeLm4?<$Kk zlCO<5-n&6dCP*Ih?J=)gXF5lGThSkW6rhu|PqMBg5cmnN4#B)p$o0TcrJFZFF|QWy z*;KV>nZTbwLy2TkL2%24kp|(YvaK(Iwjy1`(Og@2CKO`(HizJ^$7GFsK?3eX`d
WouAn^Q?^n#)bY@m{xRQG1H**BC4Ze_qgazuw5A%Kj{!aiV z==pdU2jDRLH65)}fhr*GpwHua!`t^%vAFrcVoymct`)X7HJuq7XoD{1G=r5d7r(}< z7QI*BV6a2a`uS#a&uy^(df8#cJAc+ocJ8xcZ=0xZvFvMt5Kq!ku5DfWV?-r8i zCX}3Ys;HY-EI?0E7IicsHal^>M7zO3Ziif~{SAm|1~LFR=~j?+&iMPfx4A5E?BOIQ zu|0dEL7fcildqG#+Q0MUQVlE0vw!xhhj#C$ow1H39eFV8bD=b2gD*iZC39&Rj0eX) zv#0&;E-MZdQ{O^jpe-bGF06DS{%D@>?_Rz{3V82N2}551l&Iw30}I1$&zHY$1Rg-5 zGvT{JOYUc{JES4;zk}&GI7IGyA6PuQ8b%IM*AntI4DzF%{-9LdQ`m~ zmnS|HfJp!f;OU7H#YL~!(jvW&zz^aID&*hKLv2`id#E2^;Ykk!?$%-hF8sU@n~Q6L zeOch5n3r}9h1+@x(e<4T_^kJs|8!4Q?hp@{^|S-O$WRe%IyKQRuv%b5!Z|za(^wlz zgAuyjs67TXCtgL=z(oGNpNjw$p^QuDRzcfKcAwo;hiQGcvI?cz9)b9^dR{7EQ?G6h zvIq#;B-=yor}AzoQFsyx*>;MQe6S2G5K(pI{WGS+84YPuv>cJ$raOIKu`p4|b5X-~ zbGd?CJVsqPhC5aRIOIa4Z@!CvJ>rPTw{KV#IKFwuB$6kOW#o6-FcIjEu+ZX zX^bhivKZ!K)&JnNIantivok7!#K0-DGaHs*%@NNtoIA~&OgZuUxI|jCm#OtB?rda) zbuuA~Som+Tm)-~4U{}TWKi4ZrW|4HdzaRAl5td34R%tl`lOnOpu3ts>>jBbJH+KK3 zNk0M!G>JXz$BE<_Egdf37N3oJk4+J#NR=*D@2X9t(|TzeE|~{^Y8|#v(C|_$sCo@= zx2xVYWd*P0axLSG28(aLoZFSGM%OgEhqe|;5a7@uvksL^q<b=VxO#)-kpmj3u>-x zkQr#y`}l|TtcXxkWInOuRAWZV*HAG5pI&*Q%pWX0-+C*Z4I=qwPJNC|*&QI#!}1Lx zMX{{{1yWB2Z!R(z(VmnMo$;Z>m|HQQMePpt-T>D7i@)X zrU{cG@i$o}VU!tYfE_^I=~qb6VyfE3jYFurjO|*w+wSxng{cqfksC+F>=dPmUxvSK zm|k23O%C` z(8(OexAq^@x2r`8eBTpQg_q<|tsV1cTzx$1(xJBd@XmibAUVyyHfR{~T&{P5CVlno z>t%)Lzs7k6iTu3#E7lL%eFr2uQ%QFvLvbSTy5!&wRM5I>5$)xBk0^Ei;+xkoT4_y{ zG?culck0neIyYAiNutEWAi7cP*daNProR>ptEtZV>Ru;3S&p+~ENPaW86Mfo5y7}w zKd+Zk5-?vtQ)CM#Ky9jd_gE=fv~h&_^xG>-s{{Yagcnx5D6M>y+^lQ%osuSQ27~&H z?k{XTJD0}aEj|Fc!(|R|rk6a2O${cPNb2)^e3^~%HUlkjv1bRa7|aO3Z_JXn-f2a% zRxmu|3<;G`_8uxy8WzR?6PXz_z| zr?Uaxb<=U-I|S%uvri9TM=WaAmQ>C6UG?Uqa3@q}nrQYK2vFhL$`7vCszHAMt7TtW z-X?QB5>xPBYSHyp4v*TAVVXp2ANxLs(Avg}{E18!XUl(!W*V5Dj2|W?SY0K4n&PST z;f$}Ag=ot)Pf7D+0rq56-JeQ7aM-~;CM%;QvlscV~59sAx& zretb2S6{&z^{9L1^G5+k`R-`}m-=Vt%kMgCqcz=Wd`woV7KabS@6Fpj7O+hq87;fy zQxbcOuvd(TtNsNO%0A#Rs5T*9=qBhIIVdurDz!ilGOw5X5>+YlD>mlA`U^k5sk{c2 zTtUh`3&xzx&S8^d4h@#z$QU7KF5_l&2et;m0Gz-0T#BP%&$+(gNdltA3fJ5E=Ver7 O&SiHWhJx`B@P7ak0)m7fEYcRK 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 U*-LLxm&9Msq-11BWpKd%0S-