mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Fixed being able to use Cult 3.0 runes that you shouldn't already have access to (#20738)
* limit act * nullrod * gne * aaaaaa
This commit is contained in:
@@ -24,6 +24,9 @@ var/veil_thickness = CULT_PROLOGUE
|
|||||||
for (var/obj/structure/cult/spire/S in cult_spires)
|
for (var/obj/structure/cult/spire/S in cult_spires)
|
||||||
S.upgrade()
|
S.upgrade()
|
||||||
|
|
||||||
|
for (var/obj/effect/rune/R in rune_list)
|
||||||
|
R.update_icon()
|
||||||
|
|
||||||
/proc/spawn_bloodstones(var/turf/source = null)
|
/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
|
//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
|
//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)
|
for (var/obj/structure/cult/spire/S in cult_spires)
|
||||||
S.upgrade()
|
S.upgrade()
|
||||||
|
|
||||||
|
for (var/obj/effect/rune/R in rune_list)
|
||||||
|
R.update_icon()
|
||||||
|
|
||||||
if (istype(new_obj,/datum/objective/bloodcult_bloodbath))
|
if (istype(new_obj,/datum/objective/bloodcult_bloodbath))
|
||||||
var/datum/objective/bloodcult_bloodbath/O = new_obj
|
var/datum/objective/bloodcult_bloodbath/O = new_obj
|
||||||
O.max_bloodspill = max(O.max_bloodspill,bloody_floors.len)
|
O.max_bloodspill = max(O.max_bloodspill,bloody_floors.len)
|
||||||
|
|||||||
@@ -72,16 +72,19 @@
|
|||||||
user.whisper(text)
|
user.whisper(text)
|
||||||
|
|
||||||
/datum/rune_spell/proc/pre_cast()
|
/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, "<span class='danger'>The veil is still too thick for you to draw power from this rune.</span>")
|
||||||
|
return
|
||||||
//checking whether we're casting from a rune or a talisman.
|
//checking whether we're casting from a rune or a talisman.
|
||||||
if (istype (spell_holder,/obj/effect/rune))
|
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)
|
abort(RITUALABORT_STAND)
|
||||||
else
|
else
|
||||||
invoke(user,invocation)
|
invoke(activator,invocation)
|
||||||
cast()
|
cast()
|
||||||
else if (istype (spell_holder,/obj/item/weapon/talisman))
|
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()
|
cast_talisman()
|
||||||
|
|
||||||
/datum/rune_spell/proc/midcast(var/mob/add_cultist)
|
/datum/rune_spell/proc/midcast(var/mob/add_cultist)
|
||||||
|
|||||||
@@ -68,15 +68,31 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
..() //Whack their shit regardless. It's an obsidian rod, it breaks skulls
|
..() //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)
|
if(!prox_flag)
|
||||||
return
|
return
|
||||||
user.delayNextAttack(8)
|
|
||||||
if(istype(A, /turf/simulated/floor))
|
if(istype(A, /turf/simulated/floor))
|
||||||
to_chat(user, "<span class='notice'>You hit the floor with the [src].</span>")
|
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)
|
||||||
call(/obj/effect/rune/proc/revealrunes)(src)
|
animation.alpha = 0
|
||||||
*/
|
animate(animation, alpha = 255, time = 2)
|
||||||
|
animate(alpha = 0, time = 3)
|
||||||
|
user.delayNextAttack(8)
|
||||||
|
to_chat(user, "<span class='notice'>You hit \the [A] with \the [src].</span>")
|
||||||
|
var/found = 0
|
||||||
|
for(var/obj/effect/rune/R in range(1,A))
|
||||||
|
found = 1
|
||||||
|
R.reveal()
|
||||||
|
if (found)
|
||||||
|
to_chat(user, "<span class='warning'>Arcane markings suddenly glow from underneath a thin layer of dust!</span>")
|
||||||
|
found = 0
|
||||||
|
for(var/obj/structure/cult/S in range(1,A))
|
||||||
|
found = 1
|
||||||
|
S.reveal()
|
||||||
|
if (found)
|
||||||
|
to_chat(user, "<span class='warning'>A structure suddenly emerges from the ground!</span>")
|
||||||
|
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)
|
/obj/item/weapon/nullrod/pickup(mob/living/user as mob)
|
||||||
if(user.mind)
|
if(user.mind)
|
||||||
if(user.mind.assigned_role == "Chaplain")
|
if(user.mind.assigned_role == "Chaplain")
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
var/health = 50
|
var/health = 50
|
||||||
var/tmp/busy = 0
|
var/tmp/busy = 0
|
||||||
var/list/valid_types = list(/obj/item/weapon/book, \
|
var/list/valid_types = list(/obj/item/weapon/book, \
|
||||||
|
/obj/item/weapon/tome, \
|
||||||
/obj/item/weapon/tome_legacy, \
|
/obj/item/weapon/tome_legacy, \
|
||||||
/obj/item/weapon/spellbook, \
|
/obj/item/weapon/spellbook, \
|
||||||
/obj/item/weapon/storage/bible)
|
/obj/item/weapon/storage/bible)
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 567 KiB After Width: | Height: | Size: 575 KiB |
Reference in New Issue
Block a user