*Fixed a trigger-issue which would occur when AI had a matching card in his deck with a trigger (I.e. both of you had a Blazing Specter) and double the effect.

This commit is contained in:
jendave
2011-08-06 15:31:09 +00:00
parent 99d9de7825
commit d54930e30e
20 changed files with 79 additions and 8 deletions

View File

@@ -1,10 +1,12 @@
Name:Blazing Specter
ManaCost:2 B R
Types:Creature Specter
Text:Whenever Blazing Specter deals combat damage to a player, that player discards a card.
Text:no text
PT:2/2
K:Flying
K:Haste
T:Mode$ DamageDone | SourceValid$ Card.Self | TargetValid$ Opponent | Execute$ TrigDiscard | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player discards a card.
SVar:TrigDiscard:AB$Discard | Cost$ 0 | Defined$ Opponent | NumCards$ 1 | Mode$ TgtChoose
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/blazing_specter.jpg
SetInfo:INV|Rare|http://magiccards.info/scans/en/in/236.jpg

View File

@@ -177,7 +177,9 @@ public class Card extends MyObservable {
public void addTrigger(Trigger t)
{
triggers.add(t);
Trigger newtrig = t.getCopy();
newtrig.setHostCard(this);
triggers.add(newtrig);
}
public ArrayList<Trigger> getTriggers()
@@ -187,10 +189,11 @@ public class Card extends MyObservable {
public void setTriggers(ArrayList<Trigger> trigs)
{
triggers = trigs;
for(Trigger t : triggers)
for(Trigger t : trigs)
{
t.setHostCard(this);
Trigger newtrig = t.getCopy();
newtrig.setHostCard(this);
triggers.add(newtrig);
}
}

View File

@@ -6157,7 +6157,6 @@ public class GameActionUtil {
else if(c.getName().equals("Guul Draz Specter")) opponent_Discard(c, 1);
else if(c.getName().equals("Chilling Apparition")) opponent_Discard(c, 1);
else if(c.getName().equals("Sedraxis Specter")) opponent_Discard(c, 1);
else if(c.getName().equals("Blazing Specter")) opponent_Discard(c, 1);
else if(c.getName().equals("Headhunter")) opponent_Discard(c, 1);
else if(c.getName().equals("Riptide Pilferer")) opponent_Discard(c, 1);
else if(c.getName().equals("Shadowmage Infiltrator")) playerCombatDamage_Shadowmage_Infiltrator(c);

View File

@@ -344,7 +344,6 @@ public class PhaseUtil {
HashMap<String,Object> runParams = new HashMap<String,Object>();
runParams.put("Phase", Constant.Phase.Draw);
runParams.put("Player", playerTurn);
System.out.println("Calling runTrigger from PhaseUtil.handleDraw()");
AllZone.TriggerHandler.runTrigger("Phase", runParams);
playerTurn.drawCard();

View File

@@ -33,7 +33,11 @@ public abstract class Trigger {
public Trigger(HashMap<String,String> params, Card host)
{
mapParams = params;
mapParams = new HashMap<String,String>();
for(String key : params.keySet())
{
mapParams.put(key,params.get(key));
}
hostCard = host;
}
@@ -181,4 +185,6 @@ public abstract class Trigger {
}
public abstract boolean performTest(HashMap<String,Object> runParams);
public abstract Trigger getCopy();
}

View File

@@ -28,4 +28,8 @@ public class Trigger_AttackerBlocked extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_AttackerBlocked(mapParams,hostCard);
}
}

View File

@@ -21,4 +21,8 @@ public class Trigger_AttackerUnblocked extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_AttackerUnblocked(mapParams,hostCard);
}
}

View File

@@ -41,4 +41,8 @@ public class Trigger_Attacks extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Attacks(mapParams,hostCard);
}
}

View File

@@ -29,4 +29,8 @@ public class Trigger_Blocks extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Blocks(mapParams,hostCard);
}
}

View File

@@ -45,4 +45,8 @@ public class Trigger_ChangesZone extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_ChangesZone(mapParams,hostCard);
}
}

View File

@@ -51,4 +51,8 @@ public class Trigger_DamageDone extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_DamageDone(mapParams,hostCard);
}
}

View File

@@ -20,4 +20,8 @@ public class Trigger_Discarded extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Discarded(mapParams,hostCard);
}
}

View File

@@ -22,4 +22,8 @@ public class Trigger_LifeGained extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_LifeGained(mapParams,hostCard);
}
}

View File

@@ -22,4 +22,8 @@ public class Trigger_LifeLost extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_LifeLost(mapParams,hostCard);
}
}

View File

@@ -27,4 +27,8 @@ public class Trigger_Phase extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Phase(mapParams,hostCard);
}
}

View File

@@ -28,4 +28,8 @@ public class Trigger_Sacrificed extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Sacrificed(mapParams,hostCard);
}
}

View File

@@ -67,4 +67,8 @@ public class Trigger_SpellCast extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_SpellCast(mapParams,hostCard);
}
}

View File

@@ -24,4 +24,8 @@ public class Trigger_Taps extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Taps(mapParams,hostCard);
}
}

View File

@@ -21,4 +21,8 @@ public class Trigger_TurnFaceUp extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_TurnFaceUp(mapParams,hostCard);
}
}

View File

@@ -24,4 +24,10 @@ public class Trigger_Untaps extends Trigger {
return true;
}
@Override
public Trigger getCopy() {
return new Trigger_Untaps(mapParams,hostCard);
}
}