示例#1
0
        public void RecalculateCurrentLap()
        {
            // readd timeframes to current lap after the end of last lap
            var currentLap = Laps.Current as MemoryLap;

            if (currentLap == null)
            {
                return;
            }

            currentLap.Reset();
            var timeStart = StartTime;

            foreach (var laps in Laps)
            {
                var lapEndTime = laps.StartTime.AddSeconds(laps.ElapsedTime);
                if (lapEndTime > timeStart)
                {
                    timeStart = lapEndTime;
                }
            }

            foreach (var timeFrame in TimeFrames.Where(timeFrame => timeFrame.Timestamp > timeStart))
            {
                currentLap.AddTimeFrame(timeFrame);
            }
        }
示例#2
0
        static List <Game> FilterGamesTimeFrame(List <Game> games, TimeFrames timeFrame)
        {
            switch (timeFrame)
            {
            case TimeFrames.ALL:
                return(games);

            case TimeFrames.MONTH:
                DateTime    monthAgo      = DateTime.Now.AddDays(-30);
                List <Game> filteredGames = new List <Game>();
                foreach (Game game in games)
                {
                    if (game.played > monthAgo)
                    {
                        filteredGames.Add(game);
                    }
                }
                return(filteredGames);

            case TimeFrames.WEEK:
                DateTime weekAgo = DateTime.Now.AddDays(-7);
                filteredGames = new List <Game>();
                foreach (Game game in games)
                {
                    if (game.played > weekAgo)
                    {
                        filteredGames.Add(game);
                    }
                }
                return(filteredGames);
            }

            return(games);
        }
