diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 23743ffc10c..9794583f59e 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -123,11 +123,11 @@
name = "Circuit board (Turbine Control)"
build_path = "/obj/machinery/computer/turbine_computer"
/obj/item/weapon/circuitboard/solar_control
- name = "Circuit board (Solar Control)"
+ name = "Circuit board (Solar Control)"
build_path = "/obj/machinery/power/solar_control"
origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/powermonitor
- name = "Circuit board (Power Monitor)"
+ name = "Circuit board (Power Monitor)"
build_path = "/obj/machinery/power/monitor"
/obj/item/weapon/circuitboard/olddoor
name = "Circuit board (DoorMex)"
@@ -147,6 +147,9 @@
/obj/item/weapon/circuitboard/mecha_control
name = "Circuit Board (Exosuit Control Console)"
build_path = "/obj/machinery/computer/mecha"
+/obj/item/weapon/circuitboard/pod_locater
+ name = "Circuit Board (Pod Location Console)"
+ build_path = "/obj/machinery/computer/podtracker"
/obj/item/weapon/circuitboard/rdservercontrol
name = "Circuit Board (RD Server Control)"
build_path = "/obj/machinery/computer/rdservercontrol"
@@ -203,7 +206,7 @@
name = "Circuit board (Research Shuttle)"
build_path = "/obj/machinery/computer/shuttle_control/research"
origin_tech = "programming=2"
-/obj/item/weapon/circuitboard/HolodeckControl
+/obj/item/weapon/circuitboard/HolodeckControl
name = "Circuit board (Holodeck Control)"
build_path = "/obj/machinery/computer/HolodeckControl"
origin_tech = "programming=4"
diff --git a/code/game/machinery/computer/pod_tracking_console.dm b/code/game/machinery/computer/pod_tracking_console.dm
new file mode 100644
index 00000000000..5707e0d791f
--- /dev/null
+++ b/code/game/machinery/computer/pod_tracking_console.dm
@@ -0,0 +1,44 @@
+/obj/machinery/computer/podtracker
+ name = "Pod Tracking Console"
+ icon = 'icons/obj/computer.dmi'
+ icon_state = "podtracking"
+ req_access = list(access_robotics)
+ circuit = "/obj/item/weapon/circuitboard/pod_locater"
+
+/obj/machinery/computer/podtracker/attack_ai(var/mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/machinery/computer/podtracker/attack_paw(var/mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/machinery/computer/podtracker/attack_hand(var/mob/user as mob)
+ if(..())
+ return
+ user.set_machine(src)
+ var/dat = "
[src.name]"
+ dat += "Pod beacons data
"
+ for(var/obj/item/device/spacepod_equipment/misc/tracker/TR in world)
+ var/obj/spacepod/myPod = TR.my_atom
+ var/enabled = TR.enabled
+ if(myPod && enabled)
+ dat += {"
[capitalize(myPod.name)]
+ Pod SPS X: [myPod.x]
+ Pod SPS Y: [myPod.y]
+ Pod SPS Z: [myPod.z]"}
+ if(myPod.occupant)
+ dat += {" Pod Pilot: [myPod.occupant.name]"}
+ if(myPod.occupant2)
+ dat += {" Pod Passenger: [myPod.occupant2.name]"}
+
+ dat += "(Refresh)
"
+ dat += ""
+
+ user << browse(dat, "window=computer;size=400x500")
+ onclose(user, "computer")
+ return
+
+/obj/machinery/computer/podtracker/Topic(href, href_list)
+ if(..())
+ return
+ src.updateUsrDialog()
+ return
diff --git a/code/game/vehicles/spacepods/equipment.dm b/code/game/vehicles/spacepods/equipment.dm
index 3adbcf1ab32..80a24e72727 100644
--- a/code/game/vehicles/spacepods/equipment.dm
+++ b/code/game/vehicles/spacepods/equipment.dm
@@ -49,6 +49,7 @@
/datum/spacepod/equipment
var/obj/spacepod/my_atom
var/obj/item/device/spacepod_equipment/weaponry/weapon_system // weapons system
+ var/obj/item/device/spacepod_equipment/misc/misc_system // misc system
//var/obj/item/device/spacepod_equipment/engine/engine_system // engine system
//var/obj/item/device/spacepod_equipment/shield/shield_system // shielding system
@@ -100,3 +101,27 @@
fire_sound = 'sound/weapons/Laser.ogg'
fire_delay = 30
+//base item for spacepod misc equipment (tracker)
+/obj/item/device/spacepod_equipment/misc
+ name = "pod misc"
+ desc = "You shouldn't be seeing this"
+ icon = 'icons/pods/ship.dmi'
+ icon_state = "blank"
+ var/enabled
+
+/obj/item/device/spacepod_equipment/misc/tracker
+ name = "\improper spacepod tracking system"
+ desc = "A tracking device for spacepods."
+ icon_state = "pod_locator"
+ enabled = 0
+
+/obj/item/device/spacepod_equipment/misc/tracker/attackby(obj/item/I as obj, mob/user as mob, params)
+ if(isscrewdriver(I))
+ if(enabled)
+ enabled = 0
+ user.show_message("You disable \the [src]'s power.")
+ return
+ enabled = 1
+ user.show_message("You enable \the [src]'s power.")
+ else
+ ..()
\ No newline at end of file
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index aea443181fd..feeb98b2751 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -233,6 +233,19 @@
equipment_system.weapon_system = W
equipment_system.weapon_system.my_atom = src
return
+
+ if(istype(W, /obj/item/device/spacepod_equipment/misc))
+ if(equipment_system.misc_system)
+ user << "The pod already has a miscellaneous system, remove it first."
+ return
+ else
+ user << "You insert \the [W] into the equipment system."
+ user.drop_item(W)
+ W.loc = equipment_system
+ equipment_system.misc_system = W
+ equipment_system.misc_system.my_atom = src
+ return
+
if(istype(W, /obj/item/weapon/weldingtool))
if(!hatch_open)
user << "\red You must open the maintenance hatch before attempting repairs."
@@ -265,6 +278,8 @@
possible.Add("Energy Cell")
if(equipment_system.weapon_system)
possible.Add("Weapon System")
+ if(equipment_system.misc_system)
+ possible.Add("Misc. System")
/* Not yet implemented
if(equipment_system.engine_system)
possible.Add("Engine System")
@@ -285,6 +300,14 @@
equipment_system.weapon_system = null
else
user << "You need an open hand to do that."
+ if("Misc. System")
+ SPE = equipment_system.misc_system
+ if(user.put_in_any_hand_if_possible(SPE))
+ user << "You remove \the [SPE] from the equipment system."
+ SPE.my_atom = null
+ equipment_system.misc_system = null
+ else
+ user << "You need an open hand to do that."
/*
if("engine system")
SPE = equipment_system.engine_system
@@ -323,6 +346,11 @@
T.loc = equipment_system
equipment_system.weapon_system = T
equipment_system.weapon_system.my_atom = src
+ var/obj/item/device/spacepod_equipment/misc/tracker/L = new /obj/item/device/spacepod_equipment/misc/tracker
+ L.loc = equipment_system
+ equipment_system.misc_system = L
+ equipment_system.misc_system.my_atom = src
+ equipment_system.misc_system.enabled = 1
return
/obj/spacepod/random/New()
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 68ca1c27660..cfbb5c8002f 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -11,7 +11,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/aicore
category = list("Computer Boards")
-
+
/datum/design/aifixer
name = "Console Board (AI Integrity Restorer)"
desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer."
@@ -31,7 +31,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/aiupload
category = list("Computer Boards")
-
+
/datum/design/atmosalerts
name = "Console Board (Atmospheric Alerts)"
desc = "Allows for the construction of circuit boards used to build an atmosphere alert console.."
@@ -41,7 +41,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/atmos_alert
category = list("Computer Boards")
-
+
/datum/design/air_management
name = "Console Board (Atmospheric Monitor)"
desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
@@ -51,7 +51,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/air_management
category = list("Computer Boards")
-
+
/datum/design/seccamera
name = "Console Board (Camera Monitor)"
desc = "Allows for the construction of circuit boards used to build camera monitors."
@@ -61,7 +61,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/camera
category = list("Computer Boards")
-
+
/datum/design/clonecontrol
name = "Console Board (Cloning Machine Console)"
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
@@ -70,8 +70,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/cloning
- category = list("Computer Boards")
-
+ category = list("Computer Boards")
+
/datum/design/comconsole
name = "Console Board (Communications Console)"
desc = "Allows for the construction of circuit boards used to build a communications console."
@@ -81,7 +81,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/communications
category = list("Computer Boards")
-
+
/datum/design/crewconsole
name = "Console Board (Crew Monitoring Computer)"
desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer."
@@ -101,7 +101,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/borgupload
category = list("Computer Boards")
-
+
/datum/design/scan_console
name = "Console Board (DNA Machine)"
desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
@@ -111,7 +111,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/scan_consolenew
category = list("Computer Boards")
-
+
/datum/design/dronecontrol
name = "Console Board (Drone Control Console)"
desc = "Allows for the construction of circuit boards used to build a Drone Control console."
@@ -121,7 +121,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/drone_control
category = list("Computer Boards")
-
+
/datum/design/mechacontrol
name = "Console Board (Exosuit Control Console)"
desc = "Allows for the construction of circuit boards used to build an exosuit control console."
@@ -131,7 +131,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha_control
category = list("Computer Boards")
-
+
/datum/design/idcardconsole
name = "Console Board (ID Computer)"
desc = "Allows for the construction of circuit boards used to build an ID computer."
@@ -150,8 +150,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mech_bay_power_console
- category = list("Computer Boards")
-
+ category = list("Computer Boards")
+
/datum/design/med_data
name = "Console Board (Medical Records)"
desc = "Allows for the construction of circuit boards used to build a medical records console."
@@ -161,7 +161,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/med_data
category = list("Computer Boards")
-
+
/datum/design/message_monitor
name = "Console Board (Messaging Monitor Console)"
desc = "Allows for the construction of circuit boards used to build a messaging monitor console."
@@ -191,7 +191,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/pandemic
category = list("Computer Boards")
-
+
/datum/design/powermonitor
name = "Console Board (Power Monitor)"
desc = "Allows for the construction of circuit boards used to build a new power monitor"
@@ -201,7 +201,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/powermonitor
category = list("Computer Boards")
-
+
/datum/design/prisonmanage
name = "Console Board (Prisoner Management Console)"
desc = "Allows for the construction of circuit boards used to build a prisoner management console."
@@ -211,7 +211,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/prisoner
category = list("Computer Boards")
-
+
/datum/design/rdconsole
name = "Console Board (R&D Console)"
desc = "Allows for the construction of circuit boards used to build a new R&D console."
@@ -221,7 +221,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/rdconsole
category = list("Computer Boards")
-
+
/datum/design/rdservercontrol
name = "Console Board (R&D Server Control Console)"
desc = "The circuit board for a R&D Server Control Console"
@@ -241,7 +241,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/robotics
category = list("Computer Boards")
-
+
/datum/design/secdata
name = "Console Board (Security Records Console)"
desc = "Allows for the construction of circuit boards used to build a security records console."
@@ -251,7 +251,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/secure_data
category = list("Computer Boards")
-
+
/datum/design/solarcontrol
name = "Console Board (Solar Control)"
desc = "Allows for the construction of circuit boards used to build a solar control console"
@@ -261,7 +261,17 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/solar_control
category = list("Computer Boards")
-
+
+/datum/design/spacepodlocator
+ name = "Console Board (Spacepod Locator)"
+ desc = "Allows for the construction of circuit boards used to build a space-pod locating console"
+ id = "spacepodc"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 1000, "sacid" = 20)
+ build_path = /obj/item/weapon/circuitboard/pod_locater
+ category = list("Computer Boards")
+
/datum/design/ordercomp
name = "Console Board (Supply Ordering Console)"
desc = "Allows for the construction of circuit boards used to build a supply ordering console."
@@ -271,7 +281,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/ordercomp
category = list("Computer Boards")
-
+
/datum/design/supplycomp
name = "Console Board (Supply Shuttle Console)"
desc = "Allows for the construction of circuit boards used to build a supply shuttle console."
@@ -281,7 +291,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/supplycomp
category = list("Computer Boards")
-
+
/datum/design/comm_monitor
name = "Console Board (Telecommunications Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunications monitor."
@@ -291,7 +301,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/comm_monitor
category = list("Computer Boards")
-
+
/datum/design/comm_server
name = "Console Board (Telecommunications Server Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor."
@@ -301,7 +311,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/comm_server
category = list("Computer Boards")
-
+
/datum/design/comm_traffic
name = "Console Board (Telecommunications Traffic Control Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunications traffic control console."
diff --git a/code/modules/research/designs/spacepod_designs.dm b/code/modules/research/designs/spacepod_designs.dm
index 307f79678b0..3f7b5182d09 100644
--- a/code/modules/research/designs/spacepod_designs.dm
+++ b/code/modules/research/designs/spacepod_designs.dm
@@ -123,4 +123,18 @@
build_path = /obj/item/device/spacepod_equipment/weaponry/laser
category = list("Pod_Weaponry")
materials = list("$metal"=10000,"$glass"=5000,"$gold"=1000,"$silver"=2000)
- locked = 1
\ No newline at end of file
+ locked = 1
+//////////////////////////////////////////
+//////SPACEPOD MISC. ITEMS////////////////
+//////////////////////////////////////////
+
+/datum/design/pod_misc_tracker
+ construction_time = 100
+ name = "Spacepod Tracking Module"
+ desc = "Allows for the construction of a Space Pod Tracking Module."
+ id = "podmisc_tracker"
+ req_tech = list("materials" = 2) //Materials 2: easy to get, no trackers with 0 science progress
+ build_type = PODFAB
+ materials = list("$metal"=5000)
+ build_path = /obj/item/device/spacepod_equipment/misc/tracker
+ category = list("Pod_Parts")
\ No newline at end of file
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index 3350249c3f5..8e0c61f24f9 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/pods/ship.dmi b/icons/pods/ship.dmi
index e31477ce63d..f5d2e4113aa 100644
Binary files a/icons/pods/ship.dmi and b/icons/pods/ship.dmi differ
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index e44bd76c864..a9a8632219c 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -5934,7 +5934,7 @@
"ckf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engine/mechanic_workshop)
"ckg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/mechanic_workshop)
"ckh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/mechanic_workshop)
-"cki" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/mechanic_workshop)
+"cki" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/computer/podtracker,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/mechanic_workshop)
"ckj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"ckk" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"ckl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
diff --git a/paradise.dme b/paradise.dme
index 2a3b3545770..56ca0c6a5d3 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -443,6 +443,7 @@
#include "code\game\machinery\computer\message.dm"
#include "code\game\machinery\computer\Operating.dm"
#include "code\game\machinery\computer\pod.dm"
+#include "code\game\machinery\computer\pod_tracking_console.dm"
#include "code\game\machinery\computer\power.dm"
#include "code\game\machinery\computer\prisoner.dm"
#include "code\game\machinery\computer\prisonshuttle.dm"