Dominion Strategy Forum

Please login or register.

Login with username, password and session length
Pages: 1 [2] 3 4  All

Author Topic: Project: Optimizing Big Money X  (Read 31153 times)

0 Members and 1 Guest are viewing this topic.

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #25 on: September 15, 2011, 08:31:33 pm »
0

I don't know if this counts, because it doesn't *always* buy a coppersmith, but it edges out big money since coppersmith/nothing beats silver/nothing on a 5/2.

Code: [Select]
<player name="5/2 Coppersmith">
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="18.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Coppersmith">
      <condition>
         <left type="countAllCardsInDeck"/>
         <operator type="equalTo" />
         <right type="constant" attribute="10.0"/>
      </condition>
      <condition>
         <left type="countAvailableMoney"/>
         <operator type="equalTo" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

rspeer

  • Witch
  • *****
  • Offline Offline
  • Posts: 469
  • Respect: +877
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #26 on: September 20, 2011, 06:21:45 pm »
0

I think the 5/2 Coppersmith definitely counts for OBM Coppersmith, particularly because anything else would presumably do worse and therefore be non-optimal. I've added it to Dominiate.

While we're on unpopular cards, here's my OBM Chancellor. I've included the rule of when to use the Chancellor to reshuffle, and also made it the default Chancellor rule, so that a bot that uses Chancellor well doesn't actually have to have this card-counting code in it.

Code: [Select]
{
  name: 'BM+Chancellor2'
  author: 'rspeer'
  gainPriority: (state, my) -> [
    "Province" if my.getTotalMoney() > 18 \
               or state.gainsToEndGame() <= 7
    "Duchy" if state.gainsToEndGame() <= 4
    "Estate" if state.gainsToEndGame() <= 2
    "Gold"
    "Duchy" if state.gainsToEndGame() <= 7
    "Chancellor" if my.countInDeck("Chancellor") < 1
    "Silver"
  ]

  # Here, we decide to reshuffle (returning a reshuffleValue over 0) when most
  # of the non-Action, non-Treasure cards are in the draw pile, or when there
  # are no such cards in the deck.
  reshuffleValue: (state, choice, my) ->
    junkToDraw = 0
    totalJunk = 0
    for card in my.draw
      if not (card.isAction or card.isTreasure)
        junkToDraw++
    for card in my.getDeck()
      if not (card.isAction or card.isTreasure)
        totalJunk++
    return 1 if (totalJunk == 0)
    proportion = junkToDraw/totalJunk
    return (proportion - 0.5)
}

I implemented a version that borrows Geronimoo's simulator's rule, which is to always reshuffle: reshuffleValue: (state, choice, my) -> 1. OBM Chancellor unsuprisingly beats it 51.8 - 49.2%. Of course, as this simulation is taking place inside Dominiate, where things like the anti-suicide rule don't exist yet, the Straw Man Anti-Defamation League has lodged a complaint against my research methods.

EDITED: Buying Duchies for 5 as soon as the Province race begins (gainsToEndGame <= 7) turns out to work for OBM Chancellor, as it can often skip them.
« Last Edit: September 20, 2011, 06:39:14 pm by rspeer »
Logged

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #27 on: October 01, 2011, 02:05:16 am »
0

So I finally took the time to download the .xml and look at some of the bots... A few things I noticed:

Herbalist bot buys havens. Either this is a typo, or that needs to be redone.

Island bot has a strange condition:
Code: [Select]
   <buy name="Island">
      <condition>
         <left type="countCardsInDeck" attribute="Island"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Victory"/>
         <extra_operation type="multiplyWith" attribute="2.0" />
      </condition>
   </buy>
I would think this amounts to simply buying island unconditionally. This is probably the best strategy when racing for islands, but if you're just trying to beat big money more often, you can do better by buying islands slower. e.g. if you make it divideBy 2, it improves to 75-22 vs BM.

And explorer can definitely be improved (slightly) by adding a province buy condition:
Code: [Select]
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Explorer"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
so that it starts buying provinces when you have a gold OR explorer.
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #28 on: October 01, 2011, 10:03:18 am »
0

