private void Form1_Load(object sender, EventArgs e) { // load window-position and size this.Size = Properties.Settings.Default.formSize; if (this.Size.Height < 200) this.Size = new System.Drawing.Size(this.Size.Width, 200); if (this.Size.Width < 400) this.Size = new System.Drawing.Size(400, this.Size.Height); this.Location = Properties.Settings.Default.formLocation; // check if form is on screen Screen[] screens = Screen.AllScreens; bool isOnScreen = false; foreach (Screen screen in screens) { Rectangle formRectangle = new Rectangle(Left, Top, Width, Height); if (screen.WorkingArea.Contains(formRectangle)) { isOnScreen = true; break; } } if (!isOnScreen) Location = new Point(50, 50); // load column-widths int[] cw = Properties.Settings.Default.columnWidths; if (cw != null && cw.Length > 0) { for (int c = 0; c < cw.Length; c++) listViewLibrary.Columns[c].Width = cw[c]; } // load listviewLibSorting lvwColumnSorterLibrary.SortColumn = Properties.Settings.Default.listViewSortCol; lvwColumnSorterLibrary.Order = (Properties.Settings.Default.listViewSortAsc ? SortOrder.Ascending : SortOrder.Descending); // load statweights double[][] custWd = Properties.Settings.Default.customStatWeights; string[] custWs = Properties.Settings.Default.customStatWeightNames; Dictionary<string, double[]> custW = new Dictionary<string, double[]>(); if (custWs != null && custWs.Length > 0) { for (int i = 0; i < custWs.Length; i++) { if (i < custWd.Length) { custW.Add(custWs[i], custWd[i]); } } } statWeighting1.CustomWeightings = custW; // last set values are saved at the end of the customweightings if (custWs != null && custWd != null && custWd.Length > custWs.Length) statWeighting1.Values = custWd[custWs.Length]; autoSave = Properties.Settings.Default.autosave; autoSaveMinutes = Properties.Settings.Default.autosaveMinutes; statIOs.Add(this.statIOHealth); statIOs.Add(this.statIOStamina); statIOs.Add(this.statIOOxygen); statIOs.Add(this.statIOFood); statIOs.Add(this.statIOWeight); statIOs.Add(this.statIODamage); statIOs.Add(this.statIOSpeed); statIOs.Add(this.statIOTorpor); testingIOs.Add(this.statTestingHealth); testingIOs.Add(this.statTestingStamina); testingIOs.Add(this.statTestingOxygen); testingIOs.Add(this.statTestingFood); testingIOs.Add(this.statTestingWeight); testingIOs.Add(this.statTestingDamage); testingIOs.Add(this.statTestingSpeed); testingIOs.Add(this.statTestingTorpor); for (int s = 0; s < 8; s++) { statIOs[s].Title = Utils.statName(s); testingIOs[s].Title = Utils.statName(s); if (Utils.precision(s) == 3) { statIOs[s].Percent = true; testingIOs[s].Percent = true; } statIOs[s].statIndex = s; testingIOs[s].statIndex = s; testingIOs[s].LevelChanged += new LevelChangedEventHandler(this.statIOUpdateValue); testingIOs[s].InputType = StatIOInputType.LevelsInputType; statIOs[s].InputValueChanged += new InputValueChangedEventHandler(this.statIOQuickWildLevelCheck); considerStatHighlight[s] = ((Properties.Settings.Default.consideredStats & (1 << s)) > 0); checkedListBoxConsiderStatTop.SetItemChecked(s, considerStatHighlight[s]); } statIOTorpor.ShowBarAndLock = false; // torpor should not show bar, it get's too wide and is not interesting for breeding statTestingTorpor.ShowBarAndLock = false; // enable 0-lock for dom-levels of oxygen, food (most often they are not leveld up) statIOs[2].DomLevelZero = true; statIOs[3].DomLevelZero = true; assignCollectionClasses(); filterListAllowed = true; // ToolTips ToolTip tt = new ToolTip(); tt.SetToolTip(this.checkBoxJustTamed, "Check this if there was no server-restart or if you didn't logout since you tamed the creature.\nUncheck this if you know there was a server-restart (many servers restart every night).\nIf it is some days ago (IRL) you tamed the creature you should probably uncheck this checkbox.\nThe reason for this is a bug in the game, that displays a too high Torpor-value after a creature is tamed."); tt.SetToolTip(checkBoxWildTamedAuto, "For most creatures the tool recognizes if they are wild or tamed.\nFor Giganotosaurus and maybe if you have custom server-settings you have to select manually if the creature is wild or tamed."); tt.SetToolTip(checkBoxQuickWildCheck, "Check this if you just want a quick check of the levels of a wild (untamed) creature.\nThe levels are then shown without the extraction-process (and without validation)."); tt.SetToolTip(radioButtonBPTopStatsCn, "Top Stats, Conservative.\nCheck for best long-term-results and if you want to go safe.\nThis mode will get to the best possible offspring steady and surely.\nSome offsprings might be worse than in High-Stats-Mode, but that's the mode you go if you want to have that perfect creature in some generations."); tt.SetToolTip(radioButtonBPTopStats, "Top Stats, Feeling Lucky.\nCheck for best long-term-results and if you're feeling lucky. It can be faster to get the perfect creature than in the Top-Stat-Conservative-Mode if you're lucky.\nSome offsprings might be worse than in High-Stats-Mode, but you also have a chance to the best possible offspring."); tt.SetToolTip(radioButtonBPHighStats, "Check for best next-generation-results.\nThe chance for an overall good creature is better.\nCheck if it's not important to have a Top-Stats-Offspring."); tt.SetToolTip(labelSum, "Sum of the levels that can be extracted (i.e. speed and sometimes oxygen is not included)"); // Set up the file watcher fileSync = new FileSync(currentFileName, collectionChanged); if (Values.V.loadValues() && Values.V.speciesNames.Count > 0) { creatureCollection.multipliers = Values.V.statMultipliers; Values.V.applyMultipliersToStats(Values.V.statMultipliers); // set species comboboxes updateSpeciesComboboxes(); // load last save file: if (Properties.Settings.Default.LastSaveFile != "") loadCollectionFile(Properties.Settings.Default.LastSaveFile); for (int s = 0; s < 8; s++) { statIOs[s].Input = (Values.V.species[0].stats[s].BaseValue + Values.V.species[0].stats[s].AddWhenTamed) * (1 + Values.V.species[0].stats[s].MultAffinity * 0.8); } } else { MessageBox.Show("The values-file couldn't be loaded, this application does not work without. Try redownloading the tool.", "Error: Values-file not found", MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); } clearAll(); // UI loaded tamingControl1.selectedSpeciesIndex = -1; tamingControl1.selectedSpeciesIndex = 0; // check for updates DateTime lastUpdateCheck = Properties.Settings.Default.lastUpdateCheck; if (DateTime.Now.AddDays(-7) > lastUpdateCheck) checkForUpdates(true); //// TODO: debug-numbers //statIOs[0].Input = 2430.1; //statIOs[1].Input = 738; //statIOs[2].Input = 1558; //statIOs[3].Input = 7600; //statIOs[4].Input = 426; //statIOs[5].Input = 2.308; //statIOs[6].Input = 1.7; //statIOs[7].Input = 6566.5; //comboBoxSpeciesExtractor.SelectedIndex = Values.V.speciesNames.IndexOf("Castoroides"); //numericUpDownLevel.Value = 178; //tabControlMain.SelectedTab = tabPageExtractor; if (!Properties.Settings.Default.OCR) { tabControlMain.TabPages.Remove(TabPageOCR); btnReadValuesFromArk.Visible = false; } }