示例#3
0
    /// <summary>
    /// Checks if inhaler can be used at the current time.
    /// Open if yes or show notification.
    /// </summary>
    private void CheckToOpenInhaler()
    {
        if (PlayPeriodLogic.Instance.CanUseEverydayInhaler())
        {
            OpenRealInhaler();
        }
        else
        {
            TimeFrames currentTimeFrame = PlayPeriodLogic.GetTimeFrame(LgDateTime.GetTimeNow());
            string     popupMessage;

            if (currentTimeFrame == TimeFrames.Morning)
            {
                popupMessage = "POPUP_INHALER_TONIGHT";
                AudioManager.Instance.PlayClip("superWellaInhalerTonight");
            }
            else
            {
                popupMessage = "POPUP_INHALER_MORNING";
                AudioManager.Instance.PlayClip("superWellaInhalerMorning");
            }

            // Display tutorial notification
            Hashtable notificationEntry = new Hashtable();
            notificationEntry.Add(NotificationPopupData.PrefabName, "PopupInhalerRecharging");
            notificationEntry.Add(NotificationPopupData.Title, null);
            notificationEntry.Add(NotificationPopupData.Message, Localization.Localize(popupMessage));
            notificationEntry.Add(NotificationPopupData.SpecialButtonCallback, null);
            NotificationUIManager.Instance.AddToQueue(notificationEntry);
        }
    }
        public void InsertTimeFrameData()
        {
            try
            {
                List <TimeFrames> timeFrameList = new List <TimeFrames>();
                using (var context = new IgContext())
                {
                    TimeFrames frame1min = new TimeFrames();
                    frame1min.TimeFrameId = 1;
                    frame1min.Name        = "1m";
                    timeFrameList.Add(frame1min);

                    TimeFrames frame5min = new TimeFrames();
                    frame5min.TimeFrameId = 2;
                    frame5min.Name        = "5m";
                    timeFrameList.Add(frame5min);

                    TimeFrames frame15min = new TimeFrames();
                    frame15min.TimeFrameId = 3;
                    frame15min.Name        = "15m";
                    timeFrameList.Add(frame15min);

                    TimeFrames frame30min = new TimeFrames();
                    frame30min.TimeFrameId = 4;
                    frame30min.Name        = "30m";
                    timeFrameList.Add(frame30min);

                    TimeFrames frame60min = new TimeFrames();
                    frame60min.TimeFrameId = 5;
                    frame60min.Name        = "60m";
                    timeFrameList.Add(frame60min);

                    TimeFrames frame240min = new TimeFrames();
                    frame240min.TimeFrameId = 6;
                    frame240min.Name        = "240m";
                    timeFrameList.Add(frame240min);

                    TimeFrames frame1d = new TimeFrames();
                    frame1d.TimeFrameId = 7;
                    frame1d.Name        = "1d";
                    timeFrameList.Add(frame1d);

                    TimeFrames frame1w = new TimeFrames();
                    frame1w.TimeFrameId = 8;
                    frame1w.Name        = "1w";
                    timeFrameList.Add(frame1w);


                    context.TimeFrames.AddRange(timeFrameList);
                    context.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
示例#5
0
        public List <Candle> Get(TimeFrames timeFrame)
        {
            if (_candles.ContainsKey(timeFrame))
            {
                return(_candles[timeFrame]);
            }

            return(new List <Candle>());
        }
    void Update()
    {
        Vector2 newMovement = new Vector2(
            (leftKey.CheckKey() ? -1 : 0) + (rightKey.CheckKey() ? 1 : 0),
            (downKey.CheckKey() ? -1 : 0) + (upKey.CheckKey() ? 1 : 0)
            );

        movement = Vector2.Lerp(movement, newMovement, Time.deltaTime * momentumGainSpeed);

        CheckGround();

        isJumping = TimeFrames.ToFrames(Time.time - lastJumpTime) <= jumpFrames;

        if (isGrounded)
        {
            jumpCount        = 0;
            isChangingPlanet = false;
        }

        CheckDoubleTaps();

        if (downKey.CheckKeyUp() || isGrounded)
        {
            isFastFalling = false;
        }

        if (!isJumping && !isChangingPlanet)
        {
            if (jumpKey.CheckKeyDown() && jumpCount < maxAerialJumps)
            {
                rb.velocity  = transform.up * jumpForce;
                lastJumpTime = Time.time;
                if (!isGrounded)
                {
                    jumpCount++;
                }
            }
            else if (downKey.CheckKeyDown())
            {
                isFastFalling = true;
            }
        }

        isFastFalling = downKey.CheckKey() && isFastFalling;

        transform.Translate(Vector3.right * movement.x * speed * Time.deltaTime);

        gravityMultiplier = isChangingPlanet ? planetTravelGravityMultiplier : (isFastFalling ? fastFallGravityMultiplier : defaultGravityMultiplier);

        CheckShielding();

        UpdateAnim(newMovement);
    }
示例#7
0
    public async Task Score(string sortArg = "score", string timeArg = "all")
    {
        string timeArgF = timeArg.ToLower();
        string sortArgF = sortArg.ToLower();

        TimeFrames           timeFrame       = TimeFrames.ALL;
        LeaderboardSortTypes leaderboardType = LeaderboardSortTypes.SCORE;

        if (timeArgF == "week" || timeArgF == "weekly")
        {
            timeFrame = TimeFrames.WEEK;
        }
        if (timeArgF == "month" || timeArgF == "monthly")
        {
            timeFrame = TimeFrames.MONTH;
        }

        if (sortArgF == "kill" || sortArgF == "kills")
        {
            leaderboardType = LeaderboardSortTypes.KILLS;
        }
        else if (sortArgF == "death" || sortArgF == "deaths")
        {
            leaderboardType = LeaderboardSortTypes.DEATHS;
        }
        else if (sortArgF == "assist" || sortArgF == "assists")
        {
            leaderboardType = LeaderboardSortTypes.ASSISTS;
        }
        else if (sortArgF == "vision" || sortArgF == "visionscore")
        {
            leaderboardType = LeaderboardSortTypes.VISION;
        }
        else if (sortArgF == "creep" || sortArgF == "creepscore" || sortArgF == "cs")
        {
            leaderboardType = LeaderboardSortTypes.CS;
        }

        List <PlayerScore> orderedList = GameUtility.CreateLeaderboard(leaderboardType, timeFrame, BotMain.database);
        int counter = 1;

        Console.WriteLine(leaderboardType);
        foreach (PlayerScore player in orderedList)
        {
            await ReplyAsync(counter ++ + ". " + Context.Client.GetUser(player.player.discordID).Username + " - " + player.score);

            if (counter > 10)
            {
                break;
            }
        }
    }
示例#8
0
        /// <summary>Request a series from the server in a background thread</summary>
        private void AcquireSeries(TimeFrame time_frame, TradeeBotModel model)         // worker thread context
        {
            var symbol = (Symbol)null;
            var series = (MarketSeries)null;
            var error  = (Exception)null;

            try
            {
                // Get the symbol
                symbol = model.GetSymbol(SymbolCode);
                if (symbol == null)
                {
                    throw new Exception("Symbol {0} not available".Fmt(SymbolCode));
                }

                // Get the data series
                series = model.GetSeries(symbol, time_frame);
            }
            catch (Exception ex)
            {
                error = ex;
            }
            finally
            {
                // Add the received series to the collection
                model.RunOnMainThread(() =>
                {
                    // If the symbol was unavailable, then flag the transmitter for deletion
                    if (symbol == null)
                    {
                        Invalid = true;
                    }

                    // If the series is unavailable, remove it from the desired list
                    else if (series == null)
                    {
                        TimeFrames = TimeFrames.Except(time_frame.ToTradeeTimeframe()).ToArray();
                    }

                    // Otherwise add the acquired series to the available data
                    else
                    {
                        Data.Add(m_pending, new MarketSeriesData(series));
                    }

                    // Clear the pending flags
                    m_pending            = null;
                    RequestingSeriesData = false;
                    StatusMsg            = error != null ? error.Message : "Active";
                });
            }
        }
    public bool CheckDoubleTap(int doubleTapDelay)
    {
        bool  _keyStroked    = keyStroked;
        float _lastKeyStroke = lastKeyStroke;
        bool  keyDown        = CheckKeyDown();

        if (_keyStroked && keyDown && (TimeFrames.ToFrames(Time.time - _lastKeyStroke) <= doubleTapDelay))
        {
            keyStroked = false;
            return(true);
        }
        return(false);
    }
示例#10
0
        static int GetCSOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            int cs = 0;

            foreach (Game game in games)
            {
                cs += game.creepScore;
            }

            return(cs);
        }
示例#11
0
        static int GetVisionScoreOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            int vision = 0;

            foreach (Game game in games)
            {
                vision += game.visionScore;
            }

            return(vision);
        }
示例#12
0
        static int GetDeathsOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            int deaths = 0;

            foreach (Game game in games)
            {
                deaths += game.deaths;
            }

            return(deaths);
        }
