mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
- Added Taste of Paradise with pseudokicker structure
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,10 +2110,14 @@ 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.addAnnounceVar("Multikicker");
|
||||
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");
|
||||
|
||||
10
forge-gui/res/cardsfolder/t/taste_of_paradise.txt
Normal file
10
forge-gui/res/cardsfolder/t/taste_of_paradise.txt
Normal 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.
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user