rendered paste body private int[] calculateExpAndSp(int diff, int damage)
{
double xp;
double sp;
if (Config.ALT_GAME_EXPONENT_XP != 0)
xp = ((double)getExpReward() * damage / getMaxHp() * Math.pow(2., -diff / Config.ALT_GAME_EXPONENT_XP));
else
xp = getExpReward() * damage / getMaxHp();
if (Config.ALT_GAME_EXPONENT_SP != 0)
sp = ((double)getSpReward() * damage / getMaxHp() * Math.pow(2., -diff / Config.ALT_GAME_EXPONENT_SP));
else
sp = getSpReward() * damage / getMaxHp();
if (Config.ALT_GAME_EXPONENT_XP == 0 && Config.ALT_GAME_EXPONENT_SP == 0)
{
// deep blue mob, is more than 8 levels below attacker lvl
if (diff > 8)
{
xp = 0;
sp = 0;
}
// green or light blue mob, is 6 to 8 levels below attacker lvl
else if (diff > 5)
{
xp -= diff * xp / 10;
sp -= diff * sp / 10;
}
if (xp <= 0)
{
xp = 0;
sp = 0;
}
else if (sp <= 0)
{
sp = 0;
}
}
int[] tmp = { (int)xp, (int)sp };
return tmp;
}