diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
new file mode 100644
index 00000000000..a7124c21120
--- /dev/null
+++ b/code/game/machinery/PDApainter.dm
@@ -0,0 +1,93 @@
+/obj/machinery/pdapainter
+ name = "PDA painter"
+ desc = "A PDA painting machine. To use, simply insert your PDA and choose the desired preset paint scheme."
+ icon = 'icons/obj/pda.dmi'
+ icon_state = "pdapainter"
+ density = 1
+ anchored = 1
+ var/obj/item/device/pda/storedpda = null
+ var/list/colorlist = list()
+
+
+/obj/machinery/pdapainter/update_icon()
+ overlays.Cut()
+
+ if(stat & BROKEN)
+ icon_state = "[initial(icon_state)]-broken"
+ return
+
+ if(storedpda)
+ overlays += "[initial(icon_state)]-closed"
+
+ if(powered())
+ icon_state = initial(icon_state)
+ else
+ icon_state = "[initial(icon_state)]-off"
+
+ return
+
+/obj/machinery/pdapainter/New()
+ ..()
+ var/blocked = list(/obj/item/device/pda/ai/pai, /obj/item/device/pda/ai, /obj/item/device/pda/heads,
+ /obj/item/device/pda/clear, /obj/item/device/pda/syndicate)
+
+ for(var/P in typesof(/obj/item/device/pda)-blocked)
+ var/obj/item/device/pda/D = new P
+
+ //D.name = "PDA Style [colorlist.len+1]" //Gotta set the name, otherwise it all comes up as "PDA"
+ D.name = D.icon_state //PDAs don't have unique names, but using the sprite names works.
+
+ src.colorlist += D
+
+
+/obj/machinery/pdapainter/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if(istype(O, /obj/item/device/pda))
+ if(storedpda)
+ user << "There is already a PDA inside."
+ return
+ else
+ var/obj/item/device/pda/P = usr.get_active_hand()
+ if(istype(P))
+ user.drop_item()
+ storedpda = P
+ P.loc = src
+ P.add_fingerprint(usr)
+ update_icon()
+
+
+/obj/machinery/pdapainter/attack_hand(mob/user as mob)
+ ..()
+
+ src.add_fingerprint(user)
+
+ if(storedpda)
+ var/obj/item/device/pda/P
+ P = input(user, "Select your color!", "PDA Painting") as null|anything in colorlist
+ if(!P)
+ return
+ if(!in_range(src, user))
+ return
+
+ storedpda.icon_state = P.icon_state
+ storedpda.desc = P.desc
+
+ else
+ user << "The [src] is empty."
+
+
+/obj/machinery/pdapainter/verb/ejectpda()
+ set name = "Eject PDA"
+ set category = "Object"
+ set src in oview(1)
+
+ if(storedpda)
+ storedpda.loc = get_turf(src.loc)
+ storedpda = null
+ update_icon()
+ else
+ usr << "The [src] is empty."
+
+
+/obj/machinery/pdapainter/power_change()
+ ..()
+ update_icon()
\ No newline at end of file
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index e494baf0245..256809f71a7 100755
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -46,23 +46,23 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/medical
default_cartridge = /obj/item/weapon/cartridge/medical
- icon_state = "pda-m"
+ icon_state = "pda-medical"
/obj/item/device/pda/viro
default_cartridge = /obj/item/weapon/cartridge/medical
- icon_state = "pda-v"
+ icon_state = "pda-virology"
/obj/item/device/pda/engineering
default_cartridge = /obj/item/weapon/cartridge/engineering
- icon_state = "pda-e"
+ icon_state = "pda-engineer"
/obj/item/device/pda/security
default_cartridge = /obj/item/weapon/cartridge/security
- icon_state = "pda-s"
+ icon_state = "pda-security"
/obj/item/device/pda/detective
default_cartridge = /obj/item/weapon/cartridge/detective
- icon_state = "pda-det"
+ icon_state = "pda-detective"
/obj/item/device/pda/warden
default_cartridge = /obj/item/weapon/cartridge/security
@@ -70,12 +70,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/janitor
default_cartridge = /obj/item/weapon/cartridge/janitor
- icon_state = "pda-j"
+ icon_state = "pda-janitor"
ttone = "slip"
/obj/item/device/pda/toxins
default_cartridge = /obj/item/weapon/cartridge/signal/toxins
- icon_state = "pda-tox"
+ icon_state = "pda-science"
ttone = "boom"
/obj/item/device/pda/clown
@@ -92,7 +92,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/heads
default_cartridge = /obj/item/weapon/cartridge/head
- icon_state = "pda-h"
+ icon_state = "pda-hop"
/obj/item/device/pda/heads/hop
default_cartridge = /obj/item/weapon/cartridge/hop
@@ -116,7 +116,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/captain
default_cartridge = /obj/item/weapon/cartridge/captain
- icon_state = "pda-c"
+ icon_state = "pda-captain"
detonate = 0
//toff = 1
@@ -126,20 +126,20 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/quartermaster
default_cartridge = /obj/item/weapon/cartridge/quartermaster
- icon_state = "pda-q"
+ icon_state = "pda-qm"
/obj/item/device/pda/shaftminer
icon_state = "pda-miner"
/obj/item/device/pda/syndicate
default_cartridge = /obj/item/weapon/cartridge/syndicate
- icon_state = "pda-syn"
+ icon_state = "pda-syndi"
name = "Military PDA"
owner = "John Doe"
hidden = 1
/obj/item/device/pda/chaplain
- icon_state = "pda-holy"
+ icon_state = "pda-chaplain"
ttone = "holy"
/obj/item/device/pda/lawyer
@@ -152,16 +152,16 @@ var/global/list/obj/item/device/pda/PDAs = list()
icon_state = "pda-hydro"
/obj/item/device/pda/roboticist
- icon_state = "pda-robot"
+ icon_state = "pda-roboticist"
/obj/item/device/pda/librarian
- icon_state = "pda-libb"
+ icon_state = "pda-library"
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a WGW-11 series e-reader."
note = "Congratulations, your station has chosen the Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant!"
silent = 1 //Quiet in the library!
/obj/item/device/pda/clear
- icon_state = "pda-transp"
+ icon_state = "pda-clear"
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case."
note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!"
@@ -169,19 +169,19 @@ var/global/list/obj/item/device/pda/PDAs = list()
icon_state = "pda-chef"
/obj/item/device/pda/bar
- icon_state = "pda-bar"
+ icon_state = "pda-bartender"
/obj/item/device/pda/atmos
default_cartridge = /obj/item/weapon/cartridge/atmos
- icon_state = "pda-atmo"
+ icon_state = "pda-atmos"
/obj/item/device/pda/chemist
default_cartridge = /obj/item/weapon/cartridge/chemistry
- icon_state = "pda-chem"
+ icon_state = "pda-chemistry"
/obj/item/device/pda/geneticist
default_cartridge = /obj/item/weapon/cartridge/medical
- icon_state = "pda-gene"
+ icon_state = "pda-genetics"
// Special AI/pAI PDAs that cannot explode.
@@ -1170,7 +1170,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/weapon/storage/box/PDAs
name = "spare PDAs"
desc = "A box of spare PDA microcomputers."
- icon = 'icons/obj/pda.dmi'
+ icon = 'icons/obj/storage.dmi'
icon_state = "pdabox"
New()
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index 43daf35b323..b8e15fdcf6c 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -1,6 +1,6 @@
/obj/item/device/aicard
name = "inteliCard"
- icon = 'icons/obj/pda.dmi'
+ icon = 'icons/obj/aicards.dmi'
icon_state = "aicard" // aicard-full
item_state = "electronic"
w_class = 2.0
@@ -115,9 +115,9 @@
A.control_disabled = !A.control_disabled
A << "The intelicard's wireless port has been [A.control_disabled ? "disabled" : "enabled"]!"
if (A.control_disabled)
- overlays -= image('icons/obj/pda.dmi', "aicard-on")
+ overlays -= image('icons/obj/aicards.dmi', "aicard-on")
else
- overlays += image('icons/obj/pda.dmi', "aicard-on")
+ overlays += image('icons/obj/aicards.dmi', "aicard-on")
attack_self(U)
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index d0bc6a45336..c096e834178 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -1,6 +1,6 @@
/obj/item/device/paicard
name = "personal AI device"
- icon = 'icons/obj/pda.dmi'
+ icon = 'icons/obj/aicards.dmi'
icon_state = "pai"
item_state = "electronic"
w_class = 2.0
diff --git a/icons/obj/aicards.dmi b/icons/obj/aicards.dmi
new file mode 100644
index 00000000000..a28931ed90c
Binary files /dev/null and b/icons/obj/aicards.dmi differ
diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi
index d50d9c1a623..41d14c7f1a6 100644
Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 253cf851a83..79f10fac138 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