mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
* Fixed a problem that abilities of cards could not be cast /played / activated if they had no mana costs (e.g. Cabal Therapy and Crucible of Worlds).
This commit is contained in:
parent
0009797a68
commit
16bc70576a
3 changed files with 10 additions and 9 deletions
|
@ -61,7 +61,7 @@ public class CabalTherapy extends CardImpl<CabalTherapy> {
|
||||||
this.color.setBlack(true);
|
this.color.setBlack(true);
|
||||||
|
|
||||||
// Name a nonland card. Target player reveals his or her hand and discards all cards with that name.
|
// Name a nonland card. Target player reveals his or her hand and discards all cards with that name.
|
||||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
this.getSpellAbility().addTarget(new TargetPlayer(true));
|
||||||
this.getSpellAbility().addEffect(new CabalTherapyEffect());
|
this.getSpellAbility().addEffect(new CabalTherapyEffect());
|
||||||
// Flashback-Sacrifice a creature.
|
// Flashback-Sacrifice a creature.
|
||||||
this.addAbility(new FlashbackAbility(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), true)), TimingRule.SORCERY));
|
this.addAbility(new FlashbackAbility(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), true)), TimingRule.SORCERY));
|
||||||
|
@ -80,7 +80,7 @@ public class CabalTherapy extends CardImpl<CabalTherapy> {
|
||||||
class CabalTherapyEffect extends OneShotEffect<CabalTherapyEffect> {
|
class CabalTherapyEffect extends OneShotEffect<CabalTherapyEffect> {
|
||||||
|
|
||||||
public CabalTherapyEffect() {
|
public CabalTherapyEffect() {
|
||||||
super(Outcome.Exile);
|
super(Outcome.Discard);
|
||||||
staticText = "Name a nonland card. Search target player's hand for all cards with that name and discard them";
|
staticText = "Name a nonland card. Search target player's hand for all cards with that name and discard them";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ class CabalTherapyEffect extends OneShotEffect<CabalTherapyEffect> {
|
||||||
game.informPlayers("Cabal Therapy, named card: [" + cardName + "]");
|
game.informPlayers("Cabal Therapy, named card: [" + cardName + "]");
|
||||||
for (Card card : player.getHand().getCards(game)) {
|
for (Card card : player.getHand().getCards(game)) {
|
||||||
if (card.getName().equals(cardName)) {
|
if (card.getName().equals(cardName)) {
|
||||||
card.moveToZone(Zone.GRAVEYARD, source.getId(), game, false);
|
player.discard(card, source, game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,9 +93,10 @@ public class SpellAbility extends ActivatedAbilityImpl<SpellAbility> {
|
||||||
if (!controllerId.equals(playerId)) {
|
if (!controllerId.equals(playerId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (this.getManaCosts().isEmpty()) {
|
// Why is this check made? It prevents Flashback with non mana costs (Cabal Therapy)
|
||||||
return false;
|
// if (this.getManaCosts().isEmpty()) {
|
||||||
}
|
// return false;
|
||||||
|
// }
|
||||||
if (costs.canPay(sourceId, controllerId, game)) {
|
if (costs.canPay(sourceId, controllerId, game)) {
|
||||||
if (getSpellAbilityType().equals(SpellAbilityType.SPLIT_FUSED)) {
|
if (getSpellAbilityType().equals(SpellAbilityType.SPLIT_FUSED)) {
|
||||||
SplitCard splitCard = (SplitCard) game.getCard(getSourceId());
|
SplitCard splitCard = (SplitCard) game.getCard(getSourceId());
|
||||||
|
|
|
@ -158,7 +158,7 @@ public class CardsImpl extends LinkedHashSet<UUID> implements Cards, Serializabl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<Card> getCards(FilterCard filter, Game game) {
|
public Set<Card> getCards(FilterCard filter, Game game) {
|
||||||
Set<Card> cards = new LinkedHashSet<Card>();
|
Set<Card> cards = new LinkedHashSet<>();
|
||||||
for (UUID card: this) {
|
for (UUID card: this) {
|
||||||
boolean match = filter.match(game.getCard(card), game);
|
boolean match = filter.match(game.getCard(card), game);
|
||||||
if (match) {
|
if (match) {
|
||||||
|
@ -170,7 +170,7 @@ public class CardsImpl extends LinkedHashSet<UUID> implements Cards, Serializabl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<Card> getCards(Game game) {
|
public Set<Card> getCards(Game game) {
|
||||||
Set<Card> cards = new LinkedHashSet<Card>();
|
Set<Card> cards = new LinkedHashSet<>();
|
||||||
for (UUID card: this) {
|
for (UUID card: this) {
|
||||||
cards.add(game.getCard(card));
|
cards.add(game.getCard(card));
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ public class CardsImpl extends LinkedHashSet<UUID> implements Cards, Serializabl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Card> getUniqueCards(Game game) {
|
public Collection<Card> getUniqueCards(Game game) {
|
||||||
Map<String, Card> cards = new HashMap<String, Card>();
|
Map<String, Card> cards = new HashMap<>();
|
||||||
for(UUID cardId: this) {
|
for(UUID cardId: this) {
|
||||||
Card card = game.getCard(cardId);
|
Card card = game.getCard(cardId);
|
||||||
if (!cards.containsKey(card.getName())) {
|
if (!cards.containsKey(card.getName())) {
|
||||||
|
|
Loading…
Reference in a new issue