From 57f60aff6a440be38015cf2e1cf651a9e033af11 Mon Sep 17 00:00:00 2001 From: Woah Date: Fri, 26 Mar 2021 15:17:01 -0400 Subject: [PATCH 1/2] Fixes for #990, #987 removed pickaxe head flying off random event added sweetcorn + basic baked potato cooking --- .../entity/skill/cooking/CookableItems.java | 4 + .../entity/skill/gather/SkillingTool.java | 9 +- .../skill/gather/mining/MiningSkillPulse.kt | 138 +++++++----------- 3 files changed, 54 insertions(+), 97 deletions(-) diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java b/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java index 1b808c36a..04edfc318 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java @@ -83,6 +83,10 @@ public enum CookableItems { BOWL_4(7084, 1871, 7092,43, 60, 70,68,392), BOWL_5(7082, 7080, 7094,57, 120, 80,68,392), + /* Vegetables */ + BAKED_POTATO(6701, 1942, 6699, 7, 15, 41, 108, 472), + SWEETCORN(5988, 5986, 5990, 28, 104, 54, 90, 424), + //Miscellaneous RAW_OOMLIE(Items.RAW_OOMLIE_2337, 0, Items.BURNT_OOMLIE_2426, 50, 0, 999,0,0), // always burns OOMLIE_WRAP(Items.COOKED_OOMLIE_WRAP_2343, Items.WRAPPED_OOMLIE_2341, Items.BURNT_OOMLIE_WRAP_2345, 50, 110, 999,0,0); diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java b/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java index 3230be1ec..1c153c29c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java @@ -80,11 +80,6 @@ public enum SkillingTool { */ RUNE_PICKAXE(1275, 41, 0.65D, new Animation(624)), - /** - * Represents a dragon pickaxe (mining). - */ - DRAGON_PICKAXE(14669, 61, 1.0D, new Animation(11171)), - /** * Represents the Inferno Adze (woodcutting) */ @@ -182,11 +177,9 @@ public enum SkillingTool { public static SkillingTool getPickaxe(Player player) { SkillingTool tool = null; if (checkTool(player, Skills.MINING, SkillingTool.INFERNO_ADZE2)) { - if(player.getSkills().getLevel(Skills.FIREMAKING) >= 92) { + if (player.getSkills().getLevel(Skills.FIREMAKING) >= 92) { tool = SkillingTool.INFERNO_ADZE2; } - } else if (checkTool(player, Skills.MINING, SkillingTool.DRAGON_PICKAXE)) { - tool = SkillingTool.DRAGON_PICKAXE; } else if (checkTool(player, Skills.MINING, SkillingTool.RUNE_PICKAXE)) { tool = SkillingTool.RUNE_PICKAXE; } else if (checkTool(player, Skills.MINING, SkillingTool.ADAMANT_PICKAXE)) { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt index 887235065..5e273a558 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt @@ -137,66 +137,59 @@ class MiningSkillPulse(private val player: Player, private val node: Node) : Pul if (reward > 0) { reward = calculateReward(reward) // calculate rewards rewardAmount = calculateRewardAmount(reward) // calculate amount - /** - * Code for randomly detaching the pickaxe handle from the pickaxe head and sending the head flying - */ - if (RandomFunction.random(1,750) == 390) { - destroyPickaxe(player, SkillingTool.getPickaxe(player)) - return true + + applyAchievementTask(reward) // apply achievements + SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet + + //add experience + val experience = resource!!.getExperience() * rewardAmount + player.skills.addExperience(Skills.MINING, experience, true) + + //Handle bracelet of clay + if(reward == Items.CLAY_434){ + val bracelet = player.equipment.get(EquipmentContainer.SLOT_HANDS) + if(bracelet != null && bracelet.id == Items.BRACELET_OF_CLAY_11074){ + if(bracelet.charge > 28) bracelet.charge = 28 + bracelet.charge-- + reward = Items.SOFT_CLAY_1761 + player.sendMessage("Your bracelet of clay softens the clay for you.") + if(bracelet.charge <= 0){ + player.sendMessage("Your bracelet of clay crumbles to dust.") + player.equipment.remove(bracelet) + } + } + } + + //send the message for the resource reward + if (isMiningGems) { + val gemName = ItemDefinition.forId(reward).name.toLowerCase() + player.sendMessage("You get " + (if (StringUtils.isPlusN(gemName)) "an" else "a") + " " + gemName + ".") } else { - applyAchievementTask(reward) // apply achievements - SkillingPets.checkPetDrop(player, SkillingPets.GOLEM) // roll for pet + player.packetDispatch.sendMessage("You get some " + ItemDefinition.forId(reward).name.toLowerCase() + ".") + } + //give the reward + player.inventory.add(Item(reward, rewardAmount)) + var rocksMined = player.getAttribute("$STATS_BASE:$STATS_ROCKS",0) + player.setAttribute("/save:$STATS_BASE:$STATS_ROCKS",++rocksMined) - //add experience - val experience = resource!!.getExperience() * rewardAmount - player.skills.addExperience(Skills.MINING, experience, true) - - //Handle bracelet of clay - if(reward == Items.CLAY_434){ - val bracelet = player.equipment.get(EquipmentContainer.SLOT_HANDS) - if(bracelet != null && bracelet.id == Items.BRACELET_OF_CLAY_11074){ - if(bracelet.charge > 28) bracelet.charge = 28 - bracelet.charge-- - reward = Items.SOFT_CLAY_1761 - player.sendMessage("Your bracelet of clay softens the clay for you.") - if(bracelet.charge <= 0){ - player.sendMessage("Your bracelet of clay crumbles to dust.") - player.equipment.remove(bracelet) - } - } + //calculate bonus gem for mining + if (!isMiningEssence) { + var chance = 282 + var altered = false + if (Item(player.equipment.getId(12)).name.toLowerCase().contains("ring of wealth")) { + chance = (chance / 1.5).toInt() + altered = true } - - //send the message for the resource reward - if (isMiningGems) { - val gemName = ItemDefinition.forId(reward).name.toLowerCase() - player.sendMessage("You get " + (if (StringUtils.isPlusN(gemName)) "an" else "a") + " " + gemName + ".") - } else { - player.packetDispatch.sendMessage("You get some " + ItemDefinition.forId(reward).name.toLowerCase() + ".") + val necklace = player.equipment[EquipmentContainer.SLOT_AMULET] + if (necklace != null && necklace.id > 1705 && necklace.id < 1713) { + chance = (chance / 1.5).toInt() + altered = true } - //give the reward - player.inventory.add(Item(reward, rewardAmount)) - var rocksMined = player.getAttribute("$STATS_BASE:$STATS_ROCKS",0) - player.setAttribute("/save:$STATS_BASE:$STATS_ROCKS",++rocksMined) - - //calculate bonus gem for mining - if (!isMiningEssence) { - var chance = 282 - var altered = false - if (Item(player.equipment.getId(12)).name.toLowerCase().contains("ring of wealth")) { - chance = (chance / 1.5).toInt() - altered = true - } - val necklace = player.equipment[EquipmentContainer.SLOT_AMULET] - if (necklace != null && necklace.id > 1705 && necklace.id < 1713) { - chance = (chance / 1.5).toInt() - altered = true - } - if (RandomFunction.random(chance) == chance / 2) { - val gem = RandomFunction.rollChanceTable(true, *GEM_REWARDS)[0] - player.packetDispatch.sendMessage("You find a " + gem.name + "!") - if (!player.inventory.add(gem, player)) { - player.packetDispatch.sendMessage("You do not have enough space in your inventory, so you drop the gem on the floor.") - } + if (RandomFunction.random(chance) == chance / 2) { + val gem = RandomFunction.rollChanceTable(true, *GEM_REWARDS)[0] + player.packetDispatch.sendMessage("You find a " + gem.name + "!") + if (!player.inventory.add(gem, player)) { + player.packetDispatch.sendMessage("You do not have enough space in your inventory, so you drop the gem on the floor.") } } } @@ -211,39 +204,6 @@ class MiningSkillPulse(private val player: Player, private val node: Node) : Pul return false } - private fun destroyPickaxe(player: Player, pickaxe: SkillingTool) { - if(pickaxe.name.contains("adze")){ - return - } - val radius = 2 - val l = player.location.transform(RandomFunction.random(-radius, radius), RandomFunction.random(-radius, radius), 0) - val p = Pathfinder.find(player.location, l).points.last - val headSpawn = Location(p.x, p.y, player.location.z) - val headID = - when (pickaxe.id) { - 1265 -> 480 - 1267 -> 482 - 1269 -> 484 - 1271 -> 488 - 1273 -> 486 - 1275 -> 490 - else -> 0 - } - val pickItem = Item(pickaxe.id) - if(player.equipment.containsItem(pickItem)){ - val realItem = player.equipment.getItem(pickItem) - player.equipment.remove(pickItem) - player.equipment.add(Item(466),realItem.slot,false,false) - player.equipment.refresh() - } else if(player.inventory.containsItem(pickItem)) { - player.inventory.remove(pickItem) - player.inventory.add(Item(466)) - } - player.audioManager.send(17) - player.sendMessage(colorize("%RThe head of your pickaxe snaps off and goes flying!")) - GroundItemManager.create(Item(headID),headSpawn,player) - } - private fun calculateRewardAmount(reward: Int): Int { var amount = 1 From 59cd618f7d9f4a4410fef5decdc68092a234b8d3 Mon Sep 17 00:00:00 2001 From: Woah Date: Fri, 26 Mar 2021 15:21:53 -0400 Subject: [PATCH 2/2] Fix for #979 Edible seaweed now edible --- .../src/main/java/core/game/content/consumable/Consumables.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Server/src/main/java/core/game/content/consumable/Consumables.java b/Server/src/main/java/core/game/content/consumable/Consumables.java index be1780286..5b8f46fe9 100644 --- a/Server/src/main/java/core/game/content/consumable/Consumables.java +++ b/Server/src/main/java/core/game/content/consumable/Consumables.java @@ -293,6 +293,7 @@ public enum Consumables { ROE(new Food(new int[]{11324}, new HealingEffect(3))), EQUA_LEAVES(new Food(new int[]{2128}, new HealingEffect(1))), CHOC_ICE(new Food(new int[]{6794}, new HealingEffect(6))), + EDIBLE_SEAWEED(new Food(new int[] {403}, new HealingEffect(4))), /** Special Events */ PUMPKIN(new Food(new int[] {1959}, new HealingEffect(14))),