* Lua Improvments * fix * fix 2 * fix 3 * fix 4 * fix 5 * fix 6 * Fix 7, please action dont fail * done * done 2 * done 3 * final * last fix * please last fix final * add `curSection` on lua * ready for pr * oops * oop2 * Lua Improvements 2 * Update Project.xml * fixed `lastCalledScript` * Attempt Fix 2 * Attempt fix 3 * shit * done i think * fuck * fuck 2
49 lines
1.5 KiB
Haxe
49 lines
1.5 KiB
Haxe
package;
|
|
|
|
class EtternaFunctions
|
|
{
|
|
// erf constants
|
|
public static var a1 = 0.254829592;
|
|
public static var a2 = -0.284496736;
|
|
public static var a3 = 1.421413741;
|
|
public static var a4 = -1.453152027;
|
|
public static var a5 = 1.061405429;
|
|
public static var p = 0.3275911;
|
|
|
|
public static function erf(x:Float):Float
|
|
{
|
|
// Save the sign of x
|
|
var sign = 1;
|
|
if (x < 0)
|
|
sign = -1;
|
|
x = Math.abs(x);
|
|
|
|
// A&S formula 7.1.26
|
|
var t = 1.0/(1.0 + p*x);
|
|
var y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*Math.exp(-x*x);
|
|
|
|
return sign*y;
|
|
}
|
|
|
|
public static function wife3(maxms:Float, ts:Float)
|
|
{
|
|
var max_points = 1.0;
|
|
var miss_weight = -1.0; //mwahahahaha now missing won't put your accuracy to 0%!!!!!
|
|
var ridic= 5 * ts;
|
|
var max_boo_weight = 180 * ts;
|
|
var ts_pow = 0.75;
|
|
var zero = 65 * (Math.pow(ts,ts_pow));
|
|
var power = 2.5;
|
|
var dev = 22.7 * (Math.pow(ts,ts_pow));
|
|
|
|
if (maxms <= ridic) // anything below this (judge scaled) threshold is counted as full pts
|
|
return max_points;
|
|
else if (maxms <= zero) // ma/pa region, exponential
|
|
return max_points * erf((zero - maxms) / dev);
|
|
else if (maxms <= max_boo_weight)// cb region, linear
|
|
return (maxms - zero) * miss_weight / (max_boo_weight - zero);
|
|
else
|
|
return miss_weight;
|
|
}
|
|
|
|
} |