mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
- Added Volcano Hellion
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -12402,6 +12402,7 @@ res/cardsfolder/v/volcanic_spray.txt svneol=native#text/plain
|
||||
res/cardsfolder/v/volcanic_strength.txt svneol=native#text/plain
|
||||
res/cardsfolder/v/volcanic_submersion.txt svneol=native#text/plain
|
||||
res/cardsfolder/v/volcanic_wind.txt -text
|
||||
res/cardsfolder/v/volcano_hellion.txt -text
|
||||
res/cardsfolder/v/volcano_imp.txt svneol=native#text/plain
|
||||
res/cardsfolder/v/volition_reins.txt svneol=native#text/plain
|
||||
res/cardsfolder/v/volley_of_boulders.txt -text
|
||||
|
||||
14
res/cardsfolder/v/volcano_hellion.txt
Normal file
14
res/cardsfolder/v/volcano_hellion.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name:Volcano Hellion
|
||||
ManaCost:2 R R
|
||||
Types:Creature Hellion
|
||||
PT:6/5
|
||||
Text:CARDNAME has echo X, where X is your life total.
|
||||
K:Echo:X
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDmg | TriggerDescription$ When CARDNAME enters the battlefield, it deals an amount of damage of your choice to you and target creature. The damage can't be prevented.
|
||||
SVar:TrigDmg:AB$ ChooseNumber | Cost$ 0 | ListTitle$ Choose an amount of damage to you and target creature | SubAbility$ DBDmg | AILogic$ Min
|
||||
SVar:DBDmg:DB$ DealDamage | ValidTgts$ Creature | NumDmg$ Y | References$ Y | NoPrevention$ True | SubAbility$ DmgYou
|
||||
SVar:DmgYou:DB$ DealDamage | Defined$ You | NumDmg$ Y | References$ Y | NoPrevention$ True
|
||||
SVar:X:Count$YourLifeTotal
|
||||
SVar:Y:Count$ChosenNumber
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/volcano_hellion.jpg
|
||||
@@ -31,7 +31,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
final Game game = sa.getActivatingPlayer().getGame();
|
||||
final long timestamp = game.getNextTimestamp();
|
||||
final ArrayList<String> kws = new ArrayList<String>();
|
||||
|
||||
|
||||
for (String kw : keywords) {
|
||||
if (kw.startsWith("HIDDEN")) {
|
||||
applyTo.addHiddenExtrinsicKeyword(kw);
|
||||
@@ -67,7 +67,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
applyTo.removeChangedCardKeywords(timestamp);
|
||||
}
|
||||
|
||||
|
||||
game.fireEvent(new GameEventCardStatsChanged(applyTo));
|
||||
}
|
||||
};
|
||||
@@ -179,18 +179,19 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
|
||||
@Override
|
||||
public void resolve(SpellAbility sa) {
|
||||
|
||||
|
||||
final ArrayList<Card> untargetedCards = new ArrayList<Card>();
|
||||
final TargetRestrictions tgt = sa.getTargetRestrictions();
|
||||
final Game game = sa.getActivatingPlayer().getGame();
|
||||
|
||||
final Card host = sa.getSourceCard();
|
||||
|
||||
String pumpRemembered = null;
|
||||
String pumpForget = null;
|
||||
String pumpImprint = null;
|
||||
|
||||
|
||||
List<String> keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList<String>();
|
||||
final int a = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumAtt"), sa);
|
||||
final int d = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumDef"), sa);
|
||||
final int a = AbilityUtils.calculateAmount(host, sa.getParam("NumAtt"), sa);
|
||||
final int d = AbilityUtils.calculateAmount(host, sa.getParam("NumDef"), sa);
|
||||
|
||||
List<GameEntity> tgts = new ArrayList<GameEntity>();
|
||||
List<Card> tgtCards = getTargetCards(sa);
|
||||
@@ -200,7 +201,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
|
||||
if (sa.hasParam("DefinedChosenKW")) {
|
||||
if (sa.getParam("DefinedChosenKW").equals("Type")) {
|
||||
final String t = sa.getSourceCard().getChosenType();
|
||||
final String t = host.getChosenType();
|
||||
for (int i = 0; i < keywords.size(); i++) {
|
||||
keywords.set(i, keywords.get(i).replaceAll("ChosenType", t));
|
||||
}
|
||||
@@ -208,7 +209,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
if (sa.hasParam("RandomKeyword")) {
|
||||
final String num = sa.hasParam("RandomKWNum") ? sa.getParam("RandomKWNum") : "1";
|
||||
final int numkw = AbilityUtils.calculateAmount(sa.getSourceCard(), num, sa);
|
||||
final int numkw = AbilityUtils.calculateAmount(host, num, sa);
|
||||
List<String> choice = new ArrayList<String>();
|
||||
List<String> total = new ArrayList<String>(keywords);
|
||||
if (sa.hasParam("NoRepetition")) {
|
||||
@@ -227,7 +228,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
keywords = choice;
|
||||
}
|
||||
|
||||
|
||||
if (sa.hasParam("Optional")) {
|
||||
final String targets = Lang.joinHomogenous(tgtCards);
|
||||
final String message = sa.hasParam("OptionQuestion") ? sa.getParam("OptionQuestion").replace("TARGETS", targets) : "Apply pump to " + targets + "?";
|
||||
@@ -241,9 +242,9 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
if (pumpRemembered != null) {
|
||||
for (final Object o : AbilityUtils.getDefinedObjects(sa.getSourceCard(), pumpRemembered, sa)) {
|
||||
if (!sa.getSourceCard().getRemembered().contains(o)) {
|
||||
sa.getSourceCard().addRemembered(o);
|
||||
for (final Object o : AbilityUtils.getDefinedObjects(host, pumpRemembered, sa)) {
|
||||
if (!host.getRemembered().contains(o)) {
|
||||
host.addRemembered(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -253,9 +254,9 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
if (pumpForget != null) {
|
||||
for (final Object o : AbilityUtils.getDefinedObjects(sa.getSourceCard(), pumpForget, sa)) {
|
||||
if (sa.getSourceCard().getRemembered().contains(o)) {
|
||||
sa.getSourceCard().removeRemembered(o);
|
||||
for (final Object o : AbilityUtils.getDefinedObjects(host, pumpForget, sa)) {
|
||||
if (host.getRemembered().contains(o)) {
|
||||
host.removeRemembered(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -264,23 +265,23 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
if (pumpImprint != null) {
|
||||
for (final Card c : AbilityUtils.getDefinedCards(sa.getSourceCard(), pumpImprint, sa)) {
|
||||
if (!sa.getSourceCard().getImprinted().contains(c)) {
|
||||
sa.getSourceCard().addImprinted(c);
|
||||
for (final Card c : AbilityUtils.getDefinedCards(host, pumpImprint, sa)) {
|
||||
if (!host.getImprinted().contains(c)) {
|
||||
host.addImprinted(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (sa.hasParam("ForgetImprinted")) {
|
||||
for (final Card c : AbilityUtils.getDefinedCards(sa.getSourceCard(), sa.getParam("ForgetImprinted"), sa)) {
|
||||
if (sa.getSourceCard().getImprinted().contains(c)) {
|
||||
sa.getSourceCard().removeImprinted(c);
|
||||
for (final Card c : AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa)) {
|
||||
if (host.getImprinted().contains(c)) {
|
||||
host.removeImprinted(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (sa.hasParam("Radiance")) {
|
||||
for (final Card c : CardUtil.getRadiance(sa.getSourceCard(), tgtCards.get(0), sa.getParam("ValidTgts")
|
||||
for (final Card c : CardUtil.getRadiance(host, tgtCards.get(0), sa.getParam("ValidTgts")
|
||||
.split(","))) {
|
||||
untargetedCards.add(c);
|
||||
}
|
||||
|
||||
@@ -900,6 +900,9 @@ public class AiController {
|
||||
return min;
|
||||
}
|
||||
}
|
||||
if ("Min".equals(sa.getParam("AILogic"))) {
|
||||
return min;
|
||||
}
|
||||
return max;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,9 +166,10 @@ public class Upkeep extends Phase {
|
||||
if (c.hasStartOfKeyword("(Echo unpaid)")) {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append("Echo for ").append(c).append("\n");
|
||||
|
||||
String ref = "X".equals(c.getEchoCost()) ? " | References$ X" : "";
|
||||
String effect = "AB$ Sacrifice | Cost$ 0 | SacValid$ Self | "
|
||||
+ "UnlessPayer$ You | UnlessCost$ " + c.getEchoCost();
|
||||
+ "UnlessPayer$ You | UnlessCost$ " + c.getEchoCost()
|
||||
+ ref;
|
||||
|
||||
SpellAbility sacAbility = AbilityFactory.getAbility(effect, c);
|
||||
sacAbility.setTrigger(true);
|
||||
|
||||
Reference in New Issue
Block a user