public static String losesGameStackDescription(AbilityFactory af, SpellAbility sa) {
        StringBuilder sb = new StringBuilder();
        Card source = sa.getSourceCard();

        if (!(sa instanceof Ability_Sub))
            sb.append(source.getName()).append(" - ");
        else
            sb.append(" ");

        Target tgt = sa.getTarget();
        ArrayList<Player> players = null;
        if (sa.getTarget() != null) {
            players = tgt.getTargetPlayers();
        } else {
            players = AbilityFactory.getDefinedPlayers(source, af.getMapParams().get("Defined"), sa);
        }

        for (Player p : players) {
            sb.append(p.getName()).append(" ");
        }

        sb.append("loses the game.");

        Ability_Sub abSub = sa.getSubAbility();
        if (abSub != null) {
            sb.append(abSub.getStackDescription());
        }

        return sb.toString();
    }