@Override
    public String getText() {
        Mana[] pool = floatingMana.toArray(new Mana[floatingMana.size()]);

        int[] normalMana = {0, 0, 0, 0, 0, 0};
        int[] snowMana = {0, 0, 0, 0, 0, 0};
        String[] manaStrings = {Constant.Color.White, Constant.Color.Blue, Constant.Color.Black, Constant.Color.Red, Constant.Color.Green, Constant.Color.Colorless};

        for (Mana m : pool) {
            if (m.isSnow())
                snowMana[map.get(m.getColor())] += m.getAmount();
            else
                normalMana[map.get(m.getColor())] += m.getAmount();
        }

        StringBuilder sbNormal = new StringBuilder();
        StringBuilder sbSnow = new StringBuilder();
        if (!isEmpty()) {
            for (int i = 0; i < 6; i++) {
                if (i == 5) {
                    // Put colorless first
                    if (normalMana[i] > 0)
                        sbNormal.insert(0, normalMana[i] + " ");
                    if (snowMana[i] > 0)
                        sbSnow.insert(0, snowMana[i] + " ");
                } else {
                    if (normalMana[i] > 0)
                        sbNormal.append(CardUtil.getShortColor(manaStrings[i])).append("(").append(normalMana[i]).append(") ");
                    if (snowMana[i] > 0)
                        sbSnow.append(CardUtil.getShortColor(manaStrings[i])).append("(").append(snowMana[i]).append(") ");
                }
            }
        }

        sbNormal.insert(0, "Mana Available:\n");
        sbSnow.insert(0, "Snow Mana Available:\n");

        return sbNormal.append("\n").append(sbSnow).toString();
    }