diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index de7f5cb0a92..41b9e8c59d5 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -203,21 +203,35 @@ This file contains the arcane tome files.
if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated())
return
if(ispath(rune_to_scribe, /obj/effect/rune/narsie))
- var/confirm_final = alert(usr, "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")
- usr << "On second thought, we should prepare further for the final battle..."
+ if(ticker.mode.name == "cult")
+ var/datum/game_mode/cult/cult_mode = ticker.mode
+ if(!("eldergod" in cult_mode.cult_objectives))
+ user << "Nar-Sie does not wish to be summoned!"
+ return
+ else if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in sacrificed))
+ user << "The sacrifice is not complete. The portal would lack the power to open if you tried!"
+ return
+ else if(!cult_mode.eldergod)
+ user << "\"I am already here. There is no need to try to summon me now.\""
+ 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")
+ user << "You decide to prepare further before scribing the rune."
+ return
+ var/area/A = get_area(src)
+ var/locname = initial(A.name)
+ priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
+ for(var/B in spiral_range_turfs(1, user, 1))
+ var/turf/T = B
+ var/obj/machinery/shield/N = new(T)
+ N.name = "Rune-Scriber's Shield"
+ N.desc = "A potent shield summoned by cultists to protect them while they prepare the final ritual"
+ N.icon_state = "shield-red"
+ N.health = 60
+ shields |= N
+ else
+ user << "Nar-Sie does not wish to be summoned!"
return
- var/area/A = get_area(src)
- var/locname = initial(A.name)
- priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
- for(var/B in spiral_range_turfs(1, user, 1))
- var/turf/T = B
- var/obj/machinery/shield/N = new(T)
- N.name = "Rune-Scriber's Shield"
- N.desc = "A potent shield summoned by cultists to protect them while they prepare the final ritual"
- N.icon_state = "shield-red"
- N.health = 60
- shields |= N
user.visible_message("[user] cuts open their arm and begins writing in their own blood!", \
"You slice open your arm and begin drawing a sigil of the Geometer.")
user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm"))
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 64b6e1c6517..ba4d77b455c 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -458,28 +458,8 @@ var/list/teleport_runes = list()
/obj/effect/rune/narsie/invoke(var/list/invokers)
if(used)
return
- var/mob/living/user = invokers[1]
if(ticker.mode.name == "cult")
var/datum/game_mode/cult/cult_mode = ticker.mode
- if(!("eldergod" in cult_mode.cult_objectives))
- message_admins("[user.real_name]([user.ckey]) tried to summon Nar-Sie when the objective was wrong")
- for(var/M in invokers)
- var/mob/living/L = M
- L << "\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\""
- if(L.reagents)
- L.reagents.add_reagent("hell_water", 10)
- L.Weaken(7)
- L.Stun(7)
- fail_invoke()
- log_game("Summon Nar-Sie rune failed - improper objective")
- return
- else
- if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in sacrificed))
- for(var/M in invokers)
- M << "The sacrifice is not complete. The portal lacks the power to open!"
- fail_invoke()
- log_game("Summon Nar-Sie rune failed - sacrifice not complete")
- return
if(!cult_mode.eldergod)
for(var/M in invokers)
M << "Nar-Sie is already on this plane!"