diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm
index b5ab1daa1d5..8c802cd2996 100644
--- a/code/defines/procs/helpers.dm
+++ b/code/defines/procs/helpers.dm
@@ -755,6 +755,8 @@
var/list/mob_list = list()
for(var/mob/living/silicon/ai/M in world)
mob_list.Add(M)
+ for(var/mob/living/silicon/pai/M in world)
+ mob_list.Add(M)
for(var/mob/living/silicon/robot/M in world)
mob_list.Add(M)
for(var/mob/living/carbon/human/M in world)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 5e9daad3541..ed2292d212e 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1444,6 +1444,8 @@ var/showadminmessages = 1
dat += "
| [M.name] | "
if(istype(M, /mob/living/silicon/ai))
dat += "AI | "
+ if(istype(M, /mob/living/silicon/pai))
+ dat += "pAI | "
if(istype(M, /mob/living/silicon/robot))
dat += "Cyborg | "
if(istype(M, /mob/living/carbon/human))
@@ -1481,6 +1483,8 @@ var/showadminmessages = 1
dat += "
| [M.name] | "
if(istype(M, /mob/living/silicon/ai))
dat += "AI | "
+ if(istype(M, /mob/living/silicon/pai))
+ dat += "pAI | "
if(istype(M, /mob/living/silicon/robot))
dat += "Cyborg | "
if(istype(M, /mob/living/carbon/human))
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index c22a53ef7b4..8a68ba885da 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -48,8 +48,11 @@
return 0
/mob/living/silicon/pai/emp_act(severity)
- /*
if (prob(30))
+ src.master = null
+ src.master_dna = null
+ src << "You feel unbound."
+ /*
switch(pick(1,2,3)) //Add Random laws.
if(1)
src.cancel_camera()
@@ -57,7 +60,7 @@
src.lockdown()
if(3)
src.ai_call_shuttle()
- */
+ */
..()
/mob/living/silicon/pai/ex_act(severity)
@@ -190,9 +193,8 @@
card.pai = null
var/turf/T = get_turf_or_move(card.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2)
+ M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2)
src.death(0)
- del(src)
//Addition by Mord_Sith to define AI's network change ability
/*
diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm
index e2b6415cb2c..10d6f97006b 100644
--- a/code/modules/mob/living/silicon/pai/recruit.dm
+++ b/code/modules/mob/living/silicon/pai/recruit.dm
@@ -23,9 +23,12 @@ var/datum/paiController/paiController // Global handler for pAI candidates
if(href_list["download"])
var/datum/paiCandidate/candidate = locate(href_list["candidate"]) //pai_candidates.Find(href_list["candidate"])
var/obj/item/device/paicard/card = locate(href_list["device"])
+ if(card.pai)
+ return
if(card && candidate)
var/mob/living/silicon/pai/pai = new(card)
pai.name = candidate.name
+ pai.real_name = pai.name
pai.key = candidate.key
card.pai = pai
card.looking_for_personality = 0
@@ -43,6 +46,14 @@ var/datum/paiController/paiController // Global handler for pAI candidates
candidate.role = input("Enter a role for your pAI", "pAI Role", candidate.role) as text
if("ooc")
candidate.comments = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message
+
+ if("save")
+ world << "saving personality"
+ candidate.savefile_save(usr)
+ if("load")
+ world << "loading personality"
+ candidate.savefile_load(usr)
+
if("submit")
if(candidate)
candidate.ready = 1
@@ -98,7 +109,9 @@ var/datum/paiController/paiController // Global handler for pAI candidates
dat += ""
dat += "
"
- dat += ""
+ dat += "
"
+ dat += "Save Personality
"
+ dat += "Load Personality
"
M << browse(dat, "window=paiRecruit")
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index b5e2be13123..789e6f831ec 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -104,7 +104,7 @@