From 2d7e88a8c2a6c1025383d0173d60a11b306304fc Mon Sep 17 00:00:00 2001 From: Lyu Zong-Hong Date: Fri, 23 Apr 2021 11:00:34 +0900 Subject: [PATCH] Update in-game text and also English and Japanese localization --- .../game/ability/effects/CharmEffect.java | 2 +- .../main/java/forge/game/keyword/Keyword.java | 12 +++---- .../StaticAbilityContinuous.java | 2 +- .../filters/CardCMCRangeFilter.java | 2 +- .../itemmanager/filters/CardCMCFilter.java | 2 +- forge-gui/res/languages/en-US.properties | 32 +++++++++---------- forge-gui/res/languages/ja-JP.properties | 18 +++++------ .../match/input/InputSelectTargets.java | 6 ++-- .../planarconquest/ConquestUtil.java | 8 ++--- 9 files changed, 42 insertions(+), 42 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java index b101be270ff..7ec25a53304 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java @@ -103,7 +103,7 @@ public class CharmEffect extends SpellAbilityEffect { if (limit) { int limitNum = AbilityUtils.calculateAmount(source, sa.getParam("ActivationLimit"), sa); if (limitNum == 1) { - sb.append(". Activate this ability only once each turn."); + sb.append(". Activate only once each turn."); } else { sb.append(". Additional code needed in CharmEffect."); } diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index c667e75101e..3f5bed4a1b9 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -34,7 +34,7 @@ public enum Keyword { BLOODTHIRST("Bloodthirst", KeywordWithAmount.class, false, "If an opponent was dealt damage this turn, this creature enters the battlefield with {%d:+1/+1 counter} on it."), BUSHIDO("Bushido", KeywordWithAmount.class, false, "Whenever this creature blocks or becomes blocked, it gets +%1$d/+%1$d until end of turn."), BUYBACK("Buyback", KeywordWithCost.class, false, "You may pay an additional %s as you cast this spell. If you do, put it into your hand instead of your graveyard as it resolves."), - CASCADE("Cascade", SimpleKeyword.class, false, "When you cast this spell, exile cards from the top of your library until you exile a nonland card whose converted mana cost is less than this spell's converted mana cost. You may cast that spell without paying its mana cost if its converted mana cost is less than this spell's converted mana cost. Then put all cards exiled this way that weren't cast on the bottom of your library in a random order."), + CASCADE("Cascade", SimpleKeyword.class, false, "When you cast this spell, exile cards from the top of your library until you exile a nonland card whose mana value is less than this spell's mana value. You may cast that spell without paying its mana cost if its mana value is less than this spell's mana value. Then put all cards exiled this way that weren't cast on the bottom of your library in a random order."), CHAMPION("Champion", KeywordWithType.class, false, "When this enters the battlefield, sacrifice it unless you exile another %s you control. When this leaves the battlefield, that card returns to the battlefield."), CHANGELING("Changeling", SimpleKeyword.class, true, "This card is every creature type."), CIPHER("Cipher", SimpleKeyword.class, true, "Then you may exile this spell card encoded on a creature you control. Whenever that creature deals combat damage to a player, its controller may cast a copy of the encoded card without paying its mana cost."), @@ -56,7 +56,7 @@ public enum Keyword { DREDGE("Dredge", KeywordWithAmount.class, false, "If you would draw a card, instead you may put exactly {%d:card} from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card."), ECHO("Echo", KeywordWithCost.class, false, "At the beginning of your upkeep, if this permanent came under your control since the beginning of your last upkeep, sacrifice it unless you pay %s."), EMBALM("Embalm", KeywordWithCost.class, false, "%s, Exile this card from your graveyard: Create a token that's a copy of this card, except it's white, it has no mana cost, and it's a Zombie in addition to its other types. Embalm only as a sorcery."), - EMERGE("Emerge", KeywordWithCost.class, false, "You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost."), + EMERGE("Emerge", KeywordWithCost.class, false, "You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's mana value."), ENCHANT("Enchant", KeywordWithType.class, false, "Target a %s as you cast this. This card enters the battlefield attached to that %s."), ENCORE("Encore", KeywordWithCost.class, false, "%s, Exile this card from your graveyard: For each opponent, create a token copy that attacks that opponent this turn if able. They gain haste. Sacrifice them at the beginning of the next end step. Activate only as a sorcery."), ENTWINE("Entwine", KeywordWithCost.class, true, "You may choose all modes of this spell instead of just one. If you do, you pay an additional %s."), @@ -142,7 +142,7 @@ public enum Keyword { SKULK("Skulk", SimpleKeyword.class, true, "This creature can't be blocked by creatures with greater power."), SCAVENGE("Scavenge", KeywordWithCost.class, false, "%s, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery."), SOULBOND("Soulbond", SimpleKeyword.class, true, "You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them."), - SOULSHIFT("Soulshift", KeywordWithAmount.class, false, "When this creature dies, you may return target Spirit card with converted mana cost %d or less from your graveyard to your hand."), + SOULSHIFT("Soulshift", KeywordWithAmount.class, false, "When this creature dies, you may return target Spirit card with mana value %d or less from your graveyard to your hand."), SPECTACLE("Spectacle", KeywordWithCost.class, false, "You may cast this spell for its spectacle cost rather than its mana cost if an opponent lost life this turn."), SPLICE("Splice", KeywordWithCostAndType.class, false, "As you cast an %2$s spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell."), SPLIT_SECOND("Split second", SimpleKeyword.class, true, "As long as this spell is on the stack, players can't cast other spells or activate abilities that aren't mana abilities."), @@ -153,10 +153,10 @@ public enum Keyword { SUSPEND("Suspend", Suspend.class, false, "Rather than cast this card from your hand, you may pay %s and exile it with {%d:time counter} on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost."), TOTEM_ARMOR("Totem armor", SimpleKeyword.class, true, "If enchanted permanent would be destroyed, instead remove all damage marked on it and destroy this Aura."), TRAMPLE("Trample", SimpleKeyword.class, true, "This creature can deal excess combat damage to the player or planeswalker it's attacking."), - TRANSFIGURE("Transfigure", KeywordWithCost.class, false, "%s, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and put that card onto the battlefield. Then shuffle your library. Transfigure only as a sorcery."), - TRANSMUTE("Transmute", KeywordWithCost.class, false, "%s, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery."), + TRANSFIGURE("Transfigure", KeywordWithCost.class, false, "%s, Sacrifice this creature: Search your library for a creature card with the same mana value as this creature and put that card onto the battlefield, then shuffle. Transfigure only as a sorcery."), + TRANSMUTE("Transmute", KeywordWithCost.class, false, "%s, Discard this card: Search your library for a card with the same mana value as this card, reveal it, and put it into your hand, then shuffle. Transmute only as a sorcery."), TRIBUTE("Tribute", KeywordWithAmount.class, false, "As this creature enters the battlefield, an opponent of your choice may put {%d:+1/+1 counter} on it."), - TYPECYCLING("TypeCycling", KeywordWithCostAndType.class, false, "%s, Discard this card: Search your library for a %s card, reveal it, put it into your hand, then shuffle your library."), + TYPECYCLING("TypeCycling", KeywordWithCostAndType.class, false, "%s, Discard this card: Search your library for a %s card, reveal it, put it into your hand, then shuffle."), UNDAUNTED("Undaunted", SimpleKeyword.class, false, "This spell costs {1} less to cast for each opponent."), UNDYING("Undying", SimpleKeyword.class, false, "When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it."), UNEARTH("Unearth", KeywordWithCost.class, false, "%s: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery."), diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index 629b54081a2..2d435b4f920 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -275,7 +275,7 @@ public final class StaticAbilityContinuous { for (Card c : definedCards) { final int cmc = c.getCMC(); String y = (input.replace(" from EachCMCAmongDefined", ":Card.cmcEQ" - + (cmc) + ":Protection from converted mana cost " + (cmc))); + + (cmc) + ":Protection from mana value " + (cmc))); if (!newKeywords.contains(y)) { newKeywords.add(y); } diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java index e0ce8e56f13..7d921f415a2 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardCMCRangeFilter.java @@ -24,7 +24,7 @@ public class CardCMCRangeFilter extends ValueRangeFilter { @Override protected String getCaption() { - return "CMC"; + return "Mana Value"; } @Override diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java index 387dbd69c9b..2166262d712 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardCMCFilter.java @@ -21,7 +21,7 @@ public class CardCMCFilter extends ValueRangeFilter { @Override protected String getCaption() { - return "CMC"; + return "Mana Value"; } @Override diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 64956de1e91..8704ce0a225 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -431,7 +431,7 @@ lblCommanderDesc=Each player has a legendary "General" card which can be cast at lblOathbreaker=Oathbreaker lblOathbreakerDesc=Each player has a Planeswalker card as their "Oathbreaker" which can be cast at any time and determines deck colors. Each player also has a signature spell that can be cast when their Oathbreaker is on the battlefield. lblTinyLeaders=Tiny Leaders -lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4. +lblTinyLeadersDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have mana value less than 4. lblBrawl=Brawl lblBrawlDesc=Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Only cards legal in Standard may be used. lblPlaneswalker=Planeswalker @@ -779,13 +779,13 @@ lblEnchantments=Enchantments lblPlaneswalkers=Planeswalkers lblInstants=Instants lblSorceries=Sorceries -lblCCMC0=Cards with CMC 0 -lblCCMC1=Cards with CMC 1 -lblCCMC2=Cards with CMC 2 -lblCCMC3=Cards with CMC 3 -lblCCMC4=Cards with CMC 4 -lblCCMC5=Cards with CMC 5 -lblCCMC6orMore=Cards with CMC 6+ +lblCCMC0=Cards with mana value 0 +lblCCMC1=Cards with mana value 1 +lblCCMC2=Cards with mana value 2 +lblCCMC3=Cards with mana value 3 +lblCCMC4=Cards with mana value 4 +lblCCMC5=Cards with mana value 5 +lblCCMC6orMore=Cards with mana value 6+ lblWhitedecks=White decks lblBluedecks=Blue decks lblBlackdecks=Black decks @@ -895,7 +895,7 @@ lblQuestWorld=Quest World lblSets=Sets lblTypes=Types lblConvertedManaCosts=Converted mana -lblCMCRange=CMC Range +lblCMCRange=Mana Value Range lblPowerRange=Power Range lblToughnessRange=Toughness Range lblFoil=Foil @@ -919,8 +919,8 @@ lblPrompt=Prompt lblGameSetup=Game Setup #ColumnDef.java lblAIStatus=AI Status -lblCMC=CMC -ttCMC=CMC +lblCMC=Mana Value +ttCMC=Mana Value lblCN=CN ttCN=Collector Number Order ttColor=Color @@ -2139,12 +2139,12 @@ lblSubtype=Subtype lblGenericCost=Generic Cost lblManaCost=Mana Cost lblFirstPrinting=First Printing -lblAverageCMC=Average CMC +lblAverageCMC=Average Mana Value lblMainDeck=Main Deck lblMainDeckSize=Main Deck Size lblSideboardSize=Sideboard Size lblOrigin=Origin -lblDeckAverageCMC=Deck Average CMC +lblDeckAverageCMC=Deck Average Mana Value lblDeckContents=Deck Contents lblDeckSize=Deck Size lblBuyPrice=Buy Price @@ -2475,8 +2475,8 @@ lblRemainingDraws=REMAINING DRAWS lblTotalCards=Total cards lblTotalManaCost=Total mana cost lblAverageManaCost=Average mana cost -lblCardByColorTypeCMC=CARDS BY COLOR, TYPE AND CMC: -lblBreakdownOfColorTypeCMC=Breakdown of cards by color, type and CMC +lblCardByColorTypeCMC=CARDS BY COLOR, TYPE AND MANA VALUE: +lblBreakdownOfColorTypeCMC=Breakdown of cards by color, type and mana value lblColoredManaSymbolsINManaCost=COLORED MANA SYMBOLS IN MANA COST: lblAmountOfManaSymbolsInManaCostOfCards=Amount of mana symbols in mana cost of cards lblMulticolorCardCount=Multicolor Card Count @@ -2498,7 +2498,7 @@ lblInstantCardCount=Instant Card Count lblLandCardCount=Land Card Count lblPlaneswalkerCardCount=Planeswalker Card Count lblSorceryCardCount=Sorcery Card Count -lblCMCNCardCount=CMC {0} Card Count +lblCMCNCardCount=Mana Value {0} Card Count #FFileChooser.java lblNewFolder=New Folder lblInvalidFolder=Invalid Folder diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 3202aabf180..f03dfc795fa 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -778,13 +778,13 @@ lblEnchantments=エンチャントのみ表示 lblPlaneswalkers=プレインズウォーカーのみ表示 lblInstants=インスタントのみ表示 lblSorceries=ソーサリーのみ表示 -lblCCMC0=CMC 0のカードのみ表示 -lblCCMC1=CMC 1のカードのみ表示 -lblCCMC2=CMC 2のカードのみ表示 -lblCCMC3=CMC 3のカードのみ表示 -lblCCMC4=CMC 4のカードのみ表示 -lblCCMC5=CMC 5のカードのみ表示 -lblCCMC6orMore=CMC 6以上のカードのみ表示 +lblCCMC0=マナ総量 0のカードのみ表示 +lblCCMC1=マナ総量 1のカードのみ表示 +lblCCMC2=マナ総量 2のカードのみ表示 +lblCCMC3=マナ総量 3のカードのみ表示 +lblCCMC4=マナ総量 4のカードのみ表示 +lblCCMC5=マナ総量 5のカードのみ表示 +lblCCMC6orMore=マナ総量 6以上のカードのみ表示 lblWhitedecks=白デッキ lblBluedecks=青デッキ lblBlackdecks=黒デッキ @@ -918,8 +918,8 @@ lblPrompt=プロンプト lblGameSetup=ゲームのセットアップ #ColumnDef.java lblAIStatus=AIステータス -lblCMC=CMC -ttCMC=CMC +lblCMC=マナ総量 +ttCMC=マナ総量 lblCN=CN ttCN=コレクター番号順 ttColor=色 diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java index cd6ff2324e7..35c9d5c6d14 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java @@ -210,7 +210,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { soFar += card.getCMC(); } if (soFar > maxTotalCMC) { - showMessage(sa.getHostCard() + " - Cannot target this card (CMC limit exceeded)"); + showMessage(sa.getHostCard() + " - Cannot target this card (mana value limit exceeded)"); return false; } } @@ -260,7 +260,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { } } - // If all cards must have different CMC + // If all cards must have different mana values if (tgt.isDifferentCMC()) { final List targetedCMCs = new ArrayList<>(); for (final GameObject o : targetDepth.keySet()) { @@ -270,7 +270,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { } } if (targetedCMCs.contains(card.getCMC())) { - showMessage(sa.getHostCard() + " - Cannot target this card (must have different CMC)"); + showMessage(sa.getHostCard() + " - Cannot target this card (must have different mana values)"); return false; } } diff --git a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java index 262ae6a52b9..b3f7cb03778 100644 --- a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java @@ -280,10 +280,10 @@ public class ConquestUtil { RARE (FSkinProp.IMG_PW_BADGE_RARE, new RarityFilter(EnumSet.of(CardRarity.Rare, CardRarity.Special, CardRarity.MythicRare)), "Rare"), MYTHIC (FSkinProp.IMG_PW_BADGE_MYTHIC, new RarityFilter(EnumSet.of(CardRarity.MythicRare)), "Mythic Rare (100%)"), - CMC_LOW (FSkinProp.IMG_CMC_LOW, new CMCFilter(0, 3), "CMC 0-3"), - CMC_LOW_MID (FSkinProp.IMG_CMC_LOW_MID, new CMCFilter(2, 5), "CMC 2-5"), - CMC_MID_HIGH (FSkinProp.IMG_CMC_MID_HIGH, new CMCFilter(4, 7), "CMC 4-7"), - CMC_HIGH (FSkinProp.IMG_CMC_HIGH, new CMCFilter(6, -1), "CMC 6+"); + CMC_LOW (FSkinProp.IMG_CMC_LOW, new CMCFilter(0, 3), "Mana Value 0-3"), + CMC_LOW_MID (FSkinProp.IMG_CMC_LOW_MID, new CMCFilter(2, 5), "Mana Value 2-5"), + CMC_MID_HIGH (FSkinProp.IMG_CMC_MID_HIGH, new CMCFilter(4, 7), "Mana Value 4-7"), + CMC_HIGH (FSkinProp.IMG_CMC_HIGH, new CMCFilter(6, -1), "Mana Value 6+"); private final FSkinProp skinProp; private final Predicate predicate;