public void DisplaySelectedPlayerInfo(Player player)
        {
            League selectedLeague = world.Leagues[mainForm.cbLeagueList.SelectedIndex];
            Team   selectedTeam   = selectedLeague.TeamList[mainForm.cbTeamList.SelectedIndex];
            Player selectedPlayer = player;

            mainForm.lblDepthChart.Text = "Spot on Depth Chart: " + selectedPlayer.DepthChart.ToString();
            if (selectedPlayer.IsStarter)
            {
                mainForm.lblStarter.Text = "Starter: yes";
            }
            else
            {
                mainForm.lblStarter.Text = "Starter: no";
            }

            if (selectedLeague.Sport == Sports.Basketball)
            {
                List <BasketballPlayer> hoopsRoster = new List <BasketballPlayer>();
                foreach (BasketballPlayer bp in selectedTeam.Roster)
                {
                    hoopsRoster.Add(bp);
                }
                DisplayBasketballStats(hoopsRoster[mainForm.cbTeamRoster.SelectedIndex]);
            }
            else if (selectedLeague.Sport == Sports.Football)
            {
                List <FootballPlayer> footballRoster = new List <FootballPlayer>();
                foreach (FootballPlayer fp in selectedTeam.Roster)
                {
                    footballRoster.Add(fp);
                }
                DisplayFootballStats(footballRoster[mainForm.cbTeamRoster.SelectedIndex]);
            }
            else if (selectedLeague.Sport == Sports.Baseball)
            {
                List <BaseballPlayer> baseballRoster = new List <BaseballPlayer>();
                foreach (BaseballPlayer p in selectedTeam.Roster)
                {
                    baseballRoster.Add(p);
                }
                DisplayBaseballStats(baseballRoster[mainForm.cbTeamRoster.SelectedIndex]);
            }
            else if (selectedLeague.Sport == Sports.Hockey)
            {
                List <HockeyPlayer> hockeyRoster = new List <HockeyPlayer>();
                foreach (HockeyPlayer p in selectedTeam.Roster)
                {
                    hockeyRoster.Add(p);
                }
                DisplayHockeyStats(hockeyRoster[mainForm.cbTeamRoster.SelectedIndex]);
            }
            else if (selectedLeague.Sport == Sports.Soccer)
            {
                List <SoccerPlayer> soccerRoster = new List <SoccerPlayer>();
                foreach (SoccerPlayer p in selectedTeam.Roster)
                {
                    soccerRoster.Add(p);
                }
                DisplaySoccerStats(soccerRoster[mainForm.cbTeamRoster.SelectedIndex]);
            }

            if (selectedPlayer.Sport == Sports.Baseball)
            {
                BaseballPlayer baseballPlayer = (BaseballPlayer)selectedPlayer;
                mainForm.lblPosition.Text = "Position: " + baseballPlayer.Position.ToString();
            }
            else if (selectedPlayer.Sport == Sports.Basketball)
            {
                BasketballPlayer basketballPlayer = (BasketballPlayer)selectedPlayer;
                mainForm.lblPosition.Text = "Position: " + basketballPlayer.Position.ToString();
            }
            else if (selectedPlayer.Sport == Sports.Football)
            {
                FootballPlayer footballPlayer = (FootballPlayer)selectedPlayer;
                mainForm.lblPosition.Text = "Position: " + footballPlayer.Position.ToString();
            }
            else if (selectedPlayer.Sport == Sports.Hockey)
            {
                HockeyPlayer hockeyPlayer = (HockeyPlayer)selectedPlayer;
                mainForm.lblPosition.Text = "Position: " + hockeyPlayer.Position.ToString();
            }
            else if (selectedPlayer.Sport == Sports.Soccer)
            {
                SoccerPlayer soccerPlayer = (SoccerPlayer)selectedPlayer;
                mainForm.lblPosition.Text = "Position: " + soccerPlayer.Position.ToString();
            }
            mainForm.lblFullName.Text   = selectedPlayer.FullName;
            mainForm.lblAge.Text        = "Age: " + selectedPlayer.Age.ToString();
            mainForm.lblSkillLevel.Text = "Skill Level: " + selectedPlayer.CurrentSkill.ToString() + "/" + selectedPlayer.PotentialSkill.ToString();

            mainForm.lblYearlySalary.Text = "Yearly Salary: " + selectedPlayer.Contract.YearlySalary.ToString("C0");
            mainForm.lblYearsLeft.Text    = "Years Left: " + selectedPlayer.Contract.Years.ToString();
            mainForm.lblAgentPaid.Text    = "Agent Paid: " + selectedPlayer.Contract.AgentPaySchedule.ToString();
            mainForm.lblAgentPercent.Text = "Agent Percentage: " + selectedPlayer.Contract.AgentPercentage.ToString() + "%";

            mainForm.lblPopularity.Text      = "Popularity: " + selectedPlayer.PopularityString;
            mainForm.lblGreed.Text           = "Greed: " + selectedPlayer.Greed.ToString();
            mainForm.lblLifestyle.Text       = "Lifestyle: " + selectedPlayer.Lifestyle.ToString();
            mainForm.lblLoyalty.Text         = "Loyalty: " + selectedPlayer.Loyalty.ToString();
            mainForm.lblPlayForTitle.Text    = "Play for Title: " + selectedPlayer.PlayForTitleContender.ToString();
            mainForm.lblTeamHappiness.Text   = "Team Happiness: " + selectedPlayer.TeamHappinessString;
            mainForm.lblAgencyHappiness.Text = "Agency Happiness: " + selectedPlayer.AgencyHappinessString;
        }
        public void FillTeamInfo()
        {
            League selectedLeague = world.Leagues[mainForm.cbLeagueList.SelectedIndex];
            Team   selectedTeam   = world.Leagues[mainForm.cbLeagueList.SelectedIndex].TeamList[mainForm.cbTeamList.SelectedIndex];

            mainForm.lblTeamAwards.Text = "";
            if (selectedTeam.Awards.Count > 0)
            {
                foreach (Award award in selectedTeam.Awards)
                {
                    mainForm.lblTeamAwards.Text += "Year #" + award.Year + " " + award.AwardName + Environment.NewLine;
                }
            }

            mainForm.lblRoster.Text = "[POS] LAST, FIRST:                CUR/POT          AGE" + Environment.NewLine;
            if (selectedLeague.Sport == Sports.Hockey)
            {
                mainForm.lblTeamInfo.Text = selectedTeam.City + " " + selectedTeam.Mascot + "(" + selectedTeam.Wins + "-" + selectedTeam.Losses + "-" + selectedTeam.OTLosses + ")   Title Contender (" + selectedTeam.TitleConteder + ") || Market Value: (" + selectedTeam.MarketValue + ")";
            }
            else if (selectedLeague.Sport == Sports.Soccer)
            {
                mainForm.lblTeamInfo.Text = selectedTeam.City + " " + selectedTeam.Mascot + "(" + selectedTeam.Wins + "-" + selectedTeam.Losses + "-" + selectedTeam.Ties + ")   Title Contender (" + selectedTeam.TitleConteder + ") || Market Value: (" + selectedTeam.MarketValue + ")";
            }
            else
            {
                mainForm.lblTeamInfo.Text = selectedTeam.City + " " + selectedTeam.Mascot + "(" + selectedTeam.Wins + "-" + selectedTeam.Losses + ")   Title Contender (" + selectedTeam.TitleConteder + ") || Market Value: (" + selectedTeam.MarketValue + ")";
            }

            if (selectedLeague.Sport == Sports.Basketball)
            {
                foreach (BasketballPlayer p in selectedTeam.Roster)
                {
                    mainForm.lblRoster.Text += "[" + p.Position.ToString() + "] " + p.LastName + ", " + p.FirstName + ": " + p.CurrentSkill + "/" + p.PotentialSkill + " - " + p.Age + "-years old" + p.AgencyHappinessString + " " + p.TeamHappinessString + " " + p.PopularityString + Environment.NewLine;
                }
            }
            else if (selectedLeague.Sport == Sports.Football)
            {
                mainForm.lblRoster.Text = DisplayFootballTeamStats(selectedTeam);
            }
            //foreach (FootballPlayer p in selectedTeam.Roster)
            //lblRoster.Text += "[" + p.Position.ToString() + "] " + p.LastName + ", " + p.FirstName + ": " + p.CurrentSkill + "/" + p.PotentialSkill + " - " + p.Age + "-years old" + Environment.NewLine;
            if (selectedLeague.Sport == Sports.Baseball)
            {
                foreach (BaseballPlayer p in selectedTeam.Roster)
                {
                    mainForm.lblRoster.Text += "[" + p.Position.ToString() + "] " + p.LastName + ", " + p.FirstName + ": " + p.CurrentSkill + "/" + p.PotentialSkill + " - " + p.Age + "-years old" + Environment.NewLine;
                }
            }
            if (selectedLeague.Sport == Sports.Hockey)
            {
                foreach (HockeyPlayer p in selectedTeam.Roster)
                {
                    mainForm.lblRoster.Text += "[" + p.Position.ToString() + "] " + p.LastName + ", " + p.FirstName + ": " + p.CurrentSkill + "/" + p.PotentialSkill + " - " + p.Age + "-years old" + Environment.NewLine;
                }
            }
            if (selectedLeague.Sport == Sports.Soccer)
            {
                foreach (SoccerPlayer p in selectedTeam.Roster)
                {
                    mainForm.lblRoster.Text += "[" + p.Position.ToString() + "] " + p.LastName + ", " + p.FirstName + ": " + p.CurrentSkill + "/" + p.PotentialSkill + " - " + p.Age + "-years old" + Environment.NewLine;
                }
            }
        }
        private void RunEventsThisWeek()
        {
            if (Month == 7 && Week == 1 && world.NBA.Initialized)
            {
                //newsLabel.Text += world.Basketball.basketballDraft.RunDraft() + Environment.NewLine + newsLabel.Text;
                world.Basketball.basketballDraft.RunDraft();
            }
            if (Month == 4 && Week == 3 && world.NFL.Initialized)
            {
                //newsLabel.Text += world.Football.footballDraft.RunDraft() + Environment.NewLine + newsLabel.Text;
                world.Football.footballDraft.RunDraft();
            }
            if (Month == 1 && Week == 2 && world.MLB.Initialized)
            {
                //newsLabel.Text += world.Baseball.baseballDraft.RunDraft() + Environment.NewLine + newsLabel.Text;
                world.Baseball.baseballDraft.RunDraft();
            }
            if (Month == 6 && Week == 4 && world.NHL.Initialized)
            {
                //newsLabel.Text += world.Hockey.hockeyDraft.RunDraft() + Environment.NewLine + newsLabel.Text;
                world.Hockey.hockeyDraft.RunDraft();
            }
            if (Month == 1 && Week == 2 && world.MLS.Initialized)
            {
                //newsLabel.Text += world.Soccer.soccerDraft.RunDraft() + Environment.NewLine + newsLabel.Text;
                world.Soccer.soccerDraft.RunDraft();
            }

            foreach (CalendarEvent e in world.EventsThisWeek)
            {
                if (e.EventType == CalendarEventType.AssociationEvent)
                {
                    /*if (e.Sport == Sports.Tennis)
                     * {
                     *  int eventIndex = world.ATP.EventList.FindIndex(x => x.Id.Equals(e.EventID));
                     *  Event thisEvent = world.ATP.EventList.Find(x => x.Id == e.EventID);
                     *  newsLabel.Text = Tennis.RunTournament(world.ATP.EventList[eventIndex], world) + newsLabel.Text;
                     * }
                     * else if (e.Sport == Sports.Golf)
                     * {
                     *  Event thisEvent = world.PGA.EventList.Find(x => x.Id == e.EventID && x.Year == world.Year);
                     *  newsLabel.Text = Golf.RunTournament(thisEvent, world) + newsLabel.Text;
                     * }
                     * else if (e.Sport == Sports.MMA)
                     * {
                     *  Event thisEvent = world.UFC.EventList.Find(x => x.Id == e.EventID);
                     *  newsLabel.Text = MMA.RunMMAEvent(thisEvent, world) + newsLabel.Text;
                     * }
                     * else if (e.Sport == Sports.Boxing)
                     * {
                     *  Event thisEvent = world.WBA.EventList.Find(x => x.Id == e.EventID);
                     *  newsLabel.Text = Boxing.RunBoxingEvent(thisEvent, world) + newsLabel.Text;
                     * }*/
                }
                else if (e.EventType == CalendarEventType.PlayerBirthday)
                {
                    if (e.Sport == Sports.Tennis)
                    {
                        //world.ATP.PlayerList.Find(x => x.Id == e.PlayerID).Age++;
                    }
                    else if (e.Sport == Sports.Golf)
                    {
                        //world.PGA.PlayerList.Find(x => x.Id == e.PlayerID).Age++;
                    }
                    else if (e.Sport == Sports.MMA)
                    {
                        //world.UFC.PlayerList.Find(x => x.Id == e.PlayerID).Age++;
                    }
                    else if (e.Sport == Sports.Boxing)
                    {
                        //world.WBA.PlayerList.Find(x => x.Id == e.PlayerID).Age++;
                    }
                    else if (e.Sport == Sports.Baseball)
                    {
                        for (int i = 0; i < world.MLB.TeamList.Count; i++)
                        {
                            for (int j = 0; j < world.MLB.TeamList[i].Roster.Count; j++)
                            {
                                if (world.MLB.TeamList[i].Roster[j].Id == e.PlayerID)
                                {
                                    world.MLB.TeamList[i].Roster[j].Age++;
                                }
                            }
                        }
                    }
                    else if (e.Sport == Sports.Basketball)
                    {
                        for (int i = 0; i < world.NBA.TeamList.Count; i++)
                        {
                            for (int j = 0; j < world.NBA.TeamList[i].Roster.Count; j++)
                            {
                                if (world.NBA.TeamList[i].Roster[j].Id == e.PlayerID)
                                {
                                    world.NBA.TeamList[i].Roster[j].Age++;
                                }
                            }
                        }
                    }
                    else if (e.Sport == Sports.Football)
                    {
                        for (int i = 0; i < world.NFL.TeamList.Count; i++)
                        {
                            for (int j = 0; j < world.NFL.TeamList[i].Roster.Count; j++)
                            {
                                if (world.NFL.TeamList[i].Roster[j].Id == e.PlayerID)
                                {
                                    world.NFL.TeamList[i].Roster[j].Age++;
                                }
                            }
                        }
                    }
                    else if (e.Sport == Sports.Hockey)
                    {
                        for (int i = 0; i < world.NHL.TeamList.Count; i++)
                        {
                            for (int j = 0; j < world.NHL.TeamList[i].Roster.Count; j++)
                            {
                                if (world.NHL.TeamList[i].Roster[j].Id == e.PlayerID)
                                {
                                    world.NHL.TeamList[i].Roster[j].Age++;
                                }
                            }
                        }
                    }
                    else if (e.Sport == Sports.Soccer)
                    {
                        for (int i = 0; i < world.MLS.TeamList.Count; i++)
                        {
                            for (int j = 0; j < world.MLS.TeamList[i].Roster.Count; j++)
                            {
                                if (world.MLS.TeamList[i].Roster[j].Id == e.PlayerID)
                                {
                                    world.MLS.TeamList[i].Roster[j].Age++;
                                }
                            }
                        }
                    }
                }
                else if (e.EventType == CalendarEventType.LoanRepayment)
                {
                    //repay loan
                }
                else if (e.EventType == CalendarEventType.ClientBirthday)
                {
                    int indx = world.MyAgency.Clients.FindIndex(x => (x.FullName == e.PlayerName) && (x.Sport == e.Sport) && (x.Id == e.PlayerID));
                    world.MyAgency.Clients[indx].Age++;
                }
                else if (e.EventType == CalendarEventType.LeagueYearBegins)
                {
                    League l = null;
                    if (e.Sport == Sports.Baseball)
                    {
                        world.MLB.InSeason    = true;
                        world.MLB.Initialized = true;
                        world.MLB.WeekNumber  = 0;
                        l = world.MLB;
                        world.ResetTeamRecords(world.MLB);
                        world.ResetPlayerStats(world.MLB);
                    }
                    else if (e.Sport == Sports.Basketball)
                    {
                        world.NBA.InSeason    = true;
                        world.NBA.Initialized = true;
                        l = world.NBA;
                        world.ResetTeamRecords(world.NBA);
                        world.ResetPlayerStats(world.NBA);
                    }
                    else if (e.Sport == Sports.Football)
                    {
                        world.NFL.InSeason    = true;
                        world.NFL.Initialized = true;
                        world.NFL.WeekNumber  = 0;
                        l = world.NFL;
                        world.ResetTeamRecords(world.NFL);
                        world.ResetPlayerStats(world.NFL);
                    }
                    else if (e.Sport == Sports.Hockey)
                    {
                        world.NHL.InSeason    = true;
                        world.NHL.Initialized = true;
                        world.NHL.WeekNumber  = 0;
                        l = world.NHL;
                        world.ResetTeamRecords(world.NHL);
                        world.ResetPlayerStats(world.NHL);
                    }
                    else if (e.Sport == Sports.Soccer)
                    {
                        world.MLS.InSeason    = true;
                        world.MLS.Initialized = true;
                        world.MLS.WeekNumber  = 0;
                        l = world.MLS;
                        world.ResetTeamRecords(world.MLS);
                        world.ResetPlayerStats(world.MLS);
                    }
                    DetermineSeasons();
                    world.ReorderDepthCharts(l);
                    foreach (Team t in l.TeamList)
                    {
                        world.SetTeamTitleContender(l, t);
                        foreach (Player p in t.Roster)
                        {
                            if (p.Sport == Sports.Baseball)
                            {
                                p.IsStarter = world.IsBaseballStarter(t, p);
                            }
                            else if (p.Sport == Sports.Basketball)
                            {
                                p.IsStarter = world.IsBasketballStarter(t, p);
                            }
                            else if (p.Sport == Sports.Football)
                            {
                                p.IsStarter = world.IsFootballStarter(t, p);
                            }
                            else if (p.Sport == Sports.Hockey)
                            {
                                p.IsStarter = world.IsHockeyStarter(t, p);
                            }
                            else if (p.Sport == Sports.Soccer)
                            {
                                p.IsStarter = world.IsSoccerStarter(t, p);
                            }
                        }
                    }
                }
                else if (e.EventType == CalendarEventType.LeagueYearEnds)
                {
                    if (e.Sport == Sports.Baseball)
                    {
                        world.PayPlayersAnnualSalary(world.MLB);
                    }
                    else if (e.Sport == Sports.Basketball)
                    {
                        world.PayPlayersAnnualSalary(world.NBA);
                    }
                    else if (e.Sport == Sports.Football)
                    {
                        world.PayPlayersAnnualSalary(world.NFL);
                    }
                    else if (e.Sport == Sports.Hockey)
                    {
                        world.PayPlayersAnnualSalary(world.NHL);
                    }
                    else if (e.Sport == Sports.Soccer)
                    {
                        world.PayPlayersAnnualSalary(world.MLS);
                    }
                    DetermineSeasons();
                }
                else if (e.EventType == CalendarEventType.ProgressionRegression)
                {
                    League league = null;
                    //Association association = null;
                    //newsLabel.Text = "Running progression and regression for " + e.EventName + Environment.NewLine + newsLabel.Text;
                    if (e.Sport == Sports.Baseball)
                    {
                        league = world.MLB;
                    }
                    else if (e.Sport == Sports.Basketball)
                    {
                        league = world.NBA;
                    }
                    else if (e.Sport == Sports.Football)
                    {
                        league = world.NFL;
                    }
                    else if (e.Sport == Sports.Hockey)
                    {
                        league = world.NHL;
                    }
                    else if (e.Sport == Sports.Soccer)
                    {
                        league = world.MLS;
                    }
                    //else if (e.Sport == Sports.Boxing) association = world.WBA;
                    //else if (e.Sport == Sports.Golf) association = world.PGA;
                    //else if (e.Sport == Sports.Tennis) association = world.ATP;
                    //else if (e.Sport == Sports.MMA) association = world.UFC;

                    if (league != null)
                    {
                        foreach (Team t in league.TeamList)
                        {
                            foreach (Player p in t.Roster)
                            {
                                world.ProgressionRegression.PlayerProgression(p);
                            }
                        }

                        foreach (Player p in league.FreeAgents)
                        {
                            world.ProgressionRegression.PlayerProgression(p);
                        }

                        world.RetireLeaguePlayers(league);
                    }

                    /*else if (association != null)
                     * {
                     *  foreach (Player p in association.PlayerList) ProgressionRegression.PlayerProgression(p);
                     *
                     *  world.RetireAssociationPlayers(association);
                     * }*/

                    //newsLabel.Text = agency.DisplayAgencyProgressionRegression(e.Sport) + Environment.NewLine + newsLabel.Text;
                    //newsLabel.Text = agency.DisplayAgencyRetirements(e.Sport);
                }
                else if (e.EventType == CalendarEventType.DraftDeclaration)
                {
                    if (e.Sport == Sports.Basketball)
                    {
                        world.NBA.DeclaredEntrants = true;
                        //newsLabel.Text = "NBA Declared Entrants = " + world.NBA.DeclaredEntrants + Environment.NewLine + newsLabel.Text;
                    }
                    else if (e.Sport == Sports.Baseball)
                    {
                        world.MLB.DeclaredEntrants = true;
                    }
                    else if (e.Sport == Sports.Football)
                    {
                        world.NFL.DeclaredEntrants = true;
                        //newsLabel.Text = "NFL Declared Entrants = " + world.NFL.DeclaredEntrants + Environment.NewLine + newsLabel.Text;
                    }
                    else if (e.Sport == Sports.Hockey)
                    {
                        world.NHL.DeclaredEntrants = true;
                    }
                    else
                    {
                        world.MLS.DeclaredEntrants = true;
                    }
                }
            }
        }