diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index 51c8803cee..274273fdcf 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -185,6 +185,9 @@ structure_check() searches for nearby cultist structures required for the invoca
color = RUNE_COLOR_OFFER
req_cultists = 1
rune_in_use = FALSE
+ var/mob/living/currentconversionman
+ var/conversiontimeout
+ var/conversionresult
/obj/effect/rune/convert/do_invoke_glow()
return
@@ -241,6 +244,21 @@ structure_check() searches for nearby cultist structures required for the invoca
to_chat(M, "Something is shielding [convertee]'s mind!")
log_game("Offer rune failed - convertee had anti-magic")
return 0
+ to_chat(convertee, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \
+ and something evil takes root.")
+ to_chat(convertee, "Do you wish to embrace the Geometer of Blood? Click here to stop resisting the truth. Or you could choose to continue resisting...")
+ currentconversionman = convertee
+ conversiontimeout = world.time + (10 SECONDS)
+ convertee.Stun(100)
+ conversionresult = FALSE
+ while(world.time < conversiontimeout && convertee && !conversionresult)
+ stoplag(1)
+ currentconversionman = null
+ if(convertee && get_turf(convertee) != get_turf(src))
+ return FALSE
+ if(!conversionresult && convertee)
+ do_sacrifice(convertee, invokers)
+ return FALSE
var/brutedamage = convertee.getBruteLoss()
var/burndamage = convertee.getFireLoss()
if(brutedamage || burndamage)
@@ -252,8 +270,6 @@ structure_check() searches for nearby cultist structures required for the invoca
SSticker.mode.add_cultist(convertee.mind, 1)
new /obj/item/melee/cultblade/dagger(get_turf(src))
convertee.mind.special_role = ROLE_CULTIST
- to_chat(convertee, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \
- and something evil takes root.")
to_chat(convertee, "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\
")
if(ishuman(convertee))
@@ -313,6 +329,12 @@ structure_check() searches for nearby cultist structures required for the invoca
sacrificial.gib()
return TRUE
+/obj/effect/rune/convert/Topic(href, href_list)
+ if(href_list["signmeup"])
+ if(currentconversionman == usr)
+ conversionresult = TRUE
+ else
+ to_chat(usr, "Your fate has already been set in stone.")
/obj/effect/rune/empower
@@ -442,9 +464,9 @@ structure_check() searches for nearby cultist structures required for the invoca
//Ritual of Dimensional Rending: Calls forth the avatar of Nar'Sie upon the station.
/obj/effect/rune/narsie
cultist_name = "Nar'Sie"
- cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers."
+ cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers, minus one for every 3 sacrifices."
invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!"
- req_cultists = 9
+ req_cultists = 1
icon = 'icons/effects/96x96.dmi'
color = RUNE_COLOR_DARKRED
icon_state = "rune_large"
@@ -471,6 +493,10 @@ structure_check() searches for nearby cultist structures required for the invoca
if(!is_station_level(z))
return
var/mob/living/user = invokers[1]
+ if(invokers.len < 9 - (GLOB.sacrificed.len * 0.35))
+ to_chat(user, "You need at least [(9 - (GLOB.sacrificed.len * 0.35)) - invokers.len] more adjacent cultists to use this rune in such a manner.")
+ fail_invoke()
+ return
var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives
var/area/place = get_area(src)