From ac2d162c53f04775ebf13c638ffe690fe5284321 Mon Sep 17 00:00:00 2001 From: Aviu00 <93730715+Aviu00@users.noreply.github.com> Date: Sat, 24 Feb 2024 19:06:23 +0900 Subject: [PATCH] - tweak: Better backstabbing. (#115) --- .../_White/BetrayalDagger/BackstabSystem.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Content.Shared/_White/BetrayalDagger/BackstabSystem.cs b/Content.Shared/_White/BetrayalDagger/BackstabSystem.cs index 876c253216..ce29ff946f 100644 --- a/Content.Shared/_White/BetrayalDagger/BackstabSystem.cs +++ b/Content.Shared/_White/BetrayalDagger/BackstabSystem.cs @@ -1,6 +1,5 @@ using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; -using Content.Shared.Examine; using Content.Shared.Mobs.Components; using Content.Shared.Popups; using Content.Shared.Weapons.Melee.Events; @@ -34,13 +33,12 @@ public sealed class BackstabSystem : EntitySystem !TryComp(target, out TransformComponent? xform)) return; - var rot1 = _transform.GetWorldRotation(args.User).FlipPositive(); - var rot2 = _transform.GetWorldRotation(xform).FlipPositive(); - var tol = ent.Comp.Tolerance; + var userXform = Transform(args.User); + var v1 = (_transform.GetWorldRotation(xform) + MathHelper.PiOver2).ToVec(); // Flipped WorldVec + var v2 = _transform.GetWorldPosition(userXform) - _transform.GetWorldPosition(xform); + var angle = Vector3.CalculateAngle(new Vector3(v1), new Vector3(v2)); - if (!MathHelper.CloseTo(rot1, rot2, tol) && - !MathHelper.CloseTo(rot1, rot2 + MathHelper.TwoPi, tol) && - !MathHelper.CloseTo(rot1 + MathHelper.TwoPi, rot2, tol)) + if (angle > ent.Comp.Tolerance.Theta) return; var damage = args.BaseDamage.GetTotal() * ent.Comp.DamageMultiplier;