public wCardViewer()
        {
            InitializeComponent();

            this.AllCards = DominionBase.Cards.CardCollection.GetAllCards(c => c.Location != DominionBase.Cards.Location.Invisible);
            this.AllCards.Sort(delegate(DominionBase.Cards.Card c1, DominionBase.Cards.Card c2) { return(c1.Name.CompareTo(c2.Name)); });
            cbCards.ItemsSource = this.AllCards;
            SourceContainerList sources = new SourceContainerList(this.AllCards.Select(c => c.Source).Distinct().OrderBy(s => s.ToString()));

            cbSets.ItemsSource = sources;
        }
Пример #2
0
        public wSettings(ref Settings settings)
        {
            this._MasterSettings = settings;
            this.Settings        = new NET_WPF.Settings(settings);

            this.DataContext = this.Settings;

            #region Card & Group generation
            this.Cards = DominionBase.Cards.CardCollection.GetAllCards(c => c.Location == DominionBase.Cards.Location.Kingdom);
            this.Cards.Sort(delegate(DominionBase.Cards.Card c1, DominionBase.Cards.Card c2) { return(c1.Name.CompareTo(c2.Name)); });

            foreach (DominionBase.Cards.Card card in this.Cards)
            {
                if (!this.Costs.ContainsKey(card.BaseCost))
                {
                    this.Costs[card.BaseCost] = 0;
                }
                this.Costs[card.BaseCost]++;

                foreach (DominionBase.Cards.Group group in Enum.GetValues(typeof(DominionBase.Cards.Group)))
                {
                    if (group == DominionBase.Cards.Group.Basic || group == DominionBase.Cards.Group.None)
                    {
                        continue;
                    }
                    if ((card.GroupMembership & group) == group)
                    {
                        if (!Groups.ContainsKey(group))
                        {
                            Groups[group] = 0;
                        }
                        Groups[group]++;
                    }
                }
            }
            #endregion

            InitializeComponent();

            #region Tab #1 -- Players
            slidNumPlayers.Value   = this.Settings.NumberOfPlayers;
            slidHumanPlayers.Value = this.Settings.NumberOfHumanPlayers;

            IEnumerable <Type>             aiTypes        = DominionBase.Players.PlayerCollection.GetAllAIs();
            IEnumerable <ucPlayerSettings> playerSettings = spPlayers.Children.OfType <ucPlayerSettings>();
            for (int count = 0; count < this.Settings.PlayerSettings.Count; count++)
            {
                playerSettings.ElementAt(count).AITypes        = aiTypes;
                playerSettings.ElementAt(count).PlayerSettings = this.Settings.PlayerSettings[count];
            }

            // human players used to be limited to 1
            slidHumanPlayers.Maximum = slidNumPlayers.Value;

            slidNumPlayers_ValueChanged(slidNumPlayers, null);
            slidHumanPlayers_ValueChanged(slidHumanPlayers, null);

            lbAISelection.DataContext = new ViewModel.AIListViewModel(aiTypes.Where(t => t != typeof(DominionBase.Players.AI.RandomAI)), settings.RandomAI_AllowedAIs);
            lbAISelection.SetBinding(ListBox.ItemsSourceProperty, new Binding("AIs"));
            #endregion

            #region Tab #2 -- Automation
            if (this.Settings.AutoPlayTreasures_LoanFirst)
            {
                rbChooser_AutomaticallyPlayTreasuresLoanBeforeVenture.IsChecked = true;
            }
            else
            {
                rbChooser_AutomaticallyPlayTreasuresVentureBeforeLoan.IsChecked = true;
            }
            if (this.Settings.AutoPlayTreasures_HornOfPlentyFirst)
            {
                rbChooser_AutomaticallyPlayTreasuresHornOfPlentyBeforeBank.IsChecked = true;
            }
            else
            {
                rbChooser_AutomaticallyPlayTreasuresBankBeforeHornOfPlenty.IsChecked = true;
            }
            #endregion

            #region Tab #3 -- Interface
            cbLayoutStyle.SelectedValue     = this.Settings.LayoutStyle;
            cbGameLogLocation.SelectedValue = this.Settings.GameLogLocation;

            slidToolTipDuration_ValueChanged(slidToolTipDuration, null);
            #endregion

            #region Tab #4 -- Kingdom Card Setup
            cbUsePreset.IsChecked       = this.Settings.UsePreset;
            cbShowPresetCards.IsChecked = this.Settings.Settings_ShowPresetCards;

            cbUsePreset_Checked(cbUsePreset, null);
            cbShowPresetCards_Checked(cbShowPresetCards, null);

            ucccConstraints.ConstraintCollection = this.Settings.Constraints;

            cbPresets.ItemsSource  = this.Settings.Presets;
            cbPresets.SelectedItem = this.Settings.Presets.SingleOrDefault(p => p.Name == this.Settings.PresetName);
            #endregion

            #region Tab #5 -- Card Settings
            foreach (DominionBase.Cards.CardsSettings cardsSettings in this.Settings.CardSettings)
            {
                icCardSettings.Items.Add(new ucCardSettings {
                    CardsSettings = cardsSettings
                });
            }
            #endregion

            #region Tab #6 -- Set & Group Information
            IEnumerable <DominionBase.Cards.Source> sets = Enum.GetValues(typeof(DominionBase.Cards.Source)).Cast <DominionBase.Cards.Source>();
            cbSet.ItemsSource = sets.Where(s => s != DominionBase.Cards.Source.All);

            IEnumerable <DominionBase.Cards.Category> categories = Enum.GetValues(typeof(DominionBase.Cards.Category)).Cast <DominionBase.Cards.Category>();
            cbCategory.ItemsSource = categories.Where(c => c != DominionBase.Cards.Category.Unknown && this.Cards.Any(card => (card.Category & c) == c));

            cbGroup.ItemsSource = this.Groups.OrderBy(kvp => (int)kvp.Key);
            #endregion
        }
		public wSettings(ref Settings settings)
		{
			this._MasterSettings = settings;
			this.Settings = new NET_WPF.Settings(settings);

			this.DataContext = this.Settings;

			#region Card & Group generation
			this.Cards = DominionBase.Cards.CardCollection.GetAllCards(c => c.Location == DominionBase.Cards.Location.Kingdom);
			this.Cards.Sort(delegate(DominionBase.Cards.Card c1, DominionBase.Cards.Card c2) { return c1.Name.CompareTo(c2.Name); });

			foreach (DominionBase.Cards.Card card in this.Cards)
			{
				if (!this.Costs.ContainsKey(card.BaseCost))
					this.Costs[card.BaseCost] = 0;
				this.Costs[card.BaseCost]++;

				foreach (DominionBase.Cards.Group group in Enum.GetValues(typeof(DominionBase.Cards.Group)))
				{
					if (group == DominionBase.Cards.Group.Basic || group == DominionBase.Cards.Group.None)
						continue;
					if ((card.GroupMembership & group) == group)
					{
						if (!Groups.ContainsKey(group))
							Groups[group] = 0;
						Groups[group]++;
					}
				}
			}
			#endregion

			InitializeComponent();

			#region Tab #1 -- Players
			slidNumPlayers.Value = this.Settings.NumberOfPlayers;
			slidHumanPlayers.Value = this.Settings.NumberOfHumanPlayers;

			IEnumerable<Type> aiTypes = DominionBase.Players.PlayerCollection.GetAllAIs();
			IEnumerable<ucPlayerSettings> playerSettings = spPlayers.Children.OfType<ucPlayerSettings>();
			for (int count = 0; count < this.Settings.PlayerSettings.Count; count++)
			{
				playerSettings.ElementAt(count).AITypes = aiTypes;
				playerSettings.ElementAt(count).PlayerSettings = this.Settings.PlayerSettings[count];
			}

            // human players used to be limited to 1
            slidHumanPlayers.Maximum = slidNumPlayers.Value;

            slidNumPlayers_ValueChanged(slidNumPlayers, null);
			slidHumanPlayers_ValueChanged(slidHumanPlayers, null);

			lbAISelection.DataContext = new ViewModel.AIListViewModel(aiTypes.Where(t => t != typeof(DominionBase.Players.AI.RandomAI)), settings.RandomAI_AllowedAIs);
			lbAISelection.SetBinding(ListBox.ItemsSourceProperty, new Binding("AIs"));
			#endregion

			#region Tab #2 -- Automation
			if (this.Settings.AutoPlayTreasures_LoanFirst)
				rbChooser_AutomaticallyPlayTreasuresLoanBeforeVenture.IsChecked = true;
			else
				rbChooser_AutomaticallyPlayTreasuresVentureBeforeLoan.IsChecked = true;
			if (this.Settings.AutoPlayTreasures_HornOfPlentyFirst)
				rbChooser_AutomaticallyPlayTreasuresHornOfPlentyBeforeBank.IsChecked = true;
			else
				rbChooser_AutomaticallyPlayTreasuresBankBeforeHornOfPlenty.IsChecked = true;
			#endregion

			#region Tab #3 -- Interface
			cbLayoutStyle.SelectedValue = this.Settings.LayoutStyle;
			cbGameLogLocation.SelectedValue = this.Settings.GameLogLocation;

			slidToolTipDuration_ValueChanged(slidToolTipDuration, null);
			#endregion

			#region Tab #4 -- Kingdom Card Setup
			cbUsePreset.IsChecked = this.Settings.UsePreset;
			cbShowPresetCards.IsChecked = this.Settings.Settings_ShowPresetCards;

			cbUsePreset_Checked(cbUsePreset, null);
			cbShowPresetCards_Checked(cbShowPresetCards, null);

			ucccConstraints.ConstraintCollection = this.Settings.Constraints;

			cbPresets.ItemsSource = this.Settings.Presets;
			cbPresets.SelectedItem = this.Settings.Presets.SingleOrDefault(p => p.Name == this.Settings.PresetName);
			#endregion

			#region Tab #5 -- Card Settings
			foreach (DominionBase.Cards.CardsSettings cardsSettings in this.Settings.CardSettings)
				icCardSettings.Items.Add(new ucCardSettings { CardsSettings = cardsSettings });
			#endregion

			#region Tab #6 -- Set & Group Information
			IEnumerable<DominionBase.Cards.Source> sets = Enum.GetValues(typeof(DominionBase.Cards.Source)).Cast<DominionBase.Cards.Source>();
			cbSet.ItemsSource = sets.Where(s => s != DominionBase.Cards.Source.All);

			IEnumerable<DominionBase.Cards.Category> categories = Enum.GetValues(typeof(DominionBase.Cards.Category)).Cast<DominionBase.Cards.Category>();
			cbCategory.ItemsSource = categories.Where(c => c != DominionBase.Cards.Category.Unknown && this.Cards.Any(card => (card.Category & c) == c));

			cbGroup.ItemsSource = this.Groups.OrderBy(kvp => (int)kvp.Key);
			#endregion
		}