public void performGameMove() {
        last_spin_ts = System.currentTimeMillis() ;
        
        // select win number
        int winNumber = 0;
               

        // winNumber = isManualSpin() ? manualSpinNumber :
        // roulette.performSpin();
        if (enableManualSpin) {
            if (manualSpinNumber != null) {
                winNumber = manualSpinNumber;
            } else
                winNumber = roulette.performSpin();
        } else {
            winNumber = roulette.performSpin();
        }

        // proceed all bets
        for (Bet currentBet : bets) {

            // calculate win/loose coins
            int betResult = currentBet.calcBetResult(winNumber);

            // store bet player
            UUID currentPlayerId = betsToPlayer.get(currentBet.getId());
            Player currentPlayer = players.get(currentPlayerId);

            currentPlayer.applyBetResult(betResult);

            boolean betWins = betResult > 0;
            if (betWins) {
                currentPlayer.incrementWinBetCount();
            }
        }

        // clear bet arrays
        flushAllBets();
        // ? betCodes.clear
        totalSpins += 1;

    }