Make Nar'Sie summoner RED (#14897)

This commit is contained in:
moxian
2020-11-18 10:06:50 -08:00
committed by GitHub
parent e2a7a630ee
commit 3bb704be70
3 changed files with 33 additions and 29 deletions
+31 -24
View File
@@ -122,6 +122,10 @@
if(!keyword)
return
// Check everything again, in case they moved
if(!can_scribe(user))
return
// Check if the rune is allowed
var/area/A = get_area(src)
var/turf/runeturf = get_turf(user)
@@ -131,40 +135,43 @@
to_chat(user, "<span class='cultitalic'>The veil is not weak enough here to summon a cultist, you must be on station!</span>")
return
var/old_color = user.color // we'll temporarily redden the user for better feedback to fellow cultists. Store this to revert them back.
if(narsie_rune)
if(!narsie_rune_check(user, A))
return // don't do shit
else
var/list/summon_areas = gamemode.cult_objs.obj_summon.summon_spots
if(!(A in summon_areas)) // Check again to make sure they didn't move
to_chat(user, "<span class='cultlarge'>The ritual can only begin where the veil is weak - in [english_list(summon_areas)]!</span>")
return
GLOB.command_announcement.Announce("Figments from an eldritch god are being summoned into the [A.map_name] from an unknown dimension. Disrupt the ritual at all costs, before the station is destroyed! Space law and SOP are suspended. The entire crew must kill cultists on sight.", "Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg')
for(var/I in spiral_range_turfs(1, user, 1))
var/turf/T = I
var/obj/machinery/shield/cult/narsie/N = new(T)
shields |= N
// Check everything again, in case they moved
if(!can_scribe(user))
return
var/list/summon_areas = gamemode.cult_objs.obj_summon.summon_spots
if(!(A in summon_areas)) // Check again to make sure they didn't move
to_chat(user, "<span class='cultlarge'>The ritual can only begin where the veil is weak - in [english_list(summon_areas)]!</span>")
return
GLOB.command_announcement.Announce("Figments from an eldritch god are being summoned into the [A.map_name] from an unknown dimension. Disrupt the ritual at all costs, before the station is destroyed! Space law and SOP are suspended. The entire crew must kill cultists on sight.", "Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg')
for(var/I in spiral_range_turfs(1, user, 1))
var/turf/T = I
var/obj/machinery/shield/cult/narsie/N = new(T)
shields |= N
user.color = "red"
// Draw the rune
var/mob/living/carbon/human/H = user
H.cult_self_harm(initial(rune.scribe_damage), TRUE)
if(!do_after(user, initial(rune.scribe_delay) * scribe_multiplier, target = runeturf))
for(var/V in shields) // Only used for the 'Tear Veil' rune
var/obj/machinery/shield/S = V
if(S && !QDELETED(S))
qdel(S)
H.cult_self_harm(initial(rune.scribe_damage))
var/others_message
if(!narsie_rune)
others_message = "<span class='warning'>[user] cuts [user.p_their()] body and begins writing in [user.p_their()] own blood!</span>"
else
others_message = "<span class='biggerdanger'>[user] cuts [user.p_their()] body and begins writing something particularly ominous in [user.p_their()] own blood!</span>"
user.visible_message(others_message,
"<span class='cultitalic'>You slice open your body and begin drawing a sigil of [SSticker.cultdat.entity_title3].</span>")
var/scribe_successful = do_after(user, initial(rune.scribe_delay) * scribe_multiplier, target = runeturf)
for(var/V in shields) // Only used for the 'Tear Veil' rune
var/obj/machinery/shield/S = V
if(S && !QDELETED(S))
qdel(S)
user.color = old_color
if(!scribe_successful)
return
user.visible_message("<span class='warning'>[user] creates a strange circle in [user.p_their()] own blood.</span>",
"<span class='cultitalic'>You finish drawing the arcane markings of [SSticker.cultdat.entity_title3].</span>")
for(var/V in shields) // Only for the 'Tear Veil' rune
var/obj/machinery/shield/S = V
if(S && !QDELETED(S))
qdel(S)
var/obj/effect/rune/R = new rune(runeturf, keyword)
if(narsie_rune)
@@ -74,7 +74,7 @@
return TRUE
//Called when drawing cult runes/using cult spells. Deal damage to a random arm/hand, or chest if not there.
/mob/living/carbon/cult_self_harm(damage, rune_message = FALSE)
/mob/living/carbon/cult_self_harm(damage)
var/dam_zone = pick("l_arm", "l_hand", "r_arm", "r_hand")
var/obj/item/organ/external/affecting = get_organ(dam_zone)
if(!affecting)
@@ -82,6 +82,3 @@
if(!affecting) //bruh where's your chest
return FALSE
apply_damage(damage, BRUTE, affecting)
if(rune_message)
visible_message("<span class='warning'>[src] cuts open [src.p_their()] [affecting.name] and begins writing in [src.p_their()] own blood!</span>",
"<span class='cultitalic'>You slice open your [affecting.name] and begin drawing a sigil of [SSticker.cultdat.entity_title3].</span>")
+1 -1
View File
@@ -358,5 +358,5 @@
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
return TRUE
/mob/living/proc/cult_self_harm(damage, rune_message = FALSE)
/mob/living/proc/cult_self_harm(damage)
return FALSE