From a3323c1b9520caf35d75a1f9c5a694cc9d627464 Mon Sep 17 00:00:00 2001 From: Ashe Higgs Date: Thu, 21 Dec 2017 01:01:51 -0500 Subject: [PATCH 1/3] (probably?) Fixes being able to create two Eminences at a time + other Eminence issues --- .../clock_cult/clock_mobs/_eminence.dm | 32 ++++++++++++++++++- .../ark_of_the_clockwork_justicar.dm | 2 +- .../clock_structures/eminence_spire.dm | 5 +++ code/game/turfs/simulated/wall/misc_walls.dm | 4 +++ 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm index cc91feeb98..3728520e82 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm @@ -1,3 +1,7 @@ +//Helper proc to get an Eminence mob if it exists +/proc/get_eminence() + return locate(/mob/camera/eminence) in servants_and_ghosts() + //The Eminence is a unique mob that functions like the leader of the cult. It's incorporeal but can interact with the world in several ways. /mob/camera/eminence name = "\the Emininence" @@ -37,9 +41,23 @@ if(prob(166 - (get_dist(src, T) * 33))) T.ratvar_act() //Causes moving to leave a swath of proselytized area behind the Eminence +/mob/camera/eminence/Process_Spacemove(movement_dir = 0) + return TRUE + /mob/camera/eminence/Login() ..() add_servant_of_ratvar(src, TRUE) +<<<<<<< HEAD +======= + var/datum/antagonist/clockcult/C = mind.has_antag_datum(/datum/antagonist/clockcult,TRUE) + if(C && C.clock_team) + if(C.clock_team.eminence) + remove_servant_of_ratvar(src,TRUE) + qdel(src) + return + else + C.clock_team.eminence = src +>>>>>>> 3b37dae... (probably?) Fixes being able to create two Eminences at a time + other Eminence issues (#33634) to_chat(src, "You have been selected as the Eminence!") to_chat(src, "As the Eminence, you lead the servants. Anything you say will be heard by the entire cult.") to_chat(src, "Though you can move through walls, you're also incorporeal, and largely can't interact with the world except for a few ways.") @@ -55,6 +73,12 @@ E.Grant(src) /mob/camera/eminence/say(message) + if(client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, "You cannot send IC messages (muted).") + return + if(client.handle_spam_prevention(message,MUTE_IC)) + return message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) if(!message) return @@ -62,7 +86,13 @@ if(GLOB.ratvar_awakens) visible_message("You feel light slam into your mind and form words: \"[capitalize(message)]\"") playsound(src, 'sound/machines/clockcult/ark_scream.ogg', 50, FALSE) - hierophant_message("The Eminence: \"[message]\"") + message = "The [GLOB.ratvar_awakens ? "Radiance" : "Eminence"]: \"[message]\"" + for(var/mob/M in servants_and_ghosts()) + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + to_chat(M, "[link] [message]") + else + to_chat(M, message) /mob/camera/eminence/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) if(z == ZLEVEL_CITYOFCOGS || is_servant_of_ratvar(speaker) || GLOB.ratvar_approaches || GLOB.ratvar_awakens) //Away from Reebe, the Eminence can't hear anything 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 63fea1eeb6..21d1159541 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 @@ -113,7 +113,7 @@ /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/mass_recall() for(var/V in SSticker.mode.servants_of_ratvar) var/datum/mind/M = V - if(!M.current.stat) + if(M.current.stat != DEAD) M.current.forceMove(get_turf(src)) M.current.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) M.current.clear_fullscreen("flash", 5) diff --git a/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm b/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm index 8d4e936658..a5bc62f554 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm @@ -34,7 +34,12 @@ /obj/structure/destructible/clockwork/eminence_spire/attack_ghost(mob/user) if(!IsAdminGhost(user)) return +<<<<<<< HEAD if(SSticker.mode.eminence) +======= + var/datum/antagonist/clockcult/random_cultist = locate() in GLOB.antagonists //if theres no cultists new team without eminence will be created anyway. + if(random_cultist && random_cultist.clock_team && random_cultist.clock_team.eminence) +>>>>>>> 3b37dae... (probably?) Fixes being able to create two Eminences at a time + other Eminence issues (#33634) to_chat(user, "There's already an Eminence - too late!") return if(!GLOB.servants_active) diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index ecc389af88..0dab10ff92 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -70,6 +70,10 @@ if(realappearence) qdel(realappearence) realappearence = null + if(heated) + var/mob/camera/eminence/E = get_eminence() + if(E) + E.superheated_walls-- return ..() /turf/closed/wall/clockwork/ReplaceWithLattice() From aec1142ca1b40c467f88f0848eff2a48c234caf7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 24 Dec 2017 02:38:37 -0600 Subject: [PATCH 2/3] Update _eminence.dm --- code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm index 3728520e82..f232ba3def 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm @@ -47,8 +47,6 @@ /mob/camera/eminence/Login() ..() add_servant_of_ratvar(src, TRUE) -<<<<<<< HEAD -======= var/datum/antagonist/clockcult/C = mind.has_antag_datum(/datum/antagonist/clockcult,TRUE) if(C && C.clock_team) if(C.clock_team.eminence) @@ -57,7 +55,6 @@ return else C.clock_team.eminence = src ->>>>>>> 3b37dae... (probably?) Fixes being able to create two Eminences at a time + other Eminence issues (#33634) to_chat(src, "You have been selected as the Eminence!") to_chat(src, "As the Eminence, you lead the servants. Anything you say will be heard by the entire cult.") to_chat(src, "Though you can move through walls, you're also incorporeal, and largely can't interact with the world except for a few ways.") From b0671ed78a3df033b2aa367dda35015601cd1c32 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 24 Dec 2017 02:38:47 -0600 Subject: [PATCH 3/3] Update eminence_spire.dm --- .../gamemodes/clock_cult/clock_structures/eminence_spire.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm b/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm index a5bc62f554..0eb8084feb 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/eminence_spire.dm @@ -34,12 +34,8 @@ /obj/structure/destructible/clockwork/eminence_spire/attack_ghost(mob/user) if(!IsAdminGhost(user)) return -<<<<<<< HEAD - if(SSticker.mode.eminence) -======= var/datum/antagonist/clockcult/random_cultist = locate() in GLOB.antagonists //if theres no cultists new team without eminence will be created anyway. if(random_cultist && random_cultist.clock_team && random_cultist.clock_team.eminence) ->>>>>>> 3b37dae... (probably?) Fixes being able to create two Eminences at a time + other Eminence issues (#33634) to_chat(user, "There's already an Eminence - too late!") return if(!GLOB.servants_active)