diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index 5e672fb13c8..a5a299d068c 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -8,9 +8,21 @@
/obj/structure/cult/examine(mob/user)
..()
+ user << "\The [src] is [anchored ? "":"not "]secured to the floor."
if(iscultist(user) && cooldowntime > world.time)
user << "The magic in [src] is weak, it will be ready to use again in [getETA()]."
+/obj/structure/cult/attackby(obj/I, mob/user, params)
+ if(istype(I, /obj/item/weapon/tome) && iscultist(user))
+ anchored = !anchored
+ user << "You [anchored ? "":"un"]secure \the [src] [anchored ? "to":"from"] the floor."
+ if(!anchored)
+ icon_state = "[initial(icon_state)]_off"
+ else
+ icon_state = initial(icon_state)
+ else
+ return ..()
+
/obj/structure/cult/proc/getETA()
var/time = (cooldowntime - world.time)/600
var/eta = "[round(time, 1)] minutes"
@@ -28,6 +40,9 @@
if(!iscultist(user))
user << "You're pretty sure you know exactly what this is used for and you can't seem to touch it."
return
+ if(!anchored)
+ user << "You need to anchor [src] to the floor with a tome first."
+ return
if(cooldowntime > world.time)
user << "The magic in [src] is weak, it will be ready to use again in [getETA()]."
return
@@ -40,7 +55,7 @@
pickedtype = /obj/item/clothing/glasses/night/cultblind
if("Flask of Unholy Water")
pickedtype = /obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater
- if(pickedtype && Adjacent(user) && src && !qdeleted(src) && !user.incapacitated() && cooldowntime <= world.time)
+ if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
var/obj/item/N = new pickedtype(get_turf(src))
user << "You kneel before the altar and your faith is rewarded with an [N]!"
@@ -56,6 +71,9 @@
if(!iscultist(user))
user << "The heat radiating from [src] pushes you back."
return
+ if(!anchored)
+ user << "You need to anchor [src] to the floor with a tome first."
+ return
if(cooldowntime > world.time)
user << "The magic in [src] is weak, it will be ready to use again in [getETA()]."
return
@@ -68,7 +86,7 @@
pickedtype = /obj/item/clothing/suit/hooded/cultrobes/berserker
if("Nar-Sien Hardsuit")
pickedtype = /obj/item/clothing/suit/space/hardsuit/cult
- if(pickedtype && Adjacent(user) && src && !qdeleted(src) && !user.incapacitated() && cooldowntime <= world.time)
+ if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
var/obj/item/N = new pickedtype(get_turf(src))
user << "You work the forge as dark knowledge guides your hands, creating [N]!"
@@ -133,6 +151,9 @@
if(!iscultist(user))
user << "All of these books seem to be gibberish."
return
+ if(!anchored)
+ user << "You need to anchor [src] to the floor with a tome first."
+ return
if(cooldowntime > world.time)
user << "The magic in [src] is weak, it will be ready to use again in [getETA()]."
return
@@ -145,7 +166,7 @@
pickedtype = /obj/item/device/shuttle_curse
if("Veil Shifter")
pickedtype = /obj/item/device/cult_shift
- if(pickedtype && Adjacent(user) && src && !qdeleted(src) && !user.incapacitated() && cooldowntime <= world.time)
+ if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
var/obj/item/N = new pickedtype(get_turf(src))
user << "You summon [N] from the archives!"
diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index 06b82c79c54..de7f5cb0a92 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -17,6 +17,7 @@ This file contains the arcane tome files.
..()
if(iscultist(user) || user.stat == DEAD)
user << "The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar-Sie."
+ user << "Striking a cult structure will unanchor or reanchor it."
user << "Striking another cultist with it will purge holy water from them."
user << "Striking a noncultist, however, will sear their flesh."
diff --git a/icons/obj/cult.dmi b/icons/obj/cult.dmi
index 4b28d871c3e..137773d15b6 100644
Binary files a/icons/obj/cult.dmi and b/icons/obj/cult.dmi differ