Yep.
So basically each crit rating gives between 0.0001977 and 0.0001749 crit (avg 0.0001863). This is pretty huge variance.
What you really want is to be able to discriminate between 657 rating and 658 rating.
To do that, you need a variance less than the avg rating diff, which 0.0001863. Which means you need something on the order of 10 million trials =DDDDDD
EDIT: oops I hit my post cap.
So here is the grammar right now. Its kinda really ugly? I'm going to have to see if it has any conflicts (probably)...maybe I can get an intern to do this for me.
Here is the FFscript grammar.
Its really bad right now. I need to resolve a lot of conflicts before it can be used, and I'm lazy.
Maybe I can get a college intern to do it for me.
Code:
* script :== setup precast gcd ogcd
* setup :== "[SETUP]" setupStatements
* setupStatements :== setupStatement setupStatements | .
* setupStatement :== actorAdd | varAssign
* actorAdd :== actorList "+=" string
* actorList :== "players" | "targets"
* varAssign :== var "=" val
* var :== string varb
* varb :== "." string varb | .
* val :== number | string
* precast :== "[PRECAST]" actionStatements
* gcd :== "[GCD]" actionStatements
* ogcd :== "[OGCD]" actionStatements
* actionStatements :== actionStatement actionStatements | .
* actionStatement :== "(" conditionals ")" "{" actions "}"
* conditionals :== conditional conditionalb | .
* conditionalb :== "&" conditional conditionalb | .
* conditional :== boolVar test number | "!" boolVar | boolVar
* boolVar :== string boolVarb
* boolVarb :== "." string boolVarb | .
* test :== ">" | "<" | ">=" | "<=" | "==" | "!="
* actions :== string actionb | .
* actionb :== "," string actionb | .