From db98ce3adbdd751a139821039b2b0c80ab3d8e5c Mon Sep 17 00:00:00 2001
From: S34N <12197162+S34NW@users.noreply.github.com>
Date: Tue, 15 Mar 2022 10:38:42 +0000
Subject: [PATCH] Removes mech mass drivers and associated code (#17473)
---
_maps/map_files/RandomZLevels/spacebattle.dmm | 12 -
.../game/machinery/computer/buildandrepair.dm | 20 -
code/game/machinery/computer/pod.dm | 363 ------------------
code/game/objects/effects/landmarks.dm | 3 -
.../research/designs/machine_designs.dm | 10 -
paradise.dme | 1 -
6 files changed, 409 deletions(-)
delete mode 100644 code/game/machinery/computer/pod.dm
diff --git a/_maps/map_files/RandomZLevels/spacebattle.dmm b/_maps/map_files/RandomZLevels/spacebattle.dmm
index a2fa38cf08c..4f38e44eb0e 100644
--- a/_maps/map_files/RandomZLevels/spacebattle.dmm
+++ b/_maps/map_files/RandomZLevels/spacebattle.dmm
@@ -258,10 +258,6 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/spacebattle/syndicate3)
"bl" = (
-/obj/machinery/computer/pod{
- id_tags = list("spacebattlepod3");
- name = "Hull Door Control"
- },
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/spacebattle/syndicate2)
"bm" = (
@@ -400,10 +396,6 @@
/turf/simulated/floor/plasteel,
/area/awaymission/spacebattle/cruiser)
"bY" = (
-/obj/machinery/computer/pod{
- id_tags = list("spacebattlepod");
- name = "Hull Door Control"
- },
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/spacebattle/cruiser)
"bZ" = (
@@ -644,10 +636,6 @@
/turf/simulated/floor/plasteel,
/area/awaymission/spacebattle/cruiser)
"cZ" = (
-/obj/machinery/computer/pod{
- id_tags = list("spacebattlepod2");
- name = "Hull Door Control"
- },
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/spacebattle/cruiser)
"db" = (
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 8cac7136b29..dc52ca7aab1 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -179,14 +179,6 @@
board_name = "Injector Control"
build_path = /obj/machinery/computer/general_air_control/fuel_injection
-/obj/item/circuitboard/pod
- board_name = "Massdriver Control"
- build_path = /obj/machinery/computer/pod
-
-/obj/item/circuitboard/pod/deathsquad
- board_name = "Deathsquad Massdriver Control"
- build_path = /obj/machinery/computer/pod/deathsquad
-
/obj/item/circuitboard/robotics
board_name = "Robotics Control Console"
build_path = /obj/machinery/computer/robotics
@@ -227,18 +219,6 @@
build_path = /obj/machinery/computer/monitor/secret
origin_tech = "programming=2;powerstorage=2"
-/obj/item/circuitboard/olddoor
- board_name = "DoorMex"
- build_path = /obj/machinery/computer/pod/old
-
-/obj/item/circuitboard/syndicatedoor
- board_name = "ProComp Executive"
- build_path = /obj/machinery/computer/pod/old/syndicate
-
-/obj/item/circuitboard/swfdoor
- board_name = "Magix"
- build_path = /obj/machinery/computer/pod/old/swf
-
/obj/item/circuitboard/prisoner
board_name = "Prisoner Management"
build_path = /obj/machinery/computer/prisoner
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
deleted file mode 100644
index dfbcc4e8303..00000000000
--- a/code/game/machinery/computer/pod.dm
+++ /dev/null
@@ -1,363 +0,0 @@
-/obj/machinery/computer/pod
- name = "mass drivers and pod doors control"
- desc = "A control for launching pods. Some people prefer firing Mechas."
- icon_screen = "mass_driver"
- light_color = "#555555"
- circuit = /obj/item/circuitboard/pod
- var/list/id_tags = list()
- var/list/door_only_tags = list()
- var/list/synced = list()
- var/list/timings = list()
- var/list/times = list()
- var/list/maxtimes = list()
- var/list/powers = list()
- var/list/loopings = list()
-
-/obj/machinery/computer/pod/New()
- ..()
- spawn(5)
- driver_sync()
-
-
-/obj/machinery/computer/pod/proc/driver_sync()
- timings = list()
- times = list()
- synced = list()
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- for(var/ident_tag in id_tags)
- if((M.id_tag == ident_tag) && !(ident_tag in synced))
- synced += ident_tag
- timings += ident_tag
- timings[ident_tag] = 0.0
- times += ident_tag
- times[ident_tag] = 30.0
- maxtimes += ident_tag
- maxtimes[ident_tag] = 30.0
- powers += ident_tag
- powers[ident_tag] = 1.0
- loopings += ident_tag
- loopings[ident_tag] = 0
- break
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- for(var/ident_tag in id_tags)
- if((M.id_tag == ident_tag) && !(ident_tag in synced) && !(ident_tag in door_only_tags))
- door_only_tags += ident_tag
- break
-
- return
-
-/obj/machinery/computer/pod/proc/solo_sync(ident_tag)
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- if((M.id_tag == ident_tag) && !(ident_tag in synced))
- synced += ident_tag
- timings += ident_tag
- timings[ident_tag] = 0.0
- times += ident_tag
- times[ident_tag] = 30.0
- maxtimes += ident_tag
- maxtimes[ident_tag] = 30.0
- powers += ident_tag
- powers[ident_tag] = 1.0
- loopings += ident_tag
- loopings[ident_tag] = 0
- break
- if(!(ident_tag in synced))
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if((M.id_tag == ident_tag) && !(ident_tag in synced) && !(ident_tag in door_only_tags))
- door_only_tags += ident_tag
- break
-
- return
-
-
-/obj/machinery/computer/pod/proc/launch_sequence(ident_tag)
- if(stat & (NOPOWER|BROKEN))
- return
- var/anydriver = 0
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- anydriver = 1
- if(!anydriver)
- visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
- return
-
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- spawn()
- M.open()
- sleep(20)
-
-
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- M.drive()
-
- sleep(50)
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- spawn()
- M.close()
- return
-
-
-/obj/machinery/computer/pod/attack_ai(mob/user as mob)
- src.add_hiddenprint(user)
- return attack_hand(user)
-
-
-/obj/machinery/computer/pod/attack_hand(mob/user as mob)
- if(..())
- return
-
- var/dat = "
[name](rename)"
- user.set_machine(src)
- dat += "
Reset Connections
"
- if(synced.len)
- dat += "
Fire All Connected Drivers
"
- if(istype(src,/obj/machinery/computer/pod/deathsquad))
- dat += "
Set Teleporter Destination Z-Level
"
- for(var/ident_tag in id_tags)
- if(!(ident_tag in door_only_tags))
- dat += "
[ident_tag] remove"
- if(ident_tag in synced)
- var/d2 = ""
- if(timings[ident_tag]) //door controls do not need timers.
- d2 = "Stop Time Launch"
- else
- d2 = "Initiate Time Launch"
- var/second = times[ident_tag] % 60
- var/minute = (times[ident_tag] - second) / 60
- var/maxsecond = maxtimes[ident_tag] % 60
- var/maxminute = (maxtimes[ident_tag] - maxsecond) / 60
- dat += "
\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second]/[maxminute ? "[maxminute]:" : null][maxsecond] - - + +"
- dat += "
Set timer to loop: [loopings[ident_tag] ? "Yes" : "No"]"
- var/temp = ""
- var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
- for(var/t in L)
- if( powers[ident_tag] == t)
- temp += "[t] "
- else
- temp += "[t] "
- dat += "
\nPower Level: [temp]
\nFire Drive!
\nToggle Pod Doors
"
-
- for(var/ident_tag in door_only_tags)
- dat += "
[ident_tag] remove"
- dat += "
\nToggle Pod Doors
"
-
- dat += "
add another id_tag"
-
- dat += "
Close"
- user << browse(dat, "window=computer;size=400x500")
- add_fingerprint(usr)
- onclose(user, "computer")
- return
-
-/obj/machinery/computer/pod/process()
- if(!..())
- return
- for(var/ident_tag in id_tags)
- if(timings[ident_tag])
- if(times[ident_tag] > 0)
- times[ident_tag] = round(times[ident_tag]) - 1
- else
- spawn()
- launch_sequence(ident_tag)
- if(loopings[ident_tag])
- times[ident_tag] = maxtimes[ident_tag]
- else
- times[ident_tag] = 0
- timings[ident_tag] = 0
- else
- times[ident_tag] = maxtimes[ident_tag]
- updateDialog()
- return
-
-
-/obj/machinery/computer/pod/Topic(href, href_list)
- if(..())
- return 1
- else
- usr.set_machine(src)
- if(href_list["add"])
- var/new_id_tag = input("Enter a new id_tag", "Mass Driver Controls", "id_tag")
- if(!(new_id_tag in id_tags))
- id_tags += new_id_tag
- solo_sync(new_id_tag)
- if(href_list["remove"])
- var/ident_tag = href_list["driver"]
- if(ident_tag in synced)
- synced -= ident_tag
- if(ident_tag in door_only_tags)
- door_only_tags -= ident_tag
- timings -= ident_tag
- times -= ident_tag
- powers -= ident_tag
- loopings -= ident_tag
- id_tags -= ident_tag
- if(href_list["dstele"])
- var/choices = list(0)
- var/list/reachable_levels = levels_by_trait(REACHABLE)
- for(var/z in reachable_levels)
- choices += z
- var/obj/machinery/computer/pod/deathsquad/D = src
- var/input = input("Enter the destination Z-Level. The mechs will arrive from the East. Leave 0 if you don't want to set a specific ZLevel", "Mass Driver Controls", 0) in choices
- D.teleporter_dest = input
-
- if(href_list["massfire"])
- for(var/ident_tag in synced)
- spawn()
- launch_sequence(ident_tag)
- if(href_list["power"])
- var/ident_tag = href_list["driver"]
- var/t = text2num(href_list["power"])
- t = min(max(0.25, t), 16)
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.id_tag == ident_tag)
- M.power = t
- powers[ident_tag] = t
- if(href_list["launch"])
- launch_sequence(href_list["driver"])
- if(href_list["time"])
- var/ident_tag = href_list["driver"]
- timings[ident_tag] = text2num(href_list["time"])
- if(href_list["loop"])
- var/ident_tag = href_list["driver"]
- loopings[ident_tag] = text2num(href_list["loop"])
- if(href_list["sync"])
- driver_sync()
- if(href_list["tp"])
- var/ident_tag = href_list["driver"]
- var/tp = text2num(href_list["tp"])
- maxtimes[ident_tag] += tp
- maxtimes[ident_tag] = min(max(round(maxtimes[ident_tag]), 0), 120)
- if(href_list["door"])
- var/ident_tag = href_list["driver"]
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- spawn()
- if(M.density)
- M.open()
- else
- M.close()
- if(href_list["rename"])
- var/new_title = input("Enter a new title", "[name]", "[name]")
- if(new_title)
- name = new_title
- updateUsrDialog()
- return
-
-
-
-/obj/machinery/computer/pod/old
- icon_state = "oldcomp"
- icon_screen = "library"
- icon_keyboard = null
- name = "\improper DoorMex control computer"
- circuit = /obj/item/circuitboard/olddoor
-
-
-/obj/machinery/computer/pod/old/syndicate
- name = "external airlock controls"
- desc = "The Syndicate operate on a tight budget. Operates external airlocks."
- req_access = list(ACCESS_SYNDICATE)
- circuit = /obj/item/circuitboard/syndicatedoor
- light_color = "#00FFFF"
-
-/obj/machinery/computer/pod/old/syndicate/attack_hand(mob/user as mob)
- if(!allowed(user))
- to_chat(user, "Access Denied")
- return
- else
- ..()
-
-/obj/machinery/computer/pod/old/swf
- name = "\improper Magix System IV"
- desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition"
- circuit = /obj/item/circuitboard/swfdoor
-
-
-/obj/machinery/computer/pod/deathsquad
- id_tags = list("ASSAULT0","ASSAULT1","ASSAULT2","ASSAULT3")
- var/teleporter_dest = 0
- circuit = /obj/item/circuitboard/pod/deathsquad
-
-/obj/machinery/computer/pod/deathsquad/launch_sequence(ident_tag)
- if(stat & (NOPOWER|BROKEN))
- return
- var/anydriver = 0
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- anydriver = 1
- if(!anydriver)
- visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
- return
-
- var/spawn_marauder[] = new()
- for(var/thing in GLOB.landmarks_list)
- var/obj/effect/landmark/L = thing
- if(L.name == "Marauder Entry")
- spawn_marauder.Add(L)
- for(var/obj/effect/landmark/mechlaunch/L in GLOB.landmarks_list)
- var/obj/effect/portal/P = new(L.loc, pick(spawn_marauder))
- P.invisibility = 101 //So it is not seen by anyone.
- P.failchance = 0 //So it has no fail chance when teleporting.
- spawn_marauder.Remove(P.target)
-
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- spawn()
- M.open()
- sleep(20)
-
- for(var/obj/machinery/mass_driver/M in GLOB.machines)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- M.drive()
-
- sleep(50)
- for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
- if(M.z != src.z) continue
- if(M.id_tag == ident_tag)
- spawn()
- M.close()
-
- for(var/obj/structure/deathsquad_tele/D in world)
- if(D.z != src.z) continue
- if(D.id_tag == ident_tag)
- D.icon_state = "tele0"
- D.density = 0
-
- return
-
-/obj/structure/deathsquad_tele
- name = "mech teleporter"
- density = 0
- anchored = 1
- icon = 'icons/obj/stationobjs.dmi'
- icon_state = "tele0"
- var/ztarget = 0
- var/id_tag = ""
-
-
-/obj/structure/deathsquad_tele/Bumped(atom/movable/AM)
- if(!ztarget) return ..()
- var/y = AM.y
- spawn()
- AM.z = ztarget
- AM.y = y
- AM.x = world.maxx - TRANSITIONEDGE - 2
- AM.dir = 8
- var/atom/target = get_edge_target_turf(AM, AM.dir)
- AM.throw_at(target, 50, 1)
- return
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index d671c5debdf..aed8fb05dc6 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -25,9 +25,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
/obj/effect/landmark/lightsout
name = "Electrical Storm Epicentre"
-/obj/effect/landmark/mechlaunch
- name = "CC mech exit point"
-
/obj/effect/landmark/awaystart
name = "awaystart"
icon = 'icons/effects/spawner_icons.dmi'
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 300563a5fc0..caef24b5237 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -452,16 +452,6 @@
build_path = /obj/item/circuitboard/arcade/orion_trail
category = list("Misc. Machinery")
-/datum/design/pod
- name = "Machine Board (Mass Driver and Pod Doors Control)"
- desc = "Allows for the construction of circuit boards used to build a Mass Driver and Pod Doors Control."
- id = "pod"
- req_tech = list("programming" = 2,"engineering" = 4)
- build_type = IMPRINTER
- materials = list(MAT_GLASS = 1000)
- build_path = /obj/item/circuitboard/pod
- category = list("Misc. Machinery")
-
/datum/design/ore_redemption
name = "Machine Design (Ore Redemption Board)"
desc = "The circuit board for an Ore Redemption machine."
diff --git a/paradise.dme b/paradise.dme
index fc56e8f4226..91cd745fe11 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -746,7 +746,6 @@
#include "code\game\machinery\computer\medical.dm"
#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\power.dm"
#include "code\game\machinery\computer\prisoner.dm"
#include "code\game\machinery\computer\robot.dm"