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.GuiChoose;
|
||||||
import forge.gui.GuiDialog;
|
import forge.gui.GuiDialog;
|
||||||
import forge.util.Aggregates;
|
import forge.util.Aggregates;
|
||||||
|
import forge.util.Lang;
|
||||||
|
|
||||||
public class ChangeZoneEffect extends SpellAbilityEffect {
|
public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||||
@Override
|
@Override
|
||||||
@@ -81,12 +82,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
fetchers.add(sa.getSourceCard().getController());
|
fetchers.add(sa.getSourceCard().getController());
|
||||||
}
|
}
|
||||||
|
|
||||||
final StringBuilder fetcherSB = new StringBuilder();
|
final String fetcherNames = Lang.joinHomogenous(fetchers, Player.Accessors.FN_GET_NAME);
|
||||||
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();
|
|
||||||
|
|
||||||
// Player who chooses the cards to move
|
// Player who chooses the cards to move
|
||||||
List<Player> choosers = new ArrayList<Player>();
|
List<Player> choosers = new ArrayList<Player>();
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package forge.util;
|
package forge.util;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Write javadoc for this type.
|
* TODO: Write javadoc for this type.
|
||||||
*
|
*
|
||||||
@@ -11,7 +15,7 @@ public class Lang {
|
|||||||
* @param position
|
* @param position
|
||||||
* @return
|
* @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" };
|
String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||||
switch (position % 100) {
|
switch (position % 100) {
|
||||||
case 11:
|
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