Merge pull request #1028 from Citadel-Station-13/upstream-merge-27366
[MIRROR] Buffs hierophant club
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
//The chests dropped by mob spawner tendrils. Also contains associated loot.
|
//The chests dropped by mob spawner tendrils. Also contains associated loot.
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/closet/crate/necropolis
|
/obj/structure/closet/crate/necropolis
|
||||||
name = "necropolis chest"
|
name = "necropolis chest"
|
||||||
desc = "It's watching you closely."
|
desc = "It's watching you closely."
|
||||||
@@ -820,7 +821,9 @@
|
|||||||
timer = world.time + cooldown_time
|
timer = world.time + cooldown_time
|
||||||
if(isliving(target) && chaser_timer <= world.time) //living and chasers off cooldown? fire one!
|
if(isliving(target) && chaser_timer <= world.time) //living and chasers off cooldown? fire one!
|
||||||
chaser_timer = world.time + chaser_cooldown
|
chaser_timer = world.time + chaser_cooldown
|
||||||
new /obj/effect/overlay/temp/hierophant/chaser(get_turf(user), user, target, chaser_speed, friendly_fire_check)
|
var/obj/effect/overlay/temp/hierophant/chaser/C = new(get_turf(user), user, target, chaser_speed, friendly_fire_check)
|
||||||
|
C.damage = 30
|
||||||
|
C.monster_damage_boost = FALSE
|
||||||
add_logs(user, target, "fired a chaser at", src)
|
add_logs(user, target, "fired a chaser at", src)
|
||||||
else
|
else
|
||||||
INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) //otherwise, just do cardinal blast
|
INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) //otherwise, just do cardinal blast
|
||||||
@@ -940,10 +943,10 @@
|
|||||||
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(T, user)
|
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(T, user)
|
||||||
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(source, user)
|
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(source, user)
|
||||||
for(var/t in RANGE_TURFS(1, T))
|
for(var/t in RANGE_TURFS(1, T))
|
||||||
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, user, TRUE) //blasts produced will not hurt allies
|
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, user, TRUE) //No friendly fire, this is a utility tool
|
||||||
B.damage = 30
|
B.damage = 30
|
||||||
for(var/t in RANGE_TURFS(1, source))
|
for(var/t in RANGE_TURFS(1, source))
|
||||||
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, user, TRUE) //but absolutely will hurt enemies
|
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, user, TRUE)
|
||||||
B.damage = 30
|
B.damage = 30
|
||||||
for(var/mob/living/L in range(1, source))
|
for(var/mob/living/L in range(1, source))
|
||||||
INVOKE_ASYNC(src, .proc/teleport_mob, source, L, T, user) //regardless, take all mobs near us along
|
INVOKE_ASYNC(src, .proc/teleport_mob, source, L, T, user) //regardless, take all mobs near us along
|
||||||
@@ -1004,7 +1007,9 @@
|
|||||||
for(var/i in 1 to range)
|
for(var/i in 1 to range)
|
||||||
if(!J)
|
if(!J)
|
||||||
return
|
return
|
||||||
new /obj/effect/overlay/temp/hierophant/blast(J, user, friendly_fire_check)
|
var/obj/effect/overlay/temp/hierophant/blast/B = new(J, user, friendly_fire_check)
|
||||||
|
B.damage = 30
|
||||||
|
B.monster_damage_boost = FALSE
|
||||||
previousturf = J
|
previousturf = J
|
||||||
J = get_step(previousturf, dir)
|
J = get_step(previousturf, dir)
|
||||||
|
|
||||||
@@ -1015,4 +1020,5 @@
|
|||||||
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
||||||
sleep(2)
|
sleep(2)
|
||||||
for(var/t in RANGE_TURFS(1, T))
|
for(var/t in RANGE_TURFS(1, T))
|
||||||
new /obj/effect/overlay/temp/hierophant/blast(t, user, friendly_fire_check)
|
var/obj/effect/overlay/temp/hierophant/blast/B = new(t, user, friendly_fire_check)
|
||||||
|
B.damage = 15 //keeps monster damage boost due to lower damage
|
||||||
|
|||||||
@@ -478,6 +478,8 @@ Difficulty: Hard
|
|||||||
var/speed = 3 //how many deciseconds between each step
|
var/speed = 3 //how many deciseconds between each step
|
||||||
var/currently_seeking = FALSE
|
var/currently_seeking = FALSE
|
||||||
var/friendly_fire_check = FALSE //if blasts produced apply friendly fire
|
var/friendly_fire_check = FALSE //if blasts produced apply friendly fire
|
||||||
|
var/monster_damage_boost = TRUE
|
||||||
|
var/damage = 10
|
||||||
|
|
||||||
/obj/effect/overlay/temp/hierophant/chaser/Initialize(mapload, new_caster, new_target, new_speed, is_friendly_fire)
|
/obj/effect/overlay/temp/hierophant/chaser/Initialize(mapload, new_caster, new_target, new_speed, is_friendly_fire)
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -521,9 +523,10 @@ Difficulty: Hard
|
|||||||
moving--
|
moving--
|
||||||
sleep(speed)
|
sleep(speed)
|
||||||
targetturf = get_turf(target)
|
targetturf = get_turf(target)
|
||||||
|
|
||||||
/obj/effect/overlay/temp/hierophant/chaser/proc/make_blast()
|
/obj/effect/overlay/temp/hierophant/chaser/proc/make_blast()
|
||||||
new /obj/effect/overlay/temp/hierophant/blast(loc, caster, friendly_fire_check)
|
var/obj/effect/overlay/temp/hierophant/blast/B = new(loc, caster, friendly_fire_check)
|
||||||
|
B.damage = damage
|
||||||
|
B.monster_damage_boost = monster_damage_boost
|
||||||
|
|
||||||
/obj/effect/overlay/temp/hierophant/telegraph
|
/obj/effect/overlay/temp/hierophant/telegraph
|
||||||
icon = 'icons/effects/96x96.dmi'
|
icon = 'icons/effects/96x96.dmi'
|
||||||
@@ -553,6 +556,7 @@ Difficulty: Hard
|
|||||||
desc = "Get out of the way!"
|
desc = "Get out of the way!"
|
||||||
duration = 9
|
duration = 9
|
||||||
var/damage = 10 //how much damage do we do?
|
var/damage = 10 //how much damage do we do?
|
||||||
|
var/monster_damage_boost = TRUE //do we deal extra damage to monsters? Used by the boss
|
||||||
var/list/hit_things = list() //we hit these already, ignore them
|
var/list/hit_things = list() //we hit these already, ignore them
|
||||||
var/friendly_fire_check = FALSE
|
var/friendly_fire_check = FALSE
|
||||||
var/bursting = FALSE //if we're bursting and need to hit anyone crossing us
|
var/bursting = FALSE //if we're bursting and need to hit anyone crossing us
|
||||||
@@ -595,7 +599,7 @@ Difficulty: Hard
|
|||||||
var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg"))
|
var/limb_to_hit = L.get_bodypart(pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg"))
|
||||||
var/armor = L.run_armor_check(limb_to_hit, "melee", "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!")
|
var/armor = L.run_armor_check(limb_to_hit, "melee", "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!")
|
||||||
L.apply_damage(damage, BURN, limb_to_hit, armor)
|
L.apply_damage(damage, BURN, limb_to_hit, armor)
|
||||||
if(ismegafauna(L) || istype(L, /mob/living/simple_animal/hostile/asteroid))
|
if(monster_damage_boost && (ismegafauna(L) || istype(L, /mob/living/simple_animal/hostile/asteroid)))
|
||||||
L.adjustBruteLoss(damage)
|
L.adjustBruteLoss(damage)
|
||||||
add_logs(caster, L, "struck with a [name]")
|
add_logs(caster, L, "struck with a [name]")
|
||||||
for(var/obj/mecha/M in T.contents - hit_things) //and mechs.
|
for(var/obj/mecha/M in T.contents - hit_things) //and mechs.
|
||||||
|
|||||||
Reference in New Issue
Block a user