   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, {

    vp
}

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

  playEffect:
    (state) ->
      state.quarries += 1
}

makeCard 'Sea Hag', action, {
  cost: 4
  isAttack: true
  
  playEffect: (state) ->
    state.attackOpponents (opp) ->
      state.discardFromDeck(opp, 1)

      # If no Curses are left to gain, we don't want a Curse to be
      # fished out of the opponent's discard pile
      if state.supply[c.Curse] > 0
        state.gainCard(opp, c.Curse)
        transferCardToTop(c.Curse, opp.discard, opp.draw)
}

makeCard 'Shanty Town', action, {
