commit e4db59959857defe4a07198a37cbe42bc1f2a306
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Feb 1 02:00:17 2020 +0000

    Correct scramble speed.

diff --git a/src/main/java/org/distorted/effect/BaseEffect.java b/src/main/java/org/distorted/effect/BaseEffect.java
index 01e43c4d..c4991a39 100644
--- a/src/main/java/org/distorted/effect/BaseEffect.java
+++ b/src/main/java/org/distorted/effect/BaseEffect.java
@@ -37,7 +37,7 @@ public class BaseEffect
     {
     SIZECHANGE  ( 20, 1, R.string.sizechange_effect , SizeChangeEffect.class),
     SOLVE       ( 20, 1, R.string.solve_effect      , SolveEffect.class     ),
-    SCRAMBLE    ( 30, 1, R.string.scramble_effect   , ScrambleEffect.class  ),
+    SCRAMBLE    ( 60, 1, R.string.scramble_effect   , ScrambleEffect.class  ),
     WIN         ( 20, 1, R.string.win_effect        , WinEffect.class       ),
     ;
 
diff --git a/src/main/java/org/distorted/effect/scramble/ScrambleEffect.java b/src/main/java/org/distorted/effect/scramble/ScrambleEffect.java
index e87d6f0c..ff22e8c1 100644
--- a/src/main/java/org/distorted/effect/scramble/ScrambleEffect.java
+++ b/src/main/java/org/distorted/effect/scramble/ScrambleEffect.java
@@ -87,7 +87,7 @@ public abstract class ScrambleEffect extends BaseEffect implements EffectListene
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  abstract void createEffects(int duration);
+  abstract void createEffects(int duration, int numScrambles);
   abstract void effectFinishedPlugin(final long effectID);
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -305,9 +305,9 @@ public abstract class ScrambleEffect extends BaseEffect implements EffectListene
     mListener = renderer;
 
     int numScrambles = renderer.getNumScrambles();
-
-    createBaseEffects(numScrambles*duration, numScrambles);
-    createEffects(numScrambles*duration);
+    int dura = (int)(duration*Math.pow(numScrambles,0.6f));
+    createBaseEffects(dura,numScrambles);
+    createEffects    (dura,numScrambles);
 
     if( mCubeEffectNumber==0 && mNodeEffectNumber==0 )
       {
diff --git a/src/main/java/org/distorted/effect/scramble/ScrambleEffectNone.java b/src/main/java/org/distorted/effect/scramble/ScrambleEffectNone.java
index 9836f7fa..5ae64ad7 100644
--- a/src/main/java/org/distorted/effect/scramble/ScrambleEffectNone.java
+++ b/src/main/java/org/distorted/effect/scramble/ScrambleEffectNone.java
@@ -28,7 +28,7 @@ import org.distorted.library.type.Static3D;
 
 public class ScrambleEffectNone extends ScrambleEffect
   {
-  public void createEffects(int duration)
+  public void createEffects(int duration, int numScrambles)
     {
     Dynamic3D d0 = new Dynamic3D(1,0.5f);
     d0.add(new Static3D(0,0,0));
diff --git a/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java b/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
index 2f0b3211..fb1f8c45 100644
--- a/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
+++ b/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
@@ -54,7 +54,7 @@ public class ScrambleEffectRotations extends ScrambleEffect
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void createEffects(int duration)
+  public void createEffects(int duration, int numScrambles)
     {
     mCubeEffectNumber   = 2;
     mNodeEffectNumber   = 0;
@@ -63,12 +63,17 @@ public class ScrambleEffectRotations extends ScrambleEffect
 
     mRnd.setSeed(System.currentTimeMillis());
 
+    int numRandomPoints = (int)(Math.pow(numScrambles,0.7f));
+
     DynamicQuat dq = new DynamicQuat(duration, 0.5f);
     dq.setMode(Dynamic.MODE_PATH);
     dq.add(new Static4D(0,0,0,1));
-    dq.add(generateNewRandomPoint());
-    dq.add(generateNewRandomPoint());
-    dq.add(generateNewRandomPoint());
+
+    for(int point=0; point<numRandomPoints; point++)
+      {
+      dq.add(generateNewRandomPoint());
+      }
+
     dq.add(new Static4D(0,0,0,1));
 
     mCubeEffects[0] = new MatrixEffectQuaternion(dq, new Static3D(0,0,0));
diff --git a/src/main/java/org/distorted/magic/RubikActivity.java b/src/main/java/org/distorted/magic/RubikActivity.java
index 2a10b1fe..eba90705 100644
--- a/src/main/java/org/distorted/magic/RubikActivity.java
+++ b/src/main/java/org/distorted/magic/RubikActivity.java
@@ -42,8 +42,8 @@ public class RubikActivity extends AppCompatActivity
     private static final int[] button_ids  = {R.id.rubikSize2, R.id.rubikSize3, R.id.rubikSize4, R.id.rubikSize5};
 
     public static final int MIN_SCRAMBLE =  1;
-    public static final int DEF_SCRAMBLE =  3;
-    public static final int MAX_SCRAMBLE = 10;
+    public static final int DEF_SCRAMBLE =  1;
+    public static final int MAX_SCRAMBLE = 17;
 
     private static int mSize = DEFAULT_SIZE;
     private HorizontalNumberPicker mPicker;
