Exemple #1
0
 private void LoadChampionships()
 {
     for (int i = 3; i <= xlWorkbook.Sheets.Count; i++)
     {
         Championship c = new Championship(i, xlWorkbook.Sheets[i], AllDrivers);
         Championships.Add(c);
     }
     if (currentChampionship == -1)
     {
         currentChampionship           = Championships.Count - 1;
         btnNextChampionship.IsEnabled = false;
     }
     if (Championships[currentChampionship].State == ChampionshipState.Completed)
     {
         btnStartRace.IsEnabled = false;
     }
     ReloadChampionshipContainer();
 }
Exemple #2
0
        private void btnStartCustomRace_Click(object sender, RoutedEventArgs e)
        {
            Format format = Format.Formats.First(x => x.Id == CustomRaceFormatSelector.SelectedIndex);

            if (CustomSelectedDrivers.Count >= format.MinDrivers && CustomSelectedDrivers.Count <= format.MaxDrivers)
            {
                Label CustomCSLabel = new Label {
                    VerticalAlignment = VerticalAlignment.Center
                };
                CustomRaceLeftGrid.Children.Clear();
                CustomRaceLeftGrid.RowDefinitions.Clear();
                CustomRaceRightGrid.Children.Clear();
                CustomRaceRightGrid.RowDefinitions.Clear();
                Championship cs = new Championship(CustomSelectedDrivers, format, CustomRaceLeftGrid, CustomRaceRightGrid, CustomCSLabel);
                CustomCSHeader.Children.Clear();
                CustomCSHeader.ColumnDefinitions.Clear();
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                CustomCSHeader.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });

                Button CustomCSStartRace = new Button {
                    Content = "Start Race"
                };
                Button CustomCSNextDriver = new Button {
                    Content = "Next Driver"
                };
                Button CustomCSFinishRace = new Button {
                    Content = "Finish Race"
                };
                Button CustomCSFinishCS = new Button {
                    Content = "Finish Championship"
                };
                Button CustomCSEndRace = new Button {
                    Content = "End Race"
                };
                Button CustomCSBackToDriverSelection = new Button {
                    Content = "Back"
                };

                CustomCSLabel.SetValue(Grid.ColumnProperty, 0);

                CustomCSStartRace.SetValue(Grid.ColumnProperty, 1);
                CustomCSStartRace.Click += (sender2, e2) => { cs.StartRace(); CustomCSStartRace.IsEnabled = false; CustomCSNextDriver.IsEnabled = true; CustomCSFinishRace.IsEnabled = true; };

                CustomCSNextDriver.SetValue(Grid.ColumnProperty, 2);
                CustomCSNextDriver.Click += (sender2, e2) => { if (!cs.NextDriver())
                                                               {
                                                                   CustomCSNextDriver.IsEnabled = false; CustomCSFinishRace.IsEnabled = false; CustomCSEndRace.IsEnabled = true;
                                                               }
                                                               ; };
                CustomCSNextDriver.IsEnabled = false;

                CustomCSEndRace.SetValue(Grid.ColumnProperty, 3);
                CustomCSEndRace.Click += (sender2, e2) =>
                {
                    cs.EndRace(true);
                    cs.SaveRatingsToExcel(true);
                    CustomCSEndRace.IsEnabled = false;
                    if (!cs.Format.IsFinished(cs))
                    {
                        CustomCSStartRace.IsEnabled = true;
                    }
                    ResetData();
                };
                CustomCSEndRace.IsEnabled = false;

                CustomCSFinishRace.SetValue(Grid.ColumnProperty, 4);
                CustomCSFinishRace.Click += (sender2, e2) =>
                {
                    while (cs.NextDriver())
                    {
                        ;
                    }
                    CustomCSFinishRace.IsEnabled = false;
                    CustomCSNextDriver.IsEnabled = false;
                    CustomCSEndRace.IsEnabled    = true;
                };
                CustomCSFinishRace.IsEnabled = false;

                CustomCSFinishCS.SetValue(Grid.ColumnProperty, 5);
                CustomCSFinishCS.Click += (sender2, e2) =>
                {
                    while (!cs.Format.IsFinished(cs))
                    {
                        cs.StartRace();
                        while (cs.NextDriver())
                        {
                            ;
                        }
                        cs.EndRace(true);
                    }
                    cs.SaveRatingsToExcel(true);
                    ResetData();
                    CustomCSFinishCS.IsEnabled   = false;
                    CustomCSStartRace.IsEnabled  = false;
                    CustomCSFinishRace.IsEnabled = false;
                    CustomCSEndRace.IsEnabled    = false;
                    CustomCSNextDriver.IsEnabled = false;
                };

                CustomCSBackToDriverSelection.SetValue(Grid.ColumnProperty, 6);
                CustomCSBackToDriverSelection.Click += (sender2, e2) =>
                {
                    CustomCSHeader.Children.Clear();
                    foreach (UIElement elem in CustomCSHeaderOriginalButtons)
                    {
                        CustomCSHeader.Children.Add(elem);
                    }
                    CustomSelectedDrivers.Clear();
                    ReloadDriverSelection();
                };

                CustomCSHeader.Children.Add(CustomCSLabel);
                CustomCSHeader.Children.Add(CustomCSStartRace);
                CustomCSHeader.Children.Add(CustomCSNextDriver);
                CustomCSHeader.Children.Add(CustomCSEndRace);
                CustomCSHeader.Children.Add(CustomCSFinishRace);
                CustomCSHeader.Children.Add(CustomCSFinishCS);
                CustomCSHeader.Children.Add(CustomCSBackToDriverSelection);
            }
            else
            {
                Console.WriteLine("Too many or too few drivers selected.");
            }
        }
