- Added support for Kicker on Instant/Sorceries.

- Added Blood Tribute.
This commit is contained in:
Sloth
2012-09-12 19:21:12 +00:00
parent 5f74746eb6
commit 4736f4e23c
6 changed files with 46 additions and 2 deletions

1
.gitattributes vendored
View File

@@ -960,6 +960,7 @@ res/cardsfolder/b/blood_rites.txt svneol=native#text/plain
res/cardsfolder/b/blood_seeker.txt svneol=native#text/plain
res/cardsfolder/b/blood_speaker.txt svneol=native#text/plain
res/cardsfolder/b/blood_tithe.txt svneol=native#text/plain
res/cardsfolder/b/blood_tribute.txt -text
res/cardsfolder/b/blood_tyrant.txt svneol=native#text/plain
res/cardsfolder/b/blood_vassal.txt svneol=native#text/plain
res/cardsfolder/b/bloodbond_march.txt -text

View File

@@ -0,0 +1,13 @@
Name:Blood Tribute
ManaCost:4 B B
Types:Sorcery
Text:no text
K:Kicker tapXType<1/Vampire>
A:SP$ LoseLife | Cost$ 4 B B | ValidTgts$ Opponent | LifeAmount$ X | References$ X | SubAbility$ DBGainLife | SpellDescription$ Target opponent loses half his or her life, rounded up. If CARDNAME was kicked, you gain life equal to the life lost this way.
SVar:DBGainLife:DB$GainLife | Defined$ You | LifeAmount$ X | References$ X | Condition$ Kicked
SVar:X:Count$OppLifeTotal/HalfUp
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_tribute.jpg
SetInfo:ZEN|Rare|http://magiccards.info/scans/en/zen/81.jpg
Oracle:Kicker-Tap an untapped Vampire you control. (You may tap a Vampire you control in addition to any other costs as you cast this spell.)\nTarget opponent loses half his or her life, rounded up. If Blood Tribute was kicked, you gain life equal to the life lost this way.
End

View File

@@ -894,7 +894,7 @@ public class Card extends GameEntity implements Comparable<Card> {
/**
* <p>
* Setter for the field <code>xManaCostPaid</code>.
* Setter or the field <code>xManaCostPaid</code>.
* </p>
*
* @param n
@@ -2582,6 +2582,9 @@ public class Card extends GameEntity implements Comparable<Card> {
} else if (keyword.startsWith("Buyback")) {
final Cost cost = new Cost(this, keyword.substring(8), false);
sb.append("Buyback " + cost.toSimpleString() + "\r\n");
} else if (keyword.startsWith("Kicker")) {
final Cost cost = new Cost(this, keyword.substring(7), false);
sb.append("Kicker " + cost.toSimpleString() + "\r\n");
}
if (keyword.startsWith("Storm")) {
if (sb.toString().contains("Target") || sb.toString().contains("target")) {

View File

@@ -1805,7 +1805,8 @@ public final class GameActionUtil {
newSA.setBasicSpell(false);
newSA.setPayCosts(GameActionUtil.combineCosts(newSA, keyword.substring(7)));
newSA.setManaCost("");
newSA.setDescription(sa.getDescription() + " (" + keyword + ")");
final Cost cost = new Cost(source, keyword.substring(7), false);
newSA.setDescription(sa.getDescription() + " (Kicker " + cost.toSimpleString() + ")");
ArrayList<String> newoacs = new ArrayList<String>();
newoacs.addAll(sa.getOptionalAdditionalCosts());
newSA.setOptionalAdditionalCosts(newoacs);

View File

@@ -75,6 +75,9 @@ public class SpellAbilityCondition extends SpellAbilityVariables {
if (value.equals("Hellbent")) {
this.setHellbent(true);
}
if (value.equals("Kicked")) {
this.setKicked(true);
}
}
if (params.containsKey("ConditionZone")) {
@@ -180,6 +183,11 @@ public class SpellAbilityCondition extends SpellAbilityVariables {
return false;
}
}
if (this.isKicked()) {
if (!sa.isKicked()) {
return false;
}
}
if (this.isSorcerySpeed() && !PhaseHandler.canCastSorcery(activator)) {
return false;

View File

@@ -133,6 +133,9 @@ public class SpellAbilityVariables {
/** The hellbent. */
private boolean hellbent = false;
/** The Kicked. */
private boolean kicked = false;
/** The prowl. */
private ArrayList<String> prowl = new ArrayList<String>();
@@ -497,6 +500,21 @@ public class SpellAbilityVariables {
this.metalcraft = bMetalcraft;
}
/**
* @return the kicked
*/
public boolean isKicked() {
return kicked;
}
/**
* @param kicked0 the kicked to set
*/
public void setKicked(boolean kicked) {
this.kicked = kicked;
}
/**
* <p>
* Setter for the field <code>prowl</code>.