Originally Posted by
Java100
For one, the de-boost timer start depends on the current boost of the stat and your actual level. The formula is something bizarre like:
Code:
if (getRangeLevel + boost[range] >= X || boost[range] <0 && getRangeLevelNonBoosted >= getRangeLevel)
startTimer = 30 seconds;
and some descriptions like leech special attack and run energy dont have stats. I know leech special attack always drains 10%, but for run energy the calculation is something to do with the hit...
What is the lowest your boost can be (neg integer) with X prayer on, what about with X and Y prayer variations... The varp that sets the boost is a weird one in itself, theres obviously some extra stuff overlooked in the definitions
A lot of unexplained shit...
Code:
private static final void addLeechedStatsTask() {
CoresManager.fastExecutor.schedule(new TimerTask() {
@Override
public void run() {
try {
for (Player player : getPlayers()) {
if (player == null || player.isDead() || !player.isRunning())
continue;
for (int i = 0; i < 4; i++) {
if (player.getPrayer().leechBonuses[i] == 1 || player.getPrayer().leechBonuses[i] == -1) {
player.getPackets()
.sendGameMessage("Your "
+ (i == 0 ? "Attack"
: i == 1 ? "Strength"
: i == 2 ? "Defence" : i == 3 ? "Ranging" : "Magic")
+ " is now unaffected by sap and leech curses.", true);
}
if (player.getPrayer().leechBonuses[i] < 0) {
player.getPrayer().increase(i);
}
if (player.getPrayer().leechBonuses[i] > 0) {
player.getPrayer().decrease(i);
}
}
}
} catch (Throwable e) {
Logger.handle(e);
}
}
}, 0, 20000);
}
That's atleast how i would handle the draining, haven't tried this ingame tho.