Merge remote-tracking branch 'remotes/core/master' into newBranch

This commit is contained in:
Anthony Calosa
2019-09-25 12:26:10 +08:00
13 changed files with 1066 additions and 245 deletions

View File

@@ -190,8 +190,10 @@ public abstract class VCardDisplayArea extends VDisplayArea implements ActivateH
@Override
public void setSelectedIndex(int index) {
//just scroll card into view
final CardAreaPanel cardPanel = CardAreaPanel.get(orderedCards.get(index));
scrollIntoView(cardPanel);
if (index < orderedCards.size()) {
final CardAreaPanel cardPanel = CardAreaPanel.get(orderedCards.get(index));
scrollIntoView(cardPanel);
}
}
@Override

View File

@@ -8,4 +8,4 @@ T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ Tri
SVar:TrigPump:DB$Pump | Defined$ Self | NumAtt$ +1 | NumDef$ +1
DeckHints:Ability$LifeGain
SVar:Picture:http://www.wizards.com/global/images/magic/general/malakir_familiar.jpg
Oracle:Flying, deahtouch\nWhenever you gain life, Malakir Familiar gets +1/+1 until end of turn.
Oracle:Flying, deathtouch\nWhenever you gain life, Malakir Familiar gets +1/+1 until end of turn.

View File

@@ -2,8 +2,8 @@ Name:Belle of the Brawl
ManaCost:2 B
Types:Creature Human Knight
PT:3/2
K:Menance
K:Menace
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME attacks, other Knights you control get +1/+0 until end of turn.
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Knight.YouCtrl+Other | NumAtt$ 1
DeckHints:Type$Knight
Oracle:Menance\nWhenever Belle of the Brawl attacks, other Knights you control get +1/+0 until end of turn.
Oracle:Menace\nWhenever Belle of the Brawl attacks, other Knights you control get +1/+0 until end of turn.

View File

