Fixes drop pods, fixes the Ninja TP consoles, fixes shuttles being unable to dock with the Horizon. (#14138)

This commit is contained in:
Matt Atlas
2022-05-29 20:26:06 +02:00
committed by GitHub
parent 73e16b02cf
commit f3bb184919
14 changed files with 689 additions and 642 deletions

View File

@@ -387,8 +387,6 @@ var/list/mob/living/forced_ambiance_list = new
continue
if (istype(A, /area/mine))
continue
if (istype(A, /area/horizon/exterior))
continue
//Although hostile mobs instadying to turrets is fun
//If there's no AI they'll just be hit with stunbeams all day and spam the attack logs.

View File

@@ -19,6 +19,7 @@
var/max_teleport_range = 4 //max overmap teleport distance
var/calibration = 0 // a percentage chance for teleporting into space instead of your target. 0 is perfectly calibrated, 100 is totally uncalibrated
var/engaged = FALSE
var/ignore_distance = FALSE // For antag teleporters.
/obj/machinery/teleport/pad/Initialize()
. = ..()
@@ -68,6 +69,8 @@
add_overlay(I)
/obj/machinery/teleport/pad/proc/within_range(var/target)
if(ignore_distance)
return TRUE
if (isweakref(target))
var/datum/weakref/target_ref = target
target = target_ref.resolve()
@@ -115,3 +118,6 @@
/obj/machinery/teleport/pad/proc/recalibrate()
calibration = 0
audible_message(SPAN_NOTICE("Calibration complete."))
/obj/machinery/teleport/pad/ninja
ignore_distance = TRUE

View File

@@ -110,6 +110,11 @@
desc = "A computer that has a special teleporter control program loaded."
_app_preset_type = /datum/modular_computer_app_presets/command/teleporter
/obj/item/modular_computer/console/preset/command/teleporter/ninja
name = "teleporter control console"
desc = "A computer that has a special teleporter control program loaded."
_app_preset_type = /datum/modular_computer_app_presets/command/teleporter/ninja
// Civilian
/obj/item/modular_computer/console/preset/civilian
name = "civilian console"

View File

@@ -245,6 +245,26 @@
)
return _prg_list
/datum/modular_computer_app_presets/command/teleporter/ninja
name = "ninja_teleporter"
display_name = "Offsite - Teleporter"
description = "Contains the most common command programs and has a special teleporter control program loaded."
available = FALSE
/datum/modular_computer_app_presets/command/teleporter/ninja/return_install_programs(obj/item/modular_computer/comp)
var/list/_prg_list = list(
new /datum/computer_file/program/ntnetdownload(comp),
new /datum/computer_file/program/filemanager(comp),
new /datum/computer_file/program/newsbrowser(comp),
new /datum/computer_file/program/manifest(comp),
new /datum/computer_file/program/chat_client(comp),
new /datum/computer_file/program/civilian/cargoorder(comp),
new /datum/computer_file/program/comm(comp, FALSE),
new /datum/computer_file/program/records/employment(comp),
new /datum/computer_file/program/teleporter/ninja(comp)
)
return _prg_list
/datum/modular_computer_app_presets/command/hop
name = "command_hop"
display_name = "Command - HoP"

View File

@@ -162,3 +162,8 @@
linked_pad.visible_message(SPAN_NOTICE("Locked in."), range = 2)
SSvueui.check_uis_for_change(src)
/datum/computer_file/program/teleporter/ninja
required_access_run = list()
requires_ntnet = FALSE
requires_access_to_run = FALSE

View File

@@ -17,8 +17,6 @@
fire_dam_coeff = 0.6
brute_dam_coeff = 0.5
var/list/validfirelocations = list(1, 7, 9) // above the station, at the centcomm z-level and at derelicts.
var/status = READY
var/mob/humanload
@@ -180,32 +178,30 @@
var/area/A = null
var/target = href_list["fire"]
switch(target)
if("arrivals")
var/arrivals_destination_list = list(
/area/hallway/secondary/entry/fore = 35,
/area/hallway/secondary/entry/port = 35,
/area/security/vacantoffice = 15,
/area/hallway/secondary/entry/departure_lounge = 15
if("recreational_areas")
var/list/recreational_areas_list = list(
/area/horizon/crew_quarters/fitness/hallway = 25,
/area/horizon/crew_quarters/fitness/changing = 25,
/area/horizon/crew_quarters/fitness/pool = 25,
/area/horizon/crew_quarters/fitness/gym = 25
)
A = pickweight(arrivals_destination_list)
if("cargo")
var/cargo_destination_list = list(
/area/quartermaster/loading = 50,
/area/quartermaster/qm = 20,
/area/maintenance/store = 10,
/area/store = 5,
/area/hallway/secondary/entry/aft = 10,
/area/sconference_room = 5
A = pickweight(recreational_areas_list)
if("operations")
var/list/ops_list = list(
/area/operations/break_room = 15,
/area/maintenance/wing/starboard = 20,
/area/maintenance/wing/starboard/deck1 = 20,
/area/operations/office = 10,
/area/operations/storage = 15,
/area/outpost/mining_main/refinery = 20
)
A = pickweight(cargo_destination_list)
if("commandescape")
var/commandescape_destination_list = list(
/area/bridge/levela = 35,
/area/bridge/levela/research_dock = 35,
/area/security/bridge_surface_checkpoint = 15,
/area/maintenance/bridge_elevator/surface = 15
A = pickweight(ops_list)
if("starboard_wing")
var/list/starboard_wing_list = list(
/area/maintenance/wing/starboard = 50,
/area/maintenance/wing/starboard/far = 50
)
A = pickweight(commandescape_destination_list)
A = pickweight(starboard_wing_list)
if(A)
var/mob/user = usr
if(!(user in src))
@@ -238,16 +234,23 @@
else
obstacle_found = FALSE
if(!length(turf_selection)) //If the list of turfs is empty then the pick below would runtime and break the pod.
pod_error()
return
var/target_turf = pick(turf_selection)
if(!target_turf)
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
visible_message(SPAN_WARNING("\The [src]'s screen displays an error: Targeting module malfunction. Attempt relaunch."))
status = READY
if(connected_blastdoor)
blastdoor_interact(TRUE)
pod_error()
return
fire(target_turf)
/obj/vehicle/droppod/proc/pod_error()
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
visible_message(SPAN_WARNING("\The [src]'s screen displays an error: Targeting module malfunction. Attempt relaunch."))
status = READY
if(connected_blastdoor)
blastdoor_interact(TRUE)
/obj/vehicle/droppod/proc/fire(var/turf/A)
if(!isturf(A))
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
@@ -257,14 +260,6 @@
blastdoor_interact(TRUE)
return
if(!(src.z in validfirelocations))
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
visible_message(SPAN_WARNING("\The [src]'s screen displays an error: Pod cannot be launched from this position."))
status = READY
if(connected_blastdoor)
blastdoor_interact(TRUE)
return
var/turf/aboveturf = GetAbove(A)
if(aboveturf)
applyfalldamage(aboveturf)