From 9ce13d33de882118eee8c9e2cda388f2b00d58f2 Mon Sep 17 00:00:00 2001 From: Shadowlight213 Date: Sat, 15 Oct 2016 17:39:59 -0700 Subject: [PATCH] Adds laptop presets Fixes various bugs --- .../computers/item/computer.dm | 7 +++--- .../computers/item/computer_ui.dm | 2 +- .../computers/item/laptop_presets.dm | 23 +++++++++++++++++++ .../modular_computers/laptop_vendor.dm | 6 +++-- tgstation.dme | 1 + 5 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 code/modules/modular_computers/computers/item/laptop_presets.dm diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 08b1a3eb19b..0cb9e045991 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -392,15 +392,16 @@ user << "This device doesn't have any components installed." return var/list/component_names = list() - for(var/obj/item/weapon/computer_hardware/H in all_components) + for(var/h in all_components) + var/obj/item/weapon/computer_hardware/H = all_components[h] component_names.Add(H.name) - var/choice = input(usr, "Which component do you want to uninstall?", "Computer maintenance", null) as null|anything in component_names + var/choice = input(user, "Which component do you want to uninstall?", "Computer maintenance", null) as null|anything in component_names if(!choice) return - if(!Adjacent(usr)) + if(!Adjacent(user)) return var/obj/item/weapon/computer_hardware/H = find_hardware_by_name(choice) diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index b551b98ede7..06761844de5 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -26,7 +26,7 @@ // This screen simply lists available programs and user may select them. var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] if(!hard_drive || !hard_drive.stored_files || !hard_drive.stored_files.len) - physical.visible_message("\The [src] beeps three times, it's screen displaying \"DISK ERROR\" warning.") + user << "\The [src] beeps three times, it's screen displaying a \"DISK ERROR\" warning." return // No HDD, No HDD files list or no stored files. Something is very broken. ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/modules/modular_computers/computers/item/laptop_presets.dm b/code/modules/modular_computers/computers/item/laptop_presets.dm new file mode 100644 index 00000000000..7fc177d20fc --- /dev/null +++ b/code/modules/modular_computers/computers/item/laptop_presets.dm @@ -0,0 +1,23 @@ +/obj/item/device/modular_computer/laptop/preset/New() + . = ..() + install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + install_component(new /obj/item/weapon/computer_hardware/battery(src, /obj/item/weapon/stock_parts/cell/computer)) + install_component(new /obj/item/weapon/computer_hardware/hard_drive) + install_component(new /obj/item/weapon/computer_hardware/network_card) + install_programs() + + +/obj/item/device/modular_computer/laptop/preset/proc/install_programs() + return + + + + +/obj/item/device/modular_computer/laptop/preset/civillian + desc = "A low-end laptop often used for personal recreation." + + +/obj/item/device/modular_computer/laptop/preset/civillian/install_programs() + var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD] + hard_drive.store_file(new/datum/computer_file/program/chatclient()) + hard_drive.store_file(new/datum/computer_file/program/nttransfer()) \ No newline at end of file diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index 82ca666360a..f15d8d66a82 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -50,11 +50,12 @@ /obj/machinery/lapvend/proc/fabricate_and_recalc_price(fabricate = 0) total_price = 0 if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles + var/obj/item/weapon/computer_hardware/battery/battery_module = null if(fabricate) fabricated_laptop = new /obj/item/device/modular_computer/laptop/buildable(src) fabricated_laptop.install_component(new /obj/item/weapon/computer_hardware/battery) + battery_module = fabricated_laptop.all_components[MC_CELL] total_price = 99 - var/obj/item/weapon/computer_hardware/battery/battery_module = fabricated_laptop.all_components[MC_CELL] switch(dev_cpu) if(1) if(fabricate) @@ -111,12 +112,13 @@ return total_price else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. + var/obj/item/weapon/computer_hardware/battery/battery_module = null if(fabricate) fabricated_tablet = new(src) fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/battery) fabricated_tablet.install_component(new /obj/item/weapon/computer_hardware/processor_unit/small) + battery_module = fabricated_tablet.all_components[MC_CELL] total_price = 199 - var/obj/item/weapon/computer_hardware/battery/battery_module = fabricated_tablet.all_components[MC_CELL] switch(dev_battery) if(1) // Basic(300C) if(fabricate) diff --git a/tgstation.dme b/tgstation.dme index 4c73fc92250..3686e96e8d7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1560,6 +1560,7 @@ #include "code\modules\modular_computers\computers\item\computer_power.dm" #include "code\modules\modular_computers\computers\item\computer_ui.dm" #include "code\modules\modular_computers\computers\item\laptop.dm" +#include "code\modules\modular_computers\computers\item\laptop_presets.dm" #include "code\modules\modular_computers\computers\item\processor.dm" #include "code\modules\modular_computers\computers\item\tablet.dm" #include "code\modules\modular_computers\computers\item\tablet_presets.dm"