mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
*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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -28,4 +28,8 @@ public class Trigger_AttackerBlocked extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_AttackerBlocked(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,4 +21,8 @@ public class Trigger_AttackerUnblocked extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_AttackerUnblocked(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,4 +41,8 @@ public class Trigger_Attacks extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Attacks(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,4 +29,8 @@ public class Trigger_Blocks extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Blocks(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,4 +45,8 @@ public class Trigger_ChangesZone extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_ChangesZone(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,4 +51,8 @@ public class Trigger_DamageDone extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_DamageDone(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,4 +20,8 @@ public class Trigger_Discarded extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Discarded(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,4 +22,8 @@ public class Trigger_LifeGained extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_LifeGained(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,4 +22,8 @@ public class Trigger_LifeLost extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_LifeLost(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,4 +27,8 @@ public class Trigger_Phase extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Phase(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,8 @@ public class Trigger_Sacrificed extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Sacrificed(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,4 +67,8 @@ public class Trigger_SpellCast extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_SpellCast(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,4 +24,8 @@ public class Trigger_Taps extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Taps(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,4 +21,8 @@ public class Trigger_TurnFaceUp extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_TurnFaceUp(mapParams,hostCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,4 +24,10 @@ public class Trigger_Untaps extends Trigger {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Trigger getCopy() {
|
||||
return new Trigger_Untaps(mapParams,hostCard);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user