// get list of end of season info // update teams, gamedata // don't create new season yet, // but advance week so getseason will know to create a new public static IEnumerable <ProRel> GetEndOfSeasonData() { if (GameData.CurrentWeek == GameData.WeeksInSeason) { CreateProRelData(); EndofSeasonUpdates(); GameData.CurrentWeek++; } return(ProRelData.GetProRelInfoForSeason(GameData.CurrentSeason)); }
public static void CreateProRelData() { int numPromoted = GameData.TeamsPerDivision / 6; int numRelegated = GameData.TeamsPerDivision / 6; foreach (var division in DivisionData.GetDivisions()) { if (division.Id != 1) { // do promotions for (var teamindex = 1; teamindex <= numPromoted; teamindex++) { var teamid = TeamData.GetTeamsByDivisionId(division.Id) .FirstOrDefault(t => t.Position == teamindex) .Id; ProRelData.AddProRel( GameData.CurrentSeason, division.Id, teamid, teamindex == 1 ? "Champions" : "Promoted"); } } if (division.Id != DivisionData.GetDivisions().Max(d => d.Id)) { // do relegations for (var teamindex = GameData.TeamsPerDivision; teamindex > (GameData.TeamsPerDivision - numRelegated); teamindex--) { var team = TeamData.GetTeamsByDivisionId(division.Id) .FirstOrDefault(t => t.Position == teamindex); if (team == null) { throw new Exception("No team found at position "); } var teamid = team.Id; ProRelData.AddProRel( GameData.CurrentSeason, division.Id, teamid, "Relegated"); } } } }
private static void PromoteOrRelegateTeams() { var proNews = "Promoted: "; var relNews = "Relegated: "; foreach (var prorel in ProRelData.GetProRelInfoForSeason(GameData.CurrentSeason)) { var team = TeamData.GetTeamById(prorel.TeamId); if (prorel.Status == "Relegated") { team.DivisionId++; relNews += team.Name + ","; } else { team.DivisionId--; proNews += team.Name + ","; } } proNews.TrimEnd(','); relNews.TrimEnd(','); NewsData.AddNewsItem(proNews); NewsData.AddNewsItem(relNews); }