Merge pull request #6690 from VOREStation/vplk-ntnet-fixer

Fixes to Modular Computers and NTNet Relays
This commit is contained in:
Atermonera
2020-02-20 22:57:02 -08:00
committed by VirgoBot
parent a41caca3ca
commit 1010fd283b
8 changed files with 31 additions and 37 deletions

View File

@@ -31,9 +31,10 @@ var/global/datum/ntnet/ntnet_global = new()
/datum/ntnet/New()
if(ntnet_global && (ntnet_global != src))
ntnet_global = src // There can be only one.
for(var/obj/machinery/ntnet_relay/R in machines)
relays.Add(R)
R.NTNet = src
if (SSatoms && SSatoms.initialized > INITIALIZATION_INSSATOMS)
for(var/obj/machinery/ntnet_relay/R in machines)
relays.Add(R)
R.NTNet = src
build_software_lists()
build_news_list()
build_emails_list()

View File

@@ -8,6 +8,7 @@
icon_state = "bus"
anchored = 1
density = 1
circuit = /obj/item/weapon/circuitboard/ntnet_relay
var/datum/ntnet/NTNet = null // This is mostly for backwards reference and to allow varedit modifications from ingame.
var/enabled = 1 // Set to 0 if the relay was turned off
var/dos_failure = 0 // Set to 1 if the relay failed due to (D)DoS attack
@@ -93,17 +94,16 @@
return 1
/obj/machinery/ntnet_relay/New()
uid = gl_uid
gl_uid++
component_parts = list()
component_parts += new /obj/item/stack/cable_coil(src,15)
component_parts += new /obj/item/weapon/circuitboard/ntnet_relay(src)
..()
assign_uid()
default_apply_parts()
/obj/machinery/ntnet_relay/Initialize()
. = ..()
if(ntnet_global)
ntnet_global.relays.Add(src)
NTNet = ntnet_global
ntnet_global.add_log("New quantum relay activated. Current amount of linked relays: [NTNet.relays.len]")
..()
/obj/machinery/ntnet_relay/Destroy()
if(ntnet_global)
@@ -113,24 +113,11 @@
for(var/datum/computer_file/program/ntnet_dos/D in dos_sources)
D.target = null
D.error = "Connection to quantum relay severed"
. = ..()
/obj/machinery/ntnet_relay/attackby(var/obj/item/W as obj, var/mob/user as mob)
if(default_deconstruction_screwdriver(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
..()
/obj/machinery/ntnet_relay/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(W.is_screwdriver())
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance hatch")
return
if(W.is_crowbar())
if(!panel_open)
to_chat(user, "Open the maintenance panel first.")
return
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
to_chat(user, "You disassemble \the [src]!")
for(var/atom/movable/A in component_parts)
A.forceMove(src.loc)
new /obj/structure/frame(src.loc)
qdel(src)
return
..()

View File

@@ -41,14 +41,14 @@
/obj/item/modular_computer/proc/install_default_programs()
return 1
/obj/item/modular_computer/New()
/obj/item/modular_computer/Initialize()
START_PROCESSING(SSobj, src)
install_default_hardware()
if(hard_drive)
install_default_programs()
update_icon()
update_verbs()
..()
. = ..()
/obj/item/modular_computer/Destroy()
kill_program(1)

View File

@@ -23,7 +23,7 @@ var/global/file_uid = 0
if(holder.holder2 && holder.holder2.active_program == src)
holder.holder2.kill_program(1)
holder = null
..()
return ..()
// Returns independent copy of this file.
/datum/computer_file/proc/clone(var/rename = 0)

View File

@@ -47,6 +47,7 @@
to_chat(user, "Hardware Integrity Test... (Corruption: [damage]/[max_damage]) [damage > damage_failure ? "FAIL" : damage > damage_malfunction ? "WARN" : "PASS"]")
/obj/item/weapon/computer_hardware/New(var/obj/L)
..()
w_class = hardware_size
if(istype(L, /obj/item/modular_computer))
holder2 = L

View File

@@ -97,4 +97,4 @@ var/global/ntnet_card_uid = 1
/obj/item/weapon/computer_hardware/network_card/Destroy()
if(holder2 && (holder2.network_card == src))
holder2.network_card = null
..()
return ..()