示例#1
0
        public OptimizeWindow(Character c)
        {
            InitializeTalentList(c);

            InitializeComponent();

#if !SILVERLIGHT
            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            this.WindowState           = System.Windows.WindowState.Normal;
            this.ResizeMode            = System.Windows.ResizeMode.NoResize;
#endif

            character = c;

            optimizer = new ItemInstanceOptimizer();
            optimizer.OptimizeCharacterProgressChanged += new OptimizeCharacterProgressChangedEventHandler(optimizer_OptimizeCharacterProgressChanged);
            optimizer.OptimizeCharacterCompleted       += new OptimizeCharacterCompletedEventHandler(optimizer_OptimizeCharacterCompleted);
            optimizer.ComputeUpgradesProgressChanged   += new ComputeUpgradesProgressChangedEventHandler(optimizer_ComputeUpgradesProgressChanged);
            optimizer.ComputeUpgradesCompleted         += new ComputeUpgradesCompletedEventHandler(optimizer_ComputeUpgradesCompleted);

            List <string> calcsToOptimizeStrings = new List <string>();
            calcsToOptimizeStrings.Add("Overall Rating");
            foreach (string subpoints in Calculations.SubPointNameColors.Keys)
            {
                calcsToOptimizeStrings.Add(subpoints + " Rating");
            }
            CalculationToOptimizeCombo.Tag           = Calculations.SubPointNameColors.Count;
            CalculationToOptimizeCombo.ItemsSource   = calcsToOptimizeStrings;
            CalculationToOptimizeCombo.SelectedIndex = 0;

            ThoroughnessSlider.Value        = OptimizerSettings.Default.Thoroughness;
            CK_Override_Regem.IsChecked     = OptimizerSettings.Default.OverrideRegem;
            CK_Override_Reenchant.IsChecked = OptimizerSettings.Default.OverrideReenchant;
            CK_Override_Reforge.IsChecked   = OptimizerSettings.Default.OverrideReforge;

            string calculationString = character.CalculationToOptimize;
            if (string.IsNullOrEmpty(calculationString))
            {
                calculationString = OptimizerSettings.Default.CalculationToOptimize;
            }
            if (calculationString != null)
            {
                if (calculationString.StartsWith("[Overall]"))
                {
                    CalculationToOptimizeCombo.SelectedIndex = 0;
                }
                else if (calculationString.StartsWith("[SubPoint "))
                {
                    calculationString = calculationString.Substring(10).TrimEnd(']');
                    int index = int.Parse(calculationString);
                    if (index < Calculations.SubPointNameColors.Count)
                    {
                        CalculationToOptimizeCombo.SelectedIndex = index + 1;
                    }
                }
                else
                {
                    if (Array.IndexOf(Calculations.OptimizableCalculationLabels, calculationString) >= 0)
                    {
                        CalculationToOptimizeCombo.SelectedItem = calculationString;
                    }
                }
            }

            if (character.OptimizationRequirements != null)
            {
                foreach (OptimizationRequirement requirement in character.OptimizationRequirements)
                {
                    AddRequirement(requirement);
                }
            }
        }
        public OptimizeWindow(Character c)
        {
            InitializeTalentList(c);

            InitializeComponent();

#if !SILVERLIGHT
            this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            this.WindowState = System.Windows.WindowState.Normal;
            this.ResizeMode = System.Windows.ResizeMode.NoResize;
#endif

            character = c;

            optimizer = new ItemInstanceOptimizer();
            optimizer.OptimizeCharacterProgressChanged += new OptimizeCharacterProgressChangedEventHandler(optimizer_OptimizeCharacterProgressChanged);
            optimizer.OptimizeCharacterCompleted += new OptimizeCharacterCompletedEventHandler(optimizer_OptimizeCharacterCompleted);
            optimizer.ComputeUpgradesProgressChanged += new ComputeUpgradesProgressChangedEventHandler(optimizer_ComputeUpgradesProgressChanged);
            optimizer.ComputeUpgradesCompleted += new ComputeUpgradesCompletedEventHandler(optimizer_ComputeUpgradesCompleted);

            List<string> calcsToOptimizeStrings = new List<string>();
            calcsToOptimizeStrings.Add("Overall Rating");
            foreach (string subpoints in Calculations.SubPointNameColors.Keys)
                calcsToOptimizeStrings.Add(subpoints + " Rating");
            CalculationToOptimizeCombo.Tag = Calculations.SubPointNameColors.Count;
            CalculationToOptimizeCombo.ItemsSource = calcsToOptimizeStrings;
            CalculationToOptimizeCombo.SelectedIndex = 0;

            ThoroughnessSlider.Value = OptimizerSettings.Default.Thoroughness;
            CK_Override_Regem.IsChecked = OptimizerSettings.Default.OverrideRegem;
            CK_Override_Reenchant.IsChecked = OptimizerSettings.Default.OverrideReenchant;
            CK_Override_Reforge.IsChecked = OptimizerSettings.Default.OverrideReforge;

            string calculationString = character.CalculationToOptimize;
            if (string.IsNullOrEmpty(calculationString)) calculationString = OptimizerSettings.Default.CalculationToOptimize;
            if (calculationString != null)
            {
                if (calculationString.StartsWith("[Overall]"))
                {
                    CalculationToOptimizeCombo.SelectedIndex = 0;
                }
                else if (calculationString.StartsWith("[SubPoint "))
                {
                    calculationString = calculationString.Substring(10).TrimEnd(']');
                    int index = int.Parse(calculationString);
                    if (index < Calculations.SubPointNameColors.Count)
                    {
                        CalculationToOptimizeCombo.SelectedIndex = index + 1;
                    }
                }
                else
                {
                    if (Array.IndexOf(Calculations.OptimizableCalculationLabels, calculationString) >= 0)
                    {
                        CalculationToOptimizeCombo.SelectedItem = calculationString;
                    }
                }
            }

            if (character.OptimizationRequirements != null)
                foreach (OptimizationRequirement requirement in character.OptimizationRequirements)
                    AddRequirement(requirement);
        }
