Merge branch 'master' into 'master'

update translation text

See merge request core-developers/forge!2351
This commit is contained in:
swordshine
2019-12-31 06:00:21 +00:00
47 changed files with 670 additions and 644 deletions

View File

@@ -24,7 +24,7 @@ public class AbandonEffect extends SpellAbilityEffect {
Player controller = source.getController(); Player controller = source.getController();
boolean isOptional = sa.hasParam("Optional"); boolean isOptional = sa.hasParam("Optional");
if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblWouldYoulikeAbandon") + " " + source + "?")) { if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblWouldYoulikeAbandonConfirm", source.toString()))) {
return; return;
} }

View File

@@ -62,7 +62,7 @@ public class AddTurnEffect extends SpellAbilityEffect {
extra.setCantSetSchemesInMotion(true); extra.setCantSetSchemesInMotion(true);
} }
if (sa.hasParam("ShowMessage")) { if (sa.hasParam("ShowMessage")) {
p.getGame().getAction().nofityOfValue(sa, p, p + " " + Localizer.getInstance().getMessage("lblTakesExtraTurn"), null); p.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblPlayerTakesExtraTurn", p.toString()), null);
} }
} }
} }

View File

@@ -50,7 +50,7 @@ public class AssignGroupEffect extends SpellAbilityEffect {
Multimap<SpellAbility, GameObject> result = ArrayListMultimap.create(); Multimap<SpellAbility, GameObject> result = ArrayListMultimap.create();
for (GameObject g : defined) { for (GameObject g : defined) {
final String title = Localizer.getInstance().getMessage("lblChooseAbilityFor") + " " + g.toString(); final String title = Localizer.getInstance().getMessage("lblChooseAbilityForObject", g.toString());
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("Affected", g); params.put("Affected", g);

View File

@@ -61,7 +61,7 @@ public class AttachEffect extends SpellAbilityEffect {
// If Cast Targets will be checked on the Stack // If Cast Targets will be checked on the Stack
for (final Card attachment : attachments) { for (final Card attachment : attachments) {
String message = Localizer.getInstance().getMessage("lblDoYouWantAttach") + " " + attachment + " " + Localizer.getInstance().getMessage("lblTo") + " " + attachTo + "?"; String message = Localizer.getInstance().getMessage("lblDoYouWantAttachSourceToTarget", attachment.toString(), attachTo.toString());
if ( sa.hasParam("Optional") && !p.getController().confirmAction(sa, null, message) ) if ( sa.hasParam("Optional") && !p.getController().confirmAction(sa, null, message) )
continue; continue;
handleAttachment(attachment, attachTo, sa); handleAttachment(attachment, attachTo, sa);
@@ -174,7 +174,7 @@ public class AttachEffect extends SpellAbilityEffect {
players.add(player); players.add(player);
} }
} }
final Player pa = p.getController().chooseSingleEntityForEffect(players, aura, source + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); final Player pa = p.getController().chooseSingleEntityForEffect(players, aura, Localizer.getInstance().getMessage("lblSelectAPlayerAttachSourceTo", source.toString()));
if (pa != null) { if (pa != null) {
handleAura(source, pa); handleAura(source, pa);
return true; return true;
@@ -187,7 +187,7 @@ public class AttachEffect extends SpellAbilityEffect {
return false; return false;
} }
final Card o = p.getController().chooseSingleEntityForEffect(list, aura, source + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); final Card o = p.getController().chooseSingleEntityForEffect(list, aura, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", source.toString()));
if (o != null) { if (o != null) {
handleAura(source, o); handleAura(source, o);
//source.enchantEntity((Card) o); //source.enchantEntity((Card) o);

View File

@@ -60,7 +60,7 @@ public class BidLifeEffect extends SpellAbilityEffect {
if (result) { // a different choose number if (result) { // a different choose number
bid += p.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblBidLife") + ":", 1, 9); bid += p.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblBidLife") + ":", 1, 9);
winner = p; winner = p;
host.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWith") + " " + bid + " " + Localizer.getInstance().getMessage("lbllife"), p); host.getGame().getAction().nofityOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWithValueLife", String.valueOf(bid)), p);
} }
} }
} }

View File

