Refactored movement pulse
Fixed bug with Vinesweeper gnomes not checking flags Fixed hunter tracking
This commit is contained in:
@@ -7,12 +7,15 @@ import org.rs09.consts.NPCs
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.interaction.IntType
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import core.tools.END_DIALOGUE
|
||||
import core.api.*
|
||||
|
||||
class MistagEasterEgg : InteractionListener {
|
||||
val DIAMOND = Items.DIAMOND_1601
|
||||
val MISTAG = NPCs.MISTAG_2084
|
||||
val ZANIK_RING = 14649
|
||||
val DRUNK_RENDER = 982
|
||||
|
||||
override fun defineListeners() {
|
||||
onUseWith(IntType.NPC,DIAMOND,MISTAG){ player, _, with ->
|
||||
@@ -30,6 +33,18 @@ class MistagEasterEgg : InteractionListener {
|
||||
player.appearance.transformNPC(-1)
|
||||
return@onUnequip true
|
||||
}
|
||||
|
||||
onEquip(Items.BEER_1917){player, _ ->
|
||||
setAttribute(player, "render-anim-override", DRUNK_RENDER)
|
||||
return@onEquip true
|
||||
}
|
||||
|
||||
onUnequip(Items.BEER_1917){player, _ ->
|
||||
removeAttribute(player, "render-anim-override")
|
||||
player.appearance.setDefaultAnimations()
|
||||
player.appearance.sync()
|
||||
return@onUnequip true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,4 +70,4 @@ class MistagEasterEggDialogue(val hasRing: Boolean): DialogueFile(){
|
||||
override fun npc(vararg messages: String?): Component? {
|
||||
return super.npc(core.game.dialogue.FacialExpression.OLD_HAPPY,*messages)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ abstract class HunterTracking : OptionHandler(){
|
||||
trail.get(currentIndex)
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
TrailDefinition(0,TrailType.LINKING,false,Location(0,0,0),Location(0,0,0),Location(0,0,0))
|
||||
}
|
||||
when(option){
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import core.api.*
|
||||
import core.tools.SystemLogger
|
||||
import core.game.system.command.Privilege
|
||||
import core.game.world.GameWorld
|
||||
import core.game.world.map.path.Pathfinder
|
||||
import core.game.world.repository.Repository
|
||||
import core.tools.Log
|
||||
import java.lang.Integer.min
|
||||
@@ -108,24 +109,14 @@ class RevenantController : TickListener, Commands {
|
||||
NONE {
|
||||
override fun execute(revenantNPC: RevenantNPC) {}
|
||||
},
|
||||
INTENTIONAL_IDLE {
|
||||
private val MAX_IDLE_TIME: Int = 50
|
||||
|
||||
override fun execute(revenantNPC: RevenantNPC) {
|
||||
if (taskTimeRemaining[revenantNPC] == 0) currentTask[revenantNPC] = NONE
|
||||
}
|
||||
|
||||
override fun assign(revenantNPC: RevenantNPC) {
|
||||
taskTimeRemaining[revenantNPC] = RandomFunction.random(MAX_IDLE_TIME)
|
||||
}
|
||||
},
|
||||
RANDOM_ROAM {
|
||||
private val MAX_ROAM_TICKS: Int = 250
|
||||
|
||||
override fun execute(revenantNPC: RevenantNPC) {
|
||||
if (!canMove(revenantNPC)) return
|
||||
|
||||
revenantNPC.pulseManager.run(object : MovementPulse(revenantNPC, getNextLocation(revenantNPC)) {
|
||||
val nextLoc = getNextLocation(revenantNPC)
|
||||
revenantNPC.pulseManager.run(object : MovementPulse(revenantNPC, nextLoc, Pathfinder.SMART) {
|
||||
override fun pulse(): Boolean {
|
||||
if (taskTimeRemaining[revenantNPC]!! <= 0) currentTask[revenantNPC] = NONE
|
||||
return true
|
||||
@@ -139,6 +130,7 @@ class RevenantController : TickListener, Commands {
|
||||
|
||||
fun canMove(revenantNPC: RevenantNPC) : Boolean {
|
||||
return !revenantNPC.walkingQueue.isMoving
|
||||
&& !revenantNPC.pulseManager.hasPulseRunning()
|
||||
&& !revenantNPC.properties.combatPulse.isAttacking
|
||||
&& !revenantNPC.properties.combatPulse.isInCombat
|
||||
}
|
||||
@@ -212,7 +204,7 @@ class RevenantController : TickListener, Commands {
|
||||
RandomFunction.random(-pathVariance, pathVariance),
|
||||
0
|
||||
)
|
||||
revenantNPC.pulseManager.run(object : MovementPulse(revenantNPC, nextLoc) {
|
||||
revenantNPC.pulseManager.run(object : MovementPulse(revenantNPC, nextLoc, Pathfinder.SMART) {
|
||||
override fun pulse(): Boolean {
|
||||
return true
|
||||
}
|
||||
@@ -235,4 +227,4 @@ class RevenantController : TickListener, Commands {
|
||||
abstract fun execute(revenantNPC: RevenantNPC)
|
||||
open fun assign(revenantNPC: RevenantNPC) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user