From bc5c381fef6cf8a84bc98dbece05657219b3a001 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 14 Apr 2023 18:28:25 +0400 Subject: [PATCH] GUI: fixed card's defense stat drawing in deck editor --- .../main/java/mage/cards/mock/MockCard.java | 21 ++++++++++--------- .../java/mage/cards/repository/CardInfo.java | 4 ++++ Mage/src/main/java/mage/util/CardUtil.java | 11 ++++++++++ 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Mage/src/main/java/mage/cards/mock/MockCard.java b/Mage/src/main/java/mage/cards/mock/MockCard.java index dd767762b8e..4fd1d0560be 100644 --- a/Mage/src/main/java/mage/cards/mock/MockCard.java +++ b/Mage/src/main/java/mage/cards/mock/MockCard.java @@ -8,6 +8,7 @@ import mage.cards.CardImpl; import mage.cards.ModalDoubleFacesCard; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; +import mage.util.CardUtil; import java.util.ArrayList; import java.util.List; @@ -26,6 +27,7 @@ public class MockCard extends CardImpl { // PlaneswalkerEntersWithLoyaltyAbility of the card... but the MockCard // only has MockAbilities. private final int startingLoyalty; + private final int startingDefense; // mana cost extra info for multiple mana drawing // warning, don't use ManaCost objects here due too much memory consumptions @@ -79,16 +81,9 @@ public class MockCard extends CardImpl { this.isModalDoubleFacesCard = true; } - switch (card.getStartingLoyalty()) { - case "X": - this.startingLoyalty = -2; - break; - case "": - this.startingLoyalty = -1; - break; - default: - this.startingLoyalty = Integer.parseInt(card.getStartingLoyalty()); - } + this.startingLoyalty = CardUtil.convertLoyaltyOrDefense(card.getStartingLoyalty()); + this.startingDefense = CardUtil.convertLoyaltyOrDefense(card.getStartingDefense()); + this.flipCardName = card.getFlipCardName(); for (String ruleText : card.getRules()) { this.addAbility(textAbilityFromString(ruleText)); @@ -99,6 +94,7 @@ public class MockCard extends CardImpl { super(card); this.startingLoyalty = card.startingLoyalty; + this.startingDefense = card.startingDefense; this.manaCostLeftStr = new ArrayList<>(card.manaCostLeftStr); this.manaCostRightStr = new ArrayList<>(card.manaCostRightStr); this.manaCostStr = new ArrayList<>(card.manaCostStr); @@ -112,6 +108,11 @@ public class MockCard extends CardImpl { return startingLoyalty; } + @Override + public int getStartingDefense() { + return startingDefense; + } + @Override public MockCard copy() { return new MockCard(this); diff --git a/Mage/src/main/java/mage/cards/repository/CardInfo.java b/Mage/src/main/java/mage/cards/repository/CardInfo.java index 5c78503c055..fff6599c9ee 100644 --- a/Mage/src/main/java/mage/cards/repository/CardInfo.java +++ b/Mage/src/main/java/mage/cards/repository/CardInfo.java @@ -390,6 +390,10 @@ public class CardInfo { return startingLoyalty; } + public String getStartingDefense() { + return startingDefense; + } + public String getSetCode() { return setCode; } diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index 807a8972439..47fb1d1cc4d 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -1737,6 +1737,17 @@ public final class CardUtil { } } + public static int convertLoyaltyOrDefense(String value) { + switch (value) { + case "X": + return -2; + case "": + return -1; + default: + return Integer.parseInt(value); + } + } + public static void checkSetParamForSerializationCompatibility(Set data) { // HashMap uses inner class for Keys without serialization support, // so you can't use it for client-server data