Package net.runelite.api
Class Experience
- java.lang.Object
-
- net.runelite.api.Experience
-
public class Experience extends Object
A utility class used for calculating experience related values.Skill levels calculated and handled by this class are within (inclusive) the range 1-126 rather than 1-99 to account for virtual levels obtained when reaching the 200M experience limit.
-
-
Field Summary
Fields Modifier and Type Field Description static int
MAX_COMBAT_LEVEL
The maximum possible combat level.static int
MAX_REAL_LEVEL
Maximum effective skill level at 13,034,431 experience.static int
MAX_SKILL_XP
static int
MAX_VIRT_LEVEL
The maximum virtual skill level for any skill (200M experience).
-
Constructor Summary
Constructors Constructor Description Experience()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
getCombatLevel(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculates a regular combat level.static double
getCombatLevelPrecise(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculates a non-virtual high-precision combat level without integer rounding.static int
getLevelForXp(int xp)
Gets the skill level for the passed total experience.static int
getNextCombatLevelHpDef(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of hitpoints/defence levels required to increase combat level.static int
getNextCombatLevelMagic(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of magic levels required to increase combat level.static int
getNextCombatLevelMelee(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of attack/strength levels required to increase combat level.static int
getNextCombatLevelPrayer(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of prayer levels required to increase combat level.static int
getNextCombatLevelRange(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of ranged levels required to increase combat level.static int
getXpForLevel(int level)
Gets the total experience required to obtain the passed skill level.
-
-
-
Field Detail
-
MAX_REAL_LEVEL
public static final int MAX_REAL_LEVEL
Maximum effective skill level at 13,034,431 experience.- See Also:
- Constant Field Values
-
MAX_VIRT_LEVEL
public static final int MAX_VIRT_LEVEL
The maximum virtual skill level for any skill (200M experience).- See Also:
- Constant Field Values
-
MAX_SKILL_XP
public static final int MAX_SKILL_XP
- See Also:
- Constant Field Values
-
MAX_COMBAT_LEVEL
public static final int MAX_COMBAT_LEVEL
The maximum possible combat level.- See Also:
- Constant Field Values
-
-
Method Detail
-
getXpForLevel
public static int getXpForLevel(int level)
Gets the total experience required to obtain the passed skill level.- Parameters:
level
- the skill level- Returns:
- the required experience for the level
- Throws:
IllegalArgumentException
- if skill level is invalid
-
getLevelForXp
public static int getLevelForXp(int xp)
Gets the skill level for the passed total experience.- Parameters:
xp
- the passed experience (non-negative)- Returns:
- the skill level
-
getCombatLevelPrecise
public static double getCombatLevelPrecise(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculates a non-virtual high-precision combat level without integer rounding.Combat levels range between 1.15 and ~126.1.
- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the non-virtual combat level
-
getCombatLevel
public static int getCombatLevel(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculates a regular combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the combat level, rounded down
-
getNextCombatLevelMelee
public static int getNextCombatLevelMelee(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of attack/strength levels required to increase combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the number of levels required
-
getNextCombatLevelHpDef
public static int getNextCombatLevelHpDef(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of hitpoints/defence levels required to increase combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the number of levels required
-
getNextCombatLevelMagic
public static int getNextCombatLevelMagic(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of magic levels required to increase combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the number of levels required
-
getNextCombatLevelRange
public static int getNextCombatLevelRange(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of ranged levels required to increase combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the number of levels required
-
getNextCombatLevelPrayer
public static int getNextCombatLevelPrayer(int attackLevel, int strengthLevel, int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel)
Calculate number of prayer levels required to increase combat level.- Parameters:
attackLevel
- the attack levelstrengthLevel
- the strength leveldefenceLevel
- the defence levelhitpointsLevel
- the hitpoints levelmagicLevel
- the magic levelrangeLevel
- the range levelprayerLevel
- the prayer level- Returns:
- the number of levels required
-
-