- Added Hall of the Bandit Lord

This commit is contained in:
swordshine
2013-09-05 04:05:34 +00:00
parent 3df8397c9a
commit 00208b69a7
5 changed files with 61 additions and 0 deletions

1
.gitattributes vendored
View File

@@ -4890,6 +4890,7 @@ res/cardsfolder/h/halcyon_glaze.txt svneol=native#text/plain
res/cardsfolder/h/halimar_depths.txt svneol=native#text/plain res/cardsfolder/h/halimar_depths.txt svneol=native#text/plain
res/cardsfolder/h/halimar_excavator.txt svneol=native#text/plain res/cardsfolder/h/halimar_excavator.txt svneol=native#text/plain
res/cardsfolder/h/halimar_wavewatch.txt svneol=native#text/plain res/cardsfolder/h/halimar_wavewatch.txt svneol=native#text/plain
res/cardsfolder/h/hall_of_the_bandit_lord.txt -text
res/cardsfolder/h/hallow.txt -text res/cardsfolder/h/hallow.txt -text
res/cardsfolder/h/hallowed_burial.txt svneol=native#text/plain res/cardsfolder/h/hallowed_burial.txt svneol=native#text/plain
res/cardsfolder/h/hallowed_fountain.txt svneol=native#text/plain res/cardsfolder/h/hallowed_fountain.txt svneol=native#text/plain

View File

@@ -0,0 +1,7 @@
Name:Hall of the Bandit Lord
ManaCost:no cost
Types:Legendary Land
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T PayLife<3> | Produced$ 1 | AddsKeywords$ Haste | SpellDescription$ Add 1 to your mana pool. If that mana is spent on a creature spell, it gains haste.
SVar:Picture:http://www.wizards.com/global/images/magic/general/hall_of_the_bandit_lord.jpg
Oracle:Hall of the Bandit Lord enters the battlefield tapped.\n{T}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste.

View File

@@ -144,6 +144,27 @@ public class Mana {
return this.manaAbility != null && manaAbility.cannotCounterPaidWith(saBeingPaid); return this.manaAbility != null && manaAbility.cannotCounterPaidWith(saBeingPaid);
} }
/**
* <p>
* addsKeywords.
* </p>
*
* @return a boolean.
*/
public final boolean addsKeywords(SpellAbility saBeingPaid) {
return this.manaAbility != null && manaAbility.addKeywords(saBeingPaid);
}
/**
* <p>
* getAddedKeywords.
* </p>
* @return a String.
*/
public final String getAddedKeywords() {
return this.manaAbility.getKeywords();
}
/** /**
* <p> * <p>
* isColor. * isColor.

View File

@@ -18,6 +18,7 @@
package forge.card.mana; package forge.card.mana;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@@ -299,6 +300,11 @@ public class ManaPool {
if (mana.addsNoCounterMagic(sa) && sa.getSourceCard() != null) { if (mana.addsNoCounterMagic(sa) && sa.getSourceCard() != null) {
sa.getSourceCard().setCanCounter(false); sa.getSourceCard().setCanCounter(false);
} }
if (sa.isSpell() && sa.getSourceCard() != null
&& sa.getSourceCard().isCreature() && mana.addsKeywords(sa)) {
final long timestamp = sa.getSourceCard().getGame().getNextTimestamp();
sa.getSourceCard().addChangedCardKeywords(Arrays.asList(mana.getAddedKeywords().split(" & ")), new ArrayList<String>(), false, timestamp);
}
} }
} }

View File

@@ -49,6 +49,7 @@ public class AbilityManaPart implements java.io.Serializable {
private String lastExpressChoice = ""; private String lastExpressChoice = "";
private final String manaRestrictions; private final String manaRestrictions;
private final String cannotCounterSpell; private final String cannotCounterSpell;
private final String addsKeywords;
private final boolean persistentMana; private final boolean persistentMana;
private transient ArrayList<Mana> lastManaProduced = new ArrayList<Mana>(); private transient ArrayList<Mana> lastManaProduced = new ArrayList<Mana>();
@@ -78,6 +79,7 @@ public class AbilityManaPart implements java.io.Serializable {
origProduced = params.containsKey("Produced") ? params.get("Produced") : "1"; origProduced = params.containsKey("Produced") ? params.get("Produced") : "1";
this.manaRestrictions = params.containsKey("RestrictValid") ? params.get("RestrictValid") : ""; this.manaRestrictions = params.containsKey("RestrictValid") ? params.get("RestrictValid") : "";
this.cannotCounterSpell = params.get("AddsNoCounter"); this.cannotCounterSpell = params.get("AddsNoCounter");
this.addsKeywords = params.get("AddsKeywords");
this.persistentMana = (null == params.get("PersistentMana")) ? false : this.persistentMana = (null == params.get("PersistentMana")) ? false :
"True".equalsIgnoreCase(params.get("PersistentMana")); "True".equalsIgnoreCase(params.get("PersistentMana"));
} }
@@ -167,6 +169,29 @@ public class AbilityManaPart implements java.io.Serializable {
return source.isValid(cannotCounterSpell, sourceCard.getController(), sourceCard); return source.isValid(cannotCounterSpell, sourceCard.getController(), sourceCard);
} }
/**
* <p>
* addKeywords.
* </p>
* @param saBeingPaid
*
* @return a {@link java.lang.String} object.
*/
public boolean addKeywords(SpellAbility saBeingPaid) {
return this.addsKeywords != null;
}
/**
* <p>
* getKeywords.
* </p>
* @param saBeingPaid
*
* @return a {@link java.lang.String} object.
*/
public String getKeywords() {
return this.addsKeywords;
}
/** /**
* <p> * <p>
* getManaRestrictions. * getManaRestrictions.
@@ -452,5 +477,6 @@ public class AbilityManaPart implements java.io.Serializable {
return this.persistentMana; return this.persistentMana;
} }
} // end class AbilityMana } // end class AbilityMana