private Tile.MovementEvent CheckTileForEvent(Tile tile) { if (tile == null) { return(Tile.MovementEvent.None); } Tile.MovementEvent mvEv = tile.GetMovementEvent(); switch (mvEv) { case Tile.MovementEvent.Item: tile.ItemOnTile.PickUp(); break; case Tile.MovementEvent.Exit: MapManager.Instance.Exit(); break; case Tile.MovementEvent.Enemy: if (!Fight(tile)) { return(Tile.MovementEvent.Blocked); } break; } return(mvEv); }
private bool IsPassable(Tile tile, int distanceSteps) { Tile.MovementEvent ev = CheckTileForEvent(tile); /* Possible fast exit fix * if (ev == Tile.MovementEvent.Exit && MapManager.Instance.IsExitUnlocked()) * { * return distanceSteps < 2; * } */ return(tile != null && (ev == Tile.MovementEvent.Pass || ev == Tile.MovementEvent.Item || ev == Tile.MovementEvent.Enemy || ev == Tile.MovementEvent.Exit)); }