mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Convert Patriarch's Bidding to script
This commit is contained in:
@@ -1,7 +1,11 @@
|
|||||||
Name:Patriarch's Bidding
|
Name:Patriarch's Bidding
|
||||||
ManaCost:3 B B
|
ManaCost:3 B B
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
Text:Each player chooses a creature type. Each player returns all creature cards of a type chosen this way from his or her graveyard to the battlefield.
|
A:SP$ RepeatEach | Cost$ 3 B B | RepeatPlayers$ Player | RepeatSubAbility$ DBChooseType | SubAbility$ DBBidding | StackDescription$ SpellDescription | SpellDescription$ Each player chooses a creature type. Each player returns all creature cards of a type chosen this way from his or her graveyard to the battlefield.
|
||||||
|
SVar:DBChooseType:DB$ ChooseType | Defined$ Player.IsRemembered | Type$ Creature | AILogic$ MostProminentInComputerGraveyard | SubAbility$ DBRemember
|
||||||
|
SVar:DBRemember:DB$ PumpAll | ValidCards$ Creature.ChosenType | RememberAllPumped$ True | PumpZone$ Graveyard
|
||||||
|
SVar:DBBidding:DB$ ChangeZoneAll | ChangeType$ Creature.IsRemembered | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:RemAIDeck:True
|
SVar:RemAIDeck:True
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/patriarchs_bidding.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/patriarchs_bidding.jpg
|
||||||
Oracle:Each player chooses a creature type. Each player returns all creature cards of a type chosen this way from his or her graveyard to the battlefield.
|
Oracle:Each player chooses a creature type. Each player returns all creature cards of a type chosen this way from his or her graveyard to the battlefield.
|
||||||
|
|||||||
@@ -193,58 +193,6 @@ public class CardFactorySorceries {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final SpellAbility getPatriarchsBidding(final Card card) {
|
|
||||||
|
|
||||||
final SpellAbility spell = new Spell(card) {
|
|
||||||
private static final long serialVersionUID = -2182173662547136798L;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resolve() {
|
|
||||||
final GameState game = getActivatingPlayer().getGame();
|
|
||||||
List<String> types = new ArrayList<String>();
|
|
||||||
for (Player p : game.getPlayers()) {
|
|
||||||
if (p.isHuman()) {
|
|
||||||
types.add(GuiChoose.one("Which creature type?", Constant.CardTypes.CREATURE_TYPES));
|
|
||||||
} else {
|
|
||||||
final HashMap<String, Integer> countInGraveyard = new HashMap<String, Integer>();
|
|
||||||
final List<Card> aiGrave = p.getCardsIn(ZoneType.Graveyard);
|
|
||||||
for (final Card c : Iterables.filter(aiGrave, CardPredicates.Presets.CREATURES)) {
|
|
||||||
for (final String type : c.getType()) {
|
|
||||||
if (CardType.isACreatureType(type)) {
|
|
||||||
Integer oldVal = countInGraveyard.get(type);
|
|
||||||
countInGraveyard.put(type, 1 + (oldVal != null ? oldVal : 0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String maxKey = "";
|
|
||||||
int maxCount = -1;
|
|
||||||
for (final Entry<String, Integer> entry : countInGraveyard.entrySet()) {
|
|
||||||
if (entry.getValue() > maxCount) {
|
|
||||||
maxKey = entry.getKey();
|
|
||||||
maxCount = entry.getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
types.add(maxKey.equals("") ? "Sliver" : maxKey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Card> bidded = CardLists.filter(game.getCardsIn(ZoneType.Graveyard), CardPredicates.Presets.CREATURES);
|
|
||||||
for (final Card c : bidded) {
|
|
||||||
for (int i = 0; i < types.size(); i++) {
|
|
||||||
if (c.isType(types.get(i))) {
|
|
||||||
game.getAction().moveToPlay(c);
|
|
||||||
i = types.size(); // break inner loop
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // resolve()
|
|
||||||
}; // SpellAbility
|
|
||||||
final StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append(card.getName()).append(" - choose a creature type.");
|
|
||||||
spell.setStackDescription(sb.toString());
|
|
||||||
return spell;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final SpellAbility getTransmuteArtifact(final Card card) {
|
private static final SpellAbility getTransmuteArtifact(final Card card) {
|
||||||
/*
|
/*
|
||||||
* Sacrifice an artifact. If you do, search your library for an
|
* Sacrifice an artifact. If you do, search your library for an
|
||||||
@@ -318,7 +266,6 @@ public class CardFactorySorceries {
|
|||||||
public static void buildCard(final Card card, final String cardName) {
|
public static void buildCard(final Card card, final String cardName) {
|
||||||
|
|
||||||
if (cardName.equals("Balance")) { card.addSpellAbility(getBalance(card));
|
if (cardName.equals("Balance")) { card.addSpellAbility(getBalance(card));
|
||||||
} else if (cardName.equals("Patriarch's Bidding")) { card.addSpellAbility(getPatriarchsBidding(card));
|
|
||||||
} else if (cardName.equals("Transmute Artifact")) { card.addSpellAbility(getTransmuteArtifact(card));
|
} else if (cardName.equals("Transmute Artifact")) { card.addSpellAbility(getTransmuteArtifact(card));
|
||||||
}
|
}
|
||||||
} // getCard
|
} // getCard
|
||||||
|
|||||||
Reference in New Issue
Block a user