public static ArrayList<Mana> convertStringToMana(String manaStr, Card card) {
        ArrayList<Mana> manaList = new ArrayList<Mana>();
        manaStr = manaStr.trim();
        String[] manaArr = manaStr.split(" ");

        String color = "";
        int total = 0;
        int genericTotal = 0;

        for (String c : manaArr) {
            String longStr = Input_PayManaCostUtil.getLongColorString(c);
            if (longStr.equals(Constant.Color.Colorless))
                genericTotal += Integer.parseInt(c);
            else if (color.equals("")) {
                color = longStr;
                total = 1;
            } else if (color.equals(longStr)) {
                total++;
            } else {    // more than one color generated
                // add aggregate color
                manaList.add(new Mana(color, total, card));

                color = longStr;
                total = 1;
            }
        }
        if (total > 0)
            manaList.add(new Mana(color, total, card));
        if (genericTotal > 0)
            manaList.add(new Mana(Constant.Color.Colorless, genericTotal, card));

        return manaList;
    }