Converted clue scroll rewards to JSON weighted tables
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -18,585 +18,136 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import api.IfaceSettingsBuilder;
|
||||
|
||||
import rs09.game.system.config.ClueRewardParser;
|
||||
|
||||
/**
|
||||
* A clue scroll level.
|
||||
*
|
||||
* @author Vexia
|
||||
*/
|
||||
public enum ClueLevel {
|
||||
|
||||
EASY(new Item(2714), 1 << 16 | 5,
|
||||
new ChanceItem(Items.BLUE_BERET_2633, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_BERET_2635, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_BERET_2637, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// t
|
||||
new ChanceItem(Items.BLACK_FULL_HELMT_2587, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_T_2583, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_T_2585, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_T_3472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_T_2589, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// g
|
||||
new ChanceItem(Items.BLACK_FULL_HELMG_2595, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_G_2591, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_G_2593, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_G_3473, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_G_2597, 1, 1, DropFrequency.UNCOMMON),
|
||||
//black h helms
|
||||
new ChanceItem(Items.BLACK_HELM_H1_10306, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H2_10308, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H3_10310, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H4_10312, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H5_10314, 1, 1, DropFrequency.UNCOMMON),
|
||||
//black h shields
|
||||
new ChanceItem(Items.BLACK_SHIELDH1_7332, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH2_7338, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH3_7344, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH4_7350, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH5_7356, 1, 1, DropFrequency.UNCOMMON),
|
||||
// highway
|
||||
// man
|
||||
// mask
|
||||
new ChanceItem(Items.HIGHWAYMAN_MASK_2631, 1, 1, DropFrequency.UNCOMMON),
|
||||
// wizard t
|
||||
new ChanceItem(Items.WIZARD_ROBE_T_7392, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_HAT_T_7396, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_SKIRT_T_7388, 1, 1, DropFrequency.UNCOMMON),
|
||||
// wizard
|
||||
// g
|
||||
new ChanceItem(Items.WIZARD_ROBE_G_7390, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_SKIRT_G_7386, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_HAT_G_7394, 1, 1, DropFrequency.UNCOMMON),
|
||||
// studded
|
||||
// g
|
||||
new ChanceItem(Items.STUDDED_BODY_G_7362, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_G_7366, 1, 1, DropFrequency.UNCOMMON),
|
||||
// studded
|
||||
// t
|
||||
new ChanceItem(Items.STUDDED_BODY_T_7364, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_T_7368, 1, 1, DropFrequency.UNCOMMON),
|
||||
// red
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(Items.RED_ELE_SHIRT_10404, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_LEGS_10406, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_BLOUSE_10424, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_SKIRT_10426, 1, 1, DropFrequency.UNCOMMON),
|
||||
// blue
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(Items.BLUE_ELE_SHIRT_10408, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_LEGS_10410, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_BLOUSE_10428, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_SKIRT_10430, 1, 1, DropFrequency.UNCOMMON),
|
||||
// green
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(Items.GREEN_ELE_SHIRT_10412, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_LEGS_10414, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_BLOUSE_10432, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_SKIRT_10434, 1, 1, DropFrequency.UNCOMMON),
|
||||
// bob
|
||||
// the
|
||||
// cat
|
||||
new ChanceItem(Items.BOB_SHIRT_10316, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10318, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10320, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10322, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10324, 1, 1, DropFrequency.RARE),
|
||||
// emote
|
||||
// enhancers
|
||||
new ChanceItem(Items.A_POWDERED_WIG_10392, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.FLARED_TROUSERS_10394, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.PANTALOONS_10396, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SLEEPING_CAP_10398, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.AMULET_OF_MAGICT_10366, 1, 1, DropFrequency.UNCOMMON),
|
||||
// vestment
|
||||
// robes(sara,
|
||||
// guthix,
|
||||
// zammy)
|
||||
new ChanceItem(Items.SARADOMIN_ROBE_TOP_10458, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_ROBE_LEGS_10464, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_ROBE_TOP_10462, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_ROBE_LEGS_10466, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_ROBE_TOP_10460, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_ROBE_LEGS_10468, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// cane
|
||||
new ChanceItem(Items.BLACK_CANE_13095, 1, 1, DropFrequency.UNCOMMON),
|
||||
// spikey
|
||||
// helmet
|
||||
new ChanceItem(Items.SPIKED_HELMET_13105, 1, 1, DropFrequency.RARE),
|
||||
//comp bow
|
||||
new ChanceItem(Items.WILLOW_COMP_BOW_10280, 1, 1, DropFrequency.UNCOMMON),
|
||||
//other common crap
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_1077, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_1089, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CHAINBODY_1107, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_1125, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_MED_HELM_1151, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_FULL_HELM_1165, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SQ_SHIELD_1179, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_1195, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DAGGER_1217, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SWORD_1283, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_LONGSWORD_1297, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_2H_SWORD_1313, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SCIMITAR_1327, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_WARHAMMER_1341, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_AXE_1361, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_BATTLEAXE_1367, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_MACE_1426, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CLAWS_3098, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_NAILS_4821, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.OAK_PLANK_8779, 4, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.WILLOW_SHORTBOW_850, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.TROUT_334, 4, 19, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.COIF_1169, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_GLOVES_1059, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_BOOTS_1061, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_VAMBRACES_1063, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_CHAPS_1095, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_BODY_1129, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_COWL_1167, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.HARDLEATHER_BODY_1131, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.YEW_SHORTBOW_858, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SALMON_330, 3, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.EARTH_TALISMAN_1441, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_TALISMAN_1443, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STEEL_PICKAXE_1270, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_1097, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STUDDED_BODY_1133, 1, 1, DropFrequency.COMMON)),
|
||||
|
||||
MEDIUM(new Item(2717), 1 << 16 | 6,
|
||||
// Trimmed
|
||||
// addy
|
||||
// shit
|
||||
new ChanceItem(Items.ADAM_FULL_HELMT_2605, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATEBODY_T_2599, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATELEGS_T_2601, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_KITESHIELD_T_2603, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATESKIRT_T_3474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_FULL_HELMG_2613, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATEBODY_G_2607, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATELEGS_G_2609, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATESKIRT_G_3475, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_KITESHIELD_G_2611, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Headbands
|
||||
new ChanceItem(Items.BLACK_HEADBAND_2647, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_HEADBAND_2645, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BROWN_HEADBAND_2649, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Boots
|
||||
new ChanceItem(Items.RANGER_BOOTS_2577, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.WIZARD_BOOTS_2579, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Boaters
|
||||
new ChanceItem(Items.RED_BOATER_7319, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ORANGE_BOATER_7321, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_BOATER_7323, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_BOATER_7325, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_BOATER_7327, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Trimmed
|
||||
// Dragonhide
|
||||
// shit
|
||||
new ChanceItem(Items.DHIDE_BODY_T_7372, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_T_7380, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_BODYG_7370, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_G_7378, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PITH_HELMET_13103, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_CANE_13097, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.YEW_COMP_BOW_10282, 1, 1, DropFrequency.UNCOMMON),
|
||||
// animal
|
||||
// masks
|
||||
new ChanceItem(Items.PENGUIN_MASK_13109, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SHEEP_MASK_13107, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BAT_MASK_13111, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.CAT_MASK_13113, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WOLF_MASK_13115, 1, 1, DropFrequency.UNCOMMON),
|
||||
// ammy
|
||||
// of
|
||||
// strength
|
||||
// (t)
|
||||
new ChanceItem(Items.STRENGTH_AMULETT_10364, 1, 1, DropFrequency.UNCOMMON),
|
||||
// white ele
|
||||
new ChanceItem(Items.WHITE_ELE_BLOUSE_10420, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_ELE_SKIRT_10422, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// ele
|
||||
new ChanceItem(Items.BLACK_ELE_SHIRT_10400, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BLACK_ELE_LEGS_10402, 1, 1, DropFrequency.RARE),
|
||||
// purple
|
||||
// ele
|
||||
new ChanceItem(Items.PURPLE_ELE_SHIRT_10416, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_LEGS_10418, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_BLOUSE_10436, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_SKIRT_10438, 1, 1, DropFrequency.UNCOMMON),
|
||||
// addy
|
||||
// heraldic
|
||||
// helms
|
||||
new ChanceItem(Items.ADAMANT_HELM_H1_10296, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H2_10298, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H3_10300, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H4_10302, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H5_10304, 1, 1, DropFrequency.UNCOMMON),
|
||||
// addy
|
||||
// heraldic
|
||||
// shield
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH1_10666, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH2_10669, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH3_10672, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH4_10675, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH5_10678, 1, 1, DropFrequency.UNCOMMON),
|
||||
// cloaks
|
||||
new ChanceItem(Items.SARADOMIN_CLOAK_10446, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_CLOAK_10448, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_CLOAK_10450, 1, 1, DropFrequency.UNCOMMON),
|
||||
//mitres
|
||||
new ChanceItem(Items.SARADOMIN_MITRE_10452, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_MITRE_10454, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_MITRE_10456, 1, 1, DropFrequency.UNCOMMON),
|
||||
|
||||
new ChanceItem(Items.ADAMANT_FULL_HELM_1161, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATEBODY_1123, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATELEGS_1073, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATESKIRT_1091, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_KITESHIELD_1199, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_SQ_SHIELD_1183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_CHAINBODY_1111, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_DAGGER_1211, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PICKAXE_1271, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_SWORD_1287, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_LONGSWORD_1301, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_2H_SWORD_1317, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_AXE_1357, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_BATTLEAXE_1371, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_MACE_1430, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANTITE_NAILS_4823, 10, 40, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_CROSSBOW_9183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_BATTLESTAFF_1393, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.GREEN_DHIDE_CHAPS_1099, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.GREEN_DHIDE_BODY_1135, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.YEW_SHORTBOW_857, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.TEAK_PLANK_8781, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SWORDFISH_374, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LOBSTER_380, 15, 43, DropFrequency.COMMON)),
|
||||
|
||||
HARD(new Item(2720), 1 << 16 | 8,
|
||||
new ChanceItem(Items.MAGIC_COMP_BOW_10284, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.TOP_HAT_13101, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_CANE_13099, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_STOLE_10470, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_STOLE_10472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_STOLE_10474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_CROZIER_10440, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_CROZIER_10442, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_CROZIER_10444, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Trimmed
|
||||
// rune
|
||||
// shit
|
||||
new ChanceItem(Items.RUNE_FULL_HELM_T_2627, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_T_2623, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_T_2625, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_T_3477, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_T_2629, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_FULL_HELMG_2619, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_G_2615, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_G_2617, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_G_3476, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_G_2621, 1, 1, DropFrequency.UNCOMMON),
|
||||
// God
|
||||
// armour
|
||||
// shit
|
||||
new ChanceItem(Items.GUTHIX_FULL_HELM_2673, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATEBODY_2669, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATELEGS_2671, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATESKIRT_3480, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_KITESHIELD_2675, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_FULL_HELM_2657, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATEBODY_2653, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATELEGS_2655, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATESKIRT_3478, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_KITESHIELD_2659, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_FULL_HELM_2665, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATEBODY_2661, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATELEGS_2663, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATESKIRT_3479, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_KITESHIELD_2667, 1, 1, DropFrequency.RARE),
|
||||
// heraldic
|
||||
// shit
|
||||
new ChanceItem(Items.RUNE_HELM_H1_10286, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH1_10667, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H2_10288, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH2_10670, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H3_10290, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH3_10673, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H4_10292, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH4_10676, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H5_10294, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH5_10679, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Blue
|
||||
// dragonhide
|
||||
// trimmed
|
||||
new ChanceItem(Items.DHIDE_BODY_T_7376, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_T_7384, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_BODY_G_7374, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_G_7382, 1, 1, DropFrequency.COMMON),
|
||||
// God
|
||||
// dhide
|
||||
new ChanceItem(Items.ZAMORAK_COIF_10374, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_BRACERS_10368, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_DHIDE_10370, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_CHAPS_10372, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_COIF_10382, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_BRACERS_10376, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_DRAGONHIDE_10378, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_CHAPS_10380, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_COIF_10390, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_BRACERS_10384, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_DHIDE_10386, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_CHAPS_10388, 1, 1, DropFrequency.RARE),
|
||||
// Hats
|
||||
new ChanceItem(Items.PIRATES_HAT_2651, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ROBIN_HOOD_HAT_2581, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Cavaliers
|
||||
new ChanceItem(Items.TAN_CAVALIER_2639, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DARK_CAVALIER_2641, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CAVALIER_2643, 1, 1, DropFrequency.COMMON),
|
||||
//rune crap
|
||||
new ChanceItem(Items.RUNE_FULL_HELM_1163, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_1127, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_1079, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_1093, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_1201, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_SQ_SHIELD_1185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_DAGGER_1213, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PICKAXE_1275, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_SWORD_1289, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_LONGSWORD_1303, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_2H_SWORD_1319, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_AXE_1359, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_BATTLEAXE_1373, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_MACE_1432, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_NAILS_4824, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_BOLTS_9144, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_CROSSBOW_9185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DHIDE_CHAPS_2497, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DHIDE_BODY_2503, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.MAGIC_SHORTBOW_861, 1, 2, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.MAGIC_LONGBOW_859, 1, 2, DropFrequency.COMMON),
|
||||
//planks
|
||||
new ChanceItem(Items.MAHOGANY_PLANK_8783, 6, 27, DropFrequency.COMMON),
|
||||
//food
|
||||
new ChanceItem(Items.LOBSTER_380, 16, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SHARK_386, 7, 32, DropFrequency.COMMON),
|
||||
//enchanted robes
|
||||
new ChanceItem(Items.ENCHANTED_ROBE_7398, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ENCHANTED_TOP_7399, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ENCHANTED_HAT_7400, 1, 1, DropFrequency.UNCOMMON)),
|
||||
|
||||
EASY(Items.CASKET_2714, 1, 5),
|
||||
MEDIUM(Items.CASKET_2717, 1, 6),
|
||||
HARD(Items.CASKET_2720, 1, 8),
|
||||
UNKNOWN(0, 0, 0)
|
||||
;
|
||||
|
||||
/**
|
||||
* The default rewards.
|
||||
*/
|
||||
private static final ChanceItem[] DEFAULT_REWARDS = new ChanceItem[] {
|
||||
new ChanceItem(Items.COINS_995, 500, 7000, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.PURPLE_FIRELIGHTER_10326, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_FIRELIGHTER_7329, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_FIRELIGHTER_7331, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_FIRELIGHTER_7330, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_FIRELIGHTER_10327, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_SWEETS_10476, 1, 27, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.AIR_RUNE_556, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_RUNE_554, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.EARTH_RUNE_557, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.WATER_RUNE_555, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_1_3827, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_2_3828, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_3_3829, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_4_3830, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_1_3831, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_2_3832, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_3_3833, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_4_3834, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_1_3835, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_2_3836, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_3_3837, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_4_3838, 1, 1, DropFrequency.RARE)
|
||||
};
|
||||
public int casketId, minSteps, maxSteps;
|
||||
|
||||
/**
|
||||
* The super rare items.
|
||||
*/
|
||||
private static final WeightedChanceItem[] SUPER_RARE = new WeightedChanceItem[] {
|
||||
//1 Trimmed Glory = 50 = to hit 15%
|
||||
new WeightedChanceItem(Items.AMULET_OF_GLORYT_10362, 1, 1, 50),
|
||||
//5 Gilded Items = 150 = to hit 9%
|
||||
new WeightedChanceItem(Items.GILDED_FULL_HELM_3486, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATEBODY_3481, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATELEGS_3483, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATESKIRT_3485, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_KITESHIELD_3488, 1, 1, 30),
|
||||
//12 3rd Age = 120 = to hit 3%
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_TOP_10330, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_LEGS_10332, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_COIF_10334, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_VAMBRACES_10336, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_ROBE_TOP_10338, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_ROBE_10340, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_MAGE_HAT_10342, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_AMULET_10344, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_PLATELEGS_10346, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_PLATEBODY_10348, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_FULL_HELMET_10350, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_KITESHIELD_10352, 1, 1, 10) };
|
||||
|
||||
/**
|
||||
* The casket.
|
||||
*/
|
||||
private final Item casket;
|
||||
|
||||
/**
|
||||
* The length hash of the level.
|
||||
*/
|
||||
private final int lengthHash;
|
||||
|
||||
/**
|
||||
* The reward items.
|
||||
*/
|
||||
private final ChanceItem[] rewards;
|
||||
|
||||
/**
|
||||
* Constructs a new {@Code ClueLevel} {@Code Object}
|
||||
*
|
||||
* @param casket
|
||||
* the casket.
|
||||
* @param lengthHash
|
||||
* the hash.
|
||||
* @param rewards
|
||||
* the rewards.
|
||||
*/
|
||||
private ClueLevel(Item casket, int lengthHash, ChanceItem... rewards) {
|
||||
this.casket = casket;
|
||||
this.lengthHash = lengthHash;
|
||||
this.rewards = rewards;
|
||||
private ClueLevel(int casketId, int minSteps, int maxSteps) {
|
||||
this.casketId = casketId;
|
||||
this.minSteps = minSteps;
|
||||
this.maxSteps = maxSteps;
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a cakset for the player.
|
||||
*
|
||||
* @param player
|
||||
* the player.
|
||||
* @param casket
|
||||
* the casket.
|
||||
*/
|
||||
public void open(Player player, Item casket) {
|
||||
if (casket != null) {
|
||||
if (!player.getInventory().containsItem(casket)) {
|
||||
private static ClueLevel getLevelForCasket(Item casket) {
|
||||
switch (casket.getId()) {
|
||||
case Items.CASKET_2714:
|
||||
return ClueLevel.EASY;
|
||||
case Items.CASKET_2717:
|
||||
return ClueLevel.MEDIUM;
|
||||
case Items.CASKET_2720:
|
||||
return ClueLevel.HARD;
|
||||
}
|
||||
|
||||
return ClueLevel.UNKNOWN;
|
||||
}
|
||||
|
||||
public static void open(Player player, Item casket) {
|
||||
if (casket == null || !player.getInventory().containsItem(casket)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (TreasureTrailManager.getInstance(player).isCompleted() || GameWorld.getSettings().isDevMode()) {
|
||||
final List<Item> rewards = getLoot(player);
|
||||
player.getInterfaceManager().open(new Component(364).setCloseEvent(new CloseEvent() {
|
||||
private boolean given;
|
||||
|
||||
@Override
|
||||
public boolean close(Player player, Component c) {
|
||||
if (!given) {
|
||||
for (Item item : rewards) {
|
||||
player.getInventory().add(item, player);
|
||||
TreasureTrailManager playerTrails = TreasureTrailManager.getInstance(player);
|
||||
|
||||
boolean trailCompleted = playerTrails.isCompleted();
|
||||
boolean isDevMode = GameWorld.getSettings().isDevMode();
|
||||
|
||||
ClueLevel clueLevel = getLevelForCasket(casket);
|
||||
|
||||
if (trailCompleted || isDevMode) {
|
||||
List<Item> rewards = rollLoot(player, clueLevel);
|
||||
|
||||
player.getInterfaceManager().open(new Component(364));
|
||||
|
||||
if (player.getInventory().remove(casket)) {
|
||||
long rewardValue = 0L;
|
||||
|
||||
for (Item reward : rewards) {
|
||||
api.ContentAPIKt.addItemOrDrop(player, reward.getId(), reward.getAmount());
|
||||
rewardValue += reward.getValue();
|
||||
}
|
||||
given = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}));
|
||||
if (casket != null) {
|
||||
player.getInventory().remove(casket);
|
||||
}
|
||||
TreasureTrailManager.getInstance(player).incrementClues(this);
|
||||
TreasureTrailManager.getInstance(player).clearTrail();
|
||||
|
||||
playerTrails.incrementClues(clueLevel);
|
||||
playerTrails.clearTrail();
|
||||
|
||||
player.sendMessage("Well done, you've completed the Treasure Trail!");
|
||||
player.sendMessage(getChatColor(this) + "You have completed " + TreasureTrailManager.getInstance(player).getCompletedClues(this) + " " + this.getName().toLowerCase() + " Treasure Trails.</col>");
|
||||
long value = 0;
|
||||
for (Item item : rewards) {
|
||||
value += item.getValue();
|
||||
player.sendMessage(
|
||||
getChatColor(clueLevel)
|
||||
+ "You have completed "
|
||||
+ playerTrails.getCompletedClues(clueLevel)
|
||||
+ " "
|
||||
+ clueLevel.getName().toLowerCase()
|
||||
+ " clues."
|
||||
);
|
||||
|
||||
player.sendMessage(
|
||||
"<col=990000>Your clue is worth approximately "
|
||||
+ NumberFormat.getInstance().format(rewardValue)
|
||||
+ " coins!</col>"
|
||||
);
|
||||
|
||||
int clueIfaceSettings = new IfaceSettingsBuilder().enableAllOptions().build();
|
||||
player.getPacketDispatch().sendIfaceSettings(clueIfaceSettings, 4, 364, 0, 6);
|
||||
InterfaceContainer.generateItems(
|
||||
player,
|
||||
rewards.toArray(new Item[] {}),
|
||||
new String[] {""},
|
||||
364, 4, 3, 3
|
||||
);
|
||||
}
|
||||
player.sendMessage("<col=990000>Your clue is worth approximately " + NumberFormat.getInstance().format(value) + " coins!</col>");
|
||||
player.getPacketDispatch().sendIfaceSettings(1278, 4, 364, 0, 6);
|
||||
InterfaceContainer.generateItems(player, rewards.toArray(new Item[] {}), new String[] { "" }, 364, 4, 3, 3);
|
||||
return;
|
||||
}
|
||||
Item clue = ClueScrollPlugin.getClue(this);
|
||||
if (clue == null) {
|
||||
player.sendMessage("Error! Clue not found! Report to admin.");
|
||||
return;
|
||||
}
|
||||
if (casket != null) {
|
||||
player.getInventory().replace(clue, casket.getSlot());
|
||||
|
||||
Item newClue = ClueScrollPlugin.getClue(clueLevel);
|
||||
|
||||
if (casket != null && player.getInventory().remove(casket)) {
|
||||
player.getInventory().replace(newClue, casket.getSlot());
|
||||
} else {
|
||||
player.getInventory().add(clue);
|
||||
}
|
||||
TreasureTrailManager.getInstance(player).setClueId(clue.getId());
|
||||
player.getDialogueInterpreter().sendItemMessage(clue, "You've found another clue!");
|
||||
player.getInventory().add(newClue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the rewards.ds.
|
||||
*
|
||||
* @return the rewar
|
||||
*/
|
||||
public List<Item> getLoot(Player player) {
|
||||
List<ChanceItem> items = new ArrayList<>(20);
|
||||
List<Integer> ids = new ArrayList<>(20);
|
||||
items.addAll(Arrays.asList(DEFAULT_REWARDS));
|
||||
items.addAll(Arrays.asList(this.getRewards()));
|
||||
List<Item> rewards = new ArrayList<>(20);
|
||||
int size = RandomFunction.random(1, 6);
|
||||
if (this == HARD) {
|
||||
size = RandomFunction.random(4, 6);
|
||||
}
|
||||
Item item = null;
|
||||
for (int i = 0; i < size; i++) {
|
||||
rewards.addAll(RandomFunction.rollChanceTable(false,items));
|
||||
}
|
||||
/*
|
||||
int rand = 1400;// 2000
|
||||
if (this == HARD && rand == 11)
|
||||
*/
|
||||
//Super Rare Table
|
||||
if (this == HARD && RandomFunction.random(100) == 50) {
|
||||
rewards.remove(0);
|
||||
rewards.add(RandomFunction.rollWeightedChanceTable(SUPER_RARE).asItem());
|
||||
}
|
||||
return rewards;
|
||||
playerTrails.setClueId(newClue.getId());
|
||||
player.getDialogueInterpreter().sendItemMessage(newClue, "You've found another clue!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a reward item.
|
||||
*
|
||||
* @return the item.
|
||||
*/
|
||||
public Item getReward(List<ChanceItem> items) {
|
||||
Collections.shuffle(items);
|
||||
return RandomFunction.getChanceItem(items.toArray(new ChanceItem[] {})).getRandomItem();
|
||||
public static List<Item> rollLoot(Player player, ClueLevel level) {
|
||||
ArrayList<Item> loot = new ArrayList();
|
||||
int itemCount = RandomFunction.random(1,6);
|
||||
|
||||
if (level == ClueLevel.HARD) {
|
||||
itemCount = Math.max(itemCount, RandomFunction.random(4,6));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the clue level for the casket.
|
||||
*
|
||||
* @param node
|
||||
* the node.
|
||||
* @return the level.
|
||||
*/
|
||||
public static ClueLevel forCasket(Item node) {
|
||||
for (ClueLevel level : values()) {
|
||||
if (node.getId() == level.getCasket().getId()) {
|
||||
return level;
|
||||
for (; itemCount > 0; itemCount--) {
|
||||
switch (level) {
|
||||
case EASY:
|
||||
loot.addAll(ClueRewardParser.getEasyTable().roll());
|
||||
break;
|
||||
case MEDIUM:
|
||||
loot.addAll(ClueRewardParser.getMedTable().roll());
|
||||
break;
|
||||
case HARD:
|
||||
loot.addAll(ClueRewardParser.getHardTable().roll());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
if (level == ClueLevel.HARD && RandomFunction.random(100) == 50) {
|
||||
loot.addAll(ClueRewardParser.getRareTable().roll());
|
||||
}
|
||||
|
||||
return loot;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -619,7 +170,7 @@ public enum ClueLevel {
|
||||
* @return the length.
|
||||
*/
|
||||
public int getMaximumLength() {
|
||||
return lengthHash & 0xFFFF;
|
||||
return maxSteps;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -628,16 +179,7 @@ public enum ClueLevel {
|
||||
* @return the length.
|
||||
*/
|
||||
public int getMinimumLength() {
|
||||
return lengthHash >> 16 & 0xFFFF;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the brewards.
|
||||
*
|
||||
* @return the rewards
|
||||
*/
|
||||
public ChanceItem[] getRewards() {
|
||||
return rewards;
|
||||
return minSteps;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -646,16 +188,7 @@ public enum ClueLevel {
|
||||
* @return the casket
|
||||
*/
|
||||
public Item getCasket() {
|
||||
return casket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the blengthHash.
|
||||
*
|
||||
* @return the lengthHash
|
||||
*/
|
||||
public int getLengthHash() {
|
||||
return lengthHash;
|
||||
return new Item(casketId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -68,7 +68,7 @@ public final class TreasureTrailPlugin extends OptionHandler {
|
||||
if (!player.getInventory().containsItem(node.asItem())) {
|
||||
return true;
|
||||
}
|
||||
ClueLevel.forCasket((Item) node).open(player, (Item) node);
|
||||
ClueLevel.open(player, (Item) node);
|
||||
break;
|
||||
case "look through":
|
||||
player.getInterfaceManager().open(new Component(365));
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package rs09.game.system.config
|
||||
|
||||
import org.json.simple.JSONArray
|
||||
import org.json.simple.JSONObject
|
||||
import org.json.simple.parser.JSONParser
|
||||
|
||||
import rs09.ServerConstants
|
||||
import rs09.game.content.global.WeightBasedTable
|
||||
import rs09.game.content.global.WeightedItem
|
||||
|
||||
import java.io.FileReader
|
||||
|
||||
class ClueRewardParser {
|
||||
companion object {
|
||||
@JvmStatic var easyTable = WeightBasedTable()
|
||||
@JvmStatic var medTable = WeightBasedTable()
|
||||
@JvmStatic var hardTable = WeightBasedTable()
|
||||
@JvmStatic var rareTable = WeightBasedTable()
|
||||
}
|
||||
|
||||
|
||||
val parser = JSONParser()
|
||||
var reader: FileReader? = null
|
||||
|
||||
fun load() {
|
||||
reader = FileReader(ServerConstants.CONFIG_PATH + "clue_rewards.json")
|
||||
|
||||
val rawData = parser.parse(reader) as JSONObject
|
||||
easyTable = parseClueTable(rawData["easy"] as JSONArray)
|
||||
medTable = parseClueTable(rawData["medium"] as JSONArray)
|
||||
hardTable = parseClueTable(rawData["hard"] as JSONArray)
|
||||
rareTable = parseClueTable(rawData["rare"] as JSONArray)
|
||||
}
|
||||
|
||||
private fun parseClueTable(data: JSONArray) : WeightBasedTable {
|
||||
val table = WeightBasedTable()
|
||||
|
||||
for (element in data) {
|
||||
val itemData = element as JSONObject
|
||||
|
||||
table.add(WeightedItem(
|
||||
itemData["id"].toString().toInt(),
|
||||
itemData["minAmount"].toString().toInt(),
|
||||
itemData["maxAmount"].toString().toInt(),
|
||||
itemData["weight"].toString().toDouble(),
|
||||
false
|
||||
))
|
||||
|
||||
}
|
||||
|
||||
return table
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@ class ConfigParser : Commands {
|
||||
MusicConfigLoader().load()
|
||||
RangedConfigLoader().load()
|
||||
CustomVarbitParser().load()
|
||||
ClueRewardParser().load()
|
||||
}
|
||||
|
||||
fun reloadConfigs(callback: () -> Unit) {
|
||||
|
||||
Reference in New Issue
Block a user