private static int GetHouseMinScore(HouseToBuild house) { if (house.StaticCost != null) { return(GetHouseStaticCost(house)); } else { int sum = 0; if (house.DifferentResourcesCount >= 1) { sum += Game.GetResourceCost(Resource.Forest); } if (house.DifferentResourcesCount >= 2) { sum += Game.GetResourceCost(Resource.Clay); } if (house.DifferentResourcesCount >= 3) { sum += Game.GetResourceCost(Resource.Stone); } if (house.DifferentResourcesCount >= 4) { sum += Game.GetResourceCost(Resource.Gold); } sum += Mathf.Max(0, house.MaxResourcesCount - house.DifferentResourcesCount) * Game.GetResourceCost(Resource.Forest); return(sum); } }
public void ShowSelectResourceForBuildingHouse(HouseToBuild house, List <Resource> options, List <Resource> spentResources) { ResourceForHouseBuildingSelectionDone = false; CompositionRoot.Instance.ExecuteInMainThread(() => { SelectedResourceForHouseBuilding = Resource.None; _gettingResourceForHouseBuildingParent.SetActive(true); for (int ind = 0; ind < _selectedResourceForHouseBuildingButtons.Count; ind++) { Resource res = (Resource)(ind + 1); _selectedResourceForHouseBuildingButtons [ind].SetActive(options.Contains(res)); } for (int ind = 0; ind < _usedResources.Count; ind++) { if (ind >= spentResources.Count) { _usedResources [ind].gameObject.SetActive(false); } else { _usedResources [ind].gameObject.SetActive(true); _usedResources [ind].sprite = _resourceSprites [(int)spentResources [ind]]; } } }); }
private static int GetHouseStaticCost(HouseToBuild house) { int sum = 0; foreach (var res in house.StaticCost) { sum += Game.GetResourceCost(res); } return(sum); }
public override void GetUsedResourceForHouseBuilding(Game game, HouseToBuild house, List <Resource> options, List <Resource> spendResources, Action <Resource> onComplete) { _turnView.SelectPlayer(game, _model); _turnView.ShowSelectResourceForBuildingHouse(house, options, spendResources); while (true) { System.Threading.Thread.Sleep(SleepTime); if (_turnView.ResourceForHouseBuildingSelectionDone) { onComplete(_turnView.SelectedResourceForHouseBuilding); return; } } }
public override void GetUsedResourceForHouseBuilding(Game game, HouseToBuild house, List <Resource> options, List <Resource> spendResources, Action <Resource> onComplete) { Resource res; if (options.Count > 0) { res = options [Game.RandomRange(0, options.Count)]; } else { res = Resource.None; } onComplete(res); }
public override void GetUsedResourceForHouseBuilding(Game game, HouseToBuild house, List <Resource> options, List <Resource> spendResources, Action <Resource> onComplete) { Resource res = Resource.None; if (options.Contains(Resource.Gold)) { res = Resource.Gold; } else if (options.Contains(Resource.Stone)) { res = Resource.Stone; } else if (options.Contains(Resource.Clay)) { res = Resource.Clay; } else if (options.Contains(Resource.Forest)) { res = Resource.Forest; } onComplete(res); }
public abstract void GetUsedResourceForHouseBuilding(Game game, HouseToBuild house, List <Resource> options, List <Resource> spendResources, Action <Resource> onComplete);