Overhauled the Lumbridge jobs system to be more authentic

Added new class of job - bone burying
Made the Task List item functional
Overhauled the dialogues of all of the applicable employers to be more authentic to 2009
Players must now return to the employer who gave them the job to turn it in
Added development command ::clearjob to clear the player's current job
This commit is contained in:
Swizey
2023-02-14 05:30:03 +00:00
committed by Ryan
parent 0d127b109a
commit 79696dfdde
19 changed files with 993 additions and 466 deletions
+1
View File
@@ -5,6 +5,7 @@ import core.game.event.*
object Event {
@JvmStatic val ResourceProduced = ResourceProducedEvent::class.java
@JvmStatic val NPCKilled = NPCKillEvent::class.java
@JvmStatic val BoneBuried = BoneBuryEvent::class.java
@JvmStatic val Teleported = TeleportEvent::class.java
@JvmStatic val FireLit = LitFireEvent::class.java
@JvmStatic val LightSourceLit = LitLightSourceEvent::class.java
@@ -15,6 +15,7 @@ import content.global.skill.magic.TeleportMethod
data class ResourceProducedEvent(val itemId: Int, val amount: Int, val source: Node, val original: Int = -1) : Event
data class NPCKillEvent(val npc: NPC) : Event
data class BoneBuryEvent(val boneId: Int) : Event
data class TeleportEvent(val type: TeleportType, val method: TeleportMethod, val source: Any, val location: Location) : Event
data class LitFireEvent(val logId: Int) : Event
data class LitLightSourceEvent(val litLightSourceId: Int) : Event
@@ -1,5 +1,7 @@
package core.game.system.command.sets
import content.global.activity.jobs.JobManager
import core.api.removeAttribute
import core.api.sendMessage
import core.cache.Cache
import core.cache.def.impl.DataMap
@@ -51,6 +53,15 @@ class DevelopmentCommandSet : CommandSet(Privilege.ADMIN) {
sendMessage(player, "All achievement diaries cleared successfully.")
}
define("clearjob", Privilege.ADMIN) { player, _ ->
val playerJobManager = JobManager.getInstance(player)
playerJobManager.job = null
playerJobManager.jobAmount = -1
playerJobManager.jobOriginalAmount = -1
sendMessage(player, "Job cleared successfully.")
}
define("region", Privilege.STANDARD, "", "Prints your current Region ID.") {player, args ->
sendMessage(player, "Region ID: ${player.viewport.region.regionId}")
}