public void playCardNoCost(Card c) {
        //SpellAbility[] choices = (SpellAbility[]) c.getSpells().toArray();
        ArrayList<SpellAbility> choices = c.getBasicSpells();
        SpellAbility sa;

        //TODO: add Buyback, Kicker, ... , spells here
        /*
        ArrayList<SpellAbility> additional = c.getAdditionalCostSpells();
        for (SpellAbility s : additional)
        {
        	
        }
        */
        /*
         System.out.println(choices.length);
         for(int i = 0; i < choices.length; i++)
             System.out.println(choices[i]);
        */
        if (choices.size() == 0) return;
        else if (choices.size() == 1) sa = choices.get(0);
        else sa = (SpellAbility) GuiUtils.getChoiceOptional("Choose", choices.toArray());

        if (sa == null) return;

        // Ripple causes a crash because it doesn't set the activatingPlayer in this entrance
        if (sa.getActivatingPlayer() == null)
            sa.setActivatingPlayer(AllZone.getHumanPlayer());
        playSpellAbilityForFree(sa);
    }