Skip to content
This repository has been archived by the owner on May 12, 2020. It is now read-only.

Commit

Permalink
Properly adjust players to their next tile when using rollers
Browse files Browse the repository at this point in the history
  • Loading branch information
TheAmazingAussie committed Sep 23, 2017
1 parent ae94421 commit 4a71ecc
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions Icarus/src/org/alexdev/icarus/game/room/tasks/RollerTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
public class RollerTask implements RoomTask {

private Room room;

public RollerTask(Room room) {
this.room = room;
}
Expand Down Expand Up @@ -99,7 +99,6 @@ public void execute() {
item.getPosition().setY(front.getY());
item.getPosition().setZ(nextHeight);
item.save();

redoMap = true;

}
Expand All @@ -121,12 +120,19 @@ public void execute() {
entity.getRoomUser().setRolling(true);

Position front = roller.getPosition().getSquareInFront();
double nextHeight = this.room.getMapping().getTile(front.getX(), front.getY()).getHeight();

if (!this.room.getMapping().isValidStep(entity, entity.getRoomUser().getPosition(), front, false)) {
continue;
}

RoomTile nextTile = this.room.getMapping().getTile(front.getX(), front.getY());
RoomTile previousTile = this.room.getMapping().getTile(entity.getRoomUser().getPosition().getX(), entity.getRoomUser().getPosition().getY());

previousTile.removeEntity(entity);
nextTile.addEntity(entity);

double nextHeight = nextTile.getHeight();

this.room.send(new SlideObjectMessageComposer(entity, front, roller.getId(), nextHeight));

entity.getRoomUser().getPosition().setX(front.getX());
Expand Down

0 comments on commit 4a71ecc

Please sign in to comment.