RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ClanTask.java
1package com.osroyale.content.clanchannel.content;
2
3import com.osroyale.content.clanchannel.ClanType;
4import com.osroyale.content.clanchannel.channel.ClanChannel;
5import com.osroyale.util.Difficulty;
6import com.osroyale.util.InclusiveRandom;
7import com.osroyale.util.Utility;
8
9import java.util.HashSet;
10import java.util.Set;
11
12import static com.osroyale.content.clanchannel.content.ClanTaskKey.*;
13
69
70public enum ClanTask {
72 /* -> Easy <- */
73 KILL_PLAYERS_I(ClanType.PVP, Difficulty.EASY, "Kill % players", PLAYER_KILLING, new InclusiveRandom(10, 25)),
74
75 /* -> Medium <- */
76 KILL_PLAYERS_II(ClanType.PVP, Difficulty.MEDIUM, "Kill % players", PLAYER_KILLING, new InclusiveRandom(25, 50)),
77
78 /* -> Hard <- */
79 KILL_PLAYERS_III(ClanType.PVP, Difficulty.HARD, "Kill % players", PLAYER_KILLING, new InclusiveRandom(50, 125)),
80
82 /* -> Easy <- */
83 KILL_HILL_GIANTS(ClanType.PVM, Difficulty.EASY, "Kill % hill giants", HILL_GIANT, new InclusiveRandom(100, 200)),
84 KILL_ROCK_CRABS(ClanType.PVM, Difficulty.EASY, "Kill % rock crabs", ROCK_CRAB, new InclusiveRandom(100, 200)),
85 KILL_SAND_CRABS(ClanType.PVM, Difficulty.EASY, "Kill % sand crabs", SAND_CRAB, new InclusiveRandom(100, 200)),
86 KILL_GREEN_DRAGONS_I(ClanType.PVM, Difficulty.MEDIUM, "Kill % green dragons", GREEN_DRAGON, new InclusiveRandom(50, 150)),
87 KILL_GHOST(ClanType.PVM, Difficulty.EASY, "Kill % ghosts", GHOST, new InclusiveRandom(100, 200)),
88 KILL_SKELETON(ClanType.PVM, Difficulty.EASY, "Kill % skeletons", SKELETON, new InclusiveRandom(100, 200)),//NEW
89 KILL_BLACK_KNIGHT(ClanType.PVM, Difficulty.EASY, "Kill % black knights", BLACK_KNIGHT, new InclusiveRandom(100, 200)),//NEW
90 KILL_BABY_BLUE_DRAGON(ClanType.PVM, Difficulty.EASY, "Kill % baby blue dragons", BABY_BLUE_DRAGON, new InclusiveRandom(100, 200)),//NEW
91 KILL_BAT(ClanType.PVM, Difficulty.EASY, "Kill % bats", BAT, new InclusiveRandom(100, 200)),//NEW
92 KILL_CHAOS_DWARF(ClanType.PVM, Difficulty.EASY, "Kill % chaos dwarves", CHAOS_DWARF, new InclusiveRandom(100, 200)),//NEW
93 KILL_MAGIC_AXE(ClanType.PVM, Difficulty.EASY, "Kill % magic axes", MAGIC_AXE, new InclusiveRandom(100, 200)),//NEW
94 KILL_CAVE_CRAWLER(ClanType.PVM, Difficulty.EASY, "Kill % cave crawlers", CAVE_CRAWLER, new InclusiveRandom(100, 200)),//NEW
95 KILL_CRAWLING_HAND(ClanType.PVM, Difficulty.EASY, "Kill % crawling hands", CRAWLING_HAND, new InclusiveRandom(100, 200)),//NEW
96 KILL_BANSHEE(ClanType.PVM, Difficulty.EASY, "Kill % banshees", BANSHEE, new InclusiveRandom(100, 200)),//NEW
97 KILL_ICE_FIEND(ClanType.PVM, Difficulty.EASY, "Kill % ice fiends", ICE_FIEND, new InclusiveRandom(100, 200)),//NEW
98
99
100 /* -> Medium <- */
101 KILL_BLACK_DEMONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % black demons", BLACK_DEMON, new InclusiveRandom(150, 250)),
102 KILL_GREATER_DEMONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % greater demons", GREATER_DEMON, new InclusiveRandom(150, 250)),
103 KILL_BLUE_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % blue dragons", BLUE_DRAGON, new InclusiveRandom(151, 250)),
104 KILL_BLACK_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % black dragons", BLACK_DRAGON, new InclusiveRandom(151, 250)),
105 KILL_RED_DRAGONS(ClanType.PVM, Difficulty.MEDIUM, "Kill % red dragons", RED_DRAGON, new InclusiveRandom(151, 250)),
106 KILL_GREEN_DRAGONS_II(ClanType.PVM, Difficulty.MEDIUM, "Kill % green dragons", GREEN_DRAGON, new InclusiveRandom(151, 250)),
107 KILL_HELLHOUND(ClanType.PVM, Difficulty.MEDIUM, "Kill % hellhounds", HELLHOUND, new InclusiveRandom(150, 250)),//NEW
108 KILL_CAVE_HORROR(ClanType.PVM, Difficulty.MEDIUM, "Kill % cave horrors", CAVE_HORROR, new InclusiveRandom(150, 250)),//NEW
109 KILL_STEEL_DRAGON(ClanType.PVM, Difficulty.MEDIUM, "Kill % steel dragons", STEEL_DRAGON, new InclusiveRandom(150, 250)),//NEW
110 KILL_PYRE_FIEND(ClanType.PVM, Difficulty.MEDIUM, "Kill % pyre fiends", PYRE_FIEND, new InclusiveRandom(150, 250)),//NEW
111 KILL_FIRE_GIANT(ClanType.PVM, Difficulty.MEDIUM, "Kill % fire giants", FIRE_GIANT, new InclusiveRandom(150, 250)),//NEW
112 KILL_BASILISK(ClanType.PVM, Difficulty.MEDIUM, "Kill % basilisks", BASILISK, new InclusiveRandom(150, 250)),//NEW
113 KILL_COCKATRICE(ClanType.PVM, Difficulty.MEDIUM, "Kill % cockatrices", COCKATRICE, new InclusiveRandom(150, 250)),//NEW
114 KILL_DUST_DEVIL(ClanType.PVM, Difficulty.MEDIUM, "Kill % dust devils", DUST_DEVIL, new InclusiveRandom(100, 300)),//NEW
115 KILL_SPIRITUAL_RANGER(ClanType.PVM, Difficulty.MEDIUM, "Kill % spiritual rangers", SPIRITUAL_RANGER, new InclusiveRandom(150, 250)),//NEW
116 KILL_SPIRITUAL_WARRIOR(ClanType.PVM, Difficulty.MEDIUM, "Kill % spiritual warriors", SPIRITUAL_WARRIOR, new InclusiveRandom(150, 250)),//NEW
117 KILL_BLOODVELD(ClanType.PVM, Difficulty.MEDIUM, "Kill % bloodvels", BLOODVELD, new InclusiveRandom(150, 250)),//NEW
118
119 /* -> Hard <- */
120 KILL_ABYSSAL_DEMONS(ClanType.PVM, Difficulty.HARD, "Kill % abyssal demons", ABYSSAL_DEMON, new InclusiveRandom(250, 500)),
121 KILL_SKELETAL_WYVERNS(ClanType.PVM, Difficulty.HARD, "Kill % skeletal wyverns", SKELETAL_WYVERN, new InclusiveRandom(250, 500)),
122 KILL_KING_BLACK_DRAGONS(ClanType.PVM, Difficulty.HARD, "Kill % king black dragons", KING_BLACK_DRAGON, new InclusiveRandom(50, 200)),
123 KILL_SCORPIA(ClanType.PVM, Difficulty.HARD, "Kill % scorpias", SCORPIA, new InclusiveRandom(25, 75)),
124 KILL_VENENATIS(ClanType.PVM, Difficulty.HARD, "Kill % venenatis", VENNANTIS, new InclusiveRandom(25, 75)),
125 KILL_CALLISTO(ClanType.PVM, Difficulty.HARD, "Kill % callistos", CALLISTO, new InclusiveRandom(25, 75)),
126 KILL_CRAZY_ARCHAEOLOGIST(ClanType.PVM, Difficulty.HARD, "Kill % crazy archaeologists", CRAZY_ARCHAEOLOGIST, new InclusiveRandom(50, 200)),
127 KILL_CHAOS_FANATIC(ClanType.PVM, Difficulty.HARD, "Kill % chaos fanatics", CHAOS_FANATIC, new InclusiveRandom(25, 75)),
128// KILL_CHAOS_ELEMENTAL(ClanType.PVM, Difficulty.HARD, "Kill % chaos elementals", CHAOS_ELEMENTAL, new InclusiveRandom(25, 75)),
129 KILL_SPIRITUAL_MAGE(ClanType.PVM, Difficulty.HARD, "Kill % spiritual mages", SPIRITUAL_MAGE, new InclusiveRandom(25, 75)),//NEW
130 KILL_VETION(ClanType.PVM, Difficulty.HARD, "Kill % vet'ions", VETION, new InclusiveRandom(25, 75)),//NEW
131 KILL_MYTHRIL_DRAGON(ClanType.PVM, Difficulty.HARD, "Kill % king black dragons", KING_BLACK_DRAGON, new InclusiveRandom(25, 100)),//NEW
132 KILL_NECHRYAEL(ClanType.PVM, Difficulty.HARD, "Kill % nachryaels", NECHRYAEL, new InclusiveRandom(50, 100)),//NEW
133 KILL_SMOKE_DEVIL(ClanType.PVM, Difficulty.HARD, "Kill % smoke devils", SMOKE_DEVIL, new InclusiveRandom(50, 100)),//NEW
134 KILL_DEMONIC_GORILLA(ClanType.PVM, Difficulty.HARD, "Kill % demonic gorillas", DEMONIC_GORILLA, new InclusiveRandom(50, 100)),//NEW
135 KILL_LIZARD_SHAMAN(ClanType.PVM, Difficulty.HARD, "Kill % lizard shamans", LIZARD_SHAMAN, new InclusiveRandom(50, 100)),//NEW
136 KILL_GENERAL_GRAARDOR(ClanType.PVM, Difficulty.HARD, "Kill % general graardors", GENERAL_GRAARDOR, new InclusiveRandom(25, 75)),//NEW
137 KILL_COMMANDER_ZILYANA(ClanType.PVM, Difficulty.HARD, "Kill % commander zilyanas", COMMANDER_ZILYANA, new InclusiveRandom(25, 75)),//NEW
138 KILL_KREEARRA(ClanType.PVM, Difficulty.HARD, "Kill % kree'arras", KREEARRA, new InclusiveRandom(25, 75)),//NEW
139 KILL_KRIL_TSUTSAROTH(ClanType.PVM, Difficulty.HARD, "Kill % k'ril tsutsaroths", KRIL_TSUTSAROTH, new InclusiveRandom(25, 75)),//NEW
140
141
143 /* -> Easy <- */
144 THIEVE_FROM_STALL_I(ClanType.SKILLING, Difficulty.EASY, "Thieve from stall % times", THIEVING_STALL, new InclusiveRandom(300, 500)),
145 CHOP_WILLOW(ClanType.SKILLING, Difficulty.EASY, "Chop % willow logs", CHOP_WILLOW_LOG, new InclusiveRandom(300, 500)),
146 COMPLETE_AGILITY_LAP_I(ClanType.SKILLING, Difficulty.EASY, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(300, 500)),
147 BURN_YEW_LOG(ClanType.SKILLING, Difficulty.EASY, "Burn % willow logs", BURN_WILLOW_LOG, new InclusiveRandom(300, 500)),
148
149 /* -> Medium <- */
150 CATCH_SHARK(ClanType.SKILLING, Difficulty.MEDIUM, "Catch % sharks", SHARK, new InclusiveRandom(500, 750)),
151 CHOP_YEW(ClanType.SKILLING, Difficulty.MEDIUM, "Chop % yew logs", YEW_LOG, new InclusiveRandom(500, 750)),
152 FLETCH_YEW_SHORTBOW(ClanType.SKILLING, Difficulty.MEDIUM, "Fletch % yew shortbow", YEW_SHORTBOW, new InclusiveRandom(500, 750)),
153 CRAFT_DEATH_RUNE(ClanType.SKILLING, Difficulty.MEDIUM, "Craft % death runes", DEATH_RUNE, new InclusiveRandom(500, 750)),
154 CREATE_SUPER_RESTORE_POTION(ClanType.SKILLING, Difficulty.MEDIUM, "Create % super restore potions", SUPER_RESTORE_POTION, new InclusiveRandom(500, 750)),
155 COMPLETE_AGILITY_LAP_II(ClanType.SKILLING, Difficulty.MEDIUM, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(500, 750)),
156 THIEVE_FROM_STALL_II(ClanType.SKILLING, Difficulty.MEDIUM, "Thieve from stall % times", THIEVING_STALL, new InclusiveRandom(500, 750)),
157
158 /* -> Hard <- */
159 // SMITH_RUNITE_BAR(ClanType.SKILLING, Difficulty.HARD, "Smith % runite bars", RUNITE_BAR, new InclusiveRandom(600, 900)),
160 FLETCH_MAGIC_SHORTBOW(ClanType.SKILLING, Difficulty.HARD, "Fletch % magic shortbow", MAGIC_SHORTBOW, new InclusiveRandom(1250, 2000)),
161 MINE_RUNITE_ORE(ClanType.SKILLING, Difficulty.HARD, "Mine % runite ores", RUNITE_ORES, new InclusiveRandom(650, 900)),
162// CREATE_SUPER_COMBAT_POTION(ClanType.SKILLING, Difficulty.HARD, "Create % super combat potions", SUPER_COMBAT_POTION, new InclusiveRandom(, 2000)),
163 COMPLETE_AGILITY_LAP_III(ClanType.SKILLING, Difficulty.HARD, "Complete % non-rooftop course", AGILITY_COURSE, new InclusiveRandom(750, 1000)),
164 CATCH_ANGLERFISH(ClanType.SKILLING, Difficulty.HARD, "Catch % dark crabs", DARK_CRAB, new InclusiveRandom(750, 1000)),
165 CRAFT_BLOOD_RUNE(ClanType.SKILLING, Difficulty.HARD, "Craft % blood runes", BLOOD_RUNE, new InclusiveRandom(750, 1000)),
166 CHOP_MAGIC(ClanType.SKILLING, Difficulty.HARD, "Chop % magic logs", MAGIC_LOG, new InclusiveRandom(600, 800));
167
168 public final String task;
169 public final ClanTaskKey key;
170 public final InclusiveRandom amount;
171 public final Difficulty difficulty;
172 public final ClanType type;
173
174 ClanTask(ClanType type, Difficulty difficulty, String task, ClanTaskKey key, InclusiveRandom amount) {
175 this.task = task;
176 this.key = key;
177 this.amount = amount;
178 this.difficulty = difficulty;
179 this.type = type;
180 }
181
182 public double getProgressExperience() {
183 switch (type) {
184 case PVP:
185 return 1250;
186 case PVM:
187 return difficulty == Difficulty.HARD ? 350 : 50;
188 case SKILLING:
189 return 5;
190 }
191 return 0;
192 }
193
194 public String getName(ClanChannel channel) {
195 return task.replace("%", "" + channel.getDetails().taskAmount);
196 }
197
198 public int getAmount() {
199 return Utility.random(amount.minimum, amount.maximum);
200 }
201
202 public static Set<ClanTask> getTasks(ClanType type, Difficulty difficulty) {
203 Set<ClanTask> tasks = new HashSet<>();
204 for (ClanTask task : values()) {
205 if (task.type == type && task.difficulty == difficulty)
206 tasks.add(task);
207 }
208 return tasks;
209 }
210
211 public static ClanTask getAssignment(ClanType type, Difficulty difficulty) {
212 if (type == ClanType.SOCIAL) {
213 Set<ClanTask> tasks = new HashSet<>();
214 tasks.addAll(getTasks(ClanType.PVM, difficulty));
215 tasks.addAll(getTasks(ClanType.PVP, difficulty));
216 tasks.addAll(getTasks(ClanType.SKILLING, difficulty));
217 return Utility.randomElement(tasks);
218 }
219
220 if (type == ClanType.IRON_MAN) {
221 Set<ClanTask> tasks = new HashSet<>();
222 tasks.addAll(getTasks(ClanType.PVM, difficulty));
223 tasks.addAll(getTasks(ClanType.SKILLING, difficulty));
224 return Utility.randomElement(tasks);
225 }
226
227 return Utility.randomElement(getTasks(type, difficulty));
228 }
229
230 public int getReward() {
231 return (difficulty == Difficulty.EASY) ? 2 : (difficulty == Difficulty.MEDIUM) ? 3 : 5;
232 }
233}
static< T > T randomElement(Collection< T > collection)
Definition Utility.java:285