Esempio n. 1
0
    public void GetPurchaseCost(PurchasesEnum purchaseEnum, out int food, out int wood, out int gold, out int population)
    {
        var purchase = playerState.playerPurchases.Get(purchaseEnum);

        food       = purchase.food;
        wood       = purchase.wood;
        gold       = purchase.gold;
        population = purchase.population;
    }
Esempio n. 2
0
    private void AddFirst(PurchasesEnum purchasesEnum)
    {
        if ((int)purchasesEnum < 8)
        {
            AddFirst(aiPlayer.PlaceBuilding);
        }
        int food, wood, gold, population;

        aiPlayer.GetPurchaseCost(purchasesEnum, out food, out wood, out gold, out population);
        objectives.AddFirst(new Objective(food, wood, gold, population, () => aiPlayer.DoPurchase(purchasesEnum)));
    }
Esempio n. 3
0
    public bool BuildBuilding(PurchasesEnum type)
    {
        var purchase = playerState.playerPurchases.Get(type);

        return(purchase.IsActive(null) && purchase.Do(null));
    }
Esempio n. 4
0
    public bool DoPurchase(PurchasesEnum purchasesEnum)
    {
        Selectable selectable;

        switch (purchasesEnum)
        {
        case PurchasesEnum.Barracks:
        case PurchasesEnum.House:
        case PurchasesEnum.Infirmary:
        case PurchasesEnum.Library:
        case PurchasesEnum.MainBuilding:
        case PurchasesEnum.Mill:
        case PurchasesEnum.Sawmill:
        case PurchasesEnum.Bank:
            return(BuildBuilding(purchasesEnum));

        case PurchasesEnum.Unit:
        case PurchasesEnum.StoneAge:
        case PurchasesEnum.IronAge:
        case PurchasesEnum.DiamondAge:
            selectable = RandomElement(SenseOwnBuildings().Where(b => b is MainBuilding));
            break;

        case PurchasesEnum.Books1:
        case PurchasesEnum.Books2:
        case PurchasesEnum.Books3:
        case PurchasesEnum.Books4:
        case PurchasesEnum.Books5:
        case PurchasesEnum.BuildingBooks:
        case PurchasesEnum.MedicineBooks1:
        case PurchasesEnum.MedicineBooks2:
        case PurchasesEnum.Intelligence:
        case PurchasesEnum.Building:
        case PurchasesEnum.Healing:
            selectable = RandomElement(SenseOwnBuildings().Where(b => b is Library));
            break;

        case PurchasesEnum.Gear1:
        case PurchasesEnum.Gear2:
        case PurchasesEnum.Gear3:
        case PurchasesEnum.Gear4:
        case PurchasesEnum.Gear5:
            selectable = RandomElement(SenseOwnBuildings().Where(b => b is Barracks));
            break;

        case PurchasesEnum.Flour:
        case PurchasesEnum.Bread:
            selectable = RandomElement(SenseOwnBuildings().Where(b => b is Mill));
            break;

        default:
            selectable = null;
            break;
        }
        if (selectable == null)
        {
            return(false);
        }
        Purchase purchase = playerState.playerPurchases.Get(purchasesEnum);

        if (!purchase.IsActive(selectable))
        {
            return(false);
        }
        return(purchase.Do(selectable));
    }
Esempio n. 5
0
 /// <summary>
 /// Adds purchase of given type to the list.
 /// </summary>
 public void AddPurchase(PurchasesEnum purchasesEnum)
 {
     AddPurchase(PlayerState.Get(playerId).playerPurchases.Get(purchasesEnum));
 }
 public Purchase Get(PurchasesEnum purchasesEnum) => purchases[purchasesEnum];