Implemented Draynor Manor agility shortcut
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package content.region.misthalin.draynor.handlers
|
||||||
|
|
||||||
|
import content.global.skill.agility.AgilityHandler
|
||||||
|
import core.api.hasLevelDyn
|
||||||
|
import core.api.sendDialogue
|
||||||
|
import core.game.interaction.IntType
|
||||||
|
import core.game.interaction.InteractionListener
|
||||||
|
import core.game.node.entity.skill.Skills
|
||||||
|
import core.game.world.map.Direction
|
||||||
|
import core.game.world.update.flag.context.Animation
|
||||||
|
import org.rs09.consts.Scenery
|
||||||
|
|
||||||
|
class DraynorManorShortcutListener : InteractionListener {
|
||||||
|
override fun defineListeners() {
|
||||||
|
|
||||||
|
val BROKEN_RAILING = Scenery.BROKEN_RAILING_37703
|
||||||
|
val SQUEEZE_ANIMATION = 3844
|
||||||
|
|
||||||
|
on(BROKEN_RAILING, IntType.SCENERY, "squeeze-through") { player, _ ->
|
||||||
|
if (!hasLevelDyn(player, Skills.AGILITY, 28)) {
|
||||||
|
sendDialogue(player, "You need an Agility level of at least 28 to do this.")
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
|
||||||
|
val squeezeAnim = Animation.create(SQUEEZE_ANIMATION)
|
||||||
|
if (player.location.x >= 3086) {
|
||||||
|
AgilityHandler.forceWalk(
|
||||||
|
player, -1, player.location,
|
||||||
|
player.location.transform(Direction.WEST, 1),
|
||||||
|
squeezeAnim, 5, 0.0, null
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
AgilityHandler.forceWalk(
|
||||||
|
player, -1, player.location,
|
||||||
|
player.location.transform(Direction.EAST, 1),
|
||||||
|
squeezeAnim, 5, 0.0, null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user