mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Rewrote altar praying
Added the Tai Bwo Wannai Trio as quest requirement for praying at the tribal statue
This commit is contained in:
parent
6f9a975f7a
commit
0165d373bd
5 changed files with 255 additions and 257 deletions
|
|
@ -0,0 +1,63 @@
|
|||
package content.global.skill.magic
|
||||
|
||||
import core.api.*
|
||||
import core.game.interaction.IntType
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.node.Node
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.link.SpellBookManager.SpellBook
|
||||
import core.game.node.entity.skill.Skills
|
||||
import org.rs09.consts.Scenery
|
||||
import org.rs09.consts.Sounds
|
||||
|
||||
class MagicAltarListener : InteractionListener {
|
||||
override fun defineListeners() {
|
||||
on(intArrayOf(ANCIENT_ALTAR, LUNAR_ALTAR), IntType.SCENERY, "pray-at", "pray") { player, node ->
|
||||
if (meetsRequirements(player, node)) {
|
||||
swapSpellBook(player, node)
|
||||
}
|
||||
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
private fun meetsRequirements(player: Player, altar: Node): Boolean {
|
||||
val level = if (altar.id == ANCIENT_ALTAR) 50 else 65
|
||||
|
||||
if (!hasRequirement(player, if (altar.id == ANCIENT_ALTAR) "Desert Treasure" else "Lunar Diplomacy")) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (!hasLevelStat(player, Skills.MAGIC, level)) {
|
||||
sendMessage(player, "You need a Magic level of at least $level in order to do this.")
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
private fun swapSpellBook(player: Player, altar: Node) {
|
||||
lock(player, 3)
|
||||
playAudio(player, Sounds.PRAYER_RECHARGE_2674)
|
||||
animate(player, 645)
|
||||
|
||||
if (altar.id == ANCIENT_ALTAR) {
|
||||
player.skills.decrementPrayerPoints(player.skills.prayerPoints)
|
||||
}
|
||||
|
||||
if (SpellBook.forInterface(player.spellBookManager.spellBook) == if (altar.id == ANCIENT_ALTAR) SpellBook.ANCIENT else SpellBook.LUNAR) {
|
||||
sendMessage(player, if (altar.id == ANCIENT_ALTAR) "You feel a strange drain upon your memory..." else "Modern spells activated!")
|
||||
player.spellBookManager.setSpellBook(SpellBook.MODERN)
|
||||
player.spellBookManager.update(player)
|
||||
} else {
|
||||
sendMessage(player, if (altar.id == ANCIENT_ALTAR) "You feel a strange wisdom fill your mind..." else "Lunar spells activated!")
|
||||
player.spellBookManager.setSpellBook(if (altar.id == ANCIENT_ALTAR) SpellBook.ANCIENT else SpellBook.LUNAR)
|
||||
player.spellBookManager.update(player)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ANCIENT_ALTAR = Scenery.ALTAR_6552
|
||||
private const val LUNAR_ALTAR = Scenery.ALTAR_17010
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
package content.global.skill.prayer
|
||||
|
||||
import core.api.*
|
||||
import core.game.event.PrayerPointsRechargeEvent
|
||||
import core.game.interaction.IntType
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.QueueStrength
|
||||
import core.game.node.Node
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.link.TeleportManager
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.world.map.Location
|
||||
import org.rs09.consts.Scenery
|
||||
import org.rs09.consts.Sounds
|
||||
|
||||
class PrayerAltarListener : InteractionListener {
|
||||
override fun defineListeners() {
|
||||
on(altars, IntType.SCENERY, "pray", "pray-at") { player, node ->
|
||||
if (node.id == Scenery.TRIBAL_STATUE_3863 && !hasRequirement(player, "Tai Bwo Wannai Trio")) {
|
||||
// https://runescape.wiki/w/Tribal_Statue?oldid=1940922
|
||||
return@on true
|
||||
}
|
||||
|
||||
if (!pray(player, node)) {
|
||||
if (node.id != Scenery.ELIDINIS_STATUETTE_10439) return@on true
|
||||
}
|
||||
|
||||
if (node.id == Scenery.ELIDINIS_STATUETTE_10439) {
|
||||
// https://youtu.be/kEwYhnrQCu8?t=727 & https://youtu.be/b9Wy1JWDes8?t=413
|
||||
setTempLevel(player, Skills.HITPOINTS, getStatLevel(player, Skills.HITPOINTS).plus(7))
|
||||
sendMessage(player, "You feel much healthier after praying in the shrine.")
|
||||
}
|
||||
|
||||
if (node.id == Scenery.CHAOS_ALTAR_412) {
|
||||
lock(player, 4)
|
||||
queueScript(player, 4, QueueStrength.STRONG) {
|
||||
sendMessage(player, "It's a trap!")
|
||||
teleport(player, Location(2583, 9576, 0), TeleportManager.TeleportType.INSTANT)
|
||||
return@queueScript stopExecuting(player)
|
||||
}
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(Scenery.CHAOS_ALTAR_61, IntType.SCENERY, "check") { player, _ ->
|
||||
if (getQuestStage(player, "Merlin's Crystal") == 70) {
|
||||
sendDialogue(player, "You find a small inscription at the bottom of the altar. It reads: 'Snarthon Candtrick Termanto'.")
|
||||
setQuestStage(player, "Merlin's Crystal", 80)
|
||||
} else {
|
||||
sendMessage(player, "An altar of the evil god Zamorak.")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
private fun pray(player: Player, node: Node): Boolean {
|
||||
val prayerLevel = getStatLevel(player, Skills.PRAYER).plus(if (node.id in boostedAltars) 2 else 0)
|
||||
|
||||
if (player.skills.prayerPoints >= prayerLevel.toDouble()) {
|
||||
sendMessage(player, "You already have full prayer points.")
|
||||
return false
|
||||
}
|
||||
|
||||
lock(player, 3)
|
||||
animate(player, 645)
|
||||
playAudio(player, Sounds.PRAYER_RECHARGE_2674)
|
||||
setTempLevel(player, Skills.PRAYER, prayerLevel)
|
||||
sendMessage(player, "You recharge your prayer points.")
|
||||
player.dispatch(PrayerPointsRechargeEvent(node))
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val altars = intArrayOf(
|
||||
Scenery.ALTAR_409,
|
||||
Scenery.ALTAR_2478,
|
||||
Scenery.ALTAR_2479,
|
||||
Scenery.ALTAR_2480,
|
||||
Scenery.ALTAR_2481,
|
||||
Scenery.ALTAR_2482,
|
||||
Scenery.ALTAR_2483,
|
||||
Scenery.ALTAR_2484,
|
||||
Scenery.ALTAR_2485,
|
||||
Scenery.ALTAR_2486,
|
||||
Scenery.ALTAR_2487,
|
||||
Scenery.ALTAR_2488,
|
||||
Scenery.ALTAR_2489,
|
||||
Scenery.ALTAR_2640,
|
||||
Scenery.ALTAR_4008,
|
||||
Scenery.ALTAR_8749,
|
||||
Scenery.ALTAR_10639,
|
||||
Scenery.ALTAR_10640,
|
||||
Scenery.ALTAR_13179,
|
||||
Scenery.ALTAR_13180,
|
||||
Scenery.ALTAR_13181,
|
||||
Scenery.ALTAR_13182,
|
||||
Scenery.ALTAR_13183,
|
||||
Scenery.ALTAR_13184,
|
||||
Scenery.ALTAR_13185,
|
||||
Scenery.ALTAR_13186,
|
||||
Scenery.ALTAR_13187,
|
||||
Scenery.ALTAR_13188,
|
||||
Scenery.ALTAR_13189,
|
||||
Scenery.ALTAR_13190,
|
||||
Scenery.ALTAR_13191,
|
||||
Scenery.ALTAR_13192,
|
||||
Scenery.ALTAR_13193,
|
||||
Scenery.ALTAR_13194,
|
||||
Scenery.ALTAR_13195,
|
||||
Scenery.ALTAR_13196,
|
||||
Scenery.ALTAR_13197,
|
||||
Scenery.ALTAR_13198,
|
||||
Scenery.ALTAR_13199,
|
||||
Scenery.ALTAR_15050,
|
||||
Scenery.ALTAR_15051,
|
||||
Scenery.ALTAR_18254,
|
||||
Scenery.ALTAR_19145,
|
||||
Scenery.ALTAR_20377,
|
||||
Scenery.ALTAR_20378,
|
||||
Scenery.ALTAR_20379,
|
||||
Scenery.ALTAR_24343,
|
||||
Scenery.ALTAR_27306,
|
||||
Scenery.ALTAR_27307,
|
||||
Scenery.ALTAR_27308,
|
||||
Scenery.ALTAR_27309,
|
||||
Scenery.ALTAR_27334,
|
||||
Scenery.ALTAR_27338,
|
||||
Scenery.ALTAR_27339,
|
||||
Scenery.ALTAR_27661,
|
||||
Scenery.ALTAR_30624,
|
||||
Scenery.ALTAR_30726,
|
||||
Scenery.ALTAR_34616,
|
||||
Scenery.ALTAR_36972,
|
||||
Scenery.ALTAR_37630,
|
||||
Scenery.ALTAR_37901,
|
||||
Scenery.ALTAR_37902,
|
||||
Scenery.ALTAR_37903,
|
||||
Scenery.ALTAR_37904,
|
||||
Scenery.ALTAR_37905,
|
||||
Scenery.ALTAR_37906,
|
||||
Scenery.ALTAR_37907,
|
||||
Scenery.ALTAR_37908,
|
||||
Scenery.ALTAR_37909,
|
||||
Scenery.ALTAR_37910,
|
||||
Scenery.ALTAR_37911,
|
||||
Scenery.ALTAR_37912,
|
||||
Scenery.ALTAR_39547,
|
||||
Scenery.ALTAR_39842,
|
||||
Scenery.CHAOS_ALTAR_61,
|
||||
Scenery.CHAOS_ALTAR_411,
|
||||
Scenery.CHAOS_ALTAR_412,
|
||||
Scenery.CHAOS_ALTAR_32079,
|
||||
Scenery.CHAOS_ALTAR_37990,
|
||||
Scenery.GORILLA_STATUE_4858,
|
||||
Scenery.GORILLA_STATUE_4859,
|
||||
Scenery.ALTAR_OF_GUTHIX_410,
|
||||
Scenery.ALTAR_OF_GUTHIX_28698,
|
||||
Scenery.ALTAR_OF_NATURE_3521,
|
||||
Scenery.TRIBAL_STATUE_3863,
|
||||
Scenery.ELIDINIS_STATUETTE_10439,
|
||||
Scenery.DECAYED_ALTAR_37985
|
||||
)
|
||||
private val boostedAltars = intArrayOf(Scenery.ALTAR_2640, Scenery.ALTAR_OF_NATURE_3521)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,254 +0,0 @@
|
|||
package content.global.skill.prayer;
|
||||
|
||||
import core.cache.def.impl.SceneryDefinition;
|
||||
import core.game.component.Component;
|
||||
import core.game.node.entity.player.link.prayer.PrayerType;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.interaction.OptionHandler;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.SpellBookManager.SpellBook;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.node.entity.player.link.quest.Quest;
|
||||
import core.game.world.map.Location;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
import org.rs09.consts.Sounds;
|
||||
|
||||
import static core.api.ContentAPIKt.hasRequirement;
|
||||
import static core.api.ContentAPIKt.playAudio;
|
||||
|
||||
/**
|
||||
* Handles the praying at an alter.
|
||||
* @author Vexia
|
||||
*/
|
||||
@Initializable
|
||||
public class PrayerAltarPlugin extends OptionHandler {
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
SceneryDefinition.setOptionHandler("pray-at", this);
|
||||
SceneryDefinition.setOptionHandler("pray", this);
|
||||
SceneryDefinition.forId(61).getHandlers().put("option:check", this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(Player player, Node node, String option) {
|
||||
if (option.equalsIgnoreCase("check")) {
|
||||
final Quest quest = player.getQuestRepository().getQuest("Merlin's Crystal");
|
||||
if (quest.getStage(player) == 70) {
|
||||
player.getDialogueInterpreter().sendDialogue("You find a small inscription at the bottom of the altar. It reads:", "'Snarthon Candtrick Termanto'.");
|
||||
quest.setStage(player, 80);
|
||||
return true;
|
||||
}
|
||||
player.getPacketDispatch().sendMessage("An altar of the evil god Zamorak.");
|
||||
return true;
|
||||
}
|
||||
Altar altar = Altar.forId(node.getId());
|
||||
if (altar != null) {
|
||||
altar.pray(player);
|
||||
visualize(player);
|
||||
return true;
|
||||
}
|
||||
if (player.getSkills().getPrayerPoints() == player.getSkills().getStaticLevel(Skills.PRAYER)) {
|
||||
player.getPacketDispatch().sendMessage("You already have full prayer points.");
|
||||
return true;
|
||||
}
|
||||
visualize(player);
|
||||
player.getSkills().rechargePrayerPoints();
|
||||
player.getPacketDispatch().sendMessage("You recharge your Prayer points.");
|
||||
if (node.getId() == 2640) {
|
||||
player.getSkills().setLevel(Skills.PRAYER, player.getSkills().getStaticLevel(Skills.PRAYER) + 2);
|
||||
}
|
||||
if (node.getId() == 409
|
||||
&& player.getLocation().withinDistance(new Location(3209, 3495, 1))
|
||||
&& player.getPrayer().getActive().contains(PrayerType.SMITE)) {
|
||||
player.getAchievementDiaryManager().finishTask(player,DiaryType.VARROCK,2, 4);
|
||||
}
|
||||
if (node.getId() == 39842
|
||||
&& player.getLocation().withinDistance(new Location(2995, 3177, 0))) {
|
||||
player.getAchievementDiaryManager().finishTask(player,DiaryType.FALADOR,0, 13);
|
||||
}
|
||||
// Seers task can be completed with either of camelot altar or seers church altar
|
||||
if (node.getId() == 19145
|
||||
&& player.getLocation().withinDistance(new Location(2749, 3496, 1))) {
|
||||
player.getAchievementDiaryManager().finishTask(player,DiaryType.SEERS_VILLAGE,0, 10);
|
||||
}
|
||||
if (node.getId() == 409
|
||||
&& player.getLocation().withinDistance(new Location(2694, 3462, 0))) {
|
||||
player.getAchievementDiaryManager().finishTask(player,DiaryType.SEERS_VILLAGE,0, 10);
|
||||
}
|
||||
|
||||
if (node.getLocation().equals(new Location(2571, 9499, 0))) {
|
||||
player.teleport(new Location(2583, 9576, 0));
|
||||
player.sendMessage("It's a trap!");
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Visualizes the prayer.
|
||||
* @param player the player.
|
||||
*/
|
||||
public void visualize(Player player) {
|
||||
player.lock(3);
|
||||
playAudio(player, Sounds.PRAYER_RECHARGE_2674);
|
||||
player.animate(Animation.create(645));
|
||||
}
|
||||
|
||||
/**
|
||||
* An altar.
|
||||
* @author Vexia
|
||||
*/
|
||||
public enum Altar {
|
||||
ANCIENT(6552, SpellBook.ANCIENT.getInterfaceId(), "You feel a strange wisdom fill your mind...", "You feel a strange drain upon your memory...") {
|
||||
@Override
|
||||
public void pray(Player player) {
|
||||
if (!hasRequirement(player, "Desert Treasure"))
|
||||
return;
|
||||
if (player.getSkills().getStaticLevel(Skills.MAGIC) < 50) {
|
||||
player.sendMessage("You need a Magic level of at least 50 in order to do this.");
|
||||
return;
|
||||
}
|
||||
drain(player);
|
||||
if (!isPrayerType(player)) {
|
||||
switchToBook(player);
|
||||
player.sendMessage(getMessages()[0]);
|
||||
} else {
|
||||
revert(player);
|
||||
player.sendMessage(getMessages()[1]);
|
||||
}
|
||||
}
|
||||
},
|
||||
LUNAR(17010, SpellBook.LUNAR.getInterfaceId(), "Lunar spells activated!", "Modern spells activated!") {
|
||||
@Override
|
||||
public void pray(Player player) {
|
||||
if (!hasRequirement(player, "Lunar Diplomacy"))
|
||||
return;
|
||||
if (player.getSkills().getStaticLevel(Skills.MAGIC) < 65) {
|
||||
player.sendMessage("You need a Magic level of at least 65 in order to do this.");
|
||||
return;
|
||||
}
|
||||
if (!isPrayerType(player)) {
|
||||
switchToBook(player);
|
||||
player.sendMessage(getMessages()[0]);
|
||||
} else {
|
||||
revert(player);
|
||||
player.sendMessage(getMessages()[1]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* The id.
|
||||
*/
|
||||
private int id;
|
||||
|
||||
/**
|
||||
* The book.
|
||||
*/
|
||||
private int book;
|
||||
|
||||
/**
|
||||
* The messages.
|
||||
*/
|
||||
private String[] messages;
|
||||
|
||||
/**
|
||||
* Constructs a new {@Code Altar} {@Code Object}
|
||||
* @param id the id.
|
||||
* @param book the book.
|
||||
* @param messages the messages.
|
||||
*/
|
||||
private Altar(int id, int book, String... messages) {
|
||||
this.id = id;
|
||||
this.book = book;
|
||||
this.messages = messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prays at the altar.
|
||||
* @param player the player.
|
||||
*/
|
||||
public void pray(Player player) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverts the book.
|
||||
* @param player the player.
|
||||
*/
|
||||
public void revert(Player player) {
|
||||
player.getSpellBookManager().setSpellBook(SpellBook.MODERN);
|
||||
player.getInterfaceManager().openTab(new Component(SpellBook.values()[SpellBook.MODERN.ordinal()].getInterfaceId()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Drains the player.
|
||||
* @param player the player.
|
||||
*/
|
||||
public void drain(Player player) {
|
||||
player.getSkills().decrementPrayerPoints(player.getSkills().getPrayerPoints());
|
||||
}
|
||||
|
||||
/**
|
||||
* Switches to the book.
|
||||
* @param player the player.
|
||||
*/
|
||||
public void switchToBook(Player player) {
|
||||
player.getSpellBookManager().setSpellBook(SpellBook.forInterface(book));
|
||||
player.getInterfaceManager().openTab(new Component(book));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if it is the prayer type.
|
||||
* @param player the player.
|
||||
* @return true if so.
|
||||
*/
|
||||
public boolean isPrayerType(Player player) {
|
||||
return player.getSpellBookManager().getSpellBook() == book;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an altar.
|
||||
* @param id the id.
|
||||
* @return the altar.
|
||||
*/
|
||||
public static Altar forId(int id) {
|
||||
for (Altar altar : values()) {
|
||||
if (id == altar.getId()) {
|
||||
return altar;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the id.
|
||||
* @return the id
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the book.
|
||||
* @return the book
|
||||
*/
|
||||
public int getBook() {
|
||||
return book;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the messages.
|
||||
* @return the messages
|
||||
*/
|
||||
public String[] getMessages() {
|
||||
return messages;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@ import core.game.diary.DiaryEventHookBase
|
|||
import core.game.diary.DiaryLevel
|
||||
import core.game.event.*
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.world.map.Location
|
||||
|
||||
class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) {
|
||||
companion object {
|
||||
|
|
@ -283,4 +284,14 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPrayerPointsRecharged(player: Player, event: PrayerPointsRechargeEvent) {
|
||||
if (event.altar.id == Scenery.ALTAR_39842 && event.altar.location == Location(2995, 3177, 0)) {
|
||||
finishTask(
|
||||
player,
|
||||
DiaryLevel.EASY,
|
||||
EasyTasks.PORT_SARIM_RECHARGE_PRAYER_POINTS
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@ import core.game.world.map.Location
|
|||
import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import org.rs09.consts.Scenery
|
||||
|
||||
class SeersVillageAchievementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) {
|
||||
companion object {
|
||||
|
|
@ -288,7 +289,7 @@ class SeersVillageAchievementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE)
|
|||
finishTask(
|
||||
player,
|
||||
DiaryLevel.HARD,
|
||||
HardTasks.HIGH_ALCH_MAGIC_SHORTBOW_INSIDE_BANK
|
||||
HardTasks.HIGH_ALCH_MAGIC_SHORTBOW_INSIDE_BANK
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -299,7 +300,7 @@ class SeersVillageAchievementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE)
|
|||
finishTask(
|
||||
player,
|
||||
DiaryLevel.HARD,
|
||||
HardTasks.DIAL_FAIRY_RING_MCGRUBORS_WOOD
|
||||
HardTasks.DIAL_FAIRY_RING_MCGRUBORS_WOOD
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -309,8 +310,20 @@ class SeersVillageAchievementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE)
|
|||
finishTask(
|
||||
player,
|
||||
DiaryLevel.EASY,
|
||||
EasyTasks.BUY_CANDLE
|
||||
EasyTasks.BUY_CANDLE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPrayerPointsRecharged(player: Player, event: PrayerPointsRechargeEvent) {
|
||||
if (player.viewport.region.id == 10806) {
|
||||
if (event.altar.id == Scenery.ALTAR_409 || event.altar.id == Scenery.ALTAR_19145) {
|
||||
finishTask(
|
||||
player,
|
||||
DiaryLevel.EASY,
|
||||
EasyTasks.PRAY_AT_ALTAR
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue