diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 816a20f2f02..2683dfdd4d4 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -1,3 +1,4 @@ //Each lists stores ckeys for "Never for this round" option category -var/list/sentience_potion_ignore = list() //sentience potion query \ No newline at end of file +var/list/sentience_potion_ignore = list() //sentience potion query +var/list/pai_ignore = list() //pai's \ No newline at end of file diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 1978c1b167d..e71bbd8edb4 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -5,10 +5,7 @@ var/datum/subsystem/pai/SSpai init_order = 20 flags = SS_NO_FIRE|SS_NO_INIT - var/askDelay = 600 - var/const/NEVER_FOR_THIS_ROUND = -1 var/list/candidates = list() - var/list/asked = list() /datum/subsystem/pai/New() NEW_SS_GLOBAL(SSpai) @@ -181,34 +178,10 @@ var/datum/subsystem/pai/SSpai user << browse(dat, "window=findPai") /datum/subsystem/pai/proc/requestRecruits() - for(var/mob/dead/observer/O in player_list) - if(jobban_isbanned(O, ROLE_PAI)) - continue - if(asked[O.ckey]) - if(world.time < asked[O.ckey] + askDelay || asked[O.ckey] == NEVER_FOR_THIS_ROUND) - continue - else - asked.Remove(O.ckey) - if(O.client) - var/hasSubmitted = 0 - for(var/datum/paiCandidate/c in SSpai.candidates) - if(c.key == O.key) - hasSubmitted = 1 - if(!hasSubmitted && (ROLE_PAI in O.client.prefs.be_special)) - question(O.client) - -/datum/subsystem/pai/proc/question(client/C) - set waitfor = 0 - if(!C) - return - asked[C.ckey] = world.time - var/response = tgalert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round", StealFocus=0, Timeout=askDelay) - if(!C) - return //handle logouts that happen whilst the alert is waiting for a response. - if(response == "Yes") - recruitWindow(C.mob) - else if (response == "Never for this round") - asked[C.ckey] = NEVER_FOR_THIS_ROUND + var/list/candidates = pollCandidates("Someone is requesting a pAI personality. Would you like to play as a personal AI?", ROLE_PAI, null, ROLE_PAI,300, ignore_list = pai_ignore) + for(var/V in candidates) + recruitWindow(V) + return /datum/paiCandidate var/name