xp-tracker: support league & dmm modifiers for kills remaining

This commit is contained in:
dekvall
2020-10-06 04:48:48 +02:00
committed by Adam
parent 7a6c4ecc51
commit 41c185a9d7
3 changed files with 14 additions and 7 deletions

View File

@@ -123,7 +123,7 @@ class XpState
* @param npc currently interacted NPC
* @param npcHealth health of currently interacted NPC
*/
void updateNpcExperience(Skill skill, NPC npc, Integer npcHealth)
void updateNpcExperience(Skill skill, NPC npc, Integer npcHealth, int xpModifier)
{
if (npc == null || npc.getCombatLevel() <= 0 || npcHealth == null)
{
@@ -131,7 +131,7 @@ class XpState
}
final XpStateSingle state = getSkill(skill);
final int actionExp = (int) (npcHealth * getCombatXPModifier(skill));
final int actionExp = (int) (npcHealth * getCombatXPModifier(skill) * xpModifier);
final XpAction action = state.getXpAction(XpActionType.ACTOR_HEALTH);
if (action.isActionsHistoryInitialized())

View File

@@ -377,8 +377,9 @@ public class XpTrackerPlugin extends Plugin
final Actor interacting = client.getLocalPlayer().getInteracting();
if (interacting instanceof NPC && COMBAT.contains(skill))
{
final int xpModifier = worldSetToType(client.getWorldType()).getXpModifier();
final NPC npc = (NPC) interacting;
xpState.updateNpcExperience(skill, npc, npcManager.getHealth(npc.getId()));
xpState.updateNpcExperience(skill, npc, npcManager.getHealth(npc.getId()), xpModifier);
}
final XpUpdateResult updateResult = xpState.updateSkill(skill, currentXp, startGoalXp, endGoalXp);

View File

@@ -24,14 +24,20 @@
*/
package net.runelite.client.plugins.xptracker;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.runelite.api.WorldType;
@Getter
@RequiredArgsConstructor
enum XpWorldType
{
NORMAL,
TOURNEY,
DMM,
LEAGUE;
NORMAL(1),
TOURNEY(1),
DMM(5),
LEAGUE(5);
private final int xpModifier;
static XpWorldType of(WorldType type)
{