Typos, yes. It was supposed to be divide, and herbalist buying havens... well, I apparently wasn't so thorough; I use one bot as the basis for another and change the card names. Must have missed some. Glad you're catching me!

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #29 on: October 03, 2011, 07:26:39 pm »
0

This courtyard bot crushes the posted one and beats big money ~83-13. The basic idea is just that a second courtyard should be preferred to silver once you have a couple silvers.

Code: [Select]
<player name="Courtyard">
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Treasure"/>
         <extra_operation type="divideBy" attribute="8.0" />
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
</player>

Venture is a bit hard to optimize since you can't really use complicated expressions, and the value of a venture depends both on the number of ventures and the value of non-venture treasures. (The expected value of a venture is something like 1+(N-1)/(N-V-1)+(T-V)/(N-V), where N = # treasures, T = total $, V = # ventures, so presumably buy rules should depend on some complicated, perhaps nonlinear, function of these values. Since that's not possible, I came up with this bot, which seems to work out ok, beating big money 60-33. It checks 2 conditions to choose venture over gold:
1. A lot of ventures (increases the second term, which corresponds to length of venture chain).
2. A lot of total $ (increases the third term, which corresponds to value of the chain-terminating treasure).

Code: [Select]
<player name="Venture">
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="18.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Venture">
      <condition>
         <left type="countCardsInDeck" attribute="Venture"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Venture">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="21.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Venture"/>
   <buy name="Silver"/>
</player>

This young witch bot is a simple one. It's hard to finely tune something that already wins by such a huge margin (since you'd need way too many samples to detect meaningful change). It beats BM ~98-1.

Code: [Select]
<player name="Young Witch">
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Young_Witch" bane="Goop">
      <condition>
         <left type="countCardsInDeck" attribute="Young_Witch"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #30 on: October 03, 2011, 08:00:25 pm »
0

Young Witch is a case I wouldn't have done probably, because it's so obviously strong if there's no way to check it (think how strong sea hag is, but this is better), and since you're never letting them have the bane... the data is useless.

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #31 on: October 04, 2011, 09:17:37 am »
0

Improved hunting parties + treasure.
Code: [Select]
<player name="DG Hunting Party" author="DG" description="The optimized Hunting Party strategy that buys no other actions.">
 <type name="SingleCard"/>
 <type name="TwoPlayer"/>
 <type name="Optimized"/>
 <type name="Province"/>
 <type name="UserCreated"/>
 <type name="Bot"/>
 <type name="BigMoney"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Hunting_Party"/>
   <buy name="Gold"/>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

Logged

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #32 on: October 04, 2011, 10:09:03 pm »
0

Vault just buys as many vaults as possible, since you don't really care about collisions, and starts buying duchies/estates slightly earlier than BM, since the vaults give a little resilience to the green. This bot beats BM 75-20.

Code: [Select]
<player name="Vault" author="HiveMindEmulator" description="The optimized strategy that buys no other actions.">
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Vault"/>
   <buy name="Silver"/>
</player>

Treasury has to be careful about buying early duchies if they force discards of treasuries. I would think there there might be some conditions on countInPlay treasury, but the best bot I found doesn't have any... it beats BM 59-33.
 
Code: [Select]
<player name="Treasury" author="HiveMindEmulator" description="The optimized strategy that buys no other actions.">
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Treasury"/>
   <buy name="Silver"/>
</player>

This smithy bot is pretty straightforward and beats BM 71-22.

Code: [Select]
<player name="Smithy" author="HiveMindEmulator" description="The optimized strategy that buys no other actions.">
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="15.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Smithy">
      <condition>
         <left type="countCardsInDeck" attribute="Smithy"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Treasure"/>
         <extra_operation type="divideBy" attribute="11.0" />
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #33 on: October 07, 2011, 06:56:45 pm »
0

This moat bot beats BM ~56-36.

Code: [Select]
<player name="Moat" author="HivemMindEmulator" description="The optimized strategy that buys no other actions.">
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="BigMoney"/>
 <type name="SingleCard"/>
 <type name="Province"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="16.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Moat">
      <condition>
         <left type="countCardTypeInDeck" attribute="Treasure"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="10.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Moat"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Moat">
      <condition>
         <left type="countCardsInDeck" attribute="Moat"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