@@ -45,7 +45,7 @@ public class ChangeCombatantsEffect extends SpellAbilityEffect {
final GameEntity originalDefender = combat.getDefenderByAttacker(c); final GameEntity originalDefender = combat.getDefenderByAttacker(c);
final FCollectionView<GameEntity> defs = combat.getDefenders(); final FCollectionView<GameEntity> defs = combat.getDefenders();
final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(defs, sa, final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(defs, sa,
Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false);
if (originalDefender != null && !originalDefender.equals(defender)) { if (originalDefender != null && !originalDefender.equals(defender)) {
AttackingBand ab = combat.getBandOfAttacker(c); AttackingBand ab = combat.getBandOfAttacker(c);
if (ab != null) { if (ab != null) {

View File

@@ -51,7 +51,7 @@ public class ChangeTargetsEffect extends SpellAbilityEffect {
// Redirect rules read 'you MAY choose new targets' ... okay! // Redirect rules read 'you MAY choose new targets' ... okay!
// TODO: Don't even ask to change targets, if the SA and subs don't actually have targets // TODO: Don't even ask to change targets, if the SA and subs don't actually have targets
boolean isOptional = sa.hasParam("Optional"); boolean isOptional = sa.hasParam("Optional");
if (isOptional && !chooser.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantChangeTargets") + " " + tgtSA.getHostCard() + "?")) { if (isOptional && !chooser.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantChangeAbilityTargets", tgtSA.getHostCard().toString()))) {
continue; continue;
} }
if (changesOneTarget) { if (changesOneTarget) {

View File

@@ -101,17 +101,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
if (sa.hasParam("OptionQuestion")) { if (sa.hasParam("OptionQuestion")) {
message = TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets); message = TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets);
} else { } else {
final StringBuilder sb = new StringBuilder(); message = Localizer.getInstance().getMessage("lblMoveTargetFromOriginToDestination", targets, Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME), destination.toString());
sb.append(Localizer.getInstance().getMessage("lblMove") + " ");
sb.append(targets);
sb.append(" " + Localizer.getInstance().getMessage("lblFrom") + " ");
sb.append(Lang.joinHomogenous(origin));
sb.append(" " + Localizer.getInstance().getMessage("lblTo") + " ");
sb.append(destination);
sb.append("?");
message = sb.toString();
} }
if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) { if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) {

View File

@@ -440,7 +440,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
hostCard.addRemembered(CardUtil.getLKICopy(tgtC)); hostCard.addRemembered(CardUtil.getLKICopy(tgtC));
} }
final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantMove"), tgtC.toString(), Localizer.getInstance().getMessage("lblFrom"), origin.toString(), Localizer.getInstance().getMessage("lblTo"), TextUtil.addSuffix(destination.toString(),"?")); final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantMoveTargetFromOriToDest", tgtC.toString(), origin.toString(), destination.toString()));
if (optional && !player.getController().confirmAction(sa, null, prompt) ) if (optional && !player.getController().confirmAction(sa, null, prompt) )
continue; continue;
@@ -504,7 +504,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), sa.getParam("AttachedTo"), tgtC.getController(), tgtC); list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), sa.getParam("AttachedTo"), tgtC.getController(), tgtC);
} }
if (!list.isEmpty()) { if (!list.isEmpty()) {
Card attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, tgtC + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); Card attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", tgtC.toString()));
tgtC.attachToEntity(attachedTo); tgtC.attachToEntity(attachedTo);
} else { // When it should enter the battlefield attached to an illegal permanent it fails } else { // When it should enter the battlefield attached to an illegal permanent it fails
continue; continue;
@@ -514,7 +514,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (sa.hasParam("AttachedToPlayer")) { if (sa.hasParam("AttachedToPlayer")) {
FCollectionView<Player> list = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("AttachedToPlayer"), sa); FCollectionView<Player> list = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("AttachedToPlayer"), sa);
if (!list.isEmpty()) { if (!list.isEmpty()) {
Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, tgtC + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectAPlayerAttachSourceTo", tgtC.toString()));
tgtC.attachToEntity(attachedTo); tgtC.attachToEntity(attachedTo);
} }
else { // When it should enter the battlefield attached to an illegal player it fails else { // When it should enter the battlefield attached to an illegal player it fails
@@ -561,7 +561,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
} }
} }
} else { } else {
defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + movedCard ); defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderForCard", movedCard.toString()));
} }
if (defender != null) { if (defender != null) {
combat.addAttacker(movedCard, defender); combat.addAttacker(movedCard, defender);
@@ -750,7 +750,14 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
final boolean optional = sa.hasParam("Optional"); final boolean optional = sa.hasParam("Optional");
if (optional) { if (optional) {
String message = MessageUtil.formatMessage(defined ? Localizer.getInstance().getMessage("lblPutThatCardFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase() + " " + Localizer.getInstance().getMessage("lblTo") + " " + destination.name().toLowerCase() : Localizer.getInstance().getMessage("lblSearch") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase() + "?", decider, player); String prompt;
if (defined) {
prompt = Localizer.getInstance().getMessage("lblPutThatCardFromPlayerOriginToDestination", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase(), destination.name().toLowerCase());
}
else {
prompt = Localizer.getInstance().getMessage("lblSearchPlayerZoneConfirm", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase());
}
String message = MessageUtil.formatMessage(prompt , decider, player);
if (!decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) { if (!decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) {
return; return;
} }
@@ -822,7 +829,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
continue; continue;
} }
SpellAbility tgtSA = decider.getController().getAbilityToPlay(tgtCard, sas); SpellAbility tgtSA = decider.getController().getAbilityToPlay(tgtCard, sas);
if (!decider.getController().confirmAction(tgtSA, null, Localizer.getInstance().getMessage("lblDoYouWantPlay") + " " + tgtCard + "?")) { if (!decider.getController().confirmAction(tgtSA, null, Localizer.getInstance().getMessage("lblDoYouWantPlayCard", tgtCard.toString()))) {
continue; continue;
} }
// if played, that card cannot be found // if played, that card cannot be found
@@ -854,7 +861,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
final boolean champion = sa.hasParam("Champion"); final boolean champion = sa.hasParam("Champion");
final boolean forget = sa.hasParam("ForgetChanged"); final boolean forget = sa.hasParam("ForgetChanged");
final boolean imprint = sa.hasParam("Imprint"); final boolean imprint = sa.hasParam("Imprint");
String selectPrompt = sa.hasParam("SelectPrompt") ? sa.getParam("SelectPrompt") : MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); String selectPrompt = sa.hasParam("SelectPrompt") ? sa.getParam("SelectPrompt") : MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardFromPlayerZone", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase()), decider, player);
final String totalcmc = sa.getParam("WithTotalCMC"); final String totalcmc = sa.getParam("WithTotalCMC");
int totcmc = AbilityUtils.calculateAmount(source, totalcmc, sa); int totcmc = AbilityUtils.calculateAmount(source, totalcmc, sa);
@@ -867,9 +874,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (! sa.hasParam("SelectPrompt")) { if (! sa.hasParam("SelectPrompt")) {
// new default messaging for multi select // new default messaging for multi select
if (fetchList.size() > changeNum) { if (fetchList.size() > changeNum) {
selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectUpTo") + " " + changeNum + " " + Localizer.getInstance().getMessage("lblCardsFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); //Select up to %changeNum cards from %players %origin
selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectUpToNumCardFromPlayerZone", String.valueOf(changeNum), "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase()), decider, player);
} else { } else {
selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardsFrom") + " {player's} " + Lang.joinHomogenous(origin).toLowerCase(), decider, player); selectPrompt = MessageUtil.formatMessage(Localizer.getInstance().getMessage("lblSelectCardsFromPlayerZone", "{player's}", Lang.joinHomogenous(origin, ZoneType.Accessors.GET_TRANSLATED_NAME).toLowerCase()), decider, player);
} }
} }
// ensure that selection is within maximum allowed changeNum // ensure that selection is within maximum allowed changeNum
@@ -931,7 +939,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (c == null) { if (c == null) {
final int num = Math.min(fetchList.size(), changeNum - i); final int num = Math.min(fetchList.size(), changeNum - i);
String message = Localizer.getInstance().getMessage("lblCancelSearchUpTo") + " " + num + " " + Localizer.getInstance().getMessage("lblMoreCard") + (num != 1 ? "s" : "") + " " + Localizer.getInstance().getMessage("lblCanBeSelected"); String message = Localizer.getInstance().getMessage("lblCancelSearchUpToSelectNumCards", String.valueOf(num));
if (fetchList.isEmpty() || decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) { if (fetchList.isEmpty() || decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) {
break; break;
@@ -1002,7 +1010,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (!list.isEmpty()) { if (!list.isEmpty()) {
Card attachedTo = null; Card attachedTo = null;
if (list.size() > 1) { if (list.size() > 1) {
attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, c + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString()));
} }
else { else {
attachedTo = list.get(0); attachedTo = list.get(0);
@@ -1020,7 +1028,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (sa.hasParam("AttachedToPlayer")) { if (sa.hasParam("AttachedToPlayer")) {
FCollectionView<Player> list = AbilityUtils.getDefinedPlayers(source, sa.getParam("AttachedToPlayer"), sa); FCollectionView<Player> list = AbilityUtils.getDefinedPlayers(source, sa.getParam("AttachedToPlayer"), sa);
if (!list.isEmpty()) { if (!list.isEmpty()) {
Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, c + " - " + Localizer.getInstance().getMessage("lblSelectAPlayerAttachTo")); Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString()));
c.attachToEntity(attachedTo); c.attachToEntity(attachedTo);
} }
else { // When it should enter the battlefield attached to an illegal permanent it fails else { // When it should enter the battlefield attached to an illegal permanent it fails
@@ -1043,7 +1051,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
} }
} }
} else { } else {
defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + c ); defender = player.getController().chooseSingleEntityForEffect(e, sa, Localizer.getInstance().getMessage("lblDeclareDefenderForCard", c.toString()));
} }
if (defender != null) { if (defender != null) {
combat.addAttacker(c, defender); combat.addAttacker(c, defender);

View File

@@ -83,7 +83,7 @@ public class ChooseCardEffect extends SpellAbilityEffect {
for (final String type : CardType.getBasicTypes()) { for (final String type : CardType.getBasicTypes()) {
final CardCollectionView cl = CardLists.getType(land, type); final CardCollectionView cl = CardLists.getType(land, type);
if (!cl.isEmpty()) { if (!cl.isEmpty()) {
final String prompt = "Choose " + Lang.nounWithAmount(1, type); final String prompt = Localizer.getInstance().getMessage("lblChoose") + " " + Lang.nounWithAmount(1, type);
Card c = p.getController().chooseSingleEntityForEffect(cl, sa, prompt, false); Card c = p.getController().chooseSingleEntityForEffect(cl, sa, prompt, false);
if (c != null) { if (c != null) {
chosen.add(c); chosen.add(c);
@@ -99,8 +99,8 @@ public class ChooseCardEffect extends SpellAbilityEffect {
int chosenP = 0; int chosenP = 0;
while (!creature.isEmpty()) { while (!creature.isEmpty()) {
Card c = p.getController().chooseSingleEntityForEffect(creature, sa, Card c = p.getController().chooseSingleEntityForEffect(creature, sa,
Localizer.getInstance().getMessage("lblSelectCreatureWithTotalPowerLessOrEqualTo") + " " + (totP - chosenP - negativeNum) Localizer.getInstance().getMessage("lblSelectCreatureWithTotalPowerLessOrEqualToNum", (totP - chosenP - negativeNum))
+ "\r\n(" + Localizer.getInstance().getMessage("lblSelected") + ":" + chosenPool + ")\r\n(" + Localizer.getInstance().getMessage("lblTotalPower") + ": " + chosenP + ")", chosenP <= totP); + "\r\n(" + Localizer.getInstance().getMessage("lblSelected") + ":" + chosenPool + ")\r\n(" + Localizer.getInstance().getMessage("lblTotalPowerNum", chosenP) + ")", chosenP <= totP);
if (c == null) { if (c == null) {
if (p.getController().confirmAction(sa, PlayerActionConfirmMode.OptionalChoose, Localizer.getInstance().getMessage("lblCancelChooseConfirm"))) { if (p.getController().confirmAction(sa, PlayerActionConfirmMode.OptionalChoose, Localizer.getInstance().getMessage("lblCancelChooseConfirm"))) {
break; break;

View File

@@ -104,7 +104,7 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
} else { } else {
// use CardFace because you might name a alternate name // use CardFace because you might name a alternate name
//"name a card" in mtg card oracle text is "choose a card name",change text //"name a card" in mtg card oracle text is "choose a card name",change text
final String message = validDesc.equals("card") ? Localizer.getInstance().getMessage("lblChooseACardName") : Localizer.getInstance().getMessage("lblChooseA") + validDesc + Localizer.getInstance().getMessage("lblCardName") + "."; final String message = validDesc.equals("card") ? Localizer.getInstance().getMessage("lblChooseACardName") : Localizer.getInstance().getMessage("lblChooseASpecificCard", validDesc);
Predicate<ICardFace> cpp = Predicates.alwaysTrue(); Predicate<ICardFace> cpp = Predicates.alwaysTrue();
if (sa.hasParam("ValidCards")) { if (sa.hasParam("ValidCards")) {
@@ -116,7 +116,7 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
host.setNamedCard(chosen); host.setNamedCard(chosen);
if(!randomChoice) { if(!randomChoice) {
p.getGame().getAction().nofityOfValue(sa, host, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + chosen, p); p.getGame().getAction().nofityOfValue(sa, host, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p);
p.setNamedCard(chosen); p.setNamedCard(chosen);
} }
} }

View File

@@ -50,27 +50,25 @@ public class ChooseColorEffect extends SpellAbilityEffect {
List<String> chosenColors; List<String> chosenColors;
int cntMin = sa.hasParam("TwoColors") ? 2 : 1; int cntMin = sa.hasParam("TwoColors") ? 2 : 1;
int cntMax = sa.hasParam("TwoColors") ? 2 : sa.hasParam("OrColors") ? colorChoices.size() : 1; int cntMax = sa.hasParam("TwoColors") ? 2 : sa.hasParam("OrColors") ? colorChoices.size() : 1;
String prompt; String prompt = null;
if (cntMax == 1) { if (cntMax == 1) {
prompt = Localizer.getInstance().getMessage("lblChooseAColor"); prompt = Localizer.getInstance().getMessage("lblChooseAColor");
} }
else { else {
prompt = Localizer.getInstance().getMessage("lblChoose") + " " + Lang.getNumeral(cntMin);
if (cntMax > cntMin) { if (cntMax > cntMin) {
if (cntMax >= MagicColor.NUMBER_OR_COLORS) { if (cntMax >= MagicColor.NUMBER_OR_COLORS) {
prompt += " " + Localizer.getInstance().getMessage("lblOrMore"); prompt = Localizer.getInstance().getMessage("lblAtLastChooseNumColors", Lang.getNumeral(cntMin));
} else { } else {
prompt += " " + Localizer.getInstance().getMessage("lblTo") + " " + Lang.getNumeral(cntMax); prompt = Localizer.getInstance().getMessage("lblChooseSpecifiedRangeColors", Lang.getNumeral(cntMin), Lang.getNumeral(cntMax));
} }
} }
prompt += " " + Localizer.getInstance().getMessage("lblColors");
} }
chosenColors = p.getController().chooseColors(prompt, sa, cntMin, cntMax, colorChoices); chosenColors = p.getController().chooseColors(prompt, sa, cntMin, cntMax, colorChoices);
if (chosenColors.isEmpty()) { if (chosenColors.isEmpty()) {
return; return;
} }
card.setChosenColors(chosenColors); card.setChosenColors(chosenColors);
p.getGame().getAction().nofityOfValue(sa, card, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + Lang.joinHomogenous(chosenColors), p); p.getGame().getAction().nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), Lang.joinHomogenous(chosenColors)), p);
} }
} }
} }

View File

@@ -73,7 +73,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect {
card.setChosenNumber(chosen); card.setChosenNumber(chosen);
} }
if (sa.hasParam("Notify")) { if (sa.hasParam("Notify")) {
p.getGame().getAction().nofityOfValue(sa, card, p.getName() + " " + Localizer.getInstance().getMessage("lblPicked") + " " + chosen, p); p.getGame().getAction().nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p);
} }
} }
} }
@@ -86,7 +86,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect {
for (Entry<Player, Integer> ev : chooseMap.entrySet()) { for (Entry<Player, Integer> ev : chooseMap.entrySet()) {
int num = ev.getValue(); int num = ev.getValue();
Player player = ev.getKey(); Player player = ev.getKey();
sb.append(player).append(" " + Localizer.getInstance().getMessage("lblChose") + " ").append(num); sb.append(Localizer.getInstance().getMessage("lblPlayerChoseNum", player.getName(), String.valueOf(num)));
sb.append("\r\n"); sb.append("\r\n");
if (num > highest) { if (num > highest) {
highestNum.clear(); highestNum.clear();

View File

@@ -94,7 +94,7 @@ public class CloneEffect extends SpellAbilityEffect {
} }
final boolean optional = sa.hasParam("Optional"); final boolean optional = sa.hasParam("Optional");
if (optional && !host.getController().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantCopy") + " " + cardToCopy + "?")) { if (optional && !host.getController().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantCopyCard", cardToCopy))) {
return; return;
} }

View File

@@ -228,7 +228,7 @@ public class ControlGainEffect extends SpellAbilityEffect {
final FCollectionView<GameEntity> e = combat.getDefenders(); final FCollectionView<GameEntity> e = combat.getDefenders();
final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(e, sa, final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(e, sa,
Localizer.getInstance().getMessage("lblDeclareDefenderFor") + " " + tgtC); Localizer.getInstance().getMessage("lblDeclareDefenderForCard", tgtC.toString()));
if (defender != null) { if (defender != null) {
combat.addAttacker(tgtC, defender); combat.addAttacker(tgtC, defender);

View File

@@ -207,12 +207,12 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
GameEntity defender; GameEntity defender;
if ("True".equals(attacked)) { if ("True".equals(attacked)) {
FCollectionView<GameEntity> defs = game.getCombat().getDefenders(); FCollectionView<GameEntity> defs = game.getCombat().getDefenders();
defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false);
} else { } else {
defender = AbilityUtils.getDefinedPlayers(host, sa.getParam("CopyAttacking"), sa).get(0); defender = AbilityUtils.getDefinedPlayers(host, sa.getParam("CopyAttacking"), sa).get(0);
if (sa.hasParam("ChoosePlayerOrPlaneswalker") && defender != null) { if (sa.hasParam("ChoosePlayerOrPlaneswalker") && defender != null) {
FCollectionView<GameEntity> defs = game.getCombat().getDefendersControlledBy((Player) defender); FCollectionView<GameEntity> defs = game.getCombat().getDefendersControlledBy((Player) defender);
defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c + " {" + Localizer.getInstance().getMessage("lblDefender") + ": " + defender + "}", false); defender = c.getController().getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()) + " {" + Localizer.getInstance().getMessage("lblDefender") + ": " + defender + "}", false);
} }
} }
game.getCombat().addAttacker(copyInPlay, defender); game.getCombat().addAttacker(copyInPlay, defender);
@@ -244,7 +244,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
list = CardLists.getValidCards(list, sa.getParam("AttachedTo"), copyInPlay.getController(), copyInPlay); list = CardLists.getValidCards(list, sa.getParam("AttachedTo"), copyInPlay.getController(), copyInPlay);
} }
if (!list.isEmpty()) { if (!list.isEmpty()) {
Card attachedTo = activator.getController().chooseSingleEntityForEffect(list, sa, copyInPlay + " - " + Localizer.getInstance().getMessage("lblSelectACardAttachTo")); Card attachedTo = activator.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", copyInPlay.toString()));
copyInPlay.attachToEntity(attachedTo); copyInPlay.attachToEntity(attachedTo);
} else { } else {

View File

@@ -67,7 +67,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect {
} }
boolean isOptional = sa.hasParam("Optional"); boolean isOptional = sa.hasParam("Optional");
if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantCopyTheSpell") + " " + card + "?")) { if (isOptional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantCopyTheSpell", card.toString()))) {
return; return;
} }
@@ -85,7 +85,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect {
final int spellCount = Integer.parseInt(sa.getParam("CopyMultipleSpells")); final int spellCount = Integer.parseInt(sa.getParam("CopyMultipleSpells"));
for (int multi = 0; multi < spellCount && !tgtSpells.isEmpty(); multi++) { for (int multi = 0; multi < spellCount && !tgtSpells.isEmpty(); multi++) {
String prompt = Localizer.getInstance().getMessage("lblSelectMultiSpellCopyToStack").replace("%d", Lang.getOrdinal(multi + 1)); String prompt = Localizer.getInstance().getMessage("lblSelectMultiSpellCopyToStack", Lang.getOrdinal(multi + 1));
SpellAbility chosen = controller.getController().chooseSingleSpellForEffect(tgtSpells, sa, prompt, SpellAbility chosen = controller.getController().chooseSingleSpellForEffect(tgtSpells, sa, prompt,
ImmutableMap.of()); ImmutableMap.of());
SpellAbility copiedSpell = CardFactory.copySpellAbilityAndPossiblyHost(card, chosen.getHostCard(), chosen, true); SpellAbility copiedSpell = CardFactory.copySpellAbilityAndPossiblyHost(card, chosen.getHostCard(), chosen, true);

View File

@@ -110,11 +110,7 @@ public class CountersMoveEffect extends SpellAbilityEffect {
// only select cards if the counterNum is any // only select cards if the counterNum is any
if (counterNum.equals("Any")) { if (counterNum.equals("Any")) {
StringBuilder sb = new StringBuilder(); srcCards = player.getController().chooseCardsForEffect(srcCards, sa, Localizer.getInstance().getMessage("lblChooseTakeCountersCard", cType.getName()), 0, srcCards.size(), true);
sb.append(Localizer.getInstance().getMessage("lblChooseTakeCountersCard").replace("%s", cType.getName()));
srcCards = player.getController().chooseCardsForEffect(srcCards, sa, sb.toString(), 0, srcCards.size(), true);
} }
for (Card src : srcCards) { for (Card src : srcCards) {
@@ -136,10 +132,7 @@ public class CountersMoveEffect extends SpellAbilityEffect {
params.put("CounterType", cType); params.put("CounterType", cType);
params.put("Source", src); params.put("Source", src);
params.put("Target", dest); params.put("Target", dest);
StringBuilder sb = new StringBuilder(); cnum = player.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounterFromCard", cType.getName(), src.toString()), 0, cmax, params);
sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(cType.getName());
sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(src).append("?");
cnum = player.getController().chooseNumber(sa, sb.toString(), 0, cmax, params);
} else { } else {
cnum = AbilityUtils.calculateAmount(host, counterNum, sa); cnum = AbilityUtils.calculateAmount(host, counterNum, sa);
} }
@@ -173,12 +166,8 @@ public class CountersMoveEffect extends SpellAbilityEffect {
tgtCards = CardLists.getValidCards(tgtCards, sa.getParam("ValidDefined"), player, host, sa); tgtCards = CardLists.getValidCards(tgtCards, sa.getParam("ValidDefined"), player, host, sa);
if (counterNum.equals("Any")) { if (counterNum.equals("Any")) {
StringBuilder sb = new StringBuilder(); tgtCards = player.getController().chooseCardsForEffect(tgtCards, sa,
sb.append(Localizer.getInstance().getMessage("lblChooseCardToGet") + " ").append(cType.getName()); Localizer.getInstance().getMessage("lblChooseCardToGetCountersFrom", cType.getName(), source.toString()), 0, tgtCards.size(), true);
sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(source).append(".");
tgtCards = player.getController().chooseCardsForEffect(
tgtCards, sa, sb.toString(), 0, tgtCards.size(), true);
} }
boolean updateSource = false; boolean updateSource = false;
@@ -202,9 +191,7 @@ public class CountersMoveEffect extends SpellAbilityEffect {
params.put("CounterType", cType); params.put("CounterType", cType);
params.put("Source", source); params.put("Source", source);
params.put("Target", cur); params.put("Target", cur);
StringBuilder sb = new StringBuilder(); int cnum = player.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblPutHowManyTargetCounterOnCard", cType.getName(), cur.toString()), 0, source.getCounters(cType), params);
sb.append(Localizer.getInstance().getMessage("lblPutHowMany") + " ").append(cType.getName()).append(" " + Localizer.getInstance().getMessage("lblCountersOn") + " ").append(cur).append("?");
int cnum = player.getController().chooseNumber(sa, sb.toString(), 0, source.getCounters(cType), params);
if (cnum > 0) { if (cnum > 0) {
source.subtractCounter(cType, cnum); source.subtractCounter(cType, cnum);
@@ -262,10 +249,7 @@ public class CountersMoveEffect extends SpellAbilityEffect {
params.put("CounterType", cType); params.put("CounterType", cType);
params.put("Source", source); params.put("Source", source);
params.put("Target", cur); params.put("Target", cur);
StringBuilder sb = new StringBuilder(); cntToMove = pc.chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounterFromCard", cType.getName(), source.toString()), 0, cntToMove, params);
sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(cType.getName());
sb.append(" " + Localizer.getInstance().getMessage("lblCountersFrom") + " ").append(source).append("?");
cntToMove = pc.chooseNumber(sa, sb.toString(), 0, cntToMove, params);
} }
if (source.getCounters(cType) >= cntToMove) { if (source.getCounters(cType) >= cntToMove) {
@@ -298,10 +282,8 @@ public class CountersMoveEffect extends SpellAbilityEffect {
params.put("CounterType", chosenType); params.put("CounterType", chosenType);
params.put("Source", source); params.put("Source", source);
params.put("Target", dest); params.put("Target", dest);
StringBuilder sb = new StringBuilder(); int chosenAmount = pc.chooseNumber(sa, Localizer.getInstance().getMessage("lblTakeHowManyTargetCounters", chosenType.getName()),
sb.append(Localizer.getInstance().getMessage("lblTakeHowMany") + " ").append(chosenType.getName()).append(" " + Localizer.getInstance().getMessage("lblCounters") + "?"); 0, Math.min(tgtCounters.get(chosenType), cntToMove), params);
int chosenAmount = pc.chooseNumber(
sa, sb.toString(), 0, Math.min(tgtCounters.get(chosenType), cntToMove), params);
if (chosenAmount > 0) { if (chosenAmount > 0) {
dest.addCounter(chosenType, chosenAmount, player, true, table); dest.addCounter(chosenType, chosenAmount, player, true, table);

View File

@@ -236,7 +236,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
continue; continue;
} }
String message = Localizer.getInstance().getMessage("lblDoYouWantPutTargetP1P1CountersOn").replace("%d", String.valueOf(counterAmount)) + " " + gameCard + " ?"; String message = Localizer.getInstance().getMessage("lblDoYouWantPutTargetP1P1CountersOnCard", String.valueOf(counterAmount), gameCard.toString());
Player chooser = pc.chooseSingleEntityForEffect(activator.getOpponents(), sa, Localizer.getInstance().getMessage("lblChooseAnOpponent")); Player chooser = pc.chooseSingleEntityForEffect(activator.getOpponents(), sa, Localizer.getInstance().getMessage("lblChooseAnOpponent"));
if (chooser.getController().confirmAction(sa, PlayerActionConfirmMode.Tribute, message)) { if (chooser.getController().confirmAction(sa, PlayerActionConfirmMode.Tribute, message)) {

View File

@@ -102,7 +102,7 @@ public class CountersPutOrRemoveEffect extends SpellAbilityEffect {
CounterType chosenType = pc.chooseCounterType(list, sa, prompt, params); CounterType chosenType = pc.chooseCounterType(list, sa, prompt, params);
params.put("CounterType", chosenType); params.put("CounterType", chosenType);
prompt = Localizer.getInstance().getMessage("lblWhatToDoWithTargetCounter").replace("%s", chosenType.getName()) + " "; prompt = Localizer.getInstance().getMessage("lblWhatToDoWithTargetCounter", chosenType.getName()) + " ";
Boolean putCounter = pc.chooseBinary(sa, prompt, BinaryChoiceType.AddOrRemove, params); Boolean putCounter = pc.chooseBinary(sa, prompt, BinaryChoiceType.AddOrRemove, params);
if (putCounter) { if (putCounter) {

View File

@@ -130,10 +130,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect {
srcCards = game.getCardsIn(ZoneType.Battlefield); srcCards = game.getCardsIn(ZoneType.Battlefield);
srcCards = CardLists.getValidCards(srcCards, sa.getParam("ValidSource"), player, card, sa); srcCards = CardLists.getValidCards(srcCards, sa.getParam("ValidSource"), player, card, sa);
if (num.equals("Any")) { if (num.equals("Any")) {
StringBuilder sb = new StringBuilder(); srcCards = player.getController().chooseCardsForEffect(srcCards, sa, Localizer.getInstance().getMessage("lblChooseCardsToTakeTargetCounters", counterType.getName()), 0, srcCards.size(), true);
sb.append(Localizer.getInstance().getMessage("lblChooseCardtoTakeTargetCounters").replace("%s", counterType.getName()));
srcCards = player.getController().chooseCardsForEffect(srcCards, sa, sb.toString(), 0, srcCards.size(), true);
} }
} else { } else {
srcCards = getTargetCards(sa); srcCards = getTargetCards(sa);
@@ -173,7 +170,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect {
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
params.put("Target", gameCard); params.put("Target", gameCard);
params.put("CounterType", type); params.put("CounterType", type);
String title = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget").replace("%s", type); String title = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget", type);
cntToRemove = pc.chooseNumber(sa, title, 0, cntToRemove, params); cntToRemove = pc.chooseNumber(sa, title, 0, cntToRemove, params);
} }
@@ -217,7 +214,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect {
String prompt = Localizer.getInstance().getMessage("lblSelectCountersTypeToRemove"); String prompt = Localizer.getInstance().getMessage("lblSelectCountersTypeToRemove");
CounterType chosenType = pc.chooseCounterType( CounterType chosenType = pc.chooseCounterType(
ImmutableList.copyOf(tgtCounters.keySet()), sa, prompt, params); ImmutableList.copyOf(tgtCounters.keySet()), sa, prompt, params);
prompt = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget").replace("%s", chosenType.getName()); prompt = Localizer.getInstance().getMessage("lblSelectRemoveCountersNumberOfTarget", chosenType.getName());
int max = Math.min(cntToRemove, tgtCounters.get(chosenType)); int max = Math.min(cntToRemove, tgtCounters.get(chosenType));
params = Maps.newHashMap(); params = Maps.newHashMap();
params.put("Target", entity); params.put("Target", entity);

View File

@@ -84,7 +84,7 @@ public class DamageDealEffect extends DamageBaseEffect {
List<GameObject> tgts = getTargets(sa); List<GameObject> tgts = getTargets(sa);
if (sa.hasParam("OptionalDecider")) { if (sa.hasParam("OptionalDecider")) {
Player decider = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("OptionalDecider"), sa), null); Player decider = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("OptionalDecider"), sa), null);
if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageTo").replace("%d", String.valueOf(dmg)) + " " + tgts + " ?")) { if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageToTarget", String.valueOf(dmg), tgts.toString()))) {
return; return;
} }
} }

View File

@@ -222,17 +222,17 @@ public class DigEffect extends SpellAbilityEffect {
} }
chooser.getController().endTempShowCards(); chooser.getController().endTempShowCards();
if (!movedCards.isEmpty()) { if (!movedCards.isEmpty()) {
game.getAction().reveal(movedCards, chooser, true, chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " "); game.getAction().reveal(movedCards, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedChosen", chooser.getName(), ""));
} }
} }
else if (allButOne) { else if (allButOne) {
movedCards = new CardCollection(valid); movedCards = new CardCollection(valid);
String prompt; String prompt;
if (destZone2.equals(ZoneType.Library) && libraryPosition2 == 0) { if (destZone2.equals(ZoneType.Library) && libraryPosition2 == 0) {
prompt = Localizer.getInstance().getMessage("lblChooseACardToLeaveTargetLibraryTop").replace("%s", "{player's}"); prompt = Localizer.getInstance().getMessage("lblChooseACardToLeaveTargetLibraryTop", "{player's}");
} }
else { else {
prompt = Localizer.getInstance().getMessage("lblChooseACardLeaveTarget").replace("%s", "{player's}") + " " + destZone2.name(); prompt = Localizer.getInstance().getMessage("lblChooseACardLeaveTargetZone", "{player's}", destZone2.getTranslatedName());
} }
Card chosen = chooser.getController().chooseSingleEntityForEffect(valid, delayedReveal, sa, prompt, false, p); Card chosen = chooser.getController().chooseSingleEntityForEffect(valid, delayedReveal, sa, prompt, false, p);
@@ -246,12 +246,12 @@ public class DigEffect extends SpellAbilityEffect {
if (sa.hasParam("PrimaryPrompt")) { if (sa.hasParam("PrimaryPrompt")) {
prompt = sa.getParam("PrimaryPrompt"); prompt = sa.getParam("PrimaryPrompt");
} else { } else {
prompt = Localizer.getInstance().getMessage("lblChooseCardsPutInto") + " " + destZone1.name(); prompt = Localizer.getInstance().getMessage("lblChooseCardsPutIntoZone", destZone1.getTranslatedName());
if (destZone1.equals(ZoneType.Library)) { if (destZone1.equals(ZoneType.Library)) {
if (libraryPosition == -1) { if (libraryPosition == -1) {
prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayBottom").replace("%s", "{player's}"); prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayBottom", "{player's}");
} else if (libraryPosition == 0) { } else if (libraryPosition == 0) {
prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayTop").replace("%s", "{player's}"); prompt = Localizer.getInstance().getMessage("lblChooseCardPutOnTargetLibarayTop", "{player's}");
} }
} }
} }
@@ -276,10 +276,7 @@ public class DigEffect extends SpellAbilityEffect {
} }
if (!changeValid.isEmpty() && !sa.hasParam("ExileFaceDown") && !sa.hasParam("NoReveal")) { if (!changeValid.isEmpty() && !sa.hasParam("ExileFaceDown") && !sa.hasParam("NoReveal")) {
game.getAction().reveal(movedCards, chooser, true, game.getAction().reveal(movedCards, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedCardFrom", chooser.getName()));
chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " " +
(movedCards.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) +
" " + Localizer.getInstance().getMessage("lblFrom") + " ");
} }
} }
if (sa.hasParam("ForgetOtherRemembered")) { if (sa.hasParam("ForgetOtherRemembered")) {

View File

@@ -82,8 +82,7 @@ public class DigMultipleEffect extends SpellAbilityEffect {
CardCollection chosen = chooser.getController().chooseCardsForEffectMultiple(validMap, sa, Localizer.getInstance().getMessage("lblChooseCards")); CardCollection chosen = chooser.getController().chooseCardsForEffectMultiple(validMap, sa, Localizer.getInstance().getMessage("lblChooseCards"));
if (!chosen.isEmpty()) { if (!chosen.isEmpty()) {
game.getAction().reveal(chosen, chooser, true, game.getAction().reveal(chosen, chooser, true, Localizer.getInstance().getMessage("lblPlayerPickedCardFrom", chooser.getName()));
chooser + " " + Localizer.getInstance().getMessage("lblPicked") + " " + (chosen.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) + " " + Localizer.getInstance().getMessage("lblFrom") + " ");
} }
for (Card c : chosen) { for (Card c : chosen) {

View File

@@ -160,7 +160,7 @@ public class DigUntilEffect extends SpellAbilityEffect {
final Card c = itr.next(); final Card c = itr.next();
final ZoneType origin = c.getZone().getZoneType(); final ZoneType origin = c.getZone().getZoneType();
if (optionalFound && !p.getController().confirmAction(sa, null, if (optionalFound && !p.getController().confirmAction(sa, null,
Localizer.getInstance().getMessage("lblDoYouWantPutCardTo") + " " + foundDest.name() + "?")) { Localizer.getInstance().getMessage("lblDoYouWantPutCardToZone", foundDest.getTranslatedName()))) {
continue; continue;
} else { } else {
Card m = null; Card m = null;

View File

@@ -206,7 +206,7 @@ public class DiscardEffect extends SpellAbilityEffect {
if (!p.canDiscardBy(sa)) { if (!p.canDiscardBy(sa)) {
continue; continue;
} }
String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard").replace("%d", String.valueOf(numCards)); String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard", String.valueOf(numCards));
boolean runDiscard = !sa.hasParam("Optional") || p.getController().confirmAction(sa, PlayerActionConfirmMode.Random, message); boolean runDiscard = !sa.hasParam("Optional") || p.getController().confirmAction(sa, PlayerActionConfirmMode.Random, message);
if (runDiscard) { if (runDiscard) {
@@ -326,8 +326,7 @@ public class DiscardEffect extends SpellAbilityEffect {
} }
if (mode.startsWith("Reveal") ) { if (mode.startsWith("Reveal") ) {
p.getController().reveal(toBeDiscarded, ZoneType.Hand, p, p.getController().reveal(toBeDiscarded, ZoneType.Hand, p, Localizer.getInstance().getMessage("lblPlayerHasChosenCardsFrom", chooser.getName()));
chooser + " " + Localizer.getInstance().getMessage("lblHasChosen") + " " + (toBeDiscarded.size() == 1 ? Localizer.getInstance().getMessage("lblThisCard") : Localizer.getInstance().getMessage("lblTheseCards")) + " " + Localizer.getInstance().getMessage("lblFrom") + " ");
} }
for (Card card : toBeDiscarded) { for (Card card : toBeDiscarded) {
if (card == null) { continue; } if (card == null) { continue; }

View File

@@ -50,7 +50,7 @@ public class DrawEffect extends SpellAbilityEffect {
for (final Player p : getDefinedPlayersOrTargeted(sa)) { for (final Player p : getDefinedPlayersOrTargeted(sa)) {
if ((tgt == null) || p.canBeTargetedBy(sa)) if ((tgt == null) || p.canBeTargetedBy(sa))
if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantDraw") + " " + Lang.nounWithAmount(numCards, " card") + "?")) if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantDrawCards", Lang.nounWithAmount(numCards, " card"))))
continue; continue;
int actualNum = numCards; int actualNum = numCards;

View File

@@ -45,9 +45,7 @@ public class EncodeEffect extends SpellAbilityEffect {
// Handle choice of whether or not to encoded // Handle choice of whether or not to encoded
final StringBuilder sb = new StringBuilder(); if (!player.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantExileCardAndEncodeOntoYouCreature", host.toString()))) {
sb.append(Localizer.getInstance().getMessage("lblDoYouWantExile") + " ").append(host).append(" " + Localizer.getInstance().getMessage("lblAndEncodeOntoAYouControlCreature"));
if (!player.getController().confirmAction(sa, null, sb.toString())) {
return; return;
} }
@@ -62,7 +60,7 @@ public class EncodeEffect extends SpellAbilityEffect {
} }
StringBuilder codeLog = new StringBuilder(); StringBuilder codeLog = new StringBuilder();
codeLog.append(Localizer.getInstance().getMessage("lblEncoding") + " ").append(host.toString()).append(" " + Localizer.getInstance().getMessage("lblTo") + " ").append(choice.toString()); codeLog.append("Encoding ").append(host.toString()).append(" to ").append(choice.toString());
game.getGameLog().add(GameLogEntryType.STACK_RESOLVE, codeLog.toString()); game.getGameLog().add(GameLogEntryType.STACK_RESOLVE, codeLog.toString());
// store hostcard in encoded array // store hostcard in encoded array

View File

@@ -112,7 +112,7 @@ public class ManaEffect extends SpellAbilityEffect {
return; return;
} }
game.action.nofityOfValue(sa, card, activator + " " + Localizer.getInstance().getMessage("lblPicked") + " " + choiceString, activator); game.action.nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", activator.getName(), choiceString), activator);
abMana.setExpressChoice(choiceString.toString()); abMana.setExpressChoice(choiceString.toString());
} }
} }
@@ -142,7 +142,7 @@ public class ManaEffect extends SpellAbilityEffect {
} }
choice = MagicColor.toShortString(val); choice = MagicColor.toShortString(val);
game.action.nofityOfValue(sa, card, act + " " + Localizer.getInstance().getMessage("lblPicked") + " " + choice, act); game.action.nofityOfValue(sa, card, Localizer.getInstance().getMessage("lblPlayerPickedChosen", act.getName(), choice), act);
abMana.setExpressChoice(choice); abMana.setExpressChoice(choice);
} }
} }
@@ -173,7 +173,7 @@ public class ManaEffect extends SpellAbilityEffect {
if (cs.isMonoColor()) if (cs.isMonoColor())
sb.append(MagicColor.toShortString(s.getColorMask())); sb.append(MagicColor.toShortString(s.getColorMask()));
else /* (cs.isMulticolor()) */ { else /* (cs.isMulticolor()) */ {
byte chosenColor = sa.getActivatingPlayer().getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFrom") + " " + s.toString(), sa, cs); byte chosenColor = sa.getActivatingPlayer().getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFromTarget", s.toString()), sa, cs);
sb.append(MagicColor.toShortString(chosenColor)); sb.append(MagicColor.toShortString(chosenColor));
} }
} }

View File

@@ -40,7 +40,7 @@ public class MillEffect extends SpellAbilityEffect {
for (final Player p : getTargetPlayers(sa)) { for (final Player p : getTargetPlayers(sa)) {
if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) { if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) {
if (sa.hasParam("Optional")) { if (sa.hasParam("Optional")) {
final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPutLibraryCardsTo"), TextUtil.addSuffix(destination.toString(),"?")); final String prompt = TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPutLibraryCardsTo", destination.getTranslatedName()));
if (!p.getController().confirmAction(sa, null, prompt)) { if (!p.getController().confirmAction(sa, null, prompt)) {
continue; continue;
} }

View File

@@ -86,7 +86,7 @@ public class MultiplePilesEffect extends SpellAbilityEffect {
for (int i = 1; i < piles; i++) { for (int i = 1; i < piles; i++) {
int size = pool.size(); int size = pool.size();
CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInPile") + " " + i, 0, size, false); CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInTargetPile", String.valueOf(i)), 0, size, false);
pileList.add(pile); pileList.add(pile);
pool.removeAll(pile); pool.removeAll(pile);
} }

View File

@@ -3,7 +3,6 @@ package forge.game.ability.effects;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
@@ -163,7 +162,7 @@ public class PlayEffect extends SpellAbilityEffect {
game.getAction().revealTo(tgtCard, activator); game.getAction().revealTo(tgtCard, activator);
} }
if (optional && !controller.getController().confirmAction(sa, null, TextUtil.concatWithSpace(Localizer.getInstance().getMessage("lblDoYouWantPlay"), TextUtil.addSuffix(tgtCard.toString(),"?")))) { if (optional && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantPlayCard", tgtCard.toString()))) {
if (wasFaceDown) { if (wasFaceDown) {
tgtCard.turnFaceDownNoUpdate(); tgtCard.turnFaceDownNoUpdate();
} }

View File

@@ -328,7 +328,7 @@ public class PumpEffect extends SpellAbilityEffect {
final String targets = Lang.joinHomogenous(tgtCards); final String targets = Lang.joinHomogenous(tgtCards);
final String message = sa.hasParam("OptionQuestion") final String message = sa.hasParam("OptionQuestion")
? TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets) ? TextUtil.fastReplace(sa.getParam("OptionQuestion"), "TARGETS", targets)
: TextUtil.concatNoSpace(Localizer.getInstance().getMessage("lblApplyPumpTo") + " ", targets, "?"); : Localizer.getInstance().getMessage("lblApplyPumpToTarget", targets);
if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) { if (!sa.getActivatingPlayer().getController().confirmAction(sa, null, message)) {
return; return;

View File

@@ -26,7 +26,7 @@ public class RollPlanarDiceEffect extends SpellAbilityEffect {
game.getPhaseHandler().incPlanarDiceRolledthisTurn(); game.getPhaseHandler().incPlanarDiceRolledthisTurn();
} }
PlanarDice result = PlanarDice.roll(activator, null); PlanarDice result = PlanarDice.roll(activator, null);
String message = activator.getName() + " " + Localizer.getInstance().getMessage("lblRolled") + " " + result.toString(); String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", activator.getName(), result.toString());
game.getAction().nofityOfValue(sa, activator, message, null); game.getAction().nofityOfValue(sa, activator, message, null);
} }

View File

@@ -194,10 +194,10 @@ public class SacrificeEffect extends SpellAbilityEffect {
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa); final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa);
if (valid.equals("Self")) { if (valid.equals("Self")) {
sb.append(Localizer.getInstance().getMessage("lblSacrifice") + " ").append(sa.getHostCard().toString()); sb.append("Sacrifices ").append(sa.getHostCard().toString());
} else if (valid.equals("Card.AttachedBy")) { } else if (valid.equals("Card.AttachedBy")) {
final Card toSac = sa.getHostCard().getEnchantingCard(); final Card toSac = sa.getHostCard().getEnchantingCard();
sb.append(toSac.getController()).append(" " + Localizer.getInstance().getMessage("lblSacrifice") + " ").append(toSac).append("."); sb.append(toSac.getController()).append(" Sacrifices ").append(toSac).append(".");
} else { } else {
for (final Player p : tgts) { for (final Player p : tgts) {
sb.append(p.getName()).append(" "); sb.append(p.getName()).append(" ");
@@ -209,9 +209,9 @@ public class SacrificeEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("Destroy")) { if (sa.hasParam("Destroy")) {
sb.append(Localizer.getInstance().getMessage("lblDestroys") + " "); sb.append("Destroys ");
} else { } else {
sb.append(Localizer.getInstance().getMessage("lblSacrifice") + " "); sb.append("Sacrifices ");
} }
sb.append(amount).append(" ").append(msg).append("."); sb.append(amount).append(" ").append(msg).append(".");
} }

View File

@@ -21,7 +21,7 @@ public class ShuffleEffect extends SpellAbilityEffect {
for (final Player p : tgtPlayers) { for (final Player p : tgtPlayers) {
if ((tgt == null) || p.canBeTargetedBy(sa)) { if ((tgt == null) || p.canBeTargetedBy(sa)) {
boolean mustShuffle = !optional || sa.getActivatingPlayer().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblHaveTargetShuffle").replace("%s", p + "")); boolean mustShuffle = !optional || sa.getActivatingPlayer().getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblHaveTargetShuffle", p.getName()));
if (mustShuffle) if (mustShuffle)
p.shuffle(sa); p.shuffle(sa);
} }

View File

@@ -39,7 +39,7 @@ public class TapOrUntapEffect extends SpellAbilityEffect {
for (final Card tgtC : tgtCards) { for (final Card tgtC : tgtCards) {
if (tgtC.isInPlay() && ((tgt == null) || tgtC.canBeTargetedBy(sa))) { if (tgtC.isInPlay() && ((tgt == null) || tgtC.canBeTargetedBy(sa))) {
// If the effected card is controlled by the same controller of the SA, default to untap. // If the effected card is controlled by the same controller of the SA, default to untap.
boolean tap = pc.chooseBinary(sa, Localizer.getInstance().getMessage("lblTapOrUntap") + " " + tgtC + "?", PlayerController.BinaryChoiceType.TapOrUntap, boolean tap = pc.chooseBinary(sa, Localizer.getInstance().getMessage("lblTapOrUntapTarget", tgtC), PlayerController.BinaryChoiceType.TapOrUntap,
!tgtC.getController().equals(sa.getActivatingPlayer()) ); !tgtC.getController().equals(sa.getActivatingPlayer()) );
if (tap) { if (tap) {

View File

@@ -480,7 +480,7 @@ public class TokenEffect extends SpellAbilityEffect {
// into battlefield attacking only should work if you are the attacking player // into battlefield attacking only should work if you are the attacking player
if (combat.getAttackingPlayer().equals(controller)) { if (combat.getAttackingPlayer().equals(controller)) {
final FCollectionView<GameEntity> defs = combat.getDefenders(); final FCollectionView<GameEntity> defs = combat.getDefenders();
final GameEntity defender = controller.getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWith") + " " + c, false); final GameEntity defender = controller.getController().chooseSingleEntityForEffect(defs, sa, Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", c.toString()), false);
combat.addAttacker(c, defender); combat.addAttacker(c, defender);
combatChanged = true; combatChanged = true;
} }

View File

@@ -1,32 +1,38 @@
package forge.game.zone; package forge.game.zone;
import forge.util.Localizer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import com.google.common.base.Function;
/** /**
* The Enum Zone. * The Enum Zone.
*/ */
public enum ZoneType { public enum ZoneType {
Hand(true), Hand(true, Localizer.getInstance().getMessage("lblHandZone")),
Library(true), Library(true, Localizer.getInstance().getMessage("lblLibraryZone")),
Graveyard(false), Graveyard(false, Localizer.getInstance().getMessage("lblGraveyardZone")),
Battlefield(false), Battlefield(false, Localizer.getInstance().getMessage("lblBattlefieldZone")),
Exile(false), Exile(false, Localizer.getInstance().getMessage("lblExileZone")),
Flashback(false), Flashback(false, Localizer.getInstance().getMessage("lblFlashbackZone")),
Command(false), Command(false, Localizer.getInstance().getMessage("lblCommandZone")),
Stack(false), Stack(false, Localizer.getInstance().getMessage("lblStackZone")),
Sideboard(true), Sideboard(true, Localizer.getInstance().getMessage("lblSideboardZone")),
Ante(false), Ante(false, Localizer.getInstance().getMessage("lblAnteZone")),
SchemeDeck(true), SchemeDeck(true, Localizer.getInstance().getMessage("lblSchemeDeckZone")),
PlanarDeck(true), PlanarDeck(true, Localizer.getInstance().getMessage("lblPlanarDeckZone")),
None(true); None(true, Localizer.getInstance().getMessage("lblNoneZone"));
public static final List<ZoneType> STATIC_ABILITIES_SOURCE_ZONES = Arrays.asList(Battlefield, Graveyard, Exile, Command/*, Hand*/); public static final List<ZoneType> STATIC_ABILITIES_SOURCE_ZONES = Arrays.asList(Battlefield, Graveyard, Exile, Command/*, Hand*/);
private final boolean holdsHiddenInfo; private final boolean holdsHiddenInfo;
ZoneType(boolean holdsHidden) { private final String zoneName;
ZoneType(boolean holdsHidden, String name) {
holdsHiddenInfo = holdsHidden; holdsHiddenInfo = holdsHidden;
zoneName = name;
} }
public static ZoneType smartValueOf(final String value) { public static ZoneType smartValueOf(final String value) {
@@ -64,6 +70,10 @@ public enum ZoneType {
return !holdsHiddenInfo; return !holdsHiddenInfo;
} }
public String getTranslatedName() {
return zoneName;
}
public static boolean isHidden(final String origin) { public static boolean isHidden(final String origin) {
List<ZoneType> zone = ZoneType.listValueOf(origin); List<ZoneType> zone = ZoneType.listValueOf(origin);
@@ -82,4 +92,13 @@ public enum ZoneType {
public static boolean isKnown(final String origin) { public static boolean isKnown(final String origin) {
return !isHidden(origin); return !isHidden(origin);
} }
public static class Accessors {
public static Function<ZoneType, String> GET_TRANSLATED_NAME = new Function<ZoneType, String>() {
@Override
public String apply(final ZoneType arg0) {
return arg0.getTranslatedName();
}
};
}
} }

View File

@@ -1113,14 +1113,14 @@ lblSelectBlocker=Select creatures to block
lblOrSelectBlockTarget= or select another attacker to declare blockers for. lblOrSelectBlockTarget= or select another attacker to declare blockers for.
lblMorph=Morph lblMorph=Morph
#PlayerControllerHuman.java #PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, du hast den Münzwurf gewonnen. lblYouHaveWonTheCoinToss={0}, du hast den Münzwurf gewonnen.
lblYouLostTheLastGame=%s, du hast das letzte Spiel verloren. lblYouLostTheLastGame={0}, du hast das letzte Spiel verloren.
lblWouldYouLiketoPlayorDraw=Willst du lieber zuerst spielen oder ziehen? lblWouldYouLiketoPlayorDraw=Willst du lieber zuerst spielen oder ziehen?
lblWhoWouldYouLiketoStartthisGame=Wer soll das Spiel beginnen? (Klicke auf das Portrait.) lblWhoWouldYouLiketoStartthisGame=Wer soll das Spiel beginnen? (Klicke auf das Portrait.)
lblPlay=Spielen lblPlay=Spielen
lblDraw=Ziehen lblDraw=Ziehen
lblTooFewCardsMainDeck=Zu wenig Karten in deinem Deck (mindestens %s). Bitte passe dein Deck an. lblTooFewCardsMainDeck=Zu wenig Karten in deinem Deck (mindestens {0}). Bitte passe dein Deck an.
lblTooManyCardsSideboard=Zu viele Karten in deinem Deck (maximal %s). Bitte passe dein Deck an. lblTooManyCardsSideboard=Zu viele Karten in deinem Deck (maximal {0}). Bitte passe dein Deck an.
lblAssignCombatDamageWerentBlocked=Möchtest du den Kampfschaden deklarieren, als wäre nicht geblockt worden? lblAssignCombatDamageWerentBlocked=Möchtest du den Kampfschaden deklarieren, als wäre nicht geblockt worden?
lblChosenCards=Wähle Karten lblChosenCards=Wähle Karten
lblAttacker=Angreifer lblAttacker=Angreifer
@@ -1169,15 +1169,15 @@ lblSelectCardsToBePutIntoTheGraveyard=Wähle Karten, welche auf den Friedhof gel
lblCardsToPutInTheGraveyard=Karten, welche auf den Friedhof gelegt werden sollen lblCardsToPutInTheGraveyard=Karten, welche auf den Friedhof gelegt werden sollen
lblDiscardUpToNCards=Werfe bis zu %d Karte(n) ab lblDiscardUpToNCards=Werfe bis zu %d Karte(n) ab
lblDiscardNCards=Werfe %d Karte(n) ab lblDiscardNCards=Werfe %d Karte(n) ab
lblSelectNCardsToDiscardUnlessDiscarduType=Wähle bis zu %d Karte(n) zum abwerfen, außer du wirfst eine %s ab. lblSelectNCardsToDiscardUnlessDiscarduType=Wähle bis zu %d Karte(n) zum abwerfen, außer du wirfst eine {0} ab.
lblCleanupPhase=Aufräumphase lblCleanupPhase=Aufräumphase
lblSelectCardsToDiscardHandDownMaximum=Werfe %d Karte(n) ab um dein Handmaximum von %max Karte(n) zu erfüllen. lblSelectCardsToDiscardHandDownMaximum=Werfe {0} Karte(n) ab um dein Handmaximum von {1} Karte(n) zu erfüllen.
lblChooseMinCardToDiscard=Wähle %d Karte(n) zm Abwerfen lblChooseMinCardToDiscard=Wähle %d Karte(n) zm Abwerfen
lblDiscarded=Abgeworfen lblDiscarded=Abgeworfen
lblChooseDamageOrderFor=Wähle Schadensreihenfolge für %s lblChooseDamageOrderFor=Wähle Schadensreihenfolge für {0}
lblDamagedFirst=Zuerst geschädigt lblDamagedFirst=Zuerst geschädigt
lblChooseBlockerAfterWhichToPlaceAttackert=Wähle Blocker für Platz %s in der Schadensreihenfolge; Abbrechen für ersten Platz lblChooseBlockerAfterWhichToPlaceAttackert=Wähle Blocker für Platz {0} in der Schadensreihenfolge; Abbrechen für ersten Platz
lblPutCardOnTopOrBottomLibrary=Lege %s auf oder unter deine Bibliothek? lblPutCardOnTopOrBottomLibrary=Lege {0} auf oder unter deine Bibliothek?
lblChooseOrderCardsPutIntoLibrary=Wähle die Reihenfolge der Karten, in der sie in die Bibliothek gelegt werden lblChooseOrderCardsPutIntoLibrary=Wähle die Reihenfolge der Karten, in der sie in die Bibliothek gelegt werden
lblClosestToTop=Zuoberst lblClosestToTop=Zuoberst
lblChooseOrderCardsPutOntoBattlefield=Wähle die Reihenfolge der Karten, in der sie auf das Spielfeld gebracht werden lblChooseOrderCardsPutOntoBattlefield=Wähle die Reihenfolge der Karten, in der sie auf das Spielfeld gebracht werden
@@ -1190,20 +1190,20 @@ lblChooseOrderCopiesCast=Wähle die Reihenfolge für die Kopien
lblDelveHowManyCards=Wühlen - Wie viele Karten? lblDelveHowManyCards=Wühlen - Wie viele Karten?
lblExileWhichCard=Schicke welche Karte ins Exil? lblExileWhichCard=Schicke welche Karte ins Exil?
lblDestroy=destroy lblDestroy=destroy
lblUpTo=up to lblSelectUpToNumTargetToAction=Select up to %d {0}(s) to {1}.
lblSelectNumTargetToAction=Select %d {0}(s) to {1}.
lblHighestBidder=Highest Bidder lblHighestBidder=Highest Bidder
lblUseTriggeredAbilityOf=Use triggered ability of lblUseTriggeredAbilityOf=Use triggered ability of
lblExertAttackersConfirm=Exert Attackers? lblExertAttackersConfirm=Exert Attackers?
lblThereNoCardIn=There are no cards in lblThereNoCardInPlayerZone=There are no cards in {0} {1}
lblPut=Put lblPutCardsOnTheTopLibraryOrGraveyard=Put {0} on the top of library or graveyard?
lblOnTheTopLibraryOrGraveyard=on the top of library or graveyard?
lblLibrary=Library lblLibrary=Library
lblGraveyard=Graveyard lblGraveyard=Graveyard
lblTop=Top lblTop=Top
lblBottom=Bottom lblBottom=Bottom
lblManaFrom=mana from lblNColorManaFromCard={0} {1} mana from {2}
lblPayManaFromManaPool=Pay Mana from Mana Pool lblPayManaFromManaPool=Pay Mana from Mana Pool
lblChooseATargetType=Choose a %s type lblChooseATargetType=Choose a {0} type
lblUntap=Untap lblUntap=Untap
lblOdds=Odds lblOdds=Odds
lblEvens=Evens lblEvens=Evens
@@ -1217,21 +1217,17 @@ lblWinTheFlip=win the flip
lblLoseTheFlip=lose the flip lblLoseTheFlip=lose the flip
lblChooseAResult=Choose a result lblChooseAResult=Choose a result
lblSelectPreventionShieldToUse=select which prevention shield to use lblSelectPreventionShieldToUse=select which prevention shield to use
lblChooseAMode=Choose a mode lblPlayerActivatedCardChooseMode={0} activated {1} - Choose a mode
lblActivated=activated
lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool. lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool.
lblOverwriteExistFileConfirm=Overwrite existing file? lblOverwriteExistFileConfirm=Overwrite existing file?
lblFileExists=File exists! lblFileExists=File exists!
lblSelectGameStateFile=Select Game State File lblSelectGameStateFile=Select Game State File
lblFileNotFound=File not found lblFileNotFound=File not found
lblIn=in lblPutCardInWhichPlayerZone=Put card in {0} for which player?
lblOnTheBattlefield=on the battlefield lblPutCardInWhichPlayerBattlefield=Put card on the battlefield for which player?
lblOnTheStackOrInPlay=on the stack / in play lblPutCardInWhichPlayerPlayOrStack=Put card on the stack / in play for which player?
lblPutCard=Put card lblCardShouldBeSummoningSicknessConfirm=Should {0} be affected with Summoning Sickness?
lblForWhichPlayer=for which player? lblCardShouldBeAddedToLibraryTopOrBottom=Should {0} be added to the top or to the bottom of the library?
lblShould=Should
lblAffectedWithSummoningSickness=be affected with Summoning Sickness?
lblBeAddedToLibraryTopOrBottom=be added to the top or to the bottom of the library?
lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand? lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand?
lblChooseCardsExile=Choose cards to exile lblChooseCardsExile=Choose cards to exile
lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield? lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield?
@@ -1245,7 +1241,11 @@ lblRestartingActionSequence=Restarting action sequence.
lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas. lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas.
lblErrorEntityWithId=Error: Entity with ID lblErrorEntityWithId=Error: Entity with ID
lblNotFound=not found lblNotFound=not found
lblChooseAnnounceFor=Choose %s for %name lblChooseAnnounceForCard=Choose {0} for {1}
lblSacrifice=Sacrifice
lblLookCardInPlayerZone=Looking at cards in {0} {1}
lblPlayerZone={0} {1}
lblActionFromPlayerDeck={0} from {1} Deck
#AbstractGuiGame.java #AbstractGuiGame.java
lblConcedeCurrentGame=Das Spiel wird als verloren gewertet.\n\nTrotzdem aufgeben? lblConcedeCurrentGame=Das Spiel wird als verloren gewertet.\n\nTrotzdem aufgeben?
lblConcedeTitle=Spiel verloren geben? lblConcedeTitle=Spiel verloren geben?
@@ -1591,24 +1591,22 @@ lblSelectOrder=Select Order
lblIfYouDo=if you do lblIfYouDo=if you do
lblOr=or lblOr=or
lblDoYouWantPay=Do you want to pay lblDoYouWantPay=Do you want to pay
lblDoYouWantPayNLife=Do you want to pay {0} life?
lblDoyouWantTo=Do you want to lblDoyouWantTo=Do you want to
lblDoYouWantMill=Do you want to mill lblDoYouWantMillNCardsOrDoAction=Do you want to mill {0} card(s)? {1}
lblDoYouWantFlip=Do you want to flip lblDoYouWantFlipNCoinOrDoAction=Do you want to flip {0} coin(s)? {1}
lblDoYouWantRemove=Do you want to remove lblDoYouWantRemoveNTargetTypeCounterFromCard=Do you want to remove {0} {1} counter from {2}?
lblDoYouWantRemoveCounters=Do you want to remove counters from lblDoYouWantRemoveCountersFromCard=Do you want to remove counters from {0}?
lblDoYouWantExile=Do you want to exile lblDoYouWantExileNCardsFromYourLibrary=Do you want to exile {0} card(s) from your library?
lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard? lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard?
lblDoYouWantDiscardYourHand=Do you want to discard your hand? lblDoYouWantDiscardYourHand=Do you want to discard your hand?
lblDoYouWantSpend=Do you want to spend lblDoYouWantSpendNTargetTypeCounter=Do you want to spend {0} {1} counter?
lblLetThatPlayer=let that player lblDoYouWantLetThatPlayerDrawNCardOrDoAction=Do you want to let that player draw {0} card(s)?{1}
lblCoin=coin lblDoYouWantDrawNCardOrDoAction=Do you want to draw {0} card(s)?{1}
lblCounterOfPointer=counter
lblFrom=from
lblFromYourLibrary=from your library?
lblSelectRemoveCounterCard=Select a card to remove a counter lblSelectRemoveCounterCard=Select a card to remove a counter
lblSelectRemoveCounterType=Select type counters to remove lblSelectRemoveCounterType=Select type counters to remove
lblExileFrom=Exile from lblExileFromZone=Exile from {0}
lblPutCardFromWhose=Put cards from whose lblPutCardFromWhoseZone=Put cards from whose {0}?
lblPutCardToLibrary=Put cards to Library lblPutCardToLibrary=Put cards to Library
lblPutIntoLibrary=put into library. lblPutIntoLibrary=put into library.
lblGainControl=gain control. lblGainControl=gain control.
@@ -1617,62 +1615,60 @@ lbldiscard=discard.
lblReveal=reveal lblReveal=reveal
lblTap=tap lblTap=tap
lblCurrentCard=Current Card lblCurrentCard=Current Card
lblSelectOfCardsTo=Select lblSelectNSpecifyTypeCardsToAction=Select %d {0} card(s) to {1}
lblCardsTo=card(s) to
#AbandonEffect.java #AbandonEffect.java
lblWouldYoulikeAbandon=Would you like to abandon the scheme lblWouldYoulikeAbandonSource=Would you like to abandon the scheme {0}?
#ActivateAbilityEffect.java #ActivateAbilityEffect.java
lblChooseManaAbility=Choose a mana ability: lblChooseManaAbility=Choose a mana ability:
#AddTurnEffect.java #AddTurnEffect.java
lblTakesExtraTurn=takes an extra turn. lblPlayerTakesExtraTurn={0} takes an extra turn.
#AmassEffect.java. #AmassEffect.java.
lblChooseAnArmy=Choose an army to put counters on lblChooseAnArmy=Choose an army to put counters on
#AssignGroupEffect.java #AssignGroupEffect.java
lblChooseAbilityFor=Choose ability for lblChooseAbilityForObject=Choose ability for {0}
#AttachEffect.java #AttachEffect.java
lblDoYouWantAttach=Do you want to attach lblDoYouWantAttachSourceToTarget=Do you want to attach {0} to {1}?
lblSelectAPlayerAttachTo=Select a player to attach to. lblSelectAPlayerAttachSourceTo={0} - Select a player to attach to.
lblSelectACardAttachTo=Select a card to attach to. lblSelectACardAttachSourceTo={0} - Select a card to attach to.
#BidLifeEffect.java #BidLifeEffect.java
lblChooseStartingBid=Choose a starting bid lblChooseStartingBid=Choose a starting bid
lblDoYouWantTopBid=Do you want to top bid? Current Bid \= lblDoYouWantTopBid=Do you want to top bid? Current Bid \=
lblTopBidWith=topped bid with lblTopBidWithValueLife=topped bid with {0} life
#BondEffect.java #BondEffect.java
lblSelectACardPair=Select a card to pair with lblSelectACardPair=Select a card to pair with
#ChangeCombatantsEffect.java #ChangeCombatantsEffect.java
lblChooseDefenderToAttackWith=Choose which defender to attack with lblChooseDefenderToAttackWithCard=Choose which defender to attack with {0}
#ChangeTargetsEffect.java #ChangeTargetsEffect.java
lblDoYouWantChangeTargets=Do you want to change targets of lblDoYouWantChangeAbilityTargets=Do you want to change targets of {0}?
#ChangeTextEffect.java #ChangeTextEffect.java
lblChooseColorReplace=Choose a color word to replace lblChooseColorReplace=Choose a color word to replace
lblChooseNewColor=Choose a new color word lblChooseNewColor=Choose a new color word
#ChangeZoneEffect.java #ChangeZoneEffect.java
lblDoYouWantMove=Do you want to move lblDoYouWantMoveTargetFromOriToDest=Do you want to move {0} from {1} to {2}?
lblDeclareDefenderFor=Declare a defender for lblPutThatCardFromPlayerOriginToDestination=Put that card from for {0} {1} to {2}
lblSearchPlayerZoneConfirm=Search {0} {1}?
lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones. lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones.
lblPutThatCardFrom=Put that card from
lblLookingCardIn=Looking at cards in lblLookingCardIn=Looking at cards in
lblDoYouWantPlay=Do you want to play lblDoYouWantPlayCard=Do you want to play {0}?
lblSelectCardFrom=Select a card from lblSelectCardFromPlayerZone=Select a card from {0} {1}
lblSelectUpTo=Select up to lblSelectUpToNumCardFromPlayerZone=Select up to {0} cards from {1} {2}
lblCardsFrom=cards from lblSelectCardsFromPlayerZone=Select cards from {0} {1}
lblSelectCardsFrom=Select cards from lblCancelSearchUpToSelectNumCards=Cancel Search? Up to {0} more card(s) can be selected.
lblCancelSearchUpTo=Cancel Search? Up to #ChangeZoneAllEffect.java
lblMoreCard=more card lblMoveTargetFromOriginToDestination=Move {0} from {1} to {2}?
lblCanBeSelected=can be selected.
#ChooseCardEffect.java #ChooseCardEffect.java
lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to lblChoose=Choose
lblTotalPower=Total Power lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to {0}
lblTotalPowerNum=Total Power: {0}
lblCancelChooseConfirm=Cancel Choose? lblCancelChooseConfirm=Cancel Choose?
#ChooseCardNameEffect.java #ChooseCardNameEffect.java
lblChooseACardName=Choose a card name lblChooseACardName=Choose a card name
lblChooseA=Choose a lblChooseASpecificCard=Choose a {0} card name.
lblCardName=card name lblPlayerPickedChosen={0} picked {1}
lblPicked=picked
#ChooseColorEffect.java #ChooseColorEffect.java
lblChooseAColor=Choose a color lblChooseAColor=Choose a color
lblChoose=Choose lblAtLastChooseNumColors=Choose {0} or more color
lblOrMore=or more lblChooseSpecifiedRangeColors=Choose {0} to {1} color
#ChooseDirectionEffect.java #ChooseDirectionEffect.java
lblLeftClockwise=Left (clockwise) lblLeftClockwise=Left (clockwise)
lblRightAntiClockwise=Right (anticlockwise) lblRightAntiClockwise=Right (anticlockwise)
@@ -1681,7 +1677,7 @@ lblChooseDirection=Choose a direction
lblChooseOne=Choose one lblChooseOne=Choose one
#ChooseNumberEffect.java #ChooseNumberEffect.java
lblChooseNumber=Choose a number lblChooseNumber=Choose a number
lblChose=chose lblPlayerChoseNum={0} chose {1}
#ChoosePlayerEffect.java #ChoosePlayerEffect.java
lblChoosePlayer=Choose a player lblChoosePlayer=Choose a player
#ChooseSourceEffect.java #ChooseSourceEffect.java
@@ -1692,26 +1688,24 @@ lblReveals=reveals
lblWinsClash=wins clash lblWinsClash=wins clash
lblLosesClash=loses clash lblLosesClash=loses clash
#CloneEffect.java #CloneEffect.java
lblDoYouWantCopy=Do you want to copy lblDoYouWantCopy=Do you want to copy {0}?
#ControlExchangeVariantEffect.java #ControlExchangeVariantEffect.java
lblChooseCards=Choose cards lblChooseCards=Choose cards
#CopyPermanentEffect.java #CopyPermanentEffect.java
lblCopyPermanentConfirm=Copy this permanent? lblCopyPermanentConfirm=Copy this permanent?
lblDefender=defender lblDefender=defender
#CopySpellAbilityEffect.java #CopySpellAbilityEffect.java
lblDoyouWantCopyTheSpell=Do you want to copy the spell lblDoyouWantCopyTheSpell=Do you want to copy the spell {0}?
lblSelectMultiSpellCopyToStack=Select %d spell to copy to stack lblSelectMultiSpellCopyToStack=Select {0} spell to copy to stack
lblSelectASpellCopy=Select a spell to copy lblSelectASpellCopy=Select a spell to copy
#CounterEffect.java #CounterEffect.java
lblRemoveDestination=a destination to remove lblRemoveDestination=a destination to remove
#CountersMoveEffect.java #CountersMoveEffect.java
lblChooseTakeCountersCard=Choose card to take %s counters from lblChooseTakeCountersCard=Choose card to take {0} counters from
lblTakeHowMany=Take how many lblTakeHowManyTargetCounterFromCard=Take how many {0} counters from {1}?
lblCountersFrom=counters from lblChooseCardToGetCountersFrom=Choose cards to get {0} counters from {1}.
lblChooseCardToGet=Choose cards to get lblPutHowManyTargetCounterOnCard=Put how many {0} counters on {1}?
lblPutHowMany=Put how many lblTakeHowManyTargetCounters=Take how many {0} counters?
lblCountersOn=counters on
lblCounters=counters
#CountersProliferateEffect.java #CountersProliferateEffect.java
lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate
#CountersPutEffect.java #CountersPutEffect.java
@@ -1719,41 +1713,40 @@ lblChooseACreatureWithLeastToughness=Choose a creature with the least toughness
lblSelectCounterTypeAddTo=Select counter type to add to lblSelectCounterTypeAddTo=Select counter type to add to
lblHowManyCounters=How many counters? lblHowManyCounters=How many counters?
lblChooseAnOpponent=Choose an opponent lblChooseAnOpponent=Choose an opponent
lblDoYouWantPutTargetP1P1CountersOn=Do you want to put %d +1/+1 counters on lblDoYouWantPutTargetP1P1CountersOnCard=Do you want to put {0} +1/+1 counters on {1}?
#CountersPutOrRemoveEffect.java #CountersPutOrRemoveEffect.java
lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove
lblWhatToDoWithTargetCounter=What to do with that '%s' counter lblWhatToDoWithTargetCounter=What to do with that '{0}' counter
#CountersRemoveEffect.java #CountersRemoveEffect.java
lblAllCounters=all counters lblAllCounters=all counters
lblACounters=a counter lblACounters=a counter
lblChooseCardtoTakeTargetCounters=Choose cards to take %s counters from lblCounters=counters
lblSelectRemoveCountersNumberOfTarget=Select the number of %s counters to remove lblChooseCardsToTakeTargetCounters=Choose cards to take {0} counters from
lblSelectRemoveCountersNumberOfTarget=Select the number of {0} counters to remove
lblSelectCountersTypeToRemove=Select type of counters to remove lblSelectCountersTypeToRemove=Select type of counters to remove
#DamageDealEffect.java #DamageDealEffect.java
lblDoyouWantDealTargetDamageTo=Do you want to deal %d damage to lblDoyouWantDealTargetDamageToTarget=Do you want to deal {0} damage to {1}?
#DigEffect.java #DigEffect.java
lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for
lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of %s library lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of {0} library
lblChooseACardLeaveTarget=Choose a card to leave in %s lblChooseACardLeaveTarget=Choose a card to leave in {0} {1}
lblChooseCardsPutInto=Choose card(s) to put into lblChooseCardsPutIntoZone=Choose card(s) to put into {0}
lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of %s library lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of {0} library
lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of %s library lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of {0} library
lblPlayerPickedCardFrom={0} picked card(s) from
lblNoValidCards=No valid cards lblNoValidCards=No valid cards
lblThisCard=this card
lblTheseCards=these cards
#DigUntilEffect.java #DigUntilEffect.java
lblDoYouWantDigYourLibrary=Do you want to dig your library? lblDoYouWantDigYourLibrary=Do you want to dig your library?
lblDoYouWantPutCardTo=Do you want to put that card to lblDoYouWantPutCardToZone=Do you want to put that card to {0}?
#DiscardEffect.java #DiscardEffect.java
lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard %d random card(s)? lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard {0} random card(s)?
lblHasChosen=has chosen lblPlayerHasChosenCardsFrom={0} has chosen card(s) from
#DrawEffect.java #DrawEffect.java
lblDoYouWantDraw=Do you want to draw lblDoYouWantDrawCards=Do you want to draw {0}?
lblHowMayCardDoYouWantDraw=How may cards do you want to draw? lblHowMayCardDoYouWantDraw=How may cards do you want to draw?
#EncodeEffect.java #EncodeEffect.java
lblAndEncodeOntoAYouControlCreature=and encode it onto a creature you control? lblDoYouWantExileCardAndEncodeOntoYouCreature=Do you want to exile {0} and encode it onto a creature you control?
lblChooseACreatureYouControlToEncode=Choose a creature you control to encode lblChooseACreatureYouControlToEncode=Choose a creature you control to encode
lblEncoding=Encoding
#ExploreEffect.java #ExploreEffect.java
lblRevealedForExplore=Revealed for Explore lblRevealedForExplore=Revealed for Explore
lblPutThisCardToYourGraveyard=Put this card in your graveyard? lblPutThisCardToYourGraveyard=Put this card in your graveyard?
@@ -1768,15 +1761,15 @@ lblLifeTotal=Life Total
#ManaEffect.java #ManaEffect.java
lblDoYouWantAddMana=Do you want to add mana? lblDoYouWantAddMana=Do you want to add mana?
lblSelectManaProduce=Select Mana to Produce lblSelectManaProduce=Select Mana to Produce
lblChooseSingleColorFrom=Choose a single color from lblChooseSingleColorFromTarget=Choose a single color from {0}
#ManifestEffect.java #ManifestEffect.java
lblChooseCardToManifest=Choose cards to manifest lblChooseCardToManifest=Choose cards to manifest
#MeldEffect.java #MeldEffect.java
lblChooseCardToMeld=Choose card to meld with lblChooseCardToMeld=Choose card to meld with
#MillEffect.java #MillEffect.java
lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to {0}?
#MultiplePilesEffect.java #MultiplePilesEffect.java
lblChooseCardsInPile=Choose cards in Pile lblChooseCardsInTargetPile=Choose cards in Pile {0}?
#PeekAndRevealEffect.java #PeekAndRevealEffect.java
lblRevealingCardFrom=Revealing cards from lblRevealingCardFrom=Revealing cards from
lblRevealCardToOtherPlayers=Reveal cards to other players? lblRevealCardToOtherPlayers=Reveal cards to other players?
@@ -1786,7 +1779,7 @@ lblSelectCardToPlay=Select a card to play
#ProtectAllEffect.java #ProtectAllEffect.java
lblChooseAProtection=Choose a protection lblChooseAProtection=Choose a protection
#PumpEffect.java #PumpEffect.java
lblApplyPumpTo=Apply pump to lblApplyPumpToTarget=Apply pump to {0}?
#RearrangeTopOfLibraryEffect.java #RearrangeTopOfLibraryEffect.java
lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library? lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library?
#RepeatEffect.java #RepeatEffect.java
@@ -1794,22 +1787,20 @@ lblDoYouWantRepeatProcessAgain=Do you want to repeat this process again?
#RevealHandEffect.java #RevealHandEffect.java
lblDoYouWantRevealYourHand=Do you want to reveal your hand? lblDoYouWantRevealYourHand=Do you want to reveal your hand?
#RollPlanarDiceEffect.java #RollPlanarDiceEffect.java
lblRolled=rolled lblPlayerRolledResult={0} rolled {1}
#SacrificeEffect.java #SacrificeEffect.java
lblDoYouWantPayEcho=Do you want to pay Echo lblDoYouWantPayEcho=Do you want to pay Echo
lblPayEcho=Pay Echo lblPayEcho=Pay Echo
lblDoYouWantSacrifice=Do you want to sacrifice? lblDoYouWantSacrifice=Do you want to sacrifice?
lblSacrifice=Sacrifice
lblDestroys=Destroys
#SetStateEffect.java #SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up
#ShuffleEffect.java #ShuffleEffect.java
lblHaveTargetShuffle=Have %s shuffle? lblHaveTargetShuffle=Have {0} shuffle?
#SurveilEffect.java #SurveilEffect.java
lblDoYouWantSurveil=Do you want to surveil? lblDoYouWantSurveil=Do you want to surveil?
#TapOrUntapAllEffect.java #TapOrUntapAllEffect.java
lblPermanents=Permanents lblPermanents=Permanents
lblTapOrUntap=Tap or Untap lblTapOrUntapTarget=Tap or Untap {0}?
#TwoPilesEffect.java #TwoPilesEffect.java
lblSelectCardForFaceDownPile=Select cards for a face down pile lblSelectCardForFaceDownPile=Select cards for a face down pile
lblDivideCardIntoTwoPiles=Divide cards into two piles lblDivideCardIntoTwoPiles=Divide cards into two piles
@@ -1847,3 +1838,17 @@ lblRepeatAddCard=Repeat Last Add Card
lblRemoveFromGame=Remove Card from Game lblRemoveFromGame=Remove Card from Game
lblRiggedRoll=Rigged Planar Roll lblRiggedRoll=Rigged Planar Roll
lblWalkTo=Planeswalk to lblWalkTo=Planeswalk to
#ZoneType.java
lblHandZone=hand
lblLibraryZone=library
lblGraveyardZone=graveyard
lblBattlefieldZone=battlefield
lblExileZone=exile
lblFlashbackZone=flashback
lblCommandZone=command
lblStackZone=stack
lblSideboardZone=sideboard
lblAnteZone=ante
lblSchemeDeckZone=schemedeck
lblPlanarDeckZone=planardeck
lblNoneZone=none

View File

@@ -1113,14 +1113,14 @@ lblSelectBlocker=Select creatures to block
lblOrSelectBlockTarget= or select another attacker to declare blockers for. lblOrSelectBlockTarget= or select another attacker to declare blockers for.
lblMorph=Morph lblMorph=Morph
#PlayerControllerHuman.java #PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, you have won the coin toss. lblYouHaveWonTheCoinToss={0}, you have won the coin toss.
lblYouLostTheLastGame=%s, you lost the last game. lblYouLostTheLastGame={0}, you lost the last game.
lblWouldYouLiketoPlayorDraw=Would you like to play or draw? lblWouldYouLiketoPlayorDraw=Would you like to play or draw?
lblWhoWouldYouLiketoStartthisGame=Who would you like to start this game? (Click on the portrait.) lblWhoWouldYouLiketoStartthisGame=Who would you like to start this game? (Click on the portrait.)
lblPlay=Play lblPlay=Play
lblDraw=Draw lblDraw=Draw
lblTooFewCardsMainDeck=Too few cards in your main deck (minimum %s), please make modifications to your deck again. lblTooFewCardsMainDeck=Too few cards in your main deck (minimum {0}), please make modifications to your deck again.
lblTooManyCardsSideboard=Too many cards in your sideboard (maximum %s), please make modifications to your deck again. lblTooManyCardsSideboard=Too many cards in your sideboard (maximum {0}), please make modifications to your deck again.
lblAssignCombatDamageWerentBlocked=Do you want to assign its combat damage as though it weren't blocked? lblAssignCombatDamageWerentBlocked=Do you want to assign its combat damage as though it weren't blocked?
lblChosenCards=Chosen Cards lblChosenCards=Chosen Cards
lblAttacker=Attacker lblAttacker=Attacker
@@ -1169,15 +1169,15 @@ lblSelectCardsToBePutIntoTheGraveyard=Select cards to be put into the graveyard
lblCardsToPutInTheGraveyard=Cards to put in the graveyard lblCardsToPutInTheGraveyard=Cards to put in the graveyard
lblDiscardUpToNCards=Discard up to %d card(s) lblDiscardUpToNCards=Discard up to %d card(s)
lblDiscardNCards=Discard %d card(s) lblDiscardNCards=Discard %d card(s)
lblSelectNCardsToDiscardUnlessDiscarduType=Select %d card(s) to discard, unless you discard a %s. lblSelectNCardsToDiscardUnlessDiscarduType=Select %d card(s) to discard, unless you discard a {0}.
lblCleanupPhase=Cleanup Phase lblCleanupPhase=Cleanup Phase
lblSelectCardsToDiscardHandDownMaximum=Select %d card(s) to discard to bring your hand down to the maximum of %max cards. lblSelectCardsToDiscardHandDownMaximum=Select {0} card(s) to discard to bring your hand down to the maximum of {1} cards.
lblChooseMinCardToDiscard=Choose %d card(s) to discard lblChooseMinCardToDiscard=Choose %d card(s) to discard
lblDiscarded=Discarded lblDiscarded=Discarded
lblChooseDamageOrderFor=Choose Damage Order for %s lblChooseDamageOrderFor=Choose Damage Order for {0}
lblDamagedFirst=Damaged First lblDamagedFirst=Damaged First
lblChooseBlockerAfterWhichToPlaceAttackert=Choose blocker after which to place %s in damage order; cancel to place it first lblChooseBlockerAfterWhichToPlaceAttackert=Choose blocker after which to place {0} in damage order; cancel to place it first
lblPutCardOnTopOrBottomLibrary=Put %s on the top or bottom of your library? lblPutCardOnTopOrBottomLibrary=Put {0} on the top or bottom of your library?
lblChooseOrderCardsPutIntoLibrary=Choose order of cards to put into the library lblChooseOrderCardsPutIntoLibrary=Choose order of cards to put into the library
lblClosestToTop=Closest to top lblClosestToTop=Closest to top
lblChooseOrderCardsPutOntoBattlefield=Choose order of cards to put onto the battlefield lblChooseOrderCardsPutOntoBattlefield=Choose order of cards to put onto the battlefield
@@ -1190,20 +1190,20 @@ lblChooseOrderCopiesCast=Choose order of copies to cast
lblDelveHowManyCards=Delve how many cards? lblDelveHowManyCards=Delve how many cards?
lblExileWhichCard=Exile which card? lblExileWhichCard=Exile which card?
lblDestroy=destroy lblDestroy=destroy
lblUpTo=up to lblSelectUpToNumTargetToAction=Select up to %d {0}(s) to {1}.
lblSelectNumTargetToAction=Select %d {0}(s) to {1}.
lblHighestBidder=Highest Bidder lblHighestBidder=Highest Bidder
lblUseTriggeredAbilityOf=Use triggered ability of lblUseTriggeredAbilityOf=Use triggered ability of
lblExertAttackersConfirm=Exert Attackers? lblExertAttackersConfirm=Exert Attackers?
lblThereNoCardIn=There are no cards in lblThereNoCardInPlayerZone=There are no cards in {0} {1}
lblPut=Put lblPutCardsOnTheTopLibraryOrGraveyard=Put {0} on the top of library or graveyard?
lblOnTheTopLibraryOrGraveyard=on the top of library or graveyard?
lblLibrary=Library lblLibrary=Library
lblGraveyard=Graveyard lblGraveyard=Graveyard
lblTop=Top lblTop=Top
lblBottom=Bottom lblBottom=Bottom
lblManaFrom=mana from lblNColorManaFromCard={0} {1} mana from {2}
lblPayManaFromManaPool=Pay Mana from Mana Pool lblPayManaFromManaPool=Pay Mana from Mana Pool
lblChooseATargetType=Choose a %s type lblChooseATargetType=Choose a {0} type
lblUntap=Untap lblUntap=Untap
lblOdds=Odds lblOdds=Odds
lblEvens=Evens lblEvens=Evens
@@ -1217,21 +1217,17 @@ lblWinTheFlip=win the flip
lblLoseTheFlip=lose the flip lblLoseTheFlip=lose the flip
lblChooseAResult=Choose a result lblChooseAResult=Choose a result
lblSelectPreventionShieldToUse=select which prevention shield to use lblSelectPreventionShieldToUse=select which prevention shield to use
lblChooseAMode=Choose a mode lblPlayerActivatedCardChooseMode={0} activated {1} - Choose a mode
lblActivated=activated
lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool. lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool.
lblOverwriteExistFileConfirm=Overwrite existing file? lblOverwriteExistFileConfirm=Overwrite existing file?
lblFileExists=File exists! lblFileExists=File exists!
lblSelectGameStateFile=Select Game State File lblSelectGameStateFile=Select Game State File
lblFileNotFound=File not found lblFileNotFound=File not found
lblIn=in lblPutCardInWhichPlayerZone=Put card in {0} for which player?
lblOnTheBattlefield=on the battlefield lblPutCardInWhichPlayerBattlefield=Put card on the battlefield for which player?
lblOnTheStackOrInPlay=on the stack / in play lblPutCardInWhichPlayerPlayOrStack=Put card on the stack / in play for which player?
lblPutCard=Put card lblCardShouldBeSummoningSicknessConfirm=Should {0} be affected with Summoning Sickness?
lblForWhichPlayer=for which player? lblCardShouldBeAddedToLibraryTopOrBottom=Should {0} be added to the top or to the bottom of the library?
lblShould=Should
lblAffectedWithSummoningSickness=be affected with Summoning Sickness?
lblBeAddedToLibraryTopOrBottom=be added to the top or to the bottom of the library?
lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand? lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand?
lblChooseCardsExile=Choose cards to exile lblChooseCardsExile=Choose cards to exile
lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield? lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield?
@@ -1245,7 +1241,11 @@ lblRestartingActionSequence=Restarting action sequence.
lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas. lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas.
lblErrorEntityWithId=Error: Entity with ID lblErrorEntityWithId=Error: Entity with ID
lblNotFound=not found lblNotFound=not found
lblChooseAnnounceFor=Choose %s for %name lblChooseAnnounceForCard=Choose {0} for {1}
lblSacrifice=Sacrifice
lblLookCardInPlayerZone=Looking at cards in {0} {1}
lblPlayerZone={0} {1}
lblActionFromPlayerDeck={0} from {1} Deck
#AbstractGuiGame.java #AbstractGuiGame.java
lblConcedeCurrentGame=This will concede the current game and you will lose.\n\nConcede anyway? lblConcedeCurrentGame=This will concede the current game and you will lose.\n\nConcede anyway?
lblConcedeTitle=Concede Game? lblConcedeTitle=Concede Game?
@@ -1591,24 +1591,22 @@ lblSelectOrder=Select Order
lblIfYouDo=if you do lblIfYouDo=if you do
lblOr=or lblOr=or
lblDoYouWantPay=Do you want to pay lblDoYouWantPay=Do you want to pay
lblDoYouWantPayNLife=Do you want to pay {0} life?
lblDoyouWantTo=Do you want to lblDoyouWantTo=Do you want to
lblDoYouWantMill=Do you want to mill lblDoYouWantMillNCardsOrDoAction=Do you want to mill {0} card(s)? {1}
lblDoYouWantFlip=Do you want to flip lblDoYouWantFlipNCoinOrDoAction=Do you want to flip {0} coin(s)? {1}
lblDoYouWantRemove=Do you want to remove lblDoYouWantRemoveNTargetTypeCounterFromCard=Do you want to remove {0} {1} counter from {2}?
lblDoYouWantRemoveCounters=Do you want to remove counters from lblDoYouWantRemoveCountersFromCard=Do you want to remove counters from {0}?
lblDoYouWantExile=Do you want to exile lblDoYouWantExileNCardsFromYourLibrary=Do you want to exile {0} card(s) from your library?
lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard? lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard?
lblDoYouWantDiscardYourHand=Do you want to discard your hand? lblDoYouWantDiscardYourHand=Do you want to discard your hand?
lblDoYouWantSpend=Do you want to spend lblDoYouWantSpendNTargetTypeCounter=Do you want to spend {0} {1} counter?
lblLetThatPlayer=let that player lblDoYouWantLetThatPlayerDrawNCardOrDoAction=Do you want to let that player draw {0} card(s)?{1}
lblCoin=coin lblDoYouWantDrawNCardOrDoAction=Do you want to draw {0} card(s)?{1}
lblCounterOfPointer=counter
lblFrom=from
lblFromYourLibrary=from your library?
lblSelectRemoveCounterCard=Select a card to remove a counter lblSelectRemoveCounterCard=Select a card to remove a counter
lblSelectRemoveCounterType=Select type counters to remove lblSelectRemoveCounterType=Select type counters to remove
lblExileFrom=Exile from lblExileFromZone=Exile from {0}
lblPutCardFromWhose=Put cards from whose lblPutCardFromWhoseZone=Put cards from whose {0}?
lblPutCardToLibrary=Put cards to Library lblPutCardToLibrary=Put cards to Library
lblPutIntoLibrary=put into library. lblPutIntoLibrary=put into library.
lblGainControl=gain control. lblGainControl=gain control.
@@ -1617,62 +1615,60 @@ lbldiscard=discard.
lblReveal=reveal lblReveal=reveal
lblTap=tap lblTap=tap
lblCurrentCard=Current Card lblCurrentCard=Current Card
lblSelectOfCardsTo=Select lblSelectNSpecifyTypeCardsToAction=Select %d {0} card(s) to {1}
lblCardsTo=card(s) to
#AbandonEffect.java #AbandonEffect.java
lblWouldYoulikeAbandon=Would you like to abandon the scheme lblWouldYoulikeAbandonSource=Would you like to abandon the scheme {0}?
#ActivateAbilityEffect.java #ActivateAbilityEffect.java
lblChooseManaAbility=Choose a mana ability: lblChooseManaAbility=Choose a mana ability:
#AddTurnEffect.java #AddTurnEffect.java
lblTakesExtraTurn=takes an extra turn. lblPlayerTakesExtraTurn={0} takes an extra turn.
#AmassEffect.java. #AmassEffect.java.
lblChooseAnArmy=Choose an army to put counters on lblChooseAnArmy=Choose an army to put counters on
#AssignGroupEffect.java #AssignGroupEffect.java
lblChooseAbilityFor=Choose ability for lblChooseAbilityForObject=Choose ability for {0}
#AttachEffect.java #AttachEffect.java
lblDoYouWantAttach=Do you want to attach lblDoYouWantAttachSourceToTarget=Do you want to attach {0} to {1}?
lblSelectAPlayerAttachTo=Select a player to attach to. lblSelectAPlayerAttachSourceTo={0} - Select a player to attach to.
lblSelectACardAttachTo=Select a card to attach to. lblSelectACardAttachSourceTo={0} - Select a card to attach to.
#BidLifeEffect.java #BidLifeEffect.java
lblChooseStartingBid=Choose a starting bid lblChooseStartingBid=Choose a starting bid
lblDoYouWantTopBid=Do you want to top bid? Current Bid \= lblDoYouWantTopBid=Do you want to top bid? Current Bid \=
lblTopBidWith=topped bid with lblTopBidWithValueLife=topped bid with {0} life
#BondEffect.java #BondEffect.java
lblSelectACardPair=Select a card to pair with lblSelectACardPair=Select a card to pair with
#ChangeCombatantsEffect.java #ChangeCombatantsEffect.java
lblChooseDefenderToAttackWith=Choose which defender to attack with lblChooseDefenderToAttackWithCard=Choose which defender to attack with {0}
#ChangeTargetsEffect.java #ChangeTargetsEffect.java
lblDoYouWantChangeTargets=Do you want to change targets of lblDoYouWantChangeAbilityTargets=Do you want to change targets of {0}?
#ChangeTextEffect.java #ChangeTextEffect.java
lblChooseColorReplace=Choose a color word to replace lblChooseColorReplace=Choose a color word to replace
lblChooseNewColor=Choose a new color word lblChooseNewColor=Choose a new color word
#ChangeZoneEffect.java #ChangeZoneEffect.java
lblDoYouWantMove=Do you want to move lblDoYouWantMoveTargetFromOriToDest=Do you want to move {0} from {1} to {2}?
lblDeclareDefenderFor=Declare a defender for lblPutThatCardFromPlayerOriginToDestination=Put that card from for {0} {1} to {2}
lblSearchPlayerZoneConfirm=Search {0} {1}?
lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones. lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones.
lblPutThatCardFrom=Put that card from
lblLookingCardIn=Looking at cards in lblLookingCardIn=Looking at cards in
lblDoYouWantPlay=Do you want to play lblDoYouWantPlayCard=Do you want to play {0}?
lblSelectCardFrom=Select a card from lblSelectCardFromPlayerZone=Select a card from {0} {1}
lblSelectUpTo=Select up to lblSelectUpToNumCardFromPlayerZone=Select up to {0} cards from {1} {2}
lblCardsFrom=cards from lblSelectCardsFromPlayerZone=Select cards from {0} {1}
lblSelectCardsFrom=Select cards from lblCancelSearchUpToSelectNumCards=Cancel Search? Up to {0} more card(s) can be selected.
lblCancelSearchUpTo=Cancel Search? Up to #ChangeZoneAllEffect.java
lblMoreCard=more card lblMoveTargetFromOriginToDestination=Move {0} from {1} to {2}?
lblCanBeSelected=can be selected.
#ChooseCardEffect.java #ChooseCardEffect.java
lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to lblChoose=Choose
lblTotalPower=Total Power lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to {0}
lblTotalPowerNum=Total Power: {0}
lblCancelChooseConfirm=Cancel Choose? lblCancelChooseConfirm=Cancel Choose?
#ChooseCardNameEffect.java #ChooseCardNameEffect.java
lblChooseACardName=Choose a card name lblChooseACardName=Choose a card name
lblChooseA=Choose a lblChooseASpecificCard=Choose a {0} card name.
lblCardName=card name lblPlayerPickedChosen={0} picked {1}
lblPicked=picked
#ChooseColorEffect.java #ChooseColorEffect.java
lblChooseAColor=Choose a color lblChooseAColor=Choose a color
lblChoose=Choose lblAtLastChooseNumColors=Choose {0} or more color
lblOrMore=or more lblChooseSpecifiedRangeColors=Choose {0} to {1} color
#ChooseDirectionEffect.java #ChooseDirectionEffect.java
lblLeftClockwise=Left (clockwise) lblLeftClockwise=Left (clockwise)
lblRightAntiClockwise=Right (anticlockwise) lblRightAntiClockwise=Right (anticlockwise)
@@ -1681,7 +1677,7 @@ lblChooseDirection=Choose a direction
lblChooseOne=Choose one lblChooseOne=Choose one
#ChooseNumberEffect.java #ChooseNumberEffect.java
lblChooseNumber=Choose a number lblChooseNumber=Choose a number
lblChose=chose lblPlayerChoseNum={0} chose {1}
#ChoosePlayerEffect.java #ChoosePlayerEffect.java
lblChoosePlayer=Choose a player lblChoosePlayer=Choose a player
#ChooseSourceEffect.java #ChooseSourceEffect.java
@@ -1692,26 +1688,24 @@ lblReveals=reveals
lblWinsClash=wins clash lblWinsClash=wins clash
lblLosesClash=loses clash lblLosesClash=loses clash
#CloneEffect.java #CloneEffect.java
lblDoYouWantCopy=Do you want to copy lblDoYouWantCopy=Do you want to copy {0}?
#ControlExchangeVariantEffect.java #ControlExchangeVariantEffect.java
lblChooseCards=Choose cards lblChooseCards=Choose cards
#CopyPermanentEffect.java #CopyPermanentEffect.java
lblCopyPermanentConfirm=Copy this permanent? lblCopyPermanentConfirm=Copy this permanent?
lblDefender=defender lblDefender=defender
#CopySpellAbilityEffect.java #CopySpellAbilityEffect.java
lblDoyouWantCopyTheSpell=Do you want to copy the spell lblDoyouWantCopyTheSpell=Do you want to copy the spell {0}?
lblSelectMultiSpellCopyToStack=Select %d spell to copy to stack lblSelectMultiSpellCopyToStack=Select {0} spell to copy to stack
lblSelectASpellCopy=Select a spell to copy lblSelectASpellCopy=Select a spell to copy
#CounterEffect.java #CounterEffect.java
lblRemoveDestination=a destination to remove lblRemoveDestination=a destination to remove
#CountersMoveEffect.java #CountersMoveEffect.java
lblChooseTakeCountersCard=Choose card to take %s counters from lblChooseTakeCountersCard=Choose card to take {0} counters from
lblTakeHowMany=Take how many lblTakeHowManyTargetCounterFromCard=Take how many {0} counters from {1}?
lblCountersFrom=counters from lblChooseCardToGetCountersFrom=Choose cards to get {0} counters from {1}.
lblChooseCardToGet=Choose cards to get lblPutHowManyTargetCounterOnCard=Put how many {0} counters on {1}?
lblPutHowMany=Put how many lblTakeHowManyTargetCounters=Take how many {0} counters?
lblCountersOn=counters on
lblCounters=counters
#CountersProliferateEffect.java #CountersProliferateEffect.java
lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate
#CountersPutEffect.java #CountersPutEffect.java
@@ -1719,41 +1713,40 @@ lblChooseACreatureWithLeastToughness=Choose a creature with the least toughness
lblSelectCounterTypeAddTo=Select counter type to add to lblSelectCounterTypeAddTo=Select counter type to add to
lblHowManyCounters=How many counters? lblHowManyCounters=How many counters?
lblChooseAnOpponent=Choose an opponent lblChooseAnOpponent=Choose an opponent
lblDoYouWantPutTargetP1P1CountersOn=Do you want to put %d +1/+1 counters on lblDoYouWantPutTargetP1P1CountersOnCard=Do you want to put {0} +1/+1 counters on {1}?
#CountersPutOrRemoveEffect.java #CountersPutOrRemoveEffect.java
lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove
lblWhatToDoWithTargetCounter=What to do with that '%s' counter lblWhatToDoWithTargetCounter=What to do with that '{0}' counter
#CountersRemoveEffect.java #CountersRemoveEffect.java
lblAllCounters=all counters lblAllCounters=all counters
lblACounters=a counter lblACounters=a counter
lblChooseCardtoTakeTargetCounters=Choose cards to take %s counters from lblCounters=counters
lblSelectRemoveCountersNumberOfTarget=Select the number of %s counters to remove lblChooseCardsToTakeTargetCounters=Choose cards to take {0} counters from
lblSelectRemoveCountersNumberOfTarget=Select the number of {0} counters to remove
lblSelectCountersTypeToRemove=Select type of counters to remove lblSelectCountersTypeToRemove=Select type of counters to remove
#DamageDealEffect.java #DamageDealEffect.java
lblDoyouWantDealTargetDamageTo=Do you want to deal %d damage to lblDoyouWantDealTargetDamageToTarget=Do you want to deal {0} damage to {1}?
#DigEffect.java #DigEffect.java
lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for
lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of %s library lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of {0} library
lblChooseACardLeaveTarget=Choose a card to leave in %s lblChooseACardLeaveTarget=Choose a card to leave in {0} {1}
lblChooseCardsPutInto=Choose card(s) to put into lblChooseCardsPutIntoZone=Choose card(s) to put into {0}
lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of %s library lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of {0} library
lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of %s library lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of {0} library
lblPlayerPickedCardFrom={0} picked card(s) from
lblNoValidCards=No valid cards lblNoValidCards=No valid cards
lblThisCard=this card
lblTheseCards=these cards
#DigUntilEffect.java #DigUntilEffect.java
lblDoYouWantDigYourLibrary=Do you want to dig your library? lblDoYouWantDigYourLibrary=Do you want to dig your library?
lblDoYouWantPutCardTo=Do you want to put that card to lblDoYouWantPutCardToZone=Do you want to put that card to {0}?
#DiscardEffect.java #DiscardEffect.java
lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard %d random card(s)? lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard {0} random card(s)?
lblHasChosen=has chosen lblPlayerHasChosenCardsFrom={0} has chosen card(s) from
#DrawEffect.java #DrawEffect.java
lblDoYouWantDraw=Do you want to draw lblDoYouWantDrawCards=Do you want to draw {0}?
lblHowMayCardDoYouWantDraw=How may cards do you want to draw? lblHowMayCardDoYouWantDraw=How may cards do you want to draw?
#EncodeEffect.java #EncodeEffect.java
lblAndEncodeOntoAYouControlCreature=and encode it onto a creature you control? lblDoYouWantExileCardAndEncodeOntoYouCreature=Do you want to exile {0} and encode it onto a creature you control?
lblChooseACreatureYouControlToEncode=Choose a creature you control to encode lblChooseACreatureYouControlToEncode=Choose a creature you control to encode
lblEncoding=Encoding
#ExploreEffect.java #ExploreEffect.java
lblRevealedForExplore=Revealed for Explore lblRevealedForExplore=Revealed for Explore
lblPutThisCardToYourGraveyard=Put this card in your graveyard? lblPutThisCardToYourGraveyard=Put this card in your graveyard?
@@ -1768,15 +1761,15 @@ lblLifeTotal=Life Total
#ManaEffect.java #ManaEffect.java
lblDoYouWantAddMana=Do you want to add mana? lblDoYouWantAddMana=Do you want to add mana?
lblSelectManaProduce=Select Mana to Produce lblSelectManaProduce=Select Mana to Produce
lblChooseSingleColorFrom=Choose a single color from lblChooseSingleColorFromTarget=Choose a single color from {0}
#ManifestEffect.java #ManifestEffect.java
lblChooseCardToManifest=Choose cards to manifest lblChooseCardToManifest=Choose cards to manifest
#MeldEffect.java #MeldEffect.java
lblChooseCardToMeld=Choose card to meld with lblChooseCardToMeld=Choose card to meld with
#MillEffect.java #MillEffect.java
lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to {0}?
#MultiplePilesEffect.java #MultiplePilesEffect.java
lblChooseCardsInPile=Choose cards in Pile lblChooseCardsInTargetPile=Choose cards in Pile {0}?
#PeekAndRevealEffect.java #PeekAndRevealEffect.java
lblRevealingCardFrom=Revealing cards from lblRevealingCardFrom=Revealing cards from
lblRevealCardToOtherPlayers=Reveal cards to other players? lblRevealCardToOtherPlayers=Reveal cards to other players?
@@ -1786,7 +1779,7 @@ lblSelectCardToPlay=Select a card to play
#ProtectAllEffect.java #ProtectAllEffect.java
lblChooseAProtection=Choose a protection lblChooseAProtection=Choose a protection
#PumpEffect.java #PumpEffect.java
lblApplyPumpTo=Apply pump to lblApplyPumpToTarget=Apply pump to {0}?
#RearrangeTopOfLibraryEffect.java #RearrangeTopOfLibraryEffect.java
lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library? lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library?
#RepeatEffect.java #RepeatEffect.java
@@ -1794,22 +1787,20 @@ lblDoYouWantRepeatProcessAgain=Do you want to repeat this process again?
#RevealHandEffect.java #RevealHandEffect.java
lblDoYouWantRevealYourHand=Do you want to reveal your hand? lblDoYouWantRevealYourHand=Do you want to reveal your hand?
#RollPlanarDiceEffect.java #RollPlanarDiceEffect.java
lblRolled=rolled lblPlayerRolledResult={0} rolled {1}
#SacrificeEffect.java #SacrificeEffect.java
lblDoYouWantPayEcho=Do you want to pay Echo lblDoYouWantPayEcho=Do you want to pay Echo
lblPayEcho=Pay Echo lblPayEcho=Pay Echo
lblDoYouWantSacrifice=Do you want to sacrifice? lblDoYouWantSacrifice=Do you want to sacrifice?
lblSacrifice=Sacrifice
lblDestroys=Destroys
#SetStateEffect.java #SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up
#ShuffleEffect.java #ShuffleEffect.java
lblHaveTargetShuffle=Have %s shuffle? lblHaveTargetShuffle=Have {0} shuffle?
#SurveilEffect.java #SurveilEffect.java
lblDoYouWantSurveil=Do you want to surveil? lblDoYouWantSurveil=Do you want to surveil?
#TapOrUntapAllEffect.java #TapOrUntapAllEffect.java
lblPermanents=Permanents lblPermanents=Permanents
lblTapOrUntap=Tap or Untap lblTapOrUntapTarget=Tap or Untap {0}?
#TwoPilesEffect.java #TwoPilesEffect.java
lblSelectCardForFaceDownPile=Select cards for a face down pile lblSelectCardForFaceDownPile=Select cards for a face down pile
lblDivideCardIntoTwoPiles=Divide cards into two piles lblDivideCardIntoTwoPiles=Divide cards into two piles
@@ -1847,3 +1838,17 @@ lblRepeatAddCard=Repeat Last Add Card
lblRemoveFromGame=Remove Card from Game lblRemoveFromGame=Remove Card from Game
lblRiggedRoll=Rigged Planar Roll lblRiggedRoll=Rigged Planar Roll
lblWalkTo=Planeswalk to lblWalkTo=Planeswalk to
#ZoneType.java
lblHandZone=hand
lblLibraryZone=library
lblGraveyardZone=graveyard
lblBattlefieldZone=battlefield
lblExileZone=exile
lblFlashbackZone=flashback
lblCommandZone=command
lblStackZone=stack
lblSideboardZone=sideboard
lblAnteZone=ante
lblSchemeDeckZone=schemedeck
lblPlanarDeckZone=planardeck
lblNoneZone=none

View File

@@ -1113,14 +1113,14 @@ lblSelectBlocker=Select creatures to block
lblOrSelectBlockTarget= or select another attacker to declare blockers for. lblOrSelectBlockTarget= or select another attacker to declare blockers for.
lblMorph=Morph lblMorph=Morph
#PlayerControllerHuman.java #PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, has ganado el lanzamiento de la moneda. lblYouHaveWonTheCoinToss={0}, has ganado el lanzamiento de la moneda.
lblYouLostTheLastGame=%s, perdiste la última partida. lblYouLostTheLastGame={0}, perdiste la última partida.
lblWouldYouLiketoPlayorDraw=¿Quieres jugar o ceder? lblWouldYouLiketoPlayorDraw=¿Quieres jugar o ceder?
lblWhoWouldYouLiketoStartthisGame=¿Quién te gustaría que empezara esta partida? (Haz clic en el retrato) lblWhoWouldYouLiketoStartthisGame=¿Quién te gustaría que empezara esta partida? (Haz clic en el retrato)
lblPlay=Jugar lblPlay=Jugar
lblDraw=Ceder lblDraw=Ceder
lblTooFewCardsMainDeck=Muy pocas cartas en tu mazo principal (mínimo %s), por favor realiza modificaciones a tu mazo de nuevo. lblTooFewCardsMainDeck=Muy pocas cartas en tu mazo principal (mínimo {0}), por favor realiza modificaciones a tu mazo de nuevo.
lblTooManyCardsSideboard=Demasiadas cartas en tu banquillo (máximo %s), por favor realiza modificaciones a tu mazo de nuevo. lblTooManyCardsSideboard=Demasiadas cartas en tu banquillo (máximo {0}), por favor realiza modificaciones a tu mazo de nuevo.
lblAssignCombatDamageWerentBlocked=¿Quieres asignar su daño de combate como si no estuviera bloqueado? lblAssignCombatDamageWerentBlocked=¿Quieres asignar su daño de combate como si no estuviera bloqueado?
lblChosenCards=Cartas elegidas lblChosenCards=Cartas elegidas
lblAttacker=Atacante lblAttacker=Atacante
@@ -1169,15 +1169,15 @@ lblSelectCardsToBePutIntoTheGraveyard=Selecciona las cartas para ponerlas en el
lblCardsToPutInTheGraveyard=Cartas para poner en el Cementerio lblCardsToPutInTheGraveyard=Cartas para poner en el Cementerio
lblDiscardUpToNCards=Descarta hasta %d carta(s) lblDiscardUpToNCards=Descarta hasta %d carta(s)
lblDiscardNCards=Descarta %d carta(s) lblDiscardNCards=Descarta %d carta(s)
lblSelectNCardsToDiscardUnlessDiscarduType=Selecciona %d carta(s) para descartar, a menos que descartes un %s. lblSelectNCardsToDiscardUnlessDiscarduType=Selecciona %d carta(s) para descartar, a menos que descartes un {0}.
lblCleanupPhase=Fase de Limpieza lblCleanupPhase=Fase de Limpieza
lblSelectCardsToDiscardHandDownMaximum=Selecciona %d carta(s) a descartar para reducir tu mano al máximo de %max cartas. lblSelectCardsToDiscardHandDownMaximum=Selecciona {0} carta(s) a descartar para reducir tu mano al máximo de {1} cartas.
lblChooseMinCardToDiscard=Elige %d carta(s) para descartar lblChooseMinCardToDiscard=Elige %d carta(s) para descartar
lblDiscarded=Descartado lblDiscarded=Descartado
lblChooseDamageOrderFor=Selecciona el Orden de Daños para %s lblChooseDamageOrderFor=Selecciona el Orden de Daños para {0}
lblDamagedFirst=Dañado Primero lblDamagedFirst=Dañado Primero
lblChooseBlockerAfterWhichToPlaceAttackert=Elige un bloqueador después del cual colocar %s en el orden de daño; cancela para colocarlo primero. lblChooseBlockerAfterWhichToPlaceAttackert=Elige un bloqueador después del cual colocar {0} en el orden de daño; cancela para colocarlo primero.
lblPutCardOnTopOrBottomLibrary=¿Poner %s en la parte superior o inferior de tu biblioteca? lblPutCardOnTopOrBottomLibrary=¿Poner {0} en la parte superior o inferior de tu biblioteca?
lblChooseOrderCardsPutIntoLibrary=Elige el orden de las cartas para poner en la biblioteca lblChooseOrderCardsPutIntoLibrary=Elige el orden de las cartas para poner en la biblioteca
lblClosestToTop=Más cerca de la parte superior lblClosestToTop=Más cerca de la parte superior
lblChooseOrderCardsPutOntoBattlefield=Elige el orden de las cartas que quieres poner en el campo de batalla lblChooseOrderCardsPutOntoBattlefield=Elige el orden de las cartas que quieres poner en el campo de batalla
@@ -1190,20 +1190,20 @@ lblChooseOrderCopiesCast=Elige el orden de las copias que se van a invocar
lblDelveHowManyCards=¿Excavar cuántas cartas? lblDelveHowManyCards=¿Excavar cuántas cartas?
lblExileWhichCard=¿Exiliar qué carta? lblExileWhichCard=¿Exiliar qué carta?
lblDestroy=destroy lblDestroy=destroy
lblUpTo=up to lblSelectUpToNumTargetToAction=Select up to %d {0}(s) to {1}.
lblSelectNumTargetToAction=Select %d {0}(s) to {1}.
lblHighestBidder=Highest Bidder lblHighestBidder=Highest Bidder
lblUseTriggeredAbilityOf=Use triggered ability of lblUseTriggeredAbilityOf=Use triggered ability of
lblExertAttackersConfirm=Exert Attackers? lblExertAttackersConfirm=Exert Attackers?
lblThereNoCardIn=There are no cards in lblThereNoCardInPlayerZone=There are no cards in {0} {1}
lblPut=Put lblPutCardsOnTheTopLibraryOrGraveyard=Put {0} on the top of library or graveyard?
lblOnTheTopLibraryOrGraveyard=on the top of library or graveyard?
lblLibrary=Library lblLibrary=Library
lblGraveyard=Graveyard lblGraveyard=Graveyard
lblTop=Top lblTop=Top
lblBottom=Bottom lblBottom=Bottom
lblManaFrom=mana from lblNColorManaFromCard={0} {1} mana from {2}
lblPayManaFromManaPool=Pay Mana from Mana Pool lblPayManaFromManaPool=Pay Mana from Mana Pool
lblChooseATargetType=Choose a %s type lblChooseATargetType=Choose a {0} type
lblUntap=Untap lblUntap=Untap
lblOdds=Odds lblOdds=Odds
lblEvens=Evens lblEvens=Evens
@@ -1217,21 +1217,17 @@ lblWinTheFlip=win the flip
lblLoseTheFlip=lose the flip lblLoseTheFlip=lose the flip
lblChooseAResult=Choose a result lblChooseAResult=Choose a result
lblSelectPreventionShieldToUse=select which prevention shield to use lblSelectPreventionShieldToUse=select which prevention shield to use
lblChooseAMode=Choose a mode lblPlayerActivatedCardChooseMode={0} activated {1} - Choose a mode
lblActivated=activated
lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool. lblNoPlayerHasPriorityCannotAddedManaToPool=No player has priority at the moment, so mana cannot be added to their pool.
lblOverwriteExistFileConfirm=Overwrite existing file? lblOverwriteExistFileConfirm=Overwrite existing file?
lblFileExists=File exists! lblFileExists=File exists!
lblSelectGameStateFile=Select Game State File lblSelectGameStateFile=Select Game State File
lblFileNotFound=File not found lblFileNotFound=File not found
lblIn=in lblPutCardInWhichPlayerZone=Put card in {0} for which player?
lblOnTheBattlefield=on the battlefield lblPutCardInWhichPlayerBattlefield=Put card on the battlefield for which player?
lblOnTheStackOrInPlay=on the stack / in play lblPutCardInWhichPlayerPlayOrStack=Put card on the stack / in play for which player?
lblPutCard=Put card lblCardShouldBeSummoningSicknessConfirm=Should {0} be affected with Summoning Sickness?
lblForWhichPlayer=for which player? lblCardShouldBeAddedToLibraryTopOrBottom=Should {0} be added to the top or to the bottom of the library?
lblShould=Should
lblAffectedWithSummoningSickness=be affected with Summoning Sickness?
lblBeAddedToLibraryTopOrBottom=be added to the top or to the bottom of the library?
lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand? lblExileCardsFromPlayerHandConfirm=Exile card(s) from which player's hand?
lblChooseCardsExile=Choose cards to exile lblChooseCardsExile=Choose cards to exile
lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield? lblExileCardsFromPlayerBattlefieldConfirm=Exile card(s) from which player's battlefield?
@@ -1245,7 +1241,11 @@ lblRestartingActionSequence=Restarting action sequence.
lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas. lblErrorPleaseCheckID=Error: Check IDs and ensure they're separated by spaces and/or commas.
lblErrorEntityWithId=Error: Entity with ID lblErrorEntityWithId=Error: Entity with ID
lblNotFound=not found lblNotFound=not found
lblChooseAnnounceFor=Choose %s for %name lblChooseAnnounceForCard=Choose {0} for {1}
lblSacrifice=Sacrifice
lblLookCardInPlayerZone=Looking at cards in {0} {1}
lblPlayerZone={0} {1}
lblActionFromPlayerDeck={0} from {1} Deck
#AbstractGuiGame.java #AbstractGuiGame.java
lblConcedeCurrentGame=Esto concederá la partida actual y perderás.\n\n¿Conceder de todos modos? lblConcedeCurrentGame=Esto concederá la partida actual y perderás.\n\n¿Conceder de todos modos?
lblConcedeTitle=¿Conceder Partida? lblConcedeTitle=¿Conceder Partida?
@@ -1591,24 +1591,22 @@ lblSelectOrder=Select Order
lblIfYouDo=if you do lblIfYouDo=if you do
lblOr=or lblOr=or
lblDoYouWantPay=Do you want to pay lblDoYouWantPay=Do you want to pay
lblDoYouWantPayNLife=Do you want to pay {0} life?
lblDoyouWantTo=Do you want to lblDoyouWantTo=Do you want to
lblDoYouWantMill=Do you want to mill lblDoYouWantMillNCardsOrDoAction=Do you want to mill {0} card(s)? {1}
lblDoYouWantFlip=Do you want to flip lblDoYouWantFlipNCoinOrDoAction=Do you want to flip {0} coin(s)? {1}
lblDoYouWantRemove=Do you want to remove lblDoYouWantRemoveNTargetTypeCounterFromCard=Do you want to remove {0} {1} counter from {2}?
lblDoYouWantRemoveCounters=Do you want to remove counters from lblDoYouWantRemoveCountersFromCard=Do you want to remove counters from {0}?
lblDoYouWantExile=Do you want to exile lblDoYouWantExileNCardsFromYourLibrary=Do you want to exile {0} card(s) from your library?
lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard? lblDoYouWantExileAllCardYouGraveyard=Do you want to exile all cards in your graveyard?
lblDoYouWantDiscardYourHand=Do you want to discard your hand? lblDoYouWantDiscardYourHand=Do you want to discard your hand?
lblDoYouWantSpend=Do you want to spend lblDoYouWantSpendNTargetTypeCounter=Do you want to spend {0} {1} counter?
lblLetThatPlayer=let that player lblDoYouWantLetThatPlayerDrawNCardOrDoAction=Do you want to let that player draw {0} card(s)?{1}
lblCoin=coin lblDoYouWantDrawNCardOrDoAction=Do you want to draw {0} card(s)?{1}
lblCounterOfPointer=counter
lblFrom=from
lblFromYourLibrary=from your library?
lblSelectRemoveCounterCard=Select a card to remove a counter lblSelectRemoveCounterCard=Select a card to remove a counter
lblSelectRemoveCounterType=Select type counters to remove lblSelectRemoveCounterType=Select type counters to remove
lblExileFrom=Exile from lblExileFromZone=Exile from {0}
lblPutCardFromWhose=Put cards from whose lblPutCardFromWhoseZone=Put cards from whose {0}?
lblPutCardToLibrary=Put cards to Library lblPutCardToLibrary=Put cards to Library
lblPutIntoLibrary=put into library. lblPutIntoLibrary=put into library.
lblGainControl=gain control. lblGainControl=gain control.
@@ -1617,62 +1615,60 @@ lbldiscard=discard.
lblReveal=reveal lblReveal=reveal
lblTap=tap lblTap=tap
lblCurrentCard=Current Card lblCurrentCard=Current Card
lblSelectOfCardsTo=Select lblSelectNSpecifyTypeCardsToAction=Select %d {0} card(s) to {1}
lblCardsTo=card(s) to
#AbandonEffect.java #AbandonEffect.java
lblWouldYoulikeAbandon=Would you like to abandon the scheme lblWouldYoulikeAbandonSource=Would you like to abandon the scheme {0}?
#ActivateAbilityEffect.java #ActivateAbilityEffect.java
lblChooseManaAbility=Choose a mana ability: lblChooseManaAbility=Choose a mana ability:
#AddTurnEffect.java #AddTurnEffect.java
lblTakesExtraTurn=takes an extra turn. lblPlayerTakesExtraTurn={0} takes an extra turn.
#AmassEffect.java. #AmassEffect.java.
lblChooseAnArmy=Choose an army to put counters on lblChooseAnArmy=Choose an army to put counters on
#AssignGroupEffect.java #AssignGroupEffect.java
lblChooseAbilityFor=Choose ability for lblChooseAbilityForObject=Choose ability for {0}
#AttachEffect.java #AttachEffect.java
lblDoYouWantAttach=Do you want to attach lblDoYouWantAttachSourceToTarget=Do you want to attach {0} to {1}?
lblSelectAPlayerAttachTo=Select a player to attach to. lblSelectAPlayerAttachSourceTo={0} - Select a player to attach to.
lblSelectACardAttachTo=Select a card to attach to. lblSelectACardAttachSourceTo={0} - Select a card to attach to.
#BidLifeEffect.java #BidLifeEffect.java
lblChooseStartingBid=Choose a starting bid lblChooseStartingBid=Choose a starting bid
lblDoYouWantTopBid=Do you want to top bid? Current Bid \= lblDoYouWantTopBid=Do you want to top bid? Current Bid \=
lblTopBidWith=topped bid with lblTopBidWithValueLife=topped bid with {0} life
#BondEffect.java #BondEffect.java
lblSelectACardPair=Select a card to pair with lblSelectACardPair=Select a card to pair with
#ChangeCombatantsEffect.java #ChangeCombatantsEffect.java
lblChooseDefenderToAttackWith=Choose which defender to attack with lblChooseDefenderToAttackWithCard=Choose which defender to attack with {0}
#ChangeTargetsEffect.java #ChangeTargetsEffect.java
lblDoYouWantChangeTargets=Do you want to change targets of lblDoYouWantChangeAbilityTargets=Do you want to change targets of {0}?
#ChangeTextEffect.java #ChangeTextEffect.java
lblChooseColorReplace=Choose a color word to replace lblChooseColorReplace=Choose a color word to replace
lblChooseNewColor=Choose a new color word lblChooseNewColor=Choose a new color word
#ChangeZoneEffect.java #ChangeZoneEffect.java
lblDoYouWantMove=Do you want to move lblDoYouWantMoveTargetFromOriToDest=Do you want to move {0} from {1} to {2}?
lblDeclareDefenderFor=Declare a defender for lblPutThatCardFromPlayerOriginToDestination=Put that card from for {0} {1} to {2}
lblSearchPlayerZoneConfirm=Search {0} {1}?
lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones. lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones.
lblPutThatCardFrom=Put that card from
lblLookingCardIn=Looking at cards in lblLookingCardIn=Looking at cards in
lblDoYouWantPlay=Do you want to play lblDoYouWantPlayCard=Do you want to play {0}?
lblSelectCardFrom=Select a card from lblSelectCardFromPlayerZone=Select a card from {0} {1}
lblSelectUpTo=Select up to lblSelectUpToNumCardFromPlayerZone=Select up to {0} cards from {1} {2}
lblCardsFrom=cards from lblSelectCardsFromPlayerZone=Select cards from {0} {1}
lblSelectCardsFrom=Select cards from lblCancelSearchUpToSelectNumCards=Cancel Search? Up to {0} more card(s) can be selected.
lblCancelSearchUpTo=Cancel Search? Up to #ChangeZoneAllEffect.java
lblMoreCard=more card lblMoveTargetFromOriginToDestination=Move {0} from {1} to {2}?
lblCanBeSelected=can be selected.
#ChooseCardEffect.java #ChooseCardEffect.java
lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to lblChoose=Choose
lblTotalPower=Total Power lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power less than or equal to {0}
lblTotalPowerNum=Total Power: {0}
lblCancelChooseConfirm=Cancel Choose? lblCancelChooseConfirm=Cancel Choose?
#ChooseCardNameEffect.java #ChooseCardNameEffect.java
lblChooseACardName=Choose a card name lblChooseACardName=Choose a card name
lblChooseA=Choose a lblChooseASpecificCard=Choose a {0} card name.
lblCardName=card name lblPlayerPickedChosen={0} picked {1}
lblPicked=picked
#ChooseColorEffect.java #ChooseColorEffect.java
lblChooseAColor=Choose a color lblChooseAColor=Choose a color
lblChoose=Choose lblAtLastChooseNumColors=Choose {0} or more color
lblOrMore=or more lblChooseSpecifiedRangeColors=Choose {0} to {1} color
#ChooseDirectionEffect.java #ChooseDirectionEffect.java
lblLeftClockwise=Left (clockwise) lblLeftClockwise=Left (clockwise)
lblRightAntiClockwise=Right (anticlockwise) lblRightAntiClockwise=Right (anticlockwise)
@@ -1681,7 +1677,7 @@ lblChooseDirection=Choose a direction
lblChooseOne=Choose one lblChooseOne=Choose one
#ChooseNumberEffect.java #ChooseNumberEffect.java
lblChooseNumber=Choose a number lblChooseNumber=Choose a number
lblChose=chose lblPlayerChoseNum={0} chose {1}
#ChoosePlayerEffect.java #ChoosePlayerEffect.java
lblChoosePlayer=Choose a player lblChoosePlayer=Choose a player
#ChooseSourceEffect.java #ChooseSourceEffect.java
@@ -1692,26 +1688,24 @@ lblReveals=reveals
lblWinsClash=wins clash lblWinsClash=wins clash
lblLosesClash=loses clash lblLosesClash=loses clash
#CloneEffect.java #CloneEffect.java
lblDoYouWantCopy=Do you want to copy lblDoYouWantCopy=Do you want to copy {0}?
#ControlExchangeVariantEffect.java #ControlExchangeVariantEffect.java
lblChooseCards=Choose cards lblChooseCards=Choose cards
#CopyPermanentEffect.java #CopyPermanentEffect.java
lblCopyPermanentConfirm=Copy this permanent? lblCopyPermanentConfirm=Copy this permanent?
lblDefender=defender lblDefender=defender
#CopySpellAbilityEffect.java #CopySpellAbilityEffect.java
lblDoyouWantCopyTheSpell=Do you want to copy the spell lblDoyouWantCopyTheSpell=Do you want to copy the spell {0}?
lblSelectMultiSpellCopyToStack=Select %d spell to copy to stack lblSelectMultiSpellCopyToStack=Select {0} spell to copy to stack
lblSelectASpellCopy=Select a spell to copy lblSelectASpellCopy=Select a spell to copy
#CounterEffect.java #CounterEffect.java
lblRemoveDestination=a destination to remove lblRemoveDestination=a destination to remove
#CountersMoveEffect.java #CountersMoveEffect.java
lblChooseTakeCountersCard=Choose card to take %s counters from lblChooseTakeCountersCard=Choose card to take {0} counters from
lblTakeHowMany=Take how many lblTakeHowManyTargetCounterFromCard=Take how many {0} counters from {1}?
lblCountersFrom=counters from lblChooseCardToGetCountersFrom=Choose cards to get {0} counters from {1}.
lblChooseCardToGet=Choose cards to get lblPutHowManyTargetCounterOnCard=Put how many {0} counters on {1}?
lblPutHowMany=Put how many lblTakeHowManyTargetCounters=Take how many {0} counters?
lblCountersOn=counters on
lblCounters=counters
#CountersProliferateEffect.java #CountersProliferateEffect.java
lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate
#CountersPutEffect.java #CountersPutEffect.java
@@ -1719,41 +1713,40 @@ lblChooseACreatureWithLeastToughness=Choose a creature with the least toughness
lblSelectCounterTypeAddTo=Select counter type to add to lblSelectCounterTypeAddTo=Select counter type to add to
lblHowManyCounters=How many counters? lblHowManyCounters=How many counters?
lblChooseAnOpponent=Choose an opponent lblChooseAnOpponent=Choose an opponent
lblDoYouWantPutTargetP1P1CountersOn=Do you want to put %d +1/+1 counters on lblDoYouWantPutTargetP1P1CountersOnCard=Do you want to put {0} +1/+1 counters on {1}?
#CountersPutOrRemoveEffect.java #CountersPutOrRemoveEffect.java
lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove lblSelectCounterTypeToAddOrRemove=Select type of counters to add or remove
lblWhatToDoWithTargetCounter=What to do with that '%s' counter lblWhatToDoWithTargetCounter=What to do with that '{0}' counter
#CountersRemoveEffect.java #CountersRemoveEffect.java
lblAllCounters=all counters lblAllCounters=all counters
lblACounters=a counter lblACounters=a counter
lblChooseCardtoTakeTargetCounters=Choose cards to take %s counters from lblCounters=counters
lblSelectRemoveCountersNumberOfTarget=Select the number of %s counters to remove lblChooseCardsToTakeTargetCounters=Choose cards to take {0} counters from
lblSelectRemoveCountersNumberOfTarget=Select the number of {0} counters to remove
lblSelectCountersTypeToRemove=Select type of counters to remove lblSelectCountersTypeToRemove=Select type of counters to remove
#DamageDealEffect.java #DamageDealEffect.java
lblDoyouWantDealTargetDamageTo=Do you want to deal %d damage to lblDoyouWantDealTargetDamageToTarget=Do you want to deal {0} damage to {1}?
#DigEffect.java #DigEffect.java
lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for lblWouldYouLikeProceedWithOptionalAbility=Would you like to proceed with the optional ability for
lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of %s library lblChooseACardToLeaveTargetLibraryTop=Choose a card to leave on top of {0} library
lblChooseACardLeaveTarget=Choose a card to leave in %s lblChooseACardLeaveTarget=Choose a card to leave in {0} {1}
lblChooseCardsPutInto=Choose card(s) to put into lblChooseCardsPutIntoZone=Choose card(s) to put into {0}
lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of %s library lblChooseCardPutOnTargetLibarayBottom=Choose card(s) to put on the bottom of {0} library
lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of %s library lblChooseCardPutOnTargetLibarayTop=Choose card(s) to put on top of {0} library
lblPlayerPickedCardFrom={0} picked card(s) from
lblNoValidCards=No valid cards lblNoValidCards=No valid cards
lblThisCard=this card
lblTheseCards=these cards
#DigUntilEffect.java #DigUntilEffect.java
lblDoYouWantDigYourLibrary=Do you want to dig your library? lblDoYouWantDigYourLibrary=Do you want to dig your library?
lblDoYouWantPutCardTo=Do you want to put that card to lblDoYouWantPutCardToZone=Do you want to put that card to {0}?
#DiscardEffect.java #DiscardEffect.java
lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard %d random card(s)? lblWouldYouLikeRandomDiscardTargetCard=Would you like to discard {0} random card(s)?
lblHasChosen=has chosen lblPlayerHasChosenCardsFrom={0} has chosen card(s) from
#DrawEffect.java #DrawEffect.java
lblDoYouWantDraw=Do you want to draw lblDoYouWantDrawCards=Do you want to draw {0}?
lblHowMayCardDoYouWantDraw=How may cards do you want to draw? lblHowMayCardDoYouWantDraw=How may cards do you want to draw?
#EncodeEffect.java #EncodeEffect.java
lblAndEncodeOntoAYouControlCreature=and encode it onto a creature you control? lblDoYouWantExileCardAndEncodeOntoYouCreature=Do you want to exile {0} and encode it onto a creature you control?
lblChooseACreatureYouControlToEncode=Choose a creature you control to encode lblChooseACreatureYouControlToEncode=Choose a creature you control to encode
lblEncoding=Encoding
#ExploreEffect.java #ExploreEffect.java
lblRevealedForExplore=Revealed for Explore lblRevealedForExplore=Revealed for Explore
lblPutThisCardToYourGraveyard=Put this card in your graveyard? lblPutThisCardToYourGraveyard=Put this card in your graveyard?
@@ -1768,15 +1761,15 @@ lblLifeTotal=Life Total
#ManaEffect.java #ManaEffect.java
lblDoYouWantAddMana=Do you want to add mana? lblDoYouWantAddMana=Do you want to add mana?
lblSelectManaProduce=Select Mana to Produce lblSelectManaProduce=Select Mana to Produce
lblChooseSingleColorFrom=Choose a single color from lblChooseSingleColorFromTarget=Choose a single color from {0}
#ManifestEffect.java #ManifestEffect.java
lblChooseCardToManifest=Choose cards to manifest lblChooseCardToManifest=Choose cards to manifest
#MeldEffect.java #MeldEffect.java
lblChooseCardToMeld=Choose card to meld with lblChooseCardToMeld=Choose card to meld with
#MillEffect.java #MillEffect.java
lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to lblDoYouWantPutLibraryCardsTo=Do you want to put card(s) from library to {0}?
#MultiplePilesEffect.java #MultiplePilesEffect.java
lblChooseCardsInPile=Choose cards in Pile lblChooseCardsInTargetPile=Choose cards in Pile {0}?
#PeekAndRevealEffect.java #PeekAndRevealEffect.java
lblRevealingCardFrom=Revealing cards from lblRevealingCardFrom=Revealing cards from
lblRevealCardToOtherPlayers=Reveal cards to other players? lblRevealCardToOtherPlayers=Reveal cards to other players?
@@ -1786,7 +1779,7 @@ lblSelectCardToPlay=Select a card to play
#ProtectAllEffect.java #ProtectAllEffect.java
lblChooseAProtection=Choose a protection lblChooseAProtection=Choose a protection
#PumpEffect.java #PumpEffect.java
lblApplyPumpTo=Apply pump to lblApplyPumpToTarget=Apply pump to {0}?
#RearrangeTopOfLibraryEffect.java #RearrangeTopOfLibraryEffect.java
lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library? lblDoyouWantShuffleTheLibrary=Do you want to shuffle the library?
#RepeatEffect.java #RepeatEffect.java
@@ -1794,22 +1787,20 @@ lblDoYouWantRepeatProcessAgain=Do you want to repeat this process again?
#RevealHandEffect.java #RevealHandEffect.java
lblDoYouWantRevealYourHand=Do you want to reveal your hand? lblDoYouWantRevealYourHand=Do you want to reveal your hand?
#RollPlanarDiceEffect.java #RollPlanarDiceEffect.java
lblRolled=rolled lblPlayerRolledResult={0} rolled {1}
#SacrificeEffect.java #SacrificeEffect.java
lblDoYouWantPayEcho=Do you want to pay Echo lblDoYouWantPayEcho=Do you want to pay Echo
lblPayEcho=Pay Echo lblPayEcho=Pay Echo
lblDoYouWantSacrifice=Do you want to sacrifice? lblDoYouWantSacrifice=Do you want to sacrifice?
lblSacrifice=Sacrifice
lblDestroys=Destroys
#SetStateEffect.java #SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up lblFaceDownCardCantTurnFaceUp=Face-down card can't turn face up
#ShuffleEffect.java #ShuffleEffect.java
lblHaveTargetShuffle=Have %s shuffle? lblHaveTargetShuffle=Have {0} shuffle?
#SurveilEffect.java #SurveilEffect.java
lblDoYouWantSurveil=Do you want to surveil? lblDoYouWantSurveil=Do you want to surveil?
#TapOrUntapAllEffect.java #TapOrUntapAllEffect.java
lblPermanents=Permanents lblPermanents=Permanents
lblTapOrUntap=Tap or Untap lblTapOrUntapTarget=Tap or Untap {0}?
#TwoPilesEffect.java #TwoPilesEffect.java
lblSelectCardForFaceDownPile=Select cards for a face down pile lblSelectCardForFaceDownPile=Select cards for a face down pile
lblDivideCardIntoTwoPiles=Divide cards into two piles lblDivideCardIntoTwoPiles=Divide cards into two piles
@@ -1847,3 +1838,17 @@ lblRepeatAddCard=Repeat Last Add Card
lblRemoveFromGame=Remove Card from Game lblRemoveFromGame=Remove Card from Game
lblRiggedRoll=Rigged Planar Roll lblRiggedRoll=Rigged Planar Roll
lblWalkTo=Planeswalk to lblWalkTo=Planeswalk to
#ZoneType.java
lblHandZone=hand
lblLibraryZone=library
lblGraveyardZone=graveyard
lblBattlefieldZone=battlefield
lblExileZone=exile
lblFlashbackZone=flashback
lblCommandZone=command
lblStackZone=stack
lblSideboardZone=sideboard
lblAnteZone=ante
lblSchemeDeckZone=schemedeck
lblPlanarDeckZone=planardeck
lblNoneZone=none

View File

@@ -327,7 +327,7 @@ lblOk=确认
lblReset=重置 lblReset=重置
lblAuto=自动 lblAuto=自动
#VAssignDamage.java #VAssignDamage.java
lbLAssignDamageDealtBy=分配对%s造成的伤害 lbLAssignDamageDealtBy=对%s造成的伤害进行分配
lblLClickDamageMessage=左键单击分配一点伤害。左键加Ctrl分配致命伤害。 lblLClickDamageMessage=左键单击分配一点伤害。左键加Ctrl分配致命伤害。
lblRClickDamageMessage=右键单击取消分配一点伤害。左键加Ctrl取消分配的所有伤害 lblRClickDamageMessage=右键单击取消分配一点伤害。左键加Ctrl取消分配的所有伤害
lblTotalDamageText=可用的伤害值:未知 lblTotalDamageText=可用的伤害值:未知
@@ -1035,7 +1035,7 @@ lblAny=任意
lblFantasy=幻想 lblFantasy=幻想
lblGeneric=通用 lblGeneric=通用
#MatchController.java #MatchController.java
lblChooseAbilityToPlay=选择使用的能 lblChooseAbilityToPlay=选择使用的
lblSelected=选择 lblSelected=选择
#ItemManager.java #ItemManager.java
lblAdvancedSearch=高级搜索 lblAdvancedSearch=高级搜索
@@ -1113,14 +1113,14 @@ lblSelectBlocker=选择进行阻挡的生物
lblOrSelectBlockTarget= 或者为其他进攻者选择阻挡者。 lblOrSelectBlockTarget= 或者为其他进攻者选择阻挡者。
lblMorph=变身 lblMorph=变身
#PlayerControllerHuman.java #PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s,你赢得了这次掷硬币。 lblYouHaveWonTheCoinToss={0},你赢得了这次掷硬币。
lblYouLostTheLastGame=%s,最后一场比赛你输了。 lblYouLostTheLastGame={0},最后一场比赛你输了。
lblWouldYouLiketoPlayorDraw=你想先手还是后手? lblWouldYouLiketoPlayorDraw=你想先手还是后手?
lblWhoWouldYouLiketoStartthisGame=你想谁先开始游戏?(单击头像) lblWhoWouldYouLiketoStartthisGame=你想谁先开始游戏?(单击头像)
lblPlay=先手 lblPlay=先手
lblDraw=后手 lblDraw=后手
lblTooFewCardsMainDeck=主牌中卡牌数过少(最少为%s),请重新修改套牌。 lblTooFewCardsMainDeck=主牌中卡牌数过少(最少为{0}),请重新修改套牌。
lblTooManyCardsSideboard=备牌中卡牌数过多(最多为%s),请重新修改套牌。 lblTooManyCardsSideboard=备牌中卡牌数过多(最多为{0}),请重新修改套牌。
lblAssignCombatDamageWerentBlocked=是否要像没有被阻挡一样分配战斗伤害? lblAssignCombatDamageWerentBlocked=是否要像没有被阻挡一样分配战斗伤害?
lblChosenCards=选择牌 lblChosenCards=选择牌
lblAttacker=进攻者 lblAttacker=进攻者
@@ -1169,15 +1169,15 @@ lblSelectCardsToBePutIntoTheGraveyard=选择要放于坟场的卡牌
lblCardsToPutInTheGraveyard=放于坟场的卡牌 lblCardsToPutInTheGraveyard=放于坟场的卡牌
lblDiscardUpToNCards=最多弃%d张牌 lblDiscardUpToNCards=最多弃%d张牌
lblDiscardNCards=弃%d张牌 lblDiscardNCards=弃%d张牌
lblSelectNCardsToDiscardUnlessDiscarduType=选择要丢弃的%d张牌除非你丢弃%s lblSelectNCardsToDiscardUnlessDiscarduType=选择要丢弃的%d张牌除非你丢弃{0}
lblCleanupPhase=清除步骤 lblCleanupPhase=清除步骤
lblSelectCardsToDiscardHandDownMaximum=选择要丢弃的%d张牌,以使你的手牌数量减少到%max张。 lblSelectCardsToDiscardHandDownMaximum=选择要丢弃的{0}张牌,以使你的手牌数量减少到{1}张。
lblChooseMinCardToDiscard=选择%d张牌弃掉 lblChooseMinCardToDiscard=选择%d张牌弃掉
lblDiscarded=弃牌 lblDiscarded=弃牌
lblChooseDamageOrderFor=选择%s造成伤害的顺序 lblChooseDamageOrderFor=选择{0}造成伤害的顺序
lblDamagedFirst=先造成伤害 lblDamagedFirst=先造成伤害
lblChooseBlockerAfterWhichToPlaceAttackert=选择%s后造成伤害的阻挡者; cancel to place it first lblChooseBlockerAfterWhichToPlaceAttackert=选择{0}后造成伤害的阻挡者; cancel to place it first
lblPutCardOnTopOrBottomLibrary=%s放到牌库顶还是底? lblPutCardOnTopOrBottomLibrary={0}放到牌库顶还是底?
lblChooseOrderCardsPutIntoLibrary=选择要放入牌库中的牌的顺序 lblChooseOrderCardsPutIntoLibrary=选择要放入牌库中的牌的顺序
lblClosestToTop=最接近顶部 lblClosestToTop=最接近顶部
lblChooseOrderCardsPutOntoBattlefield=选择要放入战场中的牌的顺序 lblChooseOrderCardsPutOntoBattlefield=选择要放入战场中的牌的顺序
@@ -1190,20 +1190,20 @@ lblChooseOrderCopiesCast=选择要复制品的释放顺序。
lblDelveHowManyCards=掘穴多少张牌? lblDelveHowManyCards=掘穴多少张牌?
lblExileWhichCard=放逐哪张牌? lblExileWhichCard=放逐哪张牌?
lblDestroy=消灭 lblDestroy=消灭
lblUpTo=最多 lblSelectUpToNumTargetToAction=选择最多%d个{0}用于{1}。
lblSelectNumTargetToAction=选择%d个{0}用于{1}。
lblHighestBidder=最高出价者 lblHighestBidder=最高出价者
lblUseTriggeredAbilityOf=使用触发异能 lblUseTriggeredAbilityOf=使用触发异能
lblExertAttackersConfirm=进攻者耗竭? lblExertAttackersConfirm=进攻者耗竭?
lblThereNoCardIn=里面没有牌 lblThereNoCardInPlayerZone={0}的{1}中没有牌
lblPut=放到 lblPutCardsOnTheTopLibraryOrGraveyard=将{0}放到牌库顶还是坟场?
lblOnTheTopLibraryOrGraveyard=牌库顶或坟场?
lblLibrary=牌库 lblLibrary=牌库
lblGraveyard=坟场 lblGraveyard=坟场
lblTop= lblTop=
lblBottom= lblBottom=
lblManaFrom=法术力 lblNColorManaFromCard={2}产{0}个{1}法术力
lblPayManaFromManaPool=从法术力池支付法术力 lblPayManaFromManaPool=从法术力池支付法术力
lblChooseATargetType=选择一个%s类型 lblChooseATargetType=选择一个{0}类型
lblUntap=重置 lblUntap=重置
lblOdds=赔率 lblOdds=赔率
lblEvens=偶数 lblEvens=偶数
@@ -1217,21 +1217,17 @@ lblWinTheFlip=赢得此掷
lblLoseTheFlip=输掉此掷 lblLoseTheFlip=输掉此掷
lblChooseAResult=选择一个结果 lblChooseAResult=选择一个结果
lblSelectPreventionShieldToUse=选择一个保护罩使用 lblSelectPreventionShieldToUse=选择一个保护罩使用
lblChooseAMode=选择一模式 lblPlayerActivatedCardChooseMode={0}激活了{1} - 选择一模式
lblActivated=已启动
lblNoPlayerHasPriorityCannotAddedManaToPool=目前没有牌手具有优先权,因此无法向法术力池中加入法术力。 lblNoPlayerHasPriorityCannotAddedManaToPool=目前没有牌手具有优先权,因此无法向法术力池中加入法术力。
lblOverwriteExistFileConfirm=覆盖已有的文件? lblOverwriteExistFileConfirm=覆盖已有的文件?
lblFileExists=文件已存在! lblFileExists=文件已存在!
lblSelectGameStateFile=选择游戏状态文件 lblSelectGameStateFile=选择游戏状态文件
lblFileNotFound=文件未找到 lblFileNotFound=文件未找到
lblIn= lblPutCardInWhichPlayerZone=将牌放于哪个牌手的{0}中?
lblOnTheBattlefield=战场 lblPutCardInWhichPlayerBattlefield=将牌放于哪个牌手的战场
lblOnTheStackOrInPlay=在堆叠/在使用 lblPutCardInWhichPlayerPlayOrStack=将牌放于哪个牌手的堆叠/使哪个牌手使用牌?
lblPutCard=放置牌 lblCardShouldBeSummoningSicknessConfirm={0}是否应该受到召唤失调的影响?
lblForWhichPlayer=哪个牌手 lblCardShouldBeAddedToLibraryTopOrBottom=将{0}添加到牌库顶还是底
lblShould=应该
lblAffectedWithSummoningSickness=被召唤失调效应影响?
lblBeAddedToLibraryTopOrBottom=被添加到牌库顶还是底?
lblExileCardsFromPlayerHandConfirm=从哪位玩家手中放逐牌? lblExileCardsFromPlayerHandConfirm=从哪位玩家手中放逐牌?
lblChooseCardsExile=选择要放逐的牌 lblChooseCardsExile=选择要放逐的牌
lblExileCardsFromPlayerBattlefieldConfirm=从哪个玩家的战场放逐牌? lblExileCardsFromPlayerBattlefieldConfirm=从哪个玩家的战场放逐牌?
@@ -1245,7 +1241,11 @@ lblRestartingActionSequence=重新启动行动序列
lblErrorPleaseCheckID=错误请检查ID并确保他们之间用空格和/或逗号分隔。 lblErrorPleaseCheckID=错误请检查ID并确保他们之间用空格和/或逗号分隔。
lblErrorEntityWithId=错误实体的ID lblErrorEntityWithId=错误实体的ID
lblNotFound=没有找到 lblNotFound=没有找到
lblChooseAnnounceFor=%name选择%s lblChooseAnnounceForCard={1}选择{0}
lblSacrifice=牺牲
lblLookCardInPlayerZone=查看{0}的{1}中的牌
lblPlayerZone={0}的{1}
lblActionFromPlayerDeck=从{1}的套牌{0}
#AbstractGuiGame.java #AbstractGuiGame.java
lblConcedeCurrentGame=这局游戏认输。\n\n确认吗 lblConcedeCurrentGame=这局游戏认输。\n\n确认吗
lblConcedeTitle=这局游戏认输? lblConcedeTitle=这局游戏认输?
@@ -1588,27 +1588,25 @@ lblFinalMatch=决赛
#DualListBox.java #DualListBox.java
lblSelectOrder=选择顺序 lblSelectOrder=选择顺序
#HumanPlay.java #HumanPlay.java
lblIfYouDo=如果你 lblIfYouDo=如果你如此做
lblOr= lblOr=
lblDoYouWantPay=你想要支付 lblDoYouWantPay=你想要支付
lblDoYouWantPayNLife=你想要支付{0}点生命吗?
lblDoyouWantTo=你想要 lblDoyouWantTo=你想要
lblDoYouWantMill=你想要磨 lblDoYouWantMillNCardsOrDoAction=你想要磨{0}张牌吗? {1}
lblDoYouWantFlip=你想要抛 lblDoYouWantFlipNCoinOrDoAction=你想要抛{0}个硬币吗? {1}
lblDoYouWantRemove=你想要移除 lblDoYouWantRemoveNTargetTypeCounterFromCard=你想要从{2}移除{0}个{1}指示物吗?
lblDoYouWantRemoveCounters=你想要删除指示物 lblDoYouWantRemoveCountersFromCard=你想要从{0}删除指示物吗?
lblDoYouWantExile=你想要放逐 lblDoYouWantExileNCardsFromYourLibrary=你想要从你的牌库放逐{0}张牌吗?
lblDoYouWantExileAllCardYouGraveyard=你想要放逐坟场中的所有牌吗? lblDoYouWantExileAllCardYouGraveyard=你想要放逐坟场中的所有牌吗?
lblDoYouWantDiscardYourHand=你想要弃掉你的手牌吗? lblDoYouWantDiscardYourHand=你想要弃掉你的手牌吗?
lblDoYouWantSpend=你想要花费 lblDoYouWantSpendNTargetTypeCounter=你想要花费{0}个{1}指示物吗?
lblLetThatPlayer=让那个牌手 lblDoYouWantLetThatPlayerDrawNCardOrDoAction=你想要抓让该牌手{0}张牌吗?{1}
lblCoin=硬币 lblDoYouWantDrawNCardOrDoAction=你想要抓{0}张牌吗?{1}
lblCounterOfPointer=指示物
lblFrom=
lblFromYourLibrary=从你的牌库?
lblSelectRemoveCounterCard=选择一张牌删除指示物 lblSelectRemoveCounterCard=选择一张牌删除指示物
lblSelectRemoveCounterType=选择一个指示物类型删除 lblSelectRemoveCounterType=选择一个指示物类型删除
lblExileFrom=放逐 lblExileFromZone=从{0}中放逐
lblPutCardFromWhose=谁放置牌 lblPutCardFromWhoseZone=将牌放入谁的{0}
lblPutCardToLibrary=将牌放入牌库 lblPutCardToLibrary=将牌放入牌库
lblPutIntoLibrary=放入牌库。 lblPutIntoLibrary=放入牌库。
lblGainControl=获得控制权。 lblGainControl=获得控制权。
@@ -1617,62 +1615,60 @@ lbldiscard=弃牌。
lblReveal=展示 lblReveal=展示
lblTap=横置 lblTap=横置
lblCurrentCard=当前牌 lblCurrentCard=当前牌
lblSelectOfCardsTo=选择 lblSelectNSpecifyTypeCardsToAction=选择%d张{0}牌用于{1}
lblCardsTo=牌到
#AbandonEffect.java #AbandonEffect.java
lblWouldYoulikeAbandon=你想要终止阴谋 lblWouldYoulikeAbandonSource=你想要终止阴谋{0}吗?
#ActivateAbilityEffect.java #ActivateAbilityEffect.java
lblChooseManaAbility=选择一个法术力异能: lblChooseManaAbility=选择一个法术力异能:
#AddTurnEffect.java #AddTurnEffect.java
lblTakesExtraTurn=获得一个额外回合。 lblPlayerTakesExtraTurn={0}获得一个额外回合。
#AmassEffect.java. #AmassEffect.java.
lblChooseAnArmy=选择一个军队将指示物放置在上面。 lblChooseAnArmy=选择一个军队将指示物放置在上面。
#AssignGroupEffect.java #AssignGroupEffect.java
lblChooseAbilityFor=选择一个异能 lblChooseAbilityForObject=从{0}中选择一个异能
#AttachEffect.java #AttachEffect.java
lblDoYouWantAttach=你想要装备 lblDoYouWantAttachSourceToTarget=你想要将{0}装备到{1}吗?
lblSelectAPlayerAttachTo=选择一个要结附的牌手。 lblSelectAPlayerAttachSourceTo={0} - 选择一个要结附的牌手。
lblSelectACardAttachTo=选择一个要结附的牌。 lblSelectACardAttachSourceTo={0} - 选择一个要结附的牌。
#BidLifeEffect.java #BidLifeEffect.java
lblChooseStartingBid=选择一个初始价钱 lblChooseStartingBid=选择一个初始价钱
lblDoYouWantTopBid=你想要喊更高的价? 现在价钱 \= lblDoYouWantTopBid=你想要喊更高的价? 现在价钱 \=
lblTopBidWith=最高喊价 lblTopBidWithValueLife=最高喊价为{0}生命
#BondEffect.java #BondEffect.java
lblSelectACardPair=选择要组成搭档的牌 lblSelectACardPair=选择要组成搭档的牌
#ChangeCombatantsEffect.java #ChangeCombatantsEffect.java
lblChooseDefenderToAttackWith=选择守军进行进攻 lblChooseDefenderToAttackWith=选择守军进行进攻
#ChangeTargetsEffect.java #ChangeTargetsEffect.java
lblDoYouWantChangeTargets=你是否想要更改目标 lblDoYouWantChangeAbilityTargets=你是否想要更改{0}的目标
#ChangeTextEffect.java #ChangeTextEffect.java
lblChooseColorReplace=选择一个要替换的颜色词 lblChooseColorReplace=选择一个要替换的颜色词
lblChooseNewColor=选择一个新的颜色词 lblChooseNewColor=选择一个新的颜色词
#ChangeZoneEffect.java #ChangeZoneEffect.java
lblDoYouWantMove=你想要移动 lblDoYouWantMoveTargetFromOriToDest=你想要将{0}从{1}移动到{2}吗?
lblDeclareDefenderFor=声明阻挡者 lblPutThatCardFromPlayerOriginToDestination=将这张牌从{0}的{1}放到{2}
lblSearchPlayerZoneConfirm=搜索{0}的{1}?
lblCardMatchSearchingTypeInAlternateZones=在你的备用区域搜索匹配类型的卡牌。 lblCardMatchSearchingTypeInAlternateZones=在你的备用区域搜索匹配类型的卡牌。
lblPutThatCardFrom=放置这张牌从
lblLookingCardIn=看牌自 lblLookingCardIn=看牌自
lblDoYouWantPlay=你想要使用 lblDoYouWantPlayCard=你想要使用{0}?
lblSelectCardFrom=选择一张牌从 lblSelectCardFromPlayerZone=选择一张牌从{0}的{1}
lblSelectUpTo=最多选择 lblSelectUpToNumCardFromPlayerZone=最多选择{0}张牌来自{1}的{2}
lblCardsFrom=牌张来自 lblSelectCardsFromPlayerZone=选择牌张来自{0}的{1}
lblSelectCardsFrom=选择牌张来自 lblCancelSearchUpToSelectNumCards=取消搜索?最多可以搜索{0}张牌。
lblCancelSearchUpTo=取消搜索?直到 #ChangeZoneAllEffect.java
lblMoreCard=更多牌 lblMoveTargetFromOriginToDestination=将{0}从{1}移动到{2}
lblCanBeSelected=可以选择
#ChooseCardEffect.java #ChooseCardEffect.java
lblSelectCreatureWithTotalPowerLessOrEqualTo=选择一些生物其力量合小于或等于 lblChoose=选择
lblTotalPower=总力量 lblSelectCreatureWithTotalPowerLessOrEqualTo=选择一些生物其力量只和需小于或等于{0}
lblTotalPowerNum=总力量:{0}
lblCancelChooseConfirm=取消选择? lblCancelChooseConfirm=取消选择?
#ChooseCardNameEffect.java #ChooseCardNameEffect.java
lblChooseACardName=选择一个牌名 lblChooseACardName=选择一个牌名
lblChooseA=选择一个 lblChooseASpecificCard=选择一个{0}牌名
lblCardName=牌名 lblPlayerPickedChosen={0}选取了{1}
lblPicked=选取
#ChooseColorEffect.java #ChooseColorEffect.java
lblChooseAColor=选择一个颜色 lblChooseAColor=选择一个颜色
lblChoose=选择 lblAtLastChooseNumColors=选择{0}或更多颜色
lblOrMore=或更多 lblChooseSpecifiedRangeColors=选择{0}到{1}种颜色
#ChooseDirectionEffect.java #ChooseDirectionEffect.java
lblLeftClockwise=左(顺时针) lblLeftClockwise=左(顺时针)
lblRightAntiClockwise=右(逆时针) lblRightAntiClockwise=右(逆时针)
@@ -1681,7 +1677,7 @@ lblChooseDirection=选择一个方向
lblChooseOne=选择一个 lblChooseOne=选择一个
#ChooseNumberEffect.java #ChooseNumberEffect.java
lblChooseNumber=选择一个数 lblChooseNumber=选择一个数
lblChose=已选择 lblPlayerChoseNum={0}已选择{1}
#ChoosePlayerEffect.java #ChoosePlayerEffect.java
lblChoosePlayer=选择一个牌手 lblChoosePlayer=选择一个牌手
#ChooseSourceEffect.java #ChooseSourceEffect.java
@@ -1692,26 +1688,24 @@ lblReveals=展示
lblWinsClash=比点赢了 lblWinsClash=比点赢了
lblLosesClash=比点输了 lblLosesClash=比点输了
#CloneEffect.java #CloneEffect.java
lblDoYouWantCopy=你想要复制 lblDoYouWantCopy=你想要复制{0}吗?
#ControlExchangeVariantEffect.java #ControlExchangeVariantEffect.java
lblChooseCards=选择牌 lblChooseCards=选择牌
#CopyPermanentEffect.java #CopyPermanentEffect.java
lblCopyPermanentConfirm=复制这个永久物? lblCopyPermanentConfirm=复制这个永久物?
lblDefender=守军 lblDefender=守军
#CopySpellAbilityEffect.java #CopySpellAbilityEffect.java
lblDoyouWantCopyTheSpell=你想要复制这个咒语 lblDoyouWantCopyTheSpell=你想要复制咒语{0}吗?
lblSelectMultiSpellCopyToStack=选择%d个咒语复制到堆叠 lblSelectMultiSpellCopyToStack=选择{0}个咒语复制到堆叠
lblSelectASpellCopy=选择一个咒语进行复制 lblSelectASpellCopy=选择一个咒语进行复制
#CounterEffect.java #CounterEffect.java
lblRemoveDestination=要删除的目标 lblRemoveDestination=要删除的目标
#CountersMoveEffect.java #CountersMoveEffect.java
lblChooseTakeCountersCard=选择牌获得%s指示物自 lblChooseTakeCountersCard=选择牌获得{0}指示物自
lblTakeHowMany=获得几个 lblTakeHowManyTargetCounterFromCard={1}获得多少个{0}指示物?
lblCountersFrom=指示物 lblChooseCardToGetCountersFrom=选择牌从{1}获取{0}指示物
lblChooseCardToGet=选择牌获得 lblPutHowManyTargetCounterOnCard=放置多少个{0}指示物到{1}
lblPutHowMany=放置几个 lblTakeHowManyTargetCounters=获得多少{0}指示物?
lblCountersOn=指示物在上面
lblCounters=指示物
#CountersProliferateEffect.java #CountersProliferateEffect.java
lblChooseProliferateTarget=选择任意数量的永久物和或牌手进行增殖 lblChooseProliferateTarget=选择任意数量的永久物和或牌手进行增殖
#CountersPutEffect.java #CountersPutEffect.java
@@ -1719,41 +1713,40 @@ lblChooseACreatureWithLeastToughness=选择防御力最小的生物
lblSelectCounterTypeAddTo=选择指示物类型以添加到 lblSelectCounterTypeAddTo=选择指示物类型以添加到
lblHowManyCounters=多少指示物? lblHowManyCounters=多少指示物?
lblChooseAnOpponent=选择一个对手 lblChooseAnOpponent=选择一个对手
lblDoYouWantPutTargetP1P1CountersOn=你想要放置%d个+1+1指示物到 lblDoYouWantPutTargetP1P1CountersOnCard=你想要放置{0}个+1+1指示物到{1}吗?
#CountersPutOrRemoveEffect.java #CountersPutOrRemoveEffect.java
lblSelectCounterTypeToAddOrRemove=选择要添加或移除的指示物的类型 lblSelectCounterTypeToAddOrRemove=选择要添加或移除的指示物的类型
lblWhatToDoWithTargetCounter=如何使用'%s'指示物 lblWhatToDoWithTargetCounter=如何使用'{0}'指示物
#CountersRemoveEffect.java #CountersRemoveEffect.java
lblAllCounters=所有指示物 lblAllCounters=所有指示物
lblACounters=一个指示物 lblACounters=一个指示物
lblChooseCardtoTakeTargetCounters=选择牌要获得%s指示物 lblCounters=指示物
lblSelectRemoveCountersNumberOfTarget=选择要删除的%s指示物的数量 lblChooseCardsToTakeTargetCounters=选择牌要获得{0}指示物自
lblSelectRemoveCountersNumberOfTarget=选择要删除的{0}指示物的数量
lblSelectCountersTypeToRemove=选择要删除的指示物类型 lblSelectCountersTypeToRemove=选择要删除的指示物类型
#DamageDealEffect.java #DamageDealEffect.java
lblDoyouWantDealTargetDamageTo=你想造成%d伤害给 lblDoyouWantDealTargetDamageToTarget=你想对{1}造成{0}伤害吗?
#DigEffect.java #DigEffect.java
lblWouldYouLikeProceedWithOptionalAbility=你想继续以下可选的异能吗 lblWouldYouLikeProceedWithOptionalAbility=你想继续以下可选的异能吗
lblChooseACardToLeaveTargetLibraryTop=选择一张牌离开%s的牌库顶 lblChooseACardToLeaveTargetLibraryTop=选择一张牌离开{0}的牌库顶
lblChooseACardLeaveTarget=选择一张牌离开%s lblChooseACardLeaveTarget=选择一张牌离开{0}的{1}
lblChooseCardsPutInto=选择牌放到 lblChooseCardsPutIntoZone=选择牌放到{0}
lblChooseCardPutOnTargetLibarayBottom=选择牌放到%s的牌库底 lblChooseCardPutOnTargetLibarayBottom=选择牌放到{0}的牌库底
lblChooseCardPutOnTargetLibarayTop=选择牌放到%s的牌库顶 lblChooseCardPutOnTargetLibarayTop=选择牌放到}0的牌库顶
lblPlayerPickedCardFrom={0}选择了牌自
lblNoValidCards=没有有效的牌 lblNoValidCards=没有有效的牌
lblThisCard=这张牌
lblTheseCards=这些牌
#DigUntilEffect.java #DigUntilEffect.java
lblDoYouWantDigYourLibrary=你想要挖掘你的牌库吗? lblDoYouWantDigYourLibrary=你想要挖掘你的牌库吗?
lblDoYouWantPutCardTo=你想把这张牌放到 lblDoYouWantPutCardToZone=你想把这张牌放到{0}吗?
#DiscardEffect.java #DiscardEffect.java
lblWouldYouLikeRandomDiscardTargetCard=你想随机弃掉%d张牌吗 lblWouldYouLikeRandomDiscardTargetCard=你想随机弃掉%d张牌吗
lblHasChosen=选择了 lblPlayerHasChosenCardsFrom={0}选择了牌自
#DrawEffect.java #DrawEffect.java
lblDoYouWantDraw=你想抓 lblDoYouWantDrawCards=你想抓{0}张牌吗?
lblHowMayCardDoYouWantDraw=你想怎么抓牌? lblHowMayCardDoYouWantDraw=你想怎么抓牌?
#EncodeEffect.java #EncodeEffect.java
lblAndEncodeOntoAYouControlCreature=赋码到你控制的生物? lblDoYouWantExileCardAndEncodeOntoYouCreature=你想放逐{0}并将之赋码到你控制的生物
lblChooseACreatureYouControlToEncode=选择你控制的生物进场赋码 lblChooseACreatureYouControlToEncode=选择你控制的生物进场赋码
lblEncoding=已赋码
#ExploreEffect.java #ExploreEffect.java
lblRevealedForExplore=勘察所展示 lblRevealedForExplore=勘察所展示
lblPutThisCardToYourGraveyard=把这张牌放到你的坟墓场? lblPutThisCardToYourGraveyard=把这张牌放到你的坟墓场?
@@ -1768,25 +1761,25 @@ lblLifeTotal=生命总数
#ManaEffect.java #ManaEffect.java
lblDoYouWantAddMana=你想增加法术力吗? lblDoYouWantAddMana=你想增加法术力吗?
lblSelectManaProduce=选择要产出的法术力 lblSelectManaProduce=选择要产出的法术力
lblChooseSingleColorFrom=选择一种颜色 lblChooseSingleColorFromTarget=从{0}选择一种颜色
#ManifestEffect.java #ManifestEffect.java
lblChooseCardToManifest=选择要显化的牌 lblChooseCardToManifest=选择要显化的牌
#MeldEffect.java #MeldEffect.java
lblChooseCardToMeld=选择要融合的牌 lblChooseCardToMeld=选择要融合的牌
#MillEffect.java #MillEffect.java
lblDoYouWantPutLibraryCardsTo=你想要从牌库中把牌放入 lblDoYouWantPutLibraryCardsTo=你想要从牌库中把牌放入{0}吗?
#MultiplePilesEffect.java #MultiplePilesEffect.java
lblChooseCardsInPile=选择一堆卡 lblChooseCardsInTargetPile=选择堆{0}中的牌?
#PeekAndRevealEffect.java #PeekAndRevealEffect.java
lblRevealingCardFrom=展示牌自 lblRevealingCardFrom=展示牌自
lblRevealCardToOtherPlayers=其他玩家展示牌? lblRevealCardToOtherPlayers=其他玩家展示牌?
#PlayEffect.java #PlayEffect.java
lblChooseUpTo=选择最多 lblChooseUpTo=最多选择
lblSelectCardToPlay=选择要使用的牌 lblSelectCardToPlay=选择要使用的牌
#ProtectAllEffect.java #ProtectAllEffect.java
lblChooseAProtection=选择一个保护 lblChooseAProtection=选择一个保护
#PumpEffect.java #PumpEffect.java
lblApplyPumpTo=将pump用于 lblApplyPumpToTarget=将pump用于{0}
#RearrangeTopOfLibraryEffect.java #RearrangeTopOfLibraryEffect.java
lblDoyouWantShuffleTheLibrary=你想要洗这个牌库吗? lblDoyouWantShuffleTheLibrary=你想要洗这个牌库吗?
#RepeatEffect.java #RepeatEffect.java
@@ -1794,22 +1787,20 @@ lblDoYouWantRepeatProcessAgain=你是否想再次重复这个过程?
#RevealHandEffect.java #RevealHandEffect.java
lblDoYouWantRevealYourHand=你想展示你的手牌吗? lblDoYouWantRevealYourHand=你想展示你的手牌吗?
#RollPlanarDiceEffect.java #RollPlanarDiceEffect.java
lblRolled=已掷骰 lblPlayerRolledResult={0}掷骰结果为{1}
#SacrificeEffect.java #SacrificeEffect.java
lblDoYouWantPayEcho=你想支付返响费用 lblDoYouWantPayEcho=你想支付返响费用
lblPayEcho=支付返响费用 lblPayEcho=支付返响费用
lblDoYouWantSacrifice=你想牺牲吗? lblDoYouWantSacrifice=你想牺牲吗?
lblSacrifice=牺牲
lblDestroys=消灭
#SetStateEffect.java #SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=面朝下的牌不能面朝上 lblFaceDownCardCantTurnFaceUp=面朝下的牌不能面朝上
#ShuffleEffect.java #ShuffleEffect.java
lblHaveTargetShuffle=%s洗牌了吗? lblHaveTargetShuffle={0}洗牌了吗?
#SurveilEffect.java #SurveilEffect.java
lblDoYouWantSurveil=你想刺探吗? lblDoYouWantSurveil=你想刺探吗?
#TapOrUntapAllEffect.java #TapOrUntapAllEffect.java
lblPermanents=永久物 lblPermanents=永久物
lblTapOrUntap=横置或重置 lblTapOrUntapTarget=横置还是重置{0}
#TwoPilesEffect.java #TwoPilesEffect.java
lblSelectCardForFaceDownPile=选择一个面朝下的堆 lblSelectCardForFaceDownPile=选择一个面朝下的堆
lblDivideCardIntoTwoPiles=将牌分为两堆 lblDivideCardIntoTwoPiles=将牌分为两堆
@@ -1847,3 +1838,17 @@ lblRepeatAddCard=重复上一张添加的牌
lblRemoveFromGame=从游戏中删除牌 lblRemoveFromGame=从游戏中删除牌
lblRiggedRoll=触发时空骰 lblRiggedRoll=触发时空骰
lblWalkTo=时空换入 lblWalkTo=时空换入
#ZoneType.java
lblHandZone=手牌
lblLibraryZone=牌库
lblGraveyardZone=坟场
lblBattlefieldZone=战场
lblExileZone=放逐区
lblFlashbackZone=返照
lblCommandZone=指挥官区
lblStackZone=堆叠
lblSideboardZone=备牌
lblAnteZone=赌注牌区
lblSchemeDeckZone=魔王套牌
lblPlanarDeckZone=时空套牌
lblNoneZone=

View File

@@ -25,7 +25,6 @@ import forge.match.input.InputPayMana;
import forge.match.input.InputPayManaOfCostPayment; import forge.match.input.InputPayManaOfCostPayment;
import forge.match.input.InputPayManaSimple; import forge.match.input.InputPayManaSimple;
import forge.match.input.InputSelectCardsFromList; import forge.match.input.InputSelectCardsFromList;
import forge.util.Lang;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.collect.FCollectionView; import forge.util.collect.FCollectionView;
import forge.util.gui.SGuiChoose; import forge.util.gui.SGuiChoose;
@@ -312,7 +311,7 @@ public class HumanPlay {
return false; return false;
} }
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantPay") + " " + amount + " " + Localizer.getInstance().getMessage("lblLife") + "?" + orString, sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantPayNLife", String.valueOf(amount)) + orString, sourceAbility)) {
return false; return false;
} }
@@ -332,11 +331,15 @@ public class HumanPlay {
return false; return false;
} }
StringBuilder sb = new StringBuilder(Localizer.getInstance().getMessage("lblDoyouWantTo") + " "); String message = null;
sb.append(res.contains(p) ? "" : Localizer.getInstance().getMessage("lblLetThatPlayer") + " "); if (res.contains(p)) {
sb.append(Localizer.getInstance().getMessage("lblDraw") + " ").append(Lang.nounWithAmount(amount, " " + Localizer.getInstance().getMessage("lblCard"))).append("?").append(orString); message = Localizer.getInstance().getMessage("lblDoYouWantLetThatPlayerDrawNCardOrDoAction", String.valueOf(amount), orString);
}
else {
message = Localizer.getInstance().getMessage("lblDoYouWantDrawNCardOrDoAction", String.valueOf(amount), orString);
}
if (!p.getController().confirmPayment(part, sb.toString(), sourceAbility)) { if (!p.getController().confirmPayment(part, message, sourceAbility)) {
return false; return false;
} }
@@ -370,7 +373,7 @@ public class HumanPlay {
final int amount = getAmountFromPart(part, source, sourceAbility); final int amount = getAmountFromPart(part, source, sourceAbility);
final CardCollectionView list = p.getCardsIn(ZoneType.Library); final CardCollectionView list = p.getCardsIn(ZoneType.Library);
if (list.size() < amount) { return false; } if (list.size() < amount) { return false; }
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lbllblDoYouWantMill") + " " + amount + " " + Localizer.getInstance().getMessage("lblCard") + (amount == 1 ? "" : "s") + "?" + orString, sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantMillNCardsOrDoAction", String.valueOf(amount), orString), sourceAbility)) {
return false; return false;
} }
CardCollectionView listmill = p.getCardsIn(ZoneType.Library, amount); CardCollectionView listmill = p.getCardsIn(ZoneType.Library, amount);
@@ -378,7 +381,7 @@ public class HumanPlay {
} }
else if (part instanceof CostFlipCoin) { else if (part instanceof CostFlipCoin) {
final int amount = getAmountFromPart(part, source, sourceAbility); final int amount = getAmountFromPart(part, source, sourceAbility);
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantFlip") + " " + amount + " " + Localizer.getInstance().getMessage("lblCoin") + (amount == 1 ? "" : "s") + "?" + orString, sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantFlipNCoinOrDoAction", String.valueOf(amount), orString), sourceAbility)) {
return false; return false;
} }
final int n = FlipCoinEffect.getFilpMultiplier(p); final int n = FlipCoinEffect.getFilpMultiplier(p);
@@ -412,7 +415,7 @@ public class HumanPlay {
} }
if (!mandatory) { if (!mandatory) {
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantRemove") + " " + Lang.nounWithAmount(amount, counterType.getName() + " " + Localizer.getInstance().getMessage("lblCounterOfPointer")) + " " + Localizer.getInstance().getMessage("lblFrom") + " " + source + "?",sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantRemoveNTargetTypeCounterFromCard", String.valueOf(amount), counterType.getName(), source), sourceAbility)) {
return false; return false;
} }
} }
@@ -432,7 +435,7 @@ public class HumanPlay {
if (allCounters < amount) { return false; } if (allCounters < amount) { return false; }
if (!mandatory) { if (!mandatory) {
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantRemoveCounters") + " " + part.getDescriptiveType() + " ?",sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantRemoveCountersFromCard", part.getDescriptiveType()), sourceAbility)) {
return false; return false;
} }
} }
@@ -492,8 +495,7 @@ public class HumanPlay {
return false; return false;
} }
if (from == ZoneType.Library) { if (from == ZoneType.Library) {
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantExile") + " " + nNeeded + if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantExileNCardsFromYourLibrary", String.valueOf(nNeeded)), sourceAbility)) {
" " + Localizer.getInstance().getMessage("lblCard") + (nNeeded == 1 ? "" : "s") + " " + Localizer.getInstance().getMessage("lblFromYourLibrary"), sourceAbility)) {
return false; return false;
} }
list = list.subList(0, nNeeded); list = list.subList(0, nNeeded);
@@ -502,7 +504,7 @@ public class HumanPlay {
// replace this with input // replace this with input
CardCollection newList = new CardCollection(); CardCollection newList = new CardCollection();
for (int i = 0; i < nNeeded; i++) { for (int i = 0; i < nNeeded; i++) {
final Card c = p.getGame().getCard(SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblExileFrom") + " " + from, CardView.getCollection(list))); final Card c = p.getGame().getCard(SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblExileFromZone", from.getTranslatedName()), CardView.getCollection(list)));
if (c == null) { if (c == null) {
return false; return false;
} }
@@ -538,7 +540,7 @@ public class HumanPlay {
payableZone.add(player); payableZone.add(player);
} }
} }
Player chosen = controller.getGame().getPlayer(SGuiChoose.oneOrNone(TextUtil.concatNoSpace(Localizer.getInstance().getMessage("lblPutCardFromWhose") + " ", from.toString(), "?"), PlayerView.getCollection(payableZone))); Player chosen = controller.getGame().getPlayer(SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblPutCardFromWhoseZone", from.getTranslatedName()), PlayerView.getCollection(payableZone)));
if (chosen == null) { if (chosen == null) {
return false; return false;
} }
@@ -629,7 +631,7 @@ public class HumanPlay {
} }
if (!mandatory) { if (!mandatory) {
if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantSpend") + " " + Lang.nounWithAmount(amount, counterType.getName() + " " + Localizer.getInstance().getMessage("lblCounterOfPointer")) + "?",sourceAbility)) { if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantSpendNTargetTypeCounter", String.valueOf(amount), counterType.getName()), sourceAbility)) {
return false; return false;
} }
} }
@@ -675,7 +677,7 @@ public class HumanPlay {
if (list.size() < amount) { return false; } // unable to pay (not enough cards) if (list.size() < amount) { return false; } // unable to pay (not enough cards)
InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, amount, amount, list, sourceAbility); InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, amount, amount, list, sourceAbility);
inp.setMessage(Localizer.getInstance().getMessage("lblSelectOfCardsTo") + " %d " + cpl.getDescriptiveType() + " " + Localizer.getInstance().getMessage("lblCardsTo") + " " + actionName); inp.setMessage(Localizer.getInstance().getMessage("lblSelectNSpecifyTypeCardsToAction", cpl.getDescriptiveType(), actionName));
inp.setCancelAllowed(true); inp.setCancelAllowed(true);
inp.showAndWait(); inp.showAndWait();

