@Override public Heal copy() { return new Heal(this); } }
public Heal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}"); // Prevent the next 1 damage that would be dealt to any target this turn. // Draw a card at the beginning of the next turn's upkeep. this.getSpellAbility().addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, 1)); this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
Mage fireMage = new Mage("Red Niminim"); fireMage.addSpell(new Fireball()); fireMage.addAttribute(Attribute.RESIST_FIRE); fireMage.addAttribute(Attribute.WEAK_TO_COLD); Mage iceMage = new Mage("Blue Niminim"); fireMage.addSpell(new Icestorm()); fireMage.addAttribute(Attribute.RESIST_COLD); fireMage.addAttribute(Attribute.WEAK_TO_FIRE); Cleric cleric = new Cleric("Friar Joe"); cleric.addSpell(new Heal()); // battle! fireMage.castSpell("Fireball", cleric); // 15 damage fireMage.castSpell("Fireball", iceMage); // 30 damage fireMage.castSpell("Fireball", fireMage); // 0 damage iceMage.castSpell("Icestorm", cleric); // 15 damage iceMage.castSpell("Icestorm", fireMage); // 30 damage iceMage.castSpell("Icestorm", iceMage); // 0 damage cleric.castSpell("Heal", cleric); // 15 healed