Exemple #3
0
        public DriverPanel(Driver driver, bool showChampionships)
        {
            Driver = driver;
            Height = 40;
            ColumnDefinitions.Add(new ColumnDefinition {
                Width = new System.Windows.GridLength(50, GridUnitType.Pixel)
            });
            ColumnDefinitions.Add(new ColumnDefinition {
                Width = new System.Windows.GridLength(180, GridUnitType.Pixel)
            });
            ColumnDefinitions.Add(new ColumnDefinition {
                Width = new System.Windows.GridLength(70, GridUnitType.Pixel)
            });
            ColumnDefinitions.Add(new ColumnDefinition {
                Width = new System.Windows.GridLength(50, GridUnitType.Pixel)
            });
            ColumnDefinitions.Add(new ColumnDefinition {
                Width = new System.Windows.GridLength(50, GridUnitType.Pixel)
            });
            if (showChampionships)
            {
                int colCounter = 5;
                if (driver.Championships.Where(c => c.State == ChampionshipState.Open || c.State == ChampionshipState.Running).Count() == 0)
                {
                    Championship cs = driver.Championships.Last();
                    ColumnDefinitions.Add(new ColumnDefinition {
                        Width = new System.Windows.GridLength(40, GridUnitType.Pixel)
                    });
                    Image csImage = new Image {
                        Source = new BitmapImage(new Uri("C:\\Microsoft\\conquest\\RaceSimulator\\res\\icons\\" + cs.Icon + ".png")), Height = 32, VerticalAlignment = VerticalAlignment.Center
                    };
                    csImage.SetValue(Grid.ColumnProperty, colCounter++);
                    Children.Add(csImage);
                    int rank = cs.Drivers.OrderByDescending(d => d.SeasonPoints).ToList().IndexOf(driver);
                    if (rank < cs.Format.NumGreen)
                    {
                        ColumnDefinitions.Add(new ColumnDefinition {
                            Width = new System.Windows.GridLength(40, GridUnitType.Pixel)
                        });
                        Image promImage = new Image {
                            Source = new BitmapImage(new Uri("C:\\Microsoft\\conquest\\RaceSimulator\\res\\icons\\promotion.png")), Height = 20, VerticalAlignment = VerticalAlignment.Center
                        };
                        promImage.SetValue(Grid.ColumnProperty, colCounter - 1);
                        Children.Add(promImage);
                    }
                    else if (rank >= cs.Drivers.Count - cs.Format.NumRed)
                    {
                        ColumnDefinitions.Add(new ColumnDefinition {
                            Width = new System.Windows.GridLength(40, GridUnitType.Pixel)
                        });
                        Image relImage = new Image {
                            Source = new BitmapImage(new Uri("C:\\Microsoft\\conquest\\RaceSimulator\\res\\icons\\relegation.png")), Height = 20, VerticalAlignment = VerticalAlignment.Center
                        };
                        relImage.SetValue(Grid.ColumnProperty, colCounter - 1);
                        Children.Add(relImage);
                    }
                }
                else
                {
                    foreach (Championship cs in driver.Championships.Where(c => c.State == ChampionshipState.Open || c.State == ChampionshipState.Running))
                    {
                        ColumnDefinitions.Add(new ColumnDefinition {
                            Width = new System.Windows.GridLength(40, GridUnitType.Pixel)
                        });
                        Image csImage = new Image {
                            Source = new BitmapImage(new Uri("C:\\Microsoft\\conquest\\RaceSimulator\\res\\icons\\" + cs.Icon + ".png")), Height = 32
                        };
                        csImage.SetValue(Grid.ColumnProperty, colCounter++);
                        Children.Add(csImage);
                    }
                }
            }


            RankLabel = new Label {
                VerticalAlignment = VerticalAlignment.Center
            };
            RankLabel.SetValue(Grid.ColumnProperty, 0);
            NameLabel = new Label {
                Content = driver.Name, VerticalAlignment = VerticalAlignment.Center
            };
            NameLabel.SetValue(Grid.ColumnProperty, 1);
            CountryImage = new Image {
                Source = new BitmapImage(new Uri("C:\\Microsoft\\conquest\\RaceSimulator\\res\\countries\\" + driver.Country.Name + ".png")), Height = 35, VerticalAlignment = VerticalAlignment.Center
            };
            CountryImage.SetValue(Grid.ColumnProperty, 2);
            RatingLabel = new Label {
                VerticalAlignment = VerticalAlignment.Center
            };
            RatingLabel.SetValue(Grid.ColumnProperty, 3);
            RatingChangeLabel = new Label {
                VerticalAlignment = VerticalAlignment.Center
            };
            RatingChangeLabel.SetValue(Grid.ColumnProperty, 4);

            Children.Add(RankLabel);
            Children.Add(NameLabel);
            Children.Add(CountryImage);
            Children.Add(RatingLabel);
            Children.Add(RatingChangeLabel);
        }