public bool StartBuilding(TileType tileToBuild, int tileId) { foreach (List<PlayerTile> tiles in map) { foreach (PlayerTile playerTile in tiles) { if (playerTile.Id == tileId && playerTile.TileType.kind == tileToBuild.kind) { Debug.WriteLine("Already build here."); return false; } } } if ( tileToBuild.FoodCost <= resources.food && tileToBuild.StoneCost <= resources.stone && tileToBuild.WoodCost <= resources.wood && tileToBuild.GoldCost <= resources.gold && tileToBuild.WorkerCost <= resources.workers) { resources.food -= tileToBuild.FoodCost; resources.stone -= tileToBuild.StoneCost; resources.wood -= tileToBuild.WoodCost; resources.gold -= tileToBuild.GoldCost; resources.workers -= tileToBuild.WorkerCost; buildings.Add(new PlayerTile(tileToBuild, tileId)); return true; } return false; }
public JsonResult Build(TileType.Kind kind, int TileId) { TileType tileToBuild = RunningGame.TileTypes.Where(e => e.kind.Equals(kind)).First(); bool buildStarted = PlayerVik.StartBuilding(tileToBuild, TileId); var buildresponse = new ClientResponseModels.BuildModel(); buildresponse.Ok = buildStarted; if (buildStarted) { buildresponse.ImageFile = tileToBuild.ImageFile; buildresponse.BuildTimeTicks = tileToBuild.BuildingTime; buildresponse.TileId = TileId; buildresponse.Kind = kind; } return Json(buildresponse, JsonRequestBehavior.AllowGet); }