     state.tradeRouteValue
 }
 
+makeCard 'Treasure Map', action {
+  cost: 4
+
+  playEffect: (state) ->
+    trashedMaps = 0
+
+    if c['Treasure Map'] in state.current.inPlay
+      state.current.inPlay.remove(c['Treasure Map'])
+      trashedMaps += 1
+
+    if c['Treasure Map'] in state.current.hand
+      doTrash(c['Treasure Map'])
+      trashedMaps += 1
+
+    if trashedMaps == 2
+      for num in [1..4]
+        state.gainCard(state.current, c.Gold, true)        
+        transferCardToTop(c.Gold, state.current.discard, state.current.draw)
+      state.log("…gaining 4 Golds, putting them on top of the deck.")      
+}
+
 makeCard "Trusty Steed", c["Bag of Gold"], {
   actions: 0
   playEffect: (state) ->

    vp
}

makeCard "Followers", action, {
  cost: 0
  isAttack: true

  attackReaction:
    (player) ->
      transferCard(c['Horse Traders'], player.hand, player.duration)
}

makeCard 'Hunting Party', action, {
  cost: 5
  actions: 1
  cards: 1

  playEffect: (state) ->
    state.revealHand(state.current)
    cardsDrawn = 0;
    while cardsDrawn < 1
      drawn = state.current.getCardsFromDeck(1)
      if drawn.length == 0
        break
      card = drawn[0]
      state.log("...revealing a #{card}")

      if card not in state.current.hand
        cardsDrawn += 1
        state.current.hand.push(card)
        state.log("...drawing a #{card}.")
      else
        state.current.setAside.push(card)
    state.current.discard = state.current.discard.concat(state.current.setAside)
    state.current.setAside = []
}

makeCard "Menagerie", action, {
