From c81d5fc354d7f2e7706e6f26283cc2defabba103 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Mon, 20 Jun 2016 02:27:57 -0400 Subject: [PATCH] Clockwork cult antagonist creation and job bans (#18730) * Clock cult creation and jobbans * Admin creation objective description failsafe * Failsafe, for real this time --- code/game/gamemodes/clock_cult/clock_cult.dm | 4 +-- code/modules/admin/topic.dm | 13 +++++++ code/modules/admin/verbs/one_click_antag.dm | 38 ++++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index d730a42258c..9c83b2102c8 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -153,8 +153,8 @@ This file's folder contains: var/list/servants_of_ratvar = list() //The Enlightened servants of Ratvar var/required_escapees = 0 //How many servants need to escape, if applicable var/required_silicon_converts = 0 //How many robotic lifeforms need to be converted, if applicable - var/clockwork_objective = "escape" //The objective that the servants must fulfill - var/clockwork_explanation = "Ensure that the meme levels of the station remain high." //The description of the current objective + var/clockwork_objective = "gateway" //The objective that the servants must fulfill + var/clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." //The description of the current objective /datum/game_mode/clockwork_cult name = "clockwork cult" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a4742693017..bee4afe7f68 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -119,6 +119,13 @@ else message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunatly there were not enough candidates available.") log_admin("[key_name(usr)] failed to create an abductor team.") + if("15") + if(src.makeClockCult()) + message_admins("[key_name(usr)] started a clockwork cult.") + log_admin("[key_name(usr)] started a clockwork cult.") + else + message_admins("[key_name_admin(usr)] tried to start a clockwork cult. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a clockwork cult.") if("16") if(src.makeShadowling()) message_admins("[key_name(usr)] created a shadowling.") @@ -826,6 +833,12 @@ else jobs += "[replacetext("Cultist", " ", " ")]" + //Servant of Ratvar + if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept) + jobs += "[replacetext("Servant", " ", " ")]" + else + jobs += "[replacetext("Servant", " ", " ")]" + //Shadowling if(jobban_isbanned(M, "shadowling") || isbanned_dept) jobs += "[replacetext("Shadowling", " ", " ")]" diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 1416f8e7c2b..075eb11bee8 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -15,6 +15,7 @@ Make Changelings
Make Revs
Make Cult
+ Make Clockwork Cult
Make Blob
Make Gangsters
Make Shadowling
@@ -173,6 +174,43 @@ return 0 +/datum/admins/proc/makeClockCult() + var/datum/game_mode/clockwork_cult/temp = new + if(config.protect_roles_from_antagonist) + temp.restricted_jobs += temp.protected_jobs + + if(config.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 player_list) + if(ROLE_SERVANT_OF_RATVAR in applicant.client.prefs.be_special) + var/turf/T = get_turf(applicant) + if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION) + if(!jobban_isbanned(applicant, ROLE_SERVANT_OF_RATVAR) && !jobban_isbanned(applicant, "Syndicate")) + if(temp.age_check(applicant.client)) + if(!(applicant.job in temp.restricted_jobs)) + candidates += applicant + + if(candidates.len) + var/numCultists = min(candidates.len, 4) + + for(var/i = 0, iThe world before you suddenly glows a brilliant yellow. You hear the whooshing steam and clanking cogs of a billion billion machines, and all at once \ + you see the truth. Ratvar, the Clockwork Justiciar, lies derelict and forgotten in an unseen realm, and he has selected you as one of his harbringers. You are now a servant of \ + Ratvar, and you will bring him back." + add_servant_of_ratvar(H, TRUE) + ticker.mode.equip_servant(H) + candidates.Remove(H) + + return 1 + + return 0 + + /datum/admins/proc/makeNukeTeam()