private void Check() { for (var i = 0; i < checks.Length; i++) { checks[i] = movable.CanMove(i); } }
public override void Do(PlayerObject player) { var destination = player.Movable.IntPosition + 2 * Constants.Directions[player.Movable.Direction]; if (MovableComponent.CanMove(destination)) { player.Movable.Position = destination; } }
public override void Move(MovableComponent movable, int direction) { var position = movable.IntPosition; while (MovableComponent.CanMove(position + Constants.Directions[direction])) { position += Constants.Directions[direction]; } movable.Move(position); }
public override void Idle(MovableComponent movable) { foreach (var i in new int[] { 0, 2, 1, 3 }) { var direction = (movable.Direction + i) % 4; if (movable.CanMove(direction)) { movable.Move(direction); return; } } }