A calculator is created to manage and dynamically calculate the effect of a character property (ex : MAX_HP, REGENERATE_HP_RATE...). In fact, each calculator is a table of Func object in which each Func represents a mathematic function :
FuncAtkAccuracy -> Math.sqrt(_player.getDEX())*6+_player.getLevel()
When the calc method of a calculator is launched, each mathematic function is called according to its priority
_order. Indeed, Func with lowest priority order is executed firsta and Funcs with the same order are executed in unspecified order. The result of the calculation is stored in the value property of an Env class instance.
Method addFunc and removeFunc permit to add and remove a Func object from a Calculator.