diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 4999f796c5..9e4996135d 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -1,5 +1,6 @@ //The chests dropped by mob spawner tendrils. Also contains associated loot. + /obj/structure/closet/crate/necropolis name = "necropolis chest" desc = "It's watching you closely." @@ -820,7 +821,9 @@ timer = world.time + cooldown_time if(isliving(target) && chaser_timer <= world.time) //living and chasers off cooldown? fire one! 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) else 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(source, user) 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 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 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 @@ -1004,7 +1007,9 @@ for(var/i in 1 to range) if(!J) 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 J = get_step(previousturf, dir) @@ -1015,4 +1020,5 @@ playsound(T,'sound/effects/bin_close.ogg', 200, 1) sleep(2) 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 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 03f8ce63cf..79ac234ab9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -478,6 +478,8 @@ Difficulty: Hard var/speed = 3 //how many deciseconds between each step var/currently_seeking = FALSE 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) . = ..() @@ -521,9 +523,10 @@ Difficulty: Hard moving-- sleep(speed) targetturf = get_turf(target) - /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 icon = 'icons/effects/96x96.dmi' @@ -553,6 +556,7 @@ Difficulty: Hard desc = "Get out of the way!" duration = 9 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/friendly_fire_check = FALSE 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/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) - 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) add_logs(caster, L, "struck with a [name]") for(var/obj/mecha/M in T.contents - hit_things) //and mechs.