示例#13
0
        static int GetAssistsOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            int assissts = 0;

            foreach (Game game in games)
            {
                assissts += game.assists;
            }

            return(assissts);
        }
示例#14
0
        static int GetKillsOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            int kills = 0;

            foreach (Game game in games)
            {
                kills += game.kills;
            }

            return(kills);
        }
示例#15
0
    private void Add(CoinJoinFeeRateStat feeRateStat)
    {
        CoinJoinFeeRateStats.Add(feeRateStat);

        DefaultAverages = TimeFrames.Select(t => new CoinJoinFeeRateAverage(t, GetAverage(t))).ToArray();

        // Prune old items.
        DateTimeOffset removeBefore = DateTimeOffset.UtcNow - MaximumTimeToStore;

        while (CoinJoinFeeRateStats.Any() && CoinJoinFeeRateStats[0].DateTimeOffset < removeBefore)
        {
            CoinJoinFeeRateStats.RemoveAt(0);
        }
    }
示例#16
0
 public WorkTimeReportViewModel()
 {
     if (TimeFrames == null)
     {
         TimeFrames = new ObservableCollection <string>();
     }
     for (int i = 0; i < 48; i++)
     {
         TimeSpan ts = TimeSpan.FromMinutes(30 * i);
         TimeFrames.Add(ts.Hours.ToString() + ":" + ts.Minutes.ToString());
     }
     SelectedIndexStart        = 15;
     SelectedIndexStop         = 31;
     CarSelector.OnCarChanged += CarSelector_OnCarChanged;
     StartLoadData();
 }
