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"