mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 13:02:06 -08:00
* Toxin Sliver - Fixed that the damaged creature was not destroyed.
This commit is contained in:
parent
2d9fa97808
commit
6d17199129
4 changed files with 39 additions and 12 deletions
|
|
@ -19,14 +19,29 @@ import mage.target.targetpointer.FixedTarget;
|
|||
|
||||
/**
|
||||
*
|
||||
* @author Ludwig.Hirth
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private final boolean combatDamageOnly;
|
||||
private final FilterPermanent filterPermanent;
|
||||
private final SetTargetPointer setTargetPointer;
|
||||
|
||||
|
||||
/**
|
||||
* This ability works only for permanents doing damage.
|
||||
*
|
||||
* @param effect
|
||||
* @param optional
|
||||
* @param filterPermanent The filter that restricts which permanets have to
|
||||
* trigger
|
||||
* @param setTargetPointer The target to be set to target pointer of the
|
||||
* effect.<br>
|
||||
* - PLAYER = player controlling the damage source.<br>
|
||||
* - PERMANENT = source permanent.<br>
|
||||
* - PERMANENT_TARGET = damaged creature.
|
||||
* @param combatDamageOnly The flag to determine if only combat damage has
|
||||
* to trigger
|
||||
*/
|
||||
public DealsDamageToACreatureAllTriggeredAbility(Effect effect, boolean optional, FilterPermanent filterPermanent, SetTargetPointer setTargetPointer, boolean combatDamageOnly) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.combatDamageOnly = combatDamageOnly;
|
||||
|
|
@ -64,7 +79,13 @@ public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityI
|
|||
effect.setTargetPointer(new FixedTarget(permanent.getControllerId()));
|
||||
break;
|
||||
case PERMANENT:
|
||||
effect.setTargetPointer(new FixedTarget(permanent.getId(), permanent.getZoneChangeCounter(game)));
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
break;
|
||||
case PERMANENT_TARGET:
|
||||
Permanent permanent_target = game.getPermanentOrLKIBattlefield(event.getTargetId());
|
||||
if (permanent_target != null) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent_target, game));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -77,7 +98,7 @@ public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityI
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + filterPermanent.getMessage() + " deals "
|
||||
+ (combatDamageOnly ? "combat ":"") + "damage to a creature, " + super.getRule();
|
||||
return "Whenever " + filterPermanent.getMessage() + " deals "
|
||||
+ (combatDamageOnly ? "combat " : "") + "damage to a creature, " + super.getRule();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,5 +33,11 @@ package mage.constants;
|
|||
*/
|
||||
public enum SetTargetPointer {
|
||||
|
||||
NONE, PLAYER, SPELL, CARD, PERMANENT, ATTACHED_TO_CONTROLLER
|
||||
NONE,
|
||||
PLAYER,
|
||||
SPELL,
|
||||
CARD,
|
||||
PERMANENT,
|
||||
PERMANENT_TARGET,
|
||||
ATTACHED_TO_CONTROLLER
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue