mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
* Enslave - Fixed that the set source of the damge was wrong.
This commit is contained in:
parent
f22fb380b7
commit
9e1111748d
4 changed files with 76 additions and 14 deletions
|
@ -25,12 +25,9 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.sets.mirrodinbesieged;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.constants.*;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
|
@ -39,6 +36,11 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
|||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.abilities.keyword.InfectAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -48,21 +50,26 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class CorruptedConscience extends CardImpl {
|
||||
|
||||
public CorruptedConscience (UUID ownerId) {
|
||||
public CorruptedConscience(UUID ownerId) {
|
||||
super(ownerId, 22, "Corrupted Conscience", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
|
||||
this.expansionSetCode = "MBS";
|
||||
this.subtype.add("Aura");
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// You control enchanted creature.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
|
||||
|
||||
// Enchanted creature has infect. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(InfectAbility.getInstance(), AttachmentType.AURA)));
|
||||
}
|
||||
|
||||
public CorruptedConscience (final CorruptedConscience card) {
|
||||
public CorruptedConscience(final CorruptedConscience card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,12 +25,9 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.sets.newphyrexia;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.constants.*;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
|
@ -39,6 +36,11 @@ import mage.abilities.effects.common.AttachEffect;
|
|||
import mage.abilities.effects.common.continuous.ControlEnchantedEffect;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
|
@ -51,21 +53,26 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class Enslave extends CardImpl {
|
||||
|
||||
public Enslave (UUID ownerId) {
|
||||
public Enslave(UUID ownerId) {
|
||||
super(ownerId, 58, "Enslave", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{4}{B}{B}");
|
||||
this.expansionSetCode = "NPH";
|
||||
this.subtype.add("Aura");
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// You control enchanted creature.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
|
||||
|
||||
// At the beginning of your upkeep, enchanted creature deals 1 damage to its owner.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new EnslaveEffect(), TargetController.YOU, false, false));
|
||||
}
|
||||
|
||||
public Enslave (final Enslave card) {
|
||||
public Enslave(final Enslave card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
@ -77,6 +84,7 @@ public class Enslave extends CardImpl {
|
|||
}
|
||||
|
||||
class EnslaveEffect extends OneShotEffect {
|
||||
|
||||
EnslaveEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "enchanted creature deals 1 damage to its owner";
|
||||
|
@ -88,13 +96,13 @@ class EnslaveEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent sourcePermanent = game.getPermanent(source.getSourceId());
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
if (sourcePermanent != null) {
|
||||
Permanent attached = game.getPermanent(sourcePermanent.getAttachedTo());
|
||||
Permanent attached = game.getPermanentOrLKIBattlefield(sourcePermanent.getAttachedTo());
|
||||
if (attached != null) {
|
||||
Player owner = game.getPlayer(attached.getOwnerId());
|
||||
if (owner != null) {
|
||||
owner.damage(1, source.getSourceId(), game, false, true);
|
||||
owner.damage(1, attached.getId(), game, false, true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -108,4 +116,4 @@ class EnslaveEffect extends OneShotEffect {
|
|||
return new EnslaveEffect(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,7 +58,10 @@ public class PhyrexianObliterator extends CardImpl {
|
|||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Whenever a source deals damage to Phyrexian Obliterator, that source's controller sacrifices that many permanents.
|
||||
this.addAbility(new PhyrexianObliteratorTriggeredAbility());
|
||||
}
|
||||
|
||||
|
@ -73,6 +76,7 @@ public class PhyrexianObliterator extends CardImpl {
|
|||
}
|
||||
|
||||
class PhyrexianObliteratorTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
PhyrexianObliteratorTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new SacrificeEffect(new FilterPermanent(), 0, ""));
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
package org.mage.test.cards.abilities.keywords;
|
||||
|
||||
import mage.abilities.keyword.InfectAbility;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
@ -126,4 +127,46 @@ public class InfectTest extends CardTestPlayerBase {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Phyrexian Obliterator is enchanted with Corrupted Conscience and Enslave
|
||||
*
|
||||
* on upkeep Phyrexian Obliterator does 1 damage to its owner but this
|
||||
* damage was NOT infect damage and it should have been
|
||||
*/
|
||||
@Test
|
||||
public void GainedInfectByEnchantment() {
|
||||
// Trample
|
||||
// Whenever a source deals damage to Phyrexian Obliterator, that source's controller sacrifices that many permanents.
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Phyrexian Obliterator");
|
||||
|
||||
// Enchant creature
|
||||
// You control enchanted creature.
|
||||
// Enchanted creature has infect. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)
|
||||
addCard(Zone.HAND, playerA, "Corrupted Conscience"); // Enchantment {3}{U}{U}
|
||||
// Enchant creature
|
||||
// You control enchanted creature.
|
||||
// At the beginning of your upkeep, enchanted creature deals 1 damage to its owner.
|
||||
addCard(Zone.HAND, playerA, "Enslave"); // Enchantment {4}{B}{B}
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 9);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Corrupted Conscience", "Phyrexian Obliterator");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Enslave", "Phyrexian Obliterator");
|
||||
|
||||
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Phyrexian Obliterator", 1);
|
||||
assertPermanentCount(playerA, "Corrupted Conscience", 1);
|
||||
assertPermanentCount(playerA, "Enslave", 1);
|
||||
|
||||
assertAbility(playerA, "Phyrexian Obliterator", InfectAbility.getInstance(), true);
|
||||
|
||||
assertLife(playerA, 20);
|
||||
assertLife(playerB, 20);
|
||||
|
||||
assertCounterCount(playerB, CounterType.POISON, 1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue