diff --git a/Content.Shared/CombatMode/CombatModeComponent.cs b/Content.Shared/CombatMode/CombatModeComponent.cs
index 124a682d5c..8e8ffbc53b 100644
--- a/Content.Shared/CombatMode/CombatModeComponent.cs
+++ b/Content.Shared/CombatMode/CombatModeComponent.cs
@@ -48,5 +48,19 @@ public sealed partial class CombatModeComponent : Component
///
[DataField, AutoNetworkedField]
public bool ToggleMouseRotator = true;
+
+ // WD EDIT START
+ ///
+ /// If true, sets to 1 degree and
+ /// to false when the owner enters combatmode. This is currently being tested as of 06.12.24,
+ /// so a simple bool switch should suffice.
+ /// Leaving AutoNetworking just in case shitmins need to disable it for someone. Will only take effect when re-enabling combat mode.
+ ///
+ ///
+ /// No effect if is false.
+ ///
+ [DataField, AutoNetworkedField]
+ public bool SmoothRotation = true;
+ // WD EDIT END
}
}
diff --git a/Content.Shared/CombatMode/SharedCombatModeSystem.cs b/Content.Shared/CombatMode/SharedCombatModeSystem.cs
index 60d1362bb0..60b31a00a2 100644
--- a/Content.Shared/CombatMode/SharedCombatModeSystem.cs
+++ b/Content.Shared/CombatMode/SharedCombatModeSystem.cs
@@ -92,7 +92,14 @@ private void SetMouseRotatorComponents(EntityUid uid, bool value)
{
if (value)
{
- EnsureComp(uid);
+ var rot = EnsureComp(uid);
+ // WD EDIT START
+ if (TryComp(uid, out var comp) && comp.SmoothRotation) // no idea under which (intended) circumstances this can fail (if any), so i'll avoid Comp<>().
+ {
+ rot.AngleTolerance = Angle.FromDegrees(1); // arbitrary
+ rot.Simple4DirMode = false;
+ }
+ // WD EDIT END
EnsureComp(uid);
}
else
diff --git a/Content.Shared/MouseRotator/MouseRotatorComponent.cs b/Content.Shared/MouseRotator/MouseRotatorComponent.cs
index 2844b3cb8b..39b82a0405 100644
--- a/Content.Shared/MouseRotator/MouseRotatorComponent.cs
+++ b/Content.Shared/MouseRotator/MouseRotatorComponent.cs
@@ -1,4 +1,4 @@
-using System.Numerics;
+using System.Numerics;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;