Modular PDAs: The End of an Era (#10319)

PDAs are dead, long live PDAs. All trace of old PDAs has been scoured from the codebase, and in its place are modular computer PDAs that are feature-equivalent. Essentially every PDA function except the Syndicate detonation feature and Notepad has been ported over, and battery life for handheld computers has been boosted alongside the addition of charging cables to make things easier.
This commit is contained in:
JohnWildkins
2020-11-01 14:09:50 -05:00
committed by GitHub
parent a5d891763c
commit 616776f886
167 changed files with 2017 additions and 3332 deletions
@@ -11,12 +11,14 @@
S["all_underwear_metadata"] >> pref.all_underwear_metadata
S["backbag"] >> pref.backbag
S["backbag_style"] >> pref.backbag_style
S["pda_choice"] >> pref.pda_choice
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
S["all_underwear"] << pref.all_underwear
S["all_underwear_metadata"] << pref.all_underwear_metadata
S["backbag"] << pref.backbag
S["backbag_style"] << pref.backbag_style
S["pda_choice"] << pref.pda_choice
/datum/category_item/player_setup_item/general/equipment/gather_load_query()
return list(
@@ -25,7 +27,8 @@
"all_underwear",
"all_underwear_metadata",
"backbag",
"backbag_style"
"backbag_style",
"pda_choice"
),
"args" = list("id")
)
@@ -41,6 +44,7 @@
"all_underwear_metadata",
"backbag",
"backbag_style",
"pda_choice",
"id" = 1,
"ckey" = 1
)
@@ -52,6 +56,7 @@
"all_underwear_metadata" = json_encode(pref.all_underwear_metadata),
"backbag" = pref.backbag,
"backbag_style" = pref.backbag_style,
"pda_choice" = pref.pda_choice,
"id" = pref.current_character,
"ckey" = PREF_CLIENT_CKEY
)
@@ -60,6 +65,7 @@
if (sql_load)
pref.backbag = text2num(pref.backbag)
pref.backbag_style = text2num(pref.backbag_style)
pref.pda_choice = text2num(pref.pda_choice)
if(istext(pref.all_underwear))
var/before = pref.all_underwear
try
@@ -102,6 +108,7 @@
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
pref.backbag_style = sanitize_integer(pref.backbag_style, 1, backbagstyles.len, initial(pref.backbag_style))
pref.pda_choice = sanitize_integer(pref.pda_choice, 1, pdalist.len, initial(pref.pda_choice))
/datum/category_item/player_setup_item/general/equipment/content(var/mob/user)
. = list()
@@ -119,6 +126,7 @@
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
. += "Backpack Style: <a href='?src=\ref[src];change_backpack_style=1'><b>[backbagstyles[pref.backbag_style]]</b></a><br>"
. += "PDA Type: <a href='?src=\ref[src];change_pda=1'><b>[pdalist[pref.pda_choice]]</b></a><br>"
return jointext(., null)
@@ -151,6 +159,12 @@
pref.backbag_style = backbagstyles.Find(new_backbag)
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["change_pda"])
var/new_pda = input(user, "Choose your character's PDA type:", "Character Preference", pdalist[pref.pda_choice]) as null|anything in pdalist
if(!isnull(new_pda) && CanUseTopic(user))
pref.pda_choice = pdalist.Find(new_pda)
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["change_underwear"])
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[href_list["change_underwear"]]
if(!UWC)
@@ -1,6 +1,6 @@
/datum/gear/computer
display_name = "tablet"
path = /obj/item/modular_computer/tablet/preset/custom_loadout/cheap
path = /obj/item/modular_computer/handheld/custom_loadout/cheap
sort_category = "Modular Computers"
cost = 2
@@ -9,66 +9,66 @@
path = /obj/item/modular_computer/laptop/preset
cost = 3
/datum/gear/computer/wristbound
/datum/gear/computer/handheld/wristbound
display_name = "wristbound computer"
path = /obj/item/modular_computer/wristbound/preset/cheap/generic
path = /obj/item/modular_computer/handheld/wristbound/preset/cheap/generic
/datum/gear/computer/wristbound/cargo
/datum/gear/computer/handheld/wristbound/cargo
display_name = "wristbound computer (Cargo)"
path = /obj/item/modular_computer/wristbound/preset/advanced/cargo
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/cargo
allowed_roles = list("Cargo Technician", "Shaft Miner", "Quartermaster")
/datum/gear/computer/wristbound/engineering
/datum/gear/computer/handheld/wristbound/engineering
display_name = "wristbound computer (Engineering)"
path = /obj/item/modular_computer/wristbound/preset/advanced/engineering
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/engineering
allowed_roles = list("Station Engineer", "Engineering Apprentince", "Atmospheric Technician", "Engineering Apprentice")
/datum/gear/computer/wristbound/medical
/datum/gear/computer/handheld/wristbound/medical
display_name = "wristbound computer (Medical)"
path = /obj/item/modular_computer/wristbound/preset/advanced/medical
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/medical
allowed_roles = list("Physician", "Surgeon", "Medical Intern", "Pharmacist", "Psychiatrist", "Emergency Medical Technician")
/datum/gear/computer/wristbound/security
/datum/gear/computer/handheld/wristbound/security
display_name = "wristbound computer (Security)"
path = /obj/item/modular_computer/wristbound/preset/advanced/security
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/security
allowed_roles = list("Security Officer", "Warden", "Security Cadet")
/datum/gear/computer/wristbound/security/investigations
/datum/gear/computer/handheld/wristbound/security/investigations
display_name = "wristbound computer (Security Investigations)"
path = /obj/item/modular_computer/wristbound/preset/advanced/security/investigations
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/security/investigations
allowed_roles = list("Detective", "Forensic Technician")
/datum/gear/computer/wristbound/security/research
/datum/gear/computer/handheld/wristbound/security/research
display_name = "wristbound computer (Research)"
path = /obj/item/modular_computer/wristbound/preset/advanced/research
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/research
allowed_roles = list("Scientist", "Lab Assistant", "Roboticist", "Xenobiologist")
/datum/gear/computer/wristbound/ce
/datum/gear/computer/handheld/wristbound/ce
display_name = "wristbound computer (Chief Engineer)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/ce
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/ce
allowed_roles = list("Chief Engineer")
/datum/gear/computer/wristbound/rd
/datum/gear/computer/handheld/wristbound/rd
display_name = "wristbound computer (Research Director)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/rd
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/rd
allowed_roles = list("Research Director")
/datum/gear/computer/wristbound/cmo
/datum/gear/computer/handheld/wristbound/cmo
display_name = "wristbound computer (Chief Medical Officer)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/cmo
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/cmo
allowed_roles = list("Chief Medical Officer")
/datum/gear/computer/wristbound/hop
/datum/gear/computer/handheld/wristbound/hop
display_name = "wristbound computer (Head of Personnel)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/hop
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/hop
allowed_roles = list("Head of Personnel")
/datum/gear/computer/wristbound/hos
/datum/gear/computer/handheld/wristbound/hos
display_name = "wristbound computer (Head of Security)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/hos
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/hos
allowed_roles = list("Head of Security")
/datum/gear/computer/wristbound/captain
/datum/gear/computer/handheld/wristbound/captain
display_name = "wristbound computer (Captain)"
path = /obj/item/modular_computer/wristbound/preset/advanced/command/captain
path = /obj/item/modular_computer/handheld/wristbound/preset/advanced/command/captain
allowed_roles = list("Captain")