RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
SteppingStonesInteraction.java
1package com.osroyale.content.skill.impl.agility.obstacle.impl;
2
3import com.osroyale.content.skill.impl.agility.obstacle.ObstacleInteraction;
4import com.osroyale.game.task.Task;
5import com.osroyale.game.world.World;
6import com.osroyale.game.world.entity.mob.Direction;
7import com.osroyale.game.world.entity.mob.player.Player;
8import com.osroyale.game.world.position.Position;
9
10public interface SteppingStonesInteraction extends ObstacleInteraction {
11 @Override
12 default void start(Player player) {
13 }
14
15 @Override
16 default void onExecution(Player player, Position start, Position end) {
17 int dX = end.getX() - player.getPosition().getX();
18 int dY = end.getY() - player.getPosition().getY();
19 int modX = Integer.signum(dX);
20 int modY = Integer.signum(dY);
21 int totalSteps = Math.abs(modX) > Math.abs(modY) ? Math.abs(dX) : Math.abs(dY);
22
23 World.schedule(new Task(true,3) {
24 int steps = 0;
25
26 @Override
27 public void execute() {
28 player.forceMove(1, getAnimation(), 10, 26, new Position(modX, modY), Direction.WEST);
29 if (++steps == totalSteps) {
30 cancel();
31 }
32 }
33 });
34 }
35
36 @Override
37 default void onCancellation(Player player) {
38 }
39}