diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index f5b0d8a041..8da545d524 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -14,4 +14,5 @@ GLOBAL_VAR_INIT(cult_vote_called, FALSE) GLOBAL_VAR_INIT(cult_mastered, FALSE) GLOBAL_VAR_INIT(reckoning_complete, FALSE) GLOBAL_VAR_INIT(sac_complete, FALSE) -GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult) \ No newline at end of file +GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult) +GLOBAL_LIST_EMPTY(summon_spots) \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7e6f488a47..8d074ffa17 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -306,7 +306,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." angle = 0 cut_overlays() icon_state = "runed_sense1" - desc = "The sacrifice is complete, bring the wrath of Nar-Sie upon the crew!" + desc = "The sacrifice is complete, summon Nar-Sie! The summoning can only take place in [english_list(GLOB.summon_spots)]!" add_overlay(narnar) return var/turf/P = get_turf(blood_target) diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index ac19a732c9..0cda783b09 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -1,3 +1,5 @@ +#define SUMMON_POSSIBILITIES 3 + /datum/antagonist/cult var/datum/action/innate/cult/comm/communion = new var/datum/action/innate/cult/mastervote/vote = new @@ -35,7 +37,14 @@ message_admins("Cult Sacrifice: Could not find unconvertable or convertable target. WELP!") GLOB.sac_complete = TRUE SSticker.mode.cult_objectives += "sacrifice" - SSticker.mode.cult_objectives += "eldergod" + if(GLOB.summon_spots.len) + SSticker.mode.cult_objectives += "eldergod" + else + while(GLOB.summon_spots.len < SUMMON_POSSIBILITIES) + var/area/summon = pick(GLOB.sortedAreas) + if(summon && (summon.z == ZLEVEL_STATION) && summon.valid_territory) + GLOB.summon_spots |= summon + SSticker.mode.cult_objectives += "eldergod" /datum/antagonist/cult/proc/cult_memorization(datum/mind/cult_mind) var/mob/living/current = cult_mind.current @@ -48,7 +57,7 @@ else explanation = "The veil has already been weakened here, proceed to the final objective." if("eldergod") - explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." + explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie'. The summoning can only be accomplished in [english_list(GLOB.summon_spots)] - where the veil is weak enough for the ritual to begin." if(!silent) to_chat(current, "Objective #[obj_count]: [explanation]") cult_mind.memory += "Objective #[obj_count]: [explanation]
" diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index e292cf5ab3..bf6989e906 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -206,8 +206,8 @@ This file contains the arcane tome files. if(!SSticker.mode.eldergod) to_chat(user, "\"I am already here. There is no need to try to summon me now.\"") return - if((loc.z && loc.z != ZLEVEL_STATION) || !A.blob_allowed) - to_chat(user, "The Geometer is not interested in lesser locations; the station is the prize!") + if(!(A in GLOB.summon_spots)) + to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(GLOB.summon_spots)]!") return var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie; it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") if(confirm_final == "No") @@ -215,7 +215,8 @@ This file contains the arcane tome files. return Turf = get_turf(user) A = get_area(src) - if(!check_rune_turf(Turf, user) || (loc.z && loc.z != ZLEVEL_STATION)|| !A.blob_allowed) + if(!(A in GLOB.summon_spots)) // Check again to make sure they didn't move + to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(GLOB.summon_spots)]!") return priority_announce("Figments from an eldritch god are being summoned by [user] into [A.map_name] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg') for(var/B in spiral_range_turfs(1, user, 1)) @@ -248,8 +249,6 @@ This file contains the arcane tome files. SSblackbox.add_details("cult_runes_scribed", R.cultist_name) /obj/item/weapon/tome/proc/check_rune_turf(turf/T, mob/user) - var/area/A = get_area(T) - if(isspaceturf(T)) to_chat(user, "You cannot scribe runes in space!") return FALSE @@ -262,8 +261,4 @@ This file contains the arcane tome files. to_chat(user, "The veil is not weak enough here.") return FALSE - if(istype(A, /area/shuttle)) - to_chat(user, "Interference from hyperspace engines disrupts the Geometer's power on shuttles.") - return FALSE - return TRUE diff --git a/strings/tips.txt b/strings/tips.txt index 0293e53c14..954b4326fb 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -150,11 +150,11 @@ As a Revolutionary, cargo can be your best friend or your worst nightmare. In th As a Revolutionary, your main power comes from how quickly you spread. Convert people as fast as you can and overwhelm the heads of staff before security can arm up. As a Changeling, the Extract DNA sting counts for your genome absorb objective, but does not let you respec your powers. As a Changeling, you can absorb someone by strangling them and using the Absorb verb; this gives you the ability to rechoose your powers, the DNA of whoever you absorbed, the memory of the absorbed, and some samples of things the absorbed said. -As a Cultist, invest in taking over xenobio, an adamantine golem army can quickly be converted into cultists and constructs. As a Cultist, do not cause too much chaos before your objective is completed. If the shuttle gets called too soon, you may not have enough time to win. As a Cultist, your team starts off very weak, but if necessary can quickly convert everything they have into raw power. Make sure you have the numbers and equipment to support going loud, or the cult will fall flat on its face. As a Cultist, the Blood Boil rune will deal massive amounts of brute damage to non-cultists, stamina damage to Ratvarian scum, and some damage to fellow cultists of Nar-Sie nearby, but will create a fire where the rune stands on use. As a Cultist, you can create an army of manifested goons using a combination of the Manifest rune, which creates homunculi from ghosts, and the Blood Drain rune, which drains life from anyone standing on any blood drain rune. +As a Cultist or Servant, check the alert in the upper-right of your screen for all the details about your cult's current status and objective. As a Servant, your Clockwork Slab fits in pockets and does not need to be held to communicate with other Servants. As a Servant, remember that while the selection of scripture and tools Servant cyborgs get is limited, it is still extremely useful, and some of it is unique; for example, engineering and janitor cyborgs get a proselytizer that can use their own power in addition to its own. As a Servant, the Judicial Visor is an effective defensive combat tool in small spaces, as it stuns and mutes anyone still on it after 3 seconds. It is also useful for stunning already-stunned enemies for long enough to convert them or finish them off. @@ -172,7 +172,6 @@ As a Servant, Volt Void will drain power from nearby Sigils of Transmission to u As a Servant, Fellowship Armory invokes much faster for each nearby servant and attempts to provide each affected servant with powerful armor against melee, bullet, and bomb attacks. The gauntlets provided are also immune to elecricity. As a Servant, Spatial Gateway can teleport to any living Servant or Clockwork Obelisk, and gains additional uses and duration for each Servant assisting in the invocation. As a Servant, creating and activating the Gateway to the Celestial Derelict is your ultimate goal, and you must defend it with all the tools you have available. -As a Servant, once Ratvar has arrived, all of your tools gain a massive boost in power and will, in general, have no cost and work at double speed. As a Servant, you can impale human targets with a Ratvarian Spear by pulling them, then attacking them. This does massive damage and stuns them, and should effectively win the fight. As a Servant, Sentinel's Compromise can instantly return you or another Servant to a fighting state by converting half of all their brute, burn, and oxygen damage to toxin, effectively halving the damage they have. Clockwork Floors will also rapidly heal toxin damage in Servants, allowing the Compromise more effectiveness. As a Servant, Belligerent and Taunting Tirade are extremely powerful for disabling and disrupting large groups of enemies, though they render you somewhat vulnerable, as Belligerent requires that you stand still, and Taunting Tirade makes you extremely obvious.