From d8e72c6551d7ce5f667dc05d91d7edf77ffb7252 Mon Sep 17 00:00:00 2001 From: dekvall Date: Thu, 5 Nov 2020 11:23:58 -0500 Subject: [PATCH] xptracker: add league relic modifiers --- .../plugins/xptracker/XpTrackerPlugin.java | 2 +- .../client/plugins/xptracker/XpWorldType.java | 45 +++++++++++++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index 82c742e47f..9ae532a8db 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -377,7 +377,7 @@ 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 int xpModifier = worldSetToType(client.getWorldType()).modifier(client);; final NPC npc = (NPC) interacting; xpState.updateNpcExperience(skill, npc, npcManager.getHealth(npc.getId()), xpModifier); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java index cc62695c92..245057e209 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpWorldType.java @@ -24,20 +24,47 @@ */ package net.runelite.client.plugins.xptracker; -import lombok.Getter; -import lombok.RequiredArgsConstructor; +import net.runelite.api.Client; +import net.runelite.api.Varbits; import net.runelite.api.WorldType; -@Getter -@RequiredArgsConstructor enum XpWorldType { - NORMAL(1), - TOURNEY(1), - DMM(5), - LEAGUE(5); + NORMAL, + TOURNEY, + DMM + { + @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) {