ARKBreedingStats.Taming.foodAmountNeeded C# (CSharp) Method

foodAmountNeeded() public static method

public static foodAmountNeeded ( int speciesI, int level, string food, bool nonViolent = false ) : int
speciesI int
level int
food string
nonViolent bool
return int
        public static int foodAmountNeeded(int speciesI, int level, string food, bool nonViolent = false)
        {
            if (speciesI >= 0 && speciesI < Values.V.species.Count)
            {
                TamingData taming = Values.V.species[speciesI].taming;
                double affinityNeeded = taming.affinityNeeded0 + taming.affinityIncreasePL * level;

                bool specialFood = (taming.specialFoodValues != null && taming.specialFoodValues.ContainsKey(food));
                if (specialFood || Values.V.foodData.ContainsKey(food))
                {
                    double foodAffinity = 0;
                    if (specialFood)
                        foodAffinity = taming.specialFoodValues[food].affinity;
                    else
                        foodAffinity = Values.V.foodData[food].affinity;

                    if (nonViolent)
                        foodAffinity *= taming.wakeAffinityMult;

                    foodAffinity *= Values.V.tamingSpeedMultiplier;

                    if (foodAffinity > 0)
                    {
                        // amount of food needed for the affinity
                        return (int)Math.Ceiling(affinityNeeded / foodAffinity);
                    }
                }
            }
            return 0;
        }

Usage Example

Ejemplo n.º 1
0
        private void comboBoxSpecies_SelectedIndexChanged(object sender, EventArgs e)
        {
            int sI = comboBoxSpecies.SelectedIndex;

            if (sI >= 0 && Values.V.species[sI].taming != null)
            {
                TamingData td = Values.V.species[sI].taming;
                this.SuspendLayout();
                foreach (TamingFoodControl f in foodControls)
                {
                    Controls.Remove(f);
                }
                foodControls.Clear();
                TamingFoodControl tf;
                int i = 0;
                foreach (string f in td.eats)
                {
                    tf = new TamingFoodControl(f);
                    if (f == "Kibble")
                    {
                        tf.foodNameDisplay = "Kibble (" + td.favoriteKibble + " Egg)";
                    }
                    if (td.specialFoodValues != null && td.specialFoodValues.ContainsKey(f) && td.specialFoodValues[f].quantity > 1)
                    {
                        tf.foodNameDisplay = td.specialFoodValues[f].quantity.ToString() + "× " + tf.foodNameDisplay;
                    }
                    tf.Location      = new Point(20, 80 + 45 * i);
                    tf.valueChanged += new TamingFoodControl.ValueChangedEventHandler(updateTamingData);
                    tf.Clicked      += new TamingFoodControl.ClickedEventHandler(onlyOneFood);
                    foodControls.Add(tf);
                    Controls.Add(tf);
                    i++;
                }
                this.ResumeLayout();

                if (foodControls.Count > 0)
                {
                    foodControls[0].amount = Taming.foodAmountNeeded(sI, (int)nudLevel.Value, foodControls[0].foodName, td.nonViolent);
                }
            }
        }
All Usage Examples Of ARKBreedingStats.Taming::foodAmountNeeded