Authenticity fix for saradomin brew (added bias to linear formula). Fixes #304.

This commit is contained in:
Avi Weinstock
2022-02-26 05:36:06 +00:00
committed by Ryan
parent 509d73ff2c
commit b6457acd15
2 changed files with 8 additions and 6 deletions
@@ -317,7 +317,7 @@ public enum Consumables {
AGILITY(new Potion(new int[] {3032, 3034, 3036, 3038}, new SkillEffect(Skills.AGILITY, 3, 0))),
HUNTER(new Potion(new int[] {9998, 10000, 10002, 10004}, new SkillEffect(Skills.HUNTER, 3, 0))),
RESTORE(new Potion(new int[] {2430, 127, 129, 131}, new RestoreEffect(10, 0.3))),
SARA_BREW(new Potion(new int[] {6685, 6687, 6689, 6691}, new MultiEffect(new PercentHeal(.15), new SkillEffect(Skills.ATTACK, 0, -0.10), new SkillEffect(Skills.STRENGTH, 0, -0.10), new SkillEffect(Skills.MAGIC, 0, -0.10), new SkillEffect(Skills.RANGE, 0, -0.10), new SkillEffect(Skills.DEFENCE, 2, 0.2)))),
SARA_BREW(new Potion(new int[] {6685, 6687, 6689, 6691}, new MultiEffect(new PercentHeal(2, .15), new SkillEffect(Skills.ATTACK, 0, -0.10), new SkillEffect(Skills.STRENGTH, 0, -0.10), new SkillEffect(Skills.MAGIC, 0, -0.10), new SkillEffect(Skills.RANGE, 0, -0.10), new SkillEffect(Skills.DEFENCE, 2, 0.2)))),
SUMMONING(new Potion(new int[] {12140, 12142, 12144, 12146}, new SummoningEffect(7, 0.25))),
COMBAT(new Potion(new int[] {9739, 9741, 9743, 9745}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, .1), new SkillEffect(Skills.ATTACK, 3, .1)))),
ENERGY(new Potion(new int[] {3008, 3010, 3012, 3014}, new MultiEffect(new EnergyEffect(10), new HealingEffect(3)))),
@@ -4,18 +4,20 @@ import core.game.node.entity.player.Player;
import core.game.content.consumable.ConsumableEffect;
public class PercentHeal extends ConsumableEffect {
double perc = 0.0;
int base = 0;
double percent = 0.0;
public PercentHeal(double percent){
perc = percent;
public PercentHeal(int base, double percent){
this.base = base;
this.percent = percent;
}
@Override
public void activate(Player p) {
int maxHp = p.getSkills().getMaximumLifepoints();
int curHp = p.getSkills().getLifepoints();
int amount = (int) Math.floor(maxHp * perc);
amount = Math.min(amount, (int)((1.0 + perc) * (double)maxHp - (double)curHp));
int amount = (int) Math.floor(maxHp * percent);
amount = base + Math.min(amount, (int)((1.0 + percent) * (double)maxHp - (double)curHp));
p.getSkills().healNoRestrictions(amount);
}
}