Esempio n. 1
0
    void FinishMoving()
    {
        robotPath       = null;
        currentDestTile = null;
        State           = RobotState.Idle;

        if (InventoryState == RobotInventoryState.Empty)
        {
            if (RobotTile.Type == Tile.TileType.BeaconPart)
            {
                InventoryState = RobotInventoryState.Part;
                RobotTile.SetTileType(Tile.TileType.Blank);
                mapManager.TileChanged(RobotTile);
            }
            else if (RobotTile.Type == Tile.TileType.FoodStore)
            {
                InventoryState = RobotInventoryState.Food;
                RobotTile.SetTileType(Tile.TileType.Blank);
                mapManager.TileChanged(RobotTile);
            }
        }
        else
        {
            if (RobotTile.Type == Tile.TileType.Entrance)
            {
                if (InventoryState == RobotInventoryState.Food)
                {
                    if (OnRobotFoodReturn != null)
                    {
                        OnRobotFoodReturn(FoodPerStore);
                    }

                    shipResources.ChangeFood(FoodPerStore);
                }
                else if (InventoryState == RobotInventoryState.Part)
                {
                    if (OnRobotPartReturn != null)
                    {
                        OnRobotPartReturn();
                    }
                }
                InventoryState = RobotInventoryState.Empty;
            }
        }
    }
Esempio n. 2
0
    void RobotMoved(int x, int y)
    {
        // Uncover map
        RobotTile.SetVisible();
        List <Tile> changedTiles = new List <Tile>();

        changedTiles.Add(RobotTile);
        foreach (Tile neighbour in mapManager.GetNeighbours(RobotTile, true))
        {
            mapManager.SetVisible(neighbour);
            changedTiles.Add(neighbour);
        }
        mapManager.TilesChanged(changedTiles);

        // Update drawing
        DrawRobot();
        DrawPath();
    }