Merge pull request #13738 from DeltaFire15/heretic-tweaks
Updates the heretics gamemode with a bunch of changes from /tg/
This commit is contained in:
@@ -70,6 +70,7 @@
|
|||||||
|
|
||||||
///Heretics --
|
///Heretics --
|
||||||
#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic))
|
#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic))
|
||||||
|
#define IS_HERETIC_MONSTER(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic_monster))
|
||||||
|
|
||||||
#define PATH_SIDE "Side"
|
#define PATH_SIDE "Side"
|
||||||
|
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
timeout = 3 MINUTES
|
timeout = 3 MINUTES
|
||||||
|
|
||||||
/datum/mood_event/gates_of_mansus
|
/datum/mood_event/gates_of_mansus
|
||||||
description = "<span class='boldwarning'>LIVING IN A PERFORMANCE IS WORSE THAN DEATH</span>\n"
|
description = "<span class='boldwarning'>I HAD A GLIMPSE OF THE HORROR BEYOND THIS WORLD. REALITY UNCOILED BEFORE MY EYES!</span>\n"
|
||||||
mood_change = -25
|
mood_change = -25
|
||||||
timeout = 4 MINUTES
|
timeout = 4 MINUTES
|
||||||
|
|
||||||
|
|||||||
@@ -586,7 +586,7 @@
|
|||||||
|
|
||||||
var/list/mob/living/targets = list()
|
var/list/mob/living/targets = list()
|
||||||
for(var/mob/living/potential_target in oview(owner, 1))
|
for(var/mob/living/potential_target in oview(owner, 1))
|
||||||
if(IS_HERETIC(potential_target) || potential_target.mind?.has_antag_datum(/datum/antagonist/heretic_monster))
|
if(IS_HERETIC(potential_target) || IS_HERETIC_MONSTER(potential_target))
|
||||||
continue
|
continue
|
||||||
targets += potential_target
|
targets += potential_target
|
||||||
if(LAZYLEN(targets))
|
if(LAZYLEN(targets))
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
///Gives you a charge and destroys a corresponding influence
|
///Gives you a charge and destroys a corresponding influence
|
||||||
/obj/item/forbidden_book/proc/get_power_from_influence(atom/target, mob/user)
|
/obj/item/forbidden_book/proc/get_power_from_influence(atom/target, mob/user)
|
||||||
var/obj/effect/reality_smash/RS = target
|
var/obj/effect/reality_smash/RS = target
|
||||||
to_chat(target, "<span class='danger'>You start drawing power from influence...</span>")
|
to_chat(user, "<span class='danger'>You start drawing power from influence...</span>")
|
||||||
if(do_after(user,10 SECONDS,TRUE,RS))
|
if(do_after(user,10 SECONDS,TRUE,RS))
|
||||||
qdel(RS)
|
qdel(RS)
|
||||||
charge += 1
|
charge += 1
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
for(var/turf/T in range(1,target))
|
for(var/turf/T in range(1,target))
|
||||||
if(is_type_in_typecache(T, blacklisted_turfs))
|
if(is_type_in_typecache(T, blacklisted_turfs))
|
||||||
to_chat(target, "<span class='warning'>The terrain doesn't support runes!</span>")
|
to_chat(user, "<span class='warning'>The terrain doesn't support runes!</span>")
|
||||||
return
|
return
|
||||||
var/A = get_turf(target)
|
var/A = get_turf(target)
|
||||||
to_chat(user, "<span class='danger'>You start drawing a rune...</span>")
|
to_chat(user, "<span class='danger'>You start drawing a rune...</span>")
|
||||||
|
|||||||
@@ -8,6 +8,12 @@
|
|||||||
///Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
|
///Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
|
||||||
var/is_in_use = FALSE
|
var/is_in_use = FALSE
|
||||||
|
|
||||||
|
/obj/effect/eldritch/Initialize()
|
||||||
|
. = ..()
|
||||||
|
var/image/I = image(icon = 'icons/effects/eldritch.dmi', icon_state = null, loc = src)
|
||||||
|
I.override = TRUE
|
||||||
|
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "heretic_rune", I)
|
||||||
|
|
||||||
/obj/effect/eldritch/attack_hand(mob/living/user)
|
/obj/effect/eldritch/attack_hand(mob/living/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(.)
|
if(.)
|
||||||
@@ -69,6 +75,7 @@
|
|||||||
if(is_type_in_list(local_atom_in_range,local_required_atom_list))
|
if(is_type_in_list(local_atom_in_range,local_required_atom_list))
|
||||||
selected_atoms |= local_atom_in_range
|
selected_atoms |= local_atom_in_range
|
||||||
local_required_atoms -= list(local_required_atom_list)
|
local_required_atoms -= list(local_required_atom_list)
|
||||||
|
break
|
||||||
|
|
||||||
if(length(local_required_atoms) > 0)
|
if(length(local_required_atoms) > 0)
|
||||||
continue
|
continue
|
||||||
@@ -190,6 +197,19 @@
|
|||||||
icon_state = "pierced_illusion"
|
icon_state = "pierced_illusion"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||||
|
alpha = 0
|
||||||
|
invisibility = INVISIBILITY_OBSERVER
|
||||||
|
|
||||||
|
/obj/effect/broken_illusion/Initialize()
|
||||||
|
. = ..()
|
||||||
|
addtimer(CALLBACK(src, .proc/show_presence), 15 SECONDS)
|
||||||
|
var/image/I = image(icon = 'icons/effects/eldritch.dmi', icon_state = null, loc = src)
|
||||||
|
I.override = TRUE
|
||||||
|
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "pierced_reality", I)
|
||||||
|
|
||||||
|
/obj/effect/broken_illusion/proc/show_presence()
|
||||||
|
invisibility = 0
|
||||||
|
animate(src, alpha = 255, time = 15 SECONDS)
|
||||||
|
|
||||||
/obj/effect/broken_illusion/attack_hand(mob/living/user)
|
/obj/effect/broken_illusion/attack_hand(mob/living/user)
|
||||||
if(!ishuman(user))
|
if(!ishuman(user))
|
||||||
@@ -228,17 +248,19 @@
|
|||||||
explosion.start()
|
explosion.start()
|
||||||
|
|
||||||
/obj/effect/broken_illusion/examine(mob/user)
|
/obj/effect/broken_illusion/examine(mob/user)
|
||||||
|
. = ..()
|
||||||
if(!IS_HERETIC(user) && ishuman(user))
|
if(!IS_HERETIC(user) && ishuman(user))
|
||||||
var/mob/living/carbon/human/human_user = user
|
var/mob/living/carbon/human/human_user = user
|
||||||
to_chat(human_user,"<span class='userdanger'>Your brain hurts when you look at this!</span>")
|
to_chat(human_user,"<span class='userdanger'>Your brain hurts when you look at this!</span>")
|
||||||
human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN,30)
|
human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN,20,190)
|
||||||
. = ..()
|
SEND_SIGNAL(human_user, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus)
|
||||||
|
|
||||||
/obj/effect/reality_smash
|
/obj/effect/reality_smash
|
||||||
name = "/improper reality smash"
|
name = "/improper reality smash"
|
||||||
icon = 'icons/effects/eldritch.dmi'
|
icon = 'icons/effects/eldritch.dmi'
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||||
|
invisibility = INVISIBILITY_OBSERVER
|
||||||
///We cannot use icon_state since this is invisible, functions the same way but with custom behaviour.
|
///We cannot use icon_state since this is invisible, functions the same way but with custom behaviour.
|
||||||
var/image_state = "reality_smash"
|
var/image_state = "reality_smash"
|
||||||
///Who can see us?
|
///Who can see us?
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
return
|
return
|
||||||
var/dist = get_dist(user.loc,target.loc)
|
var/dist = get_dist(user.loc,target.loc)
|
||||||
var/dir = get_dir(user.loc,target.loc)
|
var/dir = get_dir(user.loc,target.loc)
|
||||||
|
|
||||||
if(user.z != target.z)
|
if(user.z != target.z)
|
||||||
to_chat(user,"<span class='warning'>[target.real_name] is beyond our reach.</span>")
|
to_chat(user,"<span class='warning'>[target.real_name] is on another plane of existance!</span>")
|
||||||
else
|
else
|
||||||
switch(dist)
|
switch(dist)
|
||||||
if(0 to 15)
|
if(0 to 15)
|
||||||
@@ -33,6 +33,34 @@
|
|||||||
if(target.stat == DEAD)
|
if(target.stat == DEAD)
|
||||||
to_chat(user,"<span class='warning'>[target.real_name] is dead. Bring them onto a transmutation rune!</span>")
|
to_chat(user,"<span class='warning'>[target.real_name] is dead. Bring them onto a transmutation rune!</span>")
|
||||||
|
|
||||||
|
/datum/action/innate/heretic_shatter
|
||||||
|
name = "Shattering Offer"
|
||||||
|
desc = "By breaking your blade, you will be granted salvation from a dire situation. (Teleports you to a random safe turf on your current z level, but destroys your blade.)"
|
||||||
|
background_icon_state = "bg_ecult"
|
||||||
|
button_icon_state = "shatter"
|
||||||
|
icon_icon = 'icons/mob/actions/actions_ecult.dmi'
|
||||||
|
check_flags = MOBILITY_HOLD|MOBILITY_MOVE|MOBILITY_USE
|
||||||
|
var/mob/living/carbon/human/holder
|
||||||
|
var/obj/item/melee/sickly_blade/sword
|
||||||
|
|
||||||
|
/datum/action/innate/heretic_shatter/Grant(mob/user, obj/object)
|
||||||
|
sword = object
|
||||||
|
holder = user
|
||||||
|
//i know what im doing
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/datum/action/innate/heretic_shatter/IsAvailable()
|
||||||
|
if(IS_HERETIC(holder) || IS_HERETIC_MONSTER(holder))
|
||||||
|
return TRUE
|
||||||
|
else
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
/datum/action/innate/heretic_shatter/Activate()
|
||||||
|
var/turf/safe_turf = find_safe_turf(zlevels = sword.z, extended_safety_checks = TRUE)
|
||||||
|
do_teleport(holder,safe_turf,forceMove = TRUE)
|
||||||
|
to_chat(holder,"<span class='warning'>You feel a gust of energy flow through your body... the Rusted Hills heard your call...</span>")
|
||||||
|
qdel(sword)
|
||||||
|
|
||||||
/obj/item/melee/sickly_blade
|
/obj/item/melee/sickly_blade
|
||||||
name = "eldritch blade"
|
name = "eldritch blade"
|
||||||
desc = "A sickly green crescent blade, decorated with an ornamental eye. You feel like you're being watched..."
|
desc = "A sickly green crescent blade, decorated with an ornamental eye. You feel like you're being watched..."
|
||||||
@@ -50,15 +78,28 @@
|
|||||||
throwforce = 10
|
throwforce = 10
|
||||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "tore", "lacerated", "ripped", "diced", "rended")
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "tore", "lacerated", "ripped", "diced", "rended")
|
||||||
|
var/datum/action/innate/heretic_shatter/linked_action
|
||||||
|
|
||||||
|
/obj/item/melee/sickly_blade/Initialize()
|
||||||
|
. = ..()
|
||||||
|
linked_action = new(src)
|
||||||
|
|
||||||
/obj/item/melee/sickly_blade/attack(mob/living/M, mob/living/user)
|
/obj/item/melee/sickly_blade/attack(mob/living/M, mob/living/user)
|
||||||
if(!IS_HERETIC(user))
|
if(!(IS_HERETIC(user) || !IS_HERETIC_MONSTER(user)))
|
||||||
to_chat(user,"<span class='danger'>You feel a pulse of some alien intellect lash out at your mind!</span>")
|
to_chat(user,"<span class='danger'>You feel a pulse of some alien intellect lash out at your mind!</span>")
|
||||||
var/mob/living/carbon/human/human_user = user
|
var/mob/living/carbon/human/human_user = user
|
||||||
human_user.AdjustParalyzed(5 SECONDS)
|
human_user.AdjustParalyzed(5 SECONDS)
|
||||||
return FALSE
|
return FALSE
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/melee/sickly_blade/pickup(mob/user)
|
||||||
|
. = ..()
|
||||||
|
linked_action.Grant(user, src)
|
||||||
|
|
||||||
|
/obj/item/melee/sickly_blade/dropped(mob/user, silent)
|
||||||
|
. = ..()
|
||||||
|
linked_action.Remove(user, src)
|
||||||
|
|
||||||
/obj/item/melee/sickly_blade/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
/obj/item/melee/sickly_blade/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||||
. = ..()
|
. = ..()
|
||||||
var/datum/antagonist/heretic/cultie = user.mind.has_antag_datum(/datum/antagonist/heretic)
|
var/datum/antagonist/heretic/cultie = user.mind.has_antag_datum(/datum/antagonist/heretic)
|
||||||
@@ -103,7 +144,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/neck/eldritch_amulet/equipped(mob/user, slot)
|
/obj/item/clothing/neck/eldritch_amulet/equipped(mob/user, slot)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(ishuman(user) && user.mind && slot == SLOT_NECK && IS_HERETIC(user))
|
if(ishuman(user) && user.mind && slot == SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user)))
|
||||||
ADD_TRAIT(user, trait, CLOTHING_TRAIT)
|
ADD_TRAIT(user, trait, CLOTHING_TRAIT)
|
||||||
user.update_sight()
|
user.update_sight()
|
||||||
|
|
||||||
|
|||||||
@@ -264,12 +264,19 @@
|
|||||||
if(!LH.target)
|
if(!LH.target)
|
||||||
var/datum/objective/A = new
|
var/datum/objective/A = new
|
||||||
A.owner = user.mind
|
A.owner = user.mind
|
||||||
var/datum/mind/targeted = A.find_target()//easy way, i dont feel like copy pasting that entire block of code
|
var/list/targets = list()
|
||||||
LH.target = targeted.current
|
for(var/i in 0 to 3)
|
||||||
|
var/datum/mind/targeted = A.find_target()//easy way, i dont feel like copy pasting that entire block of code
|
||||||
|
if(!targeted)
|
||||||
|
break
|
||||||
|
targets[targeted.current.real_name] = targeted.current
|
||||||
|
LH.target = targets[input(user,"Choose your next target","Target") in targets]
|
||||||
|
|
||||||
|
if(!LH.target && targets.len)
|
||||||
|
LH.target = pick(targets) //Tsk tsk, you can and will get another target if you want it or not.
|
||||||
qdel(A)
|
qdel(A)
|
||||||
if(LH.target)
|
if(LH.target)
|
||||||
to_chat(user,"<span class='warning'>Your new target has been selected, go and sacrifice [LH.target.real_name]!</span>")
|
to_chat(user,"<span class='warning'>Your new target has been selected, go and sacrifice [LH.target.real_name]!</span>")
|
||||||
|
|
||||||
else
|
else
|
||||||
to_chat(user,"<span class='warning'>target could not be found for living heart.</span>")
|
to_chat(user,"<span class='warning'>target could not be found for living heart.</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
desc = "Touch spell that allows you to channel the power of the Old Gods through you."
|
desc = "Touch spell that allows you to channel the power of the Old Gods through you."
|
||||||
hand_path = /obj/item/melee/touch_attack/mansus_fist
|
hand_path = /obj/item/melee/touch_attack/mansus_fist
|
||||||
school = "evocation"
|
school = "evocation"
|
||||||
charge_max = 150
|
charge_max = 100
|
||||||
clothes_req = FALSE
|
clothes_req = FALSE
|
||||||
action_icon = 'icons/mob/actions/actions_ecult.dmi'
|
action_icon = 'icons/mob/actions/actions_ecult.dmi'
|
||||||
action_icon_state = "mansus_grasp"
|
action_icon_state = "mansus_grasp"
|
||||||
@@ -104,57 +104,61 @@
|
|||||||
desc = "Spreads rust onto nearby turfs."
|
desc = "Spreads rust onto nearby turfs."
|
||||||
range = 2
|
range = 2
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/targeted/touch/blood_siphon
|
/obj/effect/proc_holder/spell/pointed/blood_siphon
|
||||||
name = "Blood Siphon"
|
name = "Blood Siphon"
|
||||||
desc = "Touch spell that heals you while damaging the enemy, has a chance to transfer wounds between you and your enemy."
|
desc = "A touch spell that heals your wounds while damaging the enemy. It has a chance to transfer wounds between you and your enemy."
|
||||||
hand_path = /obj/item/melee/touch_attack/blood_siphon
|
|
||||||
school = "evocation"
|
school = "evocation"
|
||||||
charge_max = 150
|
charge_max = 150
|
||||||
clothes_req = FALSE
|
clothes_req = FALSE
|
||||||
invocation_type = "none"
|
invocation = "FL'MS O'ET'RN'ITY"
|
||||||
|
invocation_type = "whisper"
|
||||||
action_icon = 'icons/mob/actions/actions_ecult.dmi'
|
action_icon = 'icons/mob/actions/actions_ecult.dmi'
|
||||||
action_icon_state = "blood_siphon"
|
action_icon_state = "blood_siphon"
|
||||||
action_background_icon_state = "bg_ecult"
|
action_background_icon_state = "bg_ecult"
|
||||||
|
range = 9
|
||||||
|
|
||||||
/obj/item/melee/touch_attack/blood_siphon
|
/obj/effect/proc_holder/spell/pointed/blood_siphon/cast(list/targets, mob/user)
|
||||||
name = "Blood Siphon"
|
. = ..()
|
||||||
desc = "A sinister looking aura that distorts the flow of reality around it."
|
var/target = targets[1]
|
||||||
color = RUNE_COLOR_RED
|
playsound(user, 'sound/magic/demon_attack1.ogg', 75, TRUE)
|
||||||
icon_state = "disintegrate"
|
|
||||||
item_state = "disintegrate"
|
|
||||||
catchphrase = "SUN'AI'KINI'MAS"
|
|
||||||
|
|
||||||
/obj/item/melee/touch_attack/blood_siphon/afterattack(atom/target, mob/user, proximity_flag, proximity)
|
|
||||||
if(!proximity_flag)
|
|
||||||
return
|
|
||||||
playsound(user, 'sound/effects/curseattack.ogg', 75, TRUE)
|
|
||||||
if(ishuman(target))
|
if(ishuman(target))
|
||||||
var/mob/living/carbon/human/tar = target
|
var/mob/living/carbon/human/tar = target
|
||||||
if(tar.anti_magic_check())
|
if(tar.anti_magic_check())
|
||||||
tar.visible_message("<span class='danger'>Spell bounces off of [target]!</span>","<span class='danger'>The spell bounces off of you!</span>")
|
tar.visible_message("<span class='danger'>The spell bounces off of [target]!</span>","<span class='danger'>The spell bounces off of you!</span>")
|
||||||
return ..()
|
return ..()
|
||||||
var/mob/living/carbon/C2 = user
|
var/mob/living/carbon/carbon_user = user
|
||||||
if(isliving(target))
|
if(isliving(target))
|
||||||
var/mob/living/L = target
|
var/mob/living/living_target = target
|
||||||
L.adjustBruteLoss(20)
|
living_target.adjustBruteLoss(20)
|
||||||
C2.adjustBruteLoss(-20)
|
carbon_user.adjustBruteLoss(-20)
|
||||||
if(iscarbon(target))
|
if(iscarbon(target))
|
||||||
var/mob/living/carbon/C1 = target
|
var/mob/living/carbon/carbon_target = target
|
||||||
for(var/obj/item/bodypart/bodypart in C2.bodyparts)
|
for(var/bp in carbon_user.bodyparts)
|
||||||
|
var/obj/item/bodypart/bodypart = bp
|
||||||
for(var/i in bodypart.wounds)
|
for(var/i in bodypart.wounds)
|
||||||
var/datum/wound/iter_wound = i
|
var/datum/wound/iter_wound = i
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
continue
|
continue
|
||||||
var/obj/item/bodypart/target_bodypart = locate(bodypart.type) in C1.bodyparts
|
var/obj/item/bodypart/target_bodypart = locate(bodypart.type) in carbon_target.bodyparts
|
||||||
if(!target_bodypart)
|
if(!target_bodypart)
|
||||||
continue
|
continue
|
||||||
iter_wound.remove_wound()
|
iter_wound.remove_wound()
|
||||||
iter_wound.apply_wound(target_bodypart)
|
iter_wound.apply_wound(target_bodypart)
|
||||||
|
|
||||||
C1.blood_volume -= 20
|
carbon_target.blood_volume -= 20
|
||||||
if(C2.blood_volume < BLOOD_VOLUME_MAXIMUM) //we dont want to explode after all
|
if(carbon_user.blood_volume < BLOOD_VOLUME_MAXIMUM) //we dont want to explode after all
|
||||||
C2.blood_volume += 20
|
carbon_user.blood_volume += 20
|
||||||
return ..()
|
return
|
||||||
|
|
||||||
|
/obj/effect/proc_holder/spell/pointed/blood_siphon/can_target(atom/target, mob/user, silent)
|
||||||
|
. = ..()
|
||||||
|
if(!.)
|
||||||
|
return FALSE
|
||||||
|
if(!istype(target,/mob/living))
|
||||||
|
if(!silent)
|
||||||
|
to_chat(user, "<span class='warning'>You are unable to siphon [target]!</span>")
|
||||||
|
return FALSE
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/aimed/rust_wave
|
/obj/effect/proc_holder/spell/aimed/rust_wave
|
||||||
name = "Patron's Reach"
|
name = "Patron's Reach"
|
||||||
@@ -451,7 +455,7 @@
|
|||||||
new /obj/effect/hotspot(T)
|
new /obj/effect/hotspot(T)
|
||||||
T.hotspot_expose(700,50,1)
|
T.hotspot_expose(700,50,1)
|
||||||
for(var/mob/living/livies in T.contents - centre)
|
for(var/mob/living/livies in T.contents - centre)
|
||||||
livies.adjustFireLoss(10)
|
livies.adjustFireLoss(5)
|
||||||
_range++
|
_range++
|
||||||
sleep(3)
|
sleep(3)
|
||||||
|
|
||||||
@@ -500,7 +504,7 @@
|
|||||||
new /obj/effect/hotspot(T)
|
new /obj/effect/hotspot(T)
|
||||||
T.hotspot_expose(700,50,1)
|
T.hotspot_expose(700,50,1)
|
||||||
for(var/mob/living/livies in T.contents - current_user)
|
for(var/mob/living/livies in T.contents - current_user)
|
||||||
livies.adjustFireLoss(5)
|
livies.adjustFireLoss(2.5)
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/targeted/worm_contract
|
/obj/effect/proc_holder/spell/targeted/worm_contract
|
||||||
@@ -519,6 +523,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(!istype(user,/mob/living/simple_animal/hostile/eldritch/armsy))
|
if(!istype(user,/mob/living/simple_animal/hostile/eldritch/armsy))
|
||||||
to_chat(user, "<span class='userdanger'>You try to contract your muscles but nothing happens...</span>")
|
to_chat(user, "<span class='userdanger'>You try to contract your muscles but nothing happens...</span>")
|
||||||
|
return
|
||||||
var/mob/living/simple_animal/hostile/eldritch/armsy/armsy = user
|
var/mob/living/simple_animal/hostile/eldritch/armsy/armsy = user
|
||||||
armsy.contract_next_chain_into_single_tile()
|
armsy.contract_next_chain_into_single_tile()
|
||||||
|
|
||||||
@@ -727,7 +732,7 @@
|
|||||||
|
|
||||||
/obj/effect/proc_holder/spell/cone/staggered/entropic_plume/do_mob_cone_effect(mob/living/victim, level)
|
/obj/effect/proc_holder/spell/cone/staggered/entropic_plume/do_mob_cone_effect(mob/living/victim, level)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(victim.anti_magic_check() || IS_HERETIC(victim) || victim.mind?.has_antag_datum(/datum/antagonist/heretic_monster))
|
if(victim.anti_magic_check() || IS_HERETIC(victim) || IS_HERETIC_MONSTER(victim))
|
||||||
return
|
return
|
||||||
victim.apply_status_effect(STATUS_EFFECT_AMOK)
|
victim.apply_status_effect(STATUS_EFFECT_AMOK)
|
||||||
victim.apply_status_effect(STATUS_EFFECT_CLOUDSTRUCK, (level*10))
|
victim.apply_status_effect(STATUS_EFFECT_CLOUDSTRUCK, (level*10))
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
required_atoms = list(/mob/living/carbon/human)
|
required_atoms = list(/mob/living/carbon/human)
|
||||||
cost = 5
|
cost = 5
|
||||||
route = PATH_ASH
|
route = PATH_ASH
|
||||||
var/list/trait_list = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_BOMBIMMUNE)
|
var/list/trait_list = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE)
|
||||||
|
|
||||||
/datum/eldritch_knowledge/final/ash_final/on_finished_recipe(mob/living/user, list/atoms, loc)
|
/datum/eldritch_knowledge/final/ash_final/on_finished_recipe(mob/living/user, list/atoms, loc)
|
||||||
priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# Fear the blaze, for Ashbringer [user.real_name] has come! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg')
|
priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# Fear the blaze, for Ashbringer [user.real_name] has come! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg')
|
||||||
|
|||||||
@@ -173,9 +173,9 @@
|
|||||||
/datum/eldritch_knowledge/summon/stalker
|
/datum/eldritch_knowledge/summon/stalker
|
||||||
name = "Lonely Ritual"
|
name = "Lonely Ritual"
|
||||||
gain_text = "I was able to combine my greed and desires to summon an eldritch beast I have not seen before."
|
gain_text = "I was able to combine my greed and desires to summon an eldritch beast I have not seen before."
|
||||||
desc = "You can now summon a Stalker using a knife, a flower, a pen and a piece of paper using a transmutation circle. Stalkers possess the ability to shapeshift into various forms while assuming the vigor and powers of that form."
|
desc = "You can now summon a Stalker using a knife, a candle, a pen and a piece of paper using a transmutation circle. Stalkers possess the ability to shapeshift into various forms while assuming the vigor and powers of that form."
|
||||||
cost = 1
|
cost = 1
|
||||||
required_atoms = list(/obj/item/kitchen/knife,/obj/item/reagent_containers/food/snacks/grown/poppy,/obj/item/pen,/obj/item/paper)
|
required_atoms = list(/obj/item/kitchen/knife,/obj/item/candle,/obj/item/pen,/obj/item/paper)
|
||||||
mob_to_summon = /mob/living/simple_animal/hostile/eldritch/stalker
|
mob_to_summon = /mob/living/simple_animal/hostile/eldritch/stalker
|
||||||
next_knowledge = list(/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/summon/rusty,/datum/eldritch_knowledge/flesh_blade_upgrade_2)
|
next_knowledge = list(/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/summon/rusty,/datum/eldritch_knowledge/flesh_blade_upgrade_2)
|
||||||
route = PATH_FLESH
|
route = PATH_FLESH
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
gain_text = "Our blood is all the same after all, the owl told me."
|
gain_text = "Our blood is all the same after all, the owl told me."
|
||||||
desc = "You are granted a spell that drains some of the targets health, and returns it to you. It also has a chance to transfer any wounds you possess onto the target."
|
desc = "You are granted a spell that drains some of the targets health, and returns it to you. It also has a chance to transfer any wounds you possess onto the target."
|
||||||
cost = 1
|
cost = 1
|
||||||
spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/blood_siphon
|
spell_to_add = /obj/effect/proc_holder/spell/pointed/blood_siphon
|
||||||
next_knowledge = list(/datum/eldritch_knowledge/summon/raw_prophet,/datum/eldritch_knowledge/spell/area_conversion)
|
next_knowledge = list(/datum/eldritch_knowledge/summon/raw_prophet,/datum/eldritch_knowledge/spell/area_conversion)
|
||||||
|
|
||||||
/datum/eldritch_knowledge/final/flesh_final
|
/datum/eldritch_knowledge/final/flesh_final
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Reference in New Issue
Block a user