From f4264968b1fb4c6ec4ee392b039d043c6e4f862a Mon Sep 17 00:00:00 2001 From: Hellfish Date: Sat, 17 Sep 2011 08:38:59 +0000 Subject: [PATCH] *Converted Orim's Prayer to Trigger_AttackersDeclared. *Added the missed trigger class. --- .gitattributes | 1 + res/cardsfolder/o/orims_prayer.txt | 5 +- src/main/java/forge/PhaseUtil.java | 1 + .../trigger/Trigger_AttackersDeclared.java | 61 +++++++++++++++++++ 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 src/main/java/forge/card/trigger/Trigger_AttackersDeclared.java diff --git a/.gitattributes b/.gitattributes index 1b2fe6a4e57..29024a6cbf1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9711,6 +9711,7 @@ src/main/java/forge/card/trigger/TriggerHandler.java svneol=native#text/plain src/main/java/forge/card/trigger/Trigger_Always.java svneol=native#text/plain src/main/java/forge/card/trigger/Trigger_AttackerBlocked.java svneol=native#text/plain src/main/java/forge/card/trigger/Trigger_AttackerUnblocked.java svneol=native#text/plain +src/main/java/forge/card/trigger/Trigger_AttackersDeclared.java -text src/main/java/forge/card/trigger/Trigger_Attacks.java svneol=native#text/plain src/main/java/forge/card/trigger/Trigger_BecomesTarget.java svneol=native#text/plain src/main/java/forge/card/trigger/Trigger_Blocks.java svneol=native#text/plain diff --git a/res/cardsfolder/o/orims_prayer.txt b/res/cardsfolder/o/orims_prayer.txt index 81741d51736..0a8c1c829b1 100644 --- a/res/cardsfolder/o/orims_prayer.txt +++ b/res/cardsfolder/o/orims_prayer.txt @@ -2,8 +2,9 @@ Name:Orim's Prayer ManaCost:1 W W Types:Enchantment Text:no text -T:Mode$ Attacks | ValidCard$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever one or more creatures attack you, you gain 1 life for each attacking creature. -SVar:TrigGainLife:AB$GainLife | Cost$ 0 | LifeAmount$ 1 | SpellDescription$ You gain 1 life for each attacking creature. +T:Mode$ AttackersDeclared | AttackingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever one or more creatures attack you, you gain 1 life for each attacking creature. +SVar:TrigGainLife:AB$GainLife | Cost$ 0 | LifeAmount$ X +SVar:X:Count$Valid Creature.attacking SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/orims_prayer.jpg SetInfo:TMP|Uncommon|http://magiccards.info/scans/en/tp/245.jpg diff --git a/src/main/java/forge/PhaseUtil.java b/src/main/java/forge/PhaseUtil.java index 55c630bdb93..94aa6b103c6 100644 --- a/src/main/java/forge/PhaseUtil.java +++ b/src/main/java/forge/PhaseUtil.java @@ -429,6 +429,7 @@ public class PhaseUtil { HashMap runParams = new HashMap(); runParams.put("Attackers", list); + runParams.put("AttackingPlayer", AllZone.getCombat().getAttackingPlayer()); AllZone.getTriggerHandler().runTrigger("AttackersDeclared", runParams); for (Card c : list) diff --git a/src/main/java/forge/card/trigger/Trigger_AttackersDeclared.java b/src/main/java/forge/card/trigger/Trigger_AttackersDeclared.java new file mode 100644 index 00000000000..be7f9604249 --- /dev/null +++ b/src/main/java/forge/card/trigger/Trigger_AttackersDeclared.java @@ -0,0 +1,61 @@ +package forge.card.trigger; + +import java.util.HashMap; +import java.util.Map; + +import forge.AllZone; +import forge.Card; +import forge.CardList; +import forge.card.spellability.SpellAbility; + +/** + * TODO: Write javadoc for this type. + * + */ +public class Trigger_AttackersDeclared extends Trigger{ + public Trigger_AttackersDeclared(HashMap params, Card host, boolean intrinsic) { + super(params,host,intrinsic); + } + + /** {@inheritDoc} */ + @Override + public boolean performTest(Map runParams2) { + if(mapParams.containsKey("SingleAttacker")) + { + CardList attackers = (CardList)runParams2.get("Attackers"); + if(attackers.size() != 1) + { + return false; + } + } + if(mapParams.containsKey("AttackingPlayer")) + { + if(!matchesValid(runParams2.get("AttackingPlayer"), mapParams.get("AttackingPlayer").split(","), hostCard)) + { + return false; + } + } + return true; + } + + /** {@inheritDoc} */ + @Override + public Trigger getCopy() { + Trigger copy = new Trigger_AttackersDeclared(this.mapParams,this.hostCard,this.isIntrinsic); + + if(overridingAbility != null) + { + copy.setOverridingAbility(overridingAbility); + } + copy.setName(name); + copy.setID(ID); + + return copy; + } + + /** {@inheritDoc} */ + @Override + public void setTriggeringObjects(SpellAbility sa) { + sa.setTriggeringObject("Attackers", runParams.get("Attackers")); + } +}