Ejemplo n.º 1
0
 public static bool IsEmptyStat(UCGamePlayerStat ps)
 {
     return((ps.ASSIST +
             ps.BLOCK +
             ps.FGA +
             ps.FGA3 +
             ps.FGM +
             ps.FGM3 +
             ps.FOULPER +
             ps.FOULTECH +
             ps.FTA +
             ps.FTM +
             ps.REBDEF +
             ps.REBOFF +
             ps.STEAL +
             ps.TURNOVER) == 0);
 }
Ejemplo n.º 2
0
        private void SetupPlayerStats()
        {
            var game = Gameplay.Game;
            var q    = game.CurrentQuarter >= 4 ? 4 : game.CurrentQuarter;

            bool hasChanges = false;
            var  stats      = QuarterPlayerStats;
            var  players    = Players;

            if (players.Count() != stats.Count())
            {
                foreach (var player in players)
                {
                    var stat = stats.SingleOrDefault(i => i.PlayerId == player.Id);
                    if (stat == null)
                    {
                        stat          = new UCGamePlayerStat();
                        stat.PlayerId = player.Id;
                        stat.TeamId   = player.TeamId;
                        stat.GameId   = Gameplay.GameId;
                        stat.Quarter  = q;
                        Db.UCGamePlayerStats.Add(stat);

                        hasChanges = true;
                    }
                }
            }

            if (hasChanges)
            {
                Db.SaveChanges();
                stats = QuarterPlayerStats;
            }

            // Setup player stats model
            PlayerModels = new List <PlayerGameplayModel>();
            foreach (var player in players)
            {
                PlayerModels.Add(new PlayerGameplayModel(this, player));
            }
        }
Ejemplo n.º 3
0
        public static void UpdateStat(UCGamePlayerStat stat, GameActions action, bool apply = true)
        {
            var statPoint = apply ? 1 : -1;

            switch (action)
            {
            case GameActions.FreeThrowAttempt:
                stat.FTA += statPoint;
                break;

            case GameActions.FieldGoalAttempt:
                stat.FGA += statPoint;
                break;

            case GameActions.FieldGoal3Attempt:
                stat.FGA3 += statPoint;
                stat.FGA  += statPoint;
                break;

            case GameActions.FreeThrowMade:
                stat.FTM += statPoint;
                stat.FTA += statPoint;
                break;

            case GameActions.FieldGoalMade:
                stat.FGM += statPoint;
                stat.FGA += statPoint;
                break;

            case GameActions.FieldGoal3Made:
                stat.FGM3 += statPoint;
                stat.FGM  += statPoint;
                stat.FGA3 += statPoint;
                stat.FGA  += statPoint;
                break;

            case GameActions.Assist:
                stat.ASSIST += statPoint;
                break;

            case GameActions.Steal:
                stat.STEAL += statPoint;
                break;

            case GameActions.Block:
                stat.BLOCK += statPoint;
                break;

            case GameActions.ReboundOffensive:
                stat.REBOFF += statPoint;
                break;

            case GameActions.RebourdDefensive:
                stat.REBDEF += statPoint;
                break;

            case GameActions.Turnover:
                stat.TURNOVER += statPoint;
                break;

            case GameActions.FoulPersonal:
                stat.FOULPER += statPoint;
                break;

            case GameActions.FoulTechnical:
                stat.FOULTECH += statPoint;
                break;
            }
        }
Ejemplo n.º 4
0
 public static int GetFouls(UCGamePlayerStat stat)
 {
     return(stat.FOULPER + stat.FOULTECH);
 }
Ejemplo n.º 5
0
 public static int GetRebounds(UCGamePlayerStat stat)
 {
     return(stat.REBDEF + stat.REBOFF);
 }
Ejemplo n.º 6
0
 public static int GetPoints(UCGamePlayerStat stat)
 {
     return((stat.FGM - stat.FGM3) * 2 + stat.FGM3 * 3 + stat.FTM);
 }
Ejemplo n.º 7
0
        public static int UpdateGame(int gameId, int quarter, bool updateScores, UCGameTeamStat ts0, UCGameTeamStat ts1, bool updateTime, DateTime timeLeft, DateTime timerLastModified, GameplayModel gp = null)
        {
            var  gameplay       = gp ?? GameplayModel.Create(gameId);
            var  game           = gameplay.Game;
            var  now            = DateTime.UtcNow;
            bool hasGameUpdates = false;

            if (updateScores)
            {
                for (int i = 0; i < 2; i++)
                {
                    var t  = i == 0 ? ts0 : ts1;
                    var ts = gameplay.TeamModels[i].Stat;

                    ts.Q1         = t.Q1;
                    ts.Q2         = t.Q2;
                    ts.Q3         = t.Q3;
                    ts.Q4         = t.Q4;
                    ts.LastUpdate = DateTime.UtcNow;
                }
            }

            if (updateTime)
            {
                game.TimeLeft         = timeLeft; //GameHelper.ComputeTimeRemaining(game);
                game.TimeLastModified = timerLastModified;
                hasGameUpdates        = true;
            }

            if (game.CurrentQuarter != quarter)
            {
                // Create player stats stats
                game.CurrentQuarter = quarter;
                var q = quarter > 4 ? 4 : quarter;

                for (int i = 0; i < 2; i++)
                {
                    var teamModel = gameplay.TeamModels[i];
                    var stats     = teamModel.QuarterPlayerStats;

                    var players = teamModel.Players;
                    foreach (var player in players)
                    {
                        var stat = stats.SingleOrDefault(item => item.PlayerId == player.Id);
                        if (stat == null)
                        {
                            stat          = new UCGamePlayerStat();
                            stat.PlayerId = player.Id;
                            stat.TeamId   = player.TeamId;
                            stat.GameId   = gameplay.GameId;
                            stat.Quarter  = q;
                            gameplay.Db.UCGamePlayerStats.Add(stat);
                        }
                    }
                }

                hasGameUpdates = true;
            }

            if (hasGameUpdates)
            {
                game.LastUpdate = now;
            }

            if (hasGameUpdates || updateScores)
            {
                game.LastActivityDate = now;
                gameplay.Db.SaveChanges();
            }

            return(0);
        }