fixup add doubles

This commit is contained in:
RedSparr0w 2019-09-22 16:51:09 +12:00
parent 059564e47e
commit 15465f2044
28 changed files with 105 additions and 31 deletions

View file

@ -173,7 +173,9 @@ public class CookingProperties {
public boolean cook(final Food food, final Player player, final GameObject object, final boolean burned) {
if (player.getInventory().remove(food.getRaw())) {
if (!burned) {
Perks.addDouble(player, food.getItem());
Item item = food.getItem();
player.getInventory().add(item);
Perks.addDouble(player, item);
} else {
player.getInventory().add(food.getBurnt());
}

View file

@ -100,7 +100,9 @@ public final class DragonCraftPulse extends SkillPulse<Item> {
} else {
player.getPacketDispatch().sendMessage("You make " + (StringUtils.isPlusN(ItemDefinition.forId(hide.getProduct()).getName().toLowerCase()) ? "an" : "a") + " " + ItemDefinition.forId(hide.getProduct()).getName().toLowerCase() + ".");
}
Perks.addDouble(player, new Item(hide.getProduct()));
Item item = new Item(hide.getProduct());
player.getInventory().add(item);
Perks.addDouble(player, item);
if (player.getDetails().getShop().hasPerk(Perks.GOLDEN_NEEDLE) && RandomFunction.random(100) <= 10) {
player.getSkills().addExperience(Skills.CRAFTING, (hide.getExperience() * 0.35), true);

View file

@ -80,7 +80,9 @@ public final class HardCraftPulse extends SkillPulse<Item> {
}
}
if (player.getInventory().remove(new Item(LeatherCrafting.HARD_LEATHER))) {
Perks.addDouble(player, new Item(1131));
Item item = new Item(1131);
player.getInventory().add(item);
Perks.addDouble(player, item);
if (player.getDetails().getShop().hasPerk(Perks.GOLDEN_NEEDLE) && RandomFunction.random(100) <= 10) {
player.getSkills().addExperience(Skills.CRAFTING, (35 * 0.35), true);
player.sendMessage("Your golden needle rewards you with some extra XP!");

View file

@ -87,7 +87,9 @@ public final class SnakeSkinPulse extends SkillPulse<Item> {
}
}
if (player.getInventory().remove(new Item(6289, skin.getRequiredAmount()))) {
Perks.addDouble(player, skin.getProduct());
Item item = skin.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
if (player.getDetails().getShop().hasPerk(Perks.GOLDEN_NEEDLE) && RandomFunction.random(100) <= 10) {
player.getSkills().addExperience(Skills.CRAFTING, (skin.getExperience() * 0.35), true);
player.sendMessage("Your golden needle rewards you with some extra XP!");

View file

@ -98,7 +98,9 @@ public final class SoftCraftPulse extends SkillPulse<Item> {
} else {
player.getPacketDispatch().sendMessage("You make " + (StringUtils.isPlusN(soft.getProduct().getName()) ? "an" : "a") + " " + soft.getProduct().getName().toLowerCase() + ".");
}
Perks.addDouble(player, soft.getProduct());
Item item = soft.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
if (player.getDetails().getShop().hasPerk(Perks.GOLDEN_NEEDLE) && RandomFunction.random(100) <= 10) {
player.getSkills().addExperience(Skills.CRAFTING, (soft.getExperience() * 0.35), true);
player.sendMessage("Your golden needle rewards you with some extra XP!");

View file

@ -73,7 +73,9 @@ public final class GemCutPulse extends SkillPulse<Item> {
return false;
}
if (player.getInventory().remove(gem.getUncut())) {
Perks.addDouble(player, gem.getGem());
final Item item = gem.getGem();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.CRAFTING, gem.getExp(), true);
}
amount--;

View file

@ -66,7 +66,9 @@ public final class JewelleryPulse extends SkillPulse<Item> {
return false;
}
if (player.getInventory().remove(getItems())) {
Perks.addDouble(player, new Item(type.getSendItem()));
final Item item = new Item(type.getSendItem());
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.CRAFTING, type.getExperience(), true);
}
amount--;

View file

@ -75,7 +75,9 @@ public final class FirePotteryPulse extends SkillPulse<Item> {
if (player.getLocation().getY() == 3408 && player.getAttribute("spun-bowl", false) && !player.getAchievementDiaryManager().getDiary(DiaryType.VARROCK).isComplete(0, 9)) {
player.getAchievementDiaryManager().getDiary(DiaryType.VARROCK).updateTask(player, 0, 9, true);
}
Perks.addDouble(player, pottery.getProduct());
final Item item = pottery.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.CRAFTING, pottery.getFireExp(), true);
player.getPacketDispatch().sendMessage("You put the " + pottery.getUnfinished().getName().toLowerCase() + " in the oven.");
player.getPacketDispatch().sendMessage("You remove a " + pottery.getProduct().getName().toLowerCase() + " from the oven.");

View file

@ -81,7 +81,9 @@ public final class PotteryPulse extends SkillPulse<Item> {
if (pottery == PotteryItem.BOWL && player.getLocation().getX() == 3086) {
player.setAttribute("spun-bowl", true);
}
Perks.addDouble(player, pottery.getUnfinished());
final Item item = pottery.getUnfinished();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.CRAFTING, pottery.getExp(), true);
player.getPacketDispatch().sendMessage("You make the soft clay into " + (StringUtils.isPlusN(pottery.getUnfinished().getName()) ? "an" : "a") + " " + pottery.getUnfinished().getName().toLowerCase() + ".");
}

View file

@ -72,7 +72,9 @@ public final class SpinningPulse extends SkillPulse<Item> {
return false;
}
if (player.getInventory().remove(new Item(type.getNeed(), 1))) {
Perks.addDouble(player, new Item(type.getProduct(), 1));
final Item item = new Item(type.getProduct(), 1);
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.CRAFTING, type.getExp(), true);
}
ammount--;

View file

@ -184,7 +184,9 @@ public final class FishingPulse extends SkillPulse<NPC> {
if (GlobalEventManager.get().isActive("Plenty of fish"))
player.getInventory().add(fish.getItem());
SkillingPets.checkPetDrop(player, SkillingPets.HERON);
Perks.addDouble(player, fish.getItem());
final Item item = fish.getItem();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.FISHING, fish.getExperience(), true);
message(2);
if (TutorialSession.getExtension(player).getStage() == 13) {

View file

@ -161,7 +161,9 @@ public final class GatheringSkillPulse extends SkillPulse<GameObject> {
applyAchievementTask(reward);
// Give the player the items
int rewardAmount = calculateRewardAmount(reward);
player.getInventory().add(new Item(reward, rewardAmount));
Item item = new Item(reward, rewardAmount);
player.getInventory().add(item);
Perks.addDouble(player, item);
// Apply the experience points
double experience = calculateExperience(reward, rewardAmount);
player.getSkills().addExperience(resource.getSkillId(), experience, true);
@ -369,7 +371,6 @@ public final class GatheringSkillPulse extends SkillPulse<GameObject> {
}
SkillingPets.checkPetDrop(player, isMining ? SkillingPets.GOLEM : SkillingPets.BEAVER);
Perks.addDouble(player, new Item(reward, 1));
return amount;
}

View file

@ -175,6 +175,7 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
if (altar == Altar.COSMIC && i.getAmount() == 56 && !player.getAchievementDiaryManager().getDiary(DiaryType.LUMBRIDGE).isComplete(2, 1)) {
player.getAchievementDiaryManager().updateTask(player, DiaryType.LUMBRIDGE, 2, 1, true);
}
player.getInventory().add(i);
Perks.addDouble(player, i);
player.getSkills().addExperience(Skills.RUNECRAFTING, rune.getExperience() * amount, true);
}
@ -193,7 +194,9 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
}
}
player.getSkills().addExperience(Skills.RUNECRAFTING, rune.getExperience() * 2, true);
Perks.addDouble(player, rune.getRune());
Item runeItem = rune.getRune();
player.getInventory().add(runeItem);
Perks.addDouble(player, runeItem);
}
}
}
@ -300,6 +303,7 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
i++;
}
}
if (player.hasPerk(Perks.RUNESTONE_KNOWLEDGE) && (altar == Altar.DEATH || altar == Altar.LAW || altar == Altar.COSMIC || altar == Altar.BLOOD || altar == Altar.NATURE)) {
i *= 2;
}

