/**
* Return the max weight that the L2PcInstance can load.
*/
public int getMaxLoad()
{
// Weight Limit = (CON Modifier*69000)*Skills
// Source http://l2p.bravehost.com/weightlimit.html (May 2007)
// Fitted exponential curve to the data
int con = getCON();
if (con < 1) return 31000;
if (con > 59) return 176000;
double baseLoad = Math.pow(1.029993928, con)*30495.627366;
return (int)calcStat(Stats.MAX_LOAD, baseLoad, this, null);
}
public int getexpertisePenalty()
{
return _expertisePenalty;
}
public int getWeightPenalty()
{
if (_dietMode)
return 0;
return _curWeightPenalty;
}
/**
* Update the overloaded status of the L2PcInstance.
*/
public void refreshOverloaded()
{
int maxLoad = getMaxLoad();
if (maxLoad > 0)
{
setIsOverloaded(getCurrentLoad() > maxLoad);
int weightproc = getCurrentLoad() * 1000 / maxLoad;
int newWeightPenalty;
if (weightproc < 500 || _dietMode)
{
newWeightPenalty = 0;
}
else if (weightproc < 666)
{
newWeightPenalty = 1;
}
else if ( weightproc < 800)
{
newWeightPenalty = 2;
}
else if (weightproc < 1000)
{
newWeightPenalty = 3;
}
else
{
newWeightPenalty = 4;
}
if (_curWeightPenalty != newWeightPenalty)
{
_curWeightPenalty = newWeightPenalty;
if (newWeightPenalty > 0 && !_dietMode)
{
super.addSkill(SkillTable.getInstance().getInfo(4270,newWeightPenalty));
}
else
{
super.removeSkill(getKnownSkill(4270));
}
super.updateEffectIcons();
}
}
}
public void refreshExpertisePenalty()
{
int newPenalty = 0;
for (L2ItemInstance item : getInventory().getItems())
{
if (item != null && item.isEquipped())
{
int crystaltype = item.getItem().getCrystalType();
if (crystaltype > newPenalty)
newPenalty = crystaltype;