       state.current.setAside = []
 }
 
-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, 'draw')
-}
-
 makeCard 'Shanty Town', action, {
   cost: 3
   actions: +2

        transferCardToTop(c.Alchemist, state.current.discard, state.current.draw)
}

makeCard 'Ambassador', action, {
  cost: 3
  isAttack: true

  playEffect: (state) ->
    # Determine the cards and quantities that can be ambassadored
    counts = {}
    for card in state.current.hand
      counts[card] ?= 0
      counts[card] += 1
    choices = []
    for card, count of counts
      if count >= 2
        choices.push [card, 2]
      if count >= 1
        choices.push [card, 1]
      choices.push [card, 0]

    choice = state.current.ai.choose('ambassador', state, choices)

    if choice isnt null
      [cardName, quantity] = choice
      card = c[cardName]
      state.log("...choosing to return #{quantity} #{cardName}.")
      for i in [0...quantity]
        state.current.doTrash(card)
      # Return it to the supply, if it had a slot in the supply to begin with
      if state.supply[card]?
        state.supply[card] += quantity
      state.attackOpponents (opp) ->
        state.gainCard(opp, card)
}

makeCard 'Apothecary', action, {
  cost: 2
  costPotion: 1

      state.current.coins += 1
    if gained.isVictory
      state.current.drawCards(1)
}

makeCard 'Library', action, {
