add UNTAPPED option to AttachedToTappedCondition

This commit is contained in:
xenohedron 2023-11-04 16:59:22 -04:00
parent 35ec41d8e0
commit 595a1d6f14
3 changed files with 18 additions and 25 deletions

View file

@ -1,4 +1,3 @@
package mage.cards.s;
import java.util.UUID;
@ -6,7 +5,6 @@ import mage.constants.SubType;
import mage.target.common.TargetCreaturePermanent;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.AttachedToTappedCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.AttachEffect;
@ -19,7 +17,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AttachmentType;
import mage.constants.CardType;
import mage.constants.Zone;
/**
*
@ -40,14 +37,11 @@ public final class SpectralCloak extends CardImpl {
this.addAbility(ability);
// Enchanted creature has shroud as long as it's untapped.
this.addAbility(new SimpleStaticAbility(
Zone.BATTLEFIELD,
new ConditionalContinuousEffect(
new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA),
new InvertCondition(AttachedToTappedCondition.instance),
"Enchanted creature has shroud as long as it's untapped."
)
));
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA),
AttachedToTappedCondition.UNTAPPED,
"Enchanted creature has shroud as long as it's untapped."
)));
}
private SpectralCloak(final SpectralCloak card) {

View file

@ -1,12 +1,9 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.AttachedToTappedCondition;
import mage.abilities.condition.common.EquipmentAttachedCondition;
import mage.abilities.costs.mana.GenericManaCost;
@ -16,17 +13,15 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.keyword.EquipAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
@ -47,14 +42,14 @@ public final class SwordOfTheParuns extends CardImpl {
// As long as equipped creature is tapped, tapped creatures you control get +2/+0.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostControlledEffect(2,0, Duration.WhileOnBattlefield, filterTapped),
new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.instance),
new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.TAPPED),
"As long as equipped creature is tapped, tapped creatures you control get +2/+0"
)));
// As long as equipped creature is untapped, untapped creatures you control get +0/+2.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostControlledEffect(0,2, Duration.WhileOnBattlefield, filterUntapped),
new CompoundCondition(EquipmentAttachedCondition.instance, new InvertCondition(AttachedToTappedCondition.instance)),
new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.UNTAPPED),
"As long as equipped creature is untapped, untapped creatures you control get +0/+2"
)));

View file

@ -1,5 +1,3 @@
package mage.abilities.condition.common;
import mage.abilities.Ability;
@ -11,7 +9,13 @@ import mage.game.permanent.Permanent;
* @author LevelX2
*/
public enum AttachedToTappedCondition implements Condition {
instance;
TAPPED(true),
UNTAPPED(false);
private final boolean tapped;
AttachedToTappedCondition(boolean tapped) {
this.tapped = tapped;
}
@Override
public boolean apply(Game game, Ability source) {
@ -23,6 +27,6 @@ public enum AttachedToTappedCondition implements Condition {
if (attachedTo == null) {
return false;
}
return attachedTo.isTapped();
return attachedTo.isTapped() == this.tapped;
}
}