Hello,
So I'm working on a game using HeroCloud, and I have a question. There's a character with, say, 5% chance to hit his target critically. How do I accomplish that he actually has 5% chance to do something?
Hello,
So I'm working on a game using HeroCloud, and I have a question. There's a character with, say, 5% chance to hit his target critically. How do I accomplish that he actually has 5% chance to do something?
crit_chance = 0.05
if rand_float(0,1) < crit_chance
damage *= 1.5
For a more "natural" random, you increase the 5% chance by some rate for every failure and reset it when it succeeds:if rand_float(0,1) < (crit_chance + error)
damage *= 1.5
error = 0
else
# Increase chance by 6.75%
error += crit_chance * 0.0675
EDIT: Juliean is correct, I done goofed.
@fastcall22:
Does this code really do what you expect of it? You are adding crit-chance * 1.0675 to the error everytime, which will increase the chance of success rapidly (100% on the first failure, etc). Didn't you mean
# Increase chance by 6.75%
error += crit_chance * 0.0675f;
or something along those lines?