From 54c2ae11f6f3e51fb1266f83d425ee7640af2c58 Mon Sep 17 00:00:00 2001 From: ceikry Date: Fri, 13 Aug 2021 17:00:36 -0500 Subject: [PATCH] Refactor prayer changes into a more organized location --- .../core/game/node/entity/player/Player.java | 21 ++--------------- .../entity/player/link/prayer/Prayer.java | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Server/src/main/java/core/game/node/entity/player/Player.java b/Server/src/main/java/core/game/node/entity/player/Player.java index 09814cb0b..e119932bc 100644 --- a/Server/src/main/java/core/game/node/entity/player/Player.java +++ b/Server/src/main/java/core/game/node/entity/player/Player.java @@ -355,8 +355,6 @@ public class Player extends Entity { private int archeryTotal = 0; - private int prayerActiveTicks = 0; - /** * Constructs a new {@code Player} {@code Object}. * @param details The player's details. @@ -500,24 +498,9 @@ public class Player extends Entity { details.getSession().disconnect(); getSession().setLastPing(Long.MAX_VALUE); } - //Decrements prayer points - if(!prayer.getActive().isEmpty() && prayerActiveTicks % 2 == 0){ - double amountDrain = 0; - for(PrayerType type : prayer.getActive()){ - double drain = type.getDrain(); - double bonus = (1/30f) * prayer.getPlayer().getProperties().getBonuses()[12]; - drain = drain * (1 + bonus); - drain = 0.6 / drain; - amountDrain += drain; - } - if(SkillcapePerks.isActive(SkillcapePerks.DIVINE_FAVOR,prayer.getPlayer()) && RandomFunction.random(100) <= 10){ - amountDrain = 0; - } - getSkills().decrementPrayerPoints(amountDrain); - } else { - prayerActiveTicks = 0; - } + //Decrements prayer points + getPrayer().tick(); } @Override diff --git a/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java b/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java index 81474255a..1db718adb 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java +++ b/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java @@ -12,6 +12,7 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; +import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; import java.util.ArrayList; import java.util.List; @@ -33,6 +34,8 @@ public final class Prayer { */ private final Player player; + private int prayerActiveTicks = 0; + /** * Constructs a new {@code Prayer} {@code Object}. */ @@ -110,6 +113,26 @@ public final class Prayer { } } + public void tick() { + if(!getActive().isEmpty() && prayerActiveTicks % 2 == 0){ + double amountDrain = 0; + for(PrayerType type : getActive()){ + double drain = type.getDrain(); + double bonus = (1/30f) * getPlayer().getProperties().getBonuses()[12]; + drain = drain * (1 + bonus); + drain = 0.6 / drain; + amountDrain += drain; + } + if(SkillcapePerks.isActive(SkillcapePerks.DIVINE_FAVOR, getPlayer()) && RandomFunction.random(100) <= 10){ + amountDrain = 0; + } + + getPlayer().getSkills().decrementPrayerPoints(amountDrain); + } else { + prayerActiveTicks = 0; + } + } + /** * Gets the skill bonus for the given skill id. * @param skillId The skill id.