View File

@@ -246,10 +246,10 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
if (newMain != null) { if (newMain != null) {
String errMsg; String errMsg;
if (newMain.size() < deckMinSize) { if (newMain.size() < deckMinSize) {
errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooFewCardsMainDeck").replace("%s", String.valueOf(deckMinSize))); errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooFewCardsMainDeck", String.valueOf(deckMinSize)));
} else { } else {
errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooManyCardsSideboard").replace("%s", String.valueOf(sbMax))); errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooManyCardsSideboard", String.valueOf(sbMax)));
} }
getGui().showErrorDialog(errMsg, localizer.getMessage("lblInvalidDeck")); getGui().showErrorDialog(errMsg, localizer.getMessage("lblInvalidDeck"));
} }
@@ -313,7 +313,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
public Integer announceRequirements(final SpellAbility ability, final String announce, public Integer announceRequirements(final SpellAbility ability, final String announce,
final boolean canChooseZero) { final boolean canChooseZero) {
final int min = canChooseZero ? 0 : 1; final int min = canChooseZero ? 0 : 1;
return getGui().getInteger(localizer.getMessage("lblChooseAnnounceFor").replace("%s", announce).replace("%name", ability.getHostCard().getName()) , min, return getGui().getInteger(localizer.getMessage("lblChooseAnnounceForCard", announce, ability.getHostCard().getName()) , min,
Integer.MAX_VALUE, min + 9); Integer.MAX_VALUE, min + 9);
} }
@@ -336,14 +336,16 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
return CardCollection.EMPTY; return CardCollection.EMPTY;
} }
final StringBuilder builder = new StringBuilder(localizer.getMessage("lblSelectOfCardsTo") + " "); String inpMessage = null;
if (min == 0) { if (min == 0) {
builder.append(localizer.getMessage("lblUpTo") + " "); inpMessage = localizer.getMessage("lblSelectUpToNumTargetToAction", message, action);
}
else {
inpMessage = localizer.getMessage("lblSelectNumTargetToAction", message, action);
} }
builder.append("%d ").append(message).append("(s) " + localizer.getMessage("lblTo") + " ").append(action).append(".");
final InputSelectCardsFromList inp = new InputSelectCardsFromList(this, min, max, valid, sa); final InputSelectCardsFromList inp = new InputSelectCardsFromList(this, min, max, valid, sa);
inp.setMessage(builder.toString()); inp.setMessage(inpMessage);
inp.setCancelAllowed(min == 0); inp.setCancelAllowed(min == 0);
inp.showAndWait(); inp.showAndWait();
return new CardCollection(inp.getSelected()); return new CardCollection(inp.getSelected());
@@ -654,17 +656,25 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override @Override
public Player chooseStartingPlayer(final boolean isFirstGame) { public Player chooseStartingPlayer(final boolean isFirstGame) {
if (game.getPlayers().size() == 2) { if (game.getPlayers().size() == 2) {
String prompt = String.format( String prompt = null;
isFirstGame ? localizer.getMessage("lblYouHaveWonTheCoinToss") : localizer.getMessage("lblYouLostTheLastGame"), if (isFirstGame) {
player.getName()); prompt = localizer.getMessage("lblYouHaveWonTheCoinToss", player.getName());
}
else {
prompt = localizer.getMessage("lblYouLostTheLastGame", player.getName());
}
prompt += "\n\n" + localizer.getMessage("lblWouldYouLiketoPlayorDraw"); prompt += "\n\n" + localizer.getMessage("lblWouldYouLiketoPlayorDraw");
final InputConfirm inp = new InputConfirm(this, prompt, localizer.getMessage("lblPlay"), localizer.getMessage("lblDraw")); final InputConfirm inp = new InputConfirm(this, prompt, localizer.getMessage("lblPlay"), localizer.getMessage("lblDraw"));
inp.showAndWait(); inp.showAndWait();
return inp.getResult() ? this.player : this.player.getOpponents().get(0); return inp.getResult() ? this.player : this.player.getOpponents().get(0);
} else { } else {
String prompt = String.format( String prompt = null;
isFirstGame ? localizer.getMessage("lblYouHaveWonTheCoinToss") : localizer.getMessage("lblYouLostTheLastGame"), if (isFirstGame) {
player.getName()); prompt = localizer.getMessage("lblYouHaveWonTheCoinToss", player.getName());
}
else {
prompt = localizer.getMessage("lblYouLostTheLastGame", player.getName());
}
prompt += "\n\n" + localizer.getMessage("lblWhoWouldYouLiketoStartthisGame"); prompt += "\n\n" + localizer.getMessage("lblWhoWouldYouLiketoStartthisGame");
final InputSelectEntitiesFromList<Player> input = new InputSelectEntitiesFromList<>(this, 1, 1, final InputSelectEntitiesFromList<Player> input = new InputSelectEntitiesFromList<>(this, 1, 1,
new FCollection<>(game.getPlayersInTurnOrder())); new FCollection<>(game.getPlayersInTurnOrder()));
@@ -678,7 +688,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
public CardCollection orderBlockers(final Card attacker, final CardCollection blockers) { public CardCollection orderBlockers(final Card attacker, final CardCollection blockers) {
final CardView vAttacker = CardView.get(attacker); final CardView vAttacker = CardView.get(attacker);
getGui().setPanelSelection(vAttacker); getGui().setPanelSelection(vAttacker);
return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor").replace("%s", vAttacker.toString()), localizer.getMessage("lblDamagedFirst"), return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor", vAttacker.toString()), localizer.getMessage("lblDamagedFirst"),
CardView.getCollection(blockers), vAttacker)); CardView.getCollection(blockers), vAttacker));
} }
@@ -703,7 +713,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final CardView vAttacker = CardView.get(attacker); final CardView vAttacker = CardView.get(attacker);
getGui().setPanelSelection(vAttacker); getGui().setPanelSelection(vAttacker);
return game.getCardList(getGui().insertInList( return game.getCardList(getGui().insertInList(
localizer.getMessage("lblChooseBlockerAfterWhichToPlaceAttackert").replace("%s", vAttacker.toString()), localizer.getMessage("lblChooseBlockerAfterWhichToPlaceAttackert", vAttacker.toString()),
CardView.get(blocker), CardView.getCollection(oldBlockers))); CardView.get(blocker), CardView.getCollection(oldBlockers)));
} }
@@ -711,7 +721,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
public CardCollection orderAttackers(final Card blocker, final CardCollection attackers) { public CardCollection orderAttackers(final Card blocker, final CardCollection attackers) {
final CardView vBlocker = CardView.get(blocker); final CardView vBlocker = CardView.get(blocker);
getGui().setPanelSelection(vBlocker); getGui().setPanelSelection(vBlocker);
return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor").replace("%s", vBlocker.toString()), localizer.getMessage("lblDamagedFirst"), return game.getCardList(getGui().order(localizer.getMessage("lblChooseDamageOrderFor", vBlocker.toString()), localizer.getMessage("lblDamagedFirst"),
CardView.getCollection(attackers), vBlocker)); CardView.getCollection(attackers), vBlocker));
} }
@@ -723,9 +733,9 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override @Override
public void reveal(final List<CardView> cards, final ZoneType zone, final PlayerView owner, String message) { public void reveal(final List<CardView> cards, final ZoneType zone, final PlayerView owner, String message) {
if (StringUtils.isBlank(message)) { if (StringUtils.isBlank(message)) {
message = localizer.getMessage("lblLookingCardIn") + " {player's} " + zone.name().toLowerCase(); message = localizer.getMessage("lblLookCardInPlayerZone", "{player's}", zone.getTranslatedName().toLowerCase());
} else { } else {
message += "{player's} " + zone.name().toLowerCase(); message += localizer.getMessage("lblPlayerZone", "{player's}", zone.getTranslatedName().toLowerCase());
} }
final String fm = MessageUtil.formatMessage(message, getLocalPlayerView(), owner); final String fm = MessageUtil.formatMessage(message, getLocalPlayerView(), owner);
if (!cards.isEmpty()) { if (!cards.isEmpty()) {
@@ -733,7 +743,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
getGui().reveal(fm, cards); getGui().reveal(fm, cards);
endTempShowCards(); endTempShowCards();
} else { } else {
getGui().message(MessageUtil.formatMessage(localizer.getMessage("lblThereNoCardIn") + " {player's} " + zone.name().toLowerCase(), getGui().message(MessageUtil.formatMessage(localizer.getMessage("lblThereNoCardInPlayerZone", "{player's}", zone.getTranslatedName().toLowerCase()),
player, owner), fm); player, owner), fm);
} }
} }
@@ -809,7 +819,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
tempShowCard(c); tempShowCard(c);
getGui().setCard(view); getGui().setCard(view);
boolean result = false; boolean result = false;
result = InputConfirm.confirm(this, view, TextUtil.concatNoSpace(localizer.getMessage("lblPut") + " ", view.toString(), " " + localizer.getMessage("lblOnTheTopLibraryOrGraveyard")), result = InputConfirm.confirm(this, view, localizer.getMessage("lblPutCardsOnTheTopLibraryOrGraveyard", view.toString()),
true, ImmutableList.of(localizer.getMessage("lblLibrary"), localizer.getMessage("lblGraveyard"))); true, ImmutableList.of(localizer.getMessage("lblLibrary"), localizer.getMessage("lblGraveyard")));
if (result) { if (result) {
toTop = topN; toTop = topN;
@@ -841,7 +851,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
getGui().setCard(c.getView()); getGui().setCard(c.getView());
boolean result = false; boolean result = false;
result = InputConfirm.confirm(this, view, localizer.getMessage("lblPutCardOnTopOrBottomLibrary").replace("%s", view.toString()), result = InputConfirm.confirm(this, view, localizer.getMessage("lblPutCardOnTopOrBottomLibrary", view.toString()),
true, ImmutableList.of(localizer.getMessage("lblTop"), localizer.getMessage("lblBottom"))); true, ImmutableList.of(localizer.getMessage("lblTop"), localizer.getMessage("lblBottom")));
endTempShowCards(); endTempShowCards();
@@ -1003,7 +1013,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
return super.hasAllTargets(); return super.hasAllTargets();
} }
}; };
target.setMessage(localizer.getMessage("lblSelectNCardsToDiscardUnlessDiscarduType").replace("%s", uType)); target.setMessage(localizer.getMessage("lblSelectNCardsToDiscardUnlessDiscarduType", uType));
target.showAndWait(); target.showAndWait();
return new CardCollection(target.getSelected()); return new CardCollection(target.getSelected());
} }
@@ -1019,8 +1029,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final List<String> options = Lists.newArrayList(); final List<String> options = Lists.newArrayList();
for (int i = 0; i < manaChoices.size(); i++) { for (int i = 0; i < manaChoices.size(); i++) {
final Mana m = manaChoices.get(i); final Mana m = manaChoices.get(i);
options.add(TextUtil.concatNoSpace(String.valueOf(1 + i), ". ", MagicColor.toLongString(m.getColor()), options.add(localizer.getMessage("lblNColorManaFromCard", String.valueOf(1 + i), MagicColor.toLongString(m.getColor()), m.getSourceCard().toString()));
" " + localizer.getMessage("lblManaFrom") + " ", m.getSourceCard().toString()));
} }
final String chosen = getGui().one(localizer.getMessage("lblPayManaFromManaPool"), options); final String chosen = getGui().one(localizer.getMessage("lblPayManaFromManaPool"), options);
final String idx = TextUtil.split(chosen, '.')[0]; final String idx = TextUtil.split(chosen, '.')[0];
@@ -1044,9 +1053,9 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
sortCreatureTypes(types); sortCreatureTypes(types);
} }
if (isOptional) { if (isOptional) {
return getGui().oneOrNone(localizer.getMessage("lblChooseATargetType").replace("%s", kindOfType.toLowerCase()), types); return getGui().oneOrNone(localizer.getMessage("lblChooseATargetType", kindOfType.toLowerCase()), types);
} }
return getGui().one(localizer.getMessage("lblChooseATargetType").replace("%s", kindOfType.toLowerCase()), types); return getGui().one(localizer.getMessage("lblChooseATargetType", kindOfType.toLowerCase()), types);
} }
// sort creature types such that those most prevalent in player's deck are // sort creature types such that those most prevalent in player's deck are
@@ -1317,7 +1326,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
} }
}; };
final String message = localizer.getMessage("lblCleanupPhase") + "\n" final String message = localizer.getMessage("lblCleanupPhase") + "\n"
+ localizer.getMessage("lblSelectCardsToDiscardHandDownMaximum").replace("%d", String.valueOf(nDiscard)).replace("%max", String.valueOf(max)); + localizer.getMessage("lblSelectCardsToDiscardHandDownMaximum", String.valueOf(nDiscard), String.valueOf(max));
inp.setMessage(message); inp.setMessage(message);
inp.setCancelAllowed(false); inp.setCancelAllowed(false);
inp.showAndWait(); inp.showAndWait();
@@ -1486,8 +1495,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
game.getTracker().freeze(); // refreeze if the tracker was frozen prior to this update game.getTracker().freeze(); // refreeze if the tracker was frozen prior to this update
} }
final List<SpellAbilityView> choices = new ArrayList<>(spellViewCache.keySet()); final List<SpellAbilityView> choices = new ArrayList<>(spellViewCache.keySet());
final String modeTitle = TextUtil.concatNoSpace(sa.getActivatingPlayer().toString(), " " + localizer.getMessage("lblActivated") + " ", final String modeTitle = localizer.getMessage("PlayerActivatedCardChooseMode", sa.getActivatingPlayer().toString(), sa.getHostCard().toString());
sa.getHostCard().toString(), " - " + localizer.getMessage("lblChooseAMode"));
final List<AbilitySub> chosen = Lists.newArrayListWithCapacity(num); final List<AbilitySub> chosen = Lists.newArrayListWithCapacity(num);
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {
SpellAbilityView a; SpellAbilityView a;
@@ -1770,7 +1778,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override @Override
public void revealAnte(final String message, final Multimap<Player, PaperCard> removedAnteCards) { public void revealAnte(final String message, final Multimap<Player, PaperCard> removedAnteCards) {
for (final Player p : removedAnteCards.keySet()) { for (final Player p : removedAnteCards.keySet()) {
getGui().reveal(message + " " + localizer.getMessage("lblFrom") + " " + Lang.getPossessedObject(MessageUtil.mayBeYou(player, p), localizer.getMessage("lblDeck")), getGui().reveal(localizer.getMessage("lblActionFromPlayerDeck", message, Lang.getPossessedObject(MessageUtil.mayBeYou(player, p), "")),
ImmutableList.copyOf(removedAnteCards.get(p))); ImmutableList.copyOf(removedAnteCards.get(p)));
} }
} }
@@ -2356,11 +2364,21 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
private void addCardToZone(ZoneType zone, final boolean repeatLast, final boolean noTriggers) { private void addCardToZone(ZoneType zone, final boolean repeatLast, final boolean noTriggers) {
final ZoneType targetZone = repeatLast ? lastAddedZone : zone; final ZoneType targetZone = repeatLast ? lastAddedZone : zone;
String zoneStr = targetZone != ZoneType.Battlefield ? localizer.getMessage("lblIn") + " " + targetZone.name().toLowerCase() String message = null;
: noTriggers ? localizer.getMessage("lblOnTheBattlefield") : localizer.getMessage("lblOnTheStackOrInPlay"); if (targetZone != ZoneType.Battlefield) {
message = localizer.getMessage("lblPutCardInWhichPlayerZone", targetZone.getTranslatedName().toLowerCase());
}
else {
if (noTriggers) {
message = localizer.getMessage("lblPutCardInWhichPlayerBattlefield");
}
else {
message = localizer.getMessage("lblPutCardInWhichPlayerPlayOrStack");
}
}
final Player p = repeatLast ? lastAddedPlayer final Player p = repeatLast ? lastAddedPlayer
: game.getPlayer(getGui().oneOrNone(localizer.getMessage("lblPutCard") + " " + zoneStr + " " + localizer.getMessage("lblForWhichPlayer"), : game.getPlayer(getGui().oneOrNone(message,
PlayerView.getCollection(game.getPlayers()))); PlayerView.getCollection(game.getPlayers())));
if (p == null) { if (p == null) {
return; return;
@@ -2391,7 +2409,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
lastSummoningSickness = true; lastSummoningSickness = true;
} else { } else {
lastSummoningSickness = getGui().confirm(forgeCard.getView(), lastSummoningSickness = getGui().confirm(forgeCard.getView(),
TextUtil.concatWithSpace(localizer.getMessage("lblShould"), forgeCard.toString(), localizer.getMessage("lblAffectedWithSummoningSickness"))); localizer.getMessage("lblCardShouldBeSummoningSicknessConfirm", forgeCard.toString()));
} }
} }
} }
@@ -2440,8 +2458,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
} }
} else if (targetZone == ZoneType.Library) { } else if (targetZone == ZoneType.Library) {
if (!repeatLast) { if (!repeatLast) {
lastTopOfTheLibrary = getGui().confirm(forgeCard.getView(), lastTopOfTheLibrary = getGui().confirm(forgeCard.getView(), localizer.getMessage("lblCardShouldBeAddedToLibraryTopOrBottom", forgeCard.toString()),
TextUtil.concatWithSpace(localizer.getMessage("lblShould"), forgeCard.toString(), localizer.getMessage("lblBeAddedToLibraryTopOrBottom")), true, Arrays.asList(localizer.getMessage("lblTop"), localizer.getMessage("lblBottom"))); true, Arrays.asList(localizer.getMessage("lblTop"), localizer.getMessage("lblBottom")));
} }
if (lastTopOfTheLibrary) { if (lastTopOfTheLibrary) {
game.getAction().moveToLibrary(forgeCard, null); game.getAction().moveToLibrary(forgeCard, null);