Skip to content

Commit

Permalink
Quick-Create-Antagonist tweaks (#57913)
Browse files Browse the repository at this point in the history
Gives admins control of how many antags they spawn, instead of assuming a maximum of (generally) 3.
image
  • Loading branch information
bloons3 committed Mar 27, 2021
1 parent 6f091ad commit 185dd4b
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 35 deletions.
55 changes: 30 additions & 25 deletions code/modules/admin/topic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,33 +55,37 @@
return
switch(href_list["makeAntag"])
if("traitors")
if(src.makeTraitors())
message_admins("[key_name_admin(usr)] created traitors.")
log_admin("[key_name(usr)] created traitors.")
var/maxCount = input("Set number of Traitors","Set Traitor Count (max)",1) as num|null
if(src.makeTraitors(maxCount))
message_admins("[key_name_admin(usr)] created [maxCount] traitor(s).")
log_admin("[key_name(usr)] created [maxCount] traitor(s).")
else
message_admins("[key_name_admin(usr)] tried to create traitors. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create traitors.")
message_admins("[key_name_admin(usr)] tried to create [maxCount] traitor(s). Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create [maxCount] traitor(s).")
if("changelings")
if(src.makeChangelings())
message_admins("[key_name(usr)] created changelings.")
log_admin("[key_name(usr)] created changelings.")
var/maxCount = input("Set number of Changelings","Set Changeling Count (max)",1) as num|null
if(src.makeChangelings(maxCount))
message_admins("[key_name(usr)] created [maxCount] changelings.")
log_admin("[key_name(usr)] created [maxCount] changelings.")
else
message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create changelings.")
message_admins("[key_name_admin(usr)] tried to create [maxCount] changelings. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create [maxCount] changelings.")
if("revs")
if(src.makeRevs())
message_admins("[key_name(usr)] started a revolution.")
log_admin("[key_name(usr)] started a revolution.")
var/maxCount = input("Set number of Revolutionaries","Set Revolutionaries Count (max)",1) as num|null
if(src.makeRevs(maxCount))
message_admins("[key_name(usr)] started a revolution with [maxCount] freedom fighters.")
log_admin("[key_name(usr)] started a [maxCount] freedom fighters.")
else
message_admins("[key_name_admin(usr)] tried to start a revolution. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to start a revolution.")
message_admins("[key_name_admin(usr)] tried to start a revolution with [maxCount] freedom fighters. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to start a revolution with [maxCount] freedom fighters.")
if("cult")
if(src.makeCult())
message_admins("[key_name(usr)] started a cult.")
log_admin("[key_name(usr)] started a cult.")
var/maxCount = input("Set number of Cultists","Set Cultist Count (max)",1) as num|null
if(src.makeCult(maxCount))
message_admins("[key_name(usr)] started a cult with [maxCount] cultists.")
log_admin("[key_name(usr)] started a cult with [maxCount] cultists.")
else
message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to start a cult.")
message_admins("[key_name_admin(usr)] tried to start a cult with [maxCount] cultists. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to start a cult with [maxCount] cultists.")
if("wizard")
message_admins("[key_name(usr)] is creating a wizard...")
if(src.makeWizard())
Expand All @@ -92,12 +96,13 @@
log_admin("[key_name(usr)] failed to create a wizard.")
if("nukeops")
message_admins("[key_name(usr)] is creating a nuke team...")
if(src.makeNukeTeam())
message_admins("[key_name(usr)] created a nuke team.")
log_admin("[key_name(usr)] created a nuke team.")
var/maxCount = input("Set number of Nuke OPs","Set Nuke OP Count (max)",5) as num|null
if(src.makeNukeTeam(maxCount))
message_admins("[key_name(usr)] created a nuke team with [maxCount] operatives")
log_admin("[key_name(usr)] created a nuke team with [maxCount] operatives")
else
message_admins("[key_name_admin(usr)] tried to create a nuke team. Unfortunately, there were not enough candidates available.")
log_admin("[key_name(usr)] failed to create a nuke team.")
message_admins("[key_name_admin(usr)] tried to create a nuke team with [maxCount] operatives Unfortunately, there were not enough candidates available.")
log_admin("[key_name(usr)] failed to create a nuke team with [maxCount] operatives.")
if("ninja")
message_admins("[key_name(usr)] spawned a ninja.")
log_admin("[key_name(usr)] spawned a ninja.")
Expand Down
20 changes: 10 additions & 10 deletions code/modules/admin/verbs/one_click_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
return !is_banned_from(applicant.ckey, list(targetrole, ROLE_SYNDICATE))


/datum/admins/proc/makeTraitors()
/datum/admins/proc/makeTraitors(maxCount = 3)
var/datum/game_mode/traitor/temp = new

if(CONFIG_GET(flag/protect_roles_from_antagonist))
Expand All @@ -65,7 +65,7 @@
candidates += applicant

if(candidates.len)
var/numTraitors = min(candidates.len, 3)
var/numTraitors = min(candidates.len, maxCount)

for(var/i = 0, i<numTraitors, i++)
H = pick(candidates)
Expand All @@ -78,7 +78,7 @@
return FALSE


/datum/admins/proc/makeChangelings()
/datum/admins/proc/makeChangelings(maxCount = 3)

var/datum/game_mode/changeling/temp = new
if(CONFIG_GET(flag/protect_roles_from_antagonist))
Expand All @@ -97,7 +97,7 @@
candidates += applicant

if(candidates.len)
var/numChangelings = min(candidates.len, 3)
var/numChangelings = min(candidates.len, maxCount)

for(var/i = 0, i<numChangelings, i++)
H = pick(candidates)
Expand All @@ -108,7 +108,7 @@

return FALSE

/datum/admins/proc/makeRevs()
/datum/admins/proc/makeRevs(maxCount = 3)

var/datum/game_mode/revolution/temp = new
if(CONFIG_GET(flag/protect_roles_from_antagonist))
Expand All @@ -127,7 +127,7 @@
candidates += applicant

if(candidates.len)
var/numRevs = min(candidates.len, 3)
var/numRevs = min(candidates.len, maxCount)

for(var/i = 0, i<numRevs, i++)
H = pick(candidates)
Expand All @@ -148,7 +148,7 @@
return TRUE


/datum/admins/proc/makeCult()
/datum/admins/proc/makeCult(maxCount = 4)
var/datum/game_mode/cult/temp = new
if(CONFIG_GET(flag/protect_roles_from_antagonist))
temp.restricted_jobs += temp.protected_jobs
Expand All @@ -166,7 +166,7 @@
candidates += applicant

if(candidates.len)
var/numCultists = min(candidates.len, 4)
var/numCultists = min(candidates.len, maxCount)

for(var/i = 0, i<numCultists, i++)
H = pick(candidates)
Expand All @@ -179,14 +179,14 @@



/datum/admins/proc/makeNukeTeam()
/datum/admins/proc/makeNukeTeam(maxCount = 5)
var/datum/game_mode/nuclear/temp = new
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a nuke team being sent in?", ROLE_OPERATIVE, temp)
var/list/mob/dead/observer/chosen = list()
var/mob/dead/observer/theghost = null

if(candidates.len)
var/numagents = 5
var/numagents = maxCount
var/agentcount = 0

for(var/i = 0, i<numagents,i++)
Expand Down

0 comments on commit 185dd4b

Please sign in to comment.