Menacing / unnamed-extraction-shooter-roguelike

MIT License
2 stars 0 forks source link

Add distribution curves to stack initialization #178

Open Menacing opened 7 months ago

Menacing commented 7 months ago

Right now when spawning stackable items, we just get a random number between max and min. Add a flag to instead use a different distribution curve instead, like a normal or a left Pareto distribution

https://docs.godotengine.org/en/stable/tutorials/math/random_number_generation.html#getting-a-random-number

https://en.wikipedia.org/wiki/Pareto_distribution

Menacing commented 1 week ago

This function should work. Need to test it

func random_normal(mean: float, standard_deviation: float) -> float:
    var u1 = randf()
    var u2 = randf()
    var z0 = sqrt(-2.0 * log(u1)) * cos(2.0 * PI * u2)
    return z0 * standard_deviation + mean