public PlayerController(AccountView account) : base(account.ID, account.Username, account.Faction) { Account = account ?? throw _logger.LogError(new ArgumentNullException(nameof(account))); if (!string.IsNullOrWhiteSpace(Account.UserClientConfiguration)) { ClientConfiguration = JsonConvert.DeserializeObject <UserClientConfiguration>(Account.UserClientConfiguration); } else { ClientConfiguration = UserClientConfiguration.Instance(); } InitializeAssemblies(); _renderedMines = new HashSet <int>(); _renderedPlayers = new HashSet <int>(); _checkPlayersInRange = new TickInterval(CheckPlayersInRange, 100); _checkMinesInRange = new TickInterval(CheckMinesInRange, 200); _checkZonesInRange = new TickInterval(CheckZonesInRange, 300); _updateState = new TickInterval(UpdateState, 1000 * 60 * 5); // 5 Minuten _checkConnectionExists = new TickInterval(CheckConnectionExists, 3000); _checkLogout = new TickInterval(CheckLogout, 5000); OnTick += TickEvent; }
public PlayerDroneFormationAssembly(PlayerController controller) : base(controller) { PlayerController = controller; _shieldChangeTickTimeFunction = new TickInterval(ChangeShield, 1000); Initialize(); PlayerController.OnTick += Tick; }
public AttackTraceAssembly(EntityControllerBase controller) : base(controller) { _trace = new Dictionary <int, AttackTraceEntry>(); _lock = new object(); _validationTimer = new TickInterval(CheckChanges, 500); controller.OnTick += _validationTimer.Tick; }
public PlayerTechAssembly(PlayerController controller) : base(controller) { PlayerController = controller; Initialize(); _checkTickInterval = new TickInterval(Check, 100); PlayerController.OnTick += _checkTickInterval.Tick; }
public PlayerAttackAssembly(PlayerController controller) : base(controller) { _rocketLauncherReloadTimer = new TickInterval(RocketLauncherReloadTimer, 100); PlayerController = controller; _rocketLock = new object(); _laserLock = new object(); _rocketLauncherLock = new object(); _rocketLauncherRocketLock = new object(); }
/// <summary> /// Gets candle data for a market on a specific interval /// </summary> /// <param name="market">Market to get candles for</param> /// <param name="interval">The candle interval</param> /// <returns>List of candles</returns> public async Task <BittrexApiResult <BittrexCandle[]> > GetCandlesAsync(string market, TickInterval interval) { Dictionary <string, string> parameters = new Dictionary <string, string>() { { "marketName", market }, { "tickInterval", JsonConvert.SerializeObject(interval, new TickIntervalConverter(false)) } }; return(await ExecuteRequest <BittrexCandle[]>(GetUrl(CandleEndpoint, Api, ApiVersion2, parameters)).ConfigureAwait(false)); }
/// <summary> /// Synchronized version of the <see cref="GetCandlesAsync"/> method /// </summary> /// <returns></returns> public BittrexApiResult <BittrexCandle[]> GetCandles(string market, TickInterval interval) => GetCandlesAsync(market, interval).Result;
public override async Task <CryptoResponse <List <Candle> > > GetCandlesAsync(string market, TickInterval interval) { try { var candlesDirectory = Directory.CreateDirectory("candles"); var fileName = $"{market}-{interval}.json"; var filePath = Path.Combine(candlesDirectory.FullName, fileName); if (File.Exists(filePath) == false) { var candleResponse = await base.GetCandlesAsync(market, interval); File.WriteAllText(filePath, JsonConvert.SerializeObject(candleResponse.Content)); Candles = candleResponse.Content; } else { var candlesJson = File.ReadAllText(filePath); Candles = JsonConvert.DeserializeObject <List <Candle> >(candlesJson); } } catch (Exception e) { Console.WriteLine(e); } return(new CryptoResponse <List <Candle> >(Candles)); }
public virtual async Task <CryptoResponse <List <Candle> > > GetCandlesAsync(string market, TickInterval interval) { var callResult = await _bittrexClient.GetCandlesAsync(market, interval); var candles = callResult.Data.Select(c => new Candle { Timestamp = c.Timestamp, Currency = market, Low = c.Low, High = c.High, Open = c.Open, Close = c.Close, Volume = c.BaseVolume }).ToList(); return(new CryptoResponse <List <Candle> >(candles)); }
public override Task <CryptoResponse <List <Candle> > > GetCandlesAsync(string market, TickInterval interval) { try { var candlesJson = File.ReadAllText("candles.json"); Candles = JsonConvert.DeserializeObject <List <Candle> >(candlesJson); } catch (Exception e) { Console.WriteLine(e); } return(Task.FromResult(new CryptoResponse <List <Candle> >(Candles))); }
public AttackAssemblyBase(EntityControllerBase controller) : base(controller) { _attackTimer = new TickInterval(AttackTimer, 1000, 1000); // set initial value to 1000, so the first tick is an attack Controller.OnTick += Tick; }
/// <summary> /// Gets kline data for a symbol on a specific interval /// </summary> /// <param name="symbol">Symbol to get klines for</param> /// <param name="interval">The kline interval</param> /// <param name="ct">Cancellation token</param> /// <returns>List of klines</returns> public async Task <WebCallResult <IEnumerable <BittrexKline> > > GetLastKlineAsync(string symbol, TickInterval interval, CancellationToken ct = default) { symbol.ValidateBittrexSymbol(); var parameters = new Dictionary <string, object> { { "marketName", symbol }, { "tickInterval", JsonConvert.SerializeObject(interval, new TickIntervalConverter(false)) } }; return(await Execute <IEnumerable <BittrexKline> >(GetUrl(LatestCandleEndpoint, Api, ApiVersion2), HttpMethod.Get, ct, false, parameters).ConfigureAwait(false)); }
/// <summary> /// Gets kline data for a symbol on a specific interval /// </summary> /// <param name="symbol">Symbol to get klines for</param> /// <param name="interval">The kline interval</param> /// <param name="ct">Cancellation token</param> /// <returns>List of klines</returns> public WebCallResult <IEnumerable <BittrexKline> > GetLastKline(string symbol, TickInterval interval, CancellationToken ct = default) => GetLastKlineAsync(symbol, interval, ct).Result;
public EffectsAssembly(EntityControllerBase controller) : base(controller) { _checkTick = new TickInterval(CheckDuration, 100, 0); controller.OnTick += _checkTick.Tick; }
/// <summary> /// Converts the value of the <see cref="TimerClock"/> to its equivalent <see cref="string"/>. /// </summary> /// <returns>The <see cref="string"/> representation of the <see cref="TimerClock"/></returns> public override string ToString() { return($"Interval: {TickInterval.ToString()} - DateTime: {Clock.UtcNow:yyyy-MM-dd HH:mm.ss.fff}"); }
/// <summary> /// Synchronized version of the <see cref="GetLatestCandleAsync"/> method /// </summary> /// <returns></returns> public CallResult <BittrexCandle[]> GetLatestCandle(string market, TickInterval interval) => GetLatestCandleAsync(market, interval).Result;
/// <summary> /// Gets candle data for a market on a specific interval /// </summary> /// <param name="market">Market to get candles for</param> /// <param name="interval">The candle interval</param> /// <returns>List of candles</returns> public async Task <CallResult <BittrexCandle[]> > GetLatestCandleAsync(string market, TickInterval interval) { var parameters = new Dictionary <string, object> { { "marketName", market }, { "tickInterval", JsonConvert.SerializeObject(interval, new TickIntervalConverter(false)) } }; return(await Execute <BittrexCandle[]>(GetUrl(LatestCandleEndpoint, Api, ApiVersion2), false, parameters).ConfigureAwait(false)); }
public TickEventArgs(TickInterval interval) { Interval = interval; }