skill calc: use target level if available
Co-authored-by: Adam <Adam@sigterm.info>
This commit is contained in:
@@ -44,6 +44,8 @@ import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Experience;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.plugins.skillcalculator.beans.SkillData;
|
||||
@@ -130,8 +132,18 @@ class SkillCalculator extends JPanel
|
||||
// Update internal skill/XP values.
|
||||
currentXP = client.getSkillExperience(calculatorType.getSkill());
|
||||
currentLevel = Experience.getLevelForXp(currentXP);
|
||||
targetLevel = enforceSkillBounds(currentLevel + 1);
|
||||
targetXP = Experience.getXpForLevel(targetLevel);
|
||||
VarPlayer endGoalVarp = endGoalVarpForSkill(calculatorType.getSkill());
|
||||
int endGoal = client.getVar(endGoalVarp);
|
||||
if (endGoal != -1)
|
||||
{
|
||||
targetLevel = Experience.getLevelForXp(endGoal);
|
||||
targetXP = endGoal;
|
||||
}
|
||||
else
|
||||
{
|
||||
targetLevel = enforceSkillBounds(currentLevel + 1);
|
||||
targetXP = Experience.getXpForLevel(targetLevel);
|
||||
}
|
||||
|
||||
// Remove all components (action slots) from this panel.
|
||||
removeAll();
|
||||
@@ -433,4 +445,59 @@ class SkillCalculator extends JPanel
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static VarPlayer endGoalVarpForSkill(final Skill skill)
|
||||
{
|
||||
switch (skill)
|
||||
{
|
||||
case ATTACK:
|
||||
return VarPlayer.ATTACK_GOAL_END;
|
||||
case MINING:
|
||||
return VarPlayer.MINING_GOAL_END;
|
||||
case WOODCUTTING:
|
||||
return VarPlayer.WOODCUTTING_GOAL_END;
|
||||
case DEFENCE:
|
||||
return VarPlayer.DEFENCE_GOAL_END;
|
||||
case MAGIC:
|
||||
return VarPlayer.MAGIC_GOAL_END;
|
||||
case RANGED:
|
||||
return VarPlayer.RANGED_GOAL_END;
|
||||
case HITPOINTS:
|
||||
return VarPlayer.HITPOINTS_GOAL_END;
|
||||
case AGILITY:
|
||||
return VarPlayer.AGILITY_GOAL_END;
|
||||
case STRENGTH:
|
||||
return VarPlayer.STRENGTH_GOAL_END;
|
||||
case PRAYER:
|
||||
return VarPlayer.PRAYER_GOAL_END;
|
||||
case SLAYER:
|
||||
return VarPlayer.SLAYER_GOAL_END;
|
||||
case FISHING:
|
||||
return VarPlayer.FISHING_GOAL_END;
|
||||
case RUNECRAFT:
|
||||
return VarPlayer.RUNECRAFT_GOAL_END;
|
||||
case HERBLORE:
|
||||
return VarPlayer.HERBLORE_GOAL_END;
|
||||
case FIREMAKING:
|
||||
return VarPlayer.FIREMAKING_GOAL_END;
|
||||
case CONSTRUCTION:
|
||||
return VarPlayer.CONSTRUCTION_GOAL_END;
|
||||
case HUNTER:
|
||||
return VarPlayer.HUNTER_GOAL_END;
|
||||
case COOKING:
|
||||
return VarPlayer.COOKING_GOAL_END;
|
||||
case FARMING:
|
||||
return VarPlayer.FARMING_GOAL_END;
|
||||
case CRAFTING:
|
||||
return VarPlayer.CRAFTING_GOAL_END;
|
||||
case SMITHING:
|
||||
return VarPlayer.SMITHING_GOAL_END;
|
||||
case THIEVING:
|
||||
return VarPlayer.THIEVING_GOAL_END;
|
||||
case FLETCHING:
|
||||
return VarPlayer.FLETCHING_GOAL_END;
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user