From 4c11600eb3632d1150cec5c9f2b4688f134f7cac Mon Sep 17 00:00:00 2001
From: NekoTiki <17910933+nekotiki@users.noreply.github.com>
Date: Fri, 1 Aug 2025 23:24:31 +0200
Subject: [PATCH 1/7] feat: Add option for random behavior on pull trigger
Signed-off-by: NekoTiki <17910933+nekotiki@users.noreply.github.com>
---
ShockOsc/Config/SharedBehaviourConfig.cs | 1 +
ShockOsc/Services/ShockOsc.cs | 12 ++++++++++++
ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor | 10 ++++++++++
ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor | 10 ++++++++++
4 files changed, 33 insertions(+)
diff --git a/ShockOsc/Config/SharedBehaviourConfig.cs b/ShockOsc/Config/SharedBehaviourConfig.cs
index cf9cd18..8b4ecff 100644
--- a/ShockOsc/Config/SharedBehaviourConfig.cs
+++ b/ShockOsc/Config/SharedBehaviourConfig.cs
@@ -16,4 +16,5 @@ public class SharedBehaviourConfig
public BoneAction WhenBoneReleased { get; set; } = BoneAction.Shock;
public uint? BoneHeldDurationLimit { get; set; } = null;
+ public bool OnPullTriggerRandomBehavior { get; set; }
}
\ No newline at end of file
diff --git a/ShockOsc/Services/ShockOsc.cs b/ShockOsc/Services/ShockOsc.cs
index 122e0f8..837e6a7 100644
--- a/ShockOsc/Services/ShockOsc.cs
+++ b/ShockOsc/Services/ShockOsc.cs
@@ -14,6 +14,7 @@
using OpenShock.ShockOSC.Utils;
using OscQueryLibrary;
using OscQueryLibrary.Utils;
+using Serilog;
#pragma warning disable CS4014
@@ -404,6 +405,17 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
{
programGroup.TriggerMethod = TriggerMethod.None;
+ var pullTriggerBehavior = _moduleConfig.Config.GetGroupOrGlobal(programGroup,
+ behaviourConfig => behaviourConfig.OnPullTriggerRandomBehavior,
+ group => group.OverrideIntensity);
+
+ if (pullTriggerBehavior)
+ {
+ SendCommand(programGroup, GetDuration(programGroup), GetIntensity(programGroup), ControlType.Shock, false);
+
+ return;
+ }
+
// When the stretch value is not 0, we send the action
if (programGroup.LastStretchValue != 0)
{
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
index b4035bb..26f80d2 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
@@ -68,6 +68,16 @@
OnSaveAction="_ => OnSettingsValueChange()">
Max Intensity: @ModuleConfig.Config.Behaviour.IntensityRange.Max%
+
+
+
+
+
+
+
+
+
+
}
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
index b0a183d..e1b135c 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
@@ -228,6 +228,16 @@
OnSaveAction="_ => ModuleConfig.SaveDeferred()">
Max Intensity: @CurrentGroup.IntensityRange.Max%
+
+
+
+
+
+
+
+
+
+
}
From d6f6c5d5e28e5a2d4c41044f9ac6d528c464fbd1 Mon Sep 17 00:00:00 2001
From: NekoTiki <17910933+NekoTiki@users.noreply.github.com>
Date: Sat, 2 Aug 2025 22:39:37 +0200
Subject: [PATCH 2/7] fix: pull trigger random behavior was skipping the check
for the Preconditions being met
Signed-off-by: NekoTiki <17910933+NekoTiki@users.noreply.github.com>
---
ShockOsc/Services/ShockOsc.cs | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/ShockOsc/Services/ShockOsc.cs b/ShockOsc/Services/ShockOsc.cs
index 837e6a7..c8c5ebe 100644
--- a/ShockOsc/Services/ShockOsc.cs
+++ b/ShockOsc/Services/ShockOsc.cs
@@ -405,17 +405,6 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
{
programGroup.TriggerMethod = TriggerMethod.None;
- var pullTriggerBehavior = _moduleConfig.Config.GetGroupOrGlobal(programGroup,
- behaviourConfig => behaviourConfig.OnPullTriggerRandomBehavior,
- group => group.OverrideIntensity);
-
- if (pullTriggerBehavior)
- {
- SendCommand(programGroup, GetDuration(programGroup), GetIntensity(programGroup), ControlType.Shock, false);
-
- return;
- }
-
// When the stretch value is not 0, we send the action
if (programGroup.LastStretchValue != 0)
{
@@ -423,6 +412,17 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
// Check all preconditions, maybe send stop command here aswell?
if (!await HandlePrecondition(CheckAndSetAllPreconditions(programGroup), programGroup)) return;
+ var pullTriggerBehavior = _moduleConfig.Config.GetGroupOrGlobal(programGroup,
+ behaviourConfig => behaviourConfig.OnPullTriggerRandomBehavior,
+ group => group.OverrideIntensity);
+
+ if (pullTriggerBehavior)
+ {
+ SendCommand(programGroup, GetDuration(programGroup), GetIntensity(programGroup), ControlType.Shock, false);
+
+ return;
+ }
+
var releaseAction = _moduleConfig.Config.GetGroupOrGlobal(programGroup,
behaviourConfig => behaviourConfig.WhenBoneReleased,
group => group.OverrideBoneReleasedAction);
@@ -433,6 +433,9 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
return;
}
+ _logger.LogInformation("Physbone released, sending {Action} to group {Group}", releaseAction, programGroup.Name);
+ _logger.LogInformation("Physbone stretch value: {StretchValue}", programGroup.LastStretchValue);
+
var physBoneIntensity = GetPhysbonePullIntensity(programGroup, programGroup.LastStretchValue);
programGroup.LastStretchValue = 0;
From 6fb06760fd3feabdb467f073ad705537c9155de0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luc=20=E2=99=A5?=
Date: Mon, 4 Aug 2025 01:32:17 +0200
Subject: [PATCH 3/7] Update ShockOsc/Services/ShockOsc.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
ShockOsc/Services/ShockOsc.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ShockOsc/Services/ShockOsc.cs b/ShockOsc/Services/ShockOsc.cs
index c8c5ebe..77f04cd 100644
--- a/ShockOsc/Services/ShockOsc.cs
+++ b/ShockOsc/Services/ShockOsc.cs
@@ -414,7 +414,7 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
var pullTriggerBehavior = _moduleConfig.Config.GetGroupOrGlobal(programGroup,
behaviourConfig => behaviourConfig.OnPullTriggerRandomBehavior,
- group => group.OverrideIntensity);
+ group => group.OnPullTriggerRandomBehavior);
if (pullTriggerBehavior)
{
From adca85dd9327487199165c3f47c2b76b5066ebc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luc=20=E2=99=A5?=
Date: Mon, 4 Aug 2025 01:32:28 +0200
Subject: [PATCH 4/7] Update ShockOsc/Services/ShockOsc.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
ShockOsc/Services/ShockOsc.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ShockOsc/Services/ShockOsc.cs b/ShockOsc/Services/ShockOsc.cs
index 77f04cd..ec419bd 100644
--- a/ShockOsc/Services/ShockOsc.cs
+++ b/ShockOsc/Services/ShockOsc.cs
@@ -433,7 +433,7 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
return;
}
- _logger.LogInformation("Physbone released, sending {Action} to group {Group}", releaseAction, programGroup.Name);
+ _logger.LogDebug("Physbone released, sending {Action} to group {Group}", releaseAction, programGroup.Name);
_logger.LogInformation("Physbone stretch value: {StretchValue}", programGroup.LastStretchValue);
var physBoneIntensity = GetPhysbonePullIntensity(programGroup, programGroup.LastStretchValue);
From bbce08f49a58e5d4ad76e9f3b94cd19d3df537e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luc=20=E2=99=A5?=
Date: Mon, 4 Aug 2025 01:32:41 +0200
Subject: [PATCH 5/7] Update ShockOsc/Services/ShockOsc.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
ShockOsc/Services/ShockOsc.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ShockOsc/Services/ShockOsc.cs b/ShockOsc/Services/ShockOsc.cs
index ec419bd..8638344 100644
--- a/ShockOsc/Services/ShockOsc.cs
+++ b/ShockOsc/Services/ShockOsc.cs
@@ -434,7 +434,7 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
}
_logger.LogDebug("Physbone released, sending {Action} to group {Group}", releaseAction, programGroup.Name);
- _logger.LogInformation("Physbone stretch value: {StretchValue}", programGroup.LastStretchValue);
+ _logger.LogDebug("Physbone stretch value: {StretchValue}", programGroup.LastStretchValue);
var physBoneIntensity = GetPhysbonePullIntensity(programGroup, programGroup.LastStretchValue);
programGroup.LastStretchValue = 0;
From 120b5c1245b7b2bdca1d9499ac46f15b8eb4aed1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luc=20=E2=99=A5?=
Date: Mon, 4 Aug 2025 01:32:50 +0200
Subject: [PATCH 6/7] Update ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
index 26f80d2..1cde69c 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/ConfigTab.razor
@@ -74,7 +74,7 @@
-
+
From 708edc9ee33a2e4b9bd10800ee4e7ba6779cf4f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luc=20=E2=99=A5?=
Date: Mon, 4 Aug 2025 01:33:07 +0200
Subject: [PATCH 7/7] Update ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
index e1b135c..27f2713 100644
--- a/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
+++ b/ShockOsc/Ui/Pages/Dash/Tabs/GroupsTab.razor
@@ -234,7 +234,7 @@
-
+