@@ -0,0 +1,543 @@
[metadata]
Name=MTGO Grixis Cube September 2019 (540 cards)
[main]
Abbot of Keral Keep|ORI
Abrade|HOU
Academy Ruins|MMA
Agent of Treachery|M20
All Is Dust|UMA
Aminatou's Augury|C18
Ancestral Vision|IMA
Ancient Tomb|UMA
Anger of the Gods|IMA
Angrath's Rampage|WAR
Animate Dead|EMA
Arc Trail|SOM
Arcane Artisan|BBD
Arguel's Blood Fast|XLN
Aria of Flame|MH1
Ash Zealot|RTR
Augur of Bolas|MM3
Avalanche Riders|TSB
Badlands|VMA
Baleful Strix|EMA
Baral, Chief of Compliance|AER
Basalt Monolith|C15
Batterskull|NPH
Bedevil|RNA
Bedlam Reveler|EMN
Bitterblossom|UMA
Blackcleave Cliffs|SOM
Blast Zone|WAR
Blightsteel Colossus|MBS
Blink of an Eye|DOM
Blinkmoth Nexus|MM2
Blood Artist|EMA
Blood Crypt|RTR
Bloodghast|IMA
Bloodsoaked Champion|KTK
Bloodstained Mire|KTK
Bolas's Citadel|WAR
Bomat Courier|KLD
Braids, Cabal Minion|EMA
Brain Freeze|VMA
Brain Maggot|JOU
Brainstorm|A25
Buried Alive|UMA
Burning of Xinye|VMA
Burst Lightning|MM2
Cabal Ritual|VMA
Candelabra of Tawnos|AQ
Canyon Slough|AKH
Careful Study|ODY
Carrion Feeder|MH1
Cascade Bluffs|A25
Cast Down|DOM
Cathartic Reunion|KLD
Chain Lightning|EMA
Chainer's Edict|UMA
Chains of Mephistopheles|LG
Champion of Wits|HOU
Chandra, Acolyte of Flame|M20
Chandra, Awakened Inferno|M20
Chandra, Fire of Kaladesh|ORI
Chandra, Flamecaller|OGW
Chandra, Torch of Defiance|KLD
Charcoal Diamond|C14
Chart a Course|XLN
Chromatic Lantern|GRN
Chrome Mox|EMA
City of Traitors|TPR
Coalition Relic|A25
Coercive Portal|VMA
Coldsteel Heart|CSP
Collective Brutality|EMN
Commence the Endgame|WAR
Commit // Memory|AKH
Compulsive Research|MM3
Consecrated Sphinx|IMA
Corpse Dance|TPR
Counterspell|A25
Countersquall|UMA
Creeping Tar Pit|UMA
Crucible of Worlds|M19
Cruel Ultimatum|MM3
Crumbling Necropolis|MM3
Cryptbreaker|EMN
Cryptic Command|IMA
Crystal Vein|C14
Cut // Ribbons|AKH
Dack Fayden|EMA
Dack's Duplicate|VMA
Damnation|MM3
Daretti, Ingenious Iconoclast|CN2
Daretti, Scrap Savant|C14
Dark Confidant|MM2
Dark Petition|ORI
Dark Ritual|A25
Darkslick Shores|SOM
Darksteel Citadel|MM2
Darksteel Ingot|M14
Davriel, Rogue Shadowmage|WAR
Daze|EMA
Defense Grid|AER
Defile|MH1
Delver of Secrets|ISD
Demonic Tutor|UMA
Desperate Ritual|UMA
Devastating Summons|ROE
Dig Through Time|UMA
Dimir Signet|MM3
Dire Fleet Daredevil|RIX
Disallow|AER
Discovery // Dispersal|GRN
Dismember|MM2
Doom Whisperer|GRN
Dragonlord Silumgar|DTK
Dragonskull Summit|XLN
Drawn from Dreams|M20
Dread Wanderer|AKH
Dreadbore|RTR
Dreadhorde Arcanist|WAR
Dreadship Reef|COM
Dream Halls|TPR
Dreamstealer|HOU
Drill Bit|RNA
Drowned Catacomb|XLN
Duplicant|EMA
Duress|M19
Earthshaker Khenra|HOU
Echo of Eons|MH1
Eidolon of the Great Revel|A25
Eldrazi Obligator|OGW
Eldrazi Temple|MM2
Electrodominance|RNA
Electrolyze|IMA
Empty the Warrens|MMA
Emrakul, the Aeons Torn|UMA
Emrakul, the Promised End|EMN
Enclave Cryptologist|ROE
Endbringer|OGW
Entomb|UMA
Epochrasite|C14
Erebos, God of the Dead|THS
Everflowing Chalice|MM2
Exhume|USG
Expansion // Explosion|GRN
Experimental Frenzy|GRN
Fact or Fiction|EMA
Faithless Looting|UMA
Falkenrath Aristocrat|MM3
Falkenrath Gorger|SOI
Fatal Push|AER
Fellwar Stone|C15
Fetid Pools|AKH
Fiery Confluence|C15
Fiery Islet|MH1
Figure of Destiny|MMA
Filigree Familiar|KLD
Finale of Eternity|WAR
Finale of Promise|WAR
Finale of Revelation|WAR
Fire // Ice|UMA
Fire Diamond|C14
Fireblast|VMA
Firebolt|EMA
Firemind Vessel|WAR
Flame Slash|ROE
Flusterstorm|VMA
Forbid|TPR
Force of Negation|MH1
Force of Will|EMA
Force Spike|DDJ
Forked Bolt|ROE
Frantic Search|UMA
Frost Titan|M12
Fulminator Mage|UMA
Future Sight|EMA
Gatekeeper of Malakir|ZEN
Geralf's Messenger|DKA
Gifted Aetherborn|AER
Gilded Lotus|DOM
Gitaxian Probe|NPH
Glen Elendra Archmage|UMA
Glint-Nest Crane|KLD
Glorybringer|AKH
Go for the Throat|MBS
Goblin Bombardment|DDN
Goblin Bushwhacker|ZEN
Goblin Chainwhirler|DOM
Goblin Cratermaker|GRN
Goblin Dark-Dwellers|OGW
Goblin Electromancer|GRN
Goblin Engineer|MH1
Goblin Guide|MM3
Goblin Rabblemaster|M15
Goblin Ruinblaster|ZEN
Goblin Welder|C14
God-Eternal Kefnet|WAR
Gonti, Lord of Luxury|KLD
Goryo's Vengeance|UMA
Grand Architect|SOM
Grave Titan|M12
Gravecrawler|DKA
Graven Cairns|IMA
Gray Merchant of Asphodel|THS
Great Furnace|C14
Greater Gargadon|MMA
Grim Lavamancer|M12
Grim Monolith|UL
Griselbrand|MM3
Guardian Idol|IMA
Gutterbones|RNA
Hangarback Walker|ORI
Harbinger of the Tides|ORI
Hazoret the Fervent|AKH
Heart of Kiran|AER
Hedron Archive|BFZ
Hellrider|MM3
Hero's Downfall|THS
High Tide|VMA
Hordeling Outburst|A25
Hostage Taker|XLN
Hour of Devastation|HOU
Hydroblast|EMA
Hymn to Tourach|EMA
Hypnotic Specter|M10
Ichor Wellspring|C14
Ilharg, the Raze-Boar|WAR
Imperial Seal|P3
Impulse|VIS
Inferno Titan|M12
Inkwell Leviathan|EMA
Innocent Blood|EMA
Inquisition of Kozilek|MM3
Intuition|TPR
Ionize|GRN
Izzet Charm|MM3
Izzet Signet|MM3
Jace Beleren|M11
Jace, Architect of Thought|RTR
Jace, the Mind Sculptor|VMA
Jace, Vryn's Prodigy|ORI
Judith, the Scourge Diva|RNA
Kalitas, Traitor of Ghet|OGW
Kari Zev, Skyship Raider|AER
Karn Liberated|UMA
Karn, Scion of Urza|DOM
Keranos, God of Storms|JOU
Kess, Dissident Mage|MH1
Kitesail Freebooter|XLN
Knight of the Ebon Legion|M20
Kolaghan's Command|DTK
Koth of the Hammer|SOM
Kozilek, Butcher of Truth|UMA
Kozilek's Return|OGW
Kuldotha Forgemaster|SOM
Languish|ORI
Lashwrithe|C14
Lavaclaw Reaches|UMA
Legion Warboss|GRN
Light Up the Stage|RNA
Lightning Bolt|A25
Lightning Greaves|MRD
Lightning Mauler|AVR
Liliana of the Veil|UMA
Liliana, Death's Majesty|AKH
Liliana, Dreadhorde General|WAR
Liliana, Heretical Healer|ORI
Liliana, the Last Hope|EMN
Liliana's Triumph|WAR
Lion's Eye Diamond|VMA
Lodestone Golem|MM2
Looter il-Kor|TSP
Lotus Bloom|MMA
Lotus Petal|TPR
Magma Jet|MM3
Magus of the Wheel|A25
Magus of the Will|C16
Makeshift Mannequin|LRW
Mana Flare|4E
Mana Leak|IMA
Manamorphose|MMA
Manic Vandal|M12
Manifold Key|M20
Man-o'-War|A25
Massacre Wurm|MBS
Master of Etherium|ALA
Master of Waves|THS
Matter Reshaper|OGW
Memory Jar|VMA
Memory Lapse|EMA
Mesmeric Fiend|A25
Metalworker|UD
Meteor Golem|M20
Midnight Reaper|GRN
Mind Stone|IMA
Mind's Desire|VMA
Mindslaver|SOM
Miscalculation|ULG
Mishra's Factory|A25
Mission Briefing|GRN
Mizzium Mortars|MM3
Mizzix's Mastery|C15
Mogg War Marshal|EMA
Molten Rain|MM3
Molten Slagheap|C13
Moment of Craving|RIX
Monastery Swiftspear|IMA
Mox Diamond|TPR
Mox Opal|MM2
Mu Yanling, Sky Dancer|M20
Mulldrifter|MM2
Mutavault|M14
Myr Battlesphere|SOM
Myriad Landscape|A25
Mystic Confluence|C15
Mystic Forge|M20
Mystical Tutor|EMA
Narset, Parter of Veils|WAR
Necromancy|VIS
Negate|RIX
Never // Return|AKH
Nicol Bolas, Dragon-God|WAR
Nicol Bolas, Planeswalker|M13
Nicol Bolas, the Ravager|M19
Night's Whisper|EMA
Nightveil Specter|GTC
Niv-Mizzet, Parun|GRN
Notion Thief|DGM
Noxious Gearhulk|KLD
Nykthos, Shrine to Nyx|THS
Oona's Prowler|LRW
Ophiomancer|C13
Opt|DOM
Overmaster|TO
Pack Rat|RTR
Painful Truths|BFZ
Palladium Myr|IMA
Peat Bog|MM
Pentad Prism|HOP
Phantasmal Image|MM3
Phyrexian Arena|C15
Phyrexian Metamorph|NPH
Phyrexian Obliterator|A25
Phyrexian Revoker|M15
Pia and Kiran Nalaar|ORI
Pia Nalaar|KLD
Pilgrim's Eye|EMA
Pillage|A25
Pithing Needle|RTR
Plaguecrafter|GRN
Polluted Delta|KTK
Ponder|M12
Precursor Golem|MM2
Preordain|M11
Priest of Forgotten Gods|RNA
Prismatic Lens|UMA
Prismatic Vista|MH1
Prophetic Bolt|VMA
Pteramander|RNA
Putrid Imp|VMA
Pyretic Ritual|M11
Pyroblast|EMA
Pyroclasm|A25
Quicken|M14
Rain of Filth|US
Rakdos Cackler|RTR
Rakdos Signet|MM3
Rakdos's Return|RTR
Ral Zarek|DGM
Ral, Storm Conduit|WAR
Ral's Outburst|WAR
Ramunap Ruins|HOU
Ravenous Chupacabra|A25
Reality Smasher|OGW
Reanimate|UMA
Reckless Bushwhacker|OGW
Recurring Nightmare|TPR
Rekindling Phoenix|RIX
Release the Gremlins|AER
Relentless Dead|SOI
Relic of Progenitus|EMA
Remand|MM2
Repeal|IMA
Riftwing Cloudskate|MMA
Rishadan Port|A25
Risk Factor|GRN
Rite of Flame|CS
Rix Maadi Reveler|RNA
Ruinous Path|BFZ
Runaway Steam-Kin|GRN
Saheeli, Sublime Artificer|WAR
Sandstone Needle|MM
Saprazzan Skerry|MM
Sarkhan the Masterless|WAR
Scalding Tarn|MM3
Scavenger Grounds|HOU
Scheming Symmetry|M20
Scrapheap Scrounger|KLD
Scroll Rack|CM1
Search for Azcanta|XLN
Seasoned Pyromancer|MH1
Seat of the Synod|HOP
Seething Song|DDG
Sensei's Divining Top|EMA
Sentinel Tower|BBD
Serum Visions|MM3
Shallow Grave|MI
Shelldock Isle|LRW
Sheoldred, Whispering One|IMA
Shivan Reef|ORI
Show and Tell|USG
Shrine of Burning Rage|NPH
Siege-Gang Commander|DOM
Silumgar's Command|DTK
Simian Spirit Guide|A25
Sire of Insanity|DGM
Skullclamp|VMA
Sky Diamond|C14
Slavering Nulls|WWK
Sling-Gang Lieutenant|MH1
Smokestack|VMA
Smoldering Marsh|BFZ
Smuggler's Copter|KLD
Snapcaster Mage|UMA
Sneak Attack|EMA
Solemn Simulacrum|M12
Sorcerous Spyglass|XLN
Spell Pierce|MM3
Spellseeker|BBD
Spellskite|MM2
Spire of Industry|AER
Spirebluff Canal|KLD
Staff of Nin|M13
Star Compass|IMA
Steam Vents|GRN
Steel Hellkite|SOM
Stoke the Flames|M15
Stormblood Berserker|M12
Stratus Dancer|DTK
Strip Mine|VMA
Stromkirk Noble|ISD
Sulfur Falls|DOM
Sulfuric Vortex|EMA
Sulfurous Springs|10E
Sundering Titan|A25
Sunken Hollow|BFZ
Sunken Ruins|SHM
Supreme Will|HOU
Sweltering Suns|AKH
Sword of Fire and Ice|MMA
Sword of Sinew and Steel|MH1
Sygg, River Cutthroat|SHM
Talisman of Creativity|MH1
Talisman of Dominance|MR
Talisman of Indulgence|MR
Talrand, Sky Summoner|M13
Tamiyo, the Moon Sage|AVR
Tangle Wire|NMS
Tectonic Edge|C14
Teferi, Mage of Zhalfir|IMA
Tempest Djinn|DOM
Temple of Deceit|THS
Temple of Epiphany|M20
Temple of Malice|BNG
Tendrils of Agony|VMA
Terminate|MM3
Tezzeret the Seeker|MM2
Tezzeret, Agent of Bolas|MBS
Thassa, God of the Sea|THS
The Antiquities War|DOM
The Elderspell|WAR
The Eldest Reborn|DOM
The Scarab God|HOU
Theater of Horrors|RNA
Thief of Sanity|GRN
Thing in the Ice|SOI
Thirst for Knowledge|MMA
Thought Erasure|GRN
Thought Vessel|C15
Thought-Knot Seer|OGW
Thoughtseize|IMA
Thousand-Year Storm|GRN
Thran Dynamo|IMA
Through the Breach|UMA
Thundermaw Hellkite|IMA
Tidespout Tyrant|DIS
Time Spiral|US
Time Warp|TPR
Timetwister|VMA
To the Slaughter|SOI
Tolarian Academy|VMA
Torrential Gearhulk|KLD
Toxic Deluge|EMA
Trash for Treasure|MR
Treachery|UDS
Treasure Cruise|UMA
Treasure Map|XLN
Trinket Mage|SOM
True-Name Nemesis|C13
Turnabout|VMA
Tyrant's Scorn|WAR
Ugin, the Ineffable|WAR
Ugin, the Spirit Dragon|FRF
Ulamog, the Ceaseless Hunger|BFZ
Ultimate Price|DTK
Umezawa's Jitte|BOK
Underground River|10E
Underground Sea|VMA
Undermine|DDH
Upheaval|VMA
Urborg, Tomb of Yawgmoth|UMA
Urza, Lord High Artificer|MH1
Vampire Hexmage|CNS
Vampire Nighthawk|MM3
Vampiric Tutor|EMA
Vault of Whispers|HOP
Vedalken Shackles|MMA
Vendilion Clique|A25
Venser, Shaper Savant|MM3
Viashino Pyromancer|M19
Vilis, Broker of Blood|M20
Volcanic Island|VMA
Volrath's Stronghold|TPR
Vraska's Contempt|XLN
Walking Ballista|AER
Wandering Fumarole|OGW
Wasteland|EMA
Watery Grave|GRN
Wayfarer's Bauble|MM2
Wheel of Fortune|VMA
Whirler Rogue|ORI
Wildfire|MM2
Winter Orb|EMA
Worn Powerstone|EMA
Wretched Confluence|C15
Wurmcoil Engine|SOM
Yawgmoth, Thran Physician|MH1
Yawgmoth's Will|VMA
Young Pyromancer|UMA
Zealous Conscripts|MM3
Zulaport Cutthroat|A25
Zurgo Bellstriker|DTK

View File

@@ -0,0 +1,6 @@
Name:MTGO Grixis Cube September 2019 (540 cards)
DeckFile:MTGO Grixis Cube September 2019 (540 cards)
Singleton:True
Booster: 15 Any
NumPacks: 3

View File

