Adds AI Integrity restorer to program datums, various modular computer improvements (#21546)

* Ports AI restorer to modular computars

* mostly done. working on qdel improvments

* undoes testing flag

* undoes gc stuff

* Fixes id card module name

* memes
This commit is contained in:
Shadowlight213
2016-11-19 13:33:39 +13:00
committed by oranges
parent 1f569d59e5
commit 008689c61c
18 changed files with 378 additions and 30 deletions
@@ -3,6 +3,7 @@
var/_has_id_slot = 0
var/_has_printer = 0
var/_has_battery = 0
var/_has_ai = 0
/obj/machinery/modular_computer/console/preset/New()
. = ..()
@@ -16,6 +17,8 @@
cpu.install_component(new /obj/item/weapon/computer_hardware/printer)
if(_has_battery)
cpu.install_component(new /obj/item/weapon/computer_hardware/battery(cpu, /obj/item/weapon/stock_parts/cell/computer/super))
if(_has_ai)
cpu.install_component(new /obj/item/weapon/computer_hardware/ai_slot)
install_programs()
// Override in child types to install preset-specific programs.
@@ -38,12 +41,14 @@
/obj/machinery/modular_computer/console/preset/research
console_department = "Research"
desc = "A stationary computer. This one comes preloaded with research programs."
_has_ai = 1
/obj/machinery/modular_computer/console/preset/research/install_programs()
var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD]
hard_drive.store_file(new/datum/computer_file/program/ntnetmonitor())
hard_drive.store_file(new/datum/computer_file/program/nttransfer())
hard_drive.store_file(new/datum/computer_file/program/chatclient())
hard_drive.store_file(new/datum/computer_file/program/aidiag())
// ===== COMMAND CONSOLE =====
@@ -74,7 +74,6 @@ var/list/global_modular_computers = list()
/obj/machinery/modular_computer/proc/eject_id()
set name = "Eject ID"
set category = "Object"
set src in view(1)
if(cpu)
cpu.eject_id()
@@ -83,11 +82,18 @@ var/list/global_modular_computers = list()
/obj/machinery/modular_computer/proc/eject_disk()
set name = "Eject Data Disk"
set category = "Object"
set src in view(1)
if(cpu)
cpu.eject_disk()
/obj/machinery/modular_computer/proc/eject_card()
set name = "Eject Intellicard"
set category = "Object"
set src in view(1)
if(cpu)
cpu.eject_card()
/obj/machinery/modular_computer/AltClick(mob/user)
if(cpu)
cpu.AltClick(user)