46 static long SECOND = 1000,
52 long left = playerBirdHouseData.birdhouseTimer - System.currentTimeMillis();
53 long minutes = left / MINUTE;
54 return minutes < 0 ?
"rougly 1 minute." : minutes +
" minute(s).";
61 player.message(
"You must have two spaces in your inventory to dismantle the birdhouse.");
65 ArrayList<Item> receivedItems =
new ArrayList<>();
68 player.inventory.
addOrDrop(
new Item(8792));
69 receivedItems.add(
new Item(8792));
70 for(
int index = 0; index < 10; index++) {
72 receivedItems.add(
new Item(9978));
74 int[] featerAmount = { 30, 40, 50, 60 };
75 int featherAmount = featerAmount[
Utility.random(featerAmount.length - 1)];
77 player.inventory.
addOrDrop(
new Item(314, featherAmount));
78 receivedItems.add(
new Item(314, featherAmount));
80 int nestsReceived = 0;
82 player.inventory.
addOrDrop(
new Item(5073));
83 receivedItems.add(
new Item(5073));
85 if(wasSuccesful(player,
SkillData.HUNTER.ordinal(), 0, 200)) {
86 player.inventory.
addOrDrop(
new Item(5073));
87 receivedItems.add(
new Item(5073));
91 for(
int index = 0; index < 10; index++) {
97 int nestRate = birdHouseData.birdhouseData.succesRates * (hunterLevel - 1) / 98;
98 int randomRoll =
Utility.random(1000);
100 if(randomRoll < nestRate) {
101 int nestChance = 100;
102 if(player.equipment.contains(10134))
104 int nestRoll =
Utility.random(nestChance);
107 player.inventory.
addOrDrop(
new Item(5072));
108 receivedItems.add(
new Item(5072));
111 else if(nestRoll < 2) {
112 player.inventory.
addOrDrop(
new Item(5070));
113 receivedItems.add(
new Item(5070));
115 }
else if(nestRoll < 3) {
116 player.inventory.
addOrDrop(
new Item(5071));
117 receivedItems.add(
new Item(5071));
119 }
else if(nestRoll < 35) {
120 player.inventory.
addOrDrop(
new Item(5074));
121 receivedItems.add(
new Item(5074));
124 player.inventory.
addOrDrop(
new Item(5075));
125 receivedItems.add(
new Item(5075));
133 player.message(
"You dismantle and discard the trap, retrieving "+nestsReceived+
" nest"+(nestsReceived > 1 ?
"s" :
"")+
", 10 dead birds, "+featherAmount+
" feathers and "+birdHouseData.birdhouseData.hunterData[1]+
" Hunter XP.");
137 player.birdHouseData.remove(birdHouseData);
141 private static boolean wasSuccesful(
Player player,
int skill,
int low,
int high) {
142 int level = player.skills.
getLevel(skill);
144 int odds = 1 + (low * (99 - level) / 98) + (high * (level - 1) / 98);
145 double percent = ((double)odds / 256D) * 100D;
146 int random =
new Random().nextInt(256);
148 return odds >= random;