@@ -373,17 +373,17 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
lblViewDeck=Zeige Deck
lblRandomDeck=Zufälliges Deck
lblRandomColors=Zufällige Farben
lblMustSelectGenerateNewDeck=You must select something before you can generate a new deck.
lblMustSelectGenerateNewDeck=Du mußt etwas auswählen, bevor du ein neues Deck erzeugst.
lblOK=OK
lblCannotEditDuplicateCustomDeck=cannot be edited directly. Would you like to duplicate %s for editing as a custom user deck?
lblDuplicateDeck=Duplicate Deck?
lblDuplicate=Duplicate
lblHowManyOpponents=How many opponents are you willing to face?
lblChooseAllowedDeckTypeOpponents=Choose allowed deck types for opponents
lblSelectOpponentDeck=Select Opponent's Deck
lblGenerateNewDeck=Generate New Deck
lblRandomTheme=Random Theme
lblTestDeck=Test Deck
lblCannotEditDuplicateCustomDeck=kann nicht geändert werden. Willst du %s kopieren, um es als eigenes Deck zu bearbeiten?
lblDuplicateDeck=Kopiere Deck?
lblDuplicate=Kopieren
lblHowManyOpponents=Mit wie vielen Gegner willst du es aufnehmen?
lblChooseAllowedDeckTypeOpponents=Wähle die erlaubten Decktypen für die Gegner
lblSelectOpponentDeck=Wähle das Deck des Gegners
lblGenerateNewDeck=Erzeuge ein neues Deck
lblRandomTheme=Zufälliges Deck
lblTestDeck=Teste Deck
#GameType.java
lblSealed=Sealed
lblDraft=Draft
@@ -981,98 +981,160 @@ lblCollection=Sammlung
lblCommanders=Komandeure
lblOathbreakers=Eidbrecher
#Forge.java
lblLoadingFonts=Lade Schriften...
lblLoadingCardTranslations=Lade Kartenübersetzungen...
lblFinishingStartup=Abschliessen...
lblLoadingFonts=Lade Schriftarten...
lblLoadingCardTranslations=Lade Kartenbersetzungen...
lblFinishingStartup=Letzte Vorbereitungen...
#LobbyScreen.java
lblMore=More...
lblLoadingNewGame=Loading new game...
lblSelectVariants=Select Variants
msgSelectAdeckBeforeReadying=Select a deck before readying!
lblMore=Mehr...
lblLoadingNewGame=Lade neues Spiel...
lblSelectVariants=Wähle Varianten
msgSelectAdeckBeforeReadying=Wähle vorher ein Deck!
#PlayerPanel
lblLoadingDeck=Loading Deck...
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
lblOathbreakerDeckRandomGenerated=Oathbreaker Deck: Random Generated Deck
lblTinyLeadersDeckRandomGenerated=Tiny Leaders Deck: Random Generated Deck
lblBrawlDeckRandomGenerated=Brawl Deck: Random Generated Deck
lblPlanarDeckRandomGenerated=Planar Deck: Random Generated Deck
lblVanguardAvatarRandom=Vanguard Avatar: Random
lblNotReady=Not Ready
lblLoadingDeck=Lade Deck...
lblSchemeDeckRandomGenerated=Verschwörungsdeck: Zufällig erzeugtes Deck
lblCommanderDeckRandomGenerated=Commander-Deck: Zufällig erzeugtes Deck
lblOathbreakerDeckRandomGenerated=Eidbrecher-Deck: Zufällig erzeugtes Deck
lblTinyLeadersDeckRandomGenerated=Kleine-Anführer-Deck: Zufällig erzeugtes Deck
lblBrawlDeckRandomGenerated=Brawl-Deck: Zufällig erzeugtes Deck
lblPlanarDeckRandomGenerated=Welten-Deck: Zufällig erzeugtes Deck
lblVanguardAvatarRandom=Vanguard-Avatar: Zufällig
lblNotReady=Nicht fertig
lblNormal=Normal
lblDevMode=Dev Mode
lblOathbreakerDeck=Oathbreaker Deck
lblTinyLeadersDeck=Tiny Leaders Deck
lblBrawlDeck=Brawl Deck
lblSelectDeckFor=Select Deck for %s
lblSelectCommanderDeckFor=Select Commander Deck for %s
lblSelectOathbreakerDeckFor=Select Oathbreaker Deck for %s
lblSelectTinyLeadersDeckFor=Select Tiny Leaders Deck for %s
lblSelectBrawlDeckFor=Select Brawl Deck for %s
lblSelectSchemeDeckFor=Select Scheme Deck for %s
lblSelectPlanarDeckFor=Select Planar Deck for %s
lblSelectVanguardFor=Select Vanguard for %s
lblMale=Male
lblFemale=Female
lblAny=Any
lblDevMode=Entw.Modus
lblOathbreakerDeck=Eidbrecher-Deck
lblTinyLeadersDeck=Kleine-Anführer-Deck
lblBrawlDeck=Brawl-Deck
lblSelectDeckFor=Wähle ein Deck für %s
lblSelectCommanderDeckFor=Wähle ein Commander-Deck für %s
lblSelectOathbreakerDeckFor=Wähle ein Eidbrecher-Deck für %s
lblSelectTinyLeadersDeckFor=Wähle ein Kleine-Anführer-Deck für %s
lblSelectBrawlDeckFor=Wähle ein Brawl-Deck für %s
lblSelectSchemeDeckFor=Wähle ein Verschwörungsdeck für %s
lblSelectPlanarDeckFor=Wähle ein Welten-Deck für %s
lblSelectVanguardFor=Wähle einen Vanguard-Avatar für %s
lblMale=Männlich
lblFemale=Weiblich
lblAny=Alle
lblFantasy=Fantasy
lblGeneric=Generic
#MatchController
lblChooseAbilityToPlay=Choose ability to play
lblSelected=Selected
#ItemManager
lblAdvancedSearch=Advanced Search
lblSort=Sort
lblResetFilters=Reset Filters
#AdvancedSearchFilter
lblEditExpression=Edit Expression
lblRemoveFilter=Remove Filter
#CardZoom
lblSwipeUpTo=Swipe up to %s
lblSwipeDownDetailView=Swipe down to switch to detail view
lblSwipeDownPictureView=Swipe down to switch to picture view
#VGameMenu
lblNoPlayerPriorityNoDeckListViewed=No player has priority at the moment, so deck list can't be viewed.
#FilesPage
lblFiles=Files
lblStorageLocations=Storage Locations
lblCardPicsLocation=Card Pics Location
lblDecksLocation=Decks Location
lblDataLocation=Data Location (e.g. Settings and Quests)
lblImageCacheLocation=Image Cache Location
lblRestartForgeMoveFilesNewLocation=You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.
lblRestartRequired=Restart Required
lblSelect=Select %s
#AddBasicLandsDialog
lblLandSet=Land Set
lblAddBasicLandsAutoSuggest=Add Basic Lands to %s\n(double-tap statistics to auto-suggest)
lblAssortedArt=Assorted Art
lblCardArt=Card Art %d
lblNonLandCount=%d non-lands
lblOldLandCount=%d lands
lblNewLandCount=%d added lands
lblNewTotalCount=%d cards
#FDeckImportDialog
lblImportLatestVersionCard=Import latest version of card
lblUseOnlySetsReleasedBefore=Use only sets released before:
lblUseOnlyCoreAndExpansionSets=Use only core and expansion sets
lblFollowingCardsCannotBeImported=The following cards cannot be imported due to misspelling, set restrictions, or not being in Forge yet:
lblImportRemainingCards=Import remaining cards?
lblNoKnownCardsOnClipboard=No known cards found on clipboard.\n\nCopy the decklist to the clipboard, then reopen this dialog.
#FDeckViewer
lblDeckListCopiedClipboard=Deck list for '%s' copied to clipboard.
#FSideboardDialog
lblUpdateMainFromSideboard=Update main deck from sideboard%s
#FVanguardChooser
lblRandomVanguard=Random Vanguard
#FOptionPane
lblYes=Yes
lblNo=No
#FSpinner
lblSelectANumber=Select a number
#FTextField
lblCut=Cut
lblCopy=Copy
lblPaste=Paste
#ListChooser
lblSearch=Search
lblGeneric=Divers
#MatchController.java
lblChooseAbilityToPlay=Wähle Fähigkeit
lblSelected=Gewählt
#ItemManager.java
lblAdvancedSearch=Erweiterte Suche
lblSort=Sortierung
lblResetFilters=Filter zurücksetzen
#AdvancedSearchFilter.java
lblEditExpression=Bearbeite Ausdruck
lblRemoveFilter=Entferne Filter
#CardZoom.java
lblSwipeUpTo=Wische hoch für %s
lblSwipeDownDetailView=Wische runter für Detailansicht
lblSwipeDownPictureView=Wische runter für Bildansicht
#VGameMenu.java
lblNoPlayerPriorityNoDeckListViewed=Kein Spieler hat Prioriät, daher keine Decklistenanzeige möglich.
#FilesPage.java
lblFiles=Dateien
lblStorageLocations=Speicherort
lblCardPicsLocation=Kartenbilder-Verz.
lblDecksLocation=Deck-Verz.
lblDataLocation=Daten-Verz.(Einst.u.Quests)
lblImageCacheLocation=Bild-Zwischenspeicher-Verz.
lblRestartForgeMoveFilesNewLocation=Forge muß neu gestartet werden. Bitte vorher sicherstellen, daß alle notwendigen Dateien sich am neuen Ort befinden.
lblRestartRequired=Neustart notwendig.
lblSelect=Wähle %s
#AddBasicLandsDialog.java
lblLandSet=Länder aus Set
lblAddBasicLandsAutoSuggest=Füge Standardländer zu %s hinzu.\n(Doppelklicke Statistik für Vorschlag)
lblAssortedArt=Div. Versionen
lblCardArt=Karte Vers.%d
lblNonLandCount=%d Nichtländer
lblOldLandCount=%d Länder
lblNewLandCount=%d hinzugefügte Länder
lblNewTotalCount=%d Karten
#FDeckImportDialog.java
lblImportLatestVersionCard=Importiere neueste Kartenversion
lblUseOnlySetsReleasedBefore=Nur Sets verwenden vor:
lblUseOnlyCoreAndExpansionSets=Nutze nur Haupt- u. Erweiterungssets
lblFollowingCardsCannotBeImported=Folgende Karten können nicht importiert werden, wegen Tippfehlern, Seteinschränkungen oder weil nicht in Forge:
lblImportRemainingCards=Verbleibende Karteen importieren?
lblNoKnownCardsOnClipboard=Keine Karten in der Zwischenablage gefunden.\n\nKopiere eine Deckliste in die Zwischenablage und versuche es erneut.
#FDeckViewer.java
lblDeckListCopiedClipboard=Deckliste von "%s" in Zwischenablage kopiert.
#FSideboardDialog.java
lblUpdateMainFromSideboard=Aktuallisiere %s aus dem Sideboard
#FVanguardChooser.java
lblRandomVanguard=Zufälliger Avatar
#FOptionPane.java
lblYes=Ja
lblNo=Nein
#FSpinner.java
lblSelectANumber=Wähle eine Zahl
#FTextField.java
lblCut=Ausschneiden
lblCopy=Kopieren
lblPaste=Einfügen
#ListChooser.java
lblSearch=Suche
#InputBase.java
lblPriority=Priorität
lblTurn=Zug
lblPhase=Phase
lblEmpty=Empty
lbltoResolve=to Resolve.
lblStormCount=Storm Count
#PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, you have won the coin toss.
lblYouLostTheLastGame=%s, you lost the last game.
lblWouldYouLiketoPlayorDraw=Would you like to play or draw?
lblWhoWouldYouLiketoStartthisGame=Who would you like to start this game? (Click on the portrait.)
lblPlay=Play
lblDraw=Draw
lblTooFewCardsMainDeck=Too few cards in your main deck (minimum %s), please make modifications to your deck again.
lblTooManyCardsSideboard=Too many cards in your sideboard (maximum %s), please make modifications to your deck again.
lblAssignCombatDamageWerentBlocked=Do you want to assign its combat damage as though it weren't blocked?
lblChosenCards=Chosen Cards
lblAttacker=Attacker
lblTriggeredby=Triggered by
lblChooseWhichCardstoReveal=Choose Which Cards to Reveal
lblChooseCardsActivateOpeningHandandOrder=Choose cards to activate from opening hand and their order
lblActivateFirst=Activate first
lblChooseOptionalCosts=Choose optional Costs
lblOptionalCosts=Optional Costs
lblDoYouWanttoScry=Do you want to scry?
lblChooseCardstoSpliceonto=Choose cards to Splice onto
lblDoNextActioninSequence=Do Next Action in Sequence
lblPleaseDefineanActionSequenceFirst=Please define an action sequence first.
lblRememberActionSequence=Remember Action Sequence
lblYouMustHavePrioritytoUseThisFeature=You must have priority to use this feature.
lblNameTheCard=Name the card
lblWhichPlayerShouldRoll=Which player should roll?
lblChooseResult=Choose result
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=The chosen card is not a permanent or can't exist independently on the battlefield.\nIf you'd like to cast a non-permanent spell, or if you'd like to cast a permanent spell and place it on stack, please use the Cast Spell/Play Land button.
lblError=Error
lblWinGame=Win Game
lblSetLifetoWhat=Set life to what?
lblSetLifeforWhichPlayer=Set life for which player
lblChoosePermanentstoTap=Choose permanents to tap
lblChoosePermanentstoUntap=Choose permanents to untap
lblWhichTypeofCounter=Which type of counter?
lblHowManyCounters=How many counters?
lblRemoveCountersFromWhichCard=Remove counters from which card?
lblAddCountersToWhichCard=Add counters to which card?
lblChooseaCard=Choose a card
lblNoPlayerPriorityDeckCantBeTutoredFrom=No player has priority at the moment, so their deck can't be tutored from.
lblNoPlayerPriorityGameStateCannotBeSetup=No player has priority at the moment, so game state cannot be setup.
lblErrorLoadingBattleSetupFile=Error loading battle setup file!
lblSelectCardstoAddtoYourDeck=Select cards to add to your deck
lblAddTheseToMyDeck=Add these to my deck
lblChooseaPile=Choose a pile
lblSelectOrderForSimultaneousAbilities=Select order for simultaneous abilities
lblReorderSimultaneousAbilities=Reorder simultaneous abilities
lblResolveFirst=Resolve first
lblMoveCardstoToporBbottomofLibrary=Move cards to top or bottom of library
lblSelectCardsToBeOutOnTheBottomOfYourLibrary=Select cards to be put on the bottom of your library
lblCardsToPutOnTheBottom=Cards to put on the bottom
lblArrangeCardsToBePutOnTopOfYourLibrary=Arrange cards to be put on top of your library
lblTopOfLibrary=Top of Library
lblSelectCardsToBePutIntoTheGraveyard=Select cards to be put into the graveyard
lblCardsToPutInTheGraveyard=Cards to put in the graveyard

