mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
[MIRROR] Remove all gamemodes except Dynamic (#5173)
* Remove all gamemodes except Dynamic * qaaaaaaaa Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
@@ -416,10 +416,7 @@
|
||||
if(!check_rights(0))
|
||||
return
|
||||
|
||||
var/dat = {"
|
||||
<center><B>Game Panel</B></center><hr>\n
|
||||
<A href='?src=[REF(src)];[HrefToken()];c_mode=1'>Change Game Mode</A><br>
|
||||
"}
|
||||
var/dat = "<center><B>Game Panel</B></center><hr>"
|
||||
if(GLOB.master_mode == "secret")
|
||||
dat += "<A href='?src=[REF(src)];[HrefToken()];f_secret=1'>(Force Secret Mode)</A><br>"
|
||||
if(SSticker.is_mode("dynamic"))
|
||||
|
||||
@@ -101,7 +101,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list(
|
||||
/client/proc/set_dynex_scale,
|
||||
/client/proc/drop_dynex_bomb,
|
||||
/client/proc/cinematic,
|
||||
/client/proc/one_click_antag,
|
||||
/client/proc/summon_ert,
|
||||
/client/proc/cmd_admin_add_freeform_ai_law,
|
||||
/client/proc/object_say,
|
||||
/client/proc/toggle_random_events,
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
bodies += possessable
|
||||
|
||||
var/question = "Would you like to be [group_name]?"
|
||||
var/list/candidates = pollCandidatesForMobs(question, ROLE_PAI, null, FALSE, 100, bodies)
|
||||
var/list/candidates = pollCandidatesForMobs(question, ROLE_PAI, FALSE, 100, bodies)
|
||||
while(LAZYLEN(candidates) && LAZYLEN(bodies))
|
||||
var/mob/dead/observer/C = pick_n_take(candidates)
|
||||
var/mob/living/body = pick_n_take(bodies)
|
||||
|
||||
@@ -47,116 +47,6 @@
|
||||
to_chat(usr, "<span class='danger'>ERROR: Mob not found.</span>", confidential = TRUE)
|
||||
return
|
||||
cmd_show_exp_panel(M.client)
|
||||
else if(href_list["makeAntag"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
if (!SSticker.mode)
|
||||
to_chat(usr, "<span class='danger'>Not until the round starts!</span>", confidential = TRUE)
|
||||
return
|
||||
switch(href_list["makeAntag"])
|
||||
if("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 [maxCount] traitor(s). Unfortunately, there were no candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create [maxCount] traitor(s).")
|
||||
if("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 [maxCount] changelings. Unfortunately, there were no candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create [maxCount] changelings.")
|
||||
if("revs")
|
||||
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 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")
|
||||
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 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())
|
||||
message_admins("[key_name(usr)] created a wizard.")
|
||||
log_admin("[key_name(usr)] created a wizard.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a wizard. Unfortunately, there were no candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a wizard.")
|
||||
if("nukeops")
|
||||
message_admins("[key_name(usr)] is creating 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 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.")
|
||||
src.makeSpaceNinja()
|
||||
if("aliens")
|
||||
message_admins("[key_name(usr)] started an alien infestation.")
|
||||
log_admin("[key_name(usr)] started an alien infestation.")
|
||||
src.makeAliens()
|
||||
if("deathsquad")
|
||||
message_admins("[key_name(usr)] is creating a death squad...")
|
||||
if(src.makeDeathsquad())
|
||||
message_admins("[key_name(usr)] created a death squad.")
|
||||
log_admin("[key_name(usr)] created a death squad.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a death squad. Unfortunately, there were not enough candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a death squad.")
|
||||
if("blob")
|
||||
var/strength = input("Set Blob Resource Gain Rate","Set Resource Rate",1) as num|null
|
||||
if(!strength)
|
||||
return
|
||||
message_admins("[key_name(usr)] spawned a blob with base resource gain [strength].")
|
||||
log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].")
|
||||
new/datum/round_event/ghost_role/blob(TRUE, strength)
|
||||
if("centcom")
|
||||
message_admins("[key_name(usr)] is creating a CentCom response team...")
|
||||
if(src.makeEmergencyresponseteam())
|
||||
message_admins("[key_name(usr)] created a CentCom response team.")
|
||||
log_admin("[key_name(usr)] created a CentCom response team.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a CentCom response team. Unfortunately, there were not enough candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a CentCom response team.")
|
||||
if("abductors")
|
||||
message_admins("[key_name(usr)] is creating an abductor team...")
|
||||
if(src.makeAbductorTeam())
|
||||
message_admins("[key_name(usr)] created an abductor team.")
|
||||
log_admin("[key_name(usr)] created an abductor team.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunately there were not enough candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create an abductor team.")
|
||||
if("revenant")
|
||||
if(src.makeRevenant())
|
||||
message_admins("[key_name(usr)] created a revenant.")
|
||||
log_admin("[key_name(usr)] created a revenant.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a revenant. Unfortunately, there were no candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a revenant.")
|
||||
if("nerd")
|
||||
if(src.makeNerd())
|
||||
message_admins("[key_name(usr)] created a nanotrasen emergency response drone.")
|
||||
log_admin("[key_name(usr)] created a nanotrasen emergency response drone.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a nanotrasen emergency response drone. Unfortunately, there were no candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a nanotrasen emergency response drone.")
|
||||
|
||||
else if(href_list["forceevent"])
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
@@ -626,12 +516,6 @@
|
||||
return
|
||||
cmd_admin_mute(href_list["mute"], text2num(href_list["mute_type"]))
|
||||
|
||||
else if(href_list["c_mode"])
|
||||
return HandleCMode()
|
||||
|
||||
else if(href_list["f_secret"])
|
||||
return HandleFSecret()
|
||||
|
||||
else if(href_list["f_dynamic_roundstart"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -731,38 +615,6 @@
|
||||
message_admins("[key_name(usr)] set 'forced_threat_level' to [GLOB.dynamic_forced_threat_level].")
|
||||
dynamic_mode_options(usr)
|
||||
|
||||
else if(href_list["c_mode2"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER))
|
||||
return
|
||||
|
||||
if (SSticker.HasRoundStarted())
|
||||
if (tgui_alert(usr, "The game has already started. Would you like to save this as the default mode effective next round?", "Save mode", list("Yes", "Cancel"), timeout = 0) == "Yes")
|
||||
SSticker.save_mode(href_list["c_mode2"])
|
||||
HandleCMode()
|
||||
return
|
||||
GLOB.master_mode = href_list["c_mode2"]
|
||||
log_admin("[key_name(usr)] set the mode as [GLOB.master_mode].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] set the mode as [GLOB.master_mode].</span>")
|
||||
to_chat(world, "<span class='adminnotice'><b>The mode is now: [GLOB.master_mode]</b></span>", confidential = TRUE)
|
||||
Game() // updates the main game menu
|
||||
if (tgui_alert(usr, "Would you like to save this as the default mode for the server?", "Save mode", list("Yes", "No"), timeout = 0) == "Yes")
|
||||
SSticker.save_mode(GLOB.master_mode)
|
||||
HandleCMode()
|
||||
|
||||
else if(href_list["f_secret2"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER))
|
||||
return
|
||||
|
||||
if(SSticker.HasRoundStarted())
|
||||
return alert(usr, "The game has already started.", null, null, null, null)
|
||||
if(GLOB.master_mode != "secret")
|
||||
return alert(usr, "The game mode has to be secret!", null, null, null, null)
|
||||
GLOB.secret_force_mode = href_list["f_secret2"]
|
||||
log_admin("[key_name(usr)] set the forced secret mode as [GLOB.secret_force_mode].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] set the forced secret mode as [GLOB.secret_force_mode].</span>")
|
||||
Game() // updates the main game menu
|
||||
HandleFSecret()
|
||||
|
||||
else if(href_list["monkeyone"])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
@@ -2203,30 +2055,3 @@
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
GLOB.interviews.ui_interact(usr)
|
||||
|
||||
/datum/admins/proc/HandleCMode()
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
var/dat = {"<B>What mode do you wish to play?</B><HR>"}
|
||||
for(var/mode in config.modes)
|
||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];c_mode2=[mode]'>[config.mode_names[mode]]</A><br>"}
|
||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];c_mode2=secret'>Secret</A><br>"}
|
||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];c_mode2=random'>Random</A><br>"}
|
||||
dat += {"Now: [GLOB.master_mode]"}
|
||||
usr << browse(dat, "window=c_mode")
|
||||
|
||||
/datum/admins/proc/HandleFSecret()
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
if(SSticker.HasRoundStarted())
|
||||
return alert(usr, "The game has already started.", null, null, null, null)
|
||||
if(GLOB.master_mode != "secret")
|
||||
return alert(usr, "The game mode has to be secret!", null, null, null, null)
|
||||
var/dat = {"<B>What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.</B><HR>"}
|
||||
for(var/mode in config.modes)
|
||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];f_secret2=[mode]'>[config.mode_names[mode]]</A><br>"}
|
||||
dat += {"<A href='?src=[REF(src)];[HrefToken()];f_secret2=secret'>Random (default)</A><br>"}
|
||||
dat += {"Now: [GLOB.secret_force_mode]"}
|
||||
usr << browse(dat, "window=f_secret")
|
||||
|
||||
@@ -1,244 +1,6 @@
|
||||
/// If we spawn an ERT with the "choose experienced leader" option, select the leader from the top X playtimes
|
||||
#define ERT_EXPERIENCED_LEADER_CHOOSE_TOP 3
|
||||
|
||||
/client/proc/one_click_antag()
|
||||
set name = "Create Antagonist"
|
||||
set desc = "Auto-create an antagonist of your choice"
|
||||
set category = "Admin.Events"
|
||||
|
||||
if(holder)
|
||||
holder.one_click_antag()
|
||||
return
|
||||
|
||||
|
||||
/datum/admins/proc/one_click_antag()
|
||||
var/dat = {"
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=traitors'>Make Traitors</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=changelings'>Make Changelings</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=revs'>Make Revs</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=cult'>Make Cult</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=blob'>Make Blob</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=wizard'>Make Wizard (Requires Ghosts)</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=nukeops'>Make Nuke Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=centcom'>Make CentCom Response Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=abductors'>Make Abductor Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=revenant'>Make Revenant (Requires Ghost)</a><br>
|
||||
<a href='?src=[REF(src)];[HrefToken()];makeAntag=nerd'>Make N.E.R.D. (Requires Ghost)</a><br>
|
||||
"}
|
||||
var/datum/browser/popup = new(usr, "oneclickantag", "Quick-Create Antagonist", 400, 400)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
/datum/admins/proc/isReadytoRumble(mob/living/carbon/human/applicant, targetrole, onstation = TRUE, conscious = TRUE)
|
||||
if(applicant.mind.special_role)
|
||||
return FALSE
|
||||
if(!(targetrole in applicant.client.prefs.be_special))
|
||||
return FALSE
|
||||
if(onstation)
|
||||
var/turf/T = get_turf(applicant)
|
||||
if(!is_station_level(T.z))
|
||||
return FALSE
|
||||
if(conscious && applicant.stat) //incase you don't care about a certain antag being unconcious when made, ie if they have selfhealing abilities.
|
||||
return FALSE
|
||||
if(!considered_alive(applicant.mind) || considered_afk(applicant.mind)) //makes sure the player isn't a zombie, brain, or just afk all together
|
||||
return FALSE
|
||||
return !is_banned_from(applicant.ckey, list(targetrole, ROLE_SYNDICATE))
|
||||
|
||||
|
||||
/datum/admins/proc/makeTraitors(maxCount = 3)
|
||||
var/datum/game_mode/traitor/temp = new
|
||||
|
||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
temp.restricted_jobs += temp.protected_jobs
|
||||
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
temp.restricted_jobs += "Assistant"
|
||||
|
||||
var/list/mob/living/carbon/human/candidates = list()
|
||||
var/mob/living/carbon/human/H = null
|
||||
|
||||
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
|
||||
if(isReadytoRumble(applicant, ROLE_TRAITOR))
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numTraitors = min(candidates.len, maxCount)
|
||||
|
||||
for(var/i = 0, i<numTraitors, i++)
|
||||
H = pick(candidates)
|
||||
H.mind.make_Traitor()
|
||||
candidates.Remove(H)
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
return FALSE
|
||||
|
||||
|
||||
/datum/admins/proc/makeChangelings(maxCount = 3)
|
||||
|
||||
var/datum/game_mode/changeling/temp = new
|
||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
temp.restricted_jobs += temp.protected_jobs
|
||||
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
temp.restricted_jobs += "Assistant"
|
||||
|
||||
var/list/mob/living/carbon/human/candidates = list()
|
||||
var/mob/living/carbon/human/H = null
|
||||
|
||||
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
|
||||
if(isReadytoRumble(applicant, ROLE_CHANGELING))
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numChangelings = min(candidates.len, maxCount)
|
||||
|
||||
for(var/i = 0, i<numChangelings, i++)
|
||||
H = pick(candidates)
|
||||
H.mind.make_Changeling()
|
||||
candidates.Remove(H)
|
||||
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/datum/admins/proc/makeRevs(maxCount = 3)
|
||||
|
||||
var/datum/game_mode/revolution/temp = new
|
||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
temp.restricted_jobs += temp.protected_jobs
|
||||
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
temp.restricted_jobs += "Assistant"
|
||||
|
||||
var/list/mob/living/carbon/human/candidates = list()
|
||||
var/mob/living/carbon/human/H = null
|
||||
|
||||
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
|
||||
if(isReadytoRumble(applicant, ROLE_REV))
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numRevs = min(candidates.len, maxCount)
|
||||
|
||||
for(var/i = 0, i<numRevs, i++)
|
||||
H = pick(candidates)
|
||||
H.mind.make_Rev()
|
||||
candidates.Remove(H)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/datum/admins/proc/makeWizard()
|
||||
|
||||
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", ROLE_WIZARD, null)
|
||||
|
||||
var/mob/dead/observer/selected = pick_n_take(candidates)
|
||||
|
||||
var/mob/living/carbon/human/new_character = makeBody(selected)
|
||||
new_character.mind.make_Wizard()
|
||||
return TRUE
|
||||
|
||||
|
||||
/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
|
||||
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
temp.restricted_jobs += "Assistant"
|
||||
|
||||
var/list/mob/living/carbon/human/candidates = list()
|
||||
var/mob/living/carbon/human/H = null
|
||||
|
||||
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
|
||||
if(isReadytoRumble(applicant, ROLE_CULTIST))
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numCultists = min(candidates.len, maxCount)
|
||||
|
||||
for(var/i = 0, i<numCultists, i++)
|
||||
H = pick(candidates)
|
||||
H.mind.make_Cultist()
|
||||
candidates.Remove(H)
|
||||
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
|
||||
|
||||
/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 = maxCount
|
||||
var/agentcount = 0
|
||||
|
||||
for(var/i = 0, i<numagents,i++)
|
||||
shuffle_inplace(candidates) //More shuffles means more randoms
|
||||
for(var/mob/j in candidates)
|
||||
if(!j || !j.client)
|
||||
candidates.Remove(j)
|
||||
continue
|
||||
|
||||
theghost = j
|
||||
candidates.Remove(theghost)
|
||||
chosen += theghost
|
||||
agentcount++
|
||||
break
|
||||
//Making sure we have atleast 3 Nuke agents, because less than that is kinda bad
|
||||
if(agentcount < 3)
|
||||
return FALSE
|
||||
|
||||
//Let's find the spawn locations
|
||||
var/leader_chosen = FALSE
|
||||
var/datum/team/nuclear/nuke_team
|
||||
for(var/mob/c in chosen)
|
||||
var/mob/living/carbon/human/new_character=makeBody(c)
|
||||
if(!leader_chosen)
|
||||
leader_chosen = TRUE
|
||||
var/datum/antagonist/nukeop/N = new_character.mind.add_antag_datum(/datum/antagonist/nukeop/leader)
|
||||
nuke_team = N.nuke_team
|
||||
else
|
||||
new_character.mind.add_antag_datum(/datum/antagonist/nukeop,nuke_team)
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/datum/admins/proc/makeAliens()
|
||||
var/datum/round_event/ghost_role/alien_infestation/E = new(FALSE)
|
||||
E.spawncount = 3
|
||||
// TODO The fact we have to do this rather than just have events start
|
||||
// when we ask them to, is bad.
|
||||
E.processing = TRUE
|
||||
return TRUE
|
||||
|
||||
/datum/admins/proc/makeSpaceNinja()
|
||||
new /datum/round_event/ghost_role/space_ninja()
|
||||
return TRUE
|
||||
|
||||
// DEATH SQUADS
|
||||
/datum/admins/proc/makeDeathsquad()
|
||||
return makeEmergencyresponseteam(/datum/ert/deathsquad)
|
||||
|
||||
// CENTCOM RESPONSE TEAM
|
||||
|
||||
/datum/admins/proc/makeERTTemplateModified(list/settings)
|
||||
@@ -456,40 +218,17 @@
|
||||
|
||||
return
|
||||
|
||||
//Abductors
|
||||
/datum/admins/proc/makeAbductorTeam()
|
||||
new /datum/round_event/ghost_role/abductor
|
||||
return TRUE
|
||||
/client/proc/summon_ert()
|
||||
set category = "Admin.Fun"
|
||||
set name = "Summon ERT"
|
||||
set desc = "Summons an emergency response team"
|
||||
|
||||
/datum/admins/proc/makeRevenant()
|
||||
new /datum/round_event/ghost_role/revenant(TRUE, TRUE)
|
||||
return TRUE
|
||||
|
||||
/datum/admins/proc/makeNerd()
|
||||
var/spawnpoint = pick(GLOB.blobstart)
|
||||
var/list/mob/dead/observer/candidates
|
||||
var/mob/dead/observer/chosen_candidate
|
||||
var/mob/living/simple_animal/drone/nerd
|
||||
var/teamsize
|
||||
|
||||
teamsize = input(usr, "How many drones?", "N.E.R.D. team size", 2) as num|null
|
||||
|
||||
if(teamsize <= 0)
|
||||
return FALSE
|
||||
|
||||
candidates = pollGhostCandidates("Do you wish to be considered for a Nanotrasen emergency response drone?", "Drone")
|
||||
|
||||
if(length(candidates) == 0)
|
||||
return FALSE
|
||||
|
||||
while(length(candidates) && teamsize)
|
||||
chosen_candidate = pick(candidates)
|
||||
candidates -= chosen_candidate
|
||||
nerd = new /mob/living/simple_animal/drone/classic(spawnpoint)
|
||||
nerd.key = chosen_candidate.key
|
||||
log_game("[key_name(nerd)] has been selected as a Nanotrasen emergency response drone")
|
||||
teamsize--
|
||||
|
||||
return TRUE
|
||||
message_admins("[key_name(usr)] is creating a CentCom response team...")
|
||||
if(holder?.makeEmergencyresponseteam())
|
||||
message_admins("[key_name(usr)] created a CentCom response team.")
|
||||
log_admin("[key_name(usr)] created a CentCom response team.")
|
||||
else
|
||||
message_admins("[key_name_admin(usr)] tried to create a CentCom response team. Unfortunately, there were not enough candidates available.")
|
||||
log_admin("[key_name(usr)] failed to create a CentCom response team.")
|
||||
|
||||
#undef ERT_EXPERIENCED_LEADER_CHOOSE_TOP
|
||||
@@ -27,7 +27,7 @@
|
||||
prayer_type = "CHAPLAIN PRAYER"
|
||||
if(GLOB.deity)
|
||||
deity = GLOB.deity
|
||||
else if(iscultist(usr))
|
||||
else if(IS_CULTIST(usr))
|
||||
cross.icon_state = "tome"
|
||||
font_color = "red"
|
||||
prayer_type = "CULTIST PRAYER"
|
||||
|
||||
@@ -555,6 +555,32 @@
|
||||
message_admins("[key_name_admin(holder)] has Un-Fully Immersed \
|
||||
everyone!")
|
||||
log_admin("[key_name(holder)] has Un-Fully Immersed everyone.")
|
||||
if("makeNerd")
|
||||
var/spawnpoint = pick(GLOB.blobstart)
|
||||
var/list/mob/dead/observer/candidates
|
||||
var/mob/dead/observer/chosen_candidate
|
||||
var/mob/living/simple_animal/drone/nerd
|
||||
var/teamsize
|
||||
|
||||
teamsize = input(usr, "How many drones?", "N.E.R.D. team size", 2) as num|null
|
||||
|
||||
if(teamsize <= 0)
|
||||
return FALSE
|
||||
|
||||
candidates = pollGhostCandidates("Do you wish to be considered for a Nanotrasen emergency response drone?", "Drone")
|
||||
|
||||
if(length(candidates) == 0)
|
||||
return FALSE
|
||||
|
||||
while(length(candidates) && teamsize)
|
||||
chosen_candidate = pick(candidates)
|
||||
candidates -= chosen_candidate
|
||||
nerd = new /mob/living/simple_animal/drone/classic(spawnpoint)
|
||||
nerd.key = chosen_candidate.key
|
||||
log_game("[key_name(nerd)] has been selected as a Nanotrasen emergency response drone")
|
||||
teamsize--
|
||||
|
||||
return TRUE
|
||||
if(E)
|
||||
E.processing = FALSE
|
||||
if(E.announceWhen>0)
|
||||
|
||||
Reference in New Issue
Block a user