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 javax.swing.JPanel;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Experience;
|
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.ItemManager;
|
||||||
import net.runelite.client.game.SpriteManager;
|
import net.runelite.client.game.SpriteManager;
|
||||||
import net.runelite.client.plugins.skillcalculator.beans.SkillData;
|
import net.runelite.client.plugins.skillcalculator.beans.SkillData;
|
||||||
@@ -130,8 +132,18 @@ class SkillCalculator extends JPanel
|
|||||||
// Update internal skill/XP values.
|
// Update internal skill/XP values.
|
||||||
currentXP = client.getSkillExperience(calculatorType.getSkill());
|
currentXP = client.getSkillExperience(calculatorType.getSkill());
|
||||||
currentLevel = Experience.getLevelForXp(currentXP);
|
currentLevel = Experience.getLevelForXp(currentXP);
|
||||||
targetLevel = enforceSkillBounds(currentLevel + 1);
|
VarPlayer endGoalVarp = endGoalVarpForSkill(calculatorType.getSkill());
|
||||||
targetXP = Experience.getXpForLevel(targetLevel);
|
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.
|
// Remove all components (action slots) from this panel.
|
||||||
removeAll();
|
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