Merge branch 'master' of https://git.cardforge.org/core-developers/forge into ui-card-translation

This commit is contained in:
klaxnek
2019-08-08 16:57:45 +02:00
23 changed files with 249 additions and 241 deletions

View File

@@ -1339,7 +1339,7 @@ public class ChangeZoneAi extends SpellAbilityAi {
});
for (Card pw : aiPlaneswalkers) {
int curLoyalty = pw.getCounters(CounterType.LOYALTY);
int freshLoyalty = pw.getCurrentState().getBaseLoyalty();
int freshLoyalty = Integer.valueOf(pw.getCurrentState().getBaseLoyalty());
if (freshLoyalty - curLoyalty >= loyaltyDiff && curLoyalty <= maxLoyaltyToConsider) {
return pw;
}

View File

@@ -38,7 +38,7 @@ final class CardFace implements ICardFace {
private int iToughness = Integer.MAX_VALUE;
private String power = null;
private String toughness = null;
private int initialLoyalty = -1;
private String initialLoyalty = "";
private String nonAbilityText = null;
private List<String> keywords = null;
@@ -56,7 +56,7 @@ final class CardFace implements ICardFace {
@Override public int getIntToughness() { return iToughness; }
@Override public String getPower() { return power; }
@Override public String getToughness() { return toughness; }
@Override public int getInitialLoyalty() { return initialLoyalty; }
@Override public String getInitialLoyalty() { return initialLoyalty; }
@Override public String getName() { return this.name; }
@Override public CardType getType() { return this.type; }
@Override public ManaCost getManaCost() { return this.manaCost; }
@@ -84,7 +84,7 @@ final class CardFace implements ICardFace {
void setManaCost(ManaCost manaCost0) { this.manaCost = manaCost0; }
void setColor(ColorSet color0) { this.color = color0; }
void setOracleText(String text) { this.oracleText = text; }
void setInitialLoyalty(int value) { this.initialLoyalty = value; }
void setInitialLoyalty(String value) { this.initialLoyalty = value; }
void setPtText(String value) {
final String k[] = value.split("/");

View File

@@ -186,7 +186,7 @@ public final class CardRules implements ICardCharacteristics {
@Override public int getIntToughness() { return mainPart.getIntToughness(); }
@Override public String getPower() { return mainPart.getPower(); }
@Override public String getToughness() { return mainPart.getToughness(); }
@Override public int getInitialLoyalty() { return mainPart.getInitialLoyalty(); }
@Override public String getInitialLoyalty() { return mainPart.getInitialLoyalty(); }
@Override
public String getOracleText() {
@@ -409,7 +409,7 @@ public final class CardRules implements ICardCharacteristics {
case 'L':
if ("Loyalty".equals(key)) {
this.faces[this.curFace].setInitialLoyalty(Integer.valueOf(value));
this.faces[this.curFace].setInitialLoyalty(value);
}
break;

View File

@@ -12,7 +12,7 @@ public interface ICardCharacteristics {
int getIntToughness();
String getPower();
String getToughness();
int getInitialLoyalty();
String getInitialLoyalty();
String getOracleText();
}

View File

@@ -376,6 +376,9 @@ public class GameAction {
copied.clearEtbCounters();
}
// update state for view
copied.updateStateForView();
if (fromBattlefield) {
c.setDamage(0); //clear damage after a card leaves the battlefield
c.setHasBeenDealtDeathtouchDamage(false);

View File

@@ -539,8 +539,7 @@ public class Card extends GameEntity implements Comparable<Card> {
}
public final void updatePowerToughnessForView() {
currentState.getView().updatePower(this);
currentState.getView().updateToughness(this);
view.updateCounters(this);
}
public final void updateTypesForView() {

View File

@@ -325,9 +325,6 @@ public class CardFactory {
// ******************************************************************
// ************** Link to different CardFactories *******************
if (card.isPlaneswalker()) {
buildPlaneswalkerAbilities(card);
}
if (state == CardStateName.LeftSplit || state == CardStateName.RightSplit) {
for (final SpellAbility sa : card.getSpellAbilities()) {
@@ -383,18 +380,6 @@ public class CardFactory {
card.addSpellAbility(planarRoll);
}
private static void buildPlaneswalkerAbilities(Card card) {
CardState state = card.getCurrentState();
// etbCounter only for Original Card
if (state.getBaseLoyalty() > 0) {
final String loyalty = Integer.toString(state.getBaseLoyalty());
// keyword need to be added to state directly, so init can be disabled
if (state.addIntrinsicKeyword("etbCounter:LOYALTY:" + loyalty + ":no Condition:no desc", false) != null) {
card.updateKeywords();
}
}
}
private static Card readCard(final CardRules rules, final IPaperCard paperCard, int cardId, Game game) {
final Card card = new Card(cardId, paperCard, game);

View File

@@ -53,7 +53,7 @@ public class CardState extends GameObject {
private byte color = MagicColor.COLORLESS;
private int basePower = 0;
private int baseToughness = 0;
private int baseLoyalty = 0;
private String baseLoyalty = "";
private KeywordCollection intrinsicKeywords = new KeywordCollection();
private final FCollection<SpellAbility> nonManaAbilities = new FCollection<SpellAbility>();
@@ -72,6 +72,8 @@ public class CardState extends GameObject {
private final CardStateView view;
private final Card card;
private ReplacementEffect loyaltyRep = null;
public CardState(Card card, CardStateName name) {
this(card.getView().createAlternateState(name), card);
}
@@ -174,11 +176,11 @@ public class CardState extends GameObject {
view.updateToughness(this);
}
public int getBaseLoyalty() {
public String getBaseLoyalty() {
return baseLoyalty;
}
public final void setBaseLoyalty(final int loyalty) {
baseLoyalty = loyalty;
public final void setBaseLoyalty(final String string) {
baseLoyalty = string;
view.updateLoyalty(this);
}
@@ -400,6 +402,14 @@ public class CardState extends GameObject {
public FCollectionView<ReplacementEffect> getReplacementEffects() {
FCollection<ReplacementEffect> result = new FCollection<>(replacementEffects);
if (getTypeWithChanges().isPlaneswalker()) {
if (loyaltyRep == null) {
loyaltyRep = CardFactoryUtil.makeEtbCounter("etbCounter:LOYALTY:" + this.baseLoyalty, card, true);
}
result.add(loyaltyRep);
}
card.updateReplacementEffects(result, this);
return result;
}

View File

@@ -678,6 +678,8 @@ public class CardView extends GameEntityView {
if (c.getGame() != null) {
currentStateView.updateColors(currentState);
}
} else {
currentStateView.updateLoyalty(currentState);
}
currentState.getView().updateKeywords(c, currentState); //update keywords even if state doesn't change
@@ -704,6 +706,8 @@ public class CardView extends GameEntityView {
if (c.getGame() != null) {
alternateStateView.updateColors(alternateState);
}
} else {
alternateStateView.updateLoyalty(alternateState);
}
alternateState.getView().updateKeywords(c, alternateState);
}
@@ -908,13 +912,17 @@ public class CardView extends GameEntityView {
set(TrackableProperty.Toughness, c.getBaseToughness());
}
public int getLoyalty() {
public String getLoyalty() {
return get(TrackableProperty.Loyalty);
}
void updateLoyalty(Card c) {
updateLoyalty(c.getCurrentLoyalty());
if (c.isInZone(ZoneType.Battlefield)) {
updateLoyalty(String.valueOf(c.getCurrentLoyalty()));
} else {
updateLoyalty(c.getCurrentState().getBaseLoyalty());
}
}
void updateLoyalty(int loyalty) {
void updateLoyalty(String loyalty) {
set(TrackableProperty.Loyalty, loyalty);
}
void updateLoyalty(CardState c) {
@@ -930,7 +938,7 @@ public class CardView extends GameEntityView {
return;
}
}
set(TrackableProperty.Loyalty, 0); //alternates don't need loyalty
set(TrackableProperty.Loyalty, "0"); //alternates don't need loyalty
}
public String getSetCode() {

View File

@@ -90,7 +90,7 @@ public class ReplacementHandler {
if (cause != null && cause.isReplacementAbility()) {
final ReplacementEffect re = cause.getReplacementEffect();
// only return for same layer
if (layer.equals(re.getLayer())) {
if ("Moved".equals(re.getParam("Event")) && layer.equals(re.getLayer())) {
return re.getOtherChoices();
}
}

View File

@@ -77,7 +77,7 @@ public enum TrackableProperty {
RulesText(TrackableTypes.StringType),
Power(TrackableTypes.IntegerType),
Toughness(TrackableTypes.IntegerType),
Loyalty(TrackableTypes.IntegerType),
Loyalty(TrackableTypes.StringType),
ChangedColorWords(TrackableTypes.StringMapType),
ChangedTypes(TrackableTypes.StringMapType),
HasDeathtouch(TrackableTypes.BooleanType),

View File

@@ -437,7 +437,7 @@ public class VAssignDamage {
}
else if (defender instanceof CardView) { // planeswalker
final CardView pw = (CardView)defender;
lethalDamage = pw.getCurrentState().getLoyalty();
lethalDamage = Integer.valueOf(pw.getCurrentState().getLoyalty());
}
}
else {

View File

@@ -706,7 +706,7 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
String sPt = "";
if (state.isCreature() && state.isPlaneswalker()) {
sPt = state.getPower() + "/" + state.getToughness() +
" (" + String.valueOf(state.getLoyalty()) + ")";
" (" + state.getLoyalty() + ")";
}
else if (state.isCreature()) {
sPt = state.getPower() + "/" + state.getToughness();
@@ -715,7 +715,7 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
sPt = "[" + state.getPower() + "/" + state.getToughness() + "]";
}
else if (state.isPlaneswalker()) {
sPt = String.valueOf(state.getLoyalty());
sPt = state.getLoyalty();
}
ptText.setText(sPt);
}

View File

@@ -273,7 +273,7 @@ public class CardRenderer {
state.getLoyalty(), count, suffix, x, y, w, h, compactMode);
}
public static void drawCardListItem(Graphics g, FSkinFont font, FSkinColor foreColor, FImageComplex cardArt, CardView card, String set, CardRarity rarity, int power, int toughness, int loyalty, int count, String suffix, float x, float y, float w, float h, boolean compactMode) {
public static void drawCardListItem(Graphics g, FSkinFont font, FSkinColor foreColor, FImageComplex cardArt, CardView card, String set, CardRarity rarity, int power, int toughness, String loyalty, int count, String suffix, float x, float y, float w, float h, boolean compactMode) {
float cardArtHeight = h + 2 * FList.PADDING;
float cardArtWidth = cardArtHeight * CARD_ART_RATIO;
if (cardArt != null) {

View File

@@ -446,7 +446,7 @@ public class VAssignDamage extends FDialog {
}
else if (defender instanceof CardView) { // planeswalker
CardView pw = (CardView)defender;
lethalDamage = pw.getCurrentState().getLoyalty();
lethalDamage = Integer.valueOf(pw.getCurrentState().getLoyalty());
}
}
else {

View File

@@ -1,7 +1,7 @@
Name:Chance for Glory
ManaCost:1 R W
Types:Instant
A:SP$ PumpAll | Cost$ 1 R W | ValidCards$ Creature.YouCtrl | KW$ Indestructible | Permanent$ True | SubAbility$ DBAddTurn | SpellDescription$ Creatures you control gain indestructible. Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
A:SP$ PumpAll | Cost$ 1 R W | ValidCards$ Creature.YouCtrl | KW$ Indestructible | Permanent$ True | SubAbility$ DBAddTurn | SpellDescription$ Creatures you control gain indestructible.
SVar:DBAddTurn:DB$ AddTurn | NumTurns$ 1 | ExtraTurnDelayedTrigger$ DBDelTrig | ExtraTurnDelayedTriggerExcute$ TrigLose | References$ DBDelTrig,TrigLose | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
SVar:DBDelTrig:ThisTurn$ True | Mode$ Phase | Phase$ End of Turn | TriggerDescription$ At the beginning of that turn's end step, you lose the game.
SVar:TrigLose:DB$ LosesGame | Defined$ You

View File

@@ -2,8 +2,8 @@ Name:Cruel Celebrant
ManaCost:W B
Types:Creature Vampire
PT:1/2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other+YouCtrl,Planeswalker.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever CARDNAME or another creature you control dies, each opponent loses 1 life and you gain 1 life.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerController$ TriggeredCardController | Execute$ TrigDrain | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature you control dies, each opponent loses 1 life and you gain 1 life.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other+YouCtrl,Planeswalker.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever CARDNAME or another creature or planeswalker you control dies, each opponent loses 1 life and you gain 1 life.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerController$ TriggeredCardController | Execute$ TrigDrain | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature or planeswalker you control dies, each opponent loses 1 life and you gain 1 life.
SVar:TrigDrain:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
DeckHas:Ability$LifeGain

View File

@@ -5,7 +5,7 @@ PT:5/5
K:Kicker:3
K:etbCounter:P1P1:5:CheckSVar$ WasKicked:If CARDNAME was kicked, it enters the battlefield with five +1/+1 counters on it.
SVar:WasKicked:Count$Kicked.1.0
T:Mode$ Attacks | ValidCard$ Card.Self | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAMRE attacks alone, double its power and toughness until end of turn.
T:Mode$ Attacks | ValidCard$ Card.Self | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks alone, double its power and toughness until end of turn.
SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +X | NumDef$ +Y | References$ X,Y
SVar:X:Count$CardPower
SVar:Y:Count$CardToughness

View File

@@ -1,8 +1,7 @@
Name:Nissa, Steward of Elements
ManaCost:X G U
Types:Legendary Planeswalker Nissa
Loyalty:0
K:etbCounter:LOYALTY:X
Loyalty:X
SVar:X:Count$xPaid
A:AB$ Scry | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | ScryNum$ 2 | SpellDescription$ Scry 2.
A:AB$ Dig | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | DigNum$ 1 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Land,Creature.cmcLEY | ForceRevealToController$ True | PromptToSkipOptionalAbility$ True | References$ Y | AILogic$ AlwaysConfirm | OptionalAbilityPrompt$ Would you like to put the permanent onto the battlefield? | DestinationZone$ Battlefield | LibraryPosition2$ 0 | SpellDescription$ Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Nissa, Steward of Elements, you may put that card onto the battlefield.

View File

@@ -2,7 +2,8 @@ Name:Yanling's Harbinger
ManaCost:3 U U
Types:Creature Bird
PT:2/4
K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library and/or graveyard for a card named Mu Yanling, Celestial Wind, reveal it, and put it into your hand. If you search your library this way, shuffle it.
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library,Graveyard | Destination$ Hand | ChangeType$ Card.namedMu Yanling; Celestial Wind | ChangeNum$ 1 | Optional$ True
DeckHints:Name$Mu Yanling, Celestial Wind
Oracle:When Yanling's Harbinger enters the battlefield, you may search your library and/or graveyard for a card named Mu Yanling, Celestial Wind, reveal it, and put it into your hand. If you search your library this way, shuffle it.
Oracle:Flying\nWhen Yanling's Harbinger enters the battlefield, you may search your library and/or graveyard for a card named Mu Yanling, Celestial Wind, reveal it, and put it into your hand. If you search your library this way, shuffle it.

View File

@@ -3,5 +3,5 @@ Name:Brawl
Order:101
Type:Casual
Subtype:Commander
Sets:XLN, RIX, DOM, M19, G18, GRN, RNA, WAR
Sets:XLN, RIX, DOM, M19, G18, GRN, RNA, WAR, M20
Banned:Sorcerous Spyglass

View File

@@ -7,36 +7,36 @@ splash.loading.decks=Lade Decks...
splash.loading.processingimagesprites=Verarbeite Bilddaten
#FControl.java
lblOpeningMainWindow=Öffne Hauptfenster...
lblCloseScreen=Close Screen
txCloseAction1=Forge now supports navigation tabs which allow closing and switching between different screens with ease. As a result, you no longer need to use the X button in the upper right to close the current screen and go back.
txCloseAction2=Please select what you want to happen when clicking the X button in the upper right. This choice will be used going forward and you will not see this message again. You can change this behavior at any time in Preferences.
titCloseAction=Select Your Close Action
lblAreYouSureYouWishRestartForge=Are you sure you wish restart Forge?
lblAreYouSureYouWishExitForge=Are you sure you wish exit Forge?
lblOneOrMoreGamesActive=One or more games are currently active
lblerrLoadingLayoutFile=Your %s layout file could not be read. It will be deleted after you press OK.\nThe game will proceed with default layout.
lblLoadingQuest=Loading quest...
lblCloseScreen=Schließe Fenster
txCloseAction1=Forge unterstützt Tab-Navigation um einfach Fenster zu schließen und zwischen ihnen zu wechseln. Darum ist es nicht mehr nötig ein Fenster mit X zu schließen um zu einem anderen Fenster zu wechseln.
txCloseAction2=Bitte wähle was passiert sobald du auf X oben rechts klickst. Die ausgewählte Option kann später jederzeti in den Einstellungen geändert werden.
titCloseAction=Wähle deine "Schließen" Aktion
lblAreYouSureYouWishRestartForge=Willst du wirklich Forge neustarten?
lblAreYouSureYouWishExitForge=Willst du wirklich Forge beenden?
lblOneOrMoreGamesActive=Mindestens ein Spiel ist derzeit aktiv
lblerrLoadingLayoutFile=Deine Layout-Datei %s konnte nicht gelesen werden. Sie wird gelöscht sobald du OK drückst.\nDas Spiel lädt anschließend das Standardlayout.
lblLoadingQuest=Lade Quest...
#FScreen.java
lblHome=Home
lblWorkshop=Workshop
lblBacktoHome=Back to Home
lblDeckEditor=Deck Editor
lblCloseEditor=Close Editor
lblCommanderDeckEditor=Commander Deck Editor
lblTinyLeadersDeckEditor=Tiny Leaders DeckEditor
lblBrawlDeckEditor=Brawl Deck Editor
lblDraftDeckEditor=Draft Deck Editor
lblSealedDeckEditor=Sealed Deck Editor
lblTokenViewer=Token Viewer
lblCloseViewer=Close Viewer
lblQuestDeckEditor=Quest Deck Editor
lblQuestTournamentDeckEditor=Quest Tournament Deck Editor
lblSpellShop=Spell Shop
lblLeaveShop=Leave Shop
lblLeaveDraft=Leave Draft
lblBazaar=Bazaar
lblConcedeGame=Concede Game
txerrFailedtodeletelayoutfile=Failed to delete layout file.
lblHome=Hauptmenü
lblWorkshop=Werkstatt
lblBacktoHome=Zum Hauptmenü
lblDeckEditor=Deck-Editor
lblCloseEditor=Schließe Editor
lblCommanderDeckEditor=Commander-Deck-Editor
lblTinyLeadersDeckEditor=Kleine-Anführer-Deck-Editor
lblBrawlDeckEditor=Brawl-Deck-Editor
lblDraftDeckEditor=Draft-Deck-Editor
lblSealedDeckEditor=Sealed-Deck-Editor
lblTokenViewer=Spielstein-Übersicht
lblCloseViewer=Schließe Übersicht
lblQuestDeckEditor=Quest-Deck-Editor
lblQuestTournamentDeckEditor=Quest-Turnier-Deck-Editor
lblSpellShop=Spruchladen
lblLeaveShop=Verlasse Laden
lblLeaveDraft=Verlasse Draft
lblBazaar=Basar
lblConcedeGame=Spiel aufgeben
txerrFailedtodeletelayoutfile=Fehler beim Löschen der Layout-Datei.
#VSubmenuPreferences.java
Preferences=Einstellungen
btnReset=Alles zurücksetzen
@@ -108,12 +108,12 @@ cbpCounterDisplayLocation=Markeranzeige Ort
cbpGraveyardOrdering=Genaue Reihenfolge im Friedhof einhalten
Troubleshooting=Fehlerbehebung
GeneralConfiguration=Allgemeine Einstellungen
lblPlayerName=Player Name
lblPlayerName=Spielername
nlPlayerName=Name unter welchem du beim Spielen geführt wirst.
nlCompactMainMenu=Aktiviere, um im Seitenmenü platzsparend immer nur eine Menügruppe anzeigen zu lassen. (Erfordert Neustart)
nlUseSentry=Aktiviere, um automatische Fehlerberichte an die Entwickler zu senden.
GamePlay=Spiel
nlpMulliganRule=Choose the version of the Mulligan rule
nlpMulliganRule=Wähle die Version der Mulligan Regel
nlpAiProfiles=Wähle die Spielweise deines KI-Gegners.
nlAnte=Entscheidet, ob um einen Einsatz (Ante) gespielt wird.
nlAnteMatchRarity=Versucht den Spieleinsatz für alle Spieler ungefähr gleich zu halten.
@@ -150,7 +150,7 @@ nlLoadCardsLazily=Wenn aktiviert, lädt Forge Kartenscripte erst wenn sie benöt
nlLoadHistoricFormats=Wenn aktiviert, lädt Forge auch ältere Spielformate. Verlängert den Programmstart.
GraphicOptions=Grafik Optionen
nlDefaultFontSize=Die Standardschriftgröße. Alle Schriftelemente werden werden relative zu dieser angepaßt. (Erfordert Neustart)
cbpMulliganRule=Mulligan Rule
cbpMulliganRule=Mulligan Regel
nlImageFetcher=Ermöglicht bei bestehender Onlineverbindung das automatisches Nachladen fehlender Kartenbilder.
nlDisplayFoil=Zeige FOIL-Karten mit einem optischen FOIL-Effekt.
nlRandomFoil=Zeige den FOIL-Effekt bei zufälligen Karten.
@@ -220,7 +220,7 @@ AresetMatchScreenLayout=Dies wird das Spielfeldlayout zurücksetzen.\nFalls du v
TresetMatchScreenLayout=Spielfeldlayout zurücksetzen
OKresetMatchScreenLayout=Spielfeldlayout wurde zurückgesetzt.
#EMenuGroup.java
lblSanctionedFormats=gültige Spielformate
lblSanctionedFormats=Gültige Spielformate
lblOnlineMultiplayer=Mehrspieler (online)
lblQuestMode=Quest-Modus
lblPuzzleMode=Rätsel-Modus
@@ -235,7 +235,7 @@ lblUseThisName=Nutzen
lblTryAgain=Neu
lblAddAPlayer=Spieler hinzufügen
lblVariants=Varianten
lblRandom=Random
lblRandom=Zufällig
#VSubmenuConstructed.java
lblConstructedMode=Constructed-Modus
lblConstructed=Constructed
@@ -371,7 +371,7 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
#FDeckChooser.java
lblViewDeck=Zeige Deck
lblRandomDeck=Zufälliges Deck
lblRandomColors=Random Colors
lblRandomColors=Zufällige Farben
#GameType.java
lblSealed=Sealed
lblDraft=Draft
@@ -696,184 +696,184 @@ ttWinsperDraftRotation=Wenn ein Draft nicht soweit fertig gespielt wird, wird er
lblRotationType=Austauschtyp
ttRotationType=Bei 0 verschwinden alte Drafts, bei 1 wird er duch einen neuen ersetzt.
#StatTypeFilter.java
lblclicktotoogle=click to toggle the filter, right-click to show only
lblclicktotoogle=Klicke zum Umschalten des Filters, Rechtsklick für Einzelanzeige von:
#SItemManagerUtil.java
lblWhitecards=White cards
lblBluecards=Blue cards
lblBlackcards=Black cards
lblRedcards=Red cards
lblGreencards=Green cards
lblColorlesscards=Colorless cards
lblMulticolorcards=Multicolor cards
lblPackordeck=Card packs and prebuilt decks
lblLands=Lands
lblArtifacts=Artifacts
lblCreatures=Creatures
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
lblWhitedecks=White decks
lblBluedecks=Blue decks
lblBlackdecks=Black decks
lblReddecks=Red decks
lblGreendecks=Green decks
lblColorlessdecks=Colorless decks
lblMulticolordecks=Multicolor decks
lblOldstyleFoilcards=Old style Foil cards
lblNewstyleFoilcards=New style Foil cards
lblNon-Foilcards=Non-Foil cards
lblUnratedcards=Unrated cards
lbl1starcards=1 star cards
lbl2starcards=2 star cards
lbl3starcards=3 star cards
lbl4starcards=4 star cards
lbl5starcards=5 star cards
lblXcopiesof=X copies of
lblcopiesof=copies of
lblWhitecards=Weiße Karten
lblBluecards=Blaue Karten
lblBlackcards=Schwarze Karten
lblRedcards=Rote Karten
lblGreencards=Grüne Karten
lblColorlesscards=Farblose Karten
lblMulticolorcards=Mehrfarbige Karten
lblPackordeck=Kartenpacks und vorkonstruierte Decks
lblLands=Länder
lblArtifacts=Artefakte
lblCreatures=Kreaturen
lblEnchantments=Verzauberungen
lblPlaneswalkers=Planeswalker
lblInstants=Spontanzauber
lblSorceries=Hexereien
lblCCMC0=Karten mit UMK 0
lblCCMC1=Karten mit UMK 1
lblCCMC2=Karten mit UMK 2
lblCCMC3=Karten mit UMK 3
lblCCMC4=Karten mit UMK 4
lblCCMC5=Karten mit UMK 5
lblCCMC6orMore=Karten mit UMK 6+
lblWhitedecks=Weiße Decks
lblBluedecks=Blaue Decks
lblBlackdecks=Schwarze Decks
lblReddecks=Rote Decks
lblGreendecks=Grüne Decks
lblColorlessdecks=Farblose Decks
lblMulticolordecks=Mehrfarbige Decks
lblOldstyleFoilcards=Foil-Karten: alter Stil
lblNewstyleFoilcards=Foil-Karten: neuer Stil
lblNon-Foilcards=Nicht-Foil Karten
lblUnratedcards=Unbewertet Karten
lbl1starcards=1-Stern-Karten
lbl2starcards=2-Sterne-Karten
lbl3starcards=3-Sterne-Karten
lbl4starcards=4-Sterne-Karten
lbl5starcards=5-Sterne-Karten
lblXcopiesof=X Kopien von
lblcopiesof=Kopien von
#ItemListView.java
lblUniqueCardsOnly=Unique Cards Only
ttUniqueCardsOnly=Toggle whether to show unique cards only
lblUniqueCardsOnly=Nur eine Version
ttUniqueCardsOnly=Schaltet zwischen der Anzeige der neuesten oder aller Versionen einer Karte um.
#ACEditorBase.java
lblAddcard=Add card
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
lblAdd4ofcard=Add 4 of card
ttAdd4ofcard=Add up to 4 of selected card to current deck
lblRemovecard=Remove card
ttRemovecard=Remove selected card from current deck (or double click the row or hit the spacebar)
lblRemove4ofcard=Remove 4 of card
ttRemove4ofcard=Remove up to 4 of selected card to current deck
lblAddBasicLands=Add Basic Lands
ttAddBasicLands=Add basic lands to the deck
lblCardCatalog=Card Catalog
lblJumptoprevioustable=Jump to previous table
lblJumptopnexttable=Jump to next table
lblJumptotextfilter=Jump to text filter
lblChooseavalueforX=Choose a value for X
lblAddcard=Karten hinzufügen
ttAddcard=Fügt gewählte Karte dem Deck hinzu (oder Doppelklick oder Leertate drücken)
lblAdd4ofcard=4 Karten hinzufügen
ttAdd4ofcard=Fügt bis zu 4 Kopien der gewählten Karte dem Deck hinzu
lblRemovecard=Entferne Karte
ttRemovecard=Entfernt die gewählte Karte aus dem Deck (oder Doppelklick oder Leertate drücken)
lblRemove4ofcard=Entferne 4 Karten
ttRemove4ofcard=Entfernt bis zu 4 Kopien der gewählten Karte aus dem Deck
lblAddBasicLands=Standardländer hinzufügen
ttAddBasicLands=Fügt Standardländer dem Deck hinzu
lblCardCatalog=Kartenkatalog
lblJumptoprevioustable=Springe zur vorigen Tabelle
lblJumptopnexttable=Springe zur nächsten Tabelle
lblJumptotextfilter=Springe zum Textfilter
lblChooseavalueforX=Wähle Wert für X
#VCurrentDeck.java
lblVCurrentDeck=Current Deck
ttbtnSave=Save Deck (Ctrl+S)
ttbtnSaveAs=Save Deck As (Ctrl+E)
ttbtnLoadDeck=Open Deck (Ctrl+O)
ttbtnNewDeck=New Deck (Ctrl+N)
ttbtnPrintProxies=Print to HTML file (Ctrl+P)
lblImport=Import
ttImportDeck=Attempt to import a deck from a non-Forge format (Ctrl+I)
lblTitle=Title
lblVCurrentDeck=Aktuelles Deck
ttbtnSave=Speichere Deck (STRG+S)
ttbtnSaveAs=Speichere Deck unter (STRG+E)
ttbtnLoadDeck=Öffne Deck (STRG+O)
ttbtnNewDeck=Neues Deck (STRG+N)
ttbtnPrintProxies=Speicher als HTML-Datei (STRG+P)
lblImport=Importieren
ttImportDeck=Versucht ein Deck eines Nicht-Forge-Formates zu importiern (STRG+I)
lblTitle=Titel
#ImageView.java
lblExpandallgroups=Expand all groups
lblCollapseallgroups=Collapse all groups
lblGroupby=group by
lblPileby=pile by
lblColumns=Columns
lblExpandallgroups=Expandiere alle Gruppen
lblCollapseallgroups=Minimiere alle Gruppen
lblGroupby=Gruppiere nach
lblPileby=Stapel nach
lblColumns=Spalten
#CEditorVariant.java, CEditorConstructed.java
lblCatalog=Catalog
lblAdd=Add
lbltodeck=to deck
lblfromdeck=from deck
lbltosideboard=to sideboard
lblfromsideboard=from sideboard
lblascommander=as commander
lblasavatar=as avatar
lblfromschemedeck=from scheme deck
lblfromplanardeck=from planar deck
lblfromconspiracydeck=from conspiracy deck
lbltoschemedeck=to scheme deck
lbltoplanardeck=to planar deck
lbltoconspiracydeck=to conspiracy deck
lblMove=Move
lblCatalog=Katalog
lblAdd=Hinzufügen
lbltodeck=zum Deck
lblfromdeck=vom Deck
lbltosideboard=zum Sideboard
lblfromsideboard=vom Sideboard
lblascommander=als Kommandeur
lblasavatar=als Avatar
lblfromschemedeck=vom Komplottdeck
lblfromplanardeck=vom Weltendeck
lblfromconspiracydeck=vom Verschwörungsdeck
lbltoschemedeck=zum Komplottdeck
lbltoplanardeck=zum Weltendeck
lbltoconspiracydeck=zum Verschwörungsdeck
lblMove=Verschieben
#VDock.java
lblDock=Dock
lblViewDeckList=View DeckList
lblRevertLayout=Revert Layout
lblOpenLayout=OpenLayout
lblSaveLayout=Save Layout
lblDock=Symbolleiste
lblViewDeckList=Zeige Deckliste
lblRevertLayout=Layout zurücksetzen
lblOpenLayout=Lade Layout
lblSaveLayout=Sichere Layout
#GroupDef.java
lblColor=Color
lblColorIdentity=Color Identity
lblColor=Farbe
lblColorIdentity=Farbidentität
lblSet=Set
lblSet2=Set
#Set word has different meanings in other languages
lblDefault=Default
lblType=Type
lblPlaneswalkerDeckSort=Planeswalker Deck Sort
lblRarity=Rarity
lblDefault=Standard
lblType=Typ
lblPlaneswalkerDeckSort=Planeswalker Deck
lblRarity=Seltenheit
lblConvertToFoil=Foil
lblMulticolor=Multicolor
lblMulticolor=Mehrfarbig
#DeckFileMenu.java
lblNewDeck=New Deck
lblOpenDeck=Open Deck
lblImportDeck=Import Deck
lblSaveDeck=Save Deck
lblSaveDeckAs=Save Deck As...
lblPrinttoHTMLfile=Print to HTML file
lblNewDeck=Neues Deck
lblOpenDeck=Öffne Deck
lblImportDeck=Deck importiren
lblSaveDeck=Speichere Deck
lblSaveDeckAs=Speichere Deck unter
lblPrinttoHTMLfile=Speicher als HTML-Datei
#PaperCard.java
lblCard=Carta
lblCard=Karte
#CardManager.java
lblFormat=Format
lblFormats=Formats
lblQuestWorld=Quest World
lblFormats=Formate
lblQuestWorld=Quest-Welt
lblSets=Sets
lblTypes=Types
lblConvertedManaCosts=Converted mana
lblCMCRange=CMC Range
lblPowerRange=Power Range
lblToughnessRange=Toughness Range
lblTypes=Typen
lblConvertedManaCosts=umgewandelte Manakosten
lblCMCRange=UMK-Bereich
lblPowerRange=Stärke-Bereich
lblToughnessRange=Widerstandskraft-Bereich
lblFoil=Foil
lblPersonalRating=Personal Rating
lblAdvanced=Advanced
lblPersonalRating=persönliche Bewertung
lblAdvanced=Fortgeschritten
#VDeckgen.java
lblDeckGeneration=Deck Generation
btnRandCardpool=Random Cardpool
ttbtnRandCardpool=Generate random constructed cardpool in current deck area
btnRandDeck2=Constructed (2 color)
ttbtnRandDeck2=Generate 2 color constructed deck in current deck area
btnRandDeck3=Constructed (3 color)
ttbtnRandDeck3=Generate 3 color constructed deck in current deck area
btnRandDeck5=Constructed (5 color)
ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
lblDeckGeneration=Deckerstellung
btnRandCardpool=zufällige Kartenauswahl
ttbtnRandCardpool=erzeugt eine zufällige Kartenauswahl
btnRandDeck2=Constructed (2 Farben)
ttbtnRandDeck2=Erzeugt konstuiertes Deck in zwei Farben
btnRandDeck3=Constructed (3 Farben)
ttbtnRandDeck3=Erzeugt konstuiertes Deck in drei Farben
btnRandDeck5=Constructed (5 Farben)
ttbtnRandDeck5=Erzeugt konstuiertes Deck in fünf Farben
#DeckCotroller.java
lblCurrentDeck2=Current Deck
lblUntitled=Untitled
lblCurrentDeck2=aktuelles Deck
lblUntitled=Unbenannt
#VPrompt.java
lblPrompt=Prompt
lblGameSetup=Game Setup
lblPrompt=Meldungen
lblGameSetup=Spielvorbereitung
#ColumnDef.java
lblAIStatus=AI Status
lblCMC=CMC
ttCMC=CMC
lblCN=CN
ttCN=Collector Number Order
ttColor=Color
lblCost=Cost
ttCost=Cost
lblAIStatus=KI-Status
lblCMC=UMK
ttCMC=Umgerechnete Manakosten
lblCN=SN
ttCN=Sammlernummer
ttColor=Farbe
lblCost=Kosten
ttCost=Kosten
lblDecks=Decks
lblDeleteEdit=Delete/Edit
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
ttFavorite=Favorite
lblFolder=Folder
ttFormats=Formats deck is legal in
lblMain=Main
ttMain=MainDeck
lblQty=Qty
lblQuantity=Quantity
lblSide=Side
lblSideboard=Sideboard
lblNew=New
lblOwned=Owned
lblPower=Power
ttPower=Power
lblPrice=Price
ttPrice=Price
lblRanking=Ranking
lblDraftRanking=Draft Ranking
lblToughness=Toughness
ttToughness=Toughness
ttType=Type
lblDeleteEdit=Löschen/Bearbeiten
lblSetEdition=Mysteriöse Spalte. Wir wissen nicht, wozu sie gut ist.
ttFavorite=Favorit
lblFolder=Ordner
ttFormats=In welchem Format das Deck legal ist
lblMain=Primär
ttMain=Das primäre Deck
lblQty=Anz.
lblQuantity=Anzahl
lblSide=Neben.
lblSideboard=Das Sideboard
lblNew=Neu
lblOwned=Besitz
lblPower=Stärke
ttPower=Stärke
lblPrice=Preis
ttPrice=Preis
lblRanking=Rang
lblDraftRanking=Draft-Rang
lblToughness=Widerstand
ttToughness=Widerstand
ttType=Typ

View File

@@ -35,6 +35,8 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Map.Entry;
import org.apache.commons.lang3.StringUtils;
public enum ColumnDef {
/**The column containing the inventory item name.*/
STRING("", "", 0, false, SortState.ASC,
@@ -512,7 +514,8 @@ public enum ColumnDef {
result = ((IPaperCard) i).getRules().getIntPower();
if (result == Integer.MAX_VALUE) {
if (((IPaperCard)i).getRules().getType().isPlaneswalker()) {
result = ((IPaperCard) i).getRules().getInitialLoyalty();
String loy = ((IPaperCard) i).getRules().getInitialLoyalty();
result = StringUtils.isNumeric(loy) ? Integer.valueOf(loy) : 0;
}
}
}