From 27bb6fa432b7d85e0d66a1662508563126b291e1 Mon Sep 17 00:00:00 2001 From: Patrick Hulin Date: Wed, 11 Dec 2019 22:42:32 -0500 Subject: [PATCH] Conform AdventureCard to new getAbilities plan. --- Mage/src/main/java/mage/cards/AdventureCard.java | 15 ++++++++++----- Mage/src/main/java/mage/cards/Card.java | 2 +- Mage/src/main/java/mage/players/PlayerImpl.java | 8 ++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Mage/src/main/java/mage/cards/AdventureCard.java b/Mage/src/main/java/mage/cards/AdventureCard.java index 26c649ba168..3df44282d8d 100644 --- a/Mage/src/main/java/mage/cards/AdventureCard.java +++ b/Mage/src/main/java/mage/cards/AdventureCard.java @@ -20,10 +20,7 @@ public abstract class AdventureCard extends CardImpl { public AdventureCard(UUID ownerId, CardSetInfo setInfo, CardType[] types, CardType[] typesSpell, String costs, String adventureName, String costsSpell) { super(ownerId, setInfo, types, costs); - spellCard = new AdventureCardSpellImpl(ownerId, setInfo, adventureName, typesSpell, costsSpell, this); - Ability adventureAbility = spellCard.getSpellAbility(); - this.addAbility(adventureAbility); - adventureAbility.setSourceId(spellCard.getId()); + this.spellCard = new AdventureCardSpellImpl(ownerId, setInfo, adventureName, typesSpell, costsSpell, this); } public AdventureCard(AdventureCard card) { @@ -78,11 +75,19 @@ public abstract class AdventureCard extends CardImpl { } } + @Override + public Abilities getAbilities() { + Abilities allAbilities = new AbilitiesImpl<>(); + allAbilities.addAll(spellCard.getAbilities()); + allAbilities.addAll(super.getAbilities()); + return allAbilities; + } + @Override public Abilities getAbilities(Game game) { Abilities allAbilities = new AbilitiesImpl<>(); - allAbilities.addAll(super.getAbilities(game)); allAbilities.addAll(spellCard.getAbilities(game)); + allAbilities.addAll(super.getAbilities(game)); return allAbilities; } diff --git a/Mage/src/main/java/mage/cards/Card.java b/Mage/src/main/java/mage/cards/Card.java index bac8f59d403..a4ea5154a5f 100644 --- a/Mage/src/main/java/mage/cards/Card.java +++ b/Mage/src/main/java/mage/cards/Card.java @@ -150,7 +150,7 @@ public interface Card extends MageObject { /** * - * @return The main card of a split half card, otherwise the card itself is + * @return The main card of a split half card or adventure spell card, otherwise the card itself is * returned */ Card getMainCard(); diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 19233cda2a5..33584270c14 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -3422,10 +3422,10 @@ public abstract class PlayerImpl implements Player, Serializable { playableObjects.add(ability.getSourceId()); // main card must be marked playable in GUI - MageObject object = game.getObject(ability.getSourceId()); - if (object instanceof SplitCardHalf) { - UUID splitCardId = ((Card) object).getMainCard().getId(); - playableObjects.add(splitCardId); + Card card = game.getCard(ability.getSourceId()); + if (card != null && card.getMainCard().getId() != card.getId()) { + UUID mainCardId = card.getMainCard().getId(); + playableObjects.add(mainCardId); } } }