diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm index 5749e3b76e9c..ca16826f3a7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -484,6 +484,7 @@ charge_time = 1 SECONDS xeno_cooldown = 10 SECONDS ability_primacy = XENO_TAIL_STAB + var/stab_range = 2 /// Used for defender's tail 'stab'. var/blunt_stab = FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm index 3b744014c8f8..eb7ac8bde612 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -926,7 +926,7 @@ return FALSE var/distance = get_dist(stabbing_xeno, targetted_atom) - if(distance > 2) + if(distance > stab_range) return FALSE var/list/turf/path = get_line(stabbing_xeno, targetted_atom, include_start_atom = FALSE) @@ -1019,13 +1019,12 @@ target.attack_log += text("\[[time_stamp()]\] was tailstabbed by [key_name(stabbing_xeno)]") stabbing_xeno.attack_log += text("\[[time_stamp()]\] tailstabbed [key_name(target)]") - stabbing_xeno.setDir(stab_direction) - stabbing_xeno.emote("tail") - - /// Ditto. - var/new_dir = stabbing_xeno.dir - - addtimer(CALLBACK(src, PROC_REF(reset_direction), stabbing_xeno, last_dir, new_dir), 0.5 SECONDS) + if(last_dir != stab_direction) + stabbing_xeno.setDir(stab_direction) + stabbing_xeno.emote("tail") + /// Ditto. + var/new_dir = stabbing_xeno.dir + addtimer(CALLBACK(src, PROC_REF(reset_direction), stabbing_xeno, last_dir, new_dir), 0.5 SECONDS) stabbing_xeno.animation_attack_on(target) stabbing_xeno.flick_attack_overlay(target, stab_overlay) @@ -1038,7 +1037,10 @@ damage = stabbing_xeno.behavior_delegate.melee_attack_modify_damage(damage, target) target.apply_armoured_damage(get_xeno_damage_slash(target, damage), ARMOR_MELEE, BRUTE, limb ? limb.name : "chest") - target.apply_effect(3, DAZE) + if(stabbing_xeno.mob_size >= MOB_SIZE_BIG) + target.apply_effect(3, DAZE) + else if(stabbing_xeno.mob_size == MOB_SIZE_XENO) + target.apply_effect(1, DAZE) shake_camera(target, 2, 1) target.handle_blood_splatter(get_dir(owner.loc, target.loc)) diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index 0db94bc8ed45..2c69f984d884 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -366,9 +366,9 @@ if(barricade_hitsound) playsound(src, barricade_hitsound, 25, 1) if(health <= 0) - xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] apart!"), SPAN_DANGER("We stab \the [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + xeno.visible_message(SPAN_DANGER("[xeno] destroys \the [src] with its tail!"), SPAN_DANGER("We destroy \the [src] with our tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) else - xeno.visible_message(SPAN_DANGER("[xeno] stabs \the [src] with its razor sharp tail!"), SPAN_DANGER("We stab \the [src] with our razor sharp tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) + xeno.visible_message(SPAN_DANGER("[xeno] strikes \the [src] with its tail!"), SPAN_DANGER("We strike \the [src] with our tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(is_wired) xeno.visible_message(SPAN_DANGER("The barbed wire slices into \the [xeno]'s tail!"), SPAN_DANGER("The barbed wire slices into our tail!"), null, 5, CHAT_TYPE_XENO_COMBAT) xeno.apply_damage(5)