diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java index 888ee69cf..9cc7af56f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java @@ -138,6 +138,10 @@ public enum WoodcuttingNode { double experience,rate; byte identifier; boolean farming; + double baseLow = 64; + double baseHigh = 200; + double tierModLow = 32; + double tierModHigh = 100; WoodcuttingNode(int full, int empty,byte identifier){ this.full = full; this.empty = empty; @@ -177,6 +181,10 @@ public enum WoodcuttingNode { experience = 37.5; level = 15; rewardAmount = 10; + baseLow = 32; + baseHigh = 100; + tierModLow = 16; + tierModHigh = 50; break; case 8: reward = 1519; @@ -185,6 +193,10 @@ public enum WoodcuttingNode { experience = 67.8; level = 30; rewardAmount = 20; + baseLow = 16; + baseHigh = 50; + tierModLow = 8; + tierModHigh = 25; break; case 9: reward = 6333; @@ -193,6 +205,10 @@ public enum WoodcuttingNode { experience = 85.0; level = 35; rewardAmount = 25; + baseLow = 15; + baseHigh = 46; + tierModLow = 8; + tierModHigh = 23.5; break; case 10: reward = 1517; @@ -201,6 +217,10 @@ public enum WoodcuttingNode { experience = 100.0; level = 45; rewardAmount = 30; + baseLow = 8; + baseHigh = 25; + tierModLow = 4; + tierModHigh = 12.5; break; case 11: reward = 3239; @@ -209,6 +229,10 @@ public enum WoodcuttingNode { experience = 82.5; level = 45; rewardAmount = 30; + baseLow = 18; + baseHigh = 26; + tierModLow = 10; + tierModHigh = 14; break; case 12: reward = 6332; @@ -217,6 +241,10 @@ public enum WoodcuttingNode { experience = 125.0; level = 50; rewardAmount = 35; + baseLow = 8; + baseHigh = 25; + tierModLow = 4; + tierModHigh = 12.5; break; case 13: reward = 10810; @@ -225,6 +253,10 @@ public enum WoodcuttingNode { experience = 140.2; level = 54; rewardAmount = 35; + baseLow = 6; + baseHigh = 30; + tierModLow = 3; + tierModHigh = 13.5; break; case 14: reward = 12581; @@ -249,6 +281,10 @@ public enum WoodcuttingNode { experience = 250.0; level = 75; rewardAmount = 50; + baseLow = 2; + baseHigh = 6; + tierModLow = 1; + tierModHigh = 3; break; case 17: reward = 1513; diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java index 6303a3808..c4489b560 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java @@ -116,7 +116,7 @@ public class WoodcuttingSkillPulse extends Pulse { player.getDialogueInterpreter().sendDialogues(2574, FacialExpression.FURIOUS, RandomFunction.random(2) == 1 ? "You'll blow my cover! I'm meant to be hidden!" : "Will you stop that?"); return true; } - if (!checkReward()) { + if (!checkReward(SkillingTool.getHatchet(player))) { return false; } @@ -316,11 +316,15 @@ public class WoodcuttingSkillPulse extends Pulse { * * @return {@code True} if so. */ - private boolean checkReward() { + private boolean checkReward(SkillingTool tool) { int skill = Skills.WOODCUTTING; - int level = 1 + player.getSkills().getLevel(skill) + player.getFamiliarManager().getBoost(skill); - double hostRatio = Math.random() * (100.0 * resource.getRate()); - double clientRatio = Math.random() * ((level - resource.getLevel()) * (1.0 + SkillingTool.getHatchet(player).getRatio())); + int level = player.getSkills().getLevel(skill) + player.getFamiliarManager().getBoost(skill); + double hostRatio = RandomFunction.randomDouble(100.0); + double lowMod = tool == SkillingTool.BLACK_AXE ? resource.tierModLow / 2 : resource.tierModLow; + double low = resource.baseLow + (tool.ordinal() * lowMod); + double highMod = tool == SkillingTool.BLACK_AXE ? resource.tierModHigh / 2 : resource.tierModHigh; + double high = resource.baseHigh + (tool.ordinal() * highMod); + double clientRatio = RandomFunction.getSkillSuccessChance(low,high,level); return hostRatio < clientRatio; } }