diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 9c2e1ccb84a..bc0dd8fc2b4 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_PAI 128 //Includes Positronic brains, but the flag is already maxed. +#define BE_PAI 128 #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 d42d812db7a..0db83ac6adb 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, - "pAI/Positronic Brain" = BE_PAI, + "pAI" = BE_PAI, "Cultist" = BE_CULTIST, "Blob" = BE_BLOB, "Ninja" = BE_NINJA, diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 9a788562cdb..5b30c64683e 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -15,34 +15,17 @@ /obj/item/device/mmi/posibrain/attack_self(mob/user as mob) - if(brainmob && !brainmob.key && searching == 0) - //Start the process of searching for a new user. - user << "You carefully locate the manual activation switch and start the positronic brain's boot process." - searching = 1 - update_icon() - request_player() - spawn(600) - reset_search() + return //Code for deleting personalities recommended here. -/obj/item/device/mmi/posibrain/proc/request_player() - for(var/mob/dead/observer/O in player_list) - if(jobban_isbanned(O, "posibrain")) - continue - if(O.client) - if(O.client.prefs.be_special & BE_PAI) - question(O.client) -/obj/item/device/mmi/posibrain/proc/question(var/client/C) - spawn(0) - if(!C) return - var/response = alert(C, "Someone is requesting a personality for a positronic brain. Would you like to play as one?", "Positronic brain request", "Yes", "No", "Never for this round") - if(!C || brainmob.key || 0 == searching) - return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located. - if(response == "Yes") - transfer_personality(C.mob) - else if (response == "Never for this round") - C.prefs.be_special ^= BE_PAI +/obj/item/device/mmi/posibrain/attack_ghost(mob/user) + if((brainmob && brainmob.key) || jobban_isbanned(user,"posibrain")) + return + var/posi_ask = alert("Become a positronic brain? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No") + if(posi_ask == "No" || gc_destroyed) + return + transfer_personality(user) /obj/item/device/mmi/posibrain/transfer_identity(var/mob/living/carbon/H) name = "positronic brain ([H])" @@ -85,14 +68,6 @@ visible_message("The positronic brain chimes quietly.") update_icon() -/obj/item/device/mmi/posibrain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer. - - if(brainmob && brainmob.key) return - - searching = 0 - update_icon() - - visible_message("The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?") /obj/item/device/mmi/posibrain/examine() @@ -128,6 +103,7 @@ brainmob.stat = 0 brainmob.silent = 0 dead_mob_list -= brainmob + notify_ghosts("Positronic Brain created in [get_area(src)].") ..() @@ -137,9 +113,6 @@ /obj/item/device/mmi/posibrain/update_icon() - if(searching) - icon_state = "posibrain-searching" - return if(brainmob && brainmob.key) icon_state = "posibrain-occupied" else