View File

@@ -989,7 +989,7 @@ lblMore=More...
lblLoadingNewGame=Loading new game...
lblSelectVariants=Select Variants
msgSelectAdeckBeforeReadying=Select a deck before readying!
#PlayerPanel
#PlayerPanel.java
lblLoadingDeck=Loading Deck...
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
@@ -1017,23 +1017,23 @@ lblFemale=Female
lblAny=Any
lblFantasy=Fantasy
lblGeneric=Generic
#MatchController
#MatchController.java
lblChooseAbilityToPlay=Choose ability to play
lblSelected=Selected
#ItemManager
#ItemManager.java
lblAdvancedSearch=Advanced Search
lblSort=Sort
lblResetFilters=Reset Filters
#AdvancedSearchFilter
#AdvancedSearchFilter.java
lblEditExpression=Edit Expression
lblRemoveFilter=Remove Filter
#CardZoom
#CardZoom.java
lblSwipeUpTo=Swipe up to %s
lblSwipeDownDetailView=Swipe down to switch to detail view
lblSwipeDownPictureView=Swipe down to switch to picture view
#VGameMenu
#VGameMenu.java
lblNoPlayerPriorityNoDeckListViewed=No player has priority at the moment, so deck list can't be viewed.
#FilesPage
#FilesPage.java
lblFiles=Files
lblStorageLocations=Storage Locations
lblCardPicsLocation=Card Pics Location
@@ -1043,7 +1043,7 @@ lblImageCacheLocation=Image Cache Location
lblRestartForgeMoveFilesNewLocation=You'll need to restart Forge for this change to take effect. Be sure to move any necessary files to the new location before you do.
lblRestartRequired=Restart Required
lblSelect=Select %s
#AddBasicLandsDialog
#AddBasicLandsDialog.java
lblLandSet=Land Set
lblAddBasicLandsAutoSuggest=Add Basic Lands to %s\n(double-tap statistics to auto-suggest)
lblAssortedArt=Assorted Art
@@ -1052,27 +1052,89 @@ lblNonLandCount=%d non-lands
lblOldLandCount=%d lands
lblNewLandCount=%d added lands
lblNewTotalCount=%d cards
#FDeckImportDialog
#FDeckImportDialog.java
lblImportLatestVersionCard=Import latest version of card
lblUseOnlySetsReleasedBefore=Use only sets released before:
lblUseOnlyCoreAndExpansionSets=Use only core and expansion sets
lblFollowingCardsCannotBeImported=The following cards cannot be imported due to misspelling, set restrictions, or not being in Forge yet:
lblImportRemainingCards=Import remaining cards?
lblNoKnownCardsOnClipboard=No known cards found on clipboard.\n\nCopy the decklist to the clipboard, then reopen this dialog.
#FDeckViewer
#FDeckViewer.java
lblDeckListCopiedClipboard=Deck list for '%s' copied to clipboard.
#FSideboardDialog
#FSideboardDialog.java
lblUpdateMainFromSideboard=Update main deck from sideboard%s
#FVanguardChooser
#FVanguardChooser.java
lblRandomVanguard=Random Vanguard
#FOptionPane
#FOptionPane.java
lblYes=Yes
lblNo=No
#FSpinner
#FSpinner.java
lblSelectANumber=Select a number
#FTextField
#FTextField.java
lblCut=Cut
lblCopy=Copy
lblPaste=Paste
#ListChooser
lblSearch=Search
#ListChooser.java
lblSearch=Search
#InputBase.java
lblPriority=Priority
lblTurn=Turn
lblPhase=Phase
lblEmpty=Empty
lbltoResolve=to Resolve.
lblStormCount=Storm Count
#PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, you have won the coin toss.
lblYouLostTheLastGame=%s, you lost the last game.
lblWouldYouLiketoPlayorDraw=Would you like to play or draw?
lblWhoWouldYouLiketoStartthisGame=Who would you like to start this game? (Click on the portrait.)
lblPlay=Play
lblDraw=Draw
lblTooFewCardsMainDeck=Too few cards in your main deck (minimum %s), please make modifications to your deck again.
lblTooManyCardsSideboard=Too many cards in your sideboard (maximum %s), please make modifications to your deck again.
lblAssignCombatDamageWerentBlocked=Do you want to assign its combat damage as though it weren't blocked?
lblChosenCards=Chosen Cards
lblAttacker=Attacker
lblTriggeredby=Triggered by
lblChooseWhichCardstoReveal=Choose Which Cards to Reveal
lblChooseCardsActivateOpeningHandandOrder=Choose cards to activate from opening hand and their order
lblActivateFirst=Activate first
lblChooseOptionalCosts=Choose optional Costs
lblOptionalCosts=Optional Costs
lblDoYouWanttoScry=Do you want to scry?
lblChooseCardstoSpliceonto=Choose cards to Splice onto
lblDoNextActioninSequence=Do Next Action in Sequence
lblPleaseDefineanActionSequenceFirst=Please define an action sequence first.
lblRememberActionSequence=Remember Action Sequence
lblYouMustHavePrioritytoUseThisFeature=You must have priority to use this feature.
lblNameTheCard=Name the card
lblWhichPlayerShouldRoll=Which player should roll?
lblChooseResult=Choose result
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=The chosen card is not a permanent or can't exist independently on the battlefield.\nIf you'd like to cast a non-permanent spell, or if you'd like to cast a permanent spell and place it on stack, please use the Cast Spell/Play Land button.
lblError=Error
lblWinGame=Win Game
lblSetLifetoWhat=Set life to what?
lblSetLifeforWhichPlayer=Set life for which player
lblChoosePermanentstoTap=Choose permanents to tap
lblChoosePermanentstoUntap=Choose permanents to untap
lblWhichTypeofCounter=Which type of counter?
lblHowManyCounters=How many counters?
lblRemoveCountersFromWhichCard=Remove counters from which card?
lblAddCountersToWhichCard=Add counters to which card?
lblChooseaCard=Choose a card
lblNoPlayerPriorityDeckCantBeTutoredFrom=No player has priority at the moment, so their deck can't be tutored from.
lblNoPlayerPriorityGameStateCannotBeSetup=No player has priority at the moment, so game state cannot be setup.
lblErrorLoadingBattleSetupFile=Error loading battle setup file!
lblSelectCardstoAddtoYourDeck=Select cards to add to your deck
lblAddTheseToMyDeck=Add these to my deck
lblChooseaPile=Choose a pile
lblSelectOrderForSimultaneousAbilities=Select order for simultaneous abilities
lblReorderSimultaneousAbilities=Reorder simultaneous abilities
lblResolveFirst=Resolve first
lblMoveCardstoToporBbottomofLibrary=Move cards to top or bottom of library
lblSelectCardsToBeOutOnTheBottomOfYourLibrary=Select cards to be put on the bottom of your library
lblCardsToPutOnTheBottom=Cards to put on the bottom
lblArrangeCardsToBePutOnTopOfYourLibrary=Arrange cards to be put on top of your library
lblTopOfLibrary=Top of Library
lblSelectCardsToBePutIntoTheGraveyard=Select cards to be put into the graveyard
lblCardsToPutInTheGraveyard=Cards to put in the graveyard

