Fixed sum shit

This commit is contained in:
Ceikry 2021-04-01 23:39:29 -05:00
parent 66968fa840
commit b77839ee27
6 changed files with 51 additions and 365 deletions

View file

@ -44633,7 +44633,7 @@
"id": "4564" "id": "4564"
}, },
{ {
"bankable": "false", "bankable": "true",
"turn90cw_anim": "821", "turn90cw_anim": "821",
"examine": "Hand them out to spread the Easter happiness.", "examine": "Hand them out to spread the Easter happiness.",
"walk_anim": "1836", "walk_anim": "1836",

View file

@ -145,6 +145,7 @@ public final class GameAttributes {
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T> T getAttribute(String key) { public <T> T getAttribute(String key) {
key = key.replace("/save:","");
if (!attributes.containsKey(key)) { if (!attributes.containsKey(key)) {
return null; return null;
} }

View file

@ -304,7 +304,9 @@ public final class WildernessZone extends MapZone {
p.getInterfaceManager().openWildernessOverlay(new Component(381)); p.getInterfaceManager().openWildernessOverlay(new Component(381));
p.getSkullManager().setLevel(getWilderness(p)); p.getSkullManager().setLevel(getWilderness(p));
p.getPacketDispatch().sendString("Level: " + p.getSkullManager().getLevel(), 381, 1); p.getPacketDispatch().sendString("Level: " + p.getSkullManager().getLevel(), 381, 1);
p.getInteraction().set(Option._P_ATTACK); if(GameWorld.getSettings().getWild_pvp_enabled()) {
p.getInteraction().set(Option._P_ATTACK);
}
p.getSkullManager().setWilderness(true); p.getSkullManager().setWilderness(true);
} }

View file

@ -6,10 +6,11 @@ import core.game.content.global.BossKillCounter
import core.game.node.entity.player.Player import core.game.node.entity.player.Player
import core.game.node.item.GroundItemManager import core.game.node.item.GroundItemManager
import core.game.node.item.Item import core.game.node.item.Item
import core.game.node.item.WeightedChanceItem
import core.tools.RandomFunction import core.tools.RandomFunction
import org.rs09.consts.Components import org.rs09.consts.Components
import org.rs09.consts.Items import org.rs09.consts.Items
import rs09.game.content.global.WeightBasedTable
import rs09.game.content.global.WeightedItem
import java.util.* import java.util.*
/** /**
@ -21,49 +22,49 @@ object RewardChest {
/** /**
* The low profit drop table. * The low profit drop table.
*/ */
private val DROP_TABLE = arrayOf( private val DROP_TABLE = WeightBasedTable.create(
//Weighted total = 3050 //Weighted total = 3050
WeightedChanceItem(Items.COINS_995, 1, 5306, 950), WeightedItem(Items.COINS_995, 1, 5306, 950.0),
WeightedChanceItem(Items.MIND_RUNE_558, 60, 60, 300), WeightedItem(Items.MIND_RUNE_558, 60, 60, 300.0),
WeightedChanceItem(Items.MIND_RUNE_558, 100, 850, 300), WeightedItem(Items.MIND_RUNE_558, 100, 850, 300.0),
WeightedChanceItem(Items.CHAOS_RUNE_562, 115, 720, 300), WeightedItem(Items.CHAOS_RUNE_562, 115, 720, 300.0),
WeightedChanceItem(Items.DEATH_RUNE_560, 15, 15, 300), WeightedItem(Items.DEATH_RUNE_560, 15, 15, 300.0),
WeightedChanceItem(Items.DEATH_RUNE_560, 70, 230, 300), WeightedItem(Items.DEATH_RUNE_560, 70, 230, 300.0),
WeightedChanceItem(Items.BLOOD_RUNE_565, 35, 230, 300), WeightedItem(Items.BLOOD_RUNE_565, 35, 230, 300.0),
WeightedChanceItem(Items.BOLT_RACK_4740, 35, 280, 300), WeightedItem(Items.BOLT_RACK_4740, 35, 280, 300.0),
//Weight total = 975 //Weight total = 975
WeightedChanceItem(Items.SUPER_DEFENCE2_165, 1, 1, 325), WeightedItem(Items.SUPER_DEFENCE2_165, 1, 1, 325.0),
WeightedChanceItem(Items.PRAYER_POTION2_141, 1, 1, 325), WeightedItem(Items.PRAYER_POTION2_141, 1, 1, 325.0),
WeightedChanceItem(Items.RESTORE_POTION2_129, 1, 1, 325), WeightedItem(Items.RESTORE_POTION2_129, 1, 1, 325.0),
//Weight total = 53 //Weight total = 53
WeightedChanceItem(Items.TOOTH_HALF_OF_A_KEY_985, 1, 1, 25), WeightedItem(Items.TOOTH_HALF_OF_A_KEY_985, 1, 1, 25.0),
WeightedChanceItem(Items.LOOP_HALF_OF_A_KEY_987, 1, 1, 25), WeightedItem(Items.LOOP_HALF_OF_A_KEY_987, 1, 1, 25.0),
WeightedChanceItem(Items.DRAGON_MED_HELM_1149, 1, 1, 3), WeightedItem(Items.DRAGON_MED_HELM_1149, 1, 1, 3.0),
//Weight total = 120 BARROWS ITEMS V //Weight total = 120 BARROWS ITEMS V
WeightedChanceItem(4708, 1, 1, 5), WeightedItem(4708, 1, 1, 5.0),
WeightedChanceItem(4710, 1, 1, 5), WeightedItem(4710, 1, 1, 5.0),
WeightedChanceItem(4712, 1, 1, 5), WeightedItem(4712, 1, 1, 5.0),
WeightedChanceItem(4714, 1, 1, 5), WeightedItem(4714, 1, 1, 5.0),
WeightedChanceItem(4716, 1, 1, 5), WeightedItem(4716, 1, 1, 5.0),
WeightedChanceItem(4718, 1, 1, 5), WeightedItem(4718, 1, 1, 5.0),
WeightedChanceItem(4720, 1, 1, 5), WeightedItem(4720, 1, 1, 5.0),
WeightedChanceItem(4722, 1, 1, 5), WeightedItem(4722, 1, 1, 5.0),
WeightedChanceItem(4724, 1, 1, 5), WeightedItem(4724, 1, 1, 5.0),
WeightedChanceItem(4726, 1, 1, 5), WeightedItem(4726, 1, 1, 5.0),
WeightedChanceItem(4728, 1, 1, 5), WeightedItem(4728, 1, 1, 5.0),
WeightedChanceItem(4730, 1, 1, 5), WeightedItem(4730, 1, 1, 5.0),
WeightedChanceItem(4732, 1, 1, 5), WeightedItem(4732, 1, 1, 5.0),
WeightedChanceItem(4734, 1, 1, 5), WeightedItem(4734, 1, 1, 5.0),
WeightedChanceItem(4736, 1, 1, 5), WeightedItem(4736, 1, 1, 5.0),
WeightedChanceItem(4738, 1, 1, 5), WeightedItem(4738, 1, 1, 5.0),
WeightedChanceItem(4745, 1, 1, 5), WeightedItem(4745, 1, 1, 5.0),
WeightedChanceItem(4747, 1, 1, 5), WeightedItem(4747, 1, 1, 5.0),
WeightedChanceItem(4749, 1, 1, 5), WeightedItem(4749, 1, 1, 5.0),
WeightedChanceItem(4751, 1, 1, 5), WeightedItem(4751, 1, 1, 5.0),
WeightedChanceItem(4753, 1, 1, 5), WeightedItem(4753, 1, 1, 5.0),
WeightedChanceItem(4755, 1, 1, 5), WeightedItem(4755, 1, 1, 5.0),
WeightedChanceItem(4757, 1, 1, 5), WeightedItem(4757, 1, 1, 5.0),
WeightedChanceItem(4759, 1, 1, 5) WeightedItem(4759, 1, 1, 5.0)
) )
/** /**
@ -87,9 +88,9 @@ object RewardChest {
var maxRolls = 2 + RandomFunction.random(0,player.savedData.activityData.barrowKills / 3) var maxRolls = 2 + RandomFunction.random(0,player.savedData.activityData.barrowKills / 3)
if(maxRolls > 6) maxRolls = 6 if(maxRolls > 6) maxRolls = 6
for (i in 0 until maxRolls) { for (i in 0 until maxRolls) {
rewards.add(RandomFunction.rollWeightedChanceTable(*DROP_TABLE)) rewards.addAll(DROP_TABLE.roll())
} }
InterfaceContainer.generateItems(player, rewards.toTypedArray(), arrayOf("Pog!","Examine"), 364, 4,3,4) InterfaceContainer.generateItems(player, rewards.toTypedArray(), arrayOf("Examine"), 364, 4,3,4)
player.interfaceManager.open(Component(Components.TRAIL_REWARD_364)) player.interfaceManager.open(Component(Components.TRAIL_REWARD_364))
BossKillCounter.addtoBarrowsCount(player) BossKillCounter.addtoBarrowsCount(player)
for(item in rewards){ for(item in rewards){

View file

@ -1,321 +0,0 @@
package rs09.game.node.entity.skill.thieving
import core.game.content.ttrail.ClueLevel
import core.game.content.ttrail.ClueScrollPlugin
import core.game.node.entity.npc.NPC
import core.game.node.entity.npc.drop.DropFrequency
import core.game.node.entity.player.Player
import core.game.node.item.ChanceItem
import core.game.node.item.Item
import core.tools.RandomFunction
import java.util.*
import java.util.stream.IntStream
/**
* Represents a pickpocket npc.
* @author Ceikry
*/
enum class Pickpocket(val npc: IntArray, val level: Int, val experience: Double, val stunDamage: Int, val loot: Array<ChanceItem>) {
MAN(intArrayOf(1, 2, 3, 4, 5, 6, 16, 24, 170, 3915), 1, 8.0, 1, arrayOf<ChanceItem>(
ChanceItem(995, 3, DropFrequency.ALWAYS)
)),
FARMER(intArrayOf(7, 1757, 1758), 10, 14.5, 1, arrayOf<ChanceItem>(
ChanceItem(995, 9, DropFrequency.COMMON),
ChanceItem(5318, 1, DropFrequency.UNCOMMON)
)),
MALE_HAM_MEMBER(intArrayOf(1714), 20, 18.5, 1, arrayOf<ChanceItem>(
ChanceItem(995, 20, DropFrequency.COMMON),
ChanceItem(995, 3, DropFrequency.COMMON),
ChanceItem(590, 1, DropFrequency.COMMON),
ChanceItem(697, 1, DropFrequency.COMMON),
ChanceItem(1511, 1, DropFrequency.COMMON),
ChanceItem(201, 1, DropFrequency.COMMON),
ChanceItem(203, 1, DropFrequency.COMMON),
ChanceItem(205, 1, DropFrequency.COMMON),
ChanceItem(688, 1, DropFrequency.COMMON),
ChanceItem(1269, 1, DropFrequency.COMMON),
ChanceItem(1267, 1, DropFrequency.COMMON),
ChanceItem(1353, 1, DropFrequency.COMMON),
ChanceItem(199, 1, DropFrequency.COMMON),
ChanceItem(321, 1, DropFrequency.COMMON),
ChanceItem(2138, 1, DropFrequency.COMMON),
ChanceItem(1621, 1, DropFrequency.UNCOMMON),
ChanceItem(1623, 1, DropFrequency.UNCOMMON),
ChanceItem(995, 50, DropFrequency.UNCOMMON),
ChanceItem(453, 1, DropFrequency.UNCOMMON),
ChanceItem(4298, 1, DropFrequency.RARE),
ChanceItem(4300, 1, DropFrequency.RARE),
ChanceItem(4302, 1, DropFrequency.RARE),
ChanceItem(4304, 1, DropFrequency.RARE),
ChanceItem(4306, 1, DropFrequency.RARE),
ChanceItem(4308, 1, DropFrequency.RARE),
ChanceItem(995, 100, DropFrequency.RARE),
ChanceItem(4310, 1, DropFrequency.RARE),
ChanceItem(1625, 1, DropFrequency.RARE)
)),
FEMALE_HAM_MEMBER(intArrayOf(1715), 15, 18.5, 1, arrayOf<ChanceItem>(
ChanceItem(995, 20, DropFrequency.COMMON),
ChanceItem(995, 3, DropFrequency.COMMON),
ChanceItem(590, 1, DropFrequency.COMMON),
ChanceItem(697, 1, DropFrequency.COMMON),
ChanceItem(1511, 1, DropFrequency.COMMON),
ChanceItem(201, 1, DropFrequency.COMMON),
ChanceItem(203, 1, DropFrequency.COMMON),
ChanceItem(205, 1, DropFrequency.COMMON),
ChanceItem(688, 1, DropFrequency.COMMON),
ChanceItem(1269, 1, DropFrequency.COMMON),
ChanceItem(1267, 1, DropFrequency.COMMON),
ChanceItem(1353, 1, DropFrequency.COMMON),
ChanceItem(199, 1, DropFrequency.COMMON),
ChanceItem(321, 1, DropFrequency.COMMON),
ChanceItem(2138, 1, DropFrequency.COMMON),
ChanceItem(1621, 1, DropFrequency.UNCOMMON),
ChanceItem(1623, 1, DropFrequency.UNCOMMON),
ChanceItem(995, 50, DropFrequency.UNCOMMON),
ChanceItem(453, 1, DropFrequency.UNCOMMON),
ChanceItem(4298, 1, DropFrequency.RARE),
ChanceItem(4300, 1, DropFrequency.RARE),
ChanceItem(4302, 1, DropFrequency.RARE),
ChanceItem(4304, 1, DropFrequency.RARE),
ChanceItem(4306, 1, DropFrequency.RARE),
ChanceItem(4308, 1, DropFrequency.RARE),
ChanceItem(995, 100, DropFrequency.RARE),
ChanceItem(4310, 1, DropFrequency.RARE),
ChanceItem(1625, 1, DropFrequency.RARE)
)),
WARRIOR(intArrayOf(15, 18), 25, 26.0, 2, arrayOf<ChanceItem>(
ChanceItem(995, 18, DropFrequency.ALWAYS)
)),
ROGUE(intArrayOf(187, 2267, 2268, 2269, 8122), 32, 35.5, 2, arrayOf<ChanceItem>(
ChanceItem(995, 25, DropFrequency.COMMON),
ChanceItem(995, 40, DropFrequency.COMMON),
ChanceItem(1993, 1, DropFrequency.COMMON),
ChanceItem(556, 1, DropFrequency.COMMON),
ChanceItem(1219, 1, DropFrequency.COMMON),
ChanceItem(1523, 1, DropFrequency.COMMON),
ChanceItem(1944, 1, DropFrequency.COMMON)
)),
CAVE_GOBLIN(IntStream.rangeClosed(5752, 5768).toArray(), 36, 40.0, 2, arrayOf<ChanceItem>(
ChanceItem(995, 1, 30, DropFrequency.COMMON),
ChanceItem(4522, 1, DropFrequency.UNCOMMON),
ChanceItem(4544, 1, DropFrequency.UNCOMMON),
ChanceItem(596, 1, DropFrequency.COMMON),
ChanceItem(1939, 1, DropFrequency.UNCOMMON),
ChanceItem(442, 1, 4, DropFrequency.UNCOMMON),
ChanceItem(441, 1, DropFrequency.COMMON),
ChanceItem(10981, 1, DropFrequency.RARE)
)),
MASTER_FARMER(intArrayOf(2234, 2235), 38, 43.0, 3, arrayOf<ChanceItem>(
ChanceItem(5096, 1, DropFrequency.COMMON),
ChanceItem(5097, 1, DropFrequency.COMMON),
ChanceItem(5098, 1, DropFrequency.COMMON),
ChanceItem(5099, 1, DropFrequency.COMMON),
ChanceItem(5100, 1, DropFrequency.COMMON),
ChanceItem(5101, 1, DropFrequency.COMMON),
ChanceItem(5102, 1, DropFrequency.COMMON),
ChanceItem(5103, 1, DropFrequency.COMMON),
ChanceItem(5104, 1, DropFrequency.COMMON),
ChanceItem(5105, 1, DropFrequency.COMMON),
ChanceItem(5106, 1, DropFrequency.COMMON),
ChanceItem(5291, 1, DropFrequency.UNCOMMON),
ChanceItem(5292, 1, DropFrequency.UNCOMMON),
ChanceItem(5293, 1, DropFrequency.UNCOMMON),
ChanceItem(5294, 1, DropFrequency.UNCOMMON),
ChanceItem(5295, 1, DropFrequency.UNCOMMON),
ChanceItem(5296, 1, DropFrequency.UNCOMMON),
ChanceItem(5297, 1, DropFrequency.UNCOMMON),
ChanceItem(5298, 1, DropFrequency.UNCOMMON),
ChanceItem(5299, 1, DropFrequency.UNCOMMON),
ChanceItem(5300, 1, DropFrequency.UNCOMMON),
ChanceItem(5301, 1, DropFrequency.UNCOMMON),
ChanceItem(5302, 1, DropFrequency.UNCOMMON),
ChanceItem(5303, 1, DropFrequency.UNCOMMON),
ChanceItem(5304, 1, DropFrequency.UNCOMMON)
)),
GUARD(intArrayOf(9, 32, 206, 296, 297, 298, 299, 344, 345, 346, 368, 678, 812, 9, 32, 296, 297, 298, 299, 2699, 2700, 2701, 2702, 2703, 3228, 3229, 3230, 3231, 3232, 3233, 3241, 3407, 3408, 4307, 4308, 4309, 4310, 4311, 5919, 5920), 40, 46.5, 2, arrayOf<ChanceItem>(
ChanceItem(995, 30, DropFrequency.ALWAYS)
)),
FREMENIK_CITIZEN(intArrayOf(2462), 45, 65.0, 2, arrayOf<ChanceItem>(
ChanceItem(995, 40, DropFrequency.ALWAYS)
)),
BEARDED_BANDIT(intArrayOf(1880, 1881, 6174), 45, 65.0, 5, arrayOf<ChanceItem>(
ChanceItem(995, 40, DropFrequency.ALWAYS)
)),
DESERT_BANDIT(intArrayOf(1926, 1921), 53, 79.5, 3, arrayOf<ChanceItem>(
ChanceItem(995, 30, DropFrequency.ALWAYS)
)),
KNIGHT_OF_ADROUGNE(intArrayOf(23, 26), 55, 84.3, 3, arrayOf<ChanceItem>(
ChanceItem(995, 50, DropFrequency.ALWAYS)
)),
YANILLE_WATCHMAN(intArrayOf(34), 65, 137.5, 5, arrayOf<ChanceItem>(
ChanceItem(995, 60, DropFrequency.ALWAYS)
)),
MENAPHITE_THUG(intArrayOf(1905), 65, 137.5, 5, arrayOf<ChanceItem>(
ChanceItem(995, 60, DropFrequency.ALWAYS)
)),
PALADIN(intArrayOf(20, 2256), 70, 151.75, 3, arrayOf<ChanceItem>(
ChanceItem(995, 80, DropFrequency.ALWAYS),
ChanceItem(562, 1, 2, DropFrequency.ALWAYS)
)),
MONKEY_KNIFE_FIGHTER(intArrayOf(13195, 13212, 13213), 70, 150.0, 1, arrayOf<ChanceItem>(
ChanceItem(995, 1, DropFrequency.COMMON),
ChanceItem(995, 50, DropFrequency.UNCOMMON),
ChanceItem(869, 1, 4, DropFrequency.COMMON),
ChanceItem(874, 1, 2, DropFrequency.COMMON),
ChanceItem(379, 1, DropFrequency.COMMON),
ChanceItem(1331, 1, DropFrequency.COMMON),
ChanceItem(1333, 1, DropFrequency.COMMON),
ChanceItem(4587, 1, DropFrequency.COMMON)
)),
GNOME(intArrayOf(66, 67, 68, 168, 169, 2249, 2250, 2251, 2371, 2649, 2650, 6002, 6004), 75, 198.5, 1, arrayOf<ChanceItem>(
ChanceItem(995, 1, 300, DropFrequency.COMMON),
ChanceItem(557, 1, DropFrequency.COMMON),
ChanceItem(444, 1, DropFrequency.COMMON),
ChanceItem(569, 1, DropFrequency.COMMON),
ChanceItem(2150, 1, DropFrequency.COMMON),
ChanceItem(2162, 1, DropFrequency.COMMON)
)),
HERO(intArrayOf(21), 80, 273.3, 5, arrayOf<ChanceItem>(
ChanceItem(995, 1, 200, DropFrequency.COMMON),
ChanceItem(995, 1, 300, DropFrequency.UNCOMMON),
ChanceItem(560, 1, 2, DropFrequency.COMMON),
ChanceItem(565, 1, DropFrequency.COMMON),
ChanceItem(569, 1, DropFrequency.COMMON),
ChanceItem(1601, 1, DropFrequency.COMMON),
ChanceItem(444, 1, DropFrequency.COMMON),
ChanceItem(1993, 1, DropFrequency.COMMON)
)),
ELF(intArrayOf(), 85, 353.0, 5, arrayOf<ChanceItem>(
ChanceItem(995, 250, DropFrequency.COMMON),
ChanceItem(995, 350, DropFrequency.COMMON),
ChanceItem(995, 300, DropFrequency.COMMON)
)),
DWARF_TRADER(intArrayOf(2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126), 90, 556.5, 1, arrayOf<ChanceItem>(
ChanceItem(995, 1, 100, DropFrequency.COMMON),
ChanceItem(995, 1, 400, DropFrequency.COMMON),
ChanceItem(2350, 1, DropFrequency.COMMON),
ChanceItem(2352, 1, DropFrequency.COMMON),
ChanceItem(2354, 1, DropFrequency.COMMON),
ChanceItem(2360, 1, DropFrequency.COMMON),
ChanceItem(2362, 1, DropFrequency.COMMON),
ChanceItem(2364, 1, DropFrequency.COMMON),
ChanceItem(437, 1, DropFrequency.COMMON),
ChanceItem(439, 1, DropFrequency.COMMON),
ChanceItem(441, 1, DropFrequency.COMMON),
ChanceItem(448, 1, DropFrequency.COMMON),
ChanceItem(450, 1, DropFrequency.COMMON),
ChanceItem(452, 1, DropFrequency.COMMON),
ChanceItem(454, 1, DropFrequency.COMMON)
)),
MARTIN_THE_MASTER_GARDENER(intArrayOf(3299), 38, 43.0, 3, arrayOf<ChanceItem>(
ChanceItem(5318, 1, 4, DropFrequency.COMMON),
ChanceItem(5319, 1, 3, DropFrequency.COMMON),
ChanceItem(5324, 1, 3, DropFrequency.COMMON),
ChanceItem(5322, 1, 2, DropFrequency.COMMON),
ChanceItem(5320, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5323, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5321, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5096, 1, 1, DropFrequency.COMMON),
ChanceItem(5097, 1, 1, DropFrequency.COMMON),
ChanceItem(5098, 1, 1, DropFrequency.COMMON),
ChanceItem(5099, 1, 2, DropFrequency.COMMON),
ChanceItem(5100, 1, 1, DropFrequency.COMMON),
ChanceItem(5305, 1, 4, DropFrequency.COMMON),
ChanceItem(5307, 1, 3, DropFrequency.COMMON),
ChanceItem(5308, 1, 2, DropFrequency.COMMON),
ChanceItem(5306, 1, 3, DropFrequency.COMMON),
ChanceItem(5319, 1, 3, DropFrequency.COMMON),
ChanceItem(5309, 1, 2, DropFrequency.COMMON),
ChanceItem(5310, 1, 1, DropFrequency.COMMON),
ChanceItem(5311, 1, 1, DropFrequency.COMMON),
ChanceItem(5101, 1, 1, DropFrequency.COMMON),
ChanceItem(5102, 1, 1, DropFrequency.COMMON),
ChanceItem(5103, 1, 1, DropFrequency.COMMON),
ChanceItem(5104, 1, 2, DropFrequency.COMMON),
ChanceItem(5105, 1, 1, DropFrequency.COMMON),
ChanceItem(5106, 1, 1, DropFrequency.COMMON),
ChanceItem(5291, 1, 1, DropFrequency.COMMON),
ChanceItem(5292, 1, 1, DropFrequency.COMMON),
ChanceItem(5293, 1, 1, DropFrequency.COMMON),
ChanceItem(5294, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5295, 1, 1, DropFrequency.RARE),
ChanceItem(5296, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5297, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5298, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5299, 1, 1, DropFrequency.RARE),
ChanceItem(5300, 1, 1, DropFrequency.VERY_RARE),
ChanceItem(5301, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5302, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5303, 1, 1, DropFrequency.RARE),
ChanceItem(5304, 1, 1, DropFrequency.VERY_RARE),
ChanceItem(5282, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5280, 1, 1, DropFrequency.UNCOMMON),
ChanceItem(5281, 1, 1, DropFrequency.UNCOMMON)
));
companion object {
private val idMap = HashMap<Int, Pickpocket>()
@JvmStatic
fun forNPC(npc: NPC): Pickpocket {
var pp = idMap[npc.id]
if (pp == null) {
println("Unhandled pickpocket option for: " + npc.name + "(" + npc.id + ")")
pp = MAN
}
return pp
}
init {
Arrays.stream(values()).forEach{entry -> Arrays.stream(entry.npc).forEach{id -> idMap.putIfAbsent(id,entry)}}
}
}
private val messages: Array<String> = arrayOf(
"You attempt to pick the " + "@name" + "'s pocket...",
"You pick the " + "@name" + "'s pocket.",
"You fail to pick the " + "@name" + "'s pocket.",
"What do you think you're doing?"
)
val startMessage: String
get() = messages[0]
val rewardMessage: String
get() = messages[1]
val failMessage: String
get() = messages[2]
val forceMessage: String
get() = messages[3]
fun getRandomLoot(player: Player): List<Item> {
// 5/250 chance for easy clue scroll
if ((this == MALE_HAM_MEMBER || this == FEMALE_HAM_MEMBER) && RandomFunction.random(250) <= 5 && !player.treasureTrailManager.hasClue()) {
return ArrayList(listOf((ClueScrollPlugin.getClue(ClueLevel.EASY))))
}
val loot = RandomFunction.rollChanceTable(true, *loot)
// Calculate any bonus multipliers
var bonusMultiplier = 1
var rogueItemsWorn = 0
val rogueItemIds = intArrayOf(5553, 5554, 5555, 5556, 5557)
// Figure out how many rogue equipment pieces are worn
rogueItemIds.forEach {
if(player.equipment.contains(it, 1)){
rogueItemsWorn += 1
}
}
// Calculate if the player will get double the loot for this pickpocket
if(RandomFunction.random(0.0, 1.0) <= 0.2 * rogueItemsWorn){
bonusMultiplier += 1
}
// Multiply the loot amounts by the bonus multiplier
loot.stream().forEach { item: Item -> item.amount = item.amount * bonusMultiplier }
return loot
}
}

View file

@ -79,6 +79,7 @@ class GameSettings
var increased_door_time: Boolean, var increased_door_time: Boolean,
var enabled_botting : Boolean, var enabled_botting : Boolean,
var max_adv_bots: Int, var max_adv_bots: Int,
var wild_pvp_enabled: Boolean,
/**"Lobby" interface /**"Lobby" interface
* The message of the week models to display * The message of the week models to display
@ -130,6 +131,7 @@ class GameSettings
val increased_door_time = if(data.containsKey("increased_door_time")) data["increased_door_time"] as Boolean else false val increased_door_time = if(data.containsKey("increased_door_time")) data["increased_door_time"] as Boolean else false
val enable_botting = if(data.containsKey("botting_enabled")) data["botting_enabled"] as Boolean else false val enable_botting = if(data.containsKey("botting_enabled")) data["botting_enabled"] as Boolean else false
val max_adv_bots = if(data.containsKey("max_adv_bots")) data["max_adv_bots"].toString().toInt() else 100 val max_adv_bots = if(data.containsKey("max_adv_bots")) data["max_adv_bots"].toString().toInt() else 100
val wild_pvp_enabled = if(data.containsKey("wild_pvp_enabled")) data["wild_pvp_enabled"] as Boolean else true
val allow_token_purchase = data["allow_token_purchase"] as Boolean val allow_token_purchase = data["allow_token_purchase"] as Boolean
val message_of_the_week_identifier = data["message_of_the_week_identifier"].toString().toInt() val message_of_the_week_identifier = data["message_of_the_week_identifier"].toString().toInt()
val message_of_the_week_text = data["message_of_the_week_text"].toString() val message_of_the_week_text = data["message_of_the_week_text"].toString()
@ -156,6 +158,7 @@ class GameSettings
increased_door_time, increased_door_time,
enable_botting, enable_botting,
max_adv_bots, max_adv_bots,
wild_pvp_enabled,
message_of_the_week_identifier, message_of_the_week_identifier,
message_of_the_week_text message_of_the_week_text
) )