</player>

Shanty town is very similar to moat since in a deck with only 1-2 action cards, it's usually just a $3 moat. The inability to buy it on a 5/2 makes it slightly worse, and this bot only beats BM ~52-39.

Code: [Select]
<player name="Shanty Town" author="HivemMindEmulator" description="The optimized strategy that buys no other actions.">
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="BigMoney"/>
 <type name="SingleCard"/>
 <type name="Province"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="17.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Shanty_Town">
      <condition>
         <left type="countCardsInDeck" attribute="Shanty_Town"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Treasure"/>
         <extra_operation type="divideBy" attribute="14.0" />
      </condition>
      <condition>
         <left type="countCardTypeInDeck" attribute="Treasure"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="9.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #34 on: November 16, 2011, 02:36:47 pm »
0

Okay, somebody's post on Oracle got me intrigued, especially since I thought, contrary to most people, I think, that it was going to be a pretty darn good BM enabler. And so after optimizing it this morning, lo and behold: it's pretty darn good; I don't have an optimized version of Smithy BM on my hands, but I think this is a touch better. It loses to envoy and courtyard optimizations ~41-49. There might be a small room for improvement a) to counter more typical strategies (I optimized it for play against other Oracle strategies) or b) by adding buy rules for the 4th(!) oracle, which I think might add .1%-.2%. Here it is:

Code: [Select]
<player name="Oracle" author="WW" description="The optimized Oracle but that buys no other actions.">
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="Generated"/>
 <type name="BigMoney"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="18.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Oracle">
      <condition>
         <left type="countCardsInDeck" attribute="Oracle"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
      <condition>
         <left type="countCardTypeInDeck" attribute="Treasure"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Oracle">
      <condition>
         <left type="countCardsInDeck" attribute="Oracle"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardTypeInDeck" attribute="Treasure"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="9.0"/>
      </condition>
   </buy>
   <buy name="Oracle">
      <condition>
         <left type="countCardsInDeck" attribute="Oracle"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
      <condition>
         <left type="countCardTypeInDeck" attribute="Treasure"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="13.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #35 on: November 21, 2011, 08:43:54 pm »
0

Cache (beats BM ~57-33)
Code: [Select]
<player name="Cache" author="WanderingWinder" description="The optimized Cache strategy that buys no other actions.">
 <type name="Bot"/>
 <type name="BigMoney"/>
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="SingleCard"/>
 <type name="Optimized"/>
 <type name="TwoPlayer"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="13.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Cache"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Cache"/>
   <buy name="Silver"/>
</player>
Cartographer (Beats BM ~56-35)
Code: [Select]
<player name="Cartographer" author="WanderingWinder" description="The optimized Cartographer strategy that buys no other actions.">
 <type name="Bot"/>
 <type name="BigMoney"/>
 <type name="Province"/>
 <type name="UserCreated"/>
 <type name="SingleCard"/>
 <type name="Optimized"/>
 <type name="TwoPlayer"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="13.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Cartographer">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #36 on: November 22, 2011, 02:10:34 pm »
0

HiveMindEmulator's Courtyard bot:
Code: [Select]
<player name="Courtyard" author="HiveMindEmulator" description="The optimized Courtyard bot that buys no other actions">
 <type name="SingleCard"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="Competitive"/>
 <type name="UserCreated"/>
 <type name="BigMoney"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Treasure"/>
         <extra_operation type="divideBy" attribute="8.0" />
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
</player>
Embassy (Beats BM ~72-22)
Code: [Select]
<player name="Embassy" author="WanderingWinder" description="The optimized Embassy strategy that buys no other actions.">
 <type name="SingleCard"/>
 <type name="Bot"/>
 <type name="Optimized"/>
 <type name="UserCreated"/>
 <type name="BigMoney"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="14.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Embassy">
      <condition>
         <left type="countCardsInDeck" attribute="Embassy"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

kn1tt3r

  • Minion
  • *****
  • Offline Offline
  • Posts: 585
  • Respect: +278
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #37 on: December 07, 2011, 03:20:35 am »
0

