package org.reunionemu.jreunion.server;
public class Tools {
/**
* Calculate how much a status increases an attribute
* @param n input status
* @param count increment boundary
* @return increased value
*/
public static long statCalc(long n, long count) {
long coef = (n / count);
return (long) ((0.5 * coef * (1 + coef)) * count) + (coef + 1)
* (n % count);
}
/**
* Normalize a value between upper and lower bounds
* @param current
* @param min
* @param max
* @return normalized value
*/
public static <T extends Comparable<T>> T between(T current, T min, T max) {
T value = current;
if(value.compareTo(max)>0){
value = max;
}else if(value.compareTo(min)<0){
value = min;
}
return value;
}
/**
* Calculate a random success rate from a given value
* @param limit
* @return true if given limit is greater then random success rate
*/
public static boolean successRateCalc(float limit){
return limit > Server.getRand().nextDouble();
}
}