@Override public MadnessTriggeredAbility copy() { return new MadnessTriggeredAbility(this); }
MadnessTriggeredAbility(ManaCosts<ManaCost> madnessCost, UUID madnessOriginalId) { super(Zone.EXILED, new MadnessCastEffect(madnessCost), true); this.madnessOriginalId = madnessOriginalId; this.setRuleVisible(false); }
@Override public boolean resolve(Game game) { if (!super.resolve(game)) { Card card = game.getCard(getSourceId()); if (card != null) { Player owner = game.getPlayer(card.getOwnerId()); if (owner != null) { // if cast was not successfull, the card is moved to graveyard owner.moveCards(card, Zone.GRAVEYARD, this, game); } } return false; } return true; }
@SuppressWarnings("unchecked") public MadnessAbility(Card card, ManaCosts madnessCost) { super(Zone.HAND, new MadnessReplacementEffect((ManaCosts<ManaCost>) madnessCost)); addSubAbility(new MadnessTriggeredAbility((ManaCosts<ManaCost>) madnessCost, getOriginalId())); rule = "Madness " + madnessCost.getText() + " <i>(If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)</i>"; }