private void Game_Replay_Click(object sender, RoutedEventArgs e) { if (game == null || game.State == DominionBase.GameState.Running || game.State == DominionBase.GameState.NotStarted) { miReplay.IsEnabled = false; return; } DominionBase.GameSettings settings = new DominionBase.GameSettings(); settings.IdenticalStartingHands = game.Settings.IdenticalStartingHands; settings.ColonyPlatinumUsage = DominionBase.ColonyPlatinumUsage.Never; settings.ShelterUsage = DominionBase.ShelterUsage.Never; Dictionary<String, DominionBase.Cards.Card> cardDictMap = new Dictionary<string,DominionBase.Cards.Card>(); settings.Preset = new DominionBase.Cards.Preset("Replay"); foreach (DominionBase.Piles.Supply supply in game.Table.Supplies.Values) { if (supply.Location == DominionBase.Cards.Location.Kingdom) { settings.Preset.Cards.Add(DominionBase.Cards.Card.CreateInstance(supply.CardType)); } //if (supply.CardType == DominionBase.Cards.Prosperity.TypeClass.Colony || supply.CardType == DominionBase.Cards.Prosperity.TypeClass.Platinum) // settings.ColonyPlatinumUsage = DominionBase.ColonyPlatinumUsage.Always; } if (game.Settings.ColonyPlatinumUsage == DominionBase.ColonyPlatinumUsage.Used) settings.ColonyPlatinumUsage = DominionBase.ColonyPlatinumUsage.Always; if (game.Settings.ShelterUsage == DominionBase.ShelterUsage.Used) settings.ShelterUsage = DominionBase.ShelterUsage.Always; List<DominionBase.Cards.Card> copyOfPresetCards = new List<DominionBase.Cards.Card>(settings.Preset.Cards); foreach (DominionBase.Cards.Card presetCard in copyOfPresetCards) presetCard.CheckSetup(settings.Preset, game.Table); settings.RandomAI_Unique = game.Settings.RandomAI_Unique; settings.RandomAI_AllowedAIs.Clear(); settings.RandomAI_AllowedAIs.AddRange(game.Settings.RandomAI_AllowedAIs); StartGame(settings); }
private void Game_NewGame_Click(object sender, RoutedEventArgs e) { if (game != null && game.State == DominionBase.GameState.Running) { _StartingNewGame = true; if (!IsEndGameOK()) return; } else { DominionBase.GameSettings settings = new DominionBase.GameSettings(); settings.IdenticalStartingHands = _Settings.IdenticalStartingHands; settings.Constraints.AddRange(_Settings.Constraints); if (_Settings.UsePreset) { settings.Constraints.Clear(); try { settings.Preset = _Settings.Presets.SingleOrDefault(p => p.Name == _Settings.PresetName); } catch { } if (settings.Preset == null) { wMessageBox.Show(String.Format("Cannot find preset named \"{0}\"!{1}Please check your presets.txt file.", _Settings.PresetName, System.Environment.NewLine), "Cannot find preset", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } } settings.CardSettings.AddRange(_Settings.CardSettings); settings.RandomAI_Unique = _Settings.RandomAI_Unique; settings.RandomAI_AllowedAIs.Clear(); settings.RandomAI_AllowedAIs.AddRange(_Settings.RandomAI_AllowedAIs); if (_Settings.ForceColonyPlatinum) settings.ColonyPlatinumUsage = DominionBase.ColonyPlatinumUsage.Always; if (_Settings.ForceShelters) settings.ShelterUsage = DominionBase.ShelterUsage.Always; StartGame(settings); this.DataContext = wMain.Settings; } }