diff --git a/ARKBreedingStats/AboutBox1.cs b/ARKBreedingStats/AboutBox1.cs
index 74856090..4b4964ca 100644
--- a/ARKBreedingStats/AboutBox1.cs
+++ b/ARKBreedingStats/AboutBox1.cs
@@ -107,7 +107,7 @@ private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs
Translations:
* French by Vykan and Yanuut
-* Italian by Zaffira
+* Italian by Zaffira and Spit-Biago
* German by cadon
* Spanish by KRIPT4";
}
diff --git a/ARKBreedingStats/Form1.Designer.cs b/ARKBreedingStats/Form1.Designer.cs
index f38cf9a0..d8a9eb39 100644
--- a/ARKBreedingStats/Form1.Designer.cs
+++ b/ARKBreedingStats/Form1.Designer.cs
@@ -2631,7 +2631,7 @@ private void InitializeComponent()
this.tamingControl1.Name = "tamingControl1";
this.tamingControl1.Size = new System.Drawing.Size(1218, 684);
this.tamingControl1.TabIndex = 0;
- this.tamingControl1.weaponDamages = new double[] {
+ this.tamingControl1.WeaponDamages = new double[] {
100D,
100D,
100D,
@@ -2639,7 +2639,7 @@ private void InitializeComponent()
100D,
100D,
100D};
- this.tamingControl1.weaponDamagesEnabled = 3;
+ this.tamingControl1.WeaponDamagesEnabled = 3;
//
// tabPageBreedingPlan
//
diff --git a/ARKBreedingStats/Form1.collection.cs b/ARKBreedingStats/Form1.collection.cs
index 141dcf8b..78a5843b 100644
--- a/ARKBreedingStats/Form1.collection.cs
+++ b/ARKBreedingStats/Form1.collection.cs
@@ -418,7 +418,7 @@ private bool LoadCollectionFile(string filePath, bool keepCurrentCreatures = fal
// set global species that was set before loading
if (selectedSpecies != null
- && creatureCollection.creatures.Any(c => c.Species.Equals(selectedSpecies))
+ && creatureCollection.creatures.Any(c => c.Species != null && c.Species.Equals(selectedSpecies))
)
{
speciesSelector1.SetSpecies(selectedSpecies);
@@ -428,7 +428,7 @@ private bool LoadCollectionFile(string filePath, bool keepCurrentCreatures = fal
// set library species to what it was before loading
if (selectedlibrarySpecies == null
- || !creatureCollection.creatures.Any(c => c.Species.Equals(selectedlibrarySpecies))
+ || !creatureCollection.creatures.Any(c => c.Species != null && c.Species.Equals(selectedlibrarySpecies))
)
selectedlibrarySpecies = speciesSelector1.SelectedSpecies;
if (selectedlibrarySpecies != null)
diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs
index 8785d5a4..bb836766 100644
--- a/ARKBreedingStats/Form1.cs
+++ b/ARKBreedingStats/Form1.cs
@@ -130,7 +130,7 @@ public Form1()
breedingPlan1.ExportToClipboard += ExportAsTextToClipboard;
breedingPlan1.SetMessageLabelText += SetMessageLabelText;
breedingPlan1.SetGlobalSpecies += SetSpecies;
- timerList1.onTimerChange += SetCollectionChanged;
+ timerList1.OnTimerChange += SetCollectionChanged;
breedingPlan1.BindChildrenControlEvents();
raisingControl1.onChange += SetCollectionChanged;
tamingControl1.CreateTimer += CreateTimer;
@@ -156,13 +156,6 @@ public Form1()
timerGlobal.Tick += TimerGlobal_Tick;
reactOnSelectionChange = true;
-
- // TODO temporary fix if importExportWindow.Location was set to an invalid value
- if (Properties.Settings.Default.importExportedLocation.X < 0)
- {
- Properties.Settings.Default.importExportedLocation = new Point(0, 0);
- Properties.Settings.Default.importExportedSize = new Size(800, 800);
- }
}
private void Form1_Load(object sender, EventArgs e)
@@ -267,8 +260,8 @@ private void Form1_Load(object sender, EventArgs e)
autoSaveMinutes = Properties.Settings.Default.autosaveMinutes;
// load weapondamages
- tamingControl1.weaponDamages = Properties.Settings.Default.weaponDamages;
- tamingControl1.weaponDamagesEnabled = Properties.Settings.Default.weaponDamagesEnabled;
+ tamingControl1.WeaponDamages = Properties.Settings.Default.weaponDamages;
+ tamingControl1.WeaponDamagesEnabled = Properties.Settings.Default.weaponDamagesEnabled;
for (int s = 0; s < Values.STATS_COUNT; s++)
{
@@ -415,7 +408,6 @@ private void Form1_Load(object sender, EventArgs e)
creatureInfoInputExtractor.OwnerLock = Properties.Settings.Default.OwnerNameLocked;
creatureInfoInputExtractor.TribeLock = Properties.Settings.Default.TribeNameLocked;
- ClearAll();
// UI loaded
//// initialize controls
@@ -458,7 +450,7 @@ private void TellTamingData(string speciesName, int level)
speciesSelector1.SelectedSpecies.taming.eats != null &&
speciesSelector1.SelectedSpecies.taming.eats.Count > 0)
{
- tamingControl1.setLevel(level, false);
+ tamingControl1.SetLevel(level, false);
tamingControl1.SetSpecies(speciesSelector1.SelectedSpecies);
overlay?.setInfoText($"{speciesName} ({Loc.s("Level")} {level}):\n{tamingControl1.quickTamingInfos}");
}
@@ -653,7 +645,7 @@ private void ApplySettingsToValues()
{
// apply multipliers
Values.V.ApplyMultipliers(creatureCollection, cbEventMultipliers.Checked);
- tamingControl1.setTamingMultipliers(Values.V.currentServerMultipliers.TamingSpeedMultiplier,
+ tamingControl1.SetTamingMultipliers(Values.V.currentServerMultipliers.TamingSpeedMultiplier,
Values.V.currentServerMultipliers.DinoCharacterFoodDrainMultiplier);
RecalculateAllCreaturesValues();
@@ -1137,8 +1129,8 @@ private void Form1_FormClosed(object sender, FormClosedEventArgs e)
Properties.Settings.Default.customStatWeightNames = custWs.ToArray();
// save weapondamages for ko-calculation
- Properties.Settings.Default.weaponDamages = tamingControl1.weaponDamages;
- Properties.Settings.Default.weaponDamagesEnabled = tamingControl1.weaponDamagesEnabled;
+ Properties.Settings.Default.weaponDamages = tamingControl1.WeaponDamages;
+ Properties.Settings.Default.weaponDamagesEnabled = tamingControl1.WeaponDamagesEnabled;
// save last selected species in combobox
Properties.Settings.Default.lastSpecies = speciesSelector1.LastSpecies;
@@ -1619,27 +1611,7 @@ private void numericUpDownImprintingBonusExtractor_ValueChanged(object sender, E
private void checkBoxQuickWildCheck_CheckedChanged(object sender, EventArgs e)
{
- bool enabled = !cbQuickWildCheck.Checked;
- if (!enabled)
- {
- ClearAll();
-
- for (int s = 0; s < Values.STATS_COUNT; s++)
- {
- int lvlWild = (int)Math.Round((statIOs[s].Input - speciesSelector1.SelectedSpecies.stats[s].BaseValue) / (speciesSelector1.SelectedSpecies.stats[s].BaseValue * speciesSelector1.SelectedSpecies.stats[s].IncPerWildLevel));
- statIOs[s].LevelWild = lvlWild < 0 ? 0 : lvlWild;
- statIOs[s].LevelDom = 0;
- }
-
- tamingControl1.setLevel(statIOs[(int)StatNames.Torpidity].LevelWild + 1, false);
- tamingControl1.SetSpecies(speciesSelector1.SelectedSpecies);
- labelTamingInfo.Text = tamingControl1.quickTamingInfos;
- }
- panelWildTamedBred.Enabled = enabled;
- groupBoxDetailsExtractor.Enabled = enabled;
- numericUpDownLevel.Enabled = enabled;
- button2TamingCalc.Visible = !enabled;
- groupBoxTamingInfo.Visible = !enabled;
+ UpdateQuickTamingInfo();
}
private void onlinehelpToolStripMenuItem_Click(object sender, EventArgs e)
@@ -2009,9 +1981,7 @@ private void StatIOQuickWildLevelCheck(StatIO sIO)
sIO.LevelDom = 0;
if (sIO.statIndex == (int)StatNames.Torpidity)
{
- tamingControl1.setLevel(statIOs[(int)StatNames.Torpidity].LevelWild + 1, false);
- tamingControl1.SetSpecies(speciesSelector1.SelectedSpecies);
- labelTamingInfo.Text = tamingControl1.quickTamingInfos;
+ SetQuickTamingInfo(statIOs[(int)StatNames.Torpidity].LevelWild + 1);
}
}
}
@@ -2067,7 +2037,7 @@ private void wildValuesToolStripMenuItem_Click(object sender, EventArgs e)
private void CreateTimer(string name, DateTime time, Creature c, string group)
{
- timerList1.addTimer(name, time, c, group);
+ timerList1.AddTimer(name, time, c, group);
}
private void TestEnteredDragData(object sender, DragEventArgs e)
@@ -2433,6 +2403,7 @@ private void toolStripButtonCopy2Extractor_Click(object sender, EventArgs e)
creatureInfoInputExtractor.CreatureSex = creatureInfoInputTester.CreatureSex;
creatureInfoInputExtractor.RegionColors = creatureInfoInputTester.RegionColors;
+
tabControlMain.SelectedTab = tabPageExtractor;
}
@@ -2537,9 +2508,9 @@ private void button2TamingCalc_Click(object sender, EventArgs e)
{
tamingControl1.SetSpecies(speciesSelector1.SelectedSpecies);
if (cbQuickWildCheck.Checked)
- tamingControl1.setLevel(statIOs[(int)StatNames.Torpidity].LevelWild + 1);
+ tamingControl1.SetLevel(statIOs[(int)StatNames.Torpidity].LevelWild + 1);
else
- tamingControl1.setLevel((int)numericUpDownLevel.Value);
+ tamingControl1.SetLevel((int)numericUpDownLevel.Value);
tabControlMain.SelectedTab = tabPageTaming;
}
@@ -2711,7 +2682,7 @@ private void ApplyEvolutionMultipliers()
{
Values.V.ApplyMultipliers(creatureCollection, cbEventMultipliers.Checked, false);
- tamingControl1.setTamingMultipliers(Values.V.currentServerMultipliers.TamingSpeedMultiplier,
+ tamingControl1.SetTamingMultipliers(Values.V.currentServerMultipliers.TamingSpeedMultiplier,
Values.V.currentServerMultipliers.DinoCharacterFoodDrainMultiplier);
breedingPlan1.UpdateBreedingData();
raisingControl1.UpdateRaisingData();
@@ -2722,7 +2693,7 @@ private void toolStripButtonDeleteExpiredIncubationTimers_Click(object sender, E
if (tabControlMain.SelectedTab == tabPageRaising)
raisingControl1.DeleteAllExpiredIncubationTimers();
else if (tabControlMain.SelectedTab == tabPageTimer)
- timerList1.deleteAllExpiredTimers();
+ timerList1.DeleteAllExpiredTimers();
}
private void OcrupdateWhiteThreshold(int value)
diff --git a/ARKBreedingStats/Form1.extractor.cs b/ARKBreedingStats/Form1.extractor.cs
index ecf8e413..f6668c82 100644
--- a/ARKBreedingStats/Form1.extractor.cs
+++ b/ARKBreedingStats/Form1.extractor.cs
@@ -140,20 +140,22 @@ private void ClearAll(bool clearExtraCreatureData = true)
statIOs[s].Clear();
}
ExtractionFailed(); // set background of controls to neutral
- labelFootnote.Text = "";
+ labelFootnote.Text = string.Empty;
labelFootnote.BackColor = Color.Transparent;
- labelTE.Text = "";
+ labelTE.Text = string.Empty;
activeStatIndex = -1;
- lbSumDom.Text = "";
- lbSumWild.Text = "";
- lbSumDomSB.Text = "";
+ lbSumDom.Text = string.Empty;
+ lbSumWild.Text = string.Empty;
+ lbSumDomSB.Text = string.Empty;
updateTorporInTester = true;
creatureInfoInputExtractor.ButtonEnabled = false;
groupBoxPossibilities.Visible = false;
groupBoxRadarChartExtractor.Visible = false;
lbInfoYellowStats.Visible = false;
button2TamingCalc.Visible = cbQuickWildCheck.Checked;
- groupBoxTamingInfo.Visible = false;
+ groupBoxTamingInfo.Visible = cbQuickWildCheck.Checked;
+ UpdateQuickTamingInfo();
+ labelTamingInfo.Text = string.Empty;
SetMessageLabelText();
if (clearExtraCreatureData)
{
@@ -342,18 +344,43 @@ private bool ExtractLevels(bool autoExtraction = false, bool statInputsHighPreci
button2TamingCalc.Visible = true;
// display taming info
- if (cbQuickWildCheck.Checked)
- tamingControl1.setLevel(statIOs[(int)StatNames.Torpidity].LevelWild + 1);
- else
- tamingControl1.setLevel((int)numericUpDownLevel.Value);
- labelTamingInfo.Text = tamingControl1.quickTamingInfos;
- groupBoxTamingInfo.Visible = true;
+ SetQuickTamingInfo(cbQuickWildCheck.Checked
+ ? statIOs[(int)StatNames.Torpidity].LevelWild + 1
+ : (int)numericUpDownLevel.Value);
}
ResumeLayout();
return true;
}
+ private void UpdateQuickTamingInfo()
+ {
+ bool showQuickTamingInfo = cbQuickWildCheck.Checked;
+ if (showQuickTamingInfo)
+ {
+ for (int s = 0; s < Values.STATS_COUNT; s++)
+ {
+ int lvlWild = (int)Math.Round((statIOs[s].Input - speciesSelector1.SelectedSpecies.stats[s].BaseValue) / (speciesSelector1.SelectedSpecies.stats[s].BaseValue * speciesSelector1.SelectedSpecies.stats[s].IncPerWildLevel));
+ statIOs[s].LevelWild = lvlWild < 0 ? 0 : lvlWild;
+ statIOs[s].LevelDom = 0;
+ }
+ SetQuickTamingInfo(statIOs[(int)StatNames.Torpidity].LevelWild + 1);
+ }
+ panelWildTamedBred.Enabled = !showQuickTamingInfo;
+ groupBoxDetailsExtractor.Enabled = !showQuickTamingInfo;
+ numericUpDownLevel.Enabled = !showQuickTamingInfo;
+ button2TamingCalc.Visible = showQuickTamingInfo;
+ groupBoxTamingInfo.Visible = showQuickTamingInfo;
+ }
+
+ private void SetQuickTamingInfo(int level)
+ {
+ tamingControl1.SetSpecies(speciesSelector1.SelectedSpecies);
+ tamingControl1.SetLevel(level);
+ labelTamingInfo.Text = tamingControl1.quickTamingInfos;
+ groupBoxTamingInfo.Visible = true;
+ }
+
///
/// Call this method if an extraction failed. Possible causes of the failure are displayed for the user.
///
diff --git a/ARKBreedingStats/Program.cs b/ARKBreedingStats/Program.cs
index 986fa75d..41a77195 100644
--- a/ARKBreedingStats/Program.cs
+++ b/ARKBreedingStats/Program.cs
@@ -58,10 +58,12 @@ private static void unhandledExceptionHandler(object sender, UnhandledExceptionE
{
if (System.Diagnostics.Debugger.IsAttached) throw e;
string message = e.Message
+ + "\n\nException in " + e.Source
+ "\n\nMethod throwing the error: " + e.TargetSite.DeclaringType.FullName + "." + e.TargetSite.Name
+ "\n\nStackTrace:\n" + e.StackTrace
- + (e.InnerException != null ? "\n\nInner Exception:\n" + e.InnerException.Message : string.Empty);
- MessageBox.Show("Unhandled Exception:\n\n" + message, "Error in " + e.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ + (e.InnerException != null ? "\n\nInner Exception:\n" + e.InnerException.Message : string.Empty)
+ ;
+ MessageBox.Show(message, "Unhandled Exception in ARK Smart Breeding " + Application.ProductVersion, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
diff --git a/ARKBreedingStats/Properties/AssemblyInfo.cs b/ARKBreedingStats/Properties/AssemblyInfo.cs
index a005eae2..6b3e4c65 100644
--- a/ARKBreedingStats/Properties/AssemblyInfo.cs
+++ b/ARKBreedingStats/Properties/AssemblyInfo.cs
@@ -30,6 +30,6 @@
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("0.34.2.0")]
+[assembly: AssemblyFileVersion("0.34.4.0")]
[assembly: NeutralResourcesLanguage("en")]
diff --git a/ARKBreedingStats/Stats.cs b/ARKBreedingStats/Stats.cs
index 84338459..894c26cf 100644
--- a/ARKBreedingStats/Stats.cs
+++ b/ARKBreedingStats/Stats.cs
@@ -42,7 +42,7 @@ public static double CalculateValue(Species species, int stat, int levelWild, in
// adding an epsilon to handle rounding-errors
double result = (species.stats[stat].BaseValue * tamedBaseHP *
(1 + species.stats[stat].IncPerWildLevel * levelWild) * imprintingM + add) *
- domMult + ROUND_UP_DELTA;
+ domMult + (Utils.precision(stat) == 3 ? ROUND_UP_DELTA * 0.01 : ROUND_UP_DELTA);
if (result <= 0) return 0;
diff --git a/ARKBreedingStats/TamingControl.cs b/ARKBreedingStats/TamingControl.cs
index a4e8ebcd..4bffef17 100644
--- a/ARKBreedingStats/TamingControl.cs
+++ b/ARKBreedingStats/TamingControl.cs
@@ -41,225 +41,230 @@ public TamingControl()
};
}
- public void setLevel(int level, bool updateTamingData = true)
+ public void SetLevel(int level, bool updateTamingData = true)
{
+ if (nudLevel.Value == level) return;
+
bool updateKeeper = updateCalculation;
updateCalculation = updateTamingData;
- if (level >= nudLevel.Minimum && level <= nudLevel.Maximum)
- nudLevel.Value = level;
+ nudLevel.ValueSave = level;
updateCalculation = updateKeeper;
}
public void SetSpecies(Species species)
{
- if (species != null && selectedSpecies != species)
- {
+ if (species == null || selectedSpecies == species)
+ return;
- selectedSpecies = species;
+ selectedSpecies = species;
- if (species.taming == null)
- {
- noTamingData();
- return;
- }
+ if (species.taming == null)
+ {
+ NoTamingData();
+ return;
+ }
- SuspendLayout();
+ SuspendLayout();
- string speciesName = species.name;
- linkLabelWikiPage.Text = "Wiki: " + speciesName;
- linkLabelWikiPage.Tag = speciesName;
+ string speciesName = species.name;
+ linkLabelWikiPage.Text = "Wiki: " + speciesName;
+ linkLabelWikiPage.Tag = speciesName;
- // bone damage adjusters
- boneDamageAdjustersImmobilization = Taming.boneDamageAdjustersImmobilization(selectedSpecies,
- out Dictionary boneDamageAdjusters);
+ // bone damage adjusters
+ boneDamageAdjustersImmobilization = Taming.boneDamageAdjustersImmobilization(selectedSpecies,
+ out Dictionary boneDamageAdjusters);
- int ib = 0;
- foreach (KeyValuePair bd in boneDamageAdjusters)
+ int ib = 0;
+ foreach (KeyValuePair bd in boneDamageAdjusters)
+ {
+ ib++;
+ if (ib >= rbBoneDamageAdjusters.Count)
{
- ib++;
- if (ib >= rbBoneDamageAdjusters.Count)
- {
- RadioButton rbBD = new RadioButton();
- gbWeaponDamage.Controls.Add(rbBD);
- rbBD.Location = new Point(6, 199 + 19 * ib);
- rbBD.AutoSize = false;
- rbBD.Size = new Size(194, 17);
-
- rbBoneDamageAdjusters.Add(rbBD);
- rbBoneDamageAdjusterValues.Add(1);
- rbBD.CheckedChanged += rbBoneDamage_CheckedChanged;
- }
- rbBoneDamageAdjusterValues[ib] = bd.Value;
- rbBoneDamageAdjusters[ib].Text = $"{Loc.s(bd.Key)} (× {bd.Value})";
- rbBoneDamageAdjusters[ib].Visible = true;
+ RadioButton rbBD = new RadioButton();
+ gbWeaponDamage.Controls.Add(rbBD);
+ rbBD.Location = new Point(6, 199 + 19 * ib);
+ rbBD.AutoSize = false;
+ rbBD.Size = new Size(194, 17);
+
+ rbBoneDamageAdjusters.Add(rbBD);
+ rbBoneDamageAdjusterValues.Add(1);
+ rbBD.CheckedChanged += rbBoneDamage_CheckedChanged;
}
- for (int j = ib + 1; j < rbBoneDamageAdjusters.Count; j++)
- rbBoneDamageAdjusters[j].Visible = false;
- rbBoneDamageAdjusters[0].Checked = true;
- // bone damage adjusters adjusted
+ rbBoneDamageAdjusterValues[ib] = bd.Value;
+ rbBoneDamageAdjusters[ib].Text = $"{Loc.s(bd.Key)} (× {bd.Value})";
+ rbBoneDamageAdjusters[ib].Visible = true;
+ }
+ for (int j = ib + 1; j < rbBoneDamageAdjusters.Count; j++)
+ rbBoneDamageAdjusters[j].Visible = false;
+ rbBoneDamageAdjusters[0].Checked = true;
+ // bone damage adjusters adjusted
- updateCalculation = false;
- TamingData td = species.taming;
- kibbleRecipe = "";
+ updateCalculation = false;
+ TamingData td = species.taming;
+ kibbleRecipe = "";
- // TODO replace with new kibble recipes
- //if (td.favoriteKibble != null && Kibbles.K.kibble.ContainsKey(td.favoriteKibble))
- //{
- // kibbleRecipe = "\n\nKibble:" + Kibbles.K.kibble[td.favoriteKibble].RecipeAsText();
- //}
+ // TODO replace with new kibble recipes
+ //if (td.favoriteKibble != null && Kibbles.K.kibble.ContainsKey(td.favoriteKibble))
+ //{
+ // kibbleRecipe = "\n\nKibble:" + Kibbles.K.kibble[td.favoriteKibble].RecipeAsText();
+ //}
- foodDepletion = td.foodConsumptionBase * td.foodConsumptionMult * tamingFoodRateMultiplier;
+ foodDepletion = td.foodConsumptionBase * td.foodConsumptionMult * tamingFoodRateMultiplier;
- int i = 0;
- if (td.eats != null)
+ int i = 0;
+ if (td.eats != null)
+ {
+ for (i = 0; i < td.eats.Count; i++)
{
- for (i = 0; i < td.eats.Count; i++)
+ string f = td.eats[i];
+ TamingFoodControl tf;
+ if (i >= foodControls.Count)
+ {
+ tf = new TamingFoodControl(f);
+ tf.valueChanged += UpdateTamingData;
+ tf.Clicked += OnlyOneFood;
+ foodControls.Add(tf);
+ flpTamingFood.Controls.Add(tf);
+ }
+ else
{
- string f = td.eats[i];
- TamingFoodControl tf;
- if (i >= foodControls.Count)
- {
- tf = new TamingFoodControl(f);
- tf.valueChanged += updateTamingData;
- tf.Clicked += onlyOneFood;
- foodControls.Add(tf);
- flpTamingFood.Controls.Add(tf);
- }
- else
- {
- tf = foodControls[i];
- tf.FoodName = f;
- tf.Show();
- }
- if (f == "Kibble")
- tf.foodNameDisplay = $"Kibble ({td.favoriteKibble} {Loc.s("Egg")})";
- if (td.specialFoodValues != null && td.specialFoodValues.ContainsKey(f) && td.specialFoodValues[f].quantity > 1)
- tf.foodNameDisplay = td.specialFoodValues[f].quantity + "× " + tf.foodNameDisplay;
+ tf = foodControls[i];
+ tf.FoodName = f;
+ tf.Show();
}
+ if (f == "Kibble")
+ tf.foodNameDisplay = $"Kibble ({td.favoriteKibble} {Loc.s("Egg")})";
+ if (td.specialFoodValues != null && td.specialFoodValues.ContainsKey(f) && td.specialFoodValues[f].quantity > 1)
+ tf.foodNameDisplay = td.specialFoodValues[f].quantity + "× " + tf.foodNameDisplay;
}
+ }
- for (int fci = foodControls.Count - 1; fci >= i; fci--)
- {
- foodControls[fci].Hide();
- }
+ for (int fci = foodControls.Count - 1; fci >= i; fci--)
+ {
+ foodControls[fci].Hide();
+ }
- if (i > 0)
- foodControls[0].amount = Taming.foodAmountNeeded(species, (int)nudLevel.Value, tamingSpeedMultiplier, foodControls[0].FoodName, td.nonViolent);
+ if (i > 0)
+ foodControls[0].amount = Taming.foodAmountNeeded(species, (int)nudLevel.Value, tamingSpeedMultiplier, foodControls[0].FoodName, td.nonViolent);
- updateCalculation = true;
- updateFirstFeedingWaiting();
- updateTamingData();
+ updateCalculation = true;
+ UpdateFirstFeedingWaiting();
+ UpdateTamingData();
- ResumeLayout();
- }
+ ResumeLayout();
}
private void nudLevel_ValueChanged(object sender, EventArgs e)
{
- updateFirstFeedingWaiting();
- updateTamingData();
+ UpdateFirstFeedingWaiting();
+ UpdateTamingData();
}
- private void updateTamingData()
+ private void UpdateTamingData()
{
- if (updateCalculation && selectedSpecies != null)
+ if (!updateCalculation || selectedSpecies == null)
{
- if (selectedSpecies.taming == null)
- {
- noTamingData();
- return;
- }
+ return;
+ }
+ if (selectedSpecies.taming == null)
+ {
+ NoTamingData();
+ return;
+ }
- this.Enabled = true;
- updateKOCounting();
+ this.Enabled = true;
+ UpdateKOCounting();
- TimeSpan duration = new TimeSpan();
- int narcoBerries = 0, narcotics = 0, bioToxines = 0, bonusLevel = 0;
- double te = 0, hunger = 0;
- bool enoughFood = false;
- var usedFood = new List();
- var foodAmount = new List();
- var foodAmountUsed = new List();
- quickTamingInfos = "n/a";
- int level = (int)nudLevel.Value;
+ TimeSpan duration = new TimeSpan();
+ int narcoBerries = 0, narcotics = 0, bioToxines = 0, bonusLevel = 0;
+ double te = 0, hunger = 0;
+ bool enoughFood = false;
+ var usedFood = new List();
+ var foodAmount = new List();
+ var foodAmountUsed = new List();
+ quickTamingInfos = "n/a";
+ int level = (int)nudLevel.Value;
- if (selectedSpecies.taming.eats != null)
+ if (selectedSpecies.taming.eats != null)
+ {
+ int foodCounter = selectedSpecies.taming.eats.Count;
+ foreach (TamingFoodControl tfc in foodControls)
{
- int foodCounter = selectedSpecies.taming.eats.Count;
- foreach (TamingFoodControl tfc in foodControls)
- {
- if (foodCounter == 0)
- break;
- foodCounter--;
-
- usedFood.Add(tfc.FoodName);
- foodAmount.Add(tfc.amount);
- tfc.maxFood = Taming.foodAmountNeeded(selectedSpecies, level, tamingSpeedMultiplier, tfc.FoodName, selectedSpecies.taming.nonViolent);
- tfc.tamingDuration = Taming.tamingDuration(selectedSpecies, tfc.maxFood, tfc.FoodName, tamingFoodRateMultiplier, selectedSpecies.taming.nonViolent);
- }
- Taming.tamingTimes(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, usedFood, foodAmount, out foodAmountUsed, out duration, out narcoBerries, out narcotics, out bioToxines, out te, out hunger, out bonusLevel, out enoughFood);
-
- for (int f = 0; f < foodAmountUsed.Count; f++)
- {
- foodControls[f].foodUsed = foodAmountUsed[f];
- }
+ if (foodCounter == 0)
+ break;
+ foodCounter--;
+
+ usedFood.Add(tfc.FoodName);
+ foodAmount.Add(tfc.amount);
+ tfc.maxFood = Taming.foodAmountNeeded(selectedSpecies, level, tamingSpeedMultiplier, tfc.FoodName, selectedSpecies.taming.nonViolent);
+ tfc.tamingDuration = Taming.tamingDuration(selectedSpecies, tfc.maxFood, tfc.FoodName, tamingFoodRateMultiplier, selectedSpecies.taming.nonViolent);
}
+ Taming.tamingTimes(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, usedFood, foodAmount, out foodAmountUsed, out duration, out narcoBerries, out narcotics, out bioToxines, out te, out hunger, out bonusLevel, out enoughFood);
- if (enoughFood)
+ for (int f = 0; f < foodAmountUsed.Count; f++)
{
- labelResult.Text = $"It takes {Utils.durationUntil(duration)} to tame the {selectedSpecies.name}.\n\n" +
- $"Taming Effectiveness: {Math.Round(100 * te, 1)} %\n" +
- $"Bonus-Level: +{bonusLevel} (total level after Taming: {(nudLevel.Value + bonusLevel)})\n\n" +
- $"Food has to drop by {hunger:F1} units.\n\n" +
- $"{narcoBerries} Narcoberries or\n" +
- $"{narcotics} Narcotics or\n" +
- $"{bioToxines} Bio Toxines are needed{firstFeedingWaiting}";
-
- if (foodAmountUsed.Count > 0)
- {
- quickTamingInfos = Taming.quickInfoOneFood(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, foodControls[0].FoodName, foodControls[0].maxFood, foodControls[0].foodNameDisplay);
- // show raw meat or mejoberries as alternative (often used)
- for (int i = 1; i < usedFood.Count; i++)
- {
- if (usedFood[i] == "Raw Meat" || usedFood[i] == "Mejoberry")
- {
- quickTamingInfos += "\n\n" + Taming.quickInfoOneFood(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, foodControls[i].FoodName, foodControls[i].maxFood, foodControls[i].foodNameDisplay);
- break;
- }
- }
-
- quickTamingInfos += "\n\n" + koNumbers
- + "\n\n" + boneDamageAdjustersImmobilization
- + firstFeedingWaiting
- + kibbleRecipe;
- }
-
- labelResult.Text += kibbleRecipe;
+ foodControls[f].foodUsed = foodAmountUsed[f];
}
- else if (foodAmountUsed.Count == 0)
- labelResult.Text = Loc.s("noTamingData");
- else
- labelResult.Text = Loc.s("notEnoughFoodToTame");
+ }
+
+ if (enoughFood)
+ {
+ labelResult.Text = $"It takes {Utils.durationUntil(duration)} to tame the {selectedSpecies.name}.\n\n" +
+ $"Taming Effectiveness: {Math.Round(100 * te, 1)} %\n" +
+ $"Bonus-Level: +{bonusLevel} (total level after Taming: {(nudLevel.Value + bonusLevel)})\n\n" +
+ $"Food has to drop by {hunger:F1} units.\n\n" +
+ $"{narcoBerries} Narcoberries or\n" +
+ $"{narcotics} Narcotics or\n" +
+ $"{bioToxines} Bio Toxines are needed{firstFeedingWaiting}";
+
+ labelResult.Text += kibbleRecipe;
+ }
+ else if (foodAmountUsed.Count == 0)
+ labelResult.Text = Loc.s("noTamingData");
+ else
+ labelResult.Text = Loc.s("notEnoughFoodToTame");
+
+ numericUpDownCurrentTorpor.ValueSave = (decimal)(selectedSpecies.stats[(int)StatNames.Torpidity].BaseValue * (1 + selectedSpecies.stats[(int)StatNames.Torpidity].IncPerWildLevel * (level - 1)));
+
+ // displays the time until the food has decreased enough to tame the creature in one go.
+ var durationStarving = new TimeSpan(0, 0, (int)(hunger / foodDepletion));
+ lbTimeUntilStarving.Text = (enoughFood ? $"{Loc.s("TimeUntilFeedingAllFood")}: {Utils.duration(durationStarving)}" : "");
+ nudCurrentFood.Value = (decimal)(selectedSpecies.stats[(int)StatNames.Food].BaseValue * (1 + selectedSpecies.stats[(int)StatNames.Food].IncPerWildLevel * (level / 7))); // approximating the food level
+ if ((double)nudCurrentFood.Value < hunger)
+ {
+ lbTimeUntilStarving.Text += (lbTimeUntilStarving.Text.Length > 0 ? "\n" : "") + $"{Loc.s("WarningMoreStarvingThanFood")}";
+ lbTimeUntilStarving.ForeColor = Color.DarkRed;
+ }
+ else lbTimeUntilStarving.ForeColor = SystemColors.ControlText;
- numericUpDownCurrentTorpor.ValueSave = (decimal)(selectedSpecies.stats[(int)StatNames.Torpidity].BaseValue * (1 + selectedSpecies.stats[(int)StatNames.Torpidity].IncPerWildLevel * (level - 1)));
+ starvingTime = DateTime.Now.Add(durationStarving);
- // displays the time until the food has decreased enough to tame the creature in one go.
- var durationStarving = new TimeSpan(0, 0, (int)(hunger / foodDepletion));
- lbTimeUntilStarving.Text = (enoughFood ? $"{Loc.s("TimeUntilFeedingAllFood")}: {Utils.duration(durationStarving)}" : "");
- nudCurrentFood.Value = (decimal)(selectedSpecies.stats[(int)StatNames.Food].BaseValue * (1 + selectedSpecies.stats[(int)StatNames.Food].IncPerWildLevel * (level / 7))); // approximating the food level
- if ((double)nudCurrentFood.Value < hunger)
+ //// quicktame infos
+ if (foodAmountUsed.Count > 0)
+ {
+ quickTamingInfos = Taming.quickInfoOneFood(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, foodControls[0].FoodName, foodControls[0].maxFood, foodControls[0].foodNameDisplay);
+ // show raw meat or mejoberries as alternative (often used)
+ for (int i = 1; i < usedFood.Count; i++)
{
- lbTimeUntilStarving.Text += (lbTimeUntilStarving.Text.Length > 0 ? "\n" : "") + $"{Loc.s("WarningMoreStarvingThanFood")}";
- lbTimeUntilStarving.ForeColor = Color.DarkRed;
+ if (usedFood[i] == "Raw Meat" || usedFood[i] == "Mejoberry")
+ {
+ quickTamingInfos += "\n\n" + Taming.quickInfoOneFood(selectedSpecies, level, tamingSpeedMultiplier, tamingFoodRateMultiplier, foodControls[i].FoodName, foodControls[i].maxFood, foodControls[i].foodNameDisplay);
+ break;
+ }
}
- else lbTimeUntilStarving.ForeColor = SystemColors.ControlText;
- starvingTime = DateTime.Now.Add(durationStarving);
+ quickTamingInfos += "\n\n" + koNumbers
+ + "\n\n" + boneDamageAdjustersImmobilization
+ + firstFeedingWaiting
+ + kibbleRecipe;
}
}
- private void noTamingData()
+ ///
+ /// Displays infos that no taming data is available.
+ ///
+ private void NoTamingData()
{
// clear text fields
labelResult.Text = Loc.s("noTamingData");
@@ -269,18 +274,23 @@ private void noTamingData()
this.Enabled = false;
}
- private void onlyOneFood(string food)
+ ///
+ /// Only use the passed food for taming, set all other foods to zero.
+ ///
+ ///
+ private void OnlyOneFood(string food)
{
- if (selectedSpecies != null)
+ if (selectedSpecies == null)
{
- updateCalculation = false;
- foreach (TamingFoodControl tfc in foodControls)
- {
- tfc.amount = tfc.FoodName == food ? tfc.maxFood : 0;
- }
- updateCalculation = true;
- updateTamingData();
+ return;
}
+ updateCalculation = false;
+ foreach (TamingFoodControl tfc in foodControls)
+ {
+ tfc.amount = tfc.FoodName == food ? tfc.maxFood : 0;
+ }
+ updateCalculation = true;
+ UpdateTamingData();
}
private void numericUpDownCurrentTorpor_ValueChanged(object sender, EventArgs e)
@@ -300,15 +310,15 @@ private void nudCurrentFood_ValueChanged(object sender, EventArgs e)
private void nudWDm_ValueChanged(object sender, EventArgs e)
{
- updateKOCounting();
+ UpdateKOCounting();
}
private void chkbDm_CheckedChanged(object sender, EventArgs e)
{
- updateKOCounting();
+ UpdateKOCounting();
}
- private void updateKOCounting(double boneDamageAdjuster = 0)
+ private void UpdateKOCounting(double boneDamageAdjuster = 0)
{
if (boneDamageAdjuster == 0)
boneDamageAdjuster = currentBoneDamageAdjuster;
@@ -327,7 +337,7 @@ private void updateKOCounting(double boneDamageAdjuster = 0)
koNumbers = "";
}
- public double[] weaponDamages
+ public double[] WeaponDamages
{
get => new[] { (double)nudWDmLongneck.Value, (double)nudWDmCrossbow.Value, (double)nudWDmBow.Value, (double)nudWDmSlingshot.Value, (double)nudWDmClub.Value, (double)nudWDmProd.Value, (double)nudWDmHarpoon.Value };
set
@@ -343,7 +353,7 @@ public double[] weaponDamages
}
}
- public int weaponDamagesEnabled
+ public int WeaponDamagesEnabled
{
set
{
@@ -377,11 +387,11 @@ private void btnAddStarvingTimer_Click(object sender, EventArgs e)
CreateTimer(Loc.s("timerStarvingOf") + " " + selectedSpecies.name, starvingTime, null, TimerControl.TimerGroups.Starving.ToString());
}
- public void setTamingMultipliers(double tamingSpeedMultiplier, double tamingFoodRateMultiplier)
+ public void SetTamingMultipliers(double tamingSpeedMultiplier, double tamingFoodRateMultiplier)
{
this.tamingSpeedMultiplier = tamingSpeedMultiplier;
this.tamingFoodRateMultiplier = tamingFoodRateMultiplier;
- updateTamingData();
+ UpdateTamingData();
}
private void rbBoneDamage_CheckedChanged(object sender, EventArgs e)
@@ -394,11 +404,14 @@ private void rbBoneDamage_CheckedChanged(object sender, EventArgs e)
currentBoneDamageAdjuster = rbBoneDamageAdjusterValues[i];
else
currentBoneDamageAdjuster = 1;
- updateKOCounting();
+ UpdateKOCounting();
}
}
- private void updateFirstFeedingWaiting()
+ ///
+ /// Calculate the waiting time after the first feeding, which is different to the other times.
+ ///
+ private void UpdateFirstFeedingWaiting()
{
int s = Taming.durationAfterFirstFeeding(selectedSpecies, (int)nudLevel.Value, foodDepletion);
if (s > 0)
diff --git a/ARKBreedingStats/TimerControl.Designer.cs b/ARKBreedingStats/TimerControl.Designer.cs
index 4fe22d83..7d244248 100644
--- a/ARKBreedingStats/TimerControl.Designer.cs
+++ b/ARKBreedingStats/TimerControl.Designer.cs
@@ -40,6 +40,7 @@ private void InitializeComponent()
this.removeAllExpiredTimersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.groupBoxAddTimer = new System.Windows.Forms.GroupBox();
+ this.btOpenSoundFolder = new System.Windows.Forms.Button();
this.SoundListBox = new System.Windows.Forms.ComboBox();
this.SoundLabel = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
@@ -51,7 +52,7 @@ private void InitializeComponent()
this.dateTimePickerTimerFinish = new System.Windows.Forms.DateTimePicker();
this.textBoxTimerName = new System.Windows.Forms.TextBox();
this.buttonAddTimer = new System.Windows.Forms.Button();
- this.btOpenSoundFolder = new System.Windows.Forms.Button();
+ this.btPlaySelectedSound = new System.Windows.Forms.Button();
this.contextMenuStrip1.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.groupBoxAddTimer.SuspendLayout();
@@ -146,6 +147,7 @@ private void InitializeComponent()
//
// groupBoxAddTimer
//
+ this.groupBoxAddTimer.Controls.Add(this.btPlaySelectedSound);
this.groupBoxAddTimer.Controls.Add(this.btOpenSoundFolder);
this.groupBoxAddTimer.Controls.Add(this.SoundListBox);
this.groupBoxAddTimer.Controls.Add(this.SoundLabel);
@@ -162,6 +164,16 @@ private void InitializeComponent()
this.groupBoxAddTimer.TabStop = false;
this.groupBoxAddTimer.Text = "Add Manual Timer";
//
+ // btOpenSoundFolder
+ //
+ this.btOpenSoundFolder.Location = new System.Drawing.Point(72, 97);
+ this.btOpenSoundFolder.Name = "btOpenSoundFolder";
+ this.btOpenSoundFolder.Size = new System.Drawing.Size(156, 23);
+ this.btOpenSoundFolder.TabIndex = 15;
+ this.btOpenSoundFolder.Text = "Open custom sounds folder";
+ this.btOpenSoundFolder.UseVisualStyleBackColor = true;
+ this.btOpenSoundFolder.Click += new System.EventHandler(this.btOpenSoundFolder_Click);
+ //
// SoundListBox
//
this.SoundListBox.FormattingEnabled = true;
@@ -263,15 +275,15 @@ private void InitializeComponent()
this.buttonAddTimer.UseVisualStyleBackColor = true;
this.buttonAddTimer.Click += new System.EventHandler(this.buttonAddTimer_Click);
//
- // btOpenSoundFolder
+ // btPlaySelectedSound
//
- this.btOpenSoundFolder.Location = new System.Drawing.Point(72, 97);
- this.btOpenSoundFolder.Name = "btOpenSoundFolder";
- this.btOpenSoundFolder.Size = new System.Drawing.Size(156, 23);
- this.btOpenSoundFolder.TabIndex = 15;
- this.btOpenSoundFolder.Text = "Open custom sounds folder";
- this.btOpenSoundFolder.UseVisualStyleBackColor = true;
- this.btOpenSoundFolder.Click += new System.EventHandler(this.btOpenSoundFolder_Click);
+ this.btPlaySelectedSound.Location = new System.Drawing.Point(6, 97);
+ this.btPlaySelectedSound.Name = "btPlaySelectedSound";
+ this.btPlaySelectedSound.Size = new System.Drawing.Size(60, 23);
+ this.btPlaySelectedSound.TabIndex = 16;
+ this.btPlaySelectedSound.Text = "⏵";
+ this.btPlaySelectedSound.UseVisualStyleBackColor = true;
+ this.btPlaySelectedSound.Click += new System.EventHandler(this.btPlaySelectedSound_Click);
//
// TimerControl
//
@@ -315,5 +327,6 @@ private void InitializeComponent()
private System.Windows.Forms.ComboBox SoundListBox;
private System.Windows.Forms.Label SoundLabel;
private System.Windows.Forms.Button btOpenSoundFolder;
+ private System.Windows.Forms.Button btPlaySelectedSound;
}
}
diff --git a/ARKBreedingStats/TimerControl.cs b/ARKBreedingStats/TimerControl.cs
index 167bbab9..b2f6f2e8 100644
--- a/ARKBreedingStats/TimerControl.cs
+++ b/ARKBreedingStats/TimerControl.cs
@@ -18,7 +18,7 @@ public partial class TimerControl : UserControl
public bool updateTimer;
private List timerListEntries;
- public event Form1.collectionChangedEventHandler onTimerChange;
+ public event Form1.collectionChangedEventHandler OnTimerChange;
private List creatures;
public SoundPlayer[] sounds;
private List timerAlerts;
@@ -46,12 +46,14 @@ public TimerControl()
int i = 0;
foreach (KeyValuePair ts in times)
{
- var bta = new uiControls.ButtonAddTime();
- bta.timeSpan = ts.Value;
- bta.Text = ts.Key;
+ var bta = new uiControls.ButtonAddTime
+ {
+ timeSpan = ts.Value,
+ Text = ts.Key,
+ Size = new Size(54, 23),
+ Location = new Point(6 + i % 3 * 60, 48 + i / 3 * 29)
+ };
bta.addTimer += buttonAddTime_addTimer;
- bta.Size = new Size(54, 23);
- bta.Location = new Point(6 + i % 3 * 60, 48 + i / 3 * 29);
groupBox1.Controls.Add(bta);
i++;
}
@@ -74,7 +76,7 @@ private void TimerControl_Load(object sender, EventArgs e)
SoundListBox.SelectedIndex = 0;
}
- public void addTimer(string name, DateTime finishTime, Creature c, string group = "Custom")
+ public void AddTimer(string name, DateTime finishTime, Creature c, string group = "Custom")
{
TimerListEntry tle = new TimerListEntry
{
@@ -86,7 +88,7 @@ public void addTimer(string name, DateTime finishTime, Creature c, string group
? null : SoundListBox.SelectedItem as string
};
- tle.lvi = createLvi(name, finishTime, tle);
+ tle.lvi = CreateLvi(name, finishTime, tle);
int i = 0;
while (i < listViewTimer.Items.Count && ((TimerListEntry)listViewTimer.Items[i].Tag).time < finishTime)
{
@@ -94,18 +96,18 @@ public void addTimer(string name, DateTime finishTime, Creature c, string group
}
listViewTimer.Items.Insert(i, tle.lvi);
timerListEntries.Add(tle);
- onTimerChange?.Invoke();
+ OnTimerChange?.Invoke();
}
- private void removeTimer(TimerListEntry timerEntry, bool invokeChange = true)
+ private void RemoveTimer(TimerListEntry timerEntry, bool invokeChange = true)
{
timerEntry.lvi.Remove();
timerListEntries.Remove(timerEntry);
if (invokeChange)
- onTimerChange?.Invoke();
+ OnTimerChange?.Invoke();
}
- private ListViewItem createLvi(string name, DateTime finishTime, TimerListEntry tle)
+ private ListViewItem CreateLvi(string name, DateTime finishTime, TimerListEntry tle)
{
// check if group of timers exists
ListViewGroup g = null;
@@ -155,7 +157,7 @@ public void Tick()
{
if (diff.TotalSeconds < timerAlerts[i] + 0.8 && diff.TotalSeconds > timerAlerts[i] - 0.8)
{
- playSound(t.@group, i, "", t.sound);
+ PlaySound(t.@group, i, "", t.sound);
break;
}
}
@@ -164,35 +166,23 @@ public void Tick()
}
}
- public void playSound(string group, int alert, string speakText = "", string customSoundFile = null)
+ public void PlaySound(string group, int alert, string speakText = "", string customSoundFile = null)
{
- string soundPath = null;
- if (!string.IsNullOrEmpty(customSoundFile))
- {
- soundPath = Path.Combine(FileService.GetPath("sounds"), customSoundFile);
- if (!File.Exists(soundPath))
- soundPath = null;
- }
- if (!string.IsNullOrEmpty(soundPath))
- {
- using (var sp = new SoundPlayer(soundPath))
- playSoundFile(sp);
- }
- else if (string.IsNullOrEmpty(speakText))
+ if (!PlayCustomSound(customSoundFile) && string.IsNullOrEmpty(speakText))
{
switch (group)
{
case "Starving":
- playSoundFile(sounds[0]);
+ PlaySoundFile(sounds[0]);
break;
case "Wakeup":
- playSoundFile(sounds[1]);
+ PlaySoundFile(sounds[1]);
break;
case "Birth":
- playSoundFile(sounds[2]);
+ PlaySoundFile(sounds[2]);
break;
case "Custom":
- playSoundFile(sounds[3]);
+ PlaySoundFile(sounds[3]);
break;
default:
SystemSounds.Hand.Play();
@@ -209,7 +199,7 @@ public void playSound(string group, int alert, string speakText = "", string cus
}
}
- private void playSoundFile(SoundPlayer sound)
+ private void PlaySoundFile(SoundPlayer sound)
{
if (sound == null) SystemSounds.Hand.Play();
else sound.Play();
@@ -266,7 +256,7 @@ public CreatureCollection CreatureCollection
foreach (TimerListEntry tle in timerListEntries)
{
- tle.lvi = createLvi(tle.name, tle.time, tle);
+ tle.lvi = CreateLvi(tle.name, tle.time, tle);
int i = 0;
while (i < listViewTimer.Items.Count && ((TimerListEntry)listViewTimer.Items[i].Tag).time < tle.time)
{
@@ -308,16 +298,16 @@ private void removeSelectedEntry()
, "Remove Timer?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
for (int t = listViewTimer.SelectedIndices.Count - 1; t >= 0; t--)
- removeTimer((TimerListEntry)listViewTimer.SelectedItems[t].Tag, false);
+ RemoveTimer((TimerListEntry)listViewTimer.SelectedItems[t].Tag, false);
- refreshOverlayTimers();
- onTimerChange?.Invoke();
+ RefreshOverlayTimers();
+ OnTimerChange?.Invoke();
}
}
private void buttonAddTimer_Click(object sender, EventArgs e)
{
- addTimer(textBoxTimerName.Text, dateTimePickerTimerFinish.Value, null);
+ AddTimer(textBoxTimerName.Text, dateTimePickerTimerFinish.Value, null);
}
private void bSetTimerNow_Click(object sender, EventArgs e)
@@ -344,11 +334,11 @@ private void addToOverlayToolStripMenuItem_Click(object sender, EventArgs e)
bool show = !((TimerListEntry)listViewTimer.SelectedItems[0].Tag).showInOverlay;
for (int i = 0; i < listViewTimer.SelectedIndices.Count; i++)
((TimerListEntry)listViewTimer.SelectedItems[i].Tag).showInOverlay = show;
- refreshOverlayTimers();
+ RefreshOverlayTimers();
}
}
- private void refreshOverlayTimers()
+ private void RefreshOverlayTimers()
{
if (ARKOverlay.theOverlay != null)
{
@@ -381,24 +371,24 @@ public enum TimerGroups
Starving
}
- internal void deleteAllExpiredTimers()
+ internal void DeleteAllExpiredTimers()
{
if (MessageBox.Show("Delete all expired timers?", "Delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
for (int i = 0; i < timerListEntries.Count; i++)
{
if (timerListEntries[i].time < DateTime.Now)
- removeTimer(timerListEntries[i--], false);
+ RemoveTimer(timerListEntries[i--], false);
}
- refreshOverlayTimers();
+ RefreshOverlayTimers();
- onTimerChange?.Invoke();
+ OnTimerChange?.Invoke();
}
}
private void removeAllExpiredTimersToolStripMenuItem_Click(object sender, EventArgs e)
{
- deleteAllExpiredTimers();
+ DeleteAllExpiredTimers();
}
private void btOpenSoundFolder_Click(object sender, EventArgs e)
@@ -416,5 +406,42 @@ private void btOpenSoundFolder_Click(object sender, EventArgs e)
if (Directory.Exists(soundPath))
System.Diagnostics.Process.Start(soundPath);
}
+
+ private void btPlaySelectedSound_Click(object sender, EventArgs e)
+ {
+ string customSoundfile = SoundListBox.SelectedItem?.ToString();
+ if (customSoundfile == DefaultSoundName)
+ {
+ SystemSounds.Hand.Play();
+ return;
+ }
+
+ PlayCustomSound(customSoundfile);
+ }
+
+ ///
+ /// Plays a custom sound file at a specific folder. Returns false if the file wasn't found.
+ ///
+ ///
+ ///
+ private bool PlayCustomSound(string fileName)
+ {
+ string soundPath = null;
+ if (!string.IsNullOrEmpty(fileName))
+ {
+ soundPath = Path.Combine(FileService.GetPath("sounds"), fileName);
+ if (!File.Exists(soundPath))
+ soundPath = null;
+ }
+ if (!string.IsNullOrEmpty(soundPath))
+ {
+ using (var sp = new SoundPlayer(soundPath))
+ {
+ PlaySoundFile(sp);
+ return true;
+ }
+ }
+ return false;
+ }
}
}
diff --git a/ARKBreedingStats/importExported/ExportedCreatureList.cs b/ARKBreedingStats/importExported/ExportedCreatureList.cs
index 4eb3992b..ce697e1f 100644
--- a/ARKBreedingStats/importExported/ExportedCreatureList.cs
+++ b/ARKBreedingStats/importExported/ExportedCreatureList.cs
@@ -39,7 +39,7 @@ public ExportedCreatureList()
private void ExportedCreatureList_FormClosing(object sender, FormClosingEventArgs e)
{
// if window is not minimized
- if (Location.X >= 0)
+ if (this.WindowState == FormWindowState.Normal)
{
Properties.Settings.Default.importExportedLocation = Location;
Properties.Settings.Default.importExportedSize = Size;
diff --git a/ARKBreedingStats/json/values/values.json b/ARKBreedingStats/json/values/values.json
index 379d4c8e..381f7052 100644
--- a/ARKBreedingStats/json/values/values.json
+++ b/ARKBreedingStats/json/values/values.json
@@ -1,6 +1,6 @@
{
"format": "1.12",
- "version": "298.41.4205769",
+ "version": "300.0.4310275",
"species": [
{
"name": "Rockwell",
@@ -10566,6 +10566,84 @@
"doesNotUseOxygen": true,
"displayedStats": 919
},
+ {
+ "name": "Skeletal Carnotaurus",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Carno/Bone_MegaCarno_Character_BP.Bone_MegaCarno_Character_BP",
+ "fullStatsRaw": [
+ [ 6400, 0.2, 0.27, 0.5, 0 ],
+ [ 300, 0.1, 0.1, 0, 0 ],
+ [ 350, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 2000, 0.1, 0.1, 0, 0.15 ],
+ null,
+ null,
+ [ 300, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 0.085, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 0,
+ "maturationTime": 166666.66666666666,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ { "name": null },
+ { "name": null },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.875,
+ "affinityNeeded0": 2000,
+ "affinityIncreasePL": 100,
+ "foodConsumptionBase": 0.001852,
+ "foodConsumptionMult": 199.983994
+ },
+ "boneDamageAdjusters": {
+ "Cnt_Head_JNT_SKL": 3.0,
+ "Cnt_Neck_002_JNT_SKL": 3.0,
+ "Cnt_Neck_000_JNT_SKL": 3.0
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
{
"name": "Carnotaurus",
"blueprintPath": "/Game/PrimalEarth/Dinos/Carno/Carno_Character_BP.Carno_Character_BP",
@@ -14326,6 +14404,40 @@
"doesNotUseOxygen": true,
"displayedStats": 919
},
+ {
+ "name": "DodoRex",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/DodoRex/DodoRex_Character_BP.DodoRex_Character_BP",
+ "fullStatsRaw": [
+ [ 666666, 0.2, 0.27, 0, 0 ],
+ [ 1666, 0.1, 0.1, 0, 0 ],
+ [ 1550, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 3000, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 500, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0, 0.4 ],
+ [ 1, 0, 0.01, 0, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Large Bear Trap"
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.25,
+ "affinityNeeded0": 3450,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.002314,
+ "foodConsumptionMult": 180.063385
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
{
"name": "Doedicurus",
"blueprintPath": "/Game/PrimalEarth/Dinos/Doedicurus/Doed_Character_BP.Doed_Character_BP",
@@ -16121,6 +16233,98 @@
"doesNotUseOxygen": false,
"displayedStats": 927
},
+ {
+ "name": "Skeletal Giganotosaurus",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Giganotosaurus/Bone_Gigant_Character_BP.Bone_Gigant_Character_BP",
+ "fullStatsRaw": [
+ [ 80000, 0.0005, 0.002, -63000, 0 ],
+ [ 400, 0.0005, 0.01, 0, 0 ],
+ [ 10000, 0.06, 0, 0, 0 ],
+ [ 150, 0.0025, 0.025, 0, 0 ],
+ [ 4000, 0.0025, 0.025, 0, 0 ],
+ null,
+ null,
+ [ 700, 0.01, 0.01, 0, 0 ],
+ [ 1, 0.05, 0.05, -0.8, 0 ],
+ [ 1, 0, 0.0031, 0, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Large Bear Trap"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 179985.60115190782,
+ "eggTempMin": 43,
+ "eggTempMax": 44,
+ "maturationTime": 1010101.01010101,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ { "name": null },
+ { "name": null },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dino Dark Red",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Red",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.25,
+ "affinityNeeded0": 5000,
+ "affinityIncreasePL": 160,
+ "foodConsumptionBase": 0.002314,
+ "foodConsumptionMult": 160.056335
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
+ },
{
"name": "Giganotosaurus",
"blueprintPath": "/Game/PrimalEarth/Dinos/Giganotosaurus/Gigant_Character_BP.Gigant_Character_BP",
@@ -23813,19 +24017,19 @@
"displayedStats": 927
},
{
- "name": "Quetzal",
- "blueprintPath": "/Game/PrimalEarth/Dinos/Quetzalcoatlus/Quetz_Character_BP.Quetz_Character_BP",
+ "name": "Skeletal Quetzal",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Quetzalcoatlus/Bone_Quetz_Character_BP.Bone_Quetz_Character_BP",
"fullStatsRaw": [
- [ 1200, 0.2, 0.108, 0.5, 0 ],
- [ 800, 0.05, 0.05, 0, 0 ],
+ [ 18000, 0.2, 0.27, 0.5, 0 ],
+ [ 750, 0.1, 0.1, 0, 0 ],
[ 1850, 0.06, 0, 0.5, 0 ],
[ 150, 0.1, 0.1, 0, 0 ],
[ 1200, 0.1, 0.1, 0, 0.15 ],
null,
null,
- [ 800, 0.02, 0.05, 0, 0 ],
+ [ 780, 0.02, 0.04, 0, 0 ],
[ 1, 0.04, 0.1, 0.4, 0.4 ],
- [ 1, 0, 0.0, 0.365, 0 ],
+ [ 1, 0, 0.01, 0.365, 0 ],
null,
null
],
@@ -23847,7 +24051,7 @@
},
"colors": [
{
- "name": "Wing Membrane",
+ "name": "Unknown",
"colors": [
"Black",
"Dark Grey",
@@ -23868,7 +24072,7 @@
]
},
{
- "name": "Crest",
+ "name": "Unknown",
"colors": [
"Black",
"Dino Light Blue",
@@ -23884,7 +24088,7 @@
]
},
{
- "name": "Skins",
+ "name": "Unknown",
"colors": [
"Black",
"Dark Grey",
@@ -23901,7 +24105,7 @@
]
},
{
- "name": "Freckles",
+ "name": "Unknown",
"colors": [
"Black",
"Dino Light Blue",
@@ -23931,7 +24135,7 @@
]
},
{
- "name": "Body Feathers",
+ "name": "Unknown",
"colors": [
"Black",
"Dark Grey",
@@ -23948,11 +24152,10 @@
],
"taming": {
"nonViolent": false,
- "violent": true,
+ "violent": false,
"tamingIneffectiveness": 0.9375,
"affinityNeeded0": 6850,
"affinityIncreasePL": 300,
- "torporDepletionPS0": 3.4000000000000004,
"foodConsumptionBase": 0.0035,
"foodConsumptionMult": 140
},
@@ -23965,51 +24168,203 @@
"displayedStats": 927
},
{
- "name": "Tek Raptor",
- "blueprintPath": "/Game/PrimalEarth/Dinos/Raptor/BionicRaptor_Character_BP.BionicRaptor_Character_BP",
+ "name": "Quetzal",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Quetzalcoatlus/Quetz_Character_BP.Quetz_Character_BP",
"fullStatsRaw": [
- [ 200, 0.2, 0.27, 0.5, 0 ],
- [ 150, 0.1, 0.1, 0, 0 ],
- [ 180, 0.06, 0, 0.5, 0 ],
+ [ 1200, 0.2, 0.108, 0.5, 0 ],
+ [ 800, 0.05, 0.05, 0, 0 ],
+ [ 1850, 0.06, 0, 0.5, 0 ],
[ 150, 0.1, 0.1, 0, 0 ],
- [ 1200, 0.1, 0.1, 0, 0 ],
+ [ 1200, 0.1, 0.1, 0, 0.15 ],
null,
null,
- [ 140, 0.02, 0.04, 0, 0 ],
- [ 1, 0.05, 0.1, 0.5, 0.4 ],
- [ 1, 0, 0.015, 0.2, 0 ],
+ [ 800, 0.02, 0.05, 0, 0 ],
+ [ 1, 0.04, 0.1, 0.4, 0.4 ],
+ [ 1, 0, 0.0, 0.365, 0 ],
null,
null
],
+ "statImprintMult": [ 0.2, 0, 0.2, 0, 0.2, 0.2, 0, 0.2, 0.2, 0, 0, 0 ],
"immobilizedBy": [
- "Bola",
+ "Chain Bola",
"Bear Trap",
"Large Bear Trap",
"Plant Species Y"
],
"breeding": {
"gestationTime": 0,
- "incubationTime": 7199.424046076313,
- "eggTempMin": 20,
- "eggTempMax": 28,
- "maturationTime": 133333.3333333333,
+ "incubationTime": 59995.20038396928,
+ "eggTempMin": 5,
+ "eggTempMax": 6,
+ "maturationTime": 666666.6666666666,
"matingCooldownMin": 64800,
"matingCooldownMax": 172800
},
"colors": [
{
- "name": "Inner Body",
+ "name": "Wing Membrane",
"colors": [
+ "Black",
"Dark Grey",
- "Dark Red",
"Dino Dark Brown",
+ "Dino Dark Green",
"Dino Dark Orange",
- "Dino Light Blue",
- "Dino Light Yellow",
- "DragonBase0",
- "DragonBase1",
- "DragonFire",
- "Light Brown",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Red",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Crest",
+ "colors": [
+ "Black",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Purple",
+ "Dino Light Red",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Skins",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Blue",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Freckles",
+ "colors": [
+ "Black",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Purple",
+ "Dino Light Red",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Beak",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Orange",
+ "Dino Darker Grey",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Body Feathers",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": true,
+ "tamingIneffectiveness": 0.9375,
+ "affinityNeeded0": 6850,
+ "affinityIncreasePL": 300,
+ "torporDepletionPS0": 3.4000000000000004,
+ "foodConsumptionBase": 0.0035,
+ "foodConsumptionMult": 140
+ },
+ "boneDamageAdjusters": {
+ "c_head": 3.0
+ },
+ "TamedBaseHealthMultiplier": 0.85,
+ "NoImprintingForSpeed": true,
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
+ },
+ {
+ "name": "Tek Raptor",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Raptor/BionicRaptor_Character_BP.BionicRaptor_Character_BP",
+ "fullStatsRaw": [
+ [ 200, 0.2, 0.27, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 180, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 1200, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 140, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.015, 0.2, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Bola",
+ "Bear Trap",
+ "Large Bear Trap",
+ "Plant Species Y"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 7199.424046076313,
+ "eggTempMin": 20,
+ "eggTempMax": 28,
+ "maturationTime": 133333.3333333333,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Inner Body",
+ "colors": [
+ "Dark Grey",
+ "Dark Red",
+ "Dino Dark Brown",
+ "Dino Dark Orange",
+ "Dino Light Blue",
+ "Dino Light Yellow",
+ "DragonBase0",
+ "DragonBase1",
+ "DragonFire",
+ "Light Brown",
"Light Grey",
"Light Orange",
"Light Red",
@@ -24130,6 +24485,92 @@
"doesNotUseOxygen": false,
"displayedStats": 927
},
+ {
+ "name": "Skeletal Raptor",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Raptor/Bone_MegaRaptor_Character_BP.Bone_MegaRaptor_Character_BP",
+ "fullStatsRaw": [
+ [ 3600, 0.2, 0.27, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 180, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 1200, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 140, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.015, 0.2, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 0,
+ "maturationTime": 133333.3333333333,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Dino Dark Orange"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Dino Dark Orange"
+ ]
+ },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Dino Dark Orange"
+ ]
+ },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Dino Dark Orange"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 3.125,
+ "affinityNeeded0": 1200,
+ "affinityIncreasePL": 60,
+ "foodConsumptionBase": 0.001543,
+ "foodConsumptionMult": 648.088135
+ },
+ "boneDamageAdjusters": {
+ "Cnt_Head_JNT_SKL": 3.0,
+ "Cnt_Neck_002_JNT_SKL": 3.0,
+ "Cnt_Neck_000_JNT_SKL": 3.0
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
{
"name": "Alpha Raptor",
"blueprintPath": "/Game/PrimalEarth/Dinos/Raptor/MegaRaptor_Character_BP.MegaRaptor_Character_BP",
@@ -24776,6 +25217,105 @@
"doesNotUseOxygen": false,
"displayedStats": 927
},
+ {
+ "name": "Skeletal Rex",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Rex/Bone_MegaRex_Character_BP.Bone_MegaRex_Character_BP",
+ "fullStatsRaw": [
+ [ 17500, 0.2, 0.27, 0.5, 0 ],
+ [ 420, 0.1, 0.1, 0, 0 ],
+ [ 1550, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 3000, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 500, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 0, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 17998.560115190783,
+ "eggTempMin": 32,
+ "eggTempMax": 34,
+ "maturationTime": 333333.3333333333,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Red",
+ "Dino Albino",
+ "Red"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.25,
+ "affinityNeeded0": 3450,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.002314,
+ "foodConsumptionMult": 180.063385
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
{
"name": "Alpha T-Rex",
"blueprintPath": "/Game/PrimalEarth/Dinos/Rex/MegaRex_Character_BP.MegaRex_Character_BP",
@@ -25401,26 +25941,141 @@
[ 450, 0.1, 0.1, 0, 0 ],
[ 400, 0.06, 0, 0.5, 0 ],
[ 150, 0.1, 0.1, 0, 0 ],
- [ 1500, 0.1, 0.1, 0, 0 ],
+ [ 1500, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 300, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.8, 0.5 ],
+ [ 1, 0, 0.01, 0.6, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola",
+ "Large Bear Trap",
+ "Plant Species Y"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 8999.280057595392,
+ "eggTempMin": 30,
+ "eggTempMax": 34,
+ "maturationTime": 166666.66666666666,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": true,
+ "tamingIneffectiveness": 2.5,
+ "affinityNeeded0": 2000,
+ "affinityIncreasePL": 75,
+ "torporDepletionPS0": 0.30000000000000004,
+ "foodConsumptionBase": 0.001578,
+ "foodConsumptionMult": 211.237854
+ },
+ "TamedBaseHealthMultiplier": 0.96,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
+ {
+ "name": "Skeletal Bronto",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Sauropod/Bone_Sauropod_Character_BP.Bone_Sauropod_Character_BP",
+ "fullStatsRaw": [
+ [ 34500, 0.2, 0.19, 0.5, 0 ],
+ [ 240, 0.1, 0.1, 0, 0 ],
+ [ 2000, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 10000, 0.1, 0.1, 0, 0 ],
null,
null,
- [ 300, 0.02, 0.04, 0, 0 ],
- [ 1, 0.05, 0.1, 0.8, 0.5 ],
- [ 1, 0, 0.01, 0.6, 0 ],
+ [ 1600, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 0, 0 ],
null,
null
],
"immobilizedBy": [
- "Chain Bola",
- "Large Bear Trap",
- "Plant Species Y"
+ "Large Bear Trap"
],
"breeding": {
"gestationTime": 0,
- "incubationTime": 8999.280057595392,
- "eggTempMin": 30,
- "eggTempMax": 34,
- "maturationTime": 166666.66666666666,
+ "incubationTime": 0,
+ "maturationTime": 333333.3333333333,
"matingCooldownMin": 64800,
"matingCooldownMax": 172800
},
@@ -25432,24 +26087,10 @@
"Dark Grey",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Yellow",
- "Dino Medium Brown",
- "Dino Medium Green"
- ]
- },
- { "name": null },
- {
- "name": "Unknown",
- "colors": [
- "Black",
- "Dark Grey",
- "Dino Dark Brown",
- "Dino Dark Green",
- "Dino Dark Yellow",
- "Dino Darker Grey",
- "Dino Light Yellow",
"Dino Medium Brown",
"Dino Medium Green"
]
@@ -25461,13 +26102,16 @@
"Dark Grey",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Yellow",
"Dino Medium Brown",
"Dino Medium Green"
]
},
+ { "name": null },
+ { "name": null },
{
"name": "Unknown",
"colors": [
@@ -25475,9 +26119,10 @@
"Dark Grey",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Yellow",
"Dino Medium Brown",
"Dino Medium Green"
]
@@ -25486,31 +26131,29 @@
"name": "Unknown",
"colors": [
"Black",
- "Dark Grey",
- "Dino Dark Brown",
- "Dino Dark Green",
- "Dino Dark Yellow",
- "Dino Darker Grey",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
"Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green"
+ "Dino Medium Green",
+ "Light Grey"
]
}
],
"taming": {
"nonViolent": false,
- "violent": true,
- "tamingIneffectiveness": 2.5,
- "affinityNeeded0": 2000,
- "affinityIncreasePL": 75,
- "torporDepletionPS0": 0.30000000000000004,
- "foodConsumptionBase": 0.001578,
- "foodConsumptionMult": 211.237854
+ "violent": false,
+ "tamingIneffectiveness": 0.06,
+ "affinityNeeded0": 10000,
+ "affinityIncreasePL": 500,
+ "foodConsumptionBase": 0.007716,
+ "foodConsumptionMult": 180.001144
},
- "TamedBaseHealthMultiplier": 0.96,
+ "TamedBaseHealthMultiplier": 0.9,
"NoImprintingForSpeed": false,
- "doesNotUseOxygen": true,
- "displayedStats": 919
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
},
{
"name": "Brontosaurus",
@@ -27484,7 +28127,192 @@
null,
[ 500, 0.02, 0.04, 0, 0 ],
[ 1, 0.05, 0.1, 0.5, 0.4 ],
- [ 1, 0, 0.02, 0.964, 0 ],
+ [ 1, 0, 0.02, 0.964, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola",
+ "Large Bear Trap",
+ "Plant Species Y"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 9999.20006399488,
+ "eggTempMin": 22,
+ "eggTempMax": 28,
+ "maturationTime": 185185.18518518517,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Inner Body",
+ "colors": [
+ "Dark Green",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "DragonGreen0",
+ "DragonGreen1",
+ "GragonGreen2",
+ "Light Green",
+ "Light Yellow",
+ "NearBlack",
+ "NearWhite"
+ ]
+ },
+ {
+ "name": "Spine",
+ "colors": [
+ "Dark Green",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "DragonGreen0",
+ "DragonGreen1",
+ "GragonGreen2",
+ "Light Green",
+ "Light Yellow",
+ "NearBlack",
+ "NearWhite"
+ ]
+ },
+ {
+ "name": "Body",
+ "colors": [
+ "Dark Green",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "DragonGreen0",
+ "DragonGreen1",
+ "GragonGreen2",
+ "Light Green",
+ "Light Yellow",
+ "NearBlack",
+ "NearWhite"
+ ]
+ },
+ {
+ "name": "Legs and Head",
+ "colors": [
+ "Dark Green",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "DragonGreen0",
+ "DragonGreen1",
+ "GragonGreen2",
+ "Light Green",
+ "Light Yellow",
+ "NearBlack",
+ "NearWhite"
+ ]
+ },
+ {
+ "name": "Leg Tops and Spike Plate",
+ "colors": [
+ "Dark Green",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "DragonGreen0",
+ "DragonGreen1",
+ "GragonGreen2",
+ "Light Green",
+ "Light Yellow",
+ "NearBlack",
+ "NearWhite"
+ ]
+ },
+ {
+ "name": "Emissive and Spike Tops",
+ "colors": [
+ "Dino Albino",
+ "Dino Light Blue",
+ "Dino Light Purple",
+ "Light Green",
+ "Light Orange",
+ "Light Red",
+ "Light Yellow"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": true,
+ "tamingIneffectiveness": 0.1,
+ "affinityNeeded0": 6000,
+ "affinityIncreasePL": 300,
+ "torporDepletionPS0": 0.30000000000000004,
+ "foodConsumptionBase": 0.005341,
+ "foodConsumptionMult": 208.034286
+ },
+ "boneDamageAdjusters": {
+ "Cnt_Head_JNT_SKL": 1.6699999570846558,
+ "Cnt_Jaw_JNT_SKL": 1.6699999570846558,
+ "Cnt_Neck_004_JNT_SKL": 1.6699999570846558,
+ "Cnt_Spine_002_JNT_SKL": 0.699999988079071,
+ "Cnt_Spine_001_JNT_SKL": 0.699999988079071,
+ "Cnt_Spine_000_JNT_SKL": 0.699999988079071,
+ "Cnt_Spine_003_JNT_SKL": 0.699999988079071,
+ "Cnt_Tail_000_JNT_SKL": 0.699999988079071
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
+ },
+ {
+ "name": "Skeletal Stego",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Stego/Bone_Stego_Character_BP.Bone_Stego_Character_BP",
+ "fullStatsRaw": [
+ [ 8550, 0.2, 0.27, 0.5, 0 ],
+ [ 300, 0.1, 0.1, 0, 0 ],
+ [ 500, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 6000, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 440, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 0.964, 0 ],
null,
null
],
@@ -27495,149 +28323,112 @@
],
"breeding": {
"gestationTime": 0,
- "incubationTime": 9999.20006399488,
- "eggTempMin": 22,
- "eggTempMax": 28,
+ "incubationTime": 0,
"maturationTime": 185185.18518518517,
"matingCooldownMin": 64800,
"matingCooldownMax": 172800
},
"colors": [
{
- "name": "Inner Body",
+ "name": "Unknown",
"colors": [
- "Dark Green",
+ "Black",
+ "Dark Grey",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
- "Dino Light Brown",
- "Dino Light Green",
- "Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "DragonGreen0",
- "DragonGreen1",
- "GragonGreen2",
- "Light Green",
- "Light Yellow",
- "NearBlack",
- "NearWhite"
+ "Dino Medium Green"
]
},
{
- "name": "Spine",
+ "name": "Unknown",
"colors": [
- "Dark Green",
+ "Black",
+ "Dark Grey",
+ "Dino Dark Blue",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
- "Dino Light Brown",
- "Dino Light Green",
- "Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "DragonGreen0",
- "DragonGreen1",
- "GragonGreen2",
- "Light Green",
- "Light Yellow",
- "NearBlack",
- "NearWhite"
+ "Dino Medium Green"
]
},
{
- "name": "Body",
+ "name": "Unknown",
"colors": [
- "Dark Green",
+ "Black",
+ "Dark Grey",
+ "Dino Dark Blue",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
- "Dino Light Brown",
- "Dino Light Green",
- "Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "DragonGreen0",
- "DragonGreen1",
- "GragonGreen2",
- "Light Green",
- "Light Yellow",
- "NearBlack",
- "NearWhite"
+ "Dino Medium Green"
]
},
{
- "name": "Legs and Head",
+ "name": "Unknown",
"colors": [
- "Dark Green",
+ "Black",
+ "Dark Grey",
"Dino Dark Brown",
"Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
- "Dino Light Brown",
- "Dino Light Green",
- "Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "DragonGreen0",
- "DragonGreen1",
- "GragonGreen2",
- "Light Green",
- "Light Yellow",
- "NearBlack",
- "NearWhite"
+ "Dino Medium Green"
]
},
{
- "name": "Leg Tops and Spike Plate",
+ "name": "Unknown",
"colors": [
- "Dark Green",
- "Dino Dark Brown",
- "Dino Dark Green",
- "Dino Dark Yellow",
- "Dino Darker Grey",
+ "Black",
"Dino Light Blue",
"Dino Light Brown",
"Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Purple",
+ "Dino Light Red",
"Dino Light Yellow",
"Dino Medium Brown",
"Dino Medium Green",
- "DragonGreen0",
- "DragonGreen1",
- "GragonGreen2",
- "Light Green",
- "Light Yellow",
- "NearBlack",
- "NearWhite"
+ "Light Grey"
]
},
{
- "name": "Emissive and Spike Tops",
+ "name": "Unknown",
"colors": [
- "Dino Albino",
- "Dino Light Blue",
- "Dino Light Purple",
- "Light Green",
- "Light Orange",
- "Light Red",
- "Light Yellow"
+ "Black",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
]
}
],
"taming": {
"nonViolent": false,
- "violent": true,
+ "violent": false,
"tamingIneffectiveness": 0.1,
"affinityNeeded0": 6000,
"affinityIncreasePL": 300,
- "torporDepletionPS0": 0.30000000000000004,
"foodConsumptionBase": 0.005341,
"foodConsumptionMult": 208.034286
},
@@ -28745,8 +29536,140 @@
"Dino Light Red",
"Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "Light Grey"
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Albino",
+ "Dino Dark Blue",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Purple",
+ "Dino Light Red",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ },
+ { "name": null },
+ { "name": null },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Blue",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Albino",
+ "Dino Dark Blue",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Purple",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Light Blue",
+ "Dino Light Brown",
+ "Dino Light Green",
+ "Dino Light Orange",
+ "Dino Light Purple",
+ "Dino Light Red",
+ "Dino Light Yellow",
+ "Dino Medium Brown",
+ "Dino Medium Green",
+ "Light Grey"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": true,
+ "tamingIneffectiveness": 0.4,
+ "affinityNeeded0": 1800,
+ "affinityIncreasePL": 75,
+ "torporDepletionPS0": 0.6666000000000001,
+ "foodConsumptionBase": 0.001929,
+ "foodConsumptionMult": 648.00415
+ },
+ "TamedBaseHealthMultiplier": 0.96,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
+ {
+ "name": "Skeletal Trike",
+ "blueprintPath": "/Game/PrimalEarth/Dinos/Trike/Bone_Trike_Character_BP.Bone_Trike_Character_BP",
+ "fullStatsRaw": [
+ [ 5625, 0.2, 0.27, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 250, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 3000, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 365, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 1.226, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [
+ "Chain Bola",
+ "Large Bear Trap",
+ "Plant Species Y"
+ ],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 0,
+ "maturationTime": 166666.66666666666,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
+ "Dark Grey",
+ "Dino Dark Brown",
+ "Dino Dark Green",
+ "Dino Dark Orange",
+ "Dino Dark Red",
+ "Dino Dark Yellow",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Dino Medium Green"
]
},
{
@@ -28754,7 +29677,6 @@
"colors": [
"Black",
"Dark Grey",
- "Dino Albino",
"Dino Dark Blue",
"Dino Dark Brown",
"Dino Dark Green",
@@ -28763,30 +29685,19 @@
"Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
- "Dino Light Brown",
- "Dino Light Green",
- "Dino Light Orange",
- "Dino Light Purple",
- "Dino Light Red",
- "Dino Light Yellow",
"Dino Medium Brown",
- "Dino Medium Green",
- "Light Grey"
+ "Dino Medium Green"
]
},
{ "name": null },
- { "name": null },
{
"name": "Unknown",
"colors": [
"Black",
"Dark Grey",
- "Dino Dark Blue",
"Dino Dark Brown",
"Dino Dark Green",
"Dino Dark Orange",
- "Dino Dark Purple",
"Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
@@ -28799,7 +29710,6 @@
"colors": [
"Black",
"Dark Grey",
- "Dino Albino",
"Dino Dark Blue",
"Dino Dark Brown",
"Dino Dark Green",
@@ -28808,12 +29718,17 @@
"Dino Dark Red",
"Dino Dark Yellow",
"Dino Darker Grey",
- "Dino Light Blue",
+ "Dino Medium Brown",
+ "Dino Medium Green"
+ ]
+ },
+ {
+ "name": "Unknown",
+ "colors": [
+ "Black",
"Dino Light Brown",
"Dino Light Green",
"Dino Light Orange",
- "Dino Light Purple",
- "Dino Light Red",
"Dino Light Yellow",
"Dino Medium Brown",
"Dino Medium Green",
@@ -28823,18 +29738,21 @@
],
"taming": {
"nonViolent": false,
- "violent": true,
- "tamingIneffectiveness": 0.4,
- "affinityNeeded0": 1800,
- "affinityIncreasePL": 75,
- "torporDepletionPS0": 0.6666000000000001,
- "foodConsumptionBase": 0.001929,
- "foodConsumptionMult": 648.00415
+ "violent": false,
+ "tamingIneffectiveness": 0.2,
+ "affinityNeeded0": 3000,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.003156,
+ "foodConsumptionMult": 352.06308
},
- "TamedBaseHealthMultiplier": 0.96,
+ "boneDamageAdjusters": {
+ "c_head": 0.15000000596046448,
+ "c_jaw": 0.15000000596046448
+ },
+ "TamedBaseHealthMultiplier": 1,
"NoImprintingForSpeed": false,
- "doesNotUseOxygen": true,
- "displayedStats": 919
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
},
{
"name": "Triceratops",
@@ -30341,34 +31259,242 @@
{
"name": "Lateral Horns",
"colors": [
- "Black",
- "Brown",
- "Dino Dark Brown",
+ "Black",
+ "Brown",
+ "Dino Dark Brown",
+ "Dino Dark Orange",
+ "Dino Darker Grey",
+ "Light Brown",
+ "None"
+ ]
+ },
+ {
+ "name": "Hair",
+ "colors": [
+ "BigFoot5",
+ "Black",
+ "Dino Dark Orange",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "Belly",
+ "colors": [
+ "BigFoot0",
+ "BigFoot5",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.5,
+ "affinityNeeded0": 8500,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.01,
+ "foodConsumptionMult": 0.05
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
+ {
+ "name": "Alpha Deathworm",
+ "blueprintPath": "/Game/ScorchedEarth/Dinos/Deathworm/MegaDeathworm_Character_BP.MegaDeathworm_Character_BP",
+ "fullStatsRaw": [
+ [ 27000, 0.002, 0.27, 0.5, 0 ],
+ [ 100, 0.1, 0.1, 0, 0 ],
+ [ 100, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 100, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 100, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 0.5, 0.4 ],
+ [ 1, 0, 0.01, 0, 0 ],
+ null,
+ null
+ ],
+ "immobilizedBy": [],
+ "colors": [
+ {
+ "name": "Body",
+ "colors": [
+ "BigFoot0",
+ "BigFoot5",
+ "Dino Dark Orange",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "UpperShell",
+ "colors": [
+ "BigFoot0",
+ "BigFoot5",
+ "Dino Dark Brown",
+ "Dino Dark Orange",
+ "Dino Dark Red",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "Claws",
+ "colors": [
+ "BigFoot5",
+ "Black",
+ "Dino Dark Orange",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "Lateral Horns",
+ "colors": [
+ "Black",
+ "Brown",
+ "Dino Dark Brown",
+ "Dino Dark Orange",
+ "Dino Darker Grey",
+ "Light Brown",
+ "None"
+ ]
+ },
+ {
+ "name": "Hair",
+ "colors": [
+ "BigFoot5",
+ "Black",
+ "Dino Dark Orange",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "Belly",
+ "colors": [
+ "BigFoot0",
+ "BigFoot5",
+ "Dino Light Brown",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.5,
+ "affinityNeeded0": 8500,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.01,
+ "foodConsumptionMult": 0.05
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": false,
+ "doesNotUseOxygen": true,
+ "displayedStats": 919
+ },
+ {
+ "name": "Dodo Wyvern",
+ "blueprintPath": "/Game/ScorchedEarth/Dinos/DodoWyvern/DodoWyvern_Character_BP.DodoWyvern_Character_BP",
+ "fullStatsRaw": [
+ [ 666666, 0.2, 0.2, 0.3, 0 ],
+ [ 400, 0.1, 0.1, 0, 0 ],
+ [ 350, 0.06, 0, 0.5, 0 ],
+ [ 2000, 0.1, 0.1, 0, 0 ],
+ [ 2600, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 3000, 0.02, 0.02, 0, 0 ],
+ [ 1, 0.05, 0.04, 0.3, 0.3 ],
+ [ 1, 0, 0, 0, 0 ],
+ null,
+ null
+ ],
+ "statImprintMult": [ 0.2, 0, 0.2, 0, 0.2, 0.2, 0, 0.2, 0.2, 0, 0, 0 ],
+ "immobilizedBy": [],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 17998.560115190783,
+ "eggTempMin": 80,
+ "eggTempMax": 90,
+ "maturationTime": 333333.3333333333,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Body Main",
+ "colors": [
+ "BigFoot4",
+ "BigFoot5",
+ "Dark Grey",
+ "DarkWolfFur",
+ "Dino Dark Orange",
+ "Dino Darker Grey",
+ "Dragon Base 0",
+ "DragonBase1",
+ "WolfFur"
+ ]
+ },
+ null,
+ {
+ "name": "Scales Main",
+ "colors": [
+ "BigFoot5",
+ "Dark Grey",
+ "DarkWolfFur",
+ "Dino Dark Orange",
+ "Dino Light Orange",
+ "Dino Medium Brown",
+ "DragonBase0",
+ "DragonBase1"
+ ]
+ },
+ {
+ "name": "Wings Main",
+ "colors": [
+ "BigFoot4",
+ "BigFoot5",
+ "Dark Grey",
+ "DarkWolfFur",
"Dino Dark Orange",
"Dino Darker Grey",
- "Light Brown",
- "None"
+ "Dragon Base 0",
+ "DragonBase1",
+ "WolfFur"
]
},
{
- "name": "Hair",
+ "name": "Fins Highlight",
"colors": [
- "BigFoot5",
- "Black",
- "Dino Dark Orange",
- "Dino Light Brown",
+ "Dino Dark Red",
+ "Dino Darker Grey",
"Dino Light Orange",
- "Dino Medium Brown"
+ "DragonBase0",
+ "DragonFire",
+ "Light Orange"
]
},
{
- "name": "Belly",
+ "name": "Body Highlights",
"colors": [
- "BigFoot0",
- "BigFoot5",
- "Dino Light Brown",
"Dino Light Orange",
- "Dino Medium Brown"
+ "Dino Medium Brown",
+ "DragonBase0",
+ "DragonBase1",
+ "DragonFire",
+ "Light Orange"
]
}
],
@@ -30378,113 +31504,116 @@
"tamingIneffectiveness": 1.5,
"affinityNeeded0": 8500,
"affinityIncreasePL": 150,
- "foodConsumptionBase": 0.01,
- "foodConsumptionMult": 0.05
+ "foodConsumptionBase": 0.002066,
+ "foodConsumptionMult": 150
},
"TamedBaseHealthMultiplier": 1,
- "NoImprintingForSpeed": false,
- "doesNotUseOxygen": true,
- "displayedStats": 919
+ "NoImprintingForSpeed": true,
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
},
{
- "name": "Alpha Deathworm",
- "blueprintPath": "/Game/ScorchedEarth/Dinos/Deathworm/MegaDeathworm_Character_BP.MegaDeathworm_Character_BP",
+ "name": "Jerboa",
+ "blueprintPath": "/Game/ScorchedEarth/Dinos/Jerboa/Bone_Jerboa_Character_BP.Bone_Jerboa_Character_BP",
"fullStatsRaw": [
- [ 27000, 0.002, 0.27, 0.5, 0 ],
+ [ 825, 0.2, 0.27, 0.5, 0 ],
[ 100, 0.1, 0.1, 0, 0 ],
- [ 100, 0.06, 0, 0.5, 0 ],
+ [ 1000, 0.06, 0, 0.5, 0 ],
[ 150, 0.1, 0.1, 0, 0 ],
- [ 100, 0.1, 0.1, 0, 0 ],
+ [ 450, 0.1, 0.1, 0, 0.15 ],
null,
null,
- [ 100, 0.02, 0.04, 0, 0 ],
- [ 1, 0.05, 0.1, 0.5, 0.4 ],
- [ 1, 0, 0.01, 0, 0 ],
+ [ 55, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, 1, 0.4 ],
+ [ 1, 0, 0.01, 0.5, 0 ],
null,
null
],
- "immobilizedBy": [],
+ "immobilizedBy": [
+ "Bola",
+ "Bear Trap",
+ "Plant Species Y"
+ ],
+ "breeding": {
+ "gestationTime": 9523.809523809525,
+ "incubationTime": 0,
+ "maturationTime": 111111.11111111111,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
"colors": [
{
- "name": "Body",
- "colors": [
- "BigFoot0",
- "BigFoot5",
- "Dino Dark Orange",
- "Dino Light Brown",
- "Dino Light Orange",
- "Dino Medium Brown"
- ]
- },
- {
- "name": "UpperShell",
+ "name": "Paws and Back",
"colors": [
"BigFoot0",
"BigFoot5",
- "Dino Dark Brown",
- "Dino Dark Orange",
- "Dino Dark Red",
- "Dino Medium Brown"
- ]
- },
- {
- "name": "Claws",
- "colors": [
- "BigFoot5",
- "Black",
- "Dino Dark Orange",
- "Dino Light Brown",
- "Dino Light Orange",
- "Dino Medium Brown"
- ]
- },
- {
- "name": "Lateral Horns",
- "colors": [
"Black",
"Brown",
+ "Dark Grey",
+ "DarkWolfFur",
"Dino Dark Brown",
"Dino Dark Orange",
+ "Dino Dark Red",
"Dino Darker Grey",
- "Light Brown",
- "None"
+ "NearBlack",
+ "NearWhite",
+ "WolfFur"
]
},
+ null,
+ null,
+ null,
{
- "name": "Hair",
+ "name": "Stripes",
"colors": [
- "BigFoot5",
"Black",
+ "Dark Grey",
+ "Dark Red",
+ "Dino Albino",
"Dino Dark Orange",
- "Dino Light Brown",
- "Dino Light Orange",
- "Dino Medium Brown"
+ "Dino Dark Purple",
+ "Dino Dark Red",
+ "Dino Darker Grey",
+ "Dino Medium Brown",
+ "Light Brown",
+ "Light Grey",
+ "Light Orange",
+ "NearBlack",
+ "NearWhite"
]
},
{
- "name": "Belly",
+ "name": "Belly and Highlights",
"colors": [
"BigFoot0",
"BigFoot5",
- "Dino Light Brown",
- "Dino Light Orange",
- "Dino Medium Brown"
+ "Dark Grey",
+ "DarkWolfFur",
+ "Dino Medium Brown",
+ "Light Brown",
+ "NearBlack",
+ "NearWhite",
+ "WolfFur"
]
}
],
"taming": {
"nonViolent": false,
"violent": false,
- "tamingIneffectiveness": 1.5,
- "affinityNeeded0": 8500,
- "affinityIncreasePL": 150,
- "foodConsumptionBase": 0.01,
- "foodConsumptionMult": 0.05
+ "tamingIneffectiveness": 1.333333,
+ "affinityNeeded0": 1350,
+ "affinityIncreasePL": 22.5,
+ "foodConsumptionBase": 0.000868,
+ "foodConsumptionMult": 2880.184326
+ },
+ "boneDamageAdjusters": {
+ "c_head": 3.0,
+ "c_neck3": 3.0
},
"TamedBaseHealthMultiplier": 1,
"NoImprintingForSpeed": false,
- "doesNotUseOxygen": true,
- "displayedStats": 919
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
},
{
"name": "Jerboa",
@@ -31702,6 +32831,98 @@
"doesNotUseOxygen": false,
"displayedStats": 927
},
+ {
+ "name": "Bone Fire Wyvern",
+ "blueprintPath": "/Game/ScorchedEarth/Dinos/Wyvern/Bone_MegaWyvern_Character_BP_Fire.Bone_MegaWyvern_Character_BP_Fire",
+ "fullStatsRaw": [
+ [ 8000, 0.15, 0.2025, -1050, 0 ],
+ [ 600, 0.05, 0.05, 0, 0 ],
+ [ 725, 0.06, 0, 0.5, 0 ],
+ [ 150, 0.1, 0.1, 0, 0 ],
+ [ 2000, 0.1, 0.1, 0, 0 ],
+ null,
+ null,
+ [ 400, 0.02, 0.04, 0, 0 ],
+ [ 1, 0.05, 0.1, -0.25, 0.4 ],
+ [ 1, 0, 0.0, 0, 0 ],
+ null,
+ null
+ ],
+ "statImprintMult": [ 0.2, 0, 0.2, 0, 0.2, 0.2, 0, 0.2, 0.2, 0, 0, 0 ],
+ "immobilizedBy": [],
+ "breeding": {
+ "gestationTime": 0,
+ "incubationTime": 17998.560115190783,
+ "eggTempMin": 80,
+ "eggTempMax": 90,
+ "maturationTime": 333333.3333333333,
+ "matingCooldownMin": 64800,
+ "matingCooldownMax": 172800
+ },
+ "colors": [
+ {
+ "name": "Body Main",
+ "colors": [
+ "Black",
+ "Dino Albino",
+ "Dino Dark Red"
+ ]
+ },
+ null,
+ {
+ "name": "Scales Main",
+ "colors": [
+ "Black",
+ "Dino Dark Orange",
+ "Dino Dark Red",
+ "Dino Light Orange",
+ "Dino Medium Brown"
+ ]
+ },
+ {
+ "name": "Wings Main",
+ "colors": [
+ "Dino Dark Orange",
+ "Dino Dark Red",
+ "DragonBase1",
+ "DragonFire"
+ ]
+ },
+ {
+ "name": "Fins Highlight",
+ "colors": [
+ "Dino Dark Red",
+ "Dino Light Orange",
+ "DragonFire",
+ "Light Orange"
+ ]
+ },
+ {
+ "name": "Body Highlights",
+ "colors": [
+ "Black",
+ "Dino Albino",
+ "Dino Dark Red",
+ "Dino Light Orange",
+ "DragonFire",
+ "Light Orange"
+ ]
+ }
+ ],
+ "taming": {
+ "nonViolent": false,
+ "violent": false,
+ "tamingIneffectiveness": 1.5,
+ "affinityNeeded0": 8500,
+ "affinityIncreasePL": 150,
+ "foodConsumptionBase": 0.000185,
+ "foodConsumptionMult": 199.983994
+ },
+ "TamedBaseHealthMultiplier": 1,
+ "NoImprintingForSpeed": true,
+ "doesNotUseOxygen": false,
+ "displayedStats": 927
+ },
{
"name": "Alpha Fire Wyvern",
"blueprintPath": "/Game/ScorchedEarth/Dinos/Wyvern/MegaWyvern_Character_BP_Fire.MegaWyvern_Character_BP_Fire",
diff --git a/ARKBreedingStats/library/Creature.cs b/ARKBreedingStats/library/Creature.cs
index 9d6c6ac0..8c58b9c7 100644
--- a/ARKBreedingStats/library/Creature.cs
+++ b/ARKBreedingStats/library/Creature.cs
@@ -206,6 +206,7 @@ public void CalculateLevelFound(int? levelStep)
public void RecalculateAncestorGenerations()
{
generation = AncestorGenerations();
+ if (generation < 0) generation = 0;
}
///
@@ -216,13 +217,23 @@ private int AncestorGenerations(int g = 0)
{
// to detect loop (if a creature is falsely listed as its own ancestor)
if (g > 99)
- return 0;
+ {
+ return -1;
+ }
int mgen = 0, fgen = 0;
if (mother != null)
+ {
mgen = mother.AncestorGenerations(g + 1) + 1;
+ if (mgen == 0)
+ return -1;
+ }
if (father != null)
+ {
fgen = father.AncestorGenerations(g + 1) + 1;
+ if (fgen == 0)
+ return -1;
+ }
if (isBred && mgen == 0 && fgen == 0)
return 1;
return mgen > fgen ? mgen : fgen;
diff --git a/ARKBreedingStats/library/CreatureCollection.cs b/ARKBreedingStats/library/CreatureCollection.cs
index c4b3531b..bcb4fc3a 100644
--- a/ARKBreedingStats/library/CreatureCollection.cs
+++ b/ARKBreedingStats/library/CreatureCollection.cs
@@ -386,6 +386,21 @@ public void RemoveUnlinkedPlaceholders()
private void InitializeProperties(StreamingContext ct)
{
if (tags == null) tags = new List();
+
+ // convert DateTimes to local times
+ foreach (var tle in timerListEntries)
+ tle.time = tle.time.ToLocalTime();
+
+ foreach (var ile in incubationListEntries)
+ ile.incubationEnd = ile.incubationEnd.ToLocalTime();
+
+ foreach (var c in creatures)
+ {
+ c.cooldownUntil = c.cooldownUntil?.ToLocalTime();
+ c.growingUntil = c.growingUntil?.ToLocalTime();
+ c.domesticatedAt = c.domesticatedAt?.ToLocalTime();
+ c.addedToLibrary = c.addedToLibrary?.ToLocalTime();
+ }
}
}
}
diff --git a/ARKBreedingStats/local/strings.it.resx b/ARKBreedingStats/local/strings.it.resx
index 5c604596..b3c2cb43 100644
--- a/ARKBreedingStats/local/strings.it.resx
+++ b/ARKBreedingStats/local/strings.it.resx
@@ -1,4 +1,4 @@
-
+