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); }
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)); } }
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; } }
public static int GetFouls(UCGamePlayerStat stat) { return(stat.FOULPER + stat.FOULTECH); }
public static int GetRebounds(UCGamePlayerStat stat) { return(stat.REBDEF + stat.REBOFF); }
public static int GetPoints(UCGamePlayerStat stat) { return((stat.FGM - stat.FGM3) * 2 + stat.FGM3 * 3 + stat.FTM); }
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); }