diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm
index 7061006c158..8b140cb8b7c 100644
--- a/code/__DEFINES/clockcult.dm
+++ b/code/__DEFINES/clockcult.dm
@@ -87,8 +87,6 @@ var/global/list/all_scripture = list() //a list containing scripture instances;
#define CLOCKCULT_ESCAPE "escape"
-#define CLOCKCULT_SILICONS "silicons"
-
//misc clockcult stuff
#define MARAUDER_EMERGE_THRESHOLD 65 //marauders cannot emerge unless host is at this% or less health
diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index f0525d0a199..1bcc3bec902 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -84,8 +84,6 @@ Credit where due:
/datum/game_mode
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 = CLOCKCULT_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
@@ -141,20 +139,12 @@ Credit where due:
/datum/game_mode/clockwork_cult/proc/forge_clock_objectives() //Determine what objective that Ratvar's servants will fulfill
var/list/possible_objectives = list(CLOCKCULT_ESCAPE, CLOCKCULT_GATEWAY)
- var/silicons_possible = FALSE
- for(var/mob/living/silicon/ai/S in living_mob_list)
- silicons_possible = TRUE
- if(silicons_possible)
- possible_objectives += CLOCKCULT_SILICONS
clockwork_objective = pick(possible_objectives)
switch(clockwork_objective)
if(CLOCKCULT_ESCAPE)
- required_escapees = round(max(1, roundstart_player_count / 3)) //33% of the player count must be cultists
- clockwork_explanation = "Ensure that [required_escapees] servants of Ratvar escape from [station_name()]."
+ clockwork_explanation = "Construct a Gateway to the Celestial Derelict and proselytize the entire station."
if(CLOCKCULT_GATEWAY)
clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar."
- if(CLOCKCULT_SILICONS)
- clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar and Application scripture is unlocked."
return 1
/datum/game_mode/clockwork_cult/proc/greet_servant(mob/M) //Description of their role
@@ -199,27 +189,8 @@ Credit where due:
/datum/game_mode/clockwork_cult/proc/check_clockwork_victory()
switch(clockwork_objective)
if(CLOCKCULT_ESCAPE)
- var/surviving_servants = 0
- for(var/datum/mind/M in servants_of_ratvar)
- if(M.current && M.current.stat != DEAD && (M.current.onCentcom() || M.current.onSyndieBase()))
- surviving_servants++
- clockwork_explanation = "Ensure that [required_escapees] servant(s) of Ratvar escape from [station_name()].
[surviving_servants] managed to escape!"
- if(surviving_servants >= required_escapees)
- ticker.news_report = CULT_ESCAPE
- return TRUE
- if(CLOCKCULT_SILICONS)
- var/total_silicons = 0
- var/valid_silicons = 0
- for(var/mob/living/silicon/S in mob_list) //Only check robots and AIs
- if(isAI(S) || iscyborg(S))
- total_silicons++
- if(is_servant_of_ratvar(S) || S.stat == DEAD)
- valid_silicons++
- clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar and Application scripture is unlocked.
\
- [valid_silicons]/[total_silicons] silicons were killed or converted!"
- var/list/scripture_states = scripture_unlock_check()
- if(valid_silicons >= total_silicons && scripture_states[SCRIPTURE_APPLICATION])
- ticker.news_report = CLOCK_SILICONS
+ if(clockwork_gateway_activated)
+ ticker.news_report = CLOCK_PROSELYTIZATION
return TRUE
if(CLOCKCULT_GATEWAY)
if(ratvar_awakens)
@@ -241,18 +212,16 @@ Credit where due:
feedback_set_details("round_end_result", "win - servants completed their objective ([clockwork_objective])")
else
var/half_victory = FALSE
- if(clockwork_objective == CLOCKCULT_GATEWAY)
- var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = locate() in all_clockwork_objects
- if(G)
- half_victory = TRUE
+ var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = locate() in all_clockwork_objects
+ if(G)
+ half_victory = TRUE
if(half_victory)
- text += "The crew escaped before Ratvar could rise, but the gateway was successfully constructed!"
+ text += "The crew escaped before [clockwork_objective == CLOCKCULT_GATEWAY ? "Ratvar could rise":"the station could be proselytized"], but the gateway \
+ was successfully constructed!"
feedback_set_details("round_end_result", "halfwin - round ended before the gateway finished")
else
text += "Ratvar's servants have failed!"
feedback_set_details("round_end_result", "loss - servants failed their objective ([clockwork_objective])")
- if(clockwork_gateway_activated && clockwork_objective != CLOCKCULT_GATEWAY)
- ticker.news_report = CLOCK_PROSELYTIZATION
text += "
The servants' objective was:
[clockwork_explanation]"
text += "
Ratvar's servants had [clockwork_caches] Tinkerer's Caches."
text += "
Construction Value(CV) was: [clockwork_construction_value]"
diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm
index 3822cc35a29..42c4a418c70 100644
--- a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm
+++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm
@@ -159,11 +159,10 @@
/obj/effect/clockwork/sigil/submission/accession/post_channel(mob/living/L)
if(L.isloyal())
- var/mob/living/carbon/C = L
delete_on_finish = TRUE
- C.visible_message("[C] visibly trembles!", \
+ L.visible_message("[L] visibly trembles!", \
"[text2ratvar("You will be mine and his. This puny trinket will not stop me.")]")
- for(var/obj/item/weapon/implant/mindshield/M in C.implants)
+ for(var/obj/item/weapon/implant/mindshield/M in L.implants)
qdel(M)
diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm
index f123579e34d..9ca1606d109 100644
--- a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm
+++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm
@@ -74,8 +74,6 @@
hierophant_message("A gateway to the Celestial Derelict has been created in [gate_area.map_name]!", FALSE, src)
if(!objective_is_gateway)
ratvar_portal = FALSE
- hierophant_message("This newly constructed gateway will not free Ratvar, \
- and will instead simply proselytize and convert everything and everyone on the station.", TRUE)
SSshuttle.registerHostileEnvironment(src)
START_PROCESSING(SSprocessing, src)
@@ -210,13 +208,14 @@
animate(glow, transform = matrix() * 3, alpha = 0, time = 5)
var/turf/startpoint = get_turf(src)
QDEL_IN(src, 3)
- clockwork_gateway_activated = TRUE
if(ratvar_portal)
sleep(3)
+ clockwork_gateway_activated = TRUE
new/obj/structure/destructible/clockwork/massive/ratvar(startpoint)
else
INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 0) //call the shuttle immediately
sleep(3)
+ clockwork_gateway_activated = TRUE
send_to_playing_players("\"[text2ratvar("Behold")]!\"\n\"[text2ratvar("See Engine's mercy")]!\"\n\
\"[text2ratvar("Observe Engine's design skills")]!\"\n\"[text2ratvar("Behold Engine's light")]!!\"\n\
\"[text2ratvar("Gaze upon Engine's power")]!\"")
@@ -234,13 +233,8 @@
dist = FALSE
T.ratvar_act(dist)
CHECK_TICK
- for(var/mob/living/silicon/robot/R in silicon_mobs)
- if(R && R.stat != DEAD && !is_servant_of_ratvar(R))
- add_servant_of_ratvar(R)
- for(var/i in ai_list)
- var/mob/living/silicon/ai/A = i
- if(A && A.stat != DEAD && !is_servant_of_ratvar(A))
- add_servant_of_ratvar(A)
+ for(var/mob/living/L in living_mob_list)
+ L.ratvar_act()
for(var/I in all_clockwork_mobs)
var/mob/M = I
if(M.stat == CONSCIOUS)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 409efa27f23..0f15cd37955 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -324,13 +324,16 @@
/mob/living/ratvar_act()
- if(stat != DEAD && !is_servant_of_ratvar(src) && !add_servant_of_ratvar(src))
- src << "A blinding light boils you alive! Run!"
- adjustFireLoss(35)
- if(src)
- adjust_fire_stacks(1)
- IgniteMob()
- return FALSE
+ if(stat != DEAD && !is_servant_of_ratvar(src))
+ for(var/obj/item/weapon/implant/mindshield/M in implants)
+ qdel(M)
+ if(!add_servant_of_ratvar(src))
+ src << "A blinding light boils you alive! Run!"
+ adjustFireLoss(35)
+ if(src)
+ adjust_fire_stacks(1)
+ IgniteMob()
+ return FALSE
return TRUE