private void creatureInfoInputTester_Save2Library_Clicked(CreatureInfoInput sender)
{
if (creatureTesterEdit != null)
{
bool wildChanged = (Math.Abs(creatureTesterEdit.tamingEff - (double)NumericUpDownTestingTE.Value / 100) > .0005);
if (!wildChanged)
{
int[] wildLevels = getCurrentWildLevels(false);
for (int s = 0; s < 8; s++)
{
if (wildLevels[s] != creatureTesterEdit.levelsWild[s])
{
wildChanged = true;
break;
}
}
}
if (!wildChanged || MessageBox.Show("The wild levels or the taming-effectiveness were changed. Save values anyway?\nOnly save if the wild levels or taming-effectiveness were extracted wrongly!\nIf you are not sure, don't save. The breeding-values could become invalid.", "Wild levels have been changed", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
{
bool statusChanged = creatureTesterEdit.status != creatureInfoInputTester.CreatureStatus;
bool parentsChanged = (creatureTesterEdit.Mother != creatureInfoInputTester.mother || creatureTesterEdit.Father != creatureInfoInputTester.father);
creatureTesterEdit.levelsWild = getCurrentWildLevels(false);
creatureTesterEdit.levelsDom = getCurrentDomLevels(false);
creatureTesterEdit.tamingEff = (double)NumericUpDownTestingTE.Value / 100;
creatureTesterEdit.isBred = checkBoxStatTestingBred.Checked;
creatureTesterEdit.imprintingBonus = (double)numericUpDownImprintingBonusTester.Value / 100;
creatureTesterEdit.name = creatureInfoInputTester.CreatureName;
creatureTesterEdit.gender = creatureInfoInputTester.CreatureGender;
creatureTesterEdit.owner = creatureInfoInputTester.CreatureOwner;
creatureTesterEdit.Mother = creatureInfoInputTester.mother;
creatureTesterEdit.Father = creatureInfoInputTester.father;
creatureTesterEdit.note = creatureInfoInputTester.CreatureNote;
creatureTesterEdit.status = creatureInfoInputTester.CreatureStatus;
creatureTesterEdit.cooldownUntil = creatureInfoInputTester.Cooldown;
creatureTesterEdit.growingUntil = creatureInfoInputTester.Grown;
creatureTesterEdit.domesticatedAt = creatureInfoInputTester.domesticatedAt;
creatureTesterEdit.neutered = creatureInfoInputTester.Neutered;
if (wildChanged)
calculateTopStats(creatureCollection.creatures.Where(c => c.species == creatureTesterEdit.species).ToList());
updateCreatureValues(creatureTesterEdit, statusChanged);
if (parentsChanged)
creatureTesterEdit.recalculateAncestorGenerations();
setTesterEditCreature();
tabControlMain.SelectedTab = tabPageLibrary;
}
}
}