- Fixed Treacherous Werewolf.

This commit is contained in:
Sloth
2013-05-26 13:58:05 +00:00
parent 96069d7c65
commit 4857dec4b0
6 changed files with 15 additions and 11 deletions

View File

@@ -2,8 +2,8 @@ Name:Treacherous Werewolf
ManaCost:2 B ManaCost:2 B
Types:Creature Werewolf Minion Types:Creature Werewolf Minion
PT:2/2 PT:2/2
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | AddTrigger$ Dies | AddSVar$ TrigLose | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +2/+2 and has "When CARDNAME dies, you lose 4 life." S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | AddTrigger$ Dies | Condition$ Threshold | Description$ Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +2/+2 and has "When CARDNAME dies, you lose 4 life."
SVar:Dies:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigLose | Secondary$ True | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you lose 4 life. SVar:Dies:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigLose | Secondary$ True | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you lose 4 life.
SVar:TrigLose:AB$ LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ 4 SVar:TrigLose:AB$ LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ 4
SVar:Picture:http://www.wizards.com/global/images/magic/general/treacherous_werewolf.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/treacherous_werewolf.jpg
Oracle:Threshold - As long as seven or more cards are in your graveyard, Treacherous Werewolf gets +2/+2 and has "When Treacherous Werewolf dies, you lose 4 life." Oracle:Threshold - As long as seven or more cards are in your graveyard, Treacherous Werewolf gets +2/+2 and has "When Treacherous Werewolf dies, you lose 4 life."

View File

@@ -784,10 +784,10 @@ public class Card extends GameEntity implements Comparable<Card> {
* @param trigs * @param trigs
* a {@link java.util.ArrayList} object. * a {@link java.util.ArrayList} object.
*/ */
public final void setTriggers(final List<Trigger> trigs) { public final void setTriggers(final List<Trigger> trigs, boolean intrinsicOnly) {
final List<Trigger> copyList = new CopyOnWriteArrayList<Trigger>(); final List<Trigger> copyList = new CopyOnWriteArrayList<Trigger>();
for (final Trigger t : trigs) { for (final Trigger t : trigs) {
if (t.isIntrinsic()) { if (!intrinsicOnly || t.isIntrinsic()) {
copyList.add(t.getCopyForHostCard(this)); copyList.add(t.getCopyForHostCard(this));
} }
} }

View File

@@ -121,7 +121,7 @@ public final class CardUtil {
newCopy.setController(in.getController(), 0); newCopy.setController(in.getController(), 0);
newCopy.getCharacteristics().copyFrom(in.getState(in.getCurState())); newCopy.getCharacteristics().copyFrom(in.getState(in.getCurState()));
newCopy.setType(new ArrayList<String>(in.getType())); newCopy.setType(new ArrayList<String>(in.getType()));
newCopy.setTriggers(in.getTriggers()); newCopy.setTriggers(in.getTriggers(), false);
for (SpellAbility sa : in.getManaAbility()) { for (SpellAbility sa : in.getManaAbility()) {
newCopy.addSpellAbility(sa); newCopy.addSpellAbility(sa);
sa.setSourceCard(in); sa.setSourceCard(in);

View File

@@ -495,7 +495,7 @@ public class CardFactory {
to.setIntrinsicAbilities(from.getUnparsedAbilities()); to.setIntrinsicAbilities(from.getUnparsedAbilities());
to.setImageKey(from.getImageKey()); to.setImageKey(from.getImageKey());
to.setTriggers(from.getTriggers()); to.setTriggers(from.getTriggers(), true);
to.setReplacementEffects(from.getReplacementEffects()); to.setReplacementEffects(from.getReplacementEffects());
to.setStaticAbilityStrings(from.getStaticAbilityStrings()); to.setStaticAbilityStrings(from.getStaticAbilityStrings());
@@ -523,7 +523,7 @@ public class CardFactory {
CardCharacteristics characteristics = from.getState(stateToCopy); CardCharacteristics characteristics = from.getState(stateToCopy);
to.getCharacteristics().copyFrom(characteristics); to.getCharacteristics().copyFrom(characteristics);
// handle triggers and replacement effect through Card class interface // handle triggers and replacement effect through Card class interface
to.setTriggers(characteristics.getTriggers()); to.setTriggers(characteristics.getTriggers(), true);
} }
public static void copySpellAbility(SpellAbility from, SpellAbility to) { public static void copySpellAbility(SpellAbility from, SpellAbility to) {

View File

@@ -466,6 +466,7 @@ public abstract class Trigger extends TriggerReplacementBase {
copy.setMode(this.getMode()); copy.setMode(this.getMode());
copy.setTriggerPhases(this.validPhases); copy.setTriggerPhases(this.validPhases);
copy.setActiveZone(validHostZones); copy.setActiveZone(validHostZones);
copy.setTemporary(isTemporary());
return copy; return copy;
} }

View File

@@ -243,12 +243,15 @@ public class TriggerHandler {
boolean checkStatics = false; boolean checkStatics = false;
List<Card> playerCards = player.getAllCards(); List<Card> playerCards = player.getAllCards();
// add cards that move to hidden zones // check LKI copies for triggers
if (runParams.containsKey("Destination") && runParams.containsKey("Card")) { if (runParams.containsKey("Destination") && runParams.containsKey("Card")) {
Card card = (Card) runParams.get("Card"); Card card = (Card) runParams.get("Card");
if( !playerCards.contains(card) && player.equals(card.getController())) { if (card.getController() == player) {
if (game.getZoneOf(card) == null || game.getZoneOf(card).getZoneType().isHidden()) { for (final Trigger t : card.getTriggers()) {
playerCards.add(card); if (!t.isStatic() && t.isTemporary() && canRunTrigger(t, mode, runParams)) {
this.runSingleTrigger(t, runParams);
checkStatics = true;
}
} }
} }
} }