slayerplugin: Correct Jad and Zuk task tracking
This adds a field to Task which dictates the expected exp gain of the task. When set to a non-zero value, it will prevent slayer exp gains from registering as a kill unless they are of exactly that amount. Closes runelite/runelite#1865
This commit is contained in:
@@ -35,8 +35,10 @@ import static net.runelite.api.ChatMessageType.GAMEMESSAGE;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.ExperienceChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -418,6 +420,64 @@ public class SlayerPluginTest
|
||||
verifyNoMoreInteractions(notifier);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJadTaskKill()
|
||||
{
|
||||
final Player player = mock(Player.class);
|
||||
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
|
||||
when(client.getLocalPlayer()).thenReturn(player);
|
||||
|
||||
final ExperienceChanged experienceChanged = new ExperienceChanged();
|
||||
experienceChanged.setSkill(Skill.SLAYER);
|
||||
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
slayerPlugin.setTaskName("TzTok-Jad");
|
||||
slayerPlugin.setAmount(1);
|
||||
|
||||
// One bat kill
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
assertEquals(1, slayerPlugin.getAmount());
|
||||
|
||||
// One Jad kill
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(25_360);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
assertEquals(0, slayerPlugin.getAmount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZukTaskKill()
|
||||
{
|
||||
final Player player = mock(Player.class);
|
||||
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
|
||||
when(client.getLocalPlayer()).thenReturn(player);
|
||||
|
||||
final ExperienceChanged experienceChanged = new ExperienceChanged();
|
||||
experienceChanged.setSkill(Skill.SLAYER);
|
||||
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
slayerPlugin.setTaskName("TzKal-Zuk");
|
||||
slayerPlugin.setAmount(1);
|
||||
|
||||
// One bat kill
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(125);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
assertEquals(1, slayerPlugin.getAmount());
|
||||
|
||||
// One Zuk kill
|
||||
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(102_015);
|
||||
slayerPlugin.onExperienceChanged(experienceChanged);
|
||||
|
||||
assertEquals(0, slayerPlugin.getAmount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBraceletSlaughter()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user