示例#17
0
    void OnApplicationQuit()
    {
        Int32      unixTimestamp    = (Int32)(System.DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
        TimeFrames timeFramesObject = new TimeFrames();

        timeFramesObject.timeFrames = new TimeFrame[timeFrames.Count];
        timeFramesObject.timeFrames = timeFrames.ToArray();

        if (!(Directory.Exists(exportDirectory)))
        {
            Directory.CreateDirectory(exportDirectory);
        }

        string savePath = Path.Combine(exportDirectory, this.transform.name + "_" + unixTimestamp + ".json");

        var json = JsonConvert.SerializeObject(timeFramesObject);

        using (var streamWriter = File.CreateText(savePath)) {
            streamWriter.Write(json);
            Debug.Log("Saved marker positions to path: " + savePath);
        }
    }
示例#18
0
        static int GetScoreOfPlayer(PlayerObject player, TimeFrames timeFrame, Database database)
        {
            List <Game> games = FilterGamesTimeFrame(database.GetGamesOfUser(player.discordID), timeFrame);

            games.Sort((A, B) => A.played > B.played ? 1 : -1);
            HashSet <int> champsPlayedLast10 = new HashSet <int>();
            int           score = 0;

            for (int i = 0; i < games.Count; i++)
            {
                Game game           = games[i];
                int  championPlayed = game.championPlayed;
                champsPlayedLast10.Add(championPlayed);

                if (game.win)
                {
                    score += 2;
                }
                else
                {
                    score += 1;
                }

                if (player.IsMain(game.summoner))
                {
                    score += 1;
                }

                if (i % 10 == 9)
                {
                    score -= (champsPlayedLast10.Count - 1);
                    champsPlayedLast10.Clear();
                }
            }
            Console.WriteLine(score);


            return(score);
        }
示例#19
0
        public static List <PlayerScore> CreateLeaderboard(LeaderboardSortTypes sortType, TimeFrames timeFrame, Database database)
        {
            List <PlayerScore> scores = new List <PlayerScore>();

            foreach (PlayerObject player in database.GetAllPlayers())
            {
                scores.Add(new PlayerScore(player));
            }

            Func <PlayerObject, TimeFrames, Database, int> scoreFetchFunc;

            switch (sortType)
            {
            case LeaderboardSortTypes.SCORE:
                scoreFetchFunc = GetScoreOfPlayer;
                break;

            case LeaderboardSortTypes.KILLS:
                scoreFetchFunc = GetKillsOfPlayer;
                break;

            case LeaderboardSortTypes.DEATHS:
                scoreFetchFunc = GetDeathsOfPlayer;
                break;

            case LeaderboardSortTypes.ASSISTS:
                scoreFetchFunc = GetAssistsOfPlayer;
                break;

            case LeaderboardSortTypes.CS:
                scoreFetchFunc = GetCSOfPlayer;
                break;

            case LeaderboardSortTypes.VISION:
                scoreFetchFunc = GetVisionScoreOfPlayer;
                break;

            default:
                scoreFetchFunc = GetScoreOfPlayer;
                break;
            }

            foreach (PlayerScore score in scores)
            {
                score.score = scoreFetchFunc(score.player, timeFrame, database);
            }

            scores.Sort((A, B) => A.score < B.score ? 1 : -1);

            return(scores);
        }
示例#20
0
 public override string ToString()
 {
     return("{0} - {1} - {2}".Fmt(SymbolCode, string.Join(" ", TimeFrames.Select(x => x.Desc())), m_price));
 }
示例#21
0
 public static float DeltaTime(TimeFrames timeFrame)
 {
     return(framesEnabled.Contains(timeFrame) ? realDeltaTime : 0f);
 }
示例#22
0
 public static bool IsPaused(TimeFrames timeFrame)
 {
     return(!framesEnabled.Contains(timeFrame));
 }
示例#23
0
        /// <summary>Poll instrument state</summary>
        public void Step()
        {
            // Don't run invalid transmitters, just wait for deletion
            if (Invalid)
            {
                return;
            }

            // Get the time frames to send, and the time frames being sent
            var desired   = TimeFrames.Select(x => x.ToCAlgoTimeframe()).ToArray();
            var available = AvailableTimeFrames;

            // Look for any missing time frames
            var to_get = desired.FirstOrDefault(x => !available.Contains(x));

            if (m_pending == null && to_get != null)
            {
                RequestingSeriesData = true;
                m_pending            = to_get;

                // Get the missing time frame series.
                // This can take ages so do it in a background thread
                StatusMsg = "Acquiring {0},{1}".Fmt(SymbolCode, m_pending.ToTradeeTimeframe());

                // Start a background thread task to get the series data
                var model = Model;
                ThreadPool.QueueUserWorkItem(x => AcquireSeries((TimeFrame)x, model), m_pending);
            }

            // Transmit data for each time frame
            foreach (var tf in available)
            {
                // If not needed any more, remove it from 'Data'
                if (!desired.Contains(tf))
                {
                    Data.Remove(tf);
                    continue;
                }

                // Get the market series for this time frame
                MarketSeriesData data;
                if (Data.TryGetValue(tf, out data))
                {
                    SendMarketData(data);
                }
            }

            // Service any historic data requests
            var done = new HashSet <HistoricDataRequest>();

            foreach (var req in HistoricDataRequests)
            {
                // Get the market series for the requested time frame
                MarketSeriesData data;
                if (!Data.TryGetValue(req.TimeFrame, out data))
                {
                    continue;
                }

                try
                {
                    // Get the index range for the request time range
                    var count    = data.Series.OpenTime.Count;
                    var i_oldest = req.UseIndices ? req.OldestIndex : count - data.Series.OpenTime.GetIndexByTime(req.Beg.DateTime);                     // oldest (i.e. largest index)
                    var i_newest = req.UseIndices ? req.NewestIndex : count - data.Series.OpenTime.GetIndexByTime(req.End.DateTime);                     // newest (i.e. smallest index)
                    SendHistoricMarketData(data.Series, i_oldest, i_newest);
                }
                catch { }                 // ignore failures
                done.Add(req);
            }

            // Remove the requests we've serviced
            HistoricDataRequests.RemoveIf(x => done.Contains(x));
        }