diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm index 373c2701ce37..0d1bcc99281a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm @@ -215,7 +215,7 @@ if(distance > 2) return - var/list/turf/path = get_line(xeno, hit_target, include_start_atom = FALSE) + var/list/turf/path = get_line(xeno, targeted_atom, include_start_atom = FALSE) for(var/turf/path_turf as anything in path) if(path_turf.density) to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) @@ -237,8 +237,20 @@ if(current_structure.density && !current_structure.throwpass) to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) return - - if(!isxeno_human(hit_target) || xeno.can_not_harm(hit_target) || hit_target.stat == DEAD) + // find a target in the target turf + if(!iscarbon(targeted_atom) || hit_target.stat == DEAD) + for(var/mob/living/carbon/carbonara in get_turf(targeted_atom)) + hit_target = carbonara + if(!xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + break + + if(iscarbon(hit_target) && !xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + if(targeted_atom == hit_target) //reward for a direct hit + to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest") + else + to_chat(xeno, SPAN_XENODANGER("We attack [hit_target] with our tail, throwing it back after stabbing it with our tail!")) + else xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!")) apply_cooldown(cooldown_modifier = 0.2) playsound(xeno, 'sound/effects/alien_tail_swipe1.ogg', 50, TRUE) @@ -247,11 +259,8 @@ // FX var/stab_direction - to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + stab_direction = turn(get_dir(xeno, targeted_atom), 180) playsound(hit_target,'sound/weapons/alien_tail_attack.ogg', 50, TRUE) - - stab_direction = turn(get_dir(xeno, hit_target), 180) - if(hit_target.mob_size < MOB_SIZE_BIG) step_away(hit_target, xeno)