Пример #1
0
 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);
     }
 }
Пример #2
0
 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]];
             }
         }
     });
 }
Пример #3
0
    private static int GetHouseStaticCost(HouseToBuild house)
    {
        int sum = 0;

        foreach (var res in house.StaticCost)
        {
            sum += Game.GetResourceCost(res);
        }
        return(sum);
    }
Пример #4
0
 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;
         }
     }
 }
Пример #5
0
    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);
    }
Пример #6
0
    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);
    }
Пример #7
0
 public abstract void GetUsedResourceForHouseBuilding(Game game, HouseToBuild house, List <Resource> options, List <Resource> spendResources, Action <Resource> onComplete);