mirror of
https://github.com/correl/mage.git
synced 2025-01-12 11:08:01 +00:00
fixed Kederekt Parasite dealing unpreventable damage
This commit is contained in:
parent
e0bead005a
commit
00e953ed19
1 changed files with 20 additions and 15 deletions
|
@ -29,17 +29,21 @@ package mage.cards.k;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
import mage.ObjectColor;
|
||||||
import mage.abilities.TriggeredAbilityImpl;
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.ComparisonType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.game.events.GameEvent.EventType;
|
import mage.game.events.GameEvent.EventType;
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,7 +53,7 @@ import mage.target.targetpointer.FixedTarget;
|
||||||
public class KederektParasite extends CardImpl {
|
public class KederektParasite extends CardImpl {
|
||||||
|
|
||||||
public KederektParasite(UUID ownerId, CardSetInfo setInfo) {
|
public KederektParasite(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||||
this.subtype.add(SubType.HORROR);
|
this.subtype.add(SubType.HORROR);
|
||||||
|
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
|
@ -71,8 +75,14 @@ public class KederektParasite extends CardImpl {
|
||||||
|
|
||||||
class KederektParasiteTriggeredAbility extends TriggeredAbilityImpl {
|
class KederektParasiteTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
|
private static final FilterControlledPermanent filter = new FilterControlledPermanent();
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(new ColorPredicate(ObjectColor.RED));
|
||||||
|
}
|
||||||
|
|
||||||
KederektParasiteTriggeredAbility() {
|
KederektParasiteTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(1, false, "opponent"), true);
|
super(Zone.BATTLEFIELD, new DamageTargetEffect(1, true, "opponent"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
KederektParasiteTriggeredAbility(final KederektParasiteTriggeredAbility ability) {
|
KederektParasiteTriggeredAbility(final KederektParasiteTriggeredAbility ability) {
|
||||||
|
@ -89,20 +99,16 @@ class KederektParasiteTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
return event.getType() == EventType.DREW_CARD;
|
return event.getType() == EventType.DREW_CARD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkInterveningIfClause(Game game) {
|
||||||
|
return new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0).apply(game, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
if (game.getOpponents(this.getControllerId()).contains(event.getPlayerId())) {
|
if (game.getOpponents(this.getControllerId()).contains(event.getPlayerId())) {
|
||||||
boolean youControlRedPermanent = false;
|
getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(this.getControllerId())) {
|
return true;
|
||||||
if (permanent.getColor(game).isRed()) {
|
|
||||||
youControlRedPermanent = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (youControlRedPermanent) {
|
|
||||||
getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId()));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -112,4 +118,3 @@ class KederektParasiteTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
return "Whenever an opponent draws a card, if you control a red permanent, you may have {this} deal 1 damage to that player.";
|
return "Whenever an opponent draws a card, if you control a red permanent, you may have {this} deal 1 damage to that player.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue