diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult.dm b/code/datums/gamemode/factions/bloodcult/bloodcult.dm index 67c307a9b3d..086f222379a 100644 --- a/code/datums/gamemode/factions/bloodcult/bloodcult.dm +++ b/code/datums/gamemode/factions/bloodcult/bloodcult.dm @@ -24,6 +24,9 @@ var/veil_thickness = CULT_PROLOGUE for (var/obj/structure/cult/spire/S in cult_spires) S.upgrade() + for (var/obj/effect/rune/R in rune_list) + R.update_icon() + /proc/spawn_bloodstones(var/turf/source = null) //Called at the beginning of ACT III, this is basically the cult's declaration of war on the crew //Spawns 4 structures, one in each quarters of the station @@ -234,6 +237,9 @@ var/veil_thickness = CULT_PROLOGUE for (var/obj/structure/cult/spire/S in cult_spires) S.upgrade() + for (var/obj/effect/rune/R in rune_list) + R.update_icon() + if (istype(new_obj,/datum/objective/bloodcult_bloodbath)) var/datum/objective/bloodcult_bloodbath/O = new_obj O.max_bloodspill = max(O.max_bloodspill,bloody_floors.len) diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm index 2638230b9ae..69a6db3d6be 100644 --- a/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm +++ b/code/datums/gamemode/factions/bloodcult/bloodcult_runespells.dm @@ -72,16 +72,19 @@ user.whisper(text) /datum/rune_spell/proc/pre_cast() - var/mob/living/user = activator + //checking whether we're in the proper Act + if (Act_restriction > veil_thickness) + to_chat(activator, "The veil is still too thick for you to draw power from this rune.") + return //checking whether we're casting from a rune or a talisman. if (istype (spell_holder,/obj/effect/rune)) - if ((rune_flags & RUNE_STAND) && (user.loc != spell_holder.loc)) + if ((rune_flags & RUNE_STAND) && (activator.loc != spell_holder.loc)) abort(RITUALABORT_STAND) else - invoke(user,invocation) + invoke(activator,invocation) cast() else if (istype (spell_holder,/obj/item/weapon/talisman)) - invoke(user,invocation,1)//talisman incantations are whispered + invoke(activator,invocation,1)//talisman incantations are whispered cast_talisman() /datum/rune_spell/proc/midcast(var/mob/add_cultist) diff --git a/code/game/objects/items/weapons/null_rod.dm b/code/game/objects/items/weapons/null_rod.dm index 718e08660cd..fa3493ee2dc 100644 --- a/code/game/objects/items/weapons/null_rod.dm +++ b/code/game/objects/items/weapons/null_rod.dm @@ -68,15 +68,31 @@ */ ..() //Whack their shit regardless. It's an obsidian rod, it breaks skulls -/* -/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob, prox_flag, params) + +/obj/item/weapon/nullrod/afterattack(var/atom/A, var/mob/user, var/prox_flag, var/params) if(!prox_flag) return - user.delayNextAttack(8) if(istype(A, /turf/simulated/floor)) - to_chat(user, "You hit the floor with the [src].") - call(/obj/effect/rune/proc/revealrunes)(src) -*/ + var/atom/movable/overlay/animation = anim(target = A, a_icon = 'icons/effects/96x96.dmi', a_icon_state = "nullcheck", lay = NARSIE_GLOW, offX = -WORLD_ICON_SIZE, offY = -WORLD_ICON_SIZE, plane = LIGHTING_PLANE) + animation.alpha = 0 + animate(animation, alpha = 255, time = 2) + animate(alpha = 0, time = 3) + user.delayNextAttack(8) + to_chat(user, "You hit \the [A] with \the [src].") + var/found = 0 + for(var/obj/effect/rune/R in range(1,A)) + found = 1 + R.reveal() + if (found) + to_chat(user, "Arcane markings suddenly glow from underneath a thin layer of dust!") + found = 0 + for(var/obj/structure/cult/S in range(1,A)) + found = 1 + S.reveal() + if (found) + to_chat(user, "A structure suddenly emerges from the ground!") + call(/obj/effect/rune_legacy/proc/revealrunes)(src)//revealing legacy runes as well because why not + /obj/item/weapon/nullrod/pickup(mob/living/user as mob) if(user.mind) if(user.mind.assigned_role == "Chaplain") diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index b0801cb4c70..3abc57357b6 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -24,6 +24,7 @@ var/health = 50 var/tmp/busy = 0 var/list/valid_types = list(/obj/item/weapon/book, \ + /obj/item/weapon/tome, \ /obj/item/weapon/tome_legacy, \ /obj/item/weapon/spellbook, \ /obj/item/weapon/storage/bible) diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index e29bd68f61f..853cacc23ed 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