Perfect woodcutting success rates

This commit is contained in:
Ceikry 2021-03-16 22:59:56 -05:00
parent 85f4c973f5
commit 7ae63a5910
2 changed files with 45 additions and 5 deletions

View file

@ -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;

View file

@ -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;
}
}