public BuildingViewModel(int level, IBuilding res) { this.Level = level; this.Name = res.Name; this.Description = res.Description; this.MaxLevel = res.MaxLevel; this.Prerequisite = res.Prerequisite; this.RequiredBuildTime = this.Level < this.MaxLevel ? res.BuildTime[this.Level + 1].TotalMinutes : 0; var requiredResources = res.GetRequiredResources(this.Level + 1); this.RequiredEnergy = requiredResources[0]; this.RequiredCrystals = requiredResources[1]; this.RequiredMetal = requiredResources[2]; }
private bool CanBuild(PlayerObject pO, int toLevel, IBuilding buildingLogic) { if (pO.Buildings.CurrentlyBuilding != CurrentlyBuilding.None) { return false; } if (toLevel > buildingLogic.MaxLevel) { return false; } if (pO.Buildings.HeadQuartersLevel < buildingLogic.Prerequisite) { return false; } if (toLevel > pO.Buildings.HeadQuartersLevel && buildingLogic.Name != "Headquarters") { return false; } var requiredResources = buildingLogic.GetRequiredResources(toLevel); return pO.Resources.Energy > requiredResources[0] && pO.Resources.Crystal > requiredResources[1] && pO.Resources.Metal > requiredResources[2]; }