View file

@ -80,7 +80,9 @@ public class SmithingPulse extends SkillPulse<Item> {
return false;
}
player.getInventory().remove(new Item(bar.getBarType().getBarType(), bar.getSmithingType().getRequired()));
Perks.addDouble(player, (new Item(node.getId(), bar.getSmithingType().getProductAmount())));
final Item item = new Item(node.getId(), bar.getSmithingType().getProductAmount());
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.SMITHING, bar.getBarType().getExperience() * bar.getSmithingType().getRequired(), true);
String message = StringUtils.isPlusN(ItemDefinition.forId(bar.getProduct()).getName().toLowerCase()) == true ? "an" : "a";
player.getPacketDispatch().sendMessage("You hammer the " + bar.getBarType().getBarName().toLowerCase().replace("smithing", "") + "and make " + message + " " + ItemDefinition.forId(bar.getProduct()).getName().toLowerCase() + ".");

View file

@ -178,7 +178,9 @@ public final class SpadePulse extends ToolAction {
* @return {@code True} if harvested.
*/
private boolean harvestPatch() {
Perks.addDouble(player, wrapper.getNode().getProduct());
final Item item = wrapper.getNode().getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.FARMING, wrapper.getNode().getExperiences()[1], true);
wrapper.getCycle().setHarvestAmount(wrapper.getCycle().getHarvestAmount() - 1);
if (wrapper.getCycle().getHarvestAmount() < 1) {

View file

@ -64,7 +64,9 @@ public final class FletchingPulse extends SkillPulse<Item> {
return false;
}
if (player.getInventory().remove(fletch.getType().getLog())) {
Perks.addDouble(player, fletch.getProduct());
final Item item = fletch.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.FLETCHING, fletch.getExperience(), true);
String message = getMessage();
player.getPacketDispatch().sendMessage(message);

View file

@ -84,7 +84,9 @@ public final class HerbTarPulse extends SkillPulse<Item> {
return false;
}
if (player.getInventory().containsItem(SWAMP_TAR) && player.getInventory().containsItem(tar.getIngredient()) && player.getInventory().remove(SWAMP_TAR) && player.getInventory().remove(tar.getIngredient())) {
Perks.addDouble(player, new Item(tar.getTar().getId(), 15));
final Item item = new Item(tar.getTar().getId(), 15);
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.HERBLORE, tar.getExperience(), true);
player.getPacketDispatch().sendMessage("You add the " + tar.getIngredient().getName().toLowerCase().replace("clean", "").trim() + " to the swamp tar.");
} else {

View file

@ -115,7 +115,9 @@ public final class HerblorePulse extends SkillPulse<Item> {
player.animate(ANIMATION);
}
if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) {
Perks.addDouble(player, potion.getProduct());
final Item item = potion.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getPacketDispatch().sendMessage("You put the" + StringUtils.formatDisplayName(potion.getIngredient().getName().replace("Clean", "")) + " Leaf into the vial of water.");
if (cycles++ == 3) {
player.animate(ANIMATION);
@ -129,7 +131,9 @@ public final class HerblorePulse extends SkillPulse<Item> {
*/
public void handleFinished() {
if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) {
Perks.addDouble(player, potion.getProduct());
final Item item = potion.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.HERBLORE, potion.getExperience(), true);
player.getPacketDispatch().sendMessage("You mix the " + potion.getIngredient().getName().toLowerCase() + " into your potion.");
player.animate(ANIMATION);

View file

@ -74,7 +74,9 @@ public class BNetNode {
public void reward(Player player, NPC npc) {
if (!isBareHand(player)) {
if (player.getInventory().remove(getJar())) {
Perks.addDouble(player, getReward());
final Item item = getReward();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.HUNTER, getExperience(player), true);
}
} else {

View file

@ -168,7 +168,9 @@ public final class SummoningCreator {
}
}
if (player.getInventory().remove(type.getRequired())) {
Perks.addDouble(player, type.getProduct());
final Item item = type.getProduct();
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(Skills.SUMMONING, type.getExperience(), true);
}
}

View file

@ -162,6 +162,7 @@ public enum Pickpocket {
if (this == MARTIN_THE_MASTER_GARDENER) {
return RandomFunction.getChanceItem(MARTIN_REWARDS).getRandomItem();
}
// 5/250 chance for easy clue scroll?
if ((this == FEMALE_HAM_MEMBER || this == MALE_HAM_MEMBER) && RandomFunction.random(250) <= 5 && !player.getTreasureTrailManager().hasClue()) {
return ClueScrollPlugin.getClue(ClueLevel.EASY);
}
@ -169,12 +170,16 @@ public enum Pickpocket {
if (loot.length == 1) {
loot = new int[] { loot[0], 1 };
}
// Calculate any bonus multipliers
int bonusMultiplier = 1;
if (loot[0] == 995) {
if(GlobalEventManager.get().isActive("Thieves jackpot")) {
loot[1] *= 3;
bonusMultiplier *= 3;
}
}
return new Item(loot[0], loot[1]);
return new Item(loot[0], loot[1] * bonusMultiplier);
}
/**

View file

@ -12,6 +12,7 @@ import org.crandor.game.node.entity.player.info.portal.Perks;
import org.crandor.game.node.entity.player.link.audio.Audio;
import org.crandor.game.node.entity.player.link.diary.DiaryType;
import org.crandor.game.node.entity.state.EntityState;
import org.crandor.game.node.item.Item;
import org.crandor.game.world.GameWorld;
import org.crandor.game.world.update.flag.context.Animation;
import org.crandor.tools.RandomFunction;
@ -101,7 +102,9 @@ public final class PickpocketPulse extends SkillPulse<NPC> {
player.getAchievementDiaryManager().getDiary(DiaryType.LUMBRIDGE).updateTask(player, 1, 6, true);
}
player.getSkills().addExperience(Skills.THIEVING, type.getExperience(), true);
Perks.addDouble(player, type.getRandomLoot(player), true);
Item loot = type.getRandomLoot(player);
player.getInventory().add(loot);
Perks.addDouble(player, loot, true);
player.getPacketDispatch().sendMessage(type.getRewardMessage().replace("@name", node.getName().toLowerCase()));
} else {
node.animate(NPC_ANIM);

View file

@ -11,9 +11,27 @@ import org.crandor.tools.RandomFunction;
* @author 'Vexia
*/
public enum Stall {
VEGETABLE_STALL(new int[] { 4706, 4708, }, 2, new int[][] { { 1957, 1 }, { 1965, 1 }, { 1942, 1 } }, "some vegetables from the vegetable's merchant stall.", 10, 634, 10), BAKER_STALL(new int[] { 2561, 6163, 34384 }, 5, new int[][] { { 1891, 1 }, { 2309, 1 }, { 1901, 1 } }, "a cake from the baker's stall.", 16, 634, 11), CRAFTING_STALL(new int[] { 6166 }, 5, new int[][] { { 1755, 1 }, { 1592, 1 }, { 1901, 1 }, { 1597, 1 } }, "some crafting equipment from the crafting merchant stall", 16, 634, 18), TEA_STALL(new int[] { 635, 6574 }, 5, new int[][] { { 712, 1 } }, "a cup of tea.", 16, 634, 10), SILK_STALL(new int[] { 34383, 2560 }, 20, new int[][] { { 950, 1 } }, "some silk from the silk stall.", 24, 634, 10), WINE_STALL(new int[] { 34383, 14011 }, 22, new int[][] { { 1937, 1 }, { 1993, 1 }, { 1987, 1 }, { 1935, 1 }, { 7919, 1 } }, "some wine from the wine stall.", 27, 634, 20), SEED_STALL(new int[] { 7053 }, 27, new int[][] { { 5305, 1 }, { 5306, 1 }, { 5308, 1 }, { 5319, 3 }, { 5318, 2 }, { 5324, 1 }, { 5322, 2 } }, "some seed's from the seed merchant's stall.", 10, 634, 10), FUR_STALL(new int[] { 34387, 2563 }, 35, new int[][] { { 6814, 1 }, { 958, 1 } }, "some fur from the fur stall.", 36, 634, 22), FISH_STAILL(new int[] { 4277, 4705, 4707 }, 42, new int[][] { { 331, 1 }, { 359, 1 }, { 377, 1 } }, "some fish from the fish stall.", 42, 634, 22), CROSSBOW_STALL(new int[] { 4277, 4705, 4707 }, 49, new int[][] { { 9375, 3 }, { 9420, 1 }, { 9440, 1 } }, "something from the crossbow stall.", 52, 634, 22), SILVER_STALL(new int[] { 2565, 6164, 34382 }, 50, new int[][] { { 442, 1 } }, "some silver from the silver stall.", 54, 634, 50), SPICE_STALL(new int[] { 2564, 34386 }, 65, new int[][] { { 2007, 1 } }, "some spice from the spice stall.", 81, 634, 100), MAGIC_STALL(new int[] { 4705, 4707 }, 65, new int[][] { { 556, 1 }, { 557, 1 }, { 554, 1 }, { 555, 1 }, { 563, 1 } }, "some runes from the rune's stall.", 100, 634, 100), SCIMITAR_STALL(new int[] { 4705, 4707 }, 65, new int[][] { { 1323, 1 } }, "a scimitar from the scimitar stall.", 100, 634, 100), GEM_STALL(new int[] { 2562, 6162, 34385 }, 75, new int[][] { { 1623, 1 } }, "a gem from the gem stall.", 160, 634, 340),
VEGETABLE_STALL(new int[] { 4706, 4708, }, 2, new int[][] { { 1957, 1 }, { 1965, 1 }, { 1942, 1 } }, "some vegetables from the vegetable's merchant stall.", 10, 634, 10),
BAKER_STALL(new int[] { 2561, 6163, 34384 }, 5, new int[][] { { 1891, 1 }, { 2309, 1 }, { 1901, 1 } }, "a cake from the baker's stall.", 16, 634, 11),
CRAFTING_STALL(new int[] { 6166 }, 5, new int[][] { { 1755, 1 }, { 1592, 1 }, { 1901, 1 }, { 1597, 1 } }, "some crafting equipment from the crafting merchant stall", 16, 634, 18),
TEA_STALL(new int[] { 635, 6574 }, 5, new int[][] { { 712, 1 } }, "a cup of tea.", 16, 634, 10),
SILK_STALL(new int[] { 34383, 2560 }, 20, new int[][] { { 950, 1 } }, "some silk from the silk stall.", 24, 634, 10),
WINE_STALL(new int[] { 34383, 14011 }, 22, new int[][] { { 1937, 1 }, { 1993, 1 }, { 1987, 1 }, { 1935, 1 }, { 7919, 1 } }, "some wine from the wine stall.", 27, 634, 20),
SEED_STALL(new int[] { 7053 }, 27, new int[][] { { 5305, 1 }, { 5306, 1 }, { 5308, 1 }, { 5319, 3 }, { 5318, 2 }, { 5324, 1 }, { 5322, 2 } }, "some seed's from the seed merchant's stall.", 10, 634, 10),
FUR_STALL(new int[] { 34387, 2563 }, 35, new int[][] { { 6814, 1 }, { 958, 1 } }, "some fur from the fur stall.", 36, 634, 22),
FISH_STAILL(new int[] { 4277, 4705, 4707 }, 42, new int[][] { { 331, 1 }, { 359, 1 }, { 377, 1 } }, "some fish from the fish stall.", 42, 634, 22),
CROSSBOW_STALL(new int[] { 4277, 4705, 4707 }, 49, new int[][] { { 9375, 3 }, { 9420, 1 }, { 9440, 1 } }, "something from the crossbow stall.", 52, 634, 22),
SILVER_STALL(new int[] { 2565, 6164, 34382 }, 50, new int[][] { { 442, 1 } }, "some silver from the silver stall.", 54, 634, 50),
SPICE_STALL(new int[] { 2564, 34386 }, 65, new int[][] { { 2007, 1 } }, "some spice from the spice stall.", 81, 634, 100),
MAGIC_STALL(new int[] { 4705, 4707 }, 65, new int[][] { { 556, 1 }, { 557, 1 }, { 554, 1 }, { 555, 1 }, { 563, 1 } }, "some runes from the rune's stall.", 100, 634, 100),
SCIMITAR_STALL(new int[] { 4705, 4707 }, 65, new int[][] { { 1323, 1 } }, "a scimitar from the scimitar stall.", 100, 634, 100),
GEM_STALL(new int[] { 2562, 6162, 34385 }, 75, new int[][] { { 1623, 1 } }, "a gem from the gem stall.", 160, 634, 340),
// ape atoll:
SCIMITAR_APE_STALL(new int[] { 4878 }, 65, new int[][] { { 1323, 1 } }, "a scimitar from the scimitar stall.", 100, 4797, 120), MAGIC_APE_STALL(new int[] { 4877 }, 65, new int[][] { { 556, 1 }, { 557, 1 }, { 554, 1 }, { 555, 1 }, { 563, 1 } }, "some runes from the magic stall.", 100, 4797, 120), MONEKY_GENERAL(new int[] { 4876 }, 5, new int[][] { { 1931, 1 }, { 2347, 1 }, { 590, 1 } }, "a general item from the general stall.", 16, 4797, 10), MONKEY_FOOD(new int[] { 4875 }, 5, new int[][] { { 1963, 1 } }, "a banana from the food stall.", 16, 4797, 10), CRAFTING_APE(new int[] { 4874 }, 5, new int[][] { { 1755, 1 }, { 1592, 1 }, { 1901, 1 }, { 1597, 1 } }, "a crafting item from the crafting stall.", 16, 4797, 10);
SCIMITAR_APE_STALL(new int[] { 4878 }, 65, new int[][] { { 1323, 1 } }, "a scimitar from the scimitar stall.", 100, 4797, 120),
MAGIC_APE_STALL(new int[] { 4877 }, 65, new int[][] { { 556, 1 }, { 557, 1 }, { 554, 1 }, { 555, 1 }, { 563, 1 } }, "some runes from the magic stall.", 100, 4797, 120),
MONEKY_GENERAL(new int[] { 4876 }, 5, new int[][] { { 1931, 1 }, { 2347, 1 }, { 590, 1 } }, "a general item from the general stall.", 16, 4797, 10),
MONKEY_FOOD(new int[] { 4875 }, 5, new int[][] { { 1963, 1 } }, "a banana from the food stall.", 16, 4797, 10),
CRAFTING_APE(new int[] { 4874 }, 5, new int[][] { { 1755, 1 }, { 1592, 1 }, { 1901, 1 }, { 1597, 1 } }, "a crafting item from the crafting stall.", 16, 4797, 10);
/**
* Constructs a new {@code Stall} {@code Object}.

View file

@ -96,7 +96,6 @@ public final class StallThiefPulse extends SkillPulse<GameObject> {
}
final boolean success = success();
if (success) {
final Item item = stall.getRandomLoot();
if (stall == Stall.SILK_STALL) {
player.getSavedData().getGlobalData().setSilkSteal(System.currentTimeMillis() + 1800000);
}
@ -106,6 +105,8 @@ public final class StallThiefPulse extends SkillPulse<GameObject> {
if (node.isActive()) {
ObjectBuilder.replace(((GameObject) node), ((GameObject) node).transform(stall.getTemporary()), stall.getDelay());
}
final Item item = stall.getRandomLoot();
player.getInventory().add(item);
Perks.addDouble(player, item, true);
player.getSkills().addExperience(Skills.THIEVING, stall.getExperience(), true);
if (item.getId() == 1987) {

View file

@ -100,8 +100,8 @@ public enum Perks {
* @return the item.
*/
public static boolean addDouble(Player player, Item item, boolean ground, int maxRand) {
// 10 % chance to give an extra item
if (!player.hasPerk(DOUBLE_TROUBLE) || RandomFunction.random(maxRand) > 10) {
// 5% chance to give an extra item
if (!player.hasPerk(DOUBLE_TROUBLE) || RandomFunction.random(maxRand) > 5) {
return false;
}
// Give the player the extra item(s)!

View file

@ -168,6 +168,7 @@ public class ThievingGuidePlugin extends OptionHandler {
}
tries++;
}
player.getInventory().add(item);
Perks.addDouble(player, item);
}

View file

@ -235,7 +235,9 @@ public class WildernessAreaZone extends MapZone implements Plugin<Object> {
}
node.transform(8667);
node.setAttribute("reward-tick", GameWorld.getTicks() + resource.getRespawnDuration());
Perks.addDouble(player, new Item(resource.getReward()));
final Item item = new Item(resource.getReward());
player.getInventory().add(item);
Perks.addDouble(player, item);
player.getSkills().addExperience(resource.getSkillId(), resource.getExperience(), true);
return true;
}

View file

@ -139,6 +139,7 @@ public class YakArmourPlugin extends UseWithHandler {
}
int reqAmount = index == 1 ? 1 : 2;
if (player.getInventory().remove(new Item(10820, reqAmount))) {
player.getInventory().add(node);
Perks.addDouble(player, node);
if (player.getDetails().getShop().hasPerk(Perks.GOLDEN_NEEDLE) && RandomFunction.random(100) <= 10) {
player.getSkills().addExperience(Skills.CRAFTING, (32 * 0.35), true);