public override AIVariantPackage GetVariants(Context context, int playerID, AIOptions options) { AIVariant variant = new AIVariant(); AddPlaceHornTurn(variant, context, playerID); AddEndPlayerTurn(variant, context, playerID); return new AIVariantPackage(variant); }
protected void AddPlaceHornTurn(AIVariant variant, Context context, int playerID) { if (context.turn.TurnActionCounter == 0) { AuctionCM.Bet bet = context.auction.GetCurrentBetForPlayer(playerID); if (bet.bet == 1) { int islandID = GetIslandForHorn(context, playerID); PlayerRule placeHornTurn = new PlaceHorn(islandID); variant.AddTurn(placeHornTurn); } } }
protected void AddBuyPriestVariant(AIVariantPackage variants, Context context, PlayerInfoCM player, AIOptions options) { if (context.turn.TurnActionCounter >= Constants.priestPrices.Count) return; int cost = Constants.priestPrices[context.turn.TurnActionCounter]; if (cost > player.Gold) return; AIVariant variant = new AIVariant(new Cyclades.BuyPriest()); VariantOffer offer = new VariantOffer(cost, options.coefficients.PriestVPT * options.turnsToEnd); variant.offer = offer; variants.AddVariant(variant); }
public void AddVariant(AIVariant v) { variants.Add(v); }
public AIVariantPackage(AIVariant v) { AddVariant(v); }
protected void AddEndPlayerTurn(AIVariant variant, Context context, int playerID) { variant.AddTurn(new EndPlayerTurn()); }