From cbcc7805fe68ff0f75fdfd0c2fb0303f8efcd39d Mon Sep 17 00:00:00 2001 From: TheKillfish Date: Tue, 13 Aug 2024 15:07:15 +0200 Subject: [PATCH 1/3] Stab stab stab --- .../xenomorph/abilities/general_abilities.dm | 1 + .../xenomorph/abilities/general_powers.dm | 18 +++++++++--------- .../living/carbon/xenomorph/attack_alien.dm | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) 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 b262624bfe01..c2dda810b5f7 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -475,6 +475,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..a82a478b529c 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,8 @@ 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) // So normal and small sized xenos no longer do daze on tail stab + target.apply_effect(3, 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 de0cefeea76d..2e6c374ad816 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -364,9 +364,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 strikes \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) From 4e7fbf8182835c61a9b436bc3be9ecc0cdee1595 Mon Sep 17 00:00:00 2001 From: TheKillfish Date: Tue, 13 Aug 2024 15:30:22 +0200 Subject: [PATCH 2/3] Extra balance idea --- .../mob/living/carbon/xenomorph/abilities/general_powers.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 a82a478b529c..eb7ac8bde612 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -1037,8 +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") - if(stabbing_xeno.mob_size >= MOB_SIZE_BIG) // So normal and small sized xenos no longer do daze on tail stab + 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)) From c1cd663031f35408ec8f508594e647e5ebc28bf2 Mon Sep 17 00:00:00 2001 From: TheKillfish Date: Tue, 13 Aug 2024 16:04:00 +0200 Subject: [PATCH 3/3] Caught a little grammatical oopsie by me --- code/modules/mob/living/carbon/xenomorph/attack_alien.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index 2e6c374ad816..51dde512603a 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -366,7 +366,7 @@ if(health <= 0) 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] strikes \the [src] with its tail!"), SPAN_DANGER("We strikes \the [src] with our 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)