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;
}
}