@@ -411,17 +411,6 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
411411
412412 // Check all preconditions, maybe send stop command here aswell?
413413 if ( ! await HandlePrecondition ( CheckAndSetAllPreconditions ( programGroup ) , programGroup ) ) return ;
414-
415- var pullTriggerBehavior = _moduleConfig . Config . GetGroupOrGlobal ( programGroup ,
416- behaviourConfig => behaviourConfig . OnPullTriggerRandomBehavior ,
417- group => group . OnPullTriggerRandomBehavior ) ;
418-
419- if ( pullTriggerBehavior )
420- {
421- SendCommand ( programGroup , GetDuration ( programGroup ) , GetIntensity ( programGroup ) , ControlType . Shock , false ) ;
422-
423- return ;
424- }
425414
426415 var releaseAction = _moduleConfig . Config . GetGroupOrGlobal ( programGroup ,
427416 behaviourConfig => behaviourConfig . WhenBoneReleased ,
@@ -436,11 +425,21 @@ private async Task PhysboneHandling(ProgramGroup programGroup, bool isGrabbed)
436425 _logger . LogDebug ( "Physbone released, sending {Action} to group {Group}" , releaseAction , programGroup . Name ) ;
437426 _logger . LogDebug ( "Physbone stretch value: {StretchValue}" , programGroup . LastStretchValue ) ;
438427
439- var physBoneIntensity = GetPhysbonePullIntensity ( programGroup , programGroup . LastStretchValue ) ;
428+ // Random intensity for physbone release
429+ var pullTriggerBehavior = _moduleConfig . Config . GetGroupOrGlobal ( programGroup ,
430+ behaviourConfig => behaviourConfig . OnPullTriggerRandomBehavior ,
431+ group => group . OnPullTriggerRandomBehavior ) ;
432+
433+ var isRandomMode = _moduleConfig . Config . GetGroupOrGlobal ( programGroup ,
434+ behaviourConfig => behaviourConfig . RandomIntensity ,
435+ group => group . RandomIntensity ) ;
436+
437+ var physBoneIntensity = pullTriggerBehavior && isRandomMode
438+ ? GetIntensity ( programGroup )
439+ : GetPhysbonePullIntensity ( programGroup , programGroup . LastStretchValue ) ;
440440 programGroup . LastStretchValue = 0 ;
441441
442- SendCommand ( programGroup , GetDuration ( programGroup ) , physBoneIntensity , releaseAction . ToControlType ( ) ,
443- true ) ;
442+ SendCommand ( programGroup , GetDuration ( programGroup ) , physBoneIntensity , releaseAction . ToControlType ( ) , true ) ;
444443
445444 return ;
446445 }
0 commit comments