diff --git a/.gitattributes b/.gitattributes index 45f33cd3f2c..77a4534e03f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5573,6 +5573,7 @@ res/cardsfolder/j/jesters_cap.txt svneol=native#text/plain res/cardsfolder/j/jesters_mask.txt svneol=native#text/plain res/cardsfolder/j/jesters_scepter.txt -text res/cardsfolder/j/jet_medallion.txt svneol=native#text/plain +res/cardsfolder/j/jetting_glasskite.txt -text res/cardsfolder/j/jeweled_bird.txt -text res/cardsfolder/j/jeweled_spirit.txt svneol=native#text/plain res/cardsfolder/j/jeweled_torque.txt -text diff --git a/res/cardsfolder/j/jetting_glasskite.txt b/res/cardsfolder/j/jetting_glasskite.txt new file mode 100644 index 00000000000..ebaebba6f4c --- /dev/null +++ b/res/cardsfolder/j/jetting_glasskite.txt @@ -0,0 +1,10 @@ +Name:Jetting Glasskite +ManaCost:4 U U +Types:Creature Spirit +PT:4/4 +K:Flying +T:Mode$ BecomesTarget | ValidTarget$ Card.Self | TriggerZones$ Battlefield | FirstTime$ True | Execute$ GlasskiteCounter | TriggerDescription$ Whenever CARDNAME becomes the target of a spell or ability for the first time in a turn, counter that spell or ability. +SVar:GlasskiteCounter:AB$ Counter | Cost$ 0 | Defined$ TriggeredSourceSA +SVar:Picture:http://www.wizards.com/global/images/magic/general/jetting_glasskite.jpg +Oracle:Flying\nWhenever Jetting Glasskite becomes the target of a spell or ability for the first time in a turn, counter that spell or ability. +SetInfo:BOK Uncommon \ No newline at end of file diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 063e61f4e5c..a69470959eb 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -138,6 +138,7 @@ public class Card extends GameEntity implements Comparable { private boolean isCommander = false; private boolean startsGameInPlay = false; private boolean drawnThisTurn = false; + private boolean becameTargetThisTurn = false; private boolean tapped = false; private boolean sickness = true; // summoning sickness private boolean token = false; @@ -2970,6 +2971,21 @@ public class Card extends GameEntity implements Comparable { return this.sickness && this.isCreature() && !this.hasKeyword("Haste"); } + /** + * @return the becameTargetThisTurn + */ + public boolean hasBecomeTargetThisTurn() { + return becameTargetThisTurn; + } + + /** + * @param becameTargetThisTurn0 the becameTargetThisTurn to set + */ + public void setBecameTargetThisTurn(boolean becameTargetThisTurn) { + this.becameTargetThisTurn = becameTargetThisTurn; + } + + /** *

* Getter for the field owner. @@ -8079,6 +8095,7 @@ public class Card extends GameEntity implements Comparable { resetDealtDamageToPlayerThisTurn(); getDamageHistory().newTurn(); setRegeneratedThisTurn(0); + setBecameTargetThisTurn(false); clearMustBlockCards(); getDamageHistory().setCreatureAttackedLastTurnOf(turn, getDamageHistory().getCreatureAttackedThisTurn()); getDamageHistory().setCreatureAttackedThisTurn(false); diff --git a/src/main/java/forge/card/trigger/TriggerBecomesTarget.java b/src/main/java/forge/card/trigger/TriggerBecomesTarget.java index 4b814683dfa..6c8e8c1132e 100644 --- a/src/main/java/forge/card/trigger/TriggerBecomesTarget.java +++ b/src/main/java/forge/card/trigger/TriggerBecomesTarget.java @@ -76,6 +76,11 @@ public class TriggerBecomesTarget extends Trigger { return false; } } + if (this.mapParams.containsKey("FirstTime")) { + if (!runParams2.containsKey("FirstTime")) { + return false; + } + } return true; } diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index f62880ba5ed..65264ecb76d 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -411,6 +411,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable