xptracker: add league relic modifiers

This commit is contained in:
dekvall
2020-11-05 11:23:58 -05:00
committed by Adam
parent 16c9a9cb3a
commit d8e72c6551
2 changed files with 37 additions and 10 deletions

View File

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

View File

@@ -24,20 +24,47 @@
*/ */
package net.runelite.client.plugins.xptracker; package net.runelite.client.plugins.xptracker;
import lombok.Getter; import net.runelite.api.Client;
import lombok.RequiredArgsConstructor; import net.runelite.api.Varbits;
import net.runelite.api.WorldType; import net.runelite.api.WorldType;
@Getter
@RequiredArgsConstructor
enum XpWorldType enum XpWorldType
{ {
NORMAL(1), NORMAL,
TOURNEY(1), TOURNEY,
DMM(5), DMM
LEAGUE(5); {
@Override
int modifier(Client client)
{
return 5;
}
},
LEAGUE
{
@Override
int modifier(Client client)
{
if (client.getVar(Varbits.LEAGUE_RELIC_6) != 0)
{
return 16;
}
if (client.getVar(Varbits.LEAGUE_RELIC_4) != 0)
{
return 12;
}
if (client.getVar(Varbits.LEAGUE_RELIC_2) != 0)
{
return 8;
}
return 5;
}
};
private final int xpModifier; int modifier(Client client)
{
return 1;
}
static XpWorldType of(WorldType type) static XpWorldType of(WorldType type)
{ {