mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
joinHomogenous
This commit is contained in:
@@ -29,6 +29,7 @@ import forge.game.zone.ZoneType;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.GuiDialog;
|
||||
import forge.util.Aggregates;
|
||||
import forge.util.Lang;
|
||||
|
||||
public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
@Override
|
||||
@@ -81,12 +82,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
fetchers.add(sa.getSourceCard().getController());
|
||||
}
|
||||
|
||||
final StringBuilder fetcherSB = new StringBuilder();
|
||||
for (int i = 0; i < fetchers.size(); i++) {
|
||||
fetcherSB.append(fetchers.get(i).getName());
|
||||
fetcherSB.append((i + 2) == fetchers.size() ? " and " : (i + 1) == fetchers.size() ? "" : ", ");
|
||||
}
|
||||
final String fetcherNames = fetcherSB.toString();
|
||||
final String fetcherNames = Lang.joinHomogenous(fetchers, Player.Accessors.FN_GET_NAME);
|
||||
|
||||
// Player who chooses the cards to move
|
||||
List<Player> choosers = new ArrayList<Player>();
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package forge.util;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
||||
/**
|
||||
* TODO: Write javadoc for this type.
|
||||
*
|
||||
@@ -11,7 +15,7 @@ public class Lang {
|
||||
* @param position
|
||||
* @return
|
||||
*/
|
||||
public static Object getOrdinal(int position) {
|
||||
public static String getOrdinal(int position) {
|
||||
String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (position % 100) {
|
||||
case 11:
|
||||
@@ -23,4 +27,19 @@ public class Lang {
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> String joinHomogenous(List<T> objects) { return joinHomogenous(objects, null); }
|
||||
public static <T> String joinHomogenous(List<T> objects, Function<T, String> accessor) {
|
||||
int remaining = objects.size();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(T obj : objects) {
|
||||
remaining--;
|
||||
if( accessor != null )
|
||||
sb.append(accessor.apply(obj));
|
||||
else
|
||||
sb.append(obj);
|
||||
if( remaining > 1 ) sb.append(", ");
|
||||
if( remaining == 1 ) sb.append(" and ");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user