示例#3
0
        public BatchTools()
        {
            MaxRounds = 3;
            BatchCharacterList = new BatchCharacterList();
            batchListReady = true;

            optimizer = new ItemInstanceOptimizer();
            optimizer.OptimizeCharacterProgressChanged += new OptimizeCharacterProgressChangedEventHandler(_optimizer_OptimizeCharacterProgressChanged);
            optimizer.OptimizeCharacterCompleted += new OptimizeCharacterCompletedEventHandler(_optimizer_OptimizeCharacterCompleted);
            optimizer.ComputeUpgradesProgressChanged += new ComputeUpgradesProgressChangedEventHandler(_optimizer_ComputeUpgradesProgressChanged);
            optimizer.ComputeUpgradesCompleted += new ComputeUpgradesCompletedEventHandler(_optimizer_ComputeUpgradesCompleted);
            optimizer.EvaluateUpgradeProgressChanged += new ProgressChangedEventHandler(_optimizer_EvaluateUpgradeProgressChanged);
            optimizer.EvaluateUpgradeCompleted += new EvaluateUpgradeCompletedEventHandler(_optimizer_EvaluateUpgradeCompleted);
        }
示例#4
0
        public FormOptimize(Character character)
        {
            InitializeTalentList(character);

            InitializeComponent();
            _character = character;
            _optimizer = new ItemInstanceOptimizer();
            _optimizer.OptimizeCharacterProgressChanged += new OptimizeCharacterProgressChangedEventHandler(_optimizer_OptimizeCharacterProgressChanged);
            _optimizer.OptimizeCharacterCompleted       += new OptimizeCharacterCompletedEventHandler(_optimizer_OptimizeCharacterCompleted);
            _optimizer.ComputeUpgradesProgressChanged   += new ComputeUpgradesProgressChangedEventHandler(_optimizer_ComputeUpgradesProgressChanged);
            _optimizer.ComputeUpgradesCompleted         += new ComputeUpgradesCompletedEventHandler(_optimizer_ComputeUpgradesCompleted);

            comboBoxCalculationToOptimize.Items.Add("Overall Rating");
            comboBoxCalculationToOptimize.Tag = Calculations.SubPointNameColors.Count;
            foreach (string subPoint in Calculations.SubPointNameColors.Keys)
            {
                comboBoxCalculationToOptimize.Items.Add(subPoint + " Rating");
            }
            comboBoxCalculationToOptimize.Items.AddRange(Calculations.OptimizableCalculationLabels);
            comboBoxCalculationToOptimize.SelectedIndex = 0;

            checkBoxOverrideRegem.Checked     = Properties.Optimizer.Default.OverrideRegem;
            checkBoxOverrideReenchant.Checked = Properties.Optimizer.Default.OverrideReenchant;
            trackBarThoroughness.Value        = Properties.Optimizer.Default.Thoroughness;
            string calculationString = character.CalculationToOptimize;

            if (string.IsNullOrEmpty(calculationString))
            {
                calculationString = Properties.Optimizer.Default.CalculationToOptimize;
            }
            if (calculationString != null)
            {
                if (calculationString.StartsWith("[Overall]", StringComparison.Ordinal))
                {
                    comboBoxCalculationToOptimize.SelectedIndex = 0;
                }
                else if (calculationString.StartsWith("[SubPoint ", StringComparison.Ordinal))
                {
                    calculationString = calculationString.Substring(10).TrimEnd(']');
                    int index = int.Parse(calculationString);
                    if (index < Calculations.SubPointNameColors.Count)
                    {
                        comboBoxCalculationToOptimize.SelectedIndex = index + 1;
                    }
                }
                else
                {
                    if (Array.IndexOf(Calculations.OptimizableCalculationLabels, calculationString) >= 0)
                    {
                        comboBoxCalculationToOptimize.SelectedItem = calculationString;
                    }
                }
            }
            if (character.OptimizationRequirements != null)
            {
                for (int i = 0; i < character.OptimizationRequirements.Count; i++)
                {
                    buttonAddRequirement_Click(null, null);
                }
                int reqIndex = 0;
                foreach (Control ctrl in groupBoxRequirements.Controls)
                {
                    if (ctrl is Panel)
                    {
                        foreach (Control reqCtrl in ctrl.Controls)
                        {
                            switch (reqCtrl.Name)
                            {
                            case "comboBoxRequirementCalculation":
                                ComboBox reqComboBox = (ComboBox)reqCtrl;
                                calculationString = character.OptimizationRequirements[reqIndex].Calculation;
                                if (calculationString.StartsWith("[Overall]", StringComparison.Ordinal))
                                {
                                    reqComboBox.SelectedIndex = 0;
                                }
                                else if (calculationString.StartsWith("[SubPoint ", StringComparison.Ordinal))
                                {
                                    calculationString = calculationString.Substring(10).TrimEnd(']');
                                    int index = int.Parse(calculationString);
                                    if (index < Calculations.SubPointNameColors.Count)
                                    {
                                        reqComboBox.SelectedIndex = index + 1;
                                    }
                                }
                                else if (calculationString.StartsWith("[Talent ", StringComparison.Ordinal))
                                {
                                    reqComboBox.SelectedItem = "Talent";
                                }
                                else if (calculationString.StartsWith("[Cost]", StringComparison.Ordinal))
                                {
                                    reqComboBox.SelectedItem = "Cost";
                                }
                                else
                                {
                                    if (Array.IndexOf(Calculations.OptimizableCalculationLabels, calculationString) >= 0)
                                    {
                                        reqComboBox.SelectedItem = calculationString;
                                    }
                                }
                                break;

                            case "comboBoxRequirementTalent":
                                calculationString = character.OptimizationRequirements[reqIndex].Calculation;
                                if (calculationString.StartsWith("[Talent ", StringComparison.Ordinal))
                                {
                                    calculationString = calculationString.Substring(8).TrimEnd(']');
                                    int index = int.Parse(calculationString);
                                    if (index < talentList.Length)
                                    {
                                        ComboBox reqComboBoxTalent = (ComboBox)reqCtrl;
                                        reqComboBoxTalent.SelectedIndex = index;
                                    }
                                }
                                break;

                            case "comboBoxRequirementGreaterLessThan":
                                (reqCtrl as ComboBox).SelectedIndex = character.OptimizationRequirements[reqIndex].LessThan ? 1 : 0;
                                break;

                            case "numericUpDownRequirementValue":
                                (reqCtrl as NumericUpDown).Value = (decimal)character.OptimizationRequirements[reqIndex].Value;
                                break;
                            }
                        }
                        reqIndex++;
                    }
                }
            }
        }