Rewrote PrayerEffect into kotlin
Corrected calculation used for prayer restoring effects
This commit is contained in:
@@ -1,19 +0,0 @@
|
|||||||
package content.data.consumables.effects;
|
|
||||||
|
|
||||||
import core.game.consumable.ConsumableEffect;
|
|
||||||
import core.game.node.entity.player.Player;
|
|
||||||
import core.game.node.entity.skill.Skills;
|
|
||||||
|
|
||||||
public class PrayerEffect extends ConsumableEffect {
|
|
||||||
double base, bonus;
|
|
||||||
public PrayerEffect(double base, double bonus){
|
|
||||||
this.base = base;
|
|
||||||
this.bonus = bonus;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void activate(Player p) {
|
|
||||||
int level = p.getSkills().getStaticLevel(Skills.PRAYER);
|
|
||||||
double amt = base + (level * bonus);
|
|
||||||
p.getSkills().incrementPrayerPoints(amt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package content.data.consumables.effects
|
||||||
|
|
||||||
|
import core.api.*
|
||||||
|
import core.game.consumable.ConsumableEffect
|
||||||
|
import core.game.node.entity.player.Player
|
||||||
|
import core.game.node.entity.skill.Skills
|
||||||
|
import org.rs09.consts.Items
|
||||||
|
import kotlin.math.floor
|
||||||
|
|
||||||
|
class PrayerEffect(var base: Double, var bonus: Double) : ConsumableEffect() {
|
||||||
|
override fun activate(player: Player?) {
|
||||||
|
if(player == null) return
|
||||||
|
val level = getStatLevel(player, Skills.PRAYER)
|
||||||
|
var b = bonus
|
||||||
|
if(inInventory(player, Items.HOLY_WRENCH_6714))
|
||||||
|
b += 0.02 // Leaving this in for futureproofing. Current update is for properly rounding down.
|
||||||
|
val amount = floor(base + (level * b))
|
||||||
|
modPrayerPoints(player, amount)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -61,6 +61,7 @@ import core.game.system.config.ServerConfigParser
|
|||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
import core.game.world.GameWorld.Pulser
|
import core.game.world.GameWorld.Pulser
|
||||||
import core.game.world.repository.Repository
|
import core.game.world.repository.Repository
|
||||||
|
import kotlin.math.absoluteValue
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a skilling tool which the player has the level to use and is in their inventory.
|
* Gets a skilling tool which the player has the level to use and is in their inventory.
|
||||||
@@ -2260,4 +2261,15 @@ fun addDialogueAction(player: Player, action: core.game.dialogue.DialogueAction)
|
|||||||
player.dialogueInterpreter.addAction(action)
|
player.dialogueInterpreter.addAction(action)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modifies prayer points by value
|
||||||
|
* @param player the player to modify prayer points
|
||||||
|
* @param amount the amount of points to modify by (positive for increment, negative for decrement)
|
||||||
|
*/
|
||||||
|
fun modPrayerPoints(player: Player, amount: Double) {
|
||||||
|
if(amount > 0) player.skills.incrementPrayerPoints(amount)
|
||||||
|
else if(amount < 0) player.skills.decrementPrayerPoints(amount.absoluteValue)
|
||||||
|
else return
|
||||||
|
}
|
||||||
|
|
||||||
private class ContentAPI
|
private class ContentAPI
|
||||||
Reference in New Issue
Block a user