Hey everyone, So I'm still working on an ARPG engine as a side thing and I have the basis of where I'd like to be. Right now I'm looking at how to calculate chance to evade and chance to critical. The chances will be derived from two numbers, the attacker's "balance" and the defender's "balance". I gues you could also call it "attack class". Both of these numbers are dynamic and are constantly shifting frame to frame. It's one of the core mechanics of the engine, really. The characters have a pool that increases max balance as they level up, then the current balance moves based on things such as fatigue, attacking, or being hit. I know that I always want there to be a chance to hit, a chance to evade, and a chance to critical. And I think that I would like chance to score a normal hit to be the highest when the balances are tied. To do this I was looking at doing the difference as a linear function of a cubed root to make an "s" shape: So something like: (attackerBalance - defenderBalance)^(1/3) Trouble is, that's WAY to much math to do multiple times a frame. So I think I need to do something simpler. Any suggestions how I can get a chance for evasion, critical, and normal hit from two values, while making sure that all three are always possible? Thanks for any suggestions.