From 04256797d2f140c3edd43c8d836b5f7091f3b11e Mon Sep 17 00:00:00 2001 From: Karolis Date: Fri, 3 Nov 2017 11:45:21 +0200 Subject: [PATCH] Unbreaking computers (#3779) Made programs that can't run in current hardware to not show up in download list Adjusted some program computer compatibility flags Reworded laptop vendor buttons to be more consistent and more accurate on what you get Added description to tablets This is balance and bug-fix PR, so it should bypass development. --- .../modular_computers/computers/subtypes/dev_tablet.dm | 1 + .../modular_computers/file_system/programs/app_presets.dm | 2 +- .../file_system/programs/civilian/cargo_control.dm | 1 + .../file_system/programs/civilian/cargo_order.dm | 1 + .../file_system/programs/command/card.dm | 2 +- .../file_system/programs/command/comm.dm | 2 +- .../file_system/programs/engineering/_engineering.dm | 4 ++-- .../file_system/programs/medical/suit_sensors.dm | 2 +- .../file_system/programs/research/ai_restorer.dm | 1 + .../file_system/programs/security/digitalwarrant.dm | 1 - .../file_system/programs/system/ntdownloader.dm | 5 ++++- html/changelogs/Karolis2011-balanceModularComputers.yml | 5 +++++ nano/templates/computer_fabricator.tmpl | 8 ++++---- 13 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 html/changelogs/Karolis2011-balanceModularComputers.yml diff --git a/code/modules/modular_computers/computers/subtypes/dev_tablet.dm b/code/modules/modular_computers/computers/subtypes/dev_tablet.dm index 6c7789a71b0..d2b8839a3bf 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_tablet.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_tablet.dm @@ -1,5 +1,6 @@ /obj/item/modular_computer/tablet name = "tablet computer" + desc = "A portable device for your needs on the go." icon = 'icons/obj/modular_tablet.dmi' icon_state = "tablet" icon_state_unpowered = "tablet" diff --git a/code/modules/modular_computers/file_system/programs/app_presets.dm b/code/modules/modular_computers/file_system/programs/app_presets.dm index d74f990668c..f772035c93d 100644 --- a/code/modules/modular_computers/file_system/programs/app_presets.dm +++ b/code/modules/modular_computers/file_system/programs/app_presets.dm @@ -209,4 +209,4 @@ new/datum/computer_file/program/chatclient(), new /datum/computer_file/program/merchant() ) - return _prg_list + return _prg_list \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm b/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm index 8972e08674f..f4a91a58cc5 100644 --- a/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm +++ b/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm @@ -7,6 +7,7 @@ available_on_ntnet = 1 required_access_download = access_hop required_access_run = access_cargo + usage_flags = PROGRAM_CONSOLE | PROGRAM_TELESCREEN nanomodule_path = /datum/nano_module/program/civilian/cargocontrol/ /datum/nano_module/program/civilian/cargocontrol/ diff --git a/code/modules/modular_computers/file_system/programs/civilian/cargo_order.dm b/code/modules/modular_computers/file_system/programs/civilian/cargo_order.dm index 3e8d213581d..c4925b40beb 100644 --- a/code/modules/modular_computers/file_system/programs/civilian/cargo_order.dm +++ b/code/modules/modular_computers/file_system/programs/civilian/cargo_order.dm @@ -5,6 +5,7 @@ size = 10 requires_ntnet = 1 available_on_ntnet = 1 + usage_flags = PROGRAM_LAPTOP | PROGRAM_TELESCREEN | PROGRAM_CONSOLE nanomodule_path = /datum/nano_module/program/civilian/cargoorder/ /datum/nano_module/program/civilian/cargoorder/ diff --git a/code/modules/modular_computers/file_system/programs/command/card.dm b/code/modules/modular_computers/file_system/programs/command/card.dm index d75b547d9e7..37364ede63d 100644 --- a/code/modules/modular_computers/file_system/programs/command/card.dm +++ b/code/modules/modular_computers/file_system/programs/command/card.dm @@ -6,7 +6,7 @@ extended_desc = "Program for programming employee ID cards to access parts of the station." required_access_run = access_change_ids required_access_download = access_change_ids - usage_flags = PROGRAM_CONSOLE + usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP requires_ntnet = 0 size = 8 color = LIGHT_COLOR_BLUE diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm index a34d7c5d5ba..4fa02f418e5 100644 --- a/code/modules/modular_computers/file_system/programs/command/comm.dm +++ b/code/modules/modular_computers/file_system/programs/command/comm.dm @@ -13,7 +13,7 @@ required_access_download = access_heads requires_ntnet = 1 size = 12 - usage_flags = PROGRAM_CONSOLE + usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP network_destination = "station long-range communication array" var/datum/comm_message_listener/message_core = new var/intercept = 0 diff --git a/code/modules/modular_computers/file_system/programs/engineering/_engineering.dm b/code/modules/modular_computers/file_system/programs/engineering/_engineering.dm index a27b7e4157d..af3f21d8395 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/_engineering.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/_engineering.dm @@ -72,12 +72,12 @@ requires_ntnet = 1 network_destination = "atmospheric control system" requires_ntnet_feature = NTNET_SYSTEMCONTROL - usage_flags = PROGRAM_CONSOLE + usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP size = 17 color = LIGHT_COLOR_CYAN /datum/computer_file/program/rcon_console - filename = "rconconsole" + filename = "rcon" filedesc = "RCON Remote Control" nanomodule_path = /datum/nano_module/rcon program_icon_state = "generic" diff --git a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm index 3ff9e8e9bbc..8709930a304 100644 --- a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm +++ b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm @@ -9,5 +9,5 @@ requires_ntnet = 1 network_destination = "crew lifesigns monitoring system" size = 11 - usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP + usage_flags = PROGRAM_LAPTOP | PROGRAM_TELESCREEN | PROGRAM_CONSOLE color = LIGHT_COLOR_CYAN diff --git a/code/modules/modular_computers/file_system/programs/research/ai_restorer.dm b/code/modules/modular_computers/file_system/programs/research/ai_restorer.dm index e876f12d4a0..6ea1da656c4 100644 --- a/code/modules/modular_computers/file_system/programs/research/ai_restorer.dm +++ b/code/modules/modular_computers/file_system/programs/research/ai_restorer.dm @@ -11,6 +11,7 @@ nanomodule_path = /datum/nano_module/program/computer_aidiag/ var/restoring = 0 color = LIGHT_COLOR_PURPLE + usage_flags = PROGRAM_CONSOLE /datum/computer_file/program/aidiag/proc/get_ai() if(computer && computer.ai_slot && computer.ai_slot.check_functionality() && computer.ai_slot.enabled && computer.ai_slot.stored_card && computer.ai_slot.stored_card.carded_ai) diff --git a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm index 20ad0fc3b3c..f1ef264f63b 100644 --- a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm +++ b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm @@ -19,7 +19,6 @@ var/warrant_uid = 0 available_on_ntnet = 1 required_access_download = access_hos required_access_run = access_security - usage_flags = PROGRAM_ALL nanomodule_path = /datum/nano_module/program/digitalwarrant/ /datum/nano_module/program/digitalwarrant/ diff --git a/code/modules/modular_computers/file_system/programs/system/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/system/ntdownloader.dm index 046f729ea2a..52b4a7c2db2 100644 --- a/code/modules/modular_computers/file_system/programs/system/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/system/ntdownloader.dm @@ -189,6 +189,7 @@ var/list/all_entries[0] var/datum/computer_file/program/ntnetdownload/prog = program var/list/data = list() + data["hackedavailable"] = 0 for(var/datum/computer_file/program/P in ntnet_global.available_station_software) var/installed = 0 for(var/datum/computer_file/program/Q in program.holder.stored_files) @@ -200,6 +201,9 @@ // Only those programs our user can run will show in the list if(!P.can_download(user) && P.requires_access_to_download) continue + + if(!P.is_supported_by_hardware(program.computer.hardware_flag)) + continue all_entries.Add(list(list( "filename" = P.filename, @@ -207,7 +211,6 @@ "fileinfo" = P.extended_desc, "size" = P.size ))) - data["hackedavailable"] = 0 if(prog.computer_emagged) // If we are running on emagged computer we have access to some "bonus" software var/list/hacked_programs[0] diff --git a/html/changelogs/Karolis2011-balanceModularComputers.yml b/html/changelogs/Karolis2011-balanceModularComputers.yml new file mode 100644 index 00000000000..dedc76c643b --- /dev/null +++ b/html/changelogs/Karolis2011-balanceModularComputers.yml @@ -0,0 +1,5 @@ +author: Karolis2011 +delete-after: True + +changes: + - bugfix: "Modular computers can no longer download programs that can't actually run on them." \ No newline at end of file diff --git a/nano/templates/computer_fabricator.tmpl b/nano/templates/computer_fabricator.tmpl index 56226921d87..028788a7bcd 100644 --- a/nano/templates/computer_fabricator.tmpl +++ b/nano/templates/computer_fabricator.tmpl @@ -15,13 +15,13 @@ {{:data.totalprice}} Battery: - {{:helper.link('Standard', null, { "hw_battery" : 1 }, data.hw_battery == 1 ? 'selected' : null)}} - {{:helper.link('Upgraded', null, { "hw_battery" : 2 }, data.hw_battery == 2 ? 'selected' : null)}} + {{:helper.link('Small', null, { "hw_battery" : 1 }, data.hw_battery == 1 ? 'selected' : null)}} + {{:helper.link('Standard', null, { "hw_battery" : 2 }, data.hw_battery == 2 ? 'selected' : null)}} Hard Drive: - {{:helper.link('Standard', null, { "hw_disk" : 1 }, data.hw_disk == 1 ? 'selected' : null)}} - {{:helper.link('Upgraded', null, { "hw_disk" : 2 }, data.hw_disk == 2 ? 'selected' : null)}} + {{:helper.link('Small', null, { "hw_disk" : 1 }, data.hw_disk == 1 ? 'selected' : null)}} + {{:helper.link('Standard', null, { "hw_disk" : 2 }, data.hw_disk == 2 ? 'selected' : null)}} Network Card: