* Added game to getSharedAbilities() method of split and adventure cards .

This commit is contained in:
LevelX2 2020-01-10 20:03:32 +01:00
parent f23841ce02
commit 8d8d02b07a
3 changed files with 17 additions and 18 deletions

View file

@ -1,5 +1,7 @@
package mage.cards; package mage.cards;
import java.util.List;
import java.util.UUID;
import mage.abilities.Abilities; import mage.abilities.Abilities;
import mage.abilities.AbilitiesImpl; import mage.abilities.AbilitiesImpl;
import mage.abilities.Ability; import mage.abilities.Ability;
@ -8,9 +10,6 @@ import mage.constants.CardType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import java.util.List;
import java.util.UUID;
/** /**
* @author TheElk801 * @author TheElk801
*/ */
@ -92,9 +91,9 @@ public abstract class AdventureCard extends CardImpl {
return allAbilities; return allAbilities;
} }
public Abilities<Ability> getSharedAbilities() { public Abilities<Ability> getSharedAbilities(Game game) {
// abilities without spellcard // abilities without spellcard
return super.getAbilities(); return super.getAbilities(game);
} }
@Override @Override

View file

@ -1,5 +1,8 @@
package mage.cards; package mage.cards;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import mage.MageObject; import mage.MageObject;
import mage.abilities.Abilities; import mage.abilities.Abilities;
import mage.abilities.AbilitiesImpl; import mage.abilities.AbilitiesImpl;
@ -10,10 +13,6 @@ import mage.constants.SpellAbilityType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/** /**
* @author LevelX2 * @author LevelX2
*/ */
@ -128,8 +127,8 @@ public abstract class SplitCard extends CardImpl {
* *
* @return * @return
*/ */
public Abilities<Ability> getSharedAbilities() { public Abilities<Ability> getSharedAbilities(Game game) {
return super.getAbilities(); return super.getAbilities(game);
} }
@Override @Override

View file

@ -1574,7 +1574,8 @@ public abstract class PlayerImpl implements Player, Serializable {
} }
} }
} }
@Override
@Override
public LinkedHashMap<UUID, ActivatedAbility> getUseableActivatedAbilities(MageObject object, Zone zone, Game game) { public LinkedHashMap<UUID, ActivatedAbility> getUseableActivatedAbilities(MageObject object, Zone zone, Game game) {
// TODO: replace with getPlayableFromNonHandCardAll (uses for all tests) // TODO: replace with getPlayableFromNonHandCardAll (uses for all tests)
boolean previousState = game.inCheckPlayableState(); boolean previousState = game.inCheckPlayableState();
@ -1590,10 +1591,10 @@ public abstract class PlayerImpl implements Player, Serializable {
getUseableActivatedAbilitiesHalfImpl(splitCard.getRightHalfCard(), getUseableActivatedAbilitiesHalfImpl(splitCard.getRightHalfCard(),
zone, game, splitCard.getRightHalfCard().getAbilities(game), useable); zone, game, splitCard.getRightHalfCard().getAbilities(game), useable);
getUseableActivatedAbilitiesHalfImpl(splitCard, getUseableActivatedAbilitiesHalfImpl(splitCard,
zone, game, splitCard.getSharedAbilities(), useable); zone, game, splitCard.getSharedAbilities(game), useable);
} else if (object instanceof Card){ } else if (object instanceof Card) {
getUseableActivatedAbilitiesHalfImpl(object, getUseableActivatedAbilitiesHalfImpl(object,
zone, game, ((Card)object).getAbilities(game), useable); zone, game, ((Card) object).getAbilities(game), useable);
} else if (object != null) { } else if (object != null) {
getUseableActivatedAbilitiesHalfImpl(object, getUseableActivatedAbilitiesHalfImpl(object,
zone, game, object.getAbilities(), useable); zone, game, object.getAbilities(), useable);
@ -3245,12 +3246,12 @@ public abstract class PlayerImpl implements Player, Serializable {
SplitCard splitCard = (SplitCard) card; SplitCard splitCard = (SplitCard) card;
getPlayableFromNonHandCardSingle(game, fromZone, splitCard.getLeftHalfCard(), splitCard.getLeftHalfCard().getAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, splitCard.getLeftHalfCard(), splitCard.getLeftHalfCard().getAbilities(), availableMana, output);
getPlayableFromNonHandCardSingle(game, fromZone, splitCard.getRightHalfCard(), splitCard.getRightHalfCard().getAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, splitCard.getRightHalfCard(), splitCard.getRightHalfCard().getAbilities(), availableMana, output);
getPlayableFromNonHandCardSingle(game, fromZone, splitCard, splitCard.getSharedAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, splitCard, splitCard.getSharedAbilities(game), availableMana, output);
} else if (card instanceof AdventureCard) { } else if (card instanceof AdventureCard) {
// adventure must use different card characteristics for different spells (main or adventure) // adventure must use different card characteristics for different spells (main or adventure)
AdventureCard adventureCard = (AdventureCard) card; AdventureCard adventureCard = (AdventureCard) card;
getPlayableFromNonHandCardSingle(game, fromZone, adventureCard.getSpellCard(), adventureCard.getSpellCard().getAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, adventureCard.getSpellCard(), adventureCard.getSpellCard().getAbilities(), availableMana, output);
getPlayableFromNonHandCardSingle(game, fromZone, adventureCard, adventureCard.getSharedAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, adventureCard, adventureCard.getSharedAbilities(game), availableMana, output);
} else { } else {
getPlayableFromNonHandCardSingle(game, fromZone, card, card.getAbilities(), availableMana, output); getPlayableFromNonHandCardSingle(game, fromZone, card, card.getAbilities(), availableMana, output);
} }