1package com.osroyale.content.skill.impl.agility.obstacle.impl;
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;
10public interface SteppingStonesInteraction
extends ObstacleInteraction {
12 default void start(Player player) {
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);
23 World.schedule(
new Task(
true,3) {
27 public void execute() {
28 player.forceMove(1, getAnimation(), 10, 26,
new Position(modX, modY), Direction.WEST);
29 if (++steps == totalSteps) {
37 default void onCancellation(Player player) {