diff --git a/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt
index a75f6b7a9..500989b2c 100644
--- a/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt
+++ b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt
@@ -13,16 +13,21 @@ import org.rs09.consts.Scenery
import content.region.misthalin.varrock.dialogue.ElsieDialogue
import content.global.handlers.iface.FairyRing
import content.global.skill.magic.TeleportMethod
-import content.global.skill.magic.spellconsts.Modern
+import core.api.inBorders
import core.game.diary.AreaDiaryTask
import core.game.diary.DiaryEventHookBase
import core.game.diary.DiaryLevel
import core.game.event.*
+import core.game.node.entity.player.link.SpellBookManager
+import core.game.node.entity.skill.Skills
class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) {
companion object {
private val VARROCK_ROOF_AREA = ZoneBorders(3201, 3467, 3225, 3497, 3)
private val SOS_LEVEL_2_AREA = ZoneBorders(2040, 5241, 2046, 5246)
+ private val VARROCK_PALACE = ZoneBorders(3201, 3456, 3227, 3468)
+ private val CHAMPIONS_GUILD = ZoneBorders(3188, 3361, 3194, 3362)
+ private val OZIACH_SHOP = ZoneBorders(3066, 3514,3070, 3518)
private val STRAY_DOGS = arrayOf(
NPCs.STRAY_DOG_4766, NPCs.STRAY_DOG_4767,
@@ -103,6 +108,12 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) {
SOS_LEVEL_2_AREA,
DiaryLevel.EASY,
EasyTasks.VISIT_SOS_LEVEL2
+ ),
+
+ AreaDiaryTask(
+ CHAMPIONS_GUILD,
+ DiaryLevel.MEDIUM,
+ MediumTasks.CHAMPIONS_GUILD_VISIT
)
)
@@ -167,6 +178,31 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) {
EasyTasks.EDGEVILLE_ENTER_DUNGEON_SOUTH
)
}
+ 12598 -> if (event.target.id == 9312 && player.skills.getLevel(Skills.AGILITY, true) >= 21) {
+ finishTask(
+ player,
+ DiaryLevel.MEDIUM,
+ MediumTasks.USE_GE_UNDER_WALL_SHORTCUT
+ )
+ }
+ }
+
+ if (event.option == "pickpocket" && (event.target.id == NPCs.GUARD_5920 && inBorders(player, VARROCK_PALACE))) {
+ finishTask(
+ player,
+ DiaryLevel.MEDIUM,
+ MediumTasks.PALACE_PICKPOCKET_GUARD
+ )
+ }
+
+ if (player.questRepository.isComplete("Dragon Slayer")) {
+ if (event.target.id == NPCs.OZIACH_747 && event.option == "trade" && inBorders(player, OZIACH_SHOP)) {
+ finishTask(
+ player,
+ DiaryLevel.MEDIUM,
+ MediumTasks.OZIACH_BROWSE_STORE
+ )
+ }
}
}
@@ -226,14 +262,12 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) {
}
override fun onSpellCast(player: Player, event: SpellCastEvent) {
- when (event.spellId) {
- Modern.VARROCK_TELEPORT -> {
- finishTask(
- player,
- DiaryLevel.MEDIUM,
- MediumTasks.CAST_VARROCK_TELEPORT_SPELL
- )
- }
+ if (event.spellBook == SpellBookManager.SpellBook.MODERN && event.spellId == 15) {
+ finishTask(
+ player,
+ DiaryLevel.MEDIUM,
+ MediumTasks.CAST_VARROCK_TELEPORT_SPELL
+ )
}
}
diff --git a/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt
index 8814d351a..4d6187d7c 100644
--- a/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt
+++ b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt
@@ -1,6 +1,5 @@
package content.region.misthalin.varrock.handlers
-import core.game.node.entity.player.link.diary.DiaryType
import core.plugin.Initializable
import org.rs09.consts.Scenery
import core.game.interaction.IntType
@@ -22,14 +21,8 @@ class ChampionsGuildDoor : InteractionListener {
player.packetDispatch.sendMessage("The door won't open - you need at least 32 Quest Points.")
} else {
if (player.location.x == 3191 && player.location.y == 3363) {
- player.dialogueInterpreter.sendDialogues(
- 198,
- null,
- "Greetings bold adventurer. Welcome to the guild of",
- "Champions."
- )
+ player.dialogueInterpreter.sendDialogues(198, null, "Greetings bold adventurer. Welcome to the guild of", "Champions.")
}
- player.achievementDiaryManager.finishTask(player, DiaryType.VARROCK, 1, 1)
core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node as core.game.node.scenery.Scenery)
}
return@on true
diff --git a/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt
index 5920138df..159ec8139 100644
--- a/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt
+++ b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt
@@ -4,7 +4,6 @@ import core.api.*
import core.game.node.entity.impl.ForceMovement
import core.game.node.entity.impl.ForceMovement.direction
import core.game.node.entity.player.Player
-import core.game.node.entity.player.link.diary.DiaryType
import core.game.node.entity.skill.Skills
import core.game.node.scenery.Scenery
import core.game.system.task.Pulse
@@ -93,8 +92,6 @@ class GrandExchangeShortcut : InteractionListener {
path[2],
CLIMB_UP
)
- // Use the shortcut under the wall, north-west of the Grand
Exchange
- player.achievementDiaryManager.finishTask(player, DiaryType.VARROCK, 1, 8)
unlock(player)
return true
}