Code:
package net.EvoXscape.game.content.achievements;
import java.util.HashMap;
import java.util.Map;
import net.EvoXscape.game.entity.player.Player;
import net.EvoXscape.util.Misc;
/**
* Holds the achievements for the achievement diary
*
*
*/
public enum Achievements {
CUT_50_TREES(1, 1, 113083, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to cut another %s trees."),
KILL_50_ROCK_CRABS(2, 1, 113084, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s rock crabs."),
BURY_50_BONES(3, 1, 113085, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to bury another %s bones."),
GROW_1_POTATO_PLANT(4, 1, 113086, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to grow %s more potato plant."),
DIE_5_TIMES(5, 1, 113087, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to die another %s times."),
BURN_50_LOGS(6, 1, 113088, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to burn another %s logs."),
SUCCESSFULLY_COOK_75_FOOD(7, 1, 113089, 75, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to successfully cook another %s food."),
KILL_2_DHAROK_BROTHERS(8, 1, 113090, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s dharok brothers."),
KILL_2_GUTHANS_BROTHERS(9, 1, 113091, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s guthans brothers."),
KILL_2_VERACS_BROTHERS(10, 1, 113092, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s veracs brothers."),
KILL_2_KARILS_BROTHERS(11, 1, 113093, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s kills brothers."),
KILL_2_AHRIMS_BROTHERS(12, 1, 113094, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s ahrims brothers."),
KILL_2_TORAGS_BROTHERS(13, 1, 113095, 2, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s torags brothers."),
VOTE_5_TIMES(14, 1, 113096, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to vote another %s times."),
CRAFT_100_LEATHER_HIDES(15, 1, 113097, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to craft another %s leather hides."),
CUT_75_GEMS(16, 1, 113098, 75, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to cut another %s gems."),
CATCH_100_FISH(17, 1, 113099, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to catch another %s fish."),
PRAY_AT_THE_SARADOMIN_ALTAR(18, 1, 113100, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to pray at the Saradomin altar."),
PRAY_AT_THE_ZAMORAK_ALTAR(19, 1, 113101, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to pray at the Zamorak altar."),
PRAY_AT_THE_GUTHIX_ALTAR(20, 1, 113102, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to pray at the Guthix altar."),
KILL_50_MOSS_GIANTS(21, 1, 113103, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill another %s moss giants."),
COMPLETE_THE_GNOME_COURSE(22, 1, 113104, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to complete the gnome agility course."),
RECOLOR_AN_ABYSSAL_WHIP(23, 1, 113105, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to recolor an abyssal whip."),
RECOLOR_A_DARK_BOW(24, 1, 113106, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to recolor a dark bow."),
PERFORM_THE_SKILLCAPE_EMOTE(25, 2, 113107, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to preform the skillcape emote."),
CAST_250_ALCHEMY_SPELLS(26, 2, 113108, 250, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to cast 250 alchemy spells."),
KILL_100_PLAYERS_IN_PVP(27, 2, 113109, 250, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 100 players in PvP."),
WIN_10_PEST_CONTROL_GAMES(28, 2, 113110, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to win 10 Pest Control Games."),
WIN_20_ROUNDS_OF_GAMBLING(29, 2, 113111, 10, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to win 20 rounds of gambling."),
KILL_50_REVENANT_HELLHOUNDS(30, 2, 113112, 20, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 50 Revenant Hellhounds."),
CATCH_150_SHARKS(31, 2, 113113, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to catch 150 sharks."),
CUT_AN_ONYX(32, 2, 113114, 150, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to cut an onyx."),
PICKPOCKET_125_NPCS(33, 2, 113115, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to pickpocket 125 NPCs."),
WIN_10_DUELS(34, 2, 113116, 125, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to win 10 duels."),
KILL_THE_KING_BLACK_DRAGON(35, 2, 113117, 10, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill the King Black Dragon."),
KILL_75_BRONZE_DRAGONS(36, 2, 113118, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 75 Bronze Dragons."),
KILL_125_ICE_WOLFS(37, 2, 113119, 75, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 125 Ice Wolfs."),
FIRE_1000_CANNON_SHOTS(38, 2, 113120, 125, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to fire 1000 Cannon Shots."),
SET_A_BANK_PIN(39, 2, 113121, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to set a Bank PIN."),
SMITH_200_GOLD_ITEMS(40, 2, 113122, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to smith 200 gold items."),
CUT_100_MAGIC_TREES(41, 2, 113123, 200, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to cut 100 Magic Trees."),
BURY_150_DRAGON_BONES(42, 2, 113124, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to bury 150 Dragon Bones."),
KILL_50_SARADOMIN_MINIONS(43, 2, 113125, 150, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 50 Saradomin Minions."),
KILL_50_BANDOS_MINIONS(44, 2, 113126, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 50 Bandos Minions."),
KILL_50_ZAMORAK_MINIONS(45, 2, 113127, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 50 Zamorak Minions."),
HEAL_5000_HITPOINTS(46, 2, 113128, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to heal 5000 hitpoints."),
SLAY_1000_ABYSSAL_DEMONS(47, 3, 113129, 5000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to slay 1000 Abyssal Demons."),
DEFEAT_JAD_3_TIMES(48, 3, 113130, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to defeat Jad 3 times."),
KILL_GENERAL_GRAARDOR_5_TIMES(49, 3, 113131, 3, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill General Graardor 5 times."),
KILL_KREE_ARRA_5_TIMES(50, 3, 113132, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to Kill Kree'arra 5 times."),
KILL_COMMANDER_ZILYANA_5_TIMES(51, 3, 113133, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Commander Zilyana 5 times."),
KILL_KRIL_TSUTSAROTH_5_TIMES(52, 3, 113134, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill K'ril Tsutsaroth 5 times."),
SLAY_1000_DARK_BEASTS(53, 3, 113135, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to slay 1000 Dark Beasts."),
KILL_CORPOREAL_BEAST_3_TIMES(54, 3, 113136, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill the Corporeal Beast 3 times."),
SMITH_5_RUNE_SCIMITARS(55, 3, 113137, 3, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to smith 5 rune scimitars."),
KILL_25_TORMENTED_DEMONS(56, 3, 113138, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 25 Tormented Demons."),
CATCH_5_KINGLY_IMPLINGS(57, 3, 113139, 25, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to catch 5 Kingly Implings."),
KILL_200_ARMADYL_MINIONS(58, 3, 113140, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 200 Armadyl Minions."),
OPEN_250_CRYSTAL_CHESTS(59, 3, 113141, 200, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to open 250 Crystal Chests."),
BUY_A_MAXED_CAPE(60, 3, 113142, 250, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to buy a Maxed Cape."),
CRAFT_100_RUNE_ARROWS(61, 3, 113143, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to craft 100 rune arrows."),
CATCH_50_BABY_IMPLINGS(62, 3, 113144, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to catch 50 Baby Implings."),
RUNECRAFT_3000_BLOOD_RUNES(63, 3, 113145, 50, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to runecraft 3000 Blood runes."),
RUNECRAFT_3000_NATURE_RUNES(64, 3, 113146, 3000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to runecraft 3000 Nature runes."),
RUNECRAFT_1500_DEATH_RUNES(65, 3, 113147, 3000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to runecraft 1500 Death runes."),
EXCHANGE_1_ANCIENT_STATUETTE(66, 3, 113148, 1500, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to exchange 1 Ancient Statuette."),
MINE_1000_ORE(67, 3, 113149, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to mine 1000 ore."),
CLEAN_1000_GRIMY_HERBS(68, 3, 113150, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to clean 1000 grimy herbs."),
MAKE_1000_POTIONS(69, 3, 113151, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to make 1000 potions."),
HEAL_20000_HITPOINTS(70, 3, 113152, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to heal 20,000 hitpoints."),
KILL_250_PLAYERS_IN_PVP(71, 4, 113153, 20000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 250 players in PvP."),
KILL_CORPOREAL_BEAST_20_TIMES(72, 4, 113154, 250, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Corporeal Beast 20 times."),
COMPLETE_100_SLAYER_TASKS(73, 4, 113155, 20, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to complete 100 slayer tasks."),
VOTE_20_TIMES(74, 4, 113156, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to vote 20 times."),
KILL_100_REVENANT_ORKS(75, 4, 113157, 20, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 100 Revenant Orks."),
KILL_100_REVENANT_DARK_BEASTS(76, 4, 113158, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 100 Revenant Dark Beasts."),
KILL_175_REVENANT_DEMONS(77, 4, 113159, 100, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 175 Revenant Demons."),
KILL_200_REVENANT_KNIGHTS(78, 4, 113160, 175, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to 200 Revenant Knights."),
MINE_500_RUNITE_ORE(79, 4, 113161, 200, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to mine 500 Runite ore."),
KILL_NOMAD_3_TIMES(80, 4, 113162, 500, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Nomad 3 times."),
PURCHASE_A_COMPLETIONIST_CAPE(81, 4, 113163, 3, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to purchase a Completionist Cape."),
KILL_500_MONKEY_GUARDS(82, 4, 113164, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 500 Monkey Guards."),
KILL_250_FROST_DRAGONS(83, 4, 113165, 500, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 250 Frost Dragons."),
KILL_DAGANNOTH_REX_5_TIMES(84, 4, 113166, 250, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Dagannoth Rex 5 times."),
KILL_DAGANNOTH_PRIME_5_TIMES(85, 4, 113167, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Dagannoth Prime 5 times."),
KILL_DAGANNOTH_SUPREME_5_TIMES(86, 4, 113168, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill Dagannoth Supreme 5 times."),
GET_AN_ABYSSAL_WHIP_DROP(87, 4, 113169, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to get an Abyssal Whip drop."),
GET_A_DARK_BOW_DROP(88, 4, 113170, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to get a Dark Bow drop."),
STEAL_FROM_1000_STALLS(89, 4, 113171, 1, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to steal from 1000 stalls."),
KILL_THE_CHAOS_ELEMENTAL_5_TIMES(90, 4, 113172, 1000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill the Chaos Elemental 5 times."),
DEFEAT_BORK_5_TIMES(91, 4, 113173, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to defeat Bork 5 times."),
DEFEAT_KQ_5_TIMES(92, 4, 113174, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to defeat the KQ 5 times."),
DEFEAT_BARRELCHEST_5_TIMES(93, 4, 113175, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to defeat the Barrelchest 5 times."),
KILL_200_CAVE_HORRORS(94, 4, 113176, 5, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to kill 200 Cave Horrors."),
GAIN_100M_XP(95, 4, 113177, 100_000_000, new AchievementReward() {
@Override
public void giveReward(Player player) {
}
}, "I need to gain 100,000,000 XP."),
;
/**
* Some constant values for the achievement
*/
private final int required, index, button, points;
/**
* The reward for completing the achievement
*/
private final AchievementReward reward;
/**
* The message sent when clicking on the achievement
*/
private final String message;
/**
* Constructs a new {@link Achiements}
*
* @param index
* The index in the list
* @param points
* The points you get for completing the achievement
* @param button
* The action button id
* @param required
* The required amount to complete the achievement
* @param reward
* The reward for completing the achievement
* @param message
* The message sent when clicking on the achievement
*/
private Achievements(int index, int points, int button, int required, AchievementReward reward, String message) {
this.index = index;
this.points = points;
this.button = button;
this.required = required;
this.reward = reward;
this.message = message;
}
/**
* Gets the index of the achievement
*
* @return The index of the achievement
*/
public int index() {
return index;
}
/**
* The points you get for completing this achievement
*
* @return The amount of points you get for completing the achievement
*/
public int getPoints() {
return points;
}
/**
* Gets the required amount to complete the achievement
*
* @return The required amount to complete the achievement
*/
public int getRequired() {
return required;
}
/**
* Gets the reward for completing the achievement
*
* @return The reward for completing the achievement
*/
public AchievementReward getReward() {
return reward;
}
/**
* Gets the message when clicking on the achievement
*
* @return The message for completing the achievement
*/
public String getMessage() {
return message;
}
/**
* A map of achievements based on the button
*/
private static Map<Integer, Achievements> buttons = new HashMap<>();
/**
* A map of achievements based on the title
*/
private static Map<String, Achievements> achievements = new HashMap<>();
static {
for (Achievements a : values()) {
achievements.put(a.toString(), a);
buttons.put(a.button, a);
}
}
/**
* Gets an achievement based on the button clicked
*
* @param id
* The id of the button clicked
* @return The achievement for the button
*/
public static final Achievements get(int id) {
return buttons.get(id);
}
/**
* Gets an achievement based on the key provided
*
* @param key
* The key of the achievement
* @return The achievement for the key
*/
public static final Achievements get(String key) {
return achievements.get(key);
}
/**
* Gets an easy to read title of the achievement
*
* @return an easy to read title of the achievement
*/
public String title() {
return Misc.formatUsername(toString().replaceAll("_", " "));
}
}