/// <summary> /// If you're willing to spend 'resourcesAvailable' and want to buy something with /// exponentially increasing cost each purchase (start at priceStart, multiply by priceRatio, /// already own currentOwned), how much of it can you buy? /// <para> /// Adapted from Trimps source code. /// </para> /// </summary> public static BigDouble AffordGeometricSeries(BigDouble resourcesAvailable, BigDouble priceStart, BigDouble priceRatio, BigDouble currentOwned) { var actualStart = priceStart * BigDouble.Pow(priceRatio, currentOwned); //return Math.floor(log10(((resourcesAvailable / (priceStart * Math.pow(priceRatio, currentOwned))) * (priceRatio - 1)) + 1) / log10(priceRatio)); return(BigDouble.Floor(BigDouble.Log10(resourcesAvailable / actualStart * (priceRatio - 1) + 1) / BigDouble.Log10(priceRatio))); }
public static double Log10(this BigDouble value) { return(BigDouble.Log10(value)); }