skill calc: use target level if available

Co-authored-by: Adam <Adam@sigterm.info>
This commit is contained in:
WLoumakis
2019-12-18 16:43:00 -05:00
committed by Adam
parent cfa55992a2
commit f09f630c90

View File

@@ -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();
}
}
}