Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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));
    }