Maybe not the right thread for this, but it probably isn't worth one of its own... I was quite surprised that the Saboteur bot beats Mountebank by quite a margin. It's different for Witch, but maybe Saboteur isn't that bad after all, even as a single card - especially against non-drawing strategies.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Project: Optimizing Big Money X
« Reply #38 on: December 07, 2011, 08:02:14 am »
0

Maybe not the right thread for this, but it probably isn't worth one of its own... I was quite surprised that the Saboteur bot beats Mountebank by quite a margin. It's different for Witch, but maybe Saboteur isn't that bad after all, even as a single card - especially against non-drawing strategies.
I have no idea which bot you're talking about, but a simple Saboteur bot gets demolished by Mountebank.
Logged

kn1tt3r

  • Minion
  • *****
  • Offline Offline
  • Posts: 585
  • Respect: +278
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #39 on: December 07, 2011, 01:40:37 pm »
0

Maybe not the right thread for this, but it probably isn't worth one of its own... I was quite surprised that the Saboteur bot beats Mountebank by quite a margin. It's different for Witch, but maybe Saboteur isn't that bad after all, even as a single card - especially against non-drawing strategies.
I have no idea which bot you're talking about, but a simple Saboteur bot gets demolished by Mountebank.
I'm no great simulation expert, but I've just chosen the implemented "Saboteur" and "Mountebank" bots, and Sab wins 70% of the time. But maybe I've done sth wrong...

See screenshot:
http://img703.imageshack.us/img703/7915/simuz.jpg
Logged

Deadlock39

  • Torturer
  • *****
  • Offline Offline
  • Posts: 1722
  • Respect: +1755
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #40 on: December 07, 2011, 02:20:24 pm »
0

It looks like there is probably an interaction between those two bots that is screwing up the buy priorities of Mountebank.  You can see in the graphs that the Mountebank player is generating significantly more money per turn, but is gaining less VPs per turn.  Also, it shows 94% three pile endings, which seems strange.

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #41 on: December 07, 2011, 02:27:02 pm »
0

Maybe not the right thread for this, but it probably isn't worth one of its own... I was quite surprised that the Saboteur bot beats Mountebank by quite a margin. It's different for Witch, but maybe Saboteur isn't that bad after all, even as a single card - especially against non-drawing strategies.
I have no idea which bot you're talking about, but a simple Saboteur bot gets demolished by Mountebank.
I'm no great simulation expert, but I've just chosen the implemented "Saboteur" and "Mountebank" bots, and Sab wins 70% of the time. But maybe I've done sth wrong...

See screenshot:
http://img703.imageshack.us/img703/7915/simuz.jpg
You must have accidentally modified the bots. I have the mountebank bot crushing the sab bot...
Logged

kn1tt3r

  • Minion
  • *****
  • Offline Offline
  • Posts: 585
  • Respect: +278
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #42 on: December 07, 2011, 02:37:54 pm »
0

Maybe not the right thread for this, but it probably isn't worth one of its own... I was quite surprised that the Saboteur bot beats Mountebank by quite a margin. It's different for Witch, but maybe Saboteur isn't that bad after all, even as a single card - especially against non-drawing strategies.
I have no idea which bot you're talking about, but a simple Saboteur bot gets demolished by Mountebank.
I'm no great simulation expert, but I've just chosen the implemented "Saboteur" and "Mountebank" bots, and Sab wins 70% of the time. But maybe I've done sth wrong...

See screenshot:
http://img703.imageshack.us/img703/7915/simuz.jpg
You must have accidentally modified the bots. I have the mountebank bot crushing the sab bot...

Hm... I've just checked them... on first sight they look fine:


Code: [Select]
<player name="Saboteur" author="Geronimoo" description="Although hated by a lot of players, the attack of this card is rather weak.">
 <type name="TwoPlayer"/>
 <type name="SingleCard"/>
 <type name="Casual"/>
 <type name="Attacking"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
   <buy name="Province"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Saboteur">
      <condition>
         <left type="countCardsInDeck" attribute="Saboteur"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

