diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index ff991c9176a..96d87e65d10 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(prisoncomputer_list, list())
GLOBAL_LIST_INIT(celltimers_list, list()) // list of all cell timers
GLOBAL_LIST_INIT(cell_logs, list())
GLOBAL_LIST_INIT(navigation_computers, list())
+GLOBAL_LIST_INIT(hierophant_walls, list())
GLOBAL_LIST_INIT(all_areas, list())
GLOBAL_LIST_INIT(all_unique_areas, list()) // List of all unique areas. AKA areas with there_can_be_many = FALSE
diff --git a/code/game/turfs/simulated/walls_indestructible.dm b/code/game/turfs/simulated/walls_indestructible.dm
index b5bfda3ddb3..4f8f864f75f 100644
--- a/code/game/turfs/simulated/walls_indestructible.dm
+++ b/code/game/turfs/simulated/walls_indestructible.dm
@@ -79,6 +79,24 @@
icon = 'icons/turf/walls/hierophant_wall.dmi'
icon_state = "wall"
smoothing_flags = SMOOTH_CORNERS
+ baseturf = /turf/simulated/floor/indestructible/hierophant/two
+
+/turf/simulated/wall/indestructible/hierophant/Initialize(mapload)
+ . = ..()
+ GLOB.hierophant_walls += src
+
+/turf/simulated/wall/indestructible/hierophant/BeforeChange()
+ GLOB.hierophant_walls -= src
+ return ..()
+
+
+/turf/simulated/wall/indestructible/hierophant/proc/collapse()
+ if(prob(15))
+ visible_message("[src] starts to rumble and groan as the lights fade on it, and it begins to collapse to rubble!",\
+ "You hear metal groaning and tearing!")
+ ChangeTurf(/turf/simulated/floor/indestructible/hierophant/two)
+ return
+ addtimer(CALLBACK(src, PROC_REF(collapse)), 10 SECONDS)
/turf/simulated/wall/indestructible/sandstone
icon = 'icons/turf/walls/sandstone_wall.dmi'
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index 14cef08ceef..8c952e5f48b 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -405,6 +405,8 @@ Difficulty: Hard
stored_nearby += L // store the people to grant the achievements to once we die
hierophant_burst(null, get_turf(src), 10)
set_stat(CONSCIOUS) // deathgasp wont run if dead, stupid
+ for(var/turf/simulated/wall/indestructible/hierophant/T in GLOB.hierophant_walls)
+ T.collapse()
..(/* force_grant = stored_nearby */)
/mob/living/simple_animal/hostile/megafauna/hierophant/Destroy()
@@ -485,6 +487,13 @@ Difficulty: Hard
burst_range = initial(burst_range) + round(anger_modifier * 0.08)
beam_range = initial(beam_range) + round(anger_modifier * 0.12)
+/mob/living/simple_animal/hostile/megafauna/hierophant/bullet_act(obj/item/projectile/P)
+ if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client)
+ if(P.firer && get_dist(src, P.firer) <= aggro_vision_range)
+ FindTarget(list(P.firer), 1)
+ Goto(P.starting, move_to_delay, 3)
+ ..()
+
//Hierophant overlays
/obj/effect/temp_visual/hierophant
name = "vortex energy"