RuneHive-Game
Loading...
Searching...
No Matches
ClanTask.java
Go to the documentation of this file.
1package com.runehive.content.clanchannel.content;
2
3import com.runehive.content.clanchannel.ClanType;
4import com.runehive.content.clanchannel.channel.ClanChannel;
5import com.runehive.util.Difficulty;
6import com.runehive.util.InclusiveRandom;
7import com.runehive.util.Utility;
8
9import java.util.HashSet;
10import java.util.Set;
11
12import static com.runehive.content.clanchannel.content.ClanTaskKey.*;
13
14/**
15 * Holds all the clan task data.
16 * @author Daniel
17 */
18public enum ClanTask {
19 /** PvP */
20 /* -> Easy <- */
21 KILL_PLAYERS_I(ClanType.PVP, Difficulty.EASY, "Kill % players", PLAYER_KILLING, new InclusiveRandom(10, 25)),
22
23 /* -> Medium <- */
24 KILL_PLAYERS_II(ClanType.PVP, Difficulty.MEDIUM, "Kill % players", PLAYER_KILLING, new InclusiveRandom(25, 50)),
25
26 /* -> Hard <- */
27 KILL_PLAYERS_III(ClanType.PVP, Difficulty.HARD, "Kill % players", PLAYER_KILLING, new InclusiveRandom(50, 125)),
28
29 /** PvM */
30 /* -> Easy <- */
31 KILL_HILL_GIANTS(ClanType.PVM, Difficulty.EASY, "Kill % hill giants", HILL_GIANT, new InclusiveRandom(100, 200)),
32 KILL_ROCK_CRABS(ClanType.PVM, Difficulty.EASY, "Kill % rock crabs", ROCK_CRAB, new InclusiveRandom(100, 200)),
33 KILL_SAND_CRABS(ClanType.PVM, Difficulty.EASY, "Kill % sand crabs", SAND_CRAB, new InclusiveRandom(100, 200)),
34 KILL_GREEN_DRAGONS_I(ClanType.PVM, Difficulty.MEDIUM, "Kill % green dragons", GREEN_DRAGON, new InclusiveRandom(50, 150)),
35 KILL_GHOST(ClanType.PVM, Difficulty.EASY, "Kill % ghosts", GHOST, new InclusiveRandom(100, 200)),
36 KILL_SKELETON(ClanType.PVM, Difficulty.EASY, "Kill % skeletons", SKELETON, new InclusiveRandom(100, 200)),//NEW
37 KILL_BLACK_KNIGHT(ClanType.PVM, Difficulty.EASY, "Kill % black knights", BLACK_KNIGHT, new InclusiveRandom(100, 200)),//NEW
38 KILL_BABY_BLUE_DRAGON(ClanType.PVM, Difficulty.EASY, "Kill % baby blue dragons", BABY_BLUE_DRAGON, new InclusiveRandom(100, 200)),//NEW
39 KILL_BAT(ClanType.PVM, Difficulty.EASY, "Kill % bats", BAT, new InclusiveRandom(100, 200)),//NEW
40 KILL_CHAOS_DWARF(ClanType.PVM, Difficulty.EASY, "Kill % chaos dwarves", CHAOS_DWARF, new InclusiveRandom(100, 200)),//NEW
41 KILL_MAGIC_AXE(ClanType.PVM, Difficulty.EASY, "Kill % magic axes", MAGIC_AXE, new InclusiveRandom(100, 200)),//NEW
42 KILL_CAVE_CRAWLER(ClanType.PVM, Difficulty.EASY, "Kill % cave crawlers", CAVE_CRAWLER, new InclusiveRandom(100, 200)),//NEW
43 KILL_CRAWLING_HAND(ClanType.PVM, Difficulty.EASY, "Kill % crawling hands", CRAWLING_HAND, new InclusiveRandom(100, 200)),//NEW
44 KILL_BANSHEE(ClanType.PVM, Difficulty.EASY, "Kill % banshees", BANSHEE, new InclusiveRandom(100, 200)),//NEW
45 KILL_ICE_FIEND(ClanType.PVM, Difficulty.EASY, "Kill % ice fiends", ICE_FIEND, new InclusiveRandom(100, 200)),//NEW
46
47
48 /* -> Medium <- */
49 KILL_BLACK_DEMONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % black demons", BLACK_DEMON, new InclusiveRandom(150, 250)),
50 KILL_GREATER_DEMONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % greater demons", GREATER_DEMON, new InclusiveRandom(150, 250)),
51 KILL_BLUE_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % blue dragons", BLUE_DRAGON, new InclusiveRandom(151, 250)),
52 KILL_BLACK_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % black dragons", BLACK_DRAGON, new InclusiveRandom(151, 250)),
53 KILL_RED_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % red dragons", RED_DRAGON, new InclusiveRandom(151, 250)),
54 KILL_GREEN_DRAGONS_II(ClanType.PVM, Difficulty.MEDIUM, "Kill % green dragons", GREEN_DRAGON, new InclusiveRandom(151, 250)),
55 KILL_HELLHOUND(ClanType.PVM, Difficulty.MEDIUM, "Kill % hellhounds", HELLHOUND, new InclusiveRandom(150, 250)),//NEW
56 KILL_CAVE_HORROR(ClanType.PVM, Difficulty.MEDIUM, "Kill % cave horrors", CAVE_HORROR, new InclusiveRandom(150, 250)),//NEW
57 KILL_STEEL_DRAGON(ClanType.PVM, Difficulty.MEDIUM, "Kill % steel dragons", STEEL_DRAGON, new InclusiveRandom(150, 250)),//NEW
58 KILL_PYRE_FIEND(ClanType.PVM, Difficulty.MEDIUM, "Kill % pyre fiends", PYRE_FIEND, new InclusiveRandom(150, 250)),//NEW
59 KILL_FIRE_GIANT(ClanType.PVM, Difficulty.MEDIUM, "Kill % fire giants", FIRE_GIANT, new InclusiveRandom(150, 250)),//NEW
60 KILL_BASILISK(ClanType.PVM, Difficulty.MEDIUM, "Kill % basilisks", BASILISK, new InclusiveRandom(150, 250)),//NEW
61 KILL_COCKATRICE(ClanType.PVM, Difficulty.MEDIUM, "Kill % cockatrices", COCKATRICE, new InclusiveRandom(150, 250)),//NEW
62 KILL_DUST_DEVIL(ClanType.PVM, Difficulty.MEDIUM, "Kill % dust devils", DUST_DEVIL, new InclusiveRandom(100, 300)),//NEW
63 KILL_SPIRITUAL_RANGER(ClanType.PVM, Difficulty.MEDIUM, "Kill % spiritual rangers", SPIRITUAL_RANGER, new InclusiveRandom(150, 250)),//NEW
64 KILL_SPIRITUAL_WARRIOR(ClanType.PVM, Difficulty.MEDIUM, "Kill % spiritual warriors", SPIRITUAL_WARRIOR, new InclusiveRandom(150, 250)),//NEW
65 KILL_BLOODVELD(ClanType.PVM, Difficulty.MEDIUM, "Kill % bloodvels", BLOODVELD, new InclusiveRandom(150, 250)),//NEW
66
67 /* -> Hard <- */
68 KILL_ABYSSAL_DEMONS(ClanType.PVM, Difficulty.HARD, "Kill % abyssal demons", ABYSSAL_DEMON, new InclusiveRandom(250, 500)),
69 KILL_SKELETAL_WYVERNS(ClanType.PVM, Difficulty.HARD, "Kill % skeletal wyverns", SKELETAL_WYVERN, new InclusiveRandom(250, 500)),
70 KILL_KING_BLACK_DRAGONS(ClanType.PVM, Difficulty.HARD, "Kill % king black dragons", KING_BLACK_DRAGON, new InclusiveRandom(50, 200)),
71 KILL_SCORPIA(ClanType.PVM, Difficulty.HARD, "Kill % scorpias", SCORPIA, new InclusiveRandom(25, 75)),
72 KILL_VENENATIS(ClanType.PVM, Difficulty.HARD, "Kill % venenatis", VENNANTIS, new InclusiveRandom(25, 75)),
73 KILL_CALLISTO(ClanType.PVM, Difficulty.HARD, "Kill % callistos", CALLISTO, new InclusiveRandom(25, 75)),
74 KILL_CRAZY_ARCHAEOLOGIST(ClanType.PVM, Difficulty.HARD, "Kill % crazy archaeologists", CRAZY_ARCHAEOLOGIST, new InclusiveRandom(50, 200)),
75 KILL_CHAOS_FANATIC(ClanType.PVM, Difficulty.HARD, "Kill % chaos fanatics", CHAOS_FANATIC, new InclusiveRandom(25, 75)),
76// KILL_CHAOS_ELEMENTAL(ClanType.PVM, Difficulty.HARD, "Kill % chaos elementals", CHAOS_ELEMENTAL, new InclusiveRandom(25, 75)),
77 KILL_SPIRITUAL_MAGE(ClanType.PVM, Difficulty.HARD, "Kill % spiritual mages", SPIRITUAL_MAGE, new InclusiveRandom(25, 75)),//NEW
78 KILL_VETION(ClanType.PVM, Difficulty.HARD, "Kill % vet'ions", VETION, new InclusiveRandom(25, 75)),//NEW
79 KILL_MYTHRIL_DRAGON(ClanType.PVM, Difficulty.HARD, "Kill % king black dragons", KING_BLACK_DRAGON, new InclusiveRandom(25, 100)),//NEW
80 KILL_NECHRYAEL(ClanType.PVM, Difficulty.HARD, "Kill % nachryaels", NECHRYAEL, new InclusiveRandom(50, 100)),//NEW
81 KILL_SMOKE_DEVIL(ClanType.PVM, Difficulty.HARD, "Kill % smoke devils", SMOKE_DEVIL, new InclusiveRandom(50, 100)),//NEW
82 KILL_DEMONIC_GORILLA(ClanType.PVM, Difficulty.HARD, "Kill % demonic gorillas", DEMONIC_GORILLA, new InclusiveRandom(50, 100)),//NEW
83 KILL_LIZARD_SHAMAN(ClanType.PVM, Difficulty.HARD, "Kill % lizard shamans", LIZARD_SHAMAN, new InclusiveRandom(50, 100)),//NEW
84 KILL_GENERAL_GRAARDOR(ClanType.PVM, Difficulty.HARD, "Kill % general graardors", GENERAL_GRAARDOR, new InclusiveRandom(25, 75)),//NEW
85 KILL_COMMANDER_ZILYANA(ClanType.PVM, Difficulty.HARD, "Kill % commander zilyanas", COMMANDER_ZILYANA, new InclusiveRandom(25, 75)),//NEW
86 KILL_KREEARRA(ClanType.PVM, Difficulty.HARD, "Kill % kree'arras", KREEARRA, new InclusiveRandom(25, 75)),//NEW
87 KILL_KRIL_TSUTSAROTH(ClanType.PVM, Difficulty.HARD, "Kill % k'ril tsutsaroths", KRIL_TSUTSAROTH, new InclusiveRandom(25, 75)),//NEW
88
89
90 /** Skilling */
91 /* -> Easy <- */
92 THIEVE_FROM_STALL_I(ClanType.SKILLING, Difficulty.EASY, "Thieve from stall % times", THIEVING_STALL, new InclusiveRandom(300, 500)),
93 CHOP_WILLOW(ClanType.SKILLING, Difficulty.EASY, "Chop % willow logs", CHOP_WILLOW_LOG, new InclusiveRandom(300, 500)),
94 COMPLETE_AGILITY_LAP_I(ClanType.SKILLING, Difficulty.EASY, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(300, 500)),
95 BURN_YEW_LOG(ClanType.SKILLING, Difficulty.EASY, "Burn % willow logs", BURN_WILLOW_LOG, new InclusiveRandom(300, 500)),
96
97 /* -> Medium <- */
98 CATCH_SHARK(ClanType.SKILLING, Difficulty.MEDIUM, "Catch % sharks", SHARK, new InclusiveRandom(500, 750)),
99 CHOP_YEW(ClanType.SKILLING, Difficulty.MEDIUM, "Chop % yew logs", YEW_LOG, new InclusiveRandom(500, 750)),
100 FLETCH_YEW_SHORTBOW(ClanType.SKILLING, Difficulty.MEDIUM, "Fletch % yew shortbow", YEW_SHORTBOW, new InclusiveRandom(500, 750)),
101 CRAFT_DEATH_RUNE(ClanType.SKILLING, Difficulty.MEDIUM, "Craft % death runes", DEATH_RUNE, new InclusiveRandom(500, 750)),
102 CREATE_SUPER_RESTORE_POTION(ClanType.SKILLING, Difficulty.MEDIUM, "Create % super restore potions", SUPER_RESTORE_POTION, new InclusiveRandom(500, 750)),
103 COMPLETE_AGILITY_LAP_II(ClanType.SKILLING, Difficulty.MEDIUM, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(500, 750)),
104 THIEVE_FROM_STALL_II(ClanType.SKILLING, Difficulty.MEDIUM, "Thieve from stall % times", THIEVING_STALL, new InclusiveRandom(500, 750)),
105
106 /* -> Hard <- */
107 // SMITH_RUNITE_BAR(ClanType.SKILLING, Difficulty.HARD, "Smith % runite bars", RUNITE_BAR, new InclusiveRandom(600, 900)),
108 FLETCH_MAGIC_SHORTBOW(ClanType.SKILLING, Difficulty.HARD, "Fletch % magic shortbow", MAGIC_SHORTBOW, new InclusiveRandom(1250, 2000)),
109 MINE_RUNITE_ORE(ClanType.SKILLING, Difficulty.HARD, "Mine % runite ores", RUNITE_ORES, new InclusiveRandom(650, 900)),
110// CREATE_SUPER_COMBAT_POTION(ClanType.SKILLING, Difficulty.HARD, "Create % super combat potions", SUPER_COMBAT_POTION, new InclusiveRandom(, 2000)),
111 COMPLETE_AGILITY_LAP_III(ClanType.SKILLING, Difficulty.HARD, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(750, 1000)),
112 CATCH_ANGLERFISH(ClanType.SKILLING, Difficulty.HARD, "Catch % dark crabs", DARK_CRAB, new InclusiveRandom(750, 1000)),
113 CRAFT_BLOOD_RUNE(ClanType.SKILLING, Difficulty.HARD, "Craft % blood runes", BLOOD_RUNE, new InclusiveRandom(750, 1000)),
114 CHOP_MAGIC(ClanType.SKILLING, Difficulty.HARD, "Chop % magic logs", MAGIC_LOG, new InclusiveRandom(600, 800));
115
116 public final String task;
117 public final ClanTaskKey key;
119 public final Difficulty difficulty;
120 public final ClanType type;
121
123 this.task = task;
124 this.key = key;
125 this.amount = amount;
126 this.difficulty = difficulty;
127 this.type = type;
128 }
129
130 public double getProgressExperience() {
131 switch (type) {
132 case PVP:
133 return 1250;
134 case PVM:
135 return difficulty == Difficulty.HARD ? 350 : 50;
136 case SKILLING:
137 return 5;
138 }
139 return 0;
140 }
141
142 public String getName(ClanChannel channel) {
143 return task.replace("%", "" + channel.getDetails().taskAmount);
144 }
145
146 public int getAmount() {
147 return Utility.random(amount.minimum, amount.maximum);
148 }
149
150 public static Set<ClanTask> getTasks(ClanType type, Difficulty difficulty) {
151 Set<ClanTask> tasks = new HashSet<>();
152 for (ClanTask task : values()) {
153 if (task.type == type && task.difficulty == difficulty)
154 tasks.add(task);
155 }
156 return tasks;
157 }
158
160 if (type == ClanType.SOCIAL) {
161 Set<ClanTask> tasks = new HashSet<>();
162 tasks.addAll(getTasks(ClanType.PVM, difficulty));
163 tasks.addAll(getTasks(ClanType.PVP, difficulty));
164 tasks.addAll(getTasks(ClanType.SKILLING, difficulty));
165 return Utility.randomElement(tasks);
166 }
167
168 if (type == ClanType.IRON_MAN) {
169 Set<ClanTask> tasks = new HashSet<>();
170 tasks.addAll(getTasks(ClanType.PVM, difficulty));
171 tasks.addAll(getTasks(ClanType.SKILLING, difficulty));
172 return Utility.randomElement(tasks);
173 }
174
176 }
177
178 public int getReward() {
179 return (difficulty == Difficulty.EASY) ? 2 : (difficulty == Difficulty.MEDIUM) ? 3 : 5;
180 }
181}
Handles miscellaneous methods.
Definition Utility.java:27
static int random(int bound)
Definition Utility.java:239
static< T > T randomElement(Collection< T > collection)
Picks a random element out of any array type.
Definition Utility.java:248
PVM
Clans that are focused on PVM.
Definition ClanType.java:13
IRON_MAN
Clans that are focused on iron man accounts.
Definition ClanType.java:22
PVP
Clans that are focused on PVP.
Definition ClanType.java:10
SKILLING
Clans that are focused on skilling.
Definition ClanType.java:16
SOCIAL
Clans that are focused on socialism.
Definition ClanType.java:19
static ClanTask getAssignment(ClanType type, Difficulty difficulty)
static Set< ClanTask > getTasks(ClanType type, Difficulty difficulty)
ClanTask(ClanType type, Difficulty difficulty, String task, ClanTaskKey key, InclusiveRandom amount)
Created by Daniel on 2017-11-27.