Refactored how quests are referred to internally

Fixed numerous requirement checks for Rag and Bone Man II, The Lost Tribe, The Tourist Trap, Waterfall Quest and The Fremennik Trials
This commit is contained in:
Player Name
2025-02-09 02:37:14 +00:00
committed by Ryan
parent c03947e0b0
commit d91f77c294
577 changed files with 2634 additions and 2138 deletions
@@ -10,6 +10,7 @@ import org.rs09.consts.Items
import core.game.interaction.InteractionListener
import core.game.interaction.IntType
import core.game.world.GameWorld
import content.data.Quests
private val VALID_LOGS = intArrayOf(Items.LOGS_1511, Items.OAK_LOGS_1521,Items.WILLOW_LOGS_1519,Items.MAPLE_LOGS_1517,Items.YEW_LOGS_1515,Items.MAGIC_LOGS_1513)
private val FILL_ANIM = Animation(9136)
@@ -24,8 +25,8 @@ class AFUBeaconListeners : InteractionListener {
override fun defineListeners() {
on(IntType.SCENERY,"add-logs","light"){ player, node ->
val beacon = AFUBeacon.forLocation(node.location)
val questComplete = player.questRepository.isComplete("All Fired Up")
val questStage = player.questRepository.getStage("All Fired Up")
val questComplete = player.questRepository.isComplete(Quests.ALL_FIRED_UP)
val questStage = player.questRepository.getStage(Quests.ALL_FIRED_UP)
if ((beacon != AFUBeacon.RIVER_SALVE && beacon != AFUBeacon.RAG_AND_BONE && !questComplete)
|| (beacon == AFUBeacon.RIVER_SALVE && questStage < 20 && !questComplete)
@@ -68,7 +69,7 @@ class AFUBeaconListeners : InteractionListener {
}
AFUBeacon.GOBLIN_VILLAGE -> {
if(!player.questRepository.isComplete("Lost Tribe")){
if(!player.questRepository.isComplete(Quests.THE_LOST_TRIBE)){
player.dialogueInterpreter.sendDialogues(NPC(beacon.keeper).getShownNPC(player), core.game.dialogue.FacialExpression.THINKING,"We no trust you outsider. You no light our beacon.","(Complete Lost Tribe to use this beacon.)")
return
}
@@ -151,7 +152,7 @@ class AFUBeaconListeners : InteractionListener {
experience += session?.getBonusExperience() ?: 0.0
player.skills.addExperience(Skills.FIREMAKING,experience)
} else {
player.questRepository.getQuest("All Fired Up").setStage(player, player.questRepository.getStage("All Fired Up") + 10)
player.questRepository.getQuest(Quests.ALL_FIRED_UP).setStage(player, player.questRepository.getStage(Quests.ALL_FIRED_UP) + 10)
}
}
2 -> player.unlock().also { return true }
@@ -183,7 +184,7 @@ class AFUBeaconListeners : InteractionListener {
if(questComplete){
session?.refreshTimer(beacon,logs.id)
} else {
player.questRepository.getQuest("All Fired Up").setStage(player, 80)
player.questRepository.getQuest(Quests.ALL_FIRED_UP).setStage(player, 80)
}
}
2 -> player.unlock().also { return true }
@@ -1,5 +1,6 @@
package content.minigame.allfiredup
import content.data.Quests
import core.game.node.entity.impl.ForceMovement
import core.game.node.entity.player.Player
import core.game.node.entity.skill.Skills
@@ -26,7 +27,7 @@ class AFURepairClimbHandler : InteractionListener {
override fun defineListeners() {
on(repairIDs, IntType.SCENERY, "repair"){ player, _ ->
if (hasRequirement(player, "All Fired Up")){
if (hasRequirement(player, Quests.ALL_FIRED_UP)){
val rco: RepairClimbObject? = getClimbingObject(player)
repair(player,rco!!)
return@on true
@@ -13,6 +13,7 @@ import org.rs09.consts.Items
import core.game.dialogue.DialogueFile
import core.game.interaction.InteractionListener
import core.game.interaction.IntType
import content.data.Quests
/**
* Adds functionality to the pharoah's scepter
@@ -23,7 +24,7 @@ class PharaohSceptre : InteractionListener {
val SCEPTRES = intArrayOf(Items.PHARAOHS_SCEPTRE_9044, Items.PHARAOHS_SCEPTRE_9046, Items.PHARAOHS_SCEPTRE_9048, Items.PHARAOHS_SCEPTRE_9050)
on(SCEPTRES, IntType.ITEM, "teleport", "operate"){ player, node ->
if (!hasRequirement(player, "Icthlarin's Little Helper"))
if (!hasRequirement(player, Quests.ICTHLARINS_LITTLE_HELPER))
return@on true
val sceptre = node.asItem()
@@ -23,6 +23,7 @@ import core.game.interaction.InteractionListener
import core.game.interaction.IntType
import core.game.world.GameWorld
import core.plugin.ClassScanner
import content.data.Quests
class GardenObjectsPlugin : InteractionListener {
@@ -503,7 +504,7 @@ class GardenObjectsPlugin : InteractionListener {
override fun open(vararg args: Any): Boolean {
npc = args[0] as NPC
quest = player.questRepository.getQuest("Prince Ali Rescue")
quest = player.questRepository.getQuest(Quests.PRINCE_ALI_RESCUE)
when (quest!!.getStage(player)) {
100 -> {
interpreter.sendDialogues(player, null, "I'd like to talk about sq'irks.")
@@ -11,6 +11,7 @@ import core.game.world.map.Location;
import core.game.world.update.flag.context.Graphics;
import static core.api.ContentAPIKt.hasRequirement;
import content.data.Quests;
/**
* Dialogue for Sorceress Apprentice
@@ -238,7 +239,7 @@ public class SorceressApprenticeDialogue extends DialoguePlugin {
}
public static void teleport(final NPC npc, final Player player) {
if (!hasRequirement(player, "Prince Ali Rescue"))
if (!hasRequirement(player, Quests.PRINCE_ALI_RESCUE))
return;
npc.faceTemporary(player, 4);
npc.graphics(new Graphics(108));