RuneHive-Game
Loading...
Searching...
No Matches
SteppingStonesInteraction.java
Go to the documentation of this file.
1package com.runehive.content.skill.impl.agility.obstacle.impl;
2
3import com.runehive.content.skill.impl.agility.obstacle.ObstacleInteraction;
4import com.runehive.game.task.Task;
5import com.runehive.game.world.World;
6import com.runehive.game.world.entity.mob.Direction;
7import com.runehive.game.world.entity.mob.player.Player;
8import com.runehive.game.world.position.Position;
9
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}
A game representing a cyclic unit of work.
Definition Task.java:11
Represents the game world.
Definition World.java:46
static void schedule(Task task)
Submits a new event.
Definition World.java:247
void forceMove(int animation, int x, int y)
Definition Mob.java:255
This class represents a character controlled by a player.
Definition Player.java:125
Represents a single tile on the game world.
Definition Position.java:14
int getY()
Gets the absolute y coordinate.
Definition Position.java:46
int getX()
Gets the absolute x coordinate.
Definition Position.java:41
Represents the enumerated directions an entity can walk or face.
default void execute(Player player, Obstacle next, Position start, Position end, int level, float experience, int ordinal)