View File

@@ -989,7 +989,7 @@ lblMore=Más...
lblLoadingNewGame=Cargando nueva partida...
lblSelectVariants=Selecciona Variants
msgSelectAdeckBeforeReadying=¡Selecciona un mazo antes de estar listo!
#PlayerPanel
#PlayerPanel.java
lblLoadingDeck=Cargando mazo...
lblSchemeDeckRandomGenerated=Scheme Deck: Random Generated Deck
lblCommanderDeckRandomGenerated=Commander Deck: Random Generated Deck
@@ -1017,23 +1017,23 @@ lblFemale=Mujer
lblAny=Cualquiera
lblFantasy=Fantasía
lblGeneric=Genérico
#MatchController
#MatchController.java
lblChooseAbilityToPlay=Elige la habilidad para jugar
lblSelected=Seleccionado
#ItemManager
#ItemManager.java
lblAdvancedSearch=Búsqueda Avanzada
lblSort=Ordenar
lblResetFilters=Reiniciar Filtros
#AdvancedSearchFilter
#AdvancedSearchFilter.java
lblEditExpression=Editar Expresión
lblRemoveFilter=Eliminar Filtro
#CardZoom
#CardZoom.java
lblSwipeUpTo=Desliza hacia arriba para %s
lblSwipeDownDetailView=Desliza hacia abajo para cambiar a la vista de detalle
lblSwipeDownPictureView=Desliza hacia abajo para cambiar a la vista de imagen
#VGameMenu
#VGameMenu.java
lblNoPlayerPriorityNoDeckListViewed=Ningún jugador tiene prioridad en este momento, por lo que la lista de mazos no se puede ver.
#FilesPage
#FilesPage.java
lblFiles=Archivos
lblStorageLocations=Ubicación del almacenamiento
lblCardPicsLocation=Ubicación de las Imágenes de las Cartas
@@ -1043,7 +1043,7 @@ lblImageCacheLocation=Ubicación de la Caché de imágenes
lblRestartForgeMoveFilesNewLocation=Necesitarás reiniciar Forge para que este cambio tenga efecto. Asegúrate de mover todos los archivos necesarios a la nueva ubicación antes de hacerlo.
lblRestartRequired=Reinicio Requerido
lblSelect=Seleccionar %s
#AddBasicLandsDialog
#AddBasicLandsDialog.java
lblLandSet=Conjunto de Tierras
lblAddBasicLandsAutoSuggest=Añadir Tierras Básicas a %s\n(para autosugerir toca dos veces en las estadísticas)
lblAssortedArt=Arte Variado
@@ -1052,27 +1052,89 @@ lblNonLandCount=%d no tierras
lblOldLandCount=%d tierras
lblNewLandCount=%d tierras añadidas
lblNewTotalCount=%d cartas
#FDeckImportDialog
#FDeckImportDialog.java
lblImportLatestVersionCard=Importar la última versión de la carta
lblUseOnlySetsReleasedBefore=Utilizar sólo las colecciones liberadas antes de:
lblUseOnlyCoreAndExpansionSets=Utiliza sólo sets core o de expansión
lblFollowingCardsCannotBeImported=Las siguientes cartas no pueden ser importadas debido a errores ortográficos, restricciones establecidas, o por no estar en Forge todavía:
lblImportRemainingCards=¿Importar las cartas restantes?
lblNoKnownCardsOnClipboard=No se han encontrado cartas conocidas en el portapapeles.\n\nCopia la lista del mazo en el portapapeles y, a continuación, vuelve a abrir este cuadro de diálogo.
#FDeckViewer
#FDeckViewer.java
lblDeckListCopiedClipboard=Lista de Mazo para '%s' copiada al portapapeles.
#FSideboardDialog
#FSideboardDialog.java
lblUpdateMainFromSideboard=Actualiza el mazo principal desde el banquillo%s
#FVanguardChooser
#FVanguardChooser.java
lblRandomVanguard=Vanguard Aleatorio
#FOptionPane
#FOptionPane.java
lblYes=
lblNo=No
#FSpinner
#FSpinner.java
lblSelectANumber=Selecciona un número
#FTextField
#FTextField.java
lblCut=Cortar
lblCopy=Copiar
lblPaste=Pegar
#ListChooser
lblSearch=Buscar
#ListChooser.java
lblSearch=Buscar
#InputBase.java
lblPriority=Prioridad
lblTurn=Turno
lblPhase=Fase
lblEmpty=Vacío
lbltoResolve=para Resolver.
lblStormCount=Recuento de Tormentas
#PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, has ganado el lanzamiento de la moneda.
lblYouLostTheLastGame=%s, perdiste la última partida.
lblWouldYouLiketoPlayorDraw=¿Quieres jugar o ceder?
lblWhoWouldYouLiketoStartthisGame=¿Quién te gustaría que empezara esta partida? (Haz clic en el retrato)
lblPlay=Jugar
lblDraw=Ceder
lblTooFewCardsMainDeck=Muy pocas cartas en tu mazo principal (mínimo %s), 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.
lblAssignCombatDamageWerentBlocked=¿Quieres asignar su daño de combate como si no estuviera bloqueado?
lblChosenCards=Cartas elegidas
lblAttacker=Atacante
lblTriggeredby=Activado por
lblChooseWhichCardstoReveal=Elige qué cartas revelar
lblChooseCardsActivateOpeningHandandOrder=Elige las cartas a activar desde la mano de apertura y su orden
lblActivateFirst=Activar primero
lblChooseOptionalCosts=Selecciona Costes opcionales
lblOptionalCosts=Costes opcionales
lblDoYouWanttoScry=¿Quieres hacer un escrutinio?
lblChooseCardstoSpliceonto=Elija las cartas para unirlas
lblDoNextActioninSequence=Realizar la siguiente acción en secuencia
lblPleaseDefineanActionSequenceFirst=Por favor, define primero una secuencia de acción.
lblRememberActionSequence=Recordar la Secuencia de Acción
lblYouMustHavePrioritytoUseThisFeature=Debes tener prioridad para utilizar esta función.
lblNameTheCard=Nombra la carta
lblWhichPlayerShouldRoll=¿Qué jugador debe tirar?
lblChooseResult=Elige resultado
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=La carta elegida no es un permanente o no puede existir independientemente en el campo de batalla.\nSi quieres lanzar un hechizo no permanente, o si quieres lanzar un hechizo permanente y colocarlo en la pila, por favor usa el botón de Lanzar Hechizo/Jugar Tierra.
lblError=Error
lblWinGame=Ganar la Partida
lblSetLifetoWhat=¿Fijar la vida a cuánto?
lblSetLifeforWhichPlayer=Fijar la vida de cada jugador
lblChoosePermanentstoTap=Elige los permanentes para girar
lblChoosePermanentstoUntap=Elige los permanentes para enderezar
lblWhichTypeofCounter=¿Qué tipo de contador?
lblHowManyCounters=¿Cuántos contadores?
lblRemoveCountersFromWhichCard=¿Quitar contadores de qué carta?
lblAddCountersToWhichCard=¿Añadir contadores a qué carta?
lblChooseaCard=Elije una carta
lblNoPlayerPriorityDeckCantBeTutoredFrom=Ningún jugador tiene prioridad en este momento, por lo que su mazo no puede ser tutorizado.
lblNoPlayerPriorityGameStateCannotBeSetup=Ningún jugador tiene prioridad en este momento, por lo que no se puede configurar el estado del juego.
lblErrorLoadingBattleSetupFile=¡Error al cargar el archivo de configuración de la batalla!
lblSelectCardstoAddtoYourDeck=Seleccione las cartas que quieres añadir a tu mazo
lblAddTheseToMyDeck=Añade esto a mi mazo
lblChooseaPile=Elige una pila
lblSelectOrderForSimultaneousAbilities=Seleccionar orden para habilidades simultáneas
lblReorderSimultaneousAbilities=Reordenar habilidades simultáneas
lblResolveFirst=Resolver primero
lblMoveCardstoToporBbottomofLibrary=Mover las cartas a la parte superior o inferior de la biblioteca
lblSelectCardsToBeOutOnTheBottomOfYourLibrary=Selecciona las cartas que desea colocar en la parte inferior de su biblioteca
lblCardsToPutOnTheBottom=Cartas para poner en la parte inferior
lblArrangeCardsToBePutOnTopOfYourLibrary=Organizar las cartas para colocarlas en la parte superior de la biblioteca
lblTopOfLibrary=Parte Superior de la Biblioteca
lblSelectCardsToBePutIntoTheGraveyard=Selecciona las cartas para ponerlas en el Cementerio
lblCardsToPutInTheGraveyard=Cartas para poner en el Cementerio

View File

