public static String attachStackDescription(AbilityFactory af, SpellAbility sa){
		StringBuilder sb = new StringBuilder();

		if (!(sa instanceof Ability_Sub))
			sb.append(sa.getSourceCard().getName()).append(" - ");
		else
			sb.append(" ");
		
		String conditionDesc = af.getMapParams().get("ConditionDescription");
		if (conditionDesc != null)
			sb.append(conditionDesc).append(" ");

		sb.append(" Attach to ");
		
		ArrayList<Object> targets;

		// Should never allow more than one Attachment per card
		Target tgt = af.getAbTgt();
		if (tgt != null)
			targets = tgt.getTargets();
		else
			targets = AbilityFactory.getDefinedObjects(sa.getSourceCard(), af.getMapParams().get("Defined"), sa);
		
		for(Object o : targets)
			sb.append(o).append(" ");

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

		return sb.toString();
	}