- Added Taste of Paradise with pseudokicker structure

This commit is contained in:
Sol
2015-05-15 21:55:25 +00:00
parent 2c42c9bd76
commit c6a55f6af2
6 changed files with 37 additions and 5 deletions

1
.gitattributes vendored
View File

@@ -14087,6 +14087,7 @@ forge-gui/res/cardsfolder/t/task_force.txt svneol=native#text/plain
forge-gui/res/cardsfolder/t/task_mage_assembly.txt svneol=native#text/plain
forge-gui/res/cardsfolder/t/taste_for_mayhem.txt svneol=native#text/plain
forge-gui/res/cardsfolder/t/taste_of_blood.txt svneol=native#text/plain
forge-gui/res/cardsfolder/t/taste_of_paradise.txt -text
forge-gui/res/cardsfolder/t/tatsumasa_the_dragons_fang.txt -text
forge-gui/res/cardsfolder/t/tattered_drake.txt svneol=native#text/plain
forge-gui/res/cardsfolder/t/tatterkite.txt svneol=native#text/plain

View File

@@ -1785,8 +1785,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|| keyword.startsWith("May be played") || keyword.startsWith("Conspire")
|| keyword.startsWith("Cascade") || keyword.startsWith("Wither")
|| (keyword.startsWith("Epic") && !sb.toString().contains("Epic"))
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))
|| (keyword.startsWith("Multikicker") && !sb.toString().contains("Multikicker"))) {
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))) {
sb.append(keyword).append("\r\n");
}
else if (keyword.equals("You may cast CARDNAME as though it had flash if you pay 2 more to cast it.")) {
@@ -1818,6 +1817,11 @@ public class Card extends GameEntity implements Comparable<Card> {
sb.append("Entwine ").append(cost.toSimpleString());
sb.append(" (Choose both if you pay the entwine cost.)");
sb.append("\r\n");
} else if (keyword.startsWith("Multikicker")) {
if (!keyword.endsWith("Generic")) {
final Cost cost = new Cost(keyword.substring(7), false);
sb.append("Multikicker " + cost.toSimpleString() + "\r\n");
}
} else if (keyword.startsWith("Kicker")) {
if (!keyword.endsWith("Generic")) {
final Cost cost = new Cost(keyword.substring(7), false);

View File

@@ -1372,6 +1372,9 @@ public class CardFactoryUtil {
if (sq[0].contains("TimesKicked")) {
return doXMath(c.getKickerMagnitude(), m, c);
}
if (sq[0].contains("TimesPseudokicked")) {
return doXMath(c.getPseudoKickerMagnitude(), m, c);
}
// Count$IfMainPhase.<numMain>.<numNotMain> // 7/10
if (sq[0].contains("IfMainPhase")) {
@@ -2107,11 +2110,15 @@ public class CardFactoryUtil {
for (String keyword : card.getKeywords()) {
if (keyword.startsWith("Multikicker")) {
final String[] k = keyword.split("kicker ");
String mkCost = k[1].split(":")[0];
final SpellAbility sa = card.getFirstSpellAbility();
sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(k[1])));
sa.setMultiKickerManaCost(new ManaCost(new ManaCostParser(mkCost)));
if (k[1].endsWith("Generic")) {
sa.addAnnounceVar("Pseudo-multikicker");
} else {
sa.addAnnounceVar("Multikicker");
}
}
else if (keyword.startsWith("Replicate")) {
card.getFirstSpellAbility().addAnnounceVar("Replicate");
}

View File

@@ -0,0 +1,10 @@
Name:Taste of Paradise
ManaCost:3 G
Types:Sorcery
Text:As an additional cost to cast Taste of Paradise, you may pay {1}{G} any number of times.
K:Multikicker 1 G : Generic
A:SP$ GainLife | Cost$ 3 G | Defined$ You | LifeAmount$ Y | References$ X,Y | SpellDescription$ You gains 3 life plus an additional 3 life for each additional {1}{G} you paid.
SVar:Y:SVar$X/Plus.3
SVar:X:Count$TimesPseudokicked/Times.3
SVar:Picture:http://www.wizards.com/global/images/magic/general/taste_of_paradise.jpg
Oracle:As an additional cost to cast Taste of Paradise, you may pay {1}{G} any number of times.\nYou gain 3 life plus an additional 3 life for each additional {1}{G} you paid.

View File

@@ -743,6 +743,14 @@ public class HumanPlay {
}
}
int timesPseudokicked = source.getPseudoKickerMagnitude();
if (timesPseudokicked > 0 && ability.isAnnouncing("Pseudo-multikicker")) {
ManaCost mkCost = ability.getMultiKickerManaCost();
for (int i = 0; i < timesPseudokicked; i++) {
toPay.addManaCost(mkCost);
}
}
Integer replicate = ability.getSVarInt("Replicate");
if (replicate != null) {
ManaCost rCost = source.getManaCost();

View File

@@ -239,6 +239,8 @@ public class HumanPlaySpellAbility {
ability.setSVar(varName, value.toString());
if ("Multikicker".equals(varName)) {
card.setKickerMagnitude(value);
} else if ("Pseudo-multikicker".equals(varName)) {
card.setPseudoMultiKickerMagnitude(value);
}
else {
card.setSVar(varName, value.toString());