@@ -989,7 +989,7 @@ lblMore=更多
lblLoadingNewGame=载入新游戏中
lblSelectVariants=选择变种
msgSelectAdeckBeforeReadying=在准备之前选择一个套牌
#PlayerPanel
#PlayerPanel.java
lblLoadingDeck=加载套牌中
lblSchemeDeckRandomGenerated=阴谋套牌:随机生成的套牌
lblCommanderDeckRandomGenerated=指挥官套牌:随机生成的套牌
@@ -1017,23 +1017,23 @@ lblFemale=女
lblAny=任意
lblFantasy=幻想
lblGeneric=通用
#MatchController
#MatchController.java
lblChooseAbilityToPlay=选择使用的能力
lblSelected=选择
#ItemManager
#ItemManager.java
lblAdvancedSearch=高级搜索
lblSort=排序
lblResetFilters=重置筛选器
#AdvancedSearchFilter
#AdvancedSearchFilter.java
lblEditExpression=编辑表达式
lblRemoveFilter=移除筛选器
#CardZoom
#CardZoom.java
lblSwipeUpTo=向上滑动%s
lblSwipeDownDetailView=向下滑动即可切换到详细信息视图
lblSwipeDownPictureView=向下滑动即可切换到图片视图
#VGameMenu
#VGameMenu.java
lblNoPlayerPriorityNoDeckListViewed=现在玩家没有优先权,因此无法查看套牌列表。
#FilesPage
#FilesPage.java
lblFiles=文件
lblStorageLocations=储存位置
lblCardPicsLocation=牌张图片位置
@@ -1043,36 +1043,98 @@ lblImageCacheLocation=图片缓存位置
lblRestartForgeMoveFilesNewLocation=您必须重启Forge才能使此更改生效。执行此操作之前请确保将所有必要的文件移动到新的位置。
lblRestartRequired=需要重启
lblSelect=选择%s
#AddBasicLandsDialog
lblLandSet=Land Set
lblAddBasicLandsAutoSuggest=Add Basic Lands to %s\n(double-tap statistics to auto-suggest)
lblAssortedArt=Assorted Art
lblCardArt=Card Art %d
lblNonLandCount=%d non-lands
lblOldLandCount=%d lands
lblNewLandCount=%d added lands
lblNewTotalCount=%d cards
#FDeckImportDialog
lblImportLatestVersionCard=Import latest version of card
lblUseOnlySetsReleasedBefore=Use only sets released before:
lblUseOnlyCoreAndExpansionSets=Use only core and expansion sets
lblFollowingCardsCannotBeImported=The following cards cannot be imported due to misspelling, set restrictions, or not being in Forge yet:
lblImportRemainingCards=Import remaining cards?
lblNoKnownCardsOnClipboard=No known cards found on clipboard.\n\nCopy the decklist to the clipboard, then reopen this dialog.
#FDeckViewer
lblDeckListCopiedClipboard=Deck list for '%s' copied to clipboard.
#FSideboardDialog
lblUpdateMainFromSideboard=Update main deck from sideboard%s
#FVanguardChooser
lblRandomVanguard=Random Vanguard
#FOptionPane
lblYes=Yes
lblNo=No
#FSpinner
lblSelectANumber=Select a number
#FTextField
lblCut=Cut
lblCopy=Copy
lblPaste=Paste
#ListChooser
lblSearch=Search
#AddBasicLandsDialog.java
lblLandSet=地牌的系列
lblAddBasicLandsAutoSuggest=添加基本地到%s\n双击自动添加
lblAssortedArt=各种画
lblCardArt=卡图%d
lblNonLandCount=%d张非地
lblOldLandCount=%d张地
lblNewLandCount=添加%d张地
lblNewTotalCount=%d张牌
#FDeckImportDialog.java
lblImportLatestVersionCard=导入卡牌的最新版本
lblUseOnlySetsReleasedBefore=只用之前上市系列的版本:
lblUseOnlyCoreAndExpansionSets=只使用核心系列和拓展系列
lblFollowingCardsCannotBeImported=由于拼写错误系列限制或forge尚未实现以下卡牌没有被导入
lblImportRemainingCards=导入剩余的卡?
lblNoKnownCardsOnClipboard=在剪切板找不到已知的卡牌。\n\n将卡组列表复制到剪切板然后重新打开此对话框。
#FDeckViewer.java
lblDeckListCopiedClipboard=套牌列表'%s'已经复制到剪切板
#FSideboardDialog.java
lblUpdateMainFromSideboard=从备牌更新%s到主牌
#FVanguardChooser.java
lblRandomVanguard=随机先锋
#FOptionPane.java
lblYes=
lblNo=
#FSpinner.java
lblSelectANumber=选择一个数
#FTextField.java
lblCut=剪切
lblCopy=复制
lblPaste=粘贴
#ListChooser.java
lblSearch=搜索
#InputBase.java
lblPriority=Priority
lblTurn=Turn
lblPhase=Phase
lblEmpty=Empty
lbltoResolve=to Resolve.
lblStormCount=Storm Count
#PlayerControllerHuman.java
lblYouHaveWonTheCoinToss=%s, you have won the coin toss.
lblYouLostTheLastGame=%s, you lost the last game.
lblWouldYouLiketoPlayorDraw=Would you like to play or draw?
lblWhoWouldYouLiketoStartthisGame=Who would you like to start this game? (Click on the portrait.)
lblPlay=Play
lblDraw=Draw
lblTooFewCardsMainDeck=Too few cards in your main deck (minimum %s), please make modifications to your deck again.
lblTooManyCardsSideboard=Too many cards in your sideboard (maximum %s), please make modifications to your deck again.
lblAssignCombatDamageWerentBlocked=Do you want to assign its combat damage as though it weren't blocked?
lblChosenCards=Chosen Cards
lblAttacker=Attacker
lblTriggeredby=Triggered by
lblChooseWhichCardstoReveal=Choose Which Cards to Reveal
lblChooseCardsActivateOpeningHandandOrder=Choose cards to activate from opening hand and their order
lblActivateFirst=Activate first
lblChooseOptionalCosts=Choose optional Costs
lblOptionalCosts=Optional Costs
lblDoYouWanttoScry=Do you want to scry?
lblChooseCardstoSpliceonto=Choose cards to Splice onto
lblDoNextActioninSequence=Do Next Action in Sequence
lblPleaseDefineanActionSequenceFirst=Please define an action sequence first.
lblRememberActionSequence=Remember Action Sequence
lblYouMustHavePrioritytoUseThisFeature=You must have priority to use this feature.
lblNameTheCard=Name the card
lblWhichPlayerShouldRoll=Which player should roll?
lblChooseResult=Choose result
lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground=The chosen card is not a permanent or can't exist independently on the battlefield.\nIf you'd like to cast a non-permanent spell, or if you'd like to cast a permanent spell and place it on stack, please use the Cast Spell/Play Land button.
lblError=Error
lblWinGame=Win Game
lblSetLifetoWhat=Set life to what?
lblSetLifeforWhichPlayer=Set life for which player
lblChoosePermanentstoTap=Choose permanents to tap
lblChoosePermanentstoUntap=Choose permanents to untap
lblWhichTypeofCounter=Which type of counter?
lblHowManyCounters=How many counters?
lblRemoveCountersFromWhichCard=Remove counters from which card?
lblAddCountersToWhichCard=Add counters to which card?
lblChooseaCard=Choose a card
lblNoPlayerPriorityDeckCantBeTutoredFrom=No player has priority at the moment, so their deck can't be tutored from.
lblNoPlayerPriorityGameStateCannotBeSetup=No player has priority at the moment, so game state cannot be setup.
lblErrorLoadingBattleSetupFile=Error loading battle setup file!
lblSelectCardstoAddtoYourDeck=Select cards to add to your deck
lblAddTheseToMyDeck=Add these to my deck
lblChooseaPile=Choose a pile
lblSelectOrderForSimultaneousAbilities=Select order for simultaneous abilities
lblReorderSimultaneousAbilities=Reorder simultaneous abilities
lblResolveFirst=Resolve first
lblMoveCardstoToporBbottomofLibrary=Move cards to top or bottom of library
lblSelectCardsToBeOutOnTheBottomOfYourLibrary=Select cards to be put on the bottom of your library
lblCardsToPutOnTheBottom=Cards to put on the bottom
lblArrangeCardsToBePutOnTopOfYourLibrary=Arrange cards to be put on top of your library
lblTopOfLibrary=Top of Library
lblSelectCardsToBePutIntoTheGraveyard=Select cards to be put into the graveyard
lblCardsToPutInTheGraveyard=Cards to put in the graveyard

View File

@@ -0,0 +1,16 @@
[metadata]
Name:Possibility Storm - Special Guest Puzzle - Modern Goblins
URL:http://www.possibilitystorm.com/wp-content/uploads/2019/09/129.-FK01.jpg
Goal:Win
Turns:1
Difficulty:Mythic
Description:Win this turn. Your opponent has chosen 'Goblin' with Plague Engineer's ability.
[state]
humanlife=20
ailife=19
turn=1
activeplayer=human
activephase=MAIN1
humanhand=Krenko, Mob Boss;Sling-Gang Lieutenant;Munitions Expert;Goblin Warchief;Goblin Piledriver;Skirk Prospector
humanbattlefield=Pashalik Mons;Goblin Guide;Kiki-Jiki, Mirror Breaker;Mountain;Mountain;Mountain;Blood Crypt|NoETBTrigs;Blood Crypt|NoETBTrigs
aibattlefield=Plague Engineer|ChosenType:Goblin|Id:1;Sylvok Lifestaff|AttachedTo:1;Sylvok Lifestaff|AttachedTo:1;Accorder's Shield|AttachedTo:1

View File

