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)