diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java
index 0527766fcbe..c7c5a495107 100644
--- a/forge-game/src/main/java/forge/game/card/Card.java
+++ b/forge-game/src/main/java/forge/game/card/Card.java
@@ -3226,11 +3226,15 @@ public class Card extends GameEntity implements Comparable {
}
public final void tap() {
+ tap(false);
+ }
+ public final void tap(boolean attacker) {
if (tapped) { return; }
// Run triggers
final Map runParams = Maps.newTreeMap();
runParams.put("Card", this);
+ runParams.put("Attacker", attacker);
getGame().getTriggerHandler().runTrigger(TriggerType.Taps, runParams, false);
setTapped(true);
diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java
index 13995f9f4eb..4a113d7fa59 100644
--- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java
+++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java
@@ -526,7 +526,7 @@ public class PhaseHandler implements java.io.Serializable {
if (canAttack) {
if (shouldTapForAttack) {
- attacker.tap();
+ attacker.tap(true);
}
} else {
combat.removeFromCombat(attacker);
diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java
index b1bff87bae1..44185a79ef7 100644
--- a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java
+++ b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java
@@ -28,7 +28,6 @@ import java.util.Map;
*
*
* @author Forge
- * @version $Id$
*/
public class TriggerTaps extends Trigger {
@@ -50,15 +49,26 @@ public class TriggerTaps extends Trigger {
/** {@inheritDoc} */
@Override
- public final boolean performTest(final java.util.Map runParams2) {
+ public final boolean performTest(final Map runParams2) {
final Card tapper = (Card) runParams2.get("Card");
- if (this.mapParams.containsKey("ValidCard")) {
- if (!tapper.isValid(this.mapParams.get("ValidCard").split(","), this.getHostCard().getController(),
- this.getHostCard(), null)) {
+ if (hasParam("ValidCard")) {
+ if (!tapper.isValid(getParam("ValidCard").split(","), getHostCard().getController(),
+ getHostCard(), null)) {
return false;
}
}
+ if (hasParam("Attacker")) {
+ if ("True".equalsIgnoreCase(getParam("Attacker"))) {
+ if (!(Boolean)runParams2.get("Attacker")) {
+ return false;
+ }
+ } else if ("False".equalsIgnoreCase(getParam("Attacker"))) {
+ if ((Boolean)runParams2.get("Attacker")) {
+ return false;
+ }
+ }
+ }
return true;
}
@@ -67,7 +77,7 @@ public class TriggerTaps extends Trigger {
/** {@inheritDoc} */
@Override
public final void setTriggeringObjects(final SpellAbility sa) {
- sa.setTriggeringObject("Card", this.getRunParams().get("Card"));
+ sa.setTriggeringObject("Card", getRunParams().get("Card"));
}
@Override
diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerType.java b/forge-game/src/main/java/forge/game/trigger/TriggerType.java
index 53ccf1c3df3..0dfb2d1e3b5 100644
--- a/forge-game/src/main/java/forge/game/trigger/TriggerType.java
+++ b/forge-game/src/main/java/forge/game/trigger/TriggerType.java
@@ -80,7 +80,6 @@ public enum TriggerType {
SpellAbilityCast(TriggerSpellAbilityCast.class),
SpellCast(TriggerSpellAbilityCast.class),
Surveil(TriggerSurveil.class),
- Tapped(TriggerTaps.class),
Taps(TriggerTaps.class),
TapsForMana(TriggerTapsForMana.class),
Transformed(TriggerTransformed.class),
diff --git a/forge-gui/res/cardsfolder/upcoming/verity_circle.txt b/forge-gui/res/cardsfolder/upcoming/verity_circle.txt
new file mode 100644
index 00000000000..e7e0786babc
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/verity_circle.txt
@@ -0,0 +1,7 @@
+Name:Verity Circle
+ManaCost:2 U
+Types:Enchantment
+T:Mode$ Taps | ValidCard$ Creature.OppCtrl | Attacker$ False | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a creature an opponent controls becomes tapped, if it isn't being declared as an attacker, you may draw a card.
+SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1
+A:AB$ Tap | Cost$ 4 U | ValidTgts$ Creature.withoutFlying | TgtPrompt$ Select target creature without flying | SpellDescription$ Tap target creature without flying.
+Oracle:Whenever a creature an opponent controls becomes tapped, if it isn't being declared as an attacker, you may draw a card.\n{4}{U}: Tap target creature without flying.