diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 6fc106cb655..9c2e1ccb84a 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -34,7 +34,7 @@
#define BE_MALF 16
#define BE_REV 32
#define BE_ALIEN 64
-#define BE_GHOST_ROLE 128
+#define BE_PAI 128 //Includes Positronic brains, but the flag is already maxed.
#define BE_CULTIST 256
#define BE_BLOB 512
#define BE_NINJA 1024
diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm
index 819cc7667a0..d42d812db7a 100644
--- a/code/_globalvars/configuration.dm
+++ b/code/_globalvars/configuration.dm
@@ -41,7 +41,7 @@ var/list/be_special_flags = list(
"Malf AI" = BE_MALF,
"Revolutionary" = BE_REV,
"Alien Lifeform" = BE_ALIEN,
- "Ghost Roles" = BE_GHOST_ROLE,
+ "pAI/Positronic Brain" = BE_PAI,
"Cultist" = BE_CULTIST,
"Blob" = BE_BLOB,
"Ninja" = BE_NINJA,
diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm
index e88bc863c09..431f68c348e 100644
--- a/code/controllers/subsystem/pai.dm
+++ b/code/controllers/subsystem/pai.dm
@@ -181,7 +181,7 @@ var/datum/subsystem/pai/SSpai
/datum/subsystem/pai/proc/requestRecruits()
for(var/mob/dead/observer/O in player_list)
- if(jobban_isbanned(O, "Ghost Roles"))
+ if(jobban_isbanned(O, "pAI"))
continue
if(asked.Find(O.key))
if(world.time < asked[O.key] + askDelay)
@@ -193,7 +193,7 @@ var/datum/subsystem/pai/SSpai
for(var/datum/paiCandidate/c in SSpai.candidates)
if(c.key == O.key)
hasSubmitted = 1
- if(!hasSubmitted && (O.client.prefs.be_special & BE_GHOST_ROLE))
+ if(!hasSubmitted && (O.client.prefs.be_special & BE_PAI))
question(O.client)
/datum/subsystem/pai/proc/question(var/client/C)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index c0c1342f323..65df4760502 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -642,11 +642,38 @@
jobs += "
"
counter = 0
- //Ghost Roles (pAI/Drone/Positronic Brains) are not technically jobs, but they go in here.
- if(jobban_isbanned(M, "Ghost Roles"))
- jobs += "| Ghost Roles (pAI/Drone/Positronic Brains) | "
+ jobs += "
"
+
+ //Ghost Roles (light light gray)
+ jobs += ""
+ jobs += "| Ghost Roles |
|---|
"
+
+ //pAI
+ if(jobban_isbanned(M, "pAI"))
+ jobs += "| [replacetext("pAI", " ", " ")] | "
else
- jobs += "Ghost Roles (pAI/Drone/Positronic Brains) | "
+ jobs += "[replacetext("pAI", " ", " ")] | "
+
+
+ //Drones
+ if(jobban_isbanned(M, "drone"))
+ jobs += "[replacetext("Drone", " ", " ")] | "
+ else
+ jobs += "[replacetext("Drone", " ", " ")] | "
+
+
+ //Positronic Brains
+ if(jobban_isbanned(M, "posibrain"))
+ jobs += "[replacetext("Posibrain", " ", " ")] | "
+ else
+ jobs += "[replacetext("Posibrain", " ", " ")] | "
+
+
+ //Deathsquad
+ if(jobban_isbanned(M, "deathsquad"))
+ jobs += "[replacetext("Deathsquad", " ", " ")] | "
+ else
+ jobs += "[replacetext("Deathsquad", " ", " ")] | "
jobs += "
"
@@ -705,12 +732,6 @@
else
jobs += "[replacetext("Abductor", " ", " ")] | "
- //Deathsquad
- if(jobban_isbanned(M, "deathsquad") || isbanned_dept)
- jobs += "[replacetext("Deathsquad", " ", " ")] | "
- else
- jobs += "[replacetext("Deathsquad", " ", " ")] | "
-
/* //Malfunctioning AI //Removed Malf-bans because they're a pain to impliment
if(jobban_isbanned(M, "malf AI") || isbanned_dept)
jobs += "[replacetext("Malf AI", " ", " ")] | "
@@ -800,6 +821,8 @@
var/datum/job/temp = SSjob.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
+ if("ghostroles")
+ joblist += list("pAI", "posibrain", "drone", "deathsquad")
else
joblist += href_list["jobban3"]
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 87f5a53950e..f853991c7ce 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -11,7 +11,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
"malf AI" = /datum/game_mode/malfunction, //4
"revolutionary" = /datum/game_mode/revolution, //5
"alien", //6
- "Ghost Roles", //7
+ "pAI/posibrain", //7
"cultist" = /datum/game_mode/cult, //8
"blob" = /datum/game_mode/blob, //9
"ninja", //10
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index a56d3ecc436..9a788562cdb 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -26,10 +26,10 @@
/obj/item/device/mmi/posibrain/proc/request_player()
for(var/mob/dead/observer/O in player_list)
- if(jobban_isbanned(O, "Ghost Roles"))
+ if(jobban_isbanned(O, "posibrain"))
continue
if(O.client)
- if(O.client.prefs.be_special & BE_GHOST_ROLE)
+ if(O.client.prefs.be_special & BE_PAI)
question(O.client)
/obj/item/device/mmi/posibrain/proc/question(var/client/C)
@@ -41,7 +41,7 @@
if(response == "Yes")
transfer_personality(C.mob)
else if (response == "Never for this round")
- C.prefs.be_special ^= BE_GHOST_ROLE
+ C.prefs.be_special ^= BE_PAI
/obj/item/device/mmi/posibrain/transfer_identity(var/mob/living/carbon/H)
@@ -140,7 +140,7 @@
if(searching)
icon_state = "posibrain-searching"
return
- if(brainmob)
+ if(brainmob && brainmob.key)
icon_state = "posibrain-occupied"
else
icon_state = "posibrain"
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
index b089d526e4c..930dff33f2e 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
@@ -16,7 +16,7 @@
var/drone_type = /mob/living/simple_animal/drone //Type of drone that will be spawned
/obj/item/drone_shell/attack_ghost(mob/user)
- if(jobban_isbanned(user,"Ghost Roles"))
+ if(jobban_isbanned(user,"drone"))
return
var/be_drone = alert("Become a drone? (Warning, You can no longer be cloned!)",,"Yes","No")