Merge pull request #7219 from Abextm/diary-questreq

achievementdiary: Add Quest support
This commit is contained in:
Abex
2019-01-08 20:21:20 -07:00
committed by GitHub
23 changed files with 1222 additions and 551 deletions

View File

@@ -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";
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}
}

View File

@@ -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);
}
}

View File

@@ -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";
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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)
)
);
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}