public async void StartBet(MultiBetData bet) { PlaceAutomatedBetsResponse result = await DiceWebAPI.PlaceAutomatedBetsAsync(bet.Session, bet.MultiBetSettings); if (result.Success) { betResult.BetCount++; if (result.TotalPayOut == 0) { decimal baseBet; if (result.BetCount > 1) { baseBet = result.PayIns[result.BetCount - 1] <= result.PayIns[result.BetCount - 2] ? 2 * result.PayIns[result.BetCount - 1] : 2 * result.PayIns[result.BetCount - 2]; } else { baseBet = 2 * result.PayIns[result.BetCount - 1]; } SingleBetCycle singlBet = new SingleBetCycle(); SingleBetData sBet = bet.GetSingleData(baseBet); singlBet.OnNoMoney += SinglBet_OnNoMoney; BetResult singlResult = null; singlBet.StartBet(sBet); betResult.BetCount = result.BetCount + singlResult.BetCount; betResult.Profit = result.TotalPayOut + result.TotalPayIn + singlResult.Profit; } else { betResult.BetCount = result.BetCount; betResult.Profit = result.TotalPayOut + result.TotalPayIn; OnBetCompleted?.Invoke(betResult); } } else { if (result.InsufficientFunds) { OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency); Thread.Sleep(20000); } } }
public async void StartBet(SingleBetData bet) { var betResult = new BetResult(); while (true) { var result = await DiceWebAPI.PlaceBetAsync(bet.Session, bet.PayIn, bet.GessLow, bet.GessHigh, bet.ClientSeed, bet.Currency); if (result.Success) { betResult.BetCount++; if (result.PayOut > 0) { betResult.Profit += result.PayOut - bet.PayIn; OnBetCompleted?.Invoke(betResult); break; } else { betResult.Profit -= bet.PayIn; if (betResult.BetCount % bet.Repit == 0 && betResult.BetCount != 0) { bet.PayIn = bet.PayIn * 2; } CalcPercent(betResult.BetCount, bet); } } else { if (result.InsufficientFunds) { OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency); Thread.Sleep(20000); } } } }
private void SinglBet_OnNoMoney(long userId, Currencies curr) { OnNoMoney?.Invoke(userId, curr); Thread.Sleep(20000); }