Merge pull request #7219 from Abextm/diary-questreq
achievementdiary: Add Quest support
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public class CombatLevelRequirement implements Requirement
|
||||
{
|
||||
private final int level;
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return level + " " + "Combat";
|
||||
}
|
||||
}
|
||||
@@ -25,17 +25,19 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
class DiaryRequirement
|
||||
{
|
||||
private final String task;
|
||||
private final Requirement[] skillRequirements;
|
||||
private final List<Requirement> requirements;
|
||||
|
||||
DiaryRequirement(String task, Requirement[] skillRequirements)
|
||||
DiaryRequirement(String task, Requirement[] requirements)
|
||||
{
|
||||
this.task = task;
|
||||
this.skillRequirements = skillRequirements;
|
||||
this.requirements = ImmutableList.copyOf(requirements);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,17 +25,19 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.FontTypeFace;
|
||||
import net.runelite.api.QuestState;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
@@ -55,7 +57,6 @@ import net.runelite.client.plugins.achievementdiary.diaries.MorytaniaDiaryRequir
|
||||
import net.runelite.client.plugins.achievementdiary.diaries.VarrockDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.diaries.WesternDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.diaries.WildernessDiaryRequirement;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@Slf4j
|
||||
@@ -66,6 +67,9 @@ import net.runelite.client.util.Text;
|
||||
)
|
||||
public class DiaryRequirementsPlugin extends Plugin
|
||||
{
|
||||
private static final String AND_JOINER = ", ";
|
||||
private static final Pattern AND_JOINER_PATTERN = Pattern.compile("(?<=, )");
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@@ -101,6 +105,9 @@ public class DiaryRequirementsPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
FontTypeFace font = titleWidget.getFont();
|
||||
int maxWidth = titleWidget.getWidth();
|
||||
|
||||
List<String> originalAchievements = getOriginalAchievements(children);
|
||||
|
||||
// new requirements starts out as a copy of the original
|
||||
@@ -137,21 +144,45 @@ public class DiaryRequirementsPlugin extends Plugin
|
||||
{
|
||||
String levelRequirement = skillRequirements.get(taskBuffer);
|
||||
String task = originalAchievements.get(i);
|
||||
if (Text.removeTags(task).length() + Text.removeTags(levelRequirement).length() <= 50)
|
||||
|
||||
int taskWidth = font.getTextWidth(task);
|
||||
int ourWidth = font.getTextWidth(levelRequirement);
|
||||
String strike = task.startsWith("<str>") ? "<str>" : "";
|
||||
|
||||
if (ourWidth + taskWidth < maxWidth)
|
||||
{
|
||||
// Merge onto 1 line
|
||||
newRequirements.set(i + offset, task + levelRequirement);
|
||||
}
|
||||
else if (ourWidth < maxWidth)
|
||||
{
|
||||
// 2 line split
|
||||
newRequirements.add(i + (++offset), strike + levelRequirement);
|
||||
}
|
||||
else
|
||||
{
|
||||
offset++;
|
||||
if (task.startsWith("<str>"))
|
||||
// Full text layout
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append(task);
|
||||
int runningWidth = font.getTextWidth(b.toString());
|
||||
for (String word : AND_JOINER_PATTERN.split(levelRequirement))
|
||||
{
|
||||
newRequirements.add(i + offset, "<str>" + levelRequirement);
|
||||
}
|
||||
else
|
||||
{
|
||||
newRequirements.add(i + offset, levelRequirement);
|
||||
int wordWidth = font.getTextWidth(word);
|
||||
if (runningWidth == 0 || wordWidth + runningWidth < maxWidth)
|
||||
{
|
||||
runningWidth += wordWidth;
|
||||
b.append(word);
|
||||
}
|
||||
else
|
||||
{
|
||||
newRequirements.add(i + (offset++), b.toString());
|
||||
b.delete(0, b.length());
|
||||
runningWidth = wordWidth;
|
||||
b.append(strike);
|
||||
b.append(word);
|
||||
}
|
||||
}
|
||||
newRequirements.add(i + offset, b.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -233,66 +264,63 @@ public class DiaryRequirementsPlugin extends Plugin
|
||||
// returns a map of task -> level requirements
|
||||
private Map<String, String> buildRequirements(Collection<DiaryRequirement> requirements)
|
||||
{
|
||||
Map<String, String> lineIndexRequirementMap = new HashMap<>();
|
||||
Map<String, String> reqs = new HashMap<>();
|
||||
for (DiaryRequirement req : requirements)
|
||||
{
|
||||
String reqTask = req.getTask();
|
||||
List<RequirementStringBuilder> requirementBuilders = new ArrayList<>();
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append("<col=ffffff>(");
|
||||
|
||||
for (Requirement i : req.getSkillRequirements())
|
||||
assert req.getRequirements().size() > 0;
|
||||
for (Requirement ireq : req.getRequirements())
|
||||
{
|
||||
RequirementStringBuilder requirementStringBuilder = new RequirementStringBuilder(i);
|
||||
|
||||
Skill skill = i.getSkill();
|
||||
int realSkillLevel;
|
||||
if (skill == null && i.getCustomRequirement().equals("Combat"))
|
||||
{
|
||||
realSkillLevel = client.getLocalPlayer().getCombatLevel();
|
||||
}
|
||||
else
|
||||
{
|
||||
realSkillLevel = client.getRealSkillLevel(skill);
|
||||
}
|
||||
List<Integer> altRealSkillLevels = null;
|
||||
if (i.getAltRequirements() != null)
|
||||
{
|
||||
altRealSkillLevels = new ArrayList<>();
|
||||
for (Requirement j : i.getAltRequirements())
|
||||
{
|
||||
altRealSkillLevels.add(client.getRealSkillLevel(j.getSkill()));
|
||||
}
|
||||
}
|
||||
|
||||
if (requirementStringBuilder.hasLevelRequirement(realSkillLevel, altRealSkillLevels))
|
||||
{
|
||||
requirementStringBuilder.strikeThroughRequirement();
|
||||
}
|
||||
else
|
||||
{
|
||||
requirementStringBuilder.colorRedRequirement();
|
||||
}
|
||||
requirementBuilders .add(requirementStringBuilder);
|
||||
boolean satifisfied = satisfiesRequirement(ireq);
|
||||
b.append(satifisfied ? "<col=000080><str>" : "<col=800000>");
|
||||
b.append(ireq.toString());
|
||||
b.append(satifisfied ? "</str>" : "<col=000080>");
|
||||
b.append(AND_JOINER);
|
||||
}
|
||||
|
||||
lineIndexRequirementMap.put(reqTask, combine(requirementBuilders ));
|
||||
b.delete(b.length() - AND_JOINER.length(), b.length());
|
||||
|
||||
b.append("<col=ffffff>)");
|
||||
|
||||
reqs.put(req.getTask(), b.toString());
|
||||
}
|
||||
return lineIndexRequirementMap;
|
||||
return reqs;
|
||||
}
|
||||
|
||||
private String combine(List<RequirementStringBuilder> list)
|
||||
private boolean satisfiesRequirement(Requirement r)
|
||||
{
|
||||
StringBuilder requirementsString = new StringBuilder();
|
||||
requirementsString.append(ColorUtil.prependColorTag(" (", Color.WHITE));
|
||||
for (RequirementStringBuilder req : list)
|
||||
if (r instanceof OrRequirement)
|
||||
{
|
||||
requirementsString.append(ColorUtil.colorTag(new Color(0x80)))
|
||||
.append(req.getRequirementString())
|
||||
.append(", ");
|
||||
return ((OrRequirement) r).getRequirements()
|
||||
.stream()
|
||||
.anyMatch(this::satisfiesRequirement);
|
||||
}
|
||||
requirementsString.deleteCharAt(requirementsString.length() - 1);
|
||||
requirementsString.deleteCharAt(requirementsString.length() - 2);
|
||||
requirementsString.append(ColorUtil.prependColorTag(")", Color.WHITE));
|
||||
|
||||
return requirementsString.toString();
|
||||
if (r instanceof SkillRequirement)
|
||||
{
|
||||
SkillRequirement s = (SkillRequirement) r;
|
||||
return client.getRealSkillLevel(s.getSkill()) >= s.getLevel();
|
||||
}
|
||||
if (r instanceof CombatLevelRequirement)
|
||||
{
|
||||
return client.getLocalPlayer().getCombatLevel() >= ((CombatLevelRequirement) r).getLevel();
|
||||
}
|
||||
if (r instanceof QuestRequirement)
|
||||
{
|
||||
QuestRequirement q = (QuestRequirement) r;
|
||||
QuestState state = q.getQuest().getState(client);
|
||||
if (q.isStarted())
|
||||
{
|
||||
return state != QuestState.NOT_STARTED;
|
||||
}
|
||||
return state == QuestState.FINISHED;
|
||||
}
|
||||
if (r instanceof QuestPointRequirement)
|
||||
{
|
||||
return client.getVar(VarPlayer.QUEST_POINTS) >= ((QuestPointRequirement) r).getQp();
|
||||
}
|
||||
log.warn("Unknown requirement {}", r);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
|
||||
public class OrRequirement implements Requirement
|
||||
{
|
||||
@Getter
|
||||
private final List<Requirement> requirements;
|
||||
|
||||
public OrRequirement(Requirement... reqs)
|
||||
{
|
||||
this.requirements = ImmutableList.copyOf(reqs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return Joiner.on(" or ").join(requirements);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public class QuestPointRequirement implements Requirement
|
||||
{
|
||||
private final int qp;
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return qp + " " + "Quest points";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.runelite.api.Quest;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public class QuestRequirement implements Requirement
|
||||
{
|
||||
private final Quest quest;
|
||||
private final boolean started;
|
||||
|
||||
public QuestRequirement(Quest quest)
|
||||
{
|
||||
this(quest, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
if (started)
|
||||
{
|
||||
return "Started " + quest.getName();
|
||||
}
|
||||
|
||||
return quest.getName();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Adam <Adam@sigterm.info>
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -23,30 +23,6 @@
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Skill;
|
||||
|
||||
@Getter
|
||||
public class Requirement
|
||||
public interface Requirement
|
||||
{
|
||||
private final Skill skill;
|
||||
private final String customRequirement;
|
||||
private final int levelRequirement;
|
||||
private final Requirement[] altRequirements;
|
||||
|
||||
public Requirement(Skill skill, int levelRequirement, Requirement... altRequirements)
|
||||
{
|
||||
this.skill = skill;
|
||||
this.customRequirement = null;
|
||||
this.levelRequirement = levelRequirement;
|
||||
this.altRequirements = altRequirements;
|
||||
}
|
||||
|
||||
public Requirement(String customRequirement, int levelRequirement, Requirement... altRequirements)
|
||||
{
|
||||
this.skill = null;
|
||||
this.customRequirement = customRequirement;
|
||||
this.levelRequirement = levelRequirement;
|
||||
this.altRequirements = altRequirements;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Marshall <https://github.com/marshdevs>
|
||||
* Copyright (c) 2018, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
class RequirementStringBuilder
|
||||
{
|
||||
private final Requirement requirement;
|
||||
@Getter
|
||||
private String requirementString;
|
||||
|
||||
RequirementStringBuilder(Requirement requirement)
|
||||
{
|
||||
this.requirement = requirement;
|
||||
|
||||
int levelRequirement = requirement.getLevelRequirement();
|
||||
Skill skill = requirement.getSkill();
|
||||
Requirement[] altRequirements = requirement.getAltRequirements();
|
||||
|
||||
StringBuilder requirementStringBuilder = new StringBuilder()
|
||||
.append(levelRequirement)
|
||||
.append(" ")
|
||||
.append(skill != null ? skill.getName() : requirement.getCustomRequirement());
|
||||
for (Requirement i : altRequirements)
|
||||
{
|
||||
requirementStringBuilder.append(" or ")
|
||||
.append(i.getLevelRequirement())
|
||||
.append(" ")
|
||||
.append(i.getSkill().getName());
|
||||
}
|
||||
this.requirementString = requirementStringBuilder.toString();
|
||||
}
|
||||
|
||||
void strikeThroughRequirement()
|
||||
{
|
||||
this.requirementString = "<str>" + this.requirementString + "</str>";
|
||||
}
|
||||
|
||||
void colorRedRequirement()
|
||||
{
|
||||
this.requirementString = ColorUtil.wrapWithColorTag(this.requirementString, new Color(0x800000));
|
||||
}
|
||||
|
||||
boolean hasLevelRequirement(int realSkillLevel, List<Integer> altRealSkillLevels)
|
||||
{
|
||||
return hasLevelRequirement(requirement, realSkillLevel, altRealSkillLevels);
|
||||
}
|
||||
|
||||
private static boolean hasLevelRequirement(Requirement requirement, int realSkillLevel, List<Integer> altRealSkillLevels)
|
||||
{
|
||||
int levelRequirement = requirement.getLevelRequirement();
|
||||
Requirement[] altRequirements = requirement.getAltRequirements();
|
||||
|
||||
boolean hasReq = (realSkillLevel >= levelRequirement);
|
||||
if (altRequirements != null && altRealSkillLevels != null)
|
||||
{
|
||||
int reqCounter = 0;
|
||||
for (Requirement i : altRequirements)
|
||||
{
|
||||
hasReq = (hasReq || hasLevelRequirement(i, altRealSkillLevels.get(reqCounter), null));
|
||||
reqCounter++;
|
||||
}
|
||||
}
|
||||
return hasReq;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.runelite.api.Skill;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public class SkillRequirement implements Requirement
|
||||
{
|
||||
private final Skill skill;
|
||||
private final int level;
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return level + " " + skill.getName();
|
||||
}
|
||||
}
|
||||
@@ -25,78 +25,107 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class ArdougneDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
public ArdougneDiaryRequirement()
|
||||
{
|
||||
// EASY
|
||||
add("Have Wizard Cromperty teleport you to the Rune Essence mine.",
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Steal a cake from the Ardougne market stalls.",
|
||||
new Requirement(Skill.THIEVING, 5));
|
||||
new SkillRequirement(Skill.THIEVING, 5));
|
||||
add("Enter the Combat Training Camp north of W. Ardougne",
|
||||
new QuestRequirement(Quest.BIOHAZARD));
|
||||
|
||||
// MEDIUM
|
||||
add("Enter the Unicorn pen in Ardougne zoo using Fairy rings.",
|
||||
new QuestRequirement(Quest.FAIRYTALE_II__CURE_A_QUEEN, true));
|
||||
add("Grapple over Yanille's south wall.",
|
||||
new Requirement(Skill.AGILITY, 39),
|
||||
new Requirement(Skill.STRENGTH, 38),
|
||||
new Requirement(Skill.RANGED, 21));
|
||||
new SkillRequirement(Skill.AGILITY, 39),
|
||||
new SkillRequirement(Skill.STRENGTH, 38),
|
||||
new SkillRequirement(Skill.RANGED, 21));
|
||||
add("Harvest some strawberries from the Ardougne farming patch.",
|
||||
new Requirement(Skill.FARMING, 31));
|
||||
new SkillRequirement(Skill.FARMING, 31));
|
||||
add("Cast the Ardougne Teleport spell.",
|
||||
new Requirement(Skill.MAGIC, 51));
|
||||
new SkillRequirement(Skill.MAGIC, 51),
|
||||
new QuestRequirement(Quest.PLAGUE_CITY));
|
||||
add("Travel to Castlewars by Hot Air Balloon.",
|
||||
new Requirement(Skill.FIREMAKING, 50));
|
||||
new SkillRequirement(Skill.FIREMAKING, 50),
|
||||
new QuestRequirement(Quest.ENLIGHTENED_JOURNEY));
|
||||
add("Claim buckets of sand from Bert in Yanille.",
|
||||
new Requirement(Skill.CRAFTING, 49));
|
||||
new SkillRequirement(Skill.CRAFTING, 49),
|
||||
new QuestRequirement(Quest.THE_HAND_IN_THE_SAND));
|
||||
add("Catch any fish on the Fishing Platform.",
|
||||
new QuestRequirement(Quest.SEA_SLUG, true));
|
||||
add("Pickpocket the master farmer north of Ardougne.",
|
||||
new Requirement(Skill.THIEVING, 38));
|
||||
new SkillRequirement(Skill.THIEVING, 38));
|
||||
add("Collect some Nightshade from the Skavid Caves.",
|
||||
new QuestRequirement(Quest.WATCHTOWER, true));
|
||||
add("Kill a swordchick in the Tower of Life.",
|
||||
new QuestRequirement(Quest.TOWER_OF_LIFE));
|
||||
add("Equip Iban's upgraded staff or upgrade an Iban staff.",
|
||||
new Requirement(Skill.MAGIC, 50),
|
||||
new Requirement(Skill.ATTACK, 50));
|
||||
new SkillRequirement(Skill.MAGIC, 50),
|
||||
new SkillRequirement(Skill.ATTACK, 50),
|
||||
new QuestRequirement(Quest.UNDERGROUND_PASS));
|
||||
add("Visit the Island East of the Necromancer's tower.",
|
||||
new QuestRequirement(Quest.FAIRYTALE_II__CURE_A_QUEEN, true));
|
||||
|
||||
// HARD
|
||||
add("Recharge some Jewellery at Totem in the Legends Guild.",
|
||||
new QuestRequirement(Quest.LEGENDS_QUEST));
|
||||
add("Enter the Magic Guild.",
|
||||
new Requirement(Skill.MAGIC, 66));
|
||||
new SkillRequirement(Skill.MAGIC, 66));
|
||||
add("Attempt to steal from King Lathas' chest.",
|
||||
new Requirement(Skill.THIEVING, 72));
|
||||
new SkillRequirement(Skill.THIEVING, 72));
|
||||
add("Have a zookeeper put you in Ardougne Zoo's monkey cage.",
|
||||
new QuestRequirement(Quest.MONKEY_MADNESS_I, true));
|
||||
add("Teleport to the Watchtower.",
|
||||
new Requirement(Skill.MAGIC, 58));
|
||||
new SkillRequirement(Skill.MAGIC, 58),
|
||||
new QuestRequirement(Quest.WATCHTOWER));
|
||||
add("Catch a Red Salamander.",
|
||||
new Requirement(Skill.HUNTER, 59));
|
||||
new SkillRequirement(Skill.HUNTER, 59));
|
||||
add("Check the health of a Palm tree near tree gnome village.",
|
||||
new Requirement(Skill.FARMING, 68));
|
||||
new SkillRequirement(Skill.FARMING, 68));
|
||||
add("Pick some Poison Ivy berries from the patch south of Ardougne.",
|
||||
new Requirement(Skill.FARMING, 70));
|
||||
new SkillRequirement(Skill.FARMING, 70));
|
||||
add("Smith a Mithril platebody near Ardougne.",
|
||||
new Requirement(Skill.SMITHING, 68));
|
||||
new SkillRequirement(Skill.SMITHING, 68));
|
||||
add("Enter your POH from Yanille.",
|
||||
new Requirement(Skill.CONSTRUCTION, 50));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 50));
|
||||
add("Smith a Dragon sq shield in West Ardougne.",
|
||||
new Requirement(Skill.SMITHING, 60));
|
||||
new SkillRequirement(Skill.SMITHING, 60),
|
||||
new QuestRequirement(Quest.LEGENDS_QUEST));
|
||||
add("Craft some Death runes.",
|
||||
new Requirement(Skill.RUNECRAFT, 65));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 65),
|
||||
new QuestRequirement(Quest.MOURNINGS_ENDS_PART_II));
|
||||
|
||||
// ELITE
|
||||
add("Catch a Manta ray in the Fishing Trawler and cook it in Port Khazard.",
|
||||
|
||||
new Requirement(Skill.FISHING, 81),
|
||||
new Requirement(Skill.COOKING, 91)
|
||||
new SkillRequirement(Skill.FISHING, 81),
|
||||
new SkillRequirement(Skill.COOKING, 91)
|
||||
);
|
||||
add("Attempt to picklock the door to the basement of Yanille Agility Dungeon.",
|
||||
new Requirement(Skill.THIEVING, 82));
|
||||
new SkillRequirement(Skill.THIEVING, 82));
|
||||
add("Pickpocket a Hero.",
|
||||
new Requirement(Skill.THIEVING, 80));
|
||||
new SkillRequirement(Skill.THIEVING, 80));
|
||||
add("Make a rune crossbow yourself from scratch within Witchaven or Yanille.",
|
||||
new Requirement(Skill.CRAFTING, 10),
|
||||
new Requirement(Skill.SMITHING, 91),
|
||||
new Requirement(Skill.FLETCHING, 69));
|
||||
new SkillRequirement(Skill.CRAFTING, 10),
|
||||
new SkillRequirement(Skill.SMITHING, 91),
|
||||
new SkillRequirement(Skill.FLETCHING, 69));
|
||||
add("Imbue a salve amulet at Nightmare Zone or equip an imbued salve amulet.",
|
||||
new QuestRequirement(Quest.HAUNTED_MINE));
|
||||
add("Pick some Torstol from the patch north of Ardougne.",
|
||||
new Requirement(Skill.FARMING, 85));
|
||||
new SkillRequirement(Skill.FARMING, 85));
|
||||
add("Complete a lap of Ardougne's rooftop agility course.",
|
||||
new Requirement(Skill.AGILITY, 90));
|
||||
new SkillRequirement(Skill.AGILITY, 90));
|
||||
add("Cast Ice Barrage on another player within Castlewars.",
|
||||
new Requirement(Skill.MAGIC, 94));
|
||||
new SkillRequirement(Skill.MAGIC, 94),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class DesertDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,60 +37,82 @@ public class DesertDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Catch a Golden Warbler.",
|
||||
new Requirement(Skill.HUNTER, 5));
|
||||
new SkillRequirement(Skill.HUNTER, 5));
|
||||
add("Mine 5 clay in the north-eastern desert.",
|
||||
new Requirement(Skill.MINING, 5));
|
||||
new SkillRequirement(Skill.MINING, 5));
|
||||
add("Open the Sarcophagus in the first room of Pyramid Plunder.",
|
||||
new Requirement(Skill.THIEVING, 21));
|
||||
new SkillRequirement(Skill.THIEVING, 21),
|
||||
new QuestRequirement(Quest.ICTHLARINS_LITTLE_HELPER, true));
|
||||
|
||||
// MEDIUM
|
||||
add("Climb to the summit of the Agility Pyramid.",
|
||||
new Requirement(Skill.AGILITY, 30));
|
||||
new SkillRequirement(Skill.AGILITY, 30));
|
||||
add("Slay a desert lizard.",
|
||||
new Requirement(Skill.SLAYER, 22));
|
||||
new SkillRequirement(Skill.SLAYER, 22));
|
||||
add("Catch an Orange Salamander.",
|
||||
new Requirement(Skill.HUNTER, 47));
|
||||
new SkillRequirement(Skill.HUNTER, 47));
|
||||
add("Steal a feather from the Desert Phoenix.",
|
||||
new Requirement(Skill.THIEVING, 25));
|
||||
new SkillRequirement(Skill.THIEVING, 25));
|
||||
add("Travel to Uzer via Magic Carpet.",
|
||||
new QuestRequirement(Quest.THE_GOLEM));
|
||||
add("Travel to the Desert via Eagle.",
|
||||
new QuestRequirement(Quest.EAGLES_PEAK));
|
||||
add("Pray at the Elidinis statuette in Nardah.",
|
||||
new QuestRequirement(Quest.SPIRITS_OF_THE_ELID));
|
||||
add("Create a combat potion in the desert.",
|
||||
new Requirement(Skill.HERBLORE, 36));
|
||||
new SkillRequirement(Skill.HERBLORE, 36));
|
||||
add("Teleport to Enakhra's Temple with the Camulet.",
|
||||
new QuestRequirement(Quest.ENAKHRAS_LAMENT));
|
||||
add("Visit the Genie.",
|
||||
new QuestRequirement(Quest.SPIRITS_OF_THE_ELID));
|
||||
add("Teleport to Pollnivneach with a redirected teleport to house tablet.",
|
||||
new Requirement(Skill.CONSTRUCTION, 20));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 20));
|
||||
add("Chop some Teak logs near Uzer.",
|
||||
new Requirement(Skill.WOODCUTTING, 35));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 35));
|
||||
|
||||
// HARD
|
||||
add("Knock out and pickpocket a Menaphite Thug.",
|
||||
new Requirement(Skill.THIEVING, 65));
|
||||
new SkillRequirement(Skill.THIEVING, 65),
|
||||
new QuestRequirement(Quest.THE_FEUD));
|
||||
add("Mine some Granite.",
|
||||
new Requirement(Skill.MINING, 45));
|
||||
new SkillRequirement(Skill.MINING, 45));
|
||||
add("Refill your waterskins in the Desert using Lunar magic.",
|
||||
new Requirement(Skill.MAGIC, 68));
|
||||
new SkillRequirement(Skill.MAGIC, 68),
|
||||
new QuestRequirement(Quest.DREAM_MENTOR));
|
||||
add("Complete a lap of the Pollnivneach agility course.",
|
||||
new Requirement(Skill.AGILITY, 70));
|
||||
new SkillRequirement(Skill.AGILITY, 70));
|
||||
add("Slay a Dust Devil with a Slayer helmet equipped.",
|
||||
new Requirement(Skill.SLAYER, 65),
|
||||
new Requirement(Skill.DEFENCE, 10),
|
||||
new Requirement(Skill.CRAFTING, 55));
|
||||
new SkillRequirement(Skill.SLAYER, 65),
|
||||
new SkillRequirement(Skill.DEFENCE, 10),
|
||||
new SkillRequirement(Skill.CRAFTING, 55),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE, true));
|
||||
add("Activate Ancient Magicks at the altar in the Jaldraocht Pyramid.",
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
add("Defeat a Locust Rider with Keris.",
|
||||
new Requirement(Skill.ATTACK, 50));
|
||||
new SkillRequirement(Skill.ATTACK, 50),
|
||||
new QuestRequirement(Quest.CONTACT));
|
||||
add("Burn some yew logs on the Nardah Mayor's balcony.",
|
||||
new Requirement(Skill.FIREMAKING, 60));
|
||||
new SkillRequirement(Skill.FIREMAKING, 60));
|
||||
add("Create a Mithril Platebody in Nardah.",
|
||||
new Requirement(Skill.SMITHING, 68));
|
||||
new SkillRequirement(Skill.SMITHING, 68));
|
||||
|
||||
// ELITE
|
||||
add("Bake a wild pie at the Nardah Clay Oven.",
|
||||
new Requirement(Skill.COOKING, 85));
|
||||
new SkillRequirement(Skill.COOKING, 85));
|
||||
add("Cast Ice Barrage against a foe in the Desert.",
|
||||
new Requirement(Skill.MAGIC, 94));
|
||||
new SkillRequirement(Skill.MAGIC, 94),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
add("Fletch some Dragon darts at the Bedabin Camp.",
|
||||
new Requirement(Skill.FLETCHING, 95));
|
||||
new SkillRequirement(Skill.FLETCHING, 95),
|
||||
new QuestRequirement(Quest.THE_TOURIST_TRAP));
|
||||
add("Speak to the KQ head in your POH.",
|
||||
new Requirement(Skill.CONSTRUCTION, 78));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 78),
|
||||
new QuestRequirement(Quest.PRIEST_IN_PERIL));
|
||||
add("Steal from the Grand Gold Chest in the final room of Pyramid Plunder.",
|
||||
new Requirement(Skill.THIEVING, 91));
|
||||
new SkillRequirement(Skill.THIEVING, 91),
|
||||
new QuestRequirement(Quest.ICTHLARINS_LITTLE_HELPER, true));
|
||||
add("Restore at least 85 Prayer points when praying at the Altar in Sophanem.",
|
||||
new Requirement(Skill.PRAYER, 85));
|
||||
new SkillRequirement(Skill.PRAYER, 85),
|
||||
new QuestRequirement(Quest.ICTHLARINS_LITTLE_HELPER, true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class FaladorDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,71 +37,83 @@ public class FaladorDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Find out what your family crest is from Sir Renitee.",
|
||||
new Requirement(Skill.CONSTRUCTION, 16));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 16));
|
||||
add("Climb over the western Falador wall.",
|
||||
new Requirement(Skill.AGILITY, 5));
|
||||
new SkillRequirement(Skill.AGILITY, 5));
|
||||
add("Make a mind tiara.",
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Smith some Blurite Limbs on Doric's Anvil.",
|
||||
new Requirement(Skill.MINING, 10),
|
||||
new Requirement(Skill.SMITHING, 13));
|
||||
new SkillRequirement(Skill.MINING, 10),
|
||||
new SkillRequirement(Skill.SMITHING, 13),
|
||||
new QuestRequirement(Quest.THE_KNIGHTS_SWORD),
|
||||
new QuestRequirement(Quest.DORICS_QUEST));
|
||||
|
||||
// MEDIUM
|
||||
add("Light a Bullseye lantern at the Chemist's in Rimmington.",
|
||||
new Requirement(Skill.FIREMAKING, 49));
|
||||
new SkillRequirement(Skill.FIREMAKING, 49));
|
||||
add("Telegrab some Wine of Zamorak at the Chaos Temple by the Wilderness.",
|
||||
new Requirement(Skill.MAGIC, 33));
|
||||
new SkillRequirement(Skill.MAGIC, 33));
|
||||
add("Place a Scarecrow in the Falador farming patch.",
|
||||
new Requirement(Skill.FARMING, 23));
|
||||
new SkillRequirement(Skill.FARMING, 23));
|
||||
add("Kill a Mogre at Mudskipper Point.",
|
||||
new Requirement(Skill.SLAYER, 32));
|
||||
new SkillRequirement(Skill.SLAYER, 32),
|
||||
new QuestRequirement(Quest.SKIPPY_AND_THE_MOGRES));
|
||||
add("Visit the Port Sarim Rat Pits.",
|
||||
new QuestRequirement(Quest.RATCATCHERS, true));
|
||||
add("Grapple up and then jump off the north Falador wall.",
|
||||
new Requirement(Skill.AGILITY, 11),
|
||||
new Requirement(Skill.STRENGTH, 37),
|
||||
new Requirement(Skill.RANGED, 19));
|
||||
new SkillRequirement(Skill.AGILITY, 11),
|
||||
new SkillRequirement(Skill.STRENGTH, 37),
|
||||
new SkillRequirement(Skill.RANGED, 19));
|
||||
add("Pickpocket a Falador guard.",
|
||||
new Requirement(Skill.THIEVING, 40));
|
||||
new SkillRequirement(Skill.THIEVING, 40));
|
||||
add("Pray at the Altar of Guthix in Taverley whilst wearing full Initiate.",
|
||||
new Requirement(Skill.PRAYER, 10),
|
||||
new Requirement(Skill.DEFENCE, 20));
|
||||
new SkillRequirement(Skill.PRAYER, 10),
|
||||
new SkillRequirement(Skill.DEFENCE, 20),
|
||||
new QuestRequirement(Quest.RECRUITMENT_DRIVE));
|
||||
add("Mine some Gold ore at the Crafting Guild.",
|
||||
new Requirement(Skill.CRAFTING, 40),
|
||||
new Requirement(Skill.MINING, 40));
|
||||
new SkillRequirement(Skill.CRAFTING, 40),
|
||||
new SkillRequirement(Skill.MINING, 40));
|
||||
add("Squeeze through the crevice in the Dwarven mines.",
|
||||
new Requirement(Skill.AGILITY, 42));
|
||||
new SkillRequirement(Skill.AGILITY, 42));
|
||||
add("Chop and burn some Willow logs in Taverley",
|
||||
new Requirement(Skill.WOODCUTTING, 30),
|
||||
new Requirement(Skill.FIREMAKING, 30));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 30),
|
||||
new SkillRequirement(Skill.FIREMAKING, 30));
|
||||
add("Craft a fruit basket on the Falador Farm loom.",
|
||||
new Requirement(Skill.CRAFTING, 36));
|
||||
new SkillRequirement(Skill.CRAFTING, 36));
|
||||
add("Teleport to Falador.",
|
||||
new Requirement(Skill.MAGIC, 37));
|
||||
new SkillRequirement(Skill.MAGIC, 37));
|
||||
|
||||
// HARD
|
||||
add("Craft 140 Mind runes simultaneously.",
|
||||
new Requirement(Skill.RUNECRAFT, 56));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 56));
|
||||
add("Change your family crest to the Saradomin symbol.",
|
||||
new Requirement(Skill.PRAYER, 70));
|
||||
new SkillRequirement(Skill.PRAYER, 70));
|
||||
add("Kill a Skeletal Wyvern in the Asgarnia Ice Dungeon.",
|
||||
new Requirement(Skill.SLAYER, 72));
|
||||
new SkillRequirement(Skill.SLAYER, 72));
|
||||
add("Complete a lap of the Falador rooftop agility course.",
|
||||
new Requirement(Skill.AGILITY, 50));
|
||||
new SkillRequirement(Skill.AGILITY, 50));
|
||||
add("Enter the mining guild wearing full prospector.",
|
||||
new Requirement(Skill.MINING, 60));
|
||||
new SkillRequirement(Skill.MINING, 60));
|
||||
add("Crack a wall safe within Rogues Den.",
|
||||
new Requirement(Skill.THIEVING, 50));
|
||||
new SkillRequirement(Skill.THIEVING, 50));
|
||||
add("Recharge your prayer in the Port Sarim church while wearing full Proselyte.",
|
||||
new Requirement(Skill.DEFENCE, 30));
|
||||
new SkillRequirement(Skill.DEFENCE, 30),
|
||||
new QuestRequirement(Quest.THE_SLUG_MENACE));
|
||||
add("Equip a dwarven helmet within the dwarven mines.",
|
||||
new Requirement(Skill.DEFENCE, 50));
|
||||
new SkillRequirement(Skill.DEFENCE, 50),
|
||||
new QuestRequirement(Quest.GRIM_TALES));
|
||||
|
||||
// ELITE
|
||||
add("Craft 252 Air Runes simultaneously.",
|
||||
new Requirement(Skill.RUNECRAFT, 88));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 88));
|
||||
add("Purchase a White 2h Sword from Sir Vyvin.",
|
||||
new QuestRequirement(Quest.WANTED));
|
||||
add("Find at least 3 magic roots at once when digging up your magic tree in Falador.",
|
||||
new Requirement(Skill.FARMING, 91),
|
||||
new Requirement(Skill.WOODCUTTING, 75));
|
||||
new SkillRequirement(Skill.FARMING, 91),
|
||||
new SkillRequirement(Skill.WOODCUTTING, 75));
|
||||
add("Jump over the strange floor in Taverley dungeon.",
|
||||
new Requirement(Skill.AGILITY, 80));
|
||||
new SkillRequirement(Skill.AGILITY, 80));
|
||||
add("Mix a Saradomin brew in Falador east bank.",
|
||||
new Requirement(Skill.HERBLORE, 81));
|
||||
new SkillRequirement(Skill.HERBLORE, 81));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class FremennikDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,62 +37,96 @@ public class FremennikDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Catch a Cerulean twitch.",
|
||||
new Requirement(Skill.HUNTER, 11));
|
||||
new SkillRequirement(Skill.HUNTER, 11));
|
||||
add("Change your boots at Yrsa's Shoe Store.",
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS));
|
||||
add("Craft a tiara from scratch in Rellekka.",
|
||||
new Requirement(Skill.CRAFTING, 23),
|
||||
new Requirement(Skill.MINING, 20),
|
||||
new Requirement(Skill.SMITHING, 20));
|
||||
new SkillRequirement(Skill.CRAFTING, 23),
|
||||
new SkillRequirement(Skill.MINING, 20),
|
||||
new SkillRequirement(Skill.SMITHING, 20),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS));
|
||||
add("Browse the Stonemasons shop.",
|
||||
new QuestRequirement(Quest.THE_GIANT_DWARF, true));
|
||||
add("Steal from the Keldagrim crafting or baker's stall.",
|
||||
new Requirement(Skill.THIEVING, 5));
|
||||
new SkillRequirement(Skill.THIEVING, 5),
|
||||
new QuestRequirement(Quest.THE_GIANT_DWARF, true));
|
||||
add("Enter the Troll Stronghold",
|
||||
new QuestRequirement(Quest.DEATH_PLATEAU),
|
||||
new QuestRequirement(Quest.TROLL_STRONGHOLD));
|
||||
add("Chop and burn some oak logs in the Fremennik Province.",
|
||||
new Requirement(Skill.WOODCUTTING, 15),
|
||||
new Requirement(Skill.FIREMAKING, 15));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 15),
|
||||
new SkillRequirement(Skill.FIREMAKING, 15));
|
||||
|
||||
// MEDIUM
|
||||
add("Slay a Brine rat.",
|
||||
new Requirement(Skill.SLAYER, 47));
|
||||
new SkillRequirement(Skill.SLAYER, 47),
|
||||
new QuestRequirement(Quest.OLAFS_QUEST, true));
|
||||
add("Travel to the Snowy Hunter Area via Eagle.",
|
||||
new QuestRequirement(Quest.EAGLES_PEAK));
|
||||
add("Mine some coal in Rellekka.",
|
||||
new Requirement(Skill.MINING, 30));
|
||||
new SkillRequirement(Skill.MINING, 30),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS));
|
||||
add("Steal from the Rellekka Fish stalls.",
|
||||
new Requirement(Skill.THIEVING, 42));
|
||||
new SkillRequirement(Skill.THIEVING, 42),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS));
|
||||
add("Travel to Miscellania by Fairy ring.",
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS),
|
||||
new QuestRequirement(Quest.FAIRYTALE_II__CURE_A_QUEEN, true));
|
||||
add("Catch a Snowy knight.",
|
||||
new Requirement(Skill.HUNTER, 35));
|
||||
new SkillRequirement(Skill.HUNTER, 35));
|
||||
add("Pick up your Pet Rock from your POH Menagerie.",
|
||||
new Requirement(Skill.CONSTRUCTION, 37));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 37),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS));
|
||||
add("Visit the Lighthouse from Waterbirth island.",
|
||||
new QuestRequirement(Quest.HORROR_FROM_THE_DEEP),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_TRIALS, true));
|
||||
add("Mine some gold at the Arzinian mine.",
|
||||
new Requirement(Skill.MINING, 40));
|
||||
new SkillRequirement(Skill.MINING, 40),
|
||||
new QuestRequirement(Quest.BETWEEN_A_ROCK, true));
|
||||
|
||||
// HARD
|
||||
add("Teleport to Trollheim.",
|
||||
new Requirement(Skill.MAGIC, 61));
|
||||
new SkillRequirement(Skill.MAGIC, 61),
|
||||
new QuestRequirement(Quest.EADGARS_RUSE));
|
||||
add("Catch a Sabre-toothed Kyatt.",
|
||||
new Requirement(Skill.HUNTER, 55));
|
||||
new SkillRequirement(Skill.HUNTER, 55));
|
||||
add("Mix a super defence potion in the Fremennik province.",
|
||||
new Requirement(Skill.HERBLORE, 66));
|
||||
new SkillRequirement(Skill.HERBLORE, 66));
|
||||
add("Steal from the Keldagrim Gem Stall.",
|
||||
new Requirement(Skill.THIEVING, 75));
|
||||
new SkillRequirement(Skill.THIEVING, 75),
|
||||
new QuestRequirement(Quest.THE_GIANT_DWARF, true));
|
||||
add("Craft a Fremennik shield on Neitiznot.",
|
||||
new Requirement(Skill.WOODCUTTING, 56));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 56),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_ISLES));
|
||||
add("Mine 5 Adamantite ores on Jatizso.",
|
||||
new Requirement(Skill.MINING, 70));
|
||||
new SkillRequirement(Skill.MINING, 70),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_ISLES));
|
||||
add("Obtain 100% support from your kingdom subjects.",
|
||||
new QuestRequirement(Quest.THRONE_OF_MISCELLANIA));
|
||||
add("Teleport to Waterbirth Island.",
|
||||
new Requirement(Skill.MAGIC, 72));
|
||||
new SkillRequirement(Skill.MAGIC, 72),
|
||||
new QuestRequirement(Quest.LUNAR_DIPLOMACY));
|
||||
add("Obtain the Blast Furnace Foreman's permission to use the Blast Furnace for free.",
|
||||
new Requirement(Skill.SMITHING, 60));
|
||||
new SkillRequirement(Skill.SMITHING, 60),
|
||||
new QuestRequirement(Quest.THE_GIANT_DWARF, true));
|
||||
|
||||
// ELITE
|
||||
add("Craft 56 astral runes at once.",
|
||||
new Requirement(Skill.RUNECRAFT, 82));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 82),
|
||||
new QuestRequirement(Quest.LUNAR_DIPLOMACY));
|
||||
add("Create a dragonstone amulet in the Neitiznot furnace.",
|
||||
new Requirement(Skill.CRAFTING, 80));
|
||||
new SkillRequirement(Skill.CRAFTING, 80),
|
||||
new QuestRequirement(Quest.THE_FREMENNIK_ISLES, true));
|
||||
add("Complete a lap of the Rellekka agility course.",
|
||||
new Requirement(Skill.AGILITY, 80));
|
||||
new SkillRequirement(Skill.AGILITY, 80));
|
||||
add("Kill each of the Godwars generals.",
|
||||
new Requirement(Skill.AGILITY, 70),
|
||||
new Requirement(Skill.STRENGTH, 70),
|
||||
new Requirement(Skill.HITPOINTS, 70),
|
||||
new Requirement(Skill.RANGED, 70));
|
||||
new SkillRequirement(Skill.AGILITY, 70),
|
||||
new SkillRequirement(Skill.STRENGTH, 70),
|
||||
new SkillRequirement(Skill.HITPOINTS, 70),
|
||||
new SkillRequirement(Skill.RANGED, 70),
|
||||
new QuestRequirement(Quest.TROLL_STRONGHOLD));
|
||||
add("Slay a Spiritual mage within the Godwars Dungeon.",
|
||||
new Requirement(Skill.SLAYER, 83));
|
||||
new SkillRequirement(Skill.SLAYER, 83),
|
||||
new QuestRequirement(Quest.TROLL_STRONGHOLD));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class KandarinDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,78 +37,91 @@ public class KandarinDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Catch a Mackerel at Catherby.",
|
||||
new Requirement(Skill.FISHING, 16));
|
||||
new SkillRequirement(Skill.FISHING, 16));
|
||||
add("Plant some Jute seeds in the patch north of McGrubor's Wood.",
|
||||
new Requirement(Skill.FARMING, 13));
|
||||
new SkillRequirement(Skill.FARMING, 13));
|
||||
add("Defeat on of each elemental in the workshop.",
|
||||
new QuestRequirement(Quest.ELEMENTAL_WORKSHOP_I, true));
|
||||
add("Cross the Coal truck log shortcut.",
|
||||
new Requirement(Skill.AGILITY, 20));
|
||||
new SkillRequirement(Skill.AGILITY, 20));
|
||||
|
||||
// MEDIUM
|
||||
add("Complete a lap of the Barbarian agility course.",
|
||||
new Requirement(Skill.AGILITY, 35));
|
||||
new SkillRequirement(Skill.AGILITY, 35),
|
||||
new QuestRequirement(Quest.ALFRED_GRIMHANDS_BARCRAWL));
|
||||
add("Create a Super Antipoison potion from scratch in the Seers/Catherby Area.",
|
||||
new Requirement(Skill.HERBLORE, 48));
|
||||
new SkillRequirement(Skill.HERBLORE, 48));
|
||||
add("Enter the Ranging guild.",
|
||||
new Requirement(Skill.RANGED, 40));
|
||||
new SkillRequirement(Skill.RANGED, 40));
|
||||
add("Use the grapple shortcut to get from the water obelisk to Catherby shore.",
|
||||
new Requirement(Skill.AGILITY, 36),
|
||||
new Requirement(Skill.STRENGTH, 22),
|
||||
new Requirement(Skill.RANGED, 39));
|
||||
new SkillRequirement(Skill.AGILITY, 36),
|
||||
new SkillRequirement(Skill.STRENGTH, 22),
|
||||
new SkillRequirement(Skill.RANGED, 39));
|
||||
add("Catch and cook a Bass in Catherby.",
|
||||
new Requirement(Skill.FISHING, 46),
|
||||
new Requirement(Skill.COOKING, 43));
|
||||
new SkillRequirement(Skill.FISHING, 46),
|
||||
new SkillRequirement(Skill.COOKING, 43));
|
||||
add("Teleport to Camelot.",
|
||||
new Requirement(Skill.MAGIC, 45));
|
||||
new SkillRequirement(Skill.MAGIC, 45));
|
||||
add("String a Maple shortbow in Seers' Village bank.",
|
||||
new Requirement(Skill.FLETCHING, 50));
|
||||
new SkillRequirement(Skill.FLETCHING, 50));
|
||||
add("Pick some Limpwurt root from the farming patch in Catherby.",
|
||||
new Requirement(Skill.FARMING, 26));
|
||||
new SkillRequirement(Skill.FARMING, 26));
|
||||
add("Create a Mind helmet.",
|
||||
new QuestRequirement(Quest.ELEMENTAL_WORKSHOP_II));
|
||||
add("Kill a Fire Giant inside Baxtorian Waterfall.",
|
||||
new QuestRequirement(Quest.WATERFALL_QUEST, true));
|
||||
add("Steal from the chest in Hemenster.",
|
||||
new Requirement(Skill.THIEVING, 47));
|
||||
new SkillRequirement(Skill.THIEVING, 47));
|
||||
add("Travel to McGrubor's Wood by Fairy Ring.",
|
||||
new QuestRequirement(Quest.FAIRYTALE_II__CURE_A_QUEEN, true));
|
||||
add("Mine some coal near the coal trucks.",
|
||||
new Requirement(Skill.MINING, 30));
|
||||
new SkillRequirement(Skill.MINING, 30));
|
||||
|
||||
// HARD
|
||||
add("Catch a Leaping Sturgeon.",
|
||||
new Requirement(Skill.FISHING, 70),
|
||||
new Requirement(Skill.AGILITY, 45),
|
||||
new Requirement(Skill.STRENGTH, 45));
|
||||
new SkillRequirement(Skill.FISHING, 70),
|
||||
new SkillRequirement(Skill.AGILITY, 45),
|
||||
new SkillRequirement(Skill.STRENGTH, 45));
|
||||
add("Complete a lap of the Seers' Village agility course.",
|
||||
new Requirement(Skill.AGILITY, 60));
|
||||
new SkillRequirement(Skill.AGILITY, 60));
|
||||
add("Create a Yew Longbow from scratch around Seers' Village.",
|
||||
new Requirement(Skill.WOODCUTTING, 60),
|
||||
new Requirement(Skill.FLETCHING, 70),
|
||||
new Requirement(Skill.CRAFTING, 10));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 60),
|
||||
new SkillRequirement(Skill.FLETCHING, 70),
|
||||
new SkillRequirement(Skill.CRAFTING, 10));
|
||||
add("Enter the Seers' Village courthouse with piety turned on.",
|
||||
new Requirement(Skill.PRAYER, 70),
|
||||
new Requirement(Skill.DEFENCE, 70));
|
||||
new SkillRequirement(Skill.PRAYER, 70),
|
||||
new SkillRequirement(Skill.DEFENCE, 70),
|
||||
new QuestRequirement(Quest.KINGS_RANSOM));
|
||||
add("Charge a Water Orb.",
|
||||
new Requirement(Skill.MAGIC, 56));
|
||||
new SkillRequirement(Skill.MAGIC, 56));
|
||||
add("Burn some Maple logs with a bow in Seers' Village.",
|
||||
new Requirement(Skill.FIREMAKING, 65));
|
||||
new SkillRequirement(Skill.FIREMAKING, 65));
|
||||
add("Purchase and equip a granite body from Barbarian Assault.",
|
||||
new Requirement(Skill.STRENGTH, 50),
|
||||
new Requirement(Skill.DEFENCE, 50));
|
||||
new SkillRequirement(Skill.STRENGTH, 50),
|
||||
new SkillRequirement(Skill.DEFENCE, 50));
|
||||
add("Have the Seers' estate agent decorate your house with Fancy Stone.",
|
||||
new Requirement(Skill.CONSTRUCTION, 50));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 50));
|
||||
add("Smith an Adamant spear at Otto's Grotto.",
|
||||
new Requirement(Skill.SMITHING, 75));
|
||||
new SkillRequirement(Skill.SMITHING, 75),
|
||||
new QuestRequirement(Quest.TAI_BWO_WANNAI_TRIO));
|
||||
|
||||
// ELITE
|
||||
add("Pick some Dwarf weed from the herb patch at Catherby.",
|
||||
new Requirement(Skill.FARMING, 79));
|
||||
new SkillRequirement(Skill.FARMING, 79));
|
||||
add("Fish and Cook 5 Sharks in Catherby using the Cooking gauntlets.",
|
||||
new Requirement(Skill.FISHING, 76),
|
||||
new Requirement(Skill.COOKING, 80));
|
||||
new SkillRequirement(Skill.FISHING, 76),
|
||||
new SkillRequirement(Skill.COOKING, 80),
|
||||
new QuestRequirement(Quest.FAMILY_CREST));
|
||||
add("Mix a Stamina Mix on top of the Seers' Village bank.",
|
||||
new Requirement(Skill.HERBLORE, 86),
|
||||
new Requirement(Skill.AGILITY, 60));
|
||||
new SkillRequirement(Skill.HERBLORE, 86),
|
||||
new SkillRequirement(Skill.AGILITY, 60));
|
||||
add("Smith a Rune Hasta at Otto's Grotto.",
|
||||
new Requirement(Skill.SMITHING, 90));
|
||||
new SkillRequirement(Skill.SMITHING, 90));
|
||||
add("Construct a Pyre ship from Magic Logs.(Requires Chewed Bones.)",
|
||||
new Requirement(Skill.FIREMAKING, 85),
|
||||
new Requirement(Skill.CRAFTING, 85));
|
||||
new SkillRequirement(Skill.FIREMAKING, 85),
|
||||
new SkillRequirement(Skill.CRAFTING, 85));
|
||||
add("Teleport to Catherby.",
|
||||
new Requirement(Skill.MAGIC, 87));
|
||||
new SkillRequirement(Skill.MAGIC, 87),
|
||||
new QuestRequirement(Quest.LUNAR_DIPLOMACY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,13 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.CombatLevelRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.OrRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class KaramjaDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -36,70 +40,98 @@ public class KaramjaDiaryRequirement extends GenericDiaryRequirement
|
||||
// EASY
|
||||
add("Use the rope swing to travel to the small island north-west of Karamja, where the " +
|
||||
"moss giants are.",
|
||||
new Requirement(Skill.AGILITY, 10));
|
||||
new SkillRequirement(Skill.AGILITY, 10));
|
||||
add("Mine some gold from the rocks on the north-west peninsula of Karamja.",
|
||||
new Requirement(Skill.MINING, 40));
|
||||
new SkillRequirement(Skill.MINING, 40));
|
||||
add("Explore Cairn Island to the west of Karamja.",
|
||||
new Requirement(Skill.AGILITY, 15));
|
||||
new SkillRequirement(Skill.AGILITY, 15));
|
||||
|
||||
// MEDIUM
|
||||
add("Claim a ticket from the Agility Arena in Brimhaven.",
|
||||
new Requirement(Skill.AGILITY, 30));
|
||||
new SkillRequirement(Skill.AGILITY, 30));
|
||||
add("Discover hidden wall in the dungeon below the volcano.",
|
||||
new QuestRequirement(Quest.DRAGON_SLAYER, true));
|
||||
add("Visit the Isle of Crandor via the dungeon below the volcano.",
|
||||
new QuestRequirement(Quest.DRAGON_SLAYER, true));
|
||||
add("Use Vigroy and Hajedy's cart service.",
|
||||
new QuestRequirement(Quest.SHILO_VILLAGE));
|
||||
add("Earn 100% favour in the village of Tai Bwo Wannai.",
|
||||
new Requirement(Skill.WOODCUTTING, 10));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 10),
|
||||
new QuestRequirement(Quest.JUNGLE_POTION));
|
||||
add("Cook a spider on a stick.",
|
||||
new Requirement(Skill.COOKING, 16));
|
||||
new SkillRequirement(Skill.COOKING, 16));
|
||||
add("Charter the Lady of the Waves from Cairn Isle to Port Khazard.",
|
||||
new QuestRequirement(Quest.SHILO_VILLAGE));
|
||||
add("Cut a log from a teak tree.",
|
||||
new Requirement(Skill.WOODCUTTING, 35));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 35),
|
||||
new QuestRequirement(Quest.JUNGLE_POTION));
|
||||
add("Cut a log from a mahogany tree.",
|
||||
new Requirement(Skill.WOODCUTTING, 50));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 50),
|
||||
new QuestRequirement(Quest.JUNGLE_POTION));
|
||||
add("Catch a karambwan.",
|
||||
new Requirement(Skill.FISHING, 65));
|
||||
new SkillRequirement(Skill.FISHING, 65),
|
||||
new QuestRequirement(Quest.TAI_BWO_WANNAI_TRIO, true));
|
||||
add("Exchange gems for a machete.",
|
||||
new QuestRequirement(Quest.JUNGLE_POTION));
|
||||
add("Use the gnome glider to travel to Karamja.",
|
||||
new QuestRequirement(Quest.THE_GRAND_TREE));
|
||||
add("Grow a healthy fruit tree in the patch near Brimhaven.",
|
||||
new Requirement(Skill.FARMING, 27));
|
||||
new SkillRequirement(Skill.FARMING, 27));
|
||||
add("Trap a horned graahk.",
|
||||
new Requirement(Skill.HUNTER, 41));
|
||||
new SkillRequirement(Skill.HUNTER, 41));
|
||||
add("Chop the vines to gain deeper access to Brimhaven Dungeon.",
|
||||
new Requirement(Skill.WOODCUTTING, 10));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 10));
|
||||
add("Cross the lava using the stepping stones within Brimhaven Dungeon.",
|
||||
new Requirement(Skill.AGILITY, 12));
|
||||
new SkillRequirement(Skill.AGILITY, 12));
|
||||
add("Climb the stairs within Brimhaven Dungeon.",
|
||||
new Requirement(Skill.WOODCUTTING, 10));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 10));
|
||||
add("Charter a ship from the shipyard in the far east of Karamja.",
|
||||
new QuestRequirement(Quest.THE_GRAND_TREE));
|
||||
add("Mine a red topaz from a gem rock.",
|
||||
new Requirement(Skill.MINING, 40));
|
||||
new SkillRequirement(Skill.MINING, 40),
|
||||
new OrRequirement(
|
||||
new QuestRequirement(Quest.SHILO_VILLAGE),
|
||||
new QuestRequirement(Quest.JUNGLE_POTION)
|
||||
)
|
||||
);
|
||||
|
||||
// HARD
|
||||
add("Craft some nature runes.",
|
||||
new Requirement(Skill.RUNECRAFT, 44));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 44),
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Cook a karambwan thoroughly.",
|
||||
new Requirement(Skill.COOKING, 30));
|
||||
new SkillRequirement(Skill.COOKING, 30),
|
||||
new QuestRequirement(Quest.TAI_BWO_WANNAI_TRIO));
|
||||
add("Kill a deathwing in the dungeon under the Kharazi Jungle.",
|
||||
new Requirement(Skill.WOODCUTTING, 15),
|
||||
new Requirement(Skill.STRENGTH, 50),
|
||||
new Requirement(Skill.AGILITY, 50),
|
||||
new Requirement(Skill.THIEVING, 50),
|
||||
new Requirement(Skill.MINING, 52));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 15),
|
||||
new SkillRequirement(Skill.STRENGTH, 50),
|
||||
new SkillRequirement(Skill.AGILITY, 50),
|
||||
new SkillRequirement(Skill.THIEVING, 50),
|
||||
new SkillRequirement(Skill.MINING, 52),
|
||||
new QuestRequirement(Quest.LEGENDS_QUEST));
|
||||
add("Use the crossbow short cut south of the volcano.",
|
||||
new Requirement(Skill.AGILITY, 53),
|
||||
new Requirement(Skill.RANGED, 42),
|
||||
new Requirement(Skill.STRENGTH, 21));
|
||||
new SkillRequirement(Skill.AGILITY, 53),
|
||||
new SkillRequirement(Skill.RANGED, 42),
|
||||
new SkillRequirement(Skill.STRENGTH, 21));
|
||||
add("Collect 5 palm leaves.",
|
||||
new Requirement(Skill.WOODCUTTING, 15));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 15),
|
||||
new QuestRequirement(Quest.LEGENDS_QUEST));
|
||||
add("Be assigned a Slayer task by Duradel north of Shilo Village.",
|
||||
new Requirement("Combat", 100),
|
||||
new Requirement(Skill.SLAYER, 50));
|
||||
new CombatLevelRequirement(100),
|
||||
new SkillRequirement(Skill.SLAYER, 50),
|
||||
new QuestRequirement(Quest.SHILO_VILLAGE));
|
||||
add("Kill a metal dragon in Brimhaven Dungeon.",
|
||||
new Requirement(Skill.AGILITY, 12),
|
||||
new Requirement(Skill.WOODCUTTING, 34));
|
||||
new SkillRequirement(Skill.AGILITY, 12),
|
||||
new SkillRequirement(Skill.WOODCUTTING, 34));
|
||||
|
||||
// ELITE
|
||||
add("Craft 56 Nature runes at once.",
|
||||
new Requirement(Skill.RUNECRAFT, 91));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 91));
|
||||
add("Check the health of a palm tree in Brimhaven.",
|
||||
new Requirement(Skill.FARMING, 68));
|
||||
new SkillRequirement(Skill.FARMING, 68));
|
||||
add("Create an antivenom potion whilst standing in the horse shoe mine.",
|
||||
new Requirement(Skill.HERBLORE, 87));
|
||||
new SkillRequirement(Skill.HERBLORE, 87));
|
||||
add("Check the health of your Calquat tree patch.",
|
||||
new Requirement(Skill.FARMING, 72));
|
||||
new SkillRequirement(Skill.FARMING, 72));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,12 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.CombatLevelRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class LumbridgeDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,76 +38,98 @@ public class LumbridgeDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Complete a lap of the Draynor Village agility course.",
|
||||
new Requirement(Skill.AGILITY, 10));
|
||||
new SkillRequirement(Skill.AGILITY, 10));
|
||||
add("Slay a Cave bug beneath Lumbridge Swamp.",
|
||||
new Requirement(Skill.SLAYER, 7));
|
||||
new SkillRequirement(Skill.SLAYER, 7));
|
||||
add("Have Sedridor teleport you to the Essence Mine.",
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Craft some water runes.",
|
||||
new Requirement(Skill.RUNECRAFT, 5));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 5),
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Chop and burn some oak logs in Lumbridge.",
|
||||
new Requirement(Skill.WOODCUTTING, 15),
|
||||
new Requirement(Skill.FIREMAKING, 15));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 15),
|
||||
new SkillRequirement(Skill.FIREMAKING, 15));
|
||||
add("Catch some Anchovies in Al Kharid.",
|
||||
new Requirement(Skill.FISHING, 15));
|
||||
new SkillRequirement(Skill.FISHING, 15));
|
||||
add("Bake some Bread on the Lumbridge kitchen range.",
|
||||
new QuestRequirement(Quest.COOKS_ASSISTANT));
|
||||
add("Mine some Iron ore at the Al Kharid mine.",
|
||||
new Requirement(Skill.MINING, 15));
|
||||
new SkillRequirement(Skill.MINING, 15));
|
||||
|
||||
// MEDIUM
|
||||
add("Complete a lap of the Al Kharid agility course.",
|
||||
new Requirement(Skill.AGILITY, 20));
|
||||
new SkillRequirement(Skill.AGILITY, 20));
|
||||
add("Grapple across the River Lum.",
|
||||
new Requirement(Skill.AGILITY, 8),
|
||||
new Requirement(Skill.STRENGTH, 19),
|
||||
new Requirement(Skill.RANGED, 37));
|
||||
new SkillRequirement(Skill.AGILITY, 8),
|
||||
new SkillRequirement(Skill.STRENGTH, 19),
|
||||
new SkillRequirement(Skill.RANGED, 37));
|
||||
add("Purchase an upgraded device from Ava.",
|
||||
new Requirement(Skill.RANGED, 50));
|
||||
new SkillRequirement(Skill.RANGED, 50),
|
||||
new QuestRequirement(Quest.ANIMAL_MAGNETISM));
|
||||
add("Travel to the Wizards' Tower by Fairy ring.",
|
||||
new QuestRequirement(Quest.FAIRYTALE_II__CURE_A_QUEEN, true));
|
||||
add("Cast the teleport to Lumbridge spell.",
|
||||
new Requirement(Skill.MAGIC, 31));
|
||||
new SkillRequirement(Skill.MAGIC, 31));
|
||||
add("Catch some Salmon in Lumbridge.",
|
||||
new Requirement(Skill.FISHING, 30));
|
||||
new SkillRequirement(Skill.FISHING, 30));
|
||||
add("Craft a coif in the Lumbridge cow pen.",
|
||||
new Requirement(Skill.CRAFTING, 38));
|
||||
add("Get a slayer task from Chaeldar.",
|
||||
new Requirement("Combat", 70));
|
||||
new SkillRequirement(Skill.CRAFTING, 38));
|
||||
add("Chop some willow logs in Draynor Village.",
|
||||
new Requirement(Skill.WOODCUTTING, 30));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 30));
|
||||
add("Pickpocket Martin the Master Gardener.",
|
||||
new Requirement(Skill.THIEVING, 38));
|
||||
new SkillRequirement(Skill.THIEVING, 38));
|
||||
add("Get a slayer task from Chaeldar.",
|
||||
new CombatLevelRequirement(70),
|
||||
new QuestRequirement(Quest.LOST_CITY));
|
||||
add("Catch an Essence or Eclectic impling in Puro-Puro.",
|
||||
new Requirement(Skill.HUNTER, 42));
|
||||
new SkillRequirement(Skill.HUNTER, 42),
|
||||
new QuestRequirement(Quest.LOST_CITY));
|
||||
add("Craft some Lava runes at the fire altar in Al Kharid.",
|
||||
new Requirement(Skill.RUNECRAFT, 23));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 23),
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
|
||||
// HARD
|
||||
add("Cast Bones to Peaches in Al Kharid palace.",
|
||||
new Requirement(Skill.MAGIC, 60));
|
||||
new SkillRequirement(Skill.MAGIC, 60));
|
||||
add("Squeeze past the jutting wall on your way to the cosmic altar.",
|
||||
new Requirement(Skill.AGILITY, 46));
|
||||
new SkillRequirement(Skill.AGILITY, 46),
|
||||
new QuestRequirement(Quest.LOST_CITY));
|
||||
add("Craft 56 Cosmic runes simultaneously.",
|
||||
new Requirement(Skill.RUNECRAFT, 59));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 59),
|
||||
new QuestRequirement(Quest.LOST_CITY));
|
||||
add("Travel from Lumbridge to Edgeville on a Waka Canoe.",
|
||||
new Requirement(Skill.WOODCUTTING, 57));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 57));
|
||||
add("Collect at least 100 Tears of Guthix in one visit.",
|
||||
new QuestRequirement(Quest.TEARS_OF_GUTHIX));
|
||||
add("Take the train from Dorgesh-Kaan to Keldagrim.",
|
||||
new QuestRequirement(Quest.ANOTHER_SLICE_OF_HAM));
|
||||
add("Purchase some Barrows gloves from the Lumbridge bank chest.",
|
||||
new QuestRequirement(Quest.RECIPE_FOR_DISASTER));
|
||||
add("Pick some Belladonna from the farming patch at Draynor Manor.",
|
||||
new Requirement(Skill.FARMING, 63));
|
||||
new SkillRequirement(Skill.FARMING, 63));
|
||||
add("Light your mining helmet in the Lumbridge castle basement.",
|
||||
new Requirement(Skill.FIREMAKING, 65));
|
||||
new SkillRequirement(Skill.FIREMAKING, 65));
|
||||
add("Recharge your prayer at Clan Wars with Smite activated.",
|
||||
new Requirement(Skill.PRAYER, 52));
|
||||
new SkillRequirement(Skill.PRAYER, 52));
|
||||
add("Craft, string and enchant an Amulet of Power in Lumbridge.",
|
||||
new Requirement(Skill.CRAFTING, 70),
|
||||
new Requirement(Skill.MAGIC, 57));
|
||||
new SkillRequirement(Skill.CRAFTING, 70),
|
||||
new SkillRequirement(Skill.MAGIC, 57));
|
||||
|
||||
// ELITE
|
||||
add("Steal from a Dorgesh-Kaan rich chest.",
|
||||
new Requirement(Skill.THIEVING, 78));
|
||||
new SkillRequirement(Skill.THIEVING, 78),
|
||||
new QuestRequirement(Quest.DEATH_TO_THE_DORGESHUUN));
|
||||
add("Pickpocket Movario on the Dorgesh-Kaan Agility course.",
|
||||
new Requirement(Skill.AGILITY, 70),
|
||||
new Requirement(Skill.RANGED, 70),
|
||||
new Requirement(Skill.STRENGTH, 70));
|
||||
new SkillRequirement(Skill.AGILITY, 70),
|
||||
new SkillRequirement(Skill.RANGED, 70),
|
||||
new SkillRequirement(Skill.STRENGTH, 70),
|
||||
new QuestRequirement(Quest.DEATH_TO_THE_DORGESHUUN));
|
||||
add("Chop some magic logs at the Mage Training Arena.",
|
||||
new Requirement(Skill.WOODCUTTING, 75));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 75));
|
||||
add("Smith an Adamant platebody down Draynor sewer.",
|
||||
new Requirement(Skill.SMITHING, 88));
|
||||
new SkillRequirement(Skill.SMITHING, 88));
|
||||
add("Craft 140 or more Water runes at once.",
|
||||
new Requirement(Skill.RUNECRAFT, 76));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 76),
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,13 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.CombatLevelRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.OrRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class MorytaniaDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,75 +39,99 @@ public class MorytaniaDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Craft any Snelm from scratch in Morytania.",
|
||||
new Requirement(Skill.CRAFTING, 15));
|
||||
new SkillRequirement(Skill.CRAFTING, 15));
|
||||
add("Cook a thin Snail on the Port Phasmatys range.",
|
||||
new Requirement(Skill.COOKING, 12));
|
||||
new SkillRequirement(Skill.COOKING, 12));
|
||||
add("Get a slayer task from Mazchna.",
|
||||
new Requirement("Combat", 20));
|
||||
new CombatLevelRequirement(20));
|
||||
add("Kill a Banshee in the Slayer Tower.",
|
||||
new Requirement(Skill.SLAYER, 15));
|
||||
new SkillRequirement(Skill.SLAYER, 15));
|
||||
add("Place a Scarecrow in the Morytania flower patch.",
|
||||
new Requirement(Skill.FARMING, 23));
|
||||
new SkillRequirement(Skill.FARMING, 23));
|
||||
add("Restore your prayer points at the nature altar.",
|
||||
new QuestRequirement(Quest.NATURE_SPIRIT));
|
||||
|
||||
// MEDIUM
|
||||
add("Catch a swamp lizard.",
|
||||
new Requirement(Skill.HUNTER, 29));
|
||||
new SkillRequirement(Skill.HUNTER, 29));
|
||||
add("Complete a lap of the Canifis agility course.",
|
||||
new Requirement(Skill.AGILITY, 40));
|
||||
new SkillRequirement(Skill.AGILITY, 40));
|
||||
add("Obtain some Bark from a Hollow tree.",
|
||||
new Requirement(Skill.WOODCUTTING, 45));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 45));
|
||||
add("Kill a Terror Dog.",
|
||||
new Requirement(Skill.SLAYER, 40));
|
||||
new SkillRequirement(Skill.SLAYER, 40),
|
||||
new QuestRequirement(Quest.LAIR_OF_TARN_RAZORLOR));
|
||||
add("Complete a game of trouble brewing.",
|
||||
new Requirement(Skill.COOKING, 40));
|
||||
new SkillRequirement(Skill.COOKING, 40),
|
||||
new QuestRequirement(Quest.CABIN_FEVER));
|
||||
add("Make a batch of cannonballs at the Port Phasmatys furnace.",
|
||||
new Requirement(Skill.SMITHING, 35));
|
||||
new SkillRequirement(Skill.SMITHING, 35),
|
||||
new QuestRequirement(Quest.DWARF_CANNON),
|
||||
new QuestRequirement(Quest.GHOSTS_AHOY, true));
|
||||
add("Kill a Fever Spider on Braindeath Island.",
|
||||
new Requirement(Skill.SLAYER, 42));
|
||||
new SkillRequirement(Skill.SLAYER, 42),
|
||||
new QuestRequirement(Quest.RUM_DEAL));
|
||||
add("Use an ectophial to return to Port Phasmatys.",
|
||||
new QuestRequirement(Quest.GHOSTS_AHOY));
|
||||
add("Mix a Guthix Balance potion while in Morytania.",
|
||||
new Requirement(Skill.HERBLORE, 36));
|
||||
new SkillRequirement(Skill.HERBLORE, 36),
|
||||
new QuestRequirement(Quest.IN_AID_OF_THE_MYREQUE, true));
|
||||
|
||||
// HARD
|
||||
add("Enter the Kharyrll portal in your POH.",
|
||||
new Requirement(Skill.MAGIC, 66),
|
||||
new Requirement(Skill.CONSTRUCTION, 50));
|
||||
new SkillRequirement(Skill.MAGIC, 66),
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 50),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
add("Climb the advanced spike chain within Slayer Tower.",
|
||||
new Requirement(Skill.AGILITY, 71));
|
||||
new SkillRequirement(Skill.AGILITY, 71));
|
||||
add("Harvest some Watermelon from the Allotment patch on Harmony Island.",
|
||||
new Requirement(Skill.FARMING, 47));
|
||||
new SkillRequirement(Skill.FARMING, 47),
|
||||
new QuestRequirement(Quest.THE_GREAT_BRAIN_ROBBERY, true));
|
||||
add("Chop and burn some mahogany logs on Mos Le'Harmless.",
|
||||
new Requirement(Skill.WOODCUTTING, 50),
|
||||
new Requirement(Skill.FIREMAKING, 50));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 50),
|
||||
new SkillRequirement(Skill.FIREMAKING, 50),
|
||||
new QuestRequirement(Quest.CABIN_FEVER));
|
||||
add("Complete a temple trek with a hard companion.",
|
||||
new QuestRequirement(Quest.IN_AID_OF_THE_MYREQUE));
|
||||
add("Kill a Cave Horror.",
|
||||
new Requirement(Skill.SLAYER, 58));
|
||||
new SkillRequirement(Skill.SLAYER, 58),
|
||||
new QuestRequirement(Quest.CABIN_FEVER));
|
||||
add("Harvest some Bittercap Mushrooms from the patch in Canifis.",
|
||||
new Requirement(Skill.FARMING, 53));
|
||||
new SkillRequirement(Skill.FARMING, 53));
|
||||
add("Pray at the Altar of Nature with Piety activated.",
|
||||
new Requirement(Skill.PRAYER, 70),
|
||||
new Requirement(Skill.DEFENCE, 70));
|
||||
new SkillRequirement(Skill.PRAYER, 70),
|
||||
new SkillRequirement(Skill.DEFENCE, 70),
|
||||
new QuestRequirement(Quest.NATURE_SPIRIT),
|
||||
new QuestRequirement(Quest.KINGS_RANSOM));
|
||||
add("Use the shortcut to get to the bridge over the Salve.",
|
||||
new Requirement(Skill.AGILITY, 65));
|
||||
new SkillRequirement(Skill.AGILITY, 65));
|
||||
add("Mine some Mithril ore in the Abandoned Mine.",
|
||||
new Requirement(Skill.MINING, 55));
|
||||
new SkillRequirement(Skill.MINING, 55),
|
||||
new QuestRequirement(Quest.HAUNTED_MINE));
|
||||
|
||||
// ELITE
|
||||
add("Catch a shark in Burgh de Rott with your bare hands.",
|
||||
new Requirement(Skill.FISHING, 96),
|
||||
new Requirement(Skill.STRENGTH, 76));
|
||||
new SkillRequirement(Skill.FISHING, 96),
|
||||
new SkillRequirement(Skill.STRENGTH, 76),
|
||||
new QuestRequirement(Quest.IN_AID_OF_THE_MYREQUE));
|
||||
add("Cremate any Shade remains on a Magic or Redwood pyre.",
|
||||
new Requirement(Skill.FIREMAKING, 80));
|
||||
new SkillRequirement(Skill.FIREMAKING, 80),
|
||||
new QuestRequirement(Quest.SHADES_OF_MORTTON));
|
||||
add("Fertilize the Morytania herb patch using Lunar Magic.",
|
||||
new Requirement(Skill.MAGIC, 83));
|
||||
new SkillRequirement(Skill.MAGIC, 83),
|
||||
new QuestRequirement(Quest.LUNAR_DIPLOMACY));
|
||||
add("Craft a Black dragonhide body in Canifis bank.",
|
||||
new Requirement(Skill.CRAFTING, 84));
|
||||
new SkillRequirement(Skill.CRAFTING, 84));
|
||||
add("Kill an Abyssal demon in the Slayer Tower.",
|
||||
new Requirement(Skill.SLAYER, 85));
|
||||
new SkillRequirement(Skill.SLAYER, 85));
|
||||
add("Loot the Barrows chest while wearing any complete barrows set.",
|
||||
new Requirement(Skill.DEFENCE, 70),
|
||||
new Requirement(Skill.ATTACK, 70,
|
||||
new Requirement(Skill.STRENGTH, 70),
|
||||
new Requirement(Skill.RANGED, 70),
|
||||
new Requirement(Skill.MAGIC, 70))
|
||||
new SkillRequirement(Skill.DEFENCE, 70),
|
||||
new OrRequirement(
|
||||
new SkillRequirement(Skill.ATTACK, 70),
|
||||
new SkillRequirement(Skill.STRENGTH, 70),
|
||||
new SkillRequirement(Skill.RANGED, 70),
|
||||
new SkillRequirement(Skill.MAGIC, 70)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,71 +25,95 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.CombatLevelRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestPointRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class VarrockDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
public VarrockDiaryRequirement()
|
||||
{
|
||||
// EASY
|
||||
add("Have Aubury teleport you to the Essence mine.",
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Mine some Iron in the south east mining patch near Varrock.",
|
||||
new Requirement(Skill.MINING, 15));
|
||||
new SkillRequirement(Skill.MINING, 15));
|
||||
add("Jump over the fence south of Varrock.",
|
||||
new Requirement(Skill.AGILITY, 13));
|
||||
new SkillRequirement(Skill.AGILITY, 13));
|
||||
add("Spin a bowl on the pottery wheel and fire it in the oven in Barb Village.",
|
||||
new Requirement(Skill.CRAFTING, 8));
|
||||
new SkillRequirement(Skill.CRAFTING, 8));
|
||||
add("Craft some Earth runes.",
|
||||
new Requirement(Skill.RUNECRAFT, 9));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 9));
|
||||
add("Catch some trout in the River Lum at Barbarian Village.",
|
||||
new Requirement(Skill.FISHING, 20));
|
||||
new SkillRequirement(Skill.FISHING, 20));
|
||||
add("Steal from the Tea stall in Varrock.",
|
||||
new Requirement(Skill.THIEVING, 5));
|
||||
new SkillRequirement(Skill.THIEVING, 5));
|
||||
|
||||
// MEDIUM
|
||||
add("Enter the Champions' Guild.",
|
||||
new QuestPointRequirement(32));
|
||||
add("Select a colour for your kitten.",
|
||||
new QuestRequirement(Quest.GARDEN_OF_TRANQUILLITY, true),
|
||||
new QuestRequirement(Quest.GERTRUDES_CAT));
|
||||
add("Use the spirit tree north of Varrock.",
|
||||
new QuestRequirement(Quest.TREE_GNOME_VILLAGE));
|
||||
add("Enter the Tolna dungeon after completing A Soul's Bane.",
|
||||
new QuestRequirement(Quest.A_SOULS_BANE));
|
||||
add("Teleport to the digsite using a Digsite pendant.",
|
||||
new QuestRequirement(Quest.THE_DIG_SITE));
|
||||
add("Cast the teleport to Varrock spell.",
|
||||
new Requirement(Skill.MAGIC, 25));
|
||||
new SkillRequirement(Skill.MAGIC, 25));
|
||||
add("Get a Slayer task from Vannaka.",
|
||||
new Requirement("Combat", 40));
|
||||
new CombatLevelRequirement(40));
|
||||
add("Pick a White tree fruit.",
|
||||
new Requirement(Skill.FARMING, 25));
|
||||
new SkillRequirement(Skill.FARMING, 25),
|
||||
new QuestRequirement(Quest.GARDEN_OF_TRANQUILLITY));
|
||||
add("Use the balloon to travel from Varrock.",
|
||||
new Requirement(Skill.FIREMAKING, 40));
|
||||
new SkillRequirement(Skill.FIREMAKING, 40),
|
||||
new QuestRequirement(Quest.ENLIGHTENED_JOURNEY));
|
||||
add("Complete a lap of the Varrock Agility course.",
|
||||
new Requirement(Skill.AGILITY, 30));
|
||||
new SkillRequirement(Skill.AGILITY, 30));
|
||||
|
||||
// HARD
|
||||
add("Trade furs with the Fancy Dress Seller for a spottier cape and equip it.",
|
||||
new Requirement(Skill.HUNTER, 66));
|
||||
new SkillRequirement(Skill.HUNTER, 66));
|
||||
add("Make a Waka Canoe near Edgeville.",
|
||||
new Requirement(Skill.WOODCUTTING, 57));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 57));
|
||||
add("Teleport to Paddewwa.",
|
||||
new Requirement(Skill.MAGIC, 54));
|
||||
new SkillRequirement(Skill.MAGIC, 54),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
add("Chop some yew logs in Varrock and burn them at the top of the Varrock church.",
|
||||
new Requirement(Skill.WOODCUTTING, 60),
|
||||
new Requirement(Skill.FIREMAKING, 60));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 60),
|
||||
new SkillRequirement(Skill.FIREMAKING, 60));
|
||||
add("Have the Varrock estate agent decorate your house with Fancy Stone.",
|
||||
new Requirement(Skill.CONSTRUCTION, 50));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 50));
|
||||
add("Collect at least 2 yew roots from the Tree patch in Varrock Palace.",
|
||||
new Requirement(Skill.WOODCUTTING, 60),
|
||||
new Requirement(Skill.FARMING, 68));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 60),
|
||||
new SkillRequirement(Skill.FARMING, 68));
|
||||
add("Pray at the altar in Varrock palace with Smite active.",
|
||||
new Requirement(Skill.PRAYER, 52));
|
||||
new SkillRequirement(Skill.PRAYER, 52));
|
||||
add("Squeeze through the obstacle pipe in Edgeville dungeon.",
|
||||
new Requirement(Skill.AGILITY, 51));
|
||||
new SkillRequirement(Skill.AGILITY, 51));
|
||||
|
||||
// ELITE
|
||||
add("Create a super combat potion in Varrock west bank.",
|
||||
new Requirement(Skill.HERBLORE, 90));
|
||||
new SkillRequirement(Skill.HERBLORE, 90),
|
||||
new QuestRequirement(Quest.DRUIDIC_RITUAL));
|
||||
add("Use Lunar magic to make 20 mahogany planks at the Lumberyard.",
|
||||
new Requirement(Skill.MAGIC, 86));
|
||||
new SkillRequirement(Skill.MAGIC, 86),
|
||||
new QuestRequirement(Quest.DREAM_MENTOR));
|
||||
add("Bake a summer pie in the Cooking Guild.",
|
||||
new Requirement(Skill.COOKING, 95));
|
||||
new SkillRequirement(Skill.COOKING, 95));
|
||||
add("Smith and fletch ten rune darts within Varrock.",
|
||||
new Requirement(Skill.SMITHING, 89),
|
||||
new Requirement(Skill.FLETCHING, 81));
|
||||
new SkillRequirement(Skill.SMITHING, 89),
|
||||
new SkillRequirement(Skill.FLETCHING, 81),
|
||||
new QuestRequirement(Quest.THE_TOURIST_TRAP));
|
||||
add("Craft 100 or more earth runes simultaneously.",
|
||||
new Requirement(Skill.RUNECRAFT, 78));
|
||||
new SkillRequirement(Skill.RUNECRAFT, 78),
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,12 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.CombatLevelRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class WesternDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,70 +38,108 @@ public class WesternDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Catch a Copper Longtail.",
|
||||
new Requirement(Skill.HUNTER, 9));
|
||||
new SkillRequirement(Skill.HUNTER, 9));
|
||||
add("Complete a novice game of Pest Control.",
|
||||
new Requirement("Combat", 40));
|
||||
new CombatLevelRequirement(40));
|
||||
add("Mine some Iron Ore near Piscatoris.",
|
||||
new Requirement(Skill.MINING, 15));
|
||||
new SkillRequirement(Skill.MINING, 15));
|
||||
add("Claim any Chompy bird hat from Rantz.",
|
||||
new QuestRequirement(Quest.BIG_CHOMPY_BIRD_HUNTING));
|
||||
add("Have Brimstail teleport you to the Essence mine.",
|
||||
new QuestRequirement(Quest.RUNE_MYSTERIES));
|
||||
add("Fletch an Oak shortbow from the Gnome Stronghold.",
|
||||
new Requirement(Skill.FLETCHING, 20));
|
||||
new SkillRequirement(Skill.FLETCHING, 20));
|
||||
|
||||
// MEDIUM
|
||||
add("Take the agility shortcut from the Grand Tree to Otto's Grotto.",
|
||||
new Requirement(Skill.AGILITY, 37));
|
||||
new SkillRequirement(Skill.AGILITY, 37),
|
||||
new QuestRequirement(Quest.TREE_GNOME_VILLAGE),
|
||||
new QuestRequirement(Quest.THE_GRAND_TREE));
|
||||
add("Travel to the Gnome Stronghold by Spirit Tree.",
|
||||
new QuestRequirement(Quest.TREE_GNOME_VILLAGE));
|
||||
add("Trap a Spined Larupia.",
|
||||
new Requirement(Skill.HUNTER, 31));
|
||||
new SkillRequirement(Skill.HUNTER, 31));
|
||||
add("Fish some Bass on Ape Atoll.",
|
||||
new Requirement(Skill.FISHING, 46));
|
||||
new SkillRequirement(Skill.FISHING, 46),
|
||||
new QuestRequirement(Quest.MONKEY_MADNESS_I, true));
|
||||
add("Chop and burn some teak logs on Ape Atoll.",
|
||||
new Requirement(Skill.WOODCUTTING, 35),
|
||||
new Requirement(Skill.FIREMAKING, 35));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 35),
|
||||
new SkillRequirement(Skill.FIREMAKING, 35),
|
||||
new QuestRequirement(Quest.MONKEY_MADNESS_I));
|
||||
add("Complete an intermediate game of Pest Control.",
|
||||
new Requirement("Combat", 70));
|
||||
new CombatLevelRequirement(70));
|
||||
add("Travel to the Feldip Hills by Gnome Glider.",
|
||||
new QuestRequirement(Quest.ONE_SMALL_FAVOUR),
|
||||
new QuestRequirement(Quest.THE_GRAND_TREE));
|
||||
add("Claim a Chompy bird hat from Rantz after registering at least 125 kills.",
|
||||
new QuestRequirement(Quest.BIG_CHOMPY_BIRD_HUNTING));
|
||||
add("Travel from Eagles' Peak to the Feldip Hills by Eagle.",
|
||||
new QuestRequirement(Quest.EAGLES_PEAK));
|
||||
add("Make a Chocolate Bomb at the Grand Tree.",
|
||||
new Requirement(Skill.COOKING, 42));
|
||||
new SkillRequirement(Skill.COOKING, 42));
|
||||
add("Complete a delivery for the Gnome Restaurant.",
|
||||
new Requirement(Skill.COOKING, 42));
|
||||
new SkillRequirement(Skill.COOKING, 42));
|
||||
add("Turn your small crystal seed into a Crystal saw.",
|
||||
new QuestRequirement(Quest.THE_EYES_OF_GLOUPHRIE));
|
||||
add("Mine some Gold ore underneath the Grand Tree.",
|
||||
new Requirement(Skill.MINING, 40));
|
||||
new SkillRequirement(Skill.MINING, 40),
|
||||
new QuestRequirement(Quest.THE_GRAND_TREE));
|
||||
|
||||
// HARD
|
||||
add("Kill an Elf with a Crystal bow.",
|
||||
new Requirement(Skill.RANGED, 70),
|
||||
new Requirement(Skill.AGILITY, 50));
|
||||
new SkillRequirement(Skill.RANGED, 70),
|
||||
new SkillRequirement(Skill.AGILITY, 50),
|
||||
new QuestRequirement(Quest.ROVING_ELVES));
|
||||
add("Catch and cook a Monkfish in Piscatoris.",
|
||||
new Requirement(Skill.FISHING, 62),
|
||||
new Requirement(Skill.COOKING, 62));
|
||||
new SkillRequirement(Skill.FISHING, 62),
|
||||
new SkillRequirement(Skill.COOKING, 62),
|
||||
new QuestRequirement(Quest.SWAN_SONG));
|
||||
add("Complete a Veteran game of Pest Control.",
|
||||
new Requirement("Combat", 100));
|
||||
new CombatLevelRequirement(100));
|
||||
add("Catch a Dashing Kebbit.",
|
||||
new Requirement(Skill.HUNTER, 69));
|
||||
new SkillRequirement(Skill.HUNTER, 69));
|
||||
add("Complete a lap of the Ape Atoll agility course.",
|
||||
new Requirement(Skill.AGILITY, 48));
|
||||
new SkillRequirement(Skill.AGILITY, 48),
|
||||
new QuestRequirement(Quest.MONKEY_MADNESS_I));
|
||||
add("Chop and burn some Mahogany logs on Ape Atoll.",
|
||||
new Requirement(Skill.WOODCUTTING, 50),
|
||||
new Requirement(Skill.FIREMAKING, 50));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 50),
|
||||
new SkillRequirement(Skill.FIREMAKING, 50),
|
||||
new QuestRequirement(Quest.MONKEY_MADNESS_I));
|
||||
add("Mine some Adamantite ore in Tirannwn.",
|
||||
new Requirement(Skill.MINING, 70));
|
||||
new SkillRequirement(Skill.MINING, 70),
|
||||
new QuestRequirement(Quest.REGICIDE));
|
||||
add("Check the health of your Palm tree in Lletya.",
|
||||
new Requirement(Skill.FARMING, 68));
|
||||
new SkillRequirement(Skill.FARMING, 68),
|
||||
new QuestRequirement(Quest.MOURNINGS_ENDS_PART_I, true));
|
||||
add("Claim a Chompy bird hat from Rantz after registering at least 300 kills.",
|
||||
new QuestRequirement(Quest.BIG_CHOMPY_BIRD_HUNTING));
|
||||
add("Build an Isafdar painting in your POH Quest hall.",
|
||||
new Requirement(Skill.CONSTRUCTION, 65));
|
||||
new SkillRequirement(Skill.CONSTRUCTION, 65),
|
||||
new QuestRequirement(Quest.ROVING_ELVES));
|
||||
add("Kill Zulrah.",
|
||||
new QuestRequirement(Quest.REGICIDE, true));
|
||||
add("Teleport to Ape Atoll.",
|
||||
new Requirement(Skill.MAGIC, 64));
|
||||
new SkillRequirement(Skill.MAGIC, 64),
|
||||
new QuestRequirement(Quest.RECIPE_FOR_DISASTER, true));
|
||||
add("Pickpocket a Gnome.",
|
||||
new Requirement(Skill.THIEVING, 75));
|
||||
new SkillRequirement(Skill.THIEVING, 75),
|
||||
new QuestRequirement(Quest.TREE_GNOME_VILLAGE));
|
||||
|
||||
// ELITE
|
||||
add("Fletch a Magic Longbow in the Elven lands.",
|
||||
new Requirement(Skill.FLETCHING, 85));
|
||||
new SkillRequirement(Skill.FLETCHING, 85),
|
||||
new QuestRequirement(Quest.MOURNINGS_ENDS_PART_I));
|
||||
add("Kill the Thermonuclear Smoke devil (Does not require task).",
|
||||
new Requirement(Skill.SLAYER, 93));
|
||||
new SkillRequirement(Skill.SLAYER, 93));
|
||||
add("Have Prissy Scilla protect your Magic tree.",
|
||||
new Requirement(Skill.FARMING, 75));
|
||||
new SkillRequirement(Skill.FARMING, 75));
|
||||
add("Use the Elven overpass advanced cliffside shortcut.",
|
||||
new Requirement(Skill.AGILITY, 85));
|
||||
new SkillRequirement(Skill.AGILITY, 85),
|
||||
new QuestRequirement(Quest.UNDERGROUND_PASS));
|
||||
add("Claim a Chompy bird hat from Rantz after registering at least 1000 kills.",
|
||||
new QuestRequirement(Quest.BIG_CHOMPY_BIRD_HUNTING));
|
||||
add("Pickpocket an Elf.",
|
||||
new Requirement(Skill.THIEVING, 85));
|
||||
new SkillRequirement(Skill.THIEVING, 85),
|
||||
new QuestRequirement(Quest.MOURNINGS_ENDS_PART_II));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,12 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.Requirement;
|
||||
import net.runelite.client.plugins.achievementdiary.OrRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class WildernessDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
@@ -35,64 +38,74 @@ public class WildernessDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
// EASY
|
||||
add("Cast Low Alchemy at the Fountain of Rune.",
|
||||
new Requirement(Skill.MAGIC, 21));
|
||||
new SkillRequirement(Skill.MAGIC, 21));
|
||||
add("Kill an Earth Warrior in the Wilderness beneath Edgeville.",
|
||||
new Requirement(Skill.AGILITY, 15));
|
||||
new SkillRequirement(Skill.AGILITY, 15));
|
||||
add("Mine some Iron ore in the Wilderness.",
|
||||
new Requirement(Skill.MINING, 15));
|
||||
new SkillRequirement(Skill.MINING, 15));
|
||||
add("Have the Mage of Zamorak teleport you to the Abyss.",
|
||||
new QuestRequirement(Quest.ENTER_THE_ABYSS));
|
||||
|
||||
// MEDIUM
|
||||
add("Mine some Mithril ore in the wilderness.",
|
||||
new Requirement(Skill.MINING, 55));
|
||||
new SkillRequirement(Skill.MINING, 55));
|
||||
add("Chop some yew logs from a fallen Ent.",
|
||||
new Requirement(Skill.WOODCUTTING, 61));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 61));
|
||||
add("Enter the Wilderness Godwars Dungeon.",
|
||||
new Requirement(Skill.AGILITY, 60,
|
||||
new Requirement(Skill.STRENGTH, 60))
|
||||
new OrRequirement(
|
||||
new SkillRequirement(Skill.AGILITY, 60),
|
||||
new SkillRequirement(Skill.STRENGTH, 60)
|
||||
)
|
||||
);
|
||||
add("Complete a lap of the Wilderness Agility course.",
|
||||
new Requirement(Skill.AGILITY, 52));
|
||||
new SkillRequirement(Skill.AGILITY, 52));
|
||||
add("Charge an Earth Orb.",
|
||||
new Requirement(Skill.MAGIC, 60));
|
||||
new SkillRequirement(Skill.MAGIC, 60));
|
||||
add("Kill a Bloodveld in the Wilderness Godwars Dungeon.",
|
||||
new Requirement(Skill.SLAYER, 50));
|
||||
new SkillRequirement(Skill.SLAYER, 50));
|
||||
add("Smith a Golden helmet in the Resource Area.",
|
||||
new Requirement(Skill.SMITHING, 50));
|
||||
new SkillRequirement(Skill.SMITHING, 50),
|
||||
new QuestRequirement(Quest.BETWEEN_A_ROCK, true));
|
||||
|
||||
// HARD
|
||||
add("Cast one of the 3 God spells against another player in the Wilderness.",
|
||||
new Requirement(Skill.MAGIC, 60));
|
||||
new SkillRequirement(Skill.MAGIC, 60),
|
||||
new QuestRequirement(Quest.THE_MAGE_ARENA));
|
||||
add("Charge an Air Orb.",
|
||||
new Requirement(Skill.MAGIC, 66));
|
||||
new SkillRequirement(Skill.MAGIC, 66));
|
||||
add("Catch a Black Salamander in the Wilderness.",
|
||||
new Requirement(Skill.HUNTER, 67));
|
||||
new SkillRequirement(Skill.HUNTER, 67));
|
||||
add("Smith an Adamant scimitar in the Resource Area.",
|
||||
new Requirement(Skill.SMITHING, 75));
|
||||
new SkillRequirement(Skill.SMITHING, 75));
|
||||
add("Take the agility shortcut from Trollheim into the Wilderness.",
|
||||
new Requirement(Skill.AGILITY, 64));
|
||||
new SkillRequirement(Skill.AGILITY, 64),
|
||||
new QuestRequirement(Quest.DEATH_PLATEAU));
|
||||
add("Kill a Spiritual warrior in the Wilderness Godwars Dungeon.",
|
||||
new Requirement(Skill.SLAYER, 68));
|
||||
new SkillRequirement(Skill.SLAYER, 68));
|
||||
add("Fish some Raw Lava Eel in the Wilderness.",
|
||||
new Requirement(Skill.FISHING, 53));
|
||||
new SkillRequirement(Skill.FISHING, 53));
|
||||
|
||||
// ELITE
|
||||
add("Teleport to Ghorrock.",
|
||||
new Requirement(Skill.MAGIC, 96));
|
||||
new SkillRequirement(Skill.MAGIC, 96),
|
||||
new QuestRequirement(Quest.DESERT_TREASURE));
|
||||
add("Fish and Cook a Dark Crab in the Resource Area.",
|
||||
new Requirement(Skill.FISHING, 85),
|
||||
new Requirement(Skill.COOKING, 90));
|
||||
new SkillRequirement(Skill.FISHING, 85),
|
||||
new SkillRequirement(Skill.COOKING, 90));
|
||||
add("Smith a rune scimitar from scratch in the Resource Area.",
|
||||
new Requirement(Skill.MINING, 85),
|
||||
new Requirement(Skill.SMITHING, 90));
|
||||
new SkillRequirement(Skill.MINING, 85),
|
||||
new SkillRequirement(Skill.SMITHING, 90));
|
||||
add("Steal from the Rogues' chest.",
|
||||
new Requirement(Skill.THIEVING, 84));
|
||||
new SkillRequirement(Skill.THIEVING, 84));
|
||||
add("Slay a spiritual mage inside the wilderness Godwars Dungeon.",
|
||||
new Requirement(Skill.SLAYER, 83),
|
||||
new Requirement(Skill.AGILITY, 60,
|
||||
new Requirement(Skill.STRENGTH, 60))
|
||||
new SkillRequirement(Skill.SLAYER, 83),
|
||||
new OrRequirement(
|
||||
new SkillRequirement(Skill.AGILITY, 60),
|
||||
new SkillRequirement(Skill.STRENGTH, 60)
|
||||
)
|
||||
);
|
||||
add("Cut and burn some magic logs in the Resource Area.",
|
||||
new Requirement(Skill.WOODCUTTING, 75),
|
||||
new Requirement(Skill.FIREMAKING, 75));
|
||||
new SkillRequirement(Skill.WOODCUTTING, 75),
|
||||
new SkillRequirement(Skill.FIREMAKING, 75));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user