ARKBreedingStats.Stats.calculateValue C# (CSharp) Method

calculateValue() public static method

public static calculateValue ( int speciesIndex, int stat, int levelWild, int levelDom, bool dom, double tamingEff, double imprintingBonus ) : double
speciesIndex int
stat int
levelWild int
levelDom int
dom bool
tamingEff double
imprintingBonus double
return double
        public static double calculateValue(int speciesIndex, int stat, int levelWild, int levelDom, bool dom, double tamingEff, double imprintingBonus)
        {
            if (speciesIndex >= 0)
            {
                double add = 0, domMult = 1, imprintingM = 1;
                if (dom)
                {
                    add = Values.V.species[speciesIndex].stats[stat].AddWhenTamed;
                    domMult = (tamingEff >= 0 ? (1 + tamingEff * Values.V.species[speciesIndex].stats[stat].MultAffinity) : 1) * (1 + levelDom * Values.V.species[speciesIndex].stats[stat].IncPerTamedLevel);
                    if (stat != 1 && stat != 2)
                        imprintingM = 1 + 0.2 * imprintingBonus*Values.V.imprintingMultiplier;
                }
                return Math.Round((Values.V.species[speciesIndex].stats[stat].BaseValue * (1 + Values.V.species[speciesIndex].stats[stat].IncPerWildLevel * levelWild) * imprintingM + add) * domMult, Utils.precision(stat), MidpointRounding.AwayFromZero);
            }
            else
                return 0;
        }

Usage Example

Ejemplo n.º 1
0
        private void listViewSpeciesBP_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewSpeciesBP.SelectedIndices.Count > 0)
            {
                determineBestBreeding();

                if (bestLevels.Count > 6)
                {
                    // display top levels in species
                    int?     levelStep = creatureCollection.getWildLevelStep();
                    Creature crB       = new Creature(currentSpecies, "", "", "", 0, new int[8], null, 100, true, levelStep: levelStep);
                    crB.name = "Best possible levels (" + currentSpecies + ")";
                    bool totalLevelUnknown = false;
                    for (int s = 0; s < 7; s++)
                    {
                        crB.levelsWild[s]     = bestLevels[s];
                        crB.valuesBreeding[s] = Stats.calculateValue(speciesIndex, s, crB.levelsWild[s], 0, true, 1, 0);
                        if (crB.levelsWild[s] == -1)
                        {
                            totalLevelUnknown = true;
                        }
                        crB.topBreedingStats[s] = (crB.levelsWild[s] > 0);
                    }
                    crB.levelsWild[7] = crB.levelsWild.Sum();
                    crB.recalculateCreatureValues(levelStep);
                    pedigreeCreatureBestPossibleInSpecies.totalLevelUnknown = totalLevelUnknown;
                    pedigreeCreatureBestPossibleInSpecies.Creature          = crB;
                }
            }
        }
All Usage Examples Of ARKBreedingStats.Stats::calculateValue