diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index a4648b5fac6..ec7a51d7df7 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -100,16 +100,17 @@ if((last_shot + heal_delay) <= world.time) last_shot = world.time for(var/mob/living/L in range(5, src)) - if(iscultist(L)) - var/mob/living/carbon/human/H = L - if(istype(H)) - L.adjustBruteLoss(-1, 0) - L.adjustFireLoss(-1, 0) - L.updatehealth() - if(istype(L, /mob/living/simple_animal/hostile/construct)) - var/mob/living/simple_animal/M = L - if(M.health < M.maxHealth) - M.adjustHealth(-2) + if(iscultist(L) || istype(L, /mob/living/simple_animal/shade) || istype(L, /mob/living/simple_animal/hostile/construct)) + if(L.health != L.maxHealth) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(src), "#960000")) + if(ishuman(L)) + L.adjustBruteLoss(-1, 0) + L.adjustFireLoss(-1, 0) + L.updatehealth() + if(istype(L, /mob/living/simple_animal/shade) || istype(L, /mob/living/simple_animal/hostile/construct)) + var/mob/living/simple_animal/M = L + if(M.health < M.maxHealth) + M.adjustHealth(-2) if(corruption.len) var/turf/T = pick_n_take(corruption) corruption -= T diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index dfb1f8c5656..c929d74e5ca 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -43,10 +43,12 @@ icon_state = "heal" duration = 15 -/obj/effect/overlay/temp/heal/New() +/obj/effect/overlay/temp/heal/New(loc, colour) ..() pixel_x = rand(-12, 12) pixel_y = rand(-9, 0) + if(colour) + color = colour /obj/effect/overlay/temp/explosion name = "explosion" diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index 419e9fdcb25..612206fe4ae 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -103,6 +103,8 @@ return /obj/item/weapon/gun/medbeam/proc/on_beam_tick(var/mob/living/target) + if(target.health != target.maxHealth) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(target), "#80F5FF")) target.adjustBruteLoss(-4) target.adjustFireLoss(-4) return