mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'master' of https://git.cardforge.org/core-developers/forge into ui-card-translation
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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("/");
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ public interface ICardCharacteristics {
|
||||
int getIntToughness();
|
||||
String getPower();
|
||||
String getToughness();
|
||||
int getInitialLoyalty();
|
||||
String getInitialLoyalty();
|
||||
|
||||
String getOracleText();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user