mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Convert Molten Hydra to Script
This commit is contained in:
@@ -4,6 +4,8 @@ Types:Creature Hydra
|
|||||||
Text:no text
|
Text:no text
|
||||||
PT:1/1
|
PT:1/1
|
||||||
A:AB$ PutCounter | Cost$ 1 R R | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on CARDNAME.
|
A:AB$ PutCounter | Cost$ 1 R R | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on CARDNAME.
|
||||||
|
A:AB$ DealDamage | Cost$ T SubCounter<All/P1P1> | Tgt$ CP | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals damage to target creature or player equal to the number of +1/+1 counters removed this way.
|
||||||
|
SVar:X:SVar$CostCountersRemoved
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/molten_hydra.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/molten_hydra.jpg
|
||||||
SetInfo:ULG|Rare|http://magiccards.info/scans/en/ul/85.jpg
|
SetInfo:ULG|Rare|http://magiccards.info/scans/en/ul/85.jpg
|
||||||
|
|||||||
@@ -622,89 +622,6 @@ public class CardFactoryCreatures {
|
|||||||
card.addSpellAbility(spell);
|
card.addSpellAbility(spell);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getCard_MoltenHydra(final Card card, final String cardName) {
|
|
||||||
final Target target = new Target(card, "TgtCP");
|
|
||||||
final Cost abCost = new Cost(card, "T", true);
|
|
||||||
class MoltenHydraAbility extends AbilityActivated {
|
|
||||||
public MoltenHydraAbility(final Card ca, final Cost co, final Target t) {
|
|
||||||
super(ca, co, t);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AbilityActivated getCopy() {
|
|
||||||
return new MoltenHydraAbility(getSourceCard(),
|
|
||||||
getPayCosts(), new Target(getTarget()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 2626619319289064289L;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canPlay() {
|
|
||||||
return (card.getCounters(Counters.P1P1) > 0) && super.canPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canPlayAI() {
|
|
||||||
return this.getCreature().size() != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void chooseTargetAI() {
|
|
||||||
if (AllZone.getHumanPlayer().getLife() < card.getCounters(Counters.P1P1)) {
|
|
||||||
this.setTargetPlayer(AllZone.getHumanPlayer());
|
|
||||||
} else {
|
|
||||||
final List<Card> list = this.getCreature();
|
|
||||||
CardListUtil.shuffle(list);
|
|
||||||
this.setTargetCard(list.get(0));
|
|
||||||
}
|
|
||||||
} // chooseTargetAI()
|
|
||||||
|
|
||||||
List<Card> getCreature() {
|
|
||||||
List<Card> list = CardFactoryUtil.getHumanCreatureAI(this, true);
|
|
||||||
list = CardListUtil.filter(list, new Predicate<Card>() {
|
|
||||||
@Override
|
|
||||||
public boolean apply(final Card c) {
|
|
||||||
final int total = card.getCounters(Counters.P1P1);
|
|
||||||
return (total >= c.getKillDamage());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return list;
|
|
||||||
} // getCreature()
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resolve() {
|
|
||||||
final int total = card.getCounters(Counters.P1P1);
|
|
||||||
if (this.getTargetCard() != null) {
|
|
||||||
if (AllZoneUtil.isCardInPlay(this.getTargetCard())
|
|
||||||
&& this.getTargetCard().canBeTargetedBy(this)) {
|
|
||||||
this.getTargetCard().addDamage(total, card);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.getTargetPlayer().addDamage(total, card);
|
|
||||||
}
|
|
||||||
card.subtractCounter(Counters.P1P1, total);
|
|
||||||
} // resolve()
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getDescription() {
|
|
||||||
final StringBuilder sbDesc = new StringBuilder();
|
|
||||||
sbDesc.append(abCost).append("Remove all +1/+1 counters from ");
|
|
||||||
sbDesc.append(cardName).append(": ").append(cardName);
|
|
||||||
sbDesc.append(" deals damage to target creature or player equal to the ");
|
|
||||||
sbDesc.append("number of +1/+1 counters removed this way.");
|
|
||||||
return sbDesc.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final AbilityActivated ability2 = new MoltenHydraAbility(card, abCost, target);
|
|
||||||
|
|
||||||
card.addSpellAbility(ability2);
|
|
||||||
|
|
||||||
final StringBuilder sbStack = new StringBuilder();
|
|
||||||
sbStack.append("Molten Hydra deals damage to number of +1/+1 ");
|
|
||||||
sbStack.append("counters on it to target creature or player.");
|
|
||||||
ability2.setStackDescription(sbStack.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void getCard_KinsbaileBorderguard(final Card card, final String cardName) {
|
private static void getCard_KinsbaileBorderguard(final Card card, final String cardName) {
|
||||||
final SpellAbility ability = new Ability(card, "0") {
|
final SpellAbility ability = new Ability(card, "0") {
|
||||||
@Override
|
@Override
|
||||||
@@ -1405,8 +1322,6 @@ public class CardFactoryCreatures {
|
|||||||
getCard_MasterOfTheWildHunt(card, cardName);
|
getCard_MasterOfTheWildHunt(card, cardName);
|
||||||
} else if (cardName.equals("Apocalypse Hydra")) {
|
} else if (cardName.equals("Apocalypse Hydra")) {
|
||||||
getCard_ApocalypseHydra(card, cardName);
|
getCard_ApocalypseHydra(card, cardName);
|
||||||
} else if (cardName.equals("Molten Hydra")) {
|
|
||||||
getCard_MoltenHydra(card, cardName);
|
|
||||||
} else if (cardName.equals("Kinsbaile Borderguard")) {
|
} else if (cardName.equals("Kinsbaile Borderguard")) {
|
||||||
getCard_KinsbaileBorderguard(card, cardName);
|
getCard_KinsbaileBorderguard(card, cardName);
|
||||||
} else if (cardName.equals("Gnarlid Pack") || cardName.equals("Apex Hawks") || cardName.equals("Enclave Elite")
|
} else if (cardName.equals("Gnarlid Pack") || cardName.equals("Apex Hawks") || cardName.equals("Enclave Elite")
|
||||||
|
|||||||
Reference in New Issue
Block a user