diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 7ebbdad514e..22719303693 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -121,13 +121,10 @@ Difficulty: Very Hard ..() /mob/living/simple_animal/hostile/megafauna/colossus/proc/enrage(mob/living/L) - var/enraged = FALSE if(ishuman(L)) var/mob/living/carbon/human/H = L if(H.martial_art && prob(H.martial_art.deflection_chance)) - enraged = TRUE - - return enraged + . = TRUE /mob/living/simple_animal/hostile/megafauna/colossus/proc/alternating_dir_shots() dir_shots(diagonals) @@ -188,15 +185,15 @@ Difficulty: Very Hard else counter++ if(counter > 16) - counter = 0 - if(counter < 0) + counter = 1 + if(counter < 1) counter = 16 shoot_projectile(marker) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, 1) sleep(1) /mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker) - if(!marker) + if(!marker || marker == loc) return var/turf/startloc = get_turf(src) var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc) @@ -221,6 +218,7 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/megafauna/colossus/proc/blast() playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2) var/turf/T = get_turf(target) + newtonian_move(get_dir(T, targets_from)) for(var/turf/turf in range(1, T)) shoot_projectile(turf) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 74320f6c062..e5da7f76ca2 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -84,10 +84,13 @@ var/mob/living/L = target if(blocked != 100) // not completely blocked if(damage && L.blood_volume && damage_type == BRUTE) + var/splatter_dir = dir + if(starting) + splatter_dir = get_dir(starting, target_loca) if(isalien(L)) - PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter, list(target_loca, dir)) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter, list(target_loca, splatter_dir)) else - PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(target_loca, dir)) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(target_loca, splatter_dir)) if(prob(33)) L.add_splatter_floor(target_loca) else if(impact_effect_type)