public void InterpolateBetween(VariableState firstState, VariableState secondState, float interpolationValue)
        {
                #if DEBUG
            if (float.IsNaN(interpolationValue))
            {
                throw new System.Exception("interpolationValue cannot be NaN");
            }
                #endif
            bool setPlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue  = false;
            bool setPlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue = false;
            PlayerSelectionUIRuntime.ReadyToStart PlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue  = PlayerSelectionUIRuntime.ReadyToStart.Yes;
            PlayerSelectionUIRuntime.ReadyToStart PlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue = PlayerSelectionUIRuntime.ReadyToStart.Yes;
            bool setPlayerSelectionUIInstanceCurrentVariableStateFirstValue  = false;
            bool setPlayerSelectionUIInstanceCurrentVariableStateSecondValue = false;
            PlayerSelectionUIRuntime.VariableState PlayerSelectionUIInstanceCurrentVariableStateFirstValue  = PlayerSelectionUIRuntime.VariableState.Default;
            PlayerSelectionUIRuntime.VariableState PlayerSelectionUIInstanceCurrentVariableStateSecondValue = PlayerSelectionUIRuntime.VariableState.Default;
            bool setPlayerSelectionUIInstanceCurrentVisibilityStateFirstValue  = false;
            bool setPlayerSelectionUIInstanceCurrentVisibilityStateSecondValue = false;
            PlayerSelectionUIRuntime.Visibility PlayerSelectionUIInstanceCurrentVisibilityStateFirstValue  = PlayerSelectionUIRuntime.Visibility.Shown;
            PlayerSelectionUIRuntime.Visibility PlayerSelectionUIInstanceCurrentVisibilityStateSecondValue = PlayerSelectionUIRuntime.Visibility.Shown;
            switch (firstState)
            {
            case  VariableState.Default:
                setPlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue = true;
                PlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue    = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.ReadyToStart.No;
                setPlayerSelectionUIInstanceCurrentVariableStateFirstValue     = true;
                PlayerSelectionUIInstanceCurrentVariableStateFirstValue        = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.VariableState.Default;
                setPlayerSelectionUIInstanceCurrentVisibilityStateFirstValue   = true;
                PlayerSelectionUIInstanceCurrentVisibilityStateFirstValue      = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.Visibility.Shown;
                break;

            case  VariableState.PlayerSelection:
                break;

            case  VariableState.Game:
                break;
            }
            switch (secondState)
            {
            case  VariableState.Default:
                setPlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue = true;
                PlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue    = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.ReadyToStart.No;
                setPlayerSelectionUIInstanceCurrentVariableStateSecondValue     = true;
                PlayerSelectionUIInstanceCurrentVariableStateSecondValue        = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.VariableState.Default;
                setPlayerSelectionUIInstanceCurrentVisibilityStateSecondValue   = true;
                PlayerSelectionUIInstanceCurrentVisibilityStateSecondValue      = GreasyPlatypusSlapper.GumRuntimes.PlayerSelectionUIRuntime.Visibility.Shown;
                break;

            case  VariableState.PlayerSelection:
                break;

            case  VariableState.Game:
                break;
            }
            if (setPlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue && setPlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue)
            {
                PlayerSelectionUIInstance.InterpolateBetween(PlayerSelectionUIInstanceCurrentReadyToStartStateFirstValue, PlayerSelectionUIInstanceCurrentReadyToStartStateSecondValue, interpolationValue);
            }
            if (setPlayerSelectionUIInstanceCurrentVariableStateFirstValue && setPlayerSelectionUIInstanceCurrentVariableStateSecondValue)
            {
                PlayerSelectionUIInstance.InterpolateBetween(PlayerSelectionUIInstanceCurrentVariableStateFirstValue, PlayerSelectionUIInstanceCurrentVariableStateSecondValue, interpolationValue);
            }
            if (setPlayerSelectionUIInstanceCurrentVisibilityStateFirstValue && setPlayerSelectionUIInstanceCurrentVisibilityStateSecondValue)
            {
                PlayerSelectionUIInstance.InterpolateBetween(PlayerSelectionUIInstanceCurrentVisibilityStateFirstValue, PlayerSelectionUIInstanceCurrentVisibilityStateSecondValue, interpolationValue);
            }
            if (interpolationValue < 1)
            {
                mCurrentVariableState = firstState;
            }
            else
            {
                mCurrentVariableState = secondState;
            }
        }
 public override void StopAnimations()
 {
     base.StopAnimations();
     PlayerSelectionUIInstance.StopAnimations();
 }