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; } } }
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(); }