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;
        }
Ejemplo n.º 4
0
        public PlayerTechAssembly(PlayerController controller) : base(controller)
        {
            PlayerController = controller;
            Initialize();

            _checkTickInterval       = new TickInterval(Check, 100);
            PlayerController.OnTick += _checkTickInterval.Tick;
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        /// <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));
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Synchronized version of the <see cref="GetCandlesAsync"/> method
 /// </summary>
 /// <returns></returns>
 public BittrexApiResult <BittrexCandle[]> GetCandles(string market, TickInterval interval) => GetCandlesAsync(market, interval).Result;
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 12
0
        /// <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));
        }
Ejemplo n.º 13
0
 /// <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;
Ejemplo n.º 14
0
 public EffectsAssembly(EntityControllerBase controller) : base(controller)
 {
     _checkTick         = new TickInterval(CheckDuration, 100, 0);
     controller.OnTick += _checkTick.Tick;
 }
Ejemplo n.º 15
0
 /// <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}");
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Synchronized version of the <see cref="GetLatestCandleAsync"/> method
 /// </summary>
 /// <returns></returns>
 public CallResult <BittrexCandle[]> GetLatestCandle(string market, TickInterval interval) => GetLatestCandleAsync(market, interval).Result;
Ejemplo n.º 17
0
        /// <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));
        }
Ejemplo n.º 18
0
 public TickEventArgs(TickInterval interval)
 {
     Interval = interval;
 }