Code: [Select]
<player name="Mountebank" author="Geronimoo" description="Mountebank might be the strongest attack. It's a better buy than Gold (so it will be bought with $6)">
 <type name="TwoPlayer"/>
 <type name="SingleCard"/>
 <type name="Attacking"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Competitive"/>
 <type name="Bot"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Mountebank">
      <condition>
         <left type="countCardsInDeck" attribute="Mountebank"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Mountebank">
      <condition>
         <left type="countCardsInDeck" attribute="Mountebank"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

rod-

  • Conspirator
  • ****
  • Offline Offline
  • Posts: 213
  • Respect: +49
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #43 on: December 07, 2011, 02:57:28 pm »
0

94% 3 pile endings seems highly suspect.  maybe the mountebank bot keeps taking estates after getting hit with sab, screwing itself over? 
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #44 on: December 07, 2011, 03:04:33 pm »
0

Maybe it's because it's taking mountebank over gold too much because its Mountebanks are getting knocked out, even doing this after there are a bunch of curses gone?

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #45 on: December 07, 2011, 04:22:44 pm »
0

The mountebank bot only buys provinces if it has gold, but it never buys gold since it buys mountebanks instead. Once 3 provinces are gone it always buys duchies ahead of gold and can never buy a province again if the gold is sabotaged.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Project: Optimizing Big Money X
« Reply #46 on: December 07, 2011, 05:06:17 pm »
0

I guess he's just running an outdated version (the one with the big bug). Click here if you're not sure you have the good version (clicking the icon on your desktop won't automatically look for updates)
Logged

kn1tt3r

  • Minion
  • *****
  • Offline Offline
  • Posts: 585
  • Respect: +278
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #47 on: December 08, 2011, 02:50:34 pm »
0

I guess he's just running an outdated version (the one with the big bug). Click here if you're not sure you have the good version (clicking the icon on your desktop won't automatically look for updates)
That was the problem. Ty.
Logged

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2117
    • View Profile
Re: Project: Optimizing Big Money X
« Reply #48 on: January 02, 2012, 06:53:31 pm »
0

Getting an Embassy before the first Gold slightly improves the Embassy bot. It still beats BMU 72-22, but beats the existing Embassy bot 48-43 heads-up.
Code: [Select]
<player name="Embassy"
 author="HiveMindEmulator"
 description="The optimized Embassy strategy that buys no other actions.">
 <type name="BigMoney"/>
 <type name="Optimized"/>
 <type name="Bot"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="14.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Embassy">
      <condition>
         <left type="countCardsInDeck" attribute="Embassy"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Embassy">
      <condition>
         <left type="countCardsInDeck" attribute="Embassy"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4380
    • View Profile
    • WanderingWinder YouTube Page
Re: Project: Optimizing Big Money X
« Reply #49 on: January 19, 2012, 07:58:35 pm »
0

Improved scripts for witch and Ill-Gotten Gains:
Code: [Select]
<player name="Witch by WW"
 author="WanderingWinder"
 description="Witch is probably the strongest attack card in the game.">
 <type name="UserCreated"/>
 <type name="Competitive"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="Attacking"/>
 <type name="SingleCard"/>
 <type name="TwoPlayer"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="20.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="32.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Witch">
      <condition>
         <left type="countCardsInDeck" attribute="Witch"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="30.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Witch">
      <condition>
         <left type="countCardsInSupply" attribute="Witch"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="26.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Copper">
      <condition>
         <left type="countCardsInSupply" attribute="Curse"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
</player>

Code: [Select]
<player name="IGG Rush"
 author="WanderingWinder"
 description="Get all the Ill-Gotten Gains and Duchies to empty 3 piles.">
 <type name="UserCreated"/>
 <type name="Competitive"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="SingleCard"/>
 <type name="TwoPlayer"/>
   <buy name="Province"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Curse"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Ill_Gotten_Gains"/>
   <buy name="Duchy"/>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Copper">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
</player>

« Last Edit: January 20, 2012, 08:55:24 am by WanderingWinder »
Logged
Pages: 1 [2] 3 4  All
 

Page created in 0.059 seconds with 21 queries.