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 21:09:50 +02:00
committed by GitHub
parent a5d891763c
commit 616776f886
167 changed files with 2017 additions and 3332 deletions
@@ -22,6 +22,7 @@
randomize_hair_color("facial")
backbag = 2
pda_choice = 2
age = rand(getMinAge(),getMaxAge())
if(H)
copy_to(H,1)
@@ -115,11 +115,6 @@
//gloves
if(gloves && !skipgloves)
var/gloves_name = gloves
if(istype(wear_id, /obj/item/modular_computer))
var/obj/item/modular_computer/C = wear_id
var/obj/item/card/id/ID = C.GetID()
if(ID)
gloves_name = "[C.name] ([ID.registered_name] ([ID.assignment]))"
if(gloves.blood_color)
msg += "<span class='warning'>[get_pronoun("He")] [get_pronoun("has")] [icon2html(gloves, user)] [gloves.gender==PLURAL?"some":"a"] [fluid_color_type_map(gloves.blood_color)]-stained <a href='?src=\ref[src];lookitem_desc_only=\ref[gloves]'>[gloves_name]</a> on [get_pronoun("his")] hands!</span>\n"
else
@@ -179,11 +174,6 @@
//ID
if(wear_id)
var/id_name = wear_id
if(istype(wear_id, /obj/item/modular_computer))
var/obj/item/modular_computer/C = wear_id
var/obj/item/card/id/ID = C.GetID()
if(ID)
id_name = "[C.name] ([ID.registered_name] ([ID.assignment]))"
msg += "[get_pronoun("He")] [get_pronoun("is")] wearing [icon2html(wear_id, user)] <a href='?src=\ref[src];lookitem_desc_only=\ref[wear_id]'>\a [id_name]</a>.\n"
//Jitters
+4 -11
View File
@@ -423,18 +423,11 @@
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job")
var/obj/item/device/pda/pda = wear_id
if (istype(pda))
if (pda.id)
return pda.id.rank
else
return pda.ownrank
var/obj/item/card/id/id = GetIdCard()
if(!istype(id))
return if_no_id
else
var/obj/item/card/id/id = get_idcard()
if(id)
return id.rank ? id.rank : if_no_job
else
return if_no_id
return id.rank ? id.rank : if_no_job
//gets assignment from ID or ID inside PDA or PDA itself
//Useful when player do something with computers
@@ -37,6 +37,7 @@
var/list/hide_underwear = list()
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
var/backbag_style = 1
var/pda_choice = 2
var/last_chew = 0 // Used for hand chewing
@@ -584,10 +584,6 @@ There are several things that need to be remembered:
var/obj/item/card/id/id_card = wear_id
if(id_card.wear_over_suit == 1)
id_layer = ID_LAYER_ALT
else if(istype(wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda_device = wear_id
if(pda_device.wear_over_suit == 1)
id_layer = ID_LAYER_ALT
if (wear_id.color)
result_layer.color = wear_id.color
-9
View File
@@ -62,7 +62,6 @@ var/list/ai_verbs_default = list(
var/list/network = list("Station")
var/obj/machinery/camera/camera
var/list/cameraRecords = list() //For storing what is shown to the cameras
var/obj/item/device/pda/ai/ai_pda
var/obj/item/device/multitool/ai_multi
var/obj/item/device/radio/headset/heads/ai_integrated/ai_radio
var/datum/announcement/priority/announcement
@@ -133,7 +132,6 @@ var/list/ai_verbs_default = list(
possibleNames -= pickedName
pickedName = null
ai_pda = new/obj/item/device/pda/ai(src)
SetName(pickedName)
anchored = TRUE
canmove = FALSE
@@ -202,7 +200,6 @@ var/list/ai_verbs_default = list(
return ..()
/mob/living/silicon/ai/Destroy()
QDEL_NULL(ai_pda)
QDEL_NULL(ai_multi)
QDEL_NULL(ai_radio)
QDEL_NULL(psupply)
@@ -289,12 +286,6 @@ var/list/ai_verbs_default = list(
if(eyeobj)
eyeobj.name = "[pickedName] (AI Eye)"
// Set ai pda name
if(ai_pda)
ai_pda.ownjob = "AI"
ai_pda.owner = pickedName
ai_pda.name = pickedName + " (" + ai_pda.ownjob + ")"
//Set the ID Name
if(id_card)
id_card.registered_name = pickedName
@@ -82,7 +82,6 @@
var/screen // Which screen our main window displays
var/subscreen // Which specific function of the main screen is being displayed
var/obj/item/device/pda/ai/pai/pda = null
var/obj/item/modular_computer/parent_computer
var/secHUD = 0 // Toggles whether the Security HUD is active or not
@@ -185,17 +184,8 @@
verbs += /mob/living/silicon/proc/computer_interact
verbs += /mob/living/silicon/proc/silicon_mimic_accent
//PDA
pda = new(src)
addtimer(CALLBACK(src, .proc/set_pda), 5)
. = ..()
/mob/living/silicon/pai/proc/set_pda()
pda.ownjob = "Personal Assistant"
pda.owner = "[src]"
pda.name = "[pda.owner] ([pda.ownjob])"
pda.toff = TRUE
/mob/living/silicon/pai/proc/set_custom_sprite()
var/datum/custom_synth/sprite = robot_custom_icons[name]
@@ -349,9 +339,6 @@
H.visible_message(SPAN_DANGER("\The [src] explodes out of \the [H]'s [affecting.name] in shower of gore!"))
break
holder.drop_from_inventory(card)
else if(istype(card.loc,/obj/item/device/pda))
var/obj/item/device/pda/holder = card.loc
holder.pai = null
src.client.perspective = EYE_PERSPECTIVE
src.client.eye = src
@@ -82,7 +82,6 @@
var/obj/item/device/radio/borg/radio
var/obj/machinery/camera/camera
var/obj/item/device/mmi/mmi
var/obj/item/device/pda/ai/pda
var/obj/item/stock_parts/matter_bin/storage
var/obj/item/tank/jetpack/carbondioxide/synthetic/jetpack
@@ -258,14 +257,6 @@
return amount
return FALSE
// setup the PDA and its name
/mob/living/silicon/robot/proc/setup_PDA()
if(!has_pda)
return
if(!pda)
pda = new /obj/item/device/pda/ai(src)
pda.set_name_and_job(custom_name, "[mod_type] [braintype]")
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
//Improved /N
/mob/living/silicon/robot/Destroy()
@@ -369,9 +360,6 @@
mmi.brainmob.real_name = src.name
mmi.name = "[initial(mmi.name)]: [src.name]"
// if we've changed our name, we also need to update the display name for our PDA
setup_PDA()
// We also need to update our internal ID
if(id_card)
id_card.assignment = prefix
+2 -2
View File
@@ -867,8 +867,8 @@ proc/is_blind(A)
preposition = "on"
action3 = "wears"
newlocation = "feet"
else if (istype(loc,/obj/item/device/pda))
var/obj/item/device/pda/S = loc
else if (istype(loc,/obj/item/modular_computer))
var/obj/item/modular_computer/S = loc
newlocation = S.name
if (justmoved)
preposition = "into"