public void Harvest(ITile tile) { if (!Vertex.IsAdjacentTo(tile)) throw new ArgumentException("Can only harvest adjacent tiles!"); for (int i = 0; i < (int)Level; i++) { IRawMaterial material = tile.Farm(); Owner.AddResources(material); } logger.Info($"Harvesting {tile.ToString()}({(int)Level}x) for player {Owner.Name}"); }