@@ -31,6 +31,7 @@ import forge.model.FModel;
import forge.player.PlayerControllerHuman;
import forge.properties.ForgePreferences;
import forge.util.ITriggerEvent;
import forge.util.Localizer;
/**
* <p>
@@ -131,20 +132,20 @@ public abstract class InputBase implements java.io.Serializable, Input {
protected String getTurnPhasePriorityMessage(final Game game) {
final PhaseHandler ph = game.getPhaseHandler();
final StringBuilder sb = new StringBuilder();
sb.append("Priority: ").append(ph.getPriorityPlayer()).append("\n");
sb.append("Turn ").append(ph.getTurn()).append(" (").append(ph.getPlayerTurn()).append(")\n");
sb.append("Phase: ").append(ph.getPhase().nameForUi).append("\n");
sb.append("Stack: ");
Localizer localizer = Localizer.getInstance();
sb.append(localizer.getMessage("lblPriority")).append(": ").append(ph.getPriorityPlayer()).append("\n");
sb.append(localizer.getMessage("lblTurn")).append(": ").append(ph.getTurn()).append(" (").append(ph.getPlayerTurn()).append(")\n");
sb.append(localizer.getMessage("lblPhase")).append(": ").append(ph.getPhase().nameForUi).append("\n");
sb.append(localizer.getMessage("lblStack")).append(": ");
if (!game.getStack().isEmpty()) {
sb.append(game.getStack().size()).append(" to Resolve.");
sb.append(game.getStack().size()).append(" ").append(localizer.getMessage("lbltoResolve"));
} else {
sb.append("Empty");
sb.append(localizer.getMessage("lblEmpty"));
}
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_SHOW_STORM_COUNT_IN_PROMPT)) {
int stormCount = game.getView().getStormCount();
if (stormCount > 0) {
sb.append("\n").append("Storm Count: ").append(stormCount);
sb.append("\n").append(localizer.getMessage("lblStormCount")).append(": ").append(stormCount);
}
}
return sb.toString();

View File

@@ -58,6 +58,7 @@ import forge.properties.ForgePreferences.FPref;
import forge.trackable.TrackableObject;
import forge.util.ITriggerEvent;
import forge.util.Lang;
import forge.util.Localizer;
import forge.util.MessageUtil;
import forge.util.TextUtil;
import forge.util.collect.FCollection;
@@ -91,6 +92,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
protected final InputQueue inputQueue;
protected final InputProxy inputProxy;
private final Localizer localizer = Localizer.getInstance();
public PlayerControllerHuman(final Game game0, final Player p, final LobbyPlayer lp) {
super(game0, p, lp);
inputProxy = new InputProxy(this);
@@ -243,13 +246,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
if (newMain != null) {
String errMsg;
if (newMain.size() < deckMinSize) {
errMsg = TextUtil.concatNoSpace("Too few cards in your main deck (minimum ",
String.valueOf(deckMinSize), "), please make modifications to your deck again.");
errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooFewCardsMainDeck").replace("%s", String.valueOf(deckMinSize)));
} else {
errMsg = TextUtil.concatNoSpace("Too many cards in your sideboard (maximum ",
String.valueOf(sbMax), "), please make modifications to your deck again.");
errMsg = TextUtil.concatNoSpace(localizer.getMessage("lblTooManyCardsSideboard").replace("%s", String.valueOf(sbMax)));
}
getGui().showErrorDialog(errMsg, "Invalid Deck");
getGui().showErrorDialog(errMsg, localizer.getMessage("lblInvalidDeck"));
}
// Sideboard rules have changed for M14, just need to consider min
// maindeck and max sideboard sizes
@@ -301,7 +303,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
if (attacker.hasKeyword("CARDNAME assigns its combat damage as though it weren't blocked.") || attacker
.hasKeyword("You may have CARDNAME assign its combat damage as though it weren't blocked.")) {
return InputConfirm.confirm(this, CardView.get(attacker),
"Do you want to assign its combat damage as though it weren't blocked?");
localizer.getMessage("lblAssignCombatDamageWerentBlocked"));
} else {
return false;
}
@@ -404,7 +406,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
}
tempShowCards(sourceList);
final CardCollection choices = getGame().getCardList(getGui().many(title, "Chosen Cards", min, max,
final CardCollection choices = getGame().getCardList(getGui().many(title, localizer.getMessage("lblChosenCards"), min, max,
CardView.getCollection(sourceList), CardView.get(sa.getHostCard())));
endTempShowCards();
@@ -634,13 +636,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
}
final Map<AbilityKey, Object> tos = sa.getTriggeringObjects();
if (tos.containsKey(AbilityKey.Attacker)) {
buildQuestion.append("\nAttacker: ").append(tos.get(AbilityKey.Attacker));
buildQuestion.append("\n").append(localizer.getMessage("lblAttacker")).append(": ").append(tos.get(AbilityKey.Attacker));
}
if (tos.containsKey(AbilityKey.Card)) {
final Card card = (Card) tos.get(AbilityKey.Card);
if (card != null && (card.getController() == player || game.getZoneOf(card) == null
|| game.getZoneOf(card).getZoneType().isKnown())) {
buildQuestion.append("\nTriggered by: ").append(tos.get(AbilityKey.Card));
buildQuestion.append("\n").append(localizer.getMessage("lblTriggeredby")).append(": ").append(tos.get(AbilityKey.Card));
}
}
@@ -652,15 +654,18 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public Player chooseStartingPlayer(final boolean isFirstGame) {
if (game.getPlayers().size() == 2) {
final String prompt = String.format("%s, you %s\n\nWould you like to play or draw?", player.getName(),
isFirstGame ? " have won the coin toss." : " lost the last game.");
final InputConfirm inp = new InputConfirm(this, prompt, "Play", "Draw");
String prompt = String.format(
isFirstGame ? localizer.getMessage("lblYouHaveWonTheCoinToss") : localizer.getMessage("lblYouLostTheLastGame"),
player.getName());
prompt += "\n\n" + localizer.getMessage("lblWouldYouLiketoPlayorDraw");
final InputConfirm inp = new InputConfirm(this, prompt, localizer.getMessage("lblPlay"), localizer.getMessage("lblDraw"));
inp.showAndWait();
return inp.getResult() ? this.player : this.player.getOpponents().get(0);
} else {
final String prompt = String.format(
"%s, you %s\n\nWho would you like to start this game? (Click on the portrait.)", player.getName(),
isFirstGame ? " have won the coin toss." : " lost the last game.");
String prompt = String.format(
isFirstGame ? localizer.getMessage("lblYouHaveWonTheCoinToss") : localizer.getMessage("lblYouLostTheLastGame"),
player.getName());
prompt += "\n\n" + localizer.getMessage("lblWhoWouldYouLiketoStartthisGame");
final InputSelectEntitiesFromList<Player> input = new InputSelectEntitiesFromList<>(this, 1, 1,
new FCollection<>(game.getPlayersInTurnOrder()));
input.setMessage(prompt);
@@ -739,7 +744,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
}
public ImmutablePair<CardCollection, CardCollection> arrangeForMove(final String title, final FCollectionView<Card> cards, final List<Card> manipulable, final boolean topOK, final boolean bottomOK) {
List<Card> result = manipulateCardList("Move cards to top or bottom of library", cards, manipulable, topOK, bottomOK, false);
List<Card> result = manipulateCardList(localizer.getMessage("lblMoveCardstoToporBbottomofLibrary"), cards, manipulable, topOK, bottomOK, false);
CardCollection toBottom = new CardCollection();
CardCollection toTop = new CardCollection();
for (int i = 0; i<cards.size() && manipulable.contains(result.get(i)) ; i++ ) {
@@ -763,7 +768,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
(!GuiBase.getInterface().isLibgdxPort()) ) {
CardCollectionView cardList = player.getCardsIn(ZoneType.Library);
ImmutablePair<CardCollection, CardCollection> result =
arrangeForMove("Move cards to top or bottom of library", cardList, topN, true, true);
arrangeForMove(localizer.getMessage("lblMoveCardstoToporBbottomofLibrary"), cardList, topN, true, true);
toTop = result.getLeft();
toBottom = result.getRight();
} else {
@@ -774,16 +779,16 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
toBottom = topN;
}
} else {
toBottom = game.getCardList(getGui().many("Select cards to be put on the bottom of your library",
"Cards to put on the bottom", -1, CardView.getCollection(topN), null));
toBottom = game.getCardList(getGui().many(localizer.getMessage("lblSelectCardsToBeOutOnTheBottomOfYourLibrary"),
localizer.getMessage("lblCardsToPutOnTheBottom"), -1, CardView.getCollection(topN), null));
topN.removeAll(toBottom);
if (topN.isEmpty()) {
toTop = null;
} else if (topN.size() == 1) {
toTop = topN;
} else {
toTop = game.getCardList(getGui().order("Arrange cards to be put on top of your library",
"Top of Library", CardView.getCollection(topN), null));
toTop = game.getCardList(getGui().order(localizer.getMessage("lblArrangeCardsToBePutOnTopOfYourLibrary"),
localizer.getMessage("lblTopOfLibrary"), CardView.getCollection(topN), null));
}
}
}
@@ -812,16 +817,16 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
toGrave = topN;
}
} else {
toGrave = game.getCardList(getGui().many("Select cards to be put into the graveyard",
"Cards to put in the graveyard", -1, CardView.getCollection(topN), null));
toGrave = game.getCardList(getGui().many(localizer.getMessage("lblSelectCardsToBePutIntoTheGraveyard"),
localizer.getMessage("lblCardsToPutInTheGraveyard"), -1, CardView.getCollection(topN), null));
topN.removeAll(toGrave);
if (topN.isEmpty()) {
toTop = null;
} else if (topN.size() == 1) {
toTop = topN;
} else {
toTop = game.getCardList(getGui().order("Arrange cards to be put on top of your library",
"Top of Library", CardView.getCollection(topN), null));
toTop = game.getCardList(getGui().order(localizer.getMessage("lblArrangeCardsToBePutOnTopOfYourLibrary"),
localizer.getMessage("lblTopOfLibrary"), CardView.getCollection(topN), null));
}
}
endTempShowCards();
@@ -1324,7 +1329,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
max = Math.min(max, valid.size());
min = Math.min(min, max);
final InputSelectCardsFromList inp = new InputSelectCardsFromList(this, min, max, valid);
inp.setMessage("Choose Which Cards to Reveal");
inp.setMessage(localizer.getMessage("lblChooseWhichCardstoReveal"));
inp.showAndWait();
return new CardCollection(inp.getSelected());
}
@@ -1349,8 +1354,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
if (srcCards.isEmpty()) {
return result;
}
final List<CardView> chosen = getGui().many("Choose cards to activate from opening hand and their order",
"Activate first", -1, CardView.getCollection(srcCards), null);
final List<CardView> chosen = getGui().many(localizer.getMessage("lblChooseCardsActivateOpeningHandandOrder"),
localizer.getMessage("lblActivateFirst"), -1, CardView.getCollection(srcCards), null);
for (final CardView view : chosen) {
final Card c = game.getCard(view);
for (final SpellAbility sa : usableFromOpeningHand) {
@@ -1664,11 +1669,11 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
if (savedOrder != null) {
boolean preselect = FModel.getPreferences()
.getPrefBoolean(FPref.UI_PRESELECT_PREVIOUS_ABILITY_ORDER);
orderedSAVs = getGui().order("Reorder simultaneous abilities", "Resolve first", 0, 0,
orderedSAVs = getGui().order(localizer.getMessage("lblReorderSimultaneousAbilities"), localizer.getMessage("lblResolveFirst"), 0, 0,
preselect ? Lists.newArrayList() : orderedSAVs,
preselect ? orderedSAVs : Lists.newArrayList(), null, false);
} else {
orderedSAVs = getGui().order("Select order for simultaneous abilities", "Resolve first", orderedSAVs,
orderedSAVs = getGui().order(localizer.getMessage("lblSelectOrderForSimultaneousAbilities"), localizer.getMessage("lblResolveFirst"), orderedSAVs,
null);
}
orderedSAs = Lists.newArrayList();
@@ -1742,7 +1747,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
// make sure Pile 1 or Pile 2 is clicked on
boolean result;
while (true) {
final CardView chosen = getGui().one("Choose a pile", cards);
final CardView chosen = getGui().one(localizer.getMessage("lblChooseaPile"), cards);
if (chosen.equals(pileView1)) {
result = true;
break;
@@ -1767,7 +1772,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public List<PaperCard> chooseCardsYouWonToAddToDeck(final List<PaperCard> losses) {
return getGui().many("Select cards to add to your deck", "Add these to my deck", 0, losses.size(), losses,
return getGui().many(localizer.getMessage("lblSelectCardstoAddtoYourDeck"), localizer.getMessage("lblAddTheseToMyDeck"), 0, losses.size(), losses,
null);
}
@@ -2079,13 +2084,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
SOptionPane.showErrorDialog("File not found: " + filename);
return;
} catch (final Exception e) {
SOptionPane.showErrorDialog("Error loading battle setup file!");
SOptionPane.showErrorDialog(localizer.getMessage("lblErrorLoadingBattleSetupFile"));
return;
}
final Player pPriority = game.getPhaseHandler().getPriorityPlayer();
if (pPriority == null) {
getGui().message("No player has priority at the moment, so game state cannot be setup.");
getGui().message(localizer.getMessage("lblNoPlayerPriorityGameStateCannotBeSetup"));
return;
}
state.applyToGame(game);
@@ -2100,7 +2105,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
public void tutorForCard() {
final Player pPriority = game.getPhaseHandler().getPriorityPlayer();
if (pPriority == null) {
getGui().message("No player has priority at the moment, so their deck can't be tutored from.");
getGui().message(localizer.getMessage("lblNoPlayerPriorityDeckCantBeTutoredFrom"));
return;
}
@@ -2108,7 +2113,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final List<ZoneType> origin = Lists.newArrayList();
origin.add(ZoneType.Library);
final SpellAbility sa = new SpellAbility.EmptySa(new Card(-1, game));
final Card card = chooseSingleCardForZoneChange(ZoneType.Hand, origin, sa, lib, null, "Choose a card", true,
final Card card = chooseSingleCardForZoneChange(ZoneType.Hand, origin, sa, lib, null, localizer.getMessage("lblChooseaCard"), true,
pPriority);
if (card == null) {
return;
@@ -2143,7 +2148,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
}
public void modifyCountersOnPermanent(boolean subtract) {
final String titleMsg = subtract ? "Remove counters from which card?" : "Add counters to which card?";
final String titleMsg = subtract ? localizer.getMessage("lblRemoveCountersFromWhichCard") : localizer.getMessage("lblAddCountersToWhichCard");
final CardCollectionView cards = game.getCardsIn(ZoneType.Battlefield);
final Card card = game
.getCard(getGui().oneOrNone(titleMsg, CardView.getCollection(cards)));
@@ -2154,12 +2159,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final ImmutableList<CounterType> counters = subtract ? ImmutableList.copyOf(card.getCounters().keySet())
: CounterType.values;
final CounterType counter = getGui().oneOrNone("Which type of counter?", counters);
final CounterType counter = getGui().oneOrNone(localizer.getMessage("lblWhichTypeofCounter"), counters);
if (counter == null) {
return;
}
final Integer count = getGui().getInteger("How many counters?", 1, Integer.MAX_VALUE, 10);
final Integer count = getGui().getInteger(localizer.getMessage("lblHowManyCounters"), 1, Integer.MAX_VALUE, 10);
if (count == null) {
return;
}
@@ -2187,7 +2192,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final InputSelectCardsFromList inp = new InputSelectCardsFromList(PlayerControllerHuman.this, 0,
Integer.MAX_VALUE, untapped);
inp.setCancelAllowed(true);
inp.setMessage("Choose permanents to tap");
inp.setMessage(localizer.getMessage("lblChoosePermanentstoTap"));
inp.showAndWait();
if (!inp.hasCancelled()) {
for (final Card c : inp.getSelected()) {
@@ -2213,7 +2218,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final InputSelectCardsFromList inp = new InputSelectCardsFromList(PlayerControllerHuman.this, 0,
Integer.MAX_VALUE, tapped);
inp.setCancelAllowed(true);
inp.setMessage("Choose permanents to untap");
inp.setMessage(localizer.getMessage("lblChoosePermanentstoUntap"));
inp.showAndWait();
if (!inp.hasCancelled()) {
for (final Card c : inp.getSelected()) {
@@ -2232,12 +2237,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public void setPlayerLife() {
final Player player = game.getPlayer(
getGui().oneOrNone("Set life for which player?", PlayerView.getCollection(game.getPlayers())));
getGui().oneOrNone(localizer.getMessage("lblSetLifeforWhichPlayer"), PlayerView.getCollection(game.getPlayers())));
if (player == null) {
return;
}
final Integer life = getGui().getInteger("Set life to what?", 0);
final Integer life = getGui().getInteger(localizer.getMessage("lblSetLifetoWhat"), 0);
if (life == null) {
return;
}
@@ -2254,7 +2259,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
public void winGame() {
final Input input = inputQueue.getInput();
if (!(input instanceof InputPassPriority)) {
getGui().message("You must have priority to use this feature.", "Win Game");
getGui().message(localizer.getMessage("lblYouMustHavePrioritytoUseThisFeature"), localizer.getMessage("lblWinGame"));
return;
}
@@ -2361,7 +2366,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
Collections.sort(faces);
// use standard forge's list selection dialog
final ICardFace f = repeatLast ? lastAdded : getGui().oneOrNone("Name the card", faces);
final ICardFace f = repeatLast ? lastAdded : getGui().oneOrNone(localizer.getMessage("lblNameTheCard"), faces);
if (f == null) {
return;
}
@@ -2390,7 +2395,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
forgeCard.setSickness(lastSummoningSickness);
}
} else {
getGui().message("The chosen card is not a permanent or can't exist independently on the battlefield.\nIf you'd like to cast a non-permanent spell, or if you'd like to cast a permanent spell and place it on stack, please use the Cast Spell/Play Land button.", "Error");
getGui().message(localizer.getMessage("lblChosenCardNotPermanentorCantExistIndependentlyontheBattleground"), localizer.getMessage("lblError"));
return;
}
} else {
@@ -2565,12 +2570,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public void riggedPlanarRoll() {
final Player player = game.getPlayer(
getGui().oneOrNone("Which player should roll?", PlayerView.getCollection(game.getPlayers())));
getGui().oneOrNone(localizer.getMessage("lblWhichPlayerShouldRoll"), PlayerView.getCollection(game.getPlayers())));
if (player == null) {
return;
}
final PlanarDice res = getGui().oneOrNone("Choose result", PlanarDice.values);
final PlanarDice res = getGui().oneOrNone(localizer.getMessage("lblChooseResult"), PlanarDice.values);
if (res == null) {
return;
}
@@ -2606,7 +2611,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
Collections.sort(allPlanars);
// use standard forge's list selection dialog
final IPaperCard c = getGui().oneOrNone("Name the card", allPlanars);
final IPaperCard c = getGui().oneOrNone(localizer.getMessage("lblNameTheCard"), allPlanars);
if (c == null) {
return;
}
@@ -2647,12 +2652,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public void setRememberedActions() {
final String dialogTitle = "Remember Action Sequence";
final String dialogTitle = localizer.getMessage("lblRememberActionSequence");
// Not sure if this priority guard is really needed, but it seems
// like an alright idea.
final Input input = inputQueue.getInput();
if (!(input instanceof InputPassPriority)) {
getGui().message("You must have priority to use this feature.", dialogTitle);
getGui().message(localizer.getMessage("lblYouMustHavePrioritytoUseThisFeature"), dialogTitle);
return;
}
@@ -2761,9 +2766,9 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public void nextRememberedAction() {
final String dialogTitle = "Do Next Action in Sequence";
final String dialogTitle = localizer.getMessage("lblDoNextActioninSequence");
if (rememberedActions.isEmpty()) {
getGui().message("Please define an action sequence first.", dialogTitle);
getGui().message(localizer.getMessage("lblPleaseDefineanActionSequenceFirst"), dialogTitle);
return;
}
if (sequenceIndex >= rememberedActions.size()) {
@@ -2861,8 +2866,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
List<CardView> choices = new ArrayList<>(mapCVtoC.keySet());
List<CardView> chosen;
chosen = getGui().many(
"Choose cards to Splice onto",
"Chosen Cards",
localizer.getMessage("lblChooseCardstoSpliceonto"),
localizer.getMessage("lblChosenCards"),
0,
choices.size(),
choices,
@@ -2884,13 +2889,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
@Override
public List<OptionalCostValue> chooseOptionalCosts(SpellAbility choosen,
List<OptionalCostValue> optionalCost) {
return getGui().many("Choose optional Costs", "Optional Costs", 0, optionalCost.size(),
return getGui().many(localizer.getMessage("lblChooseOptionalCosts"), localizer.getMessage("lblOptionalCosts"), 0, optionalCost.size(),
optionalCost, choosen.getHostCard().getView());
}
@Override
public boolean confirmMulliganScry(Player p) {
return InputConfirm.confirm(this, (SpellAbility)null, "Do you want to scry?");
return InputConfirm.confirm(this, (SpellAbility)null, localizer.getMessage("lblDoYouWanttoScry"));
}
@Override