mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Added Fact or Fiction
This commit is contained in:
@@ -38,6 +38,7 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene
|
|||||||
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
|
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
|
||||||
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
||||||
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
||||||
|
fact_or_fiction.jpg http://www.wizards.com/global/images/magic/general/fact_or_fiction.jpg
|
||||||
pestilence_demon.jpg http://www.wizards.com/global/images/magic/general/pestilence_demon.jpg
|
pestilence_demon.jpg http://www.wizards.com/global/images/magic/general/pestilence_demon.jpg
|
||||||
bloodthrone_vampire.jpg http://www.wizards.com/global/images/magic/general/bloodthrone_vampire.jpg
|
bloodthrone_vampire.jpg http://www.wizards.com/global/images/magic/general/bloodthrone_vampire.jpg
|
||||||
vampire_aristocrat.jpg http://www.wizards.com/global/images/magic/general/vampire_aristocrat.jpg
|
vampire_aristocrat.jpg http://www.wizards.com/global/images/magic/general/vampire_aristocrat.jpg
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
Fact or Fiction
|
||||||
|
3 U
|
||||||
|
Instant
|
||||||
|
Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||||
|
|
||||||
Pestilence Demon
|
Pestilence Demon
|
||||||
5 B B B
|
5 B B B
|
||||||
Creature Demon
|
Creature Demon
|
||||||
|
|||||||
@@ -8188,6 +8188,123 @@ public class CardFactory implements NewConstants {
|
|||||||
card.addSpellAbility(spell);
|
card.addSpellAbility(spell);
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
//*************** START *********** START **************************
|
||||||
|
else if(cardName.equals("Fact or Fiction")) {
|
||||||
|
final SpellAbility spell = new Spell(card) {
|
||||||
|
private static final long serialVersionUID = 1481112451519L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resolve() {
|
||||||
|
|
||||||
|
Card choice = null;
|
||||||
|
|
||||||
|
//check for no cards in hand on resolve
|
||||||
|
PlayerZone Library = AllZone.getZone(Constant.Zone.Library, card.getController());
|
||||||
|
PlayerZone Hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
|
||||||
|
PlayerZone Grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||||
|
CardList cards = new CardList();
|
||||||
|
|
||||||
|
if(Library.size() == 0) {
|
||||||
|
JOptionPane.showMessageDialog(null, "No more cards in library.", "", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int Count = 5;
|
||||||
|
if(Library.size() < 5) Count = Library.size();
|
||||||
|
for(int i = 0; i < Count; i++) cards.add(Library.get(i));
|
||||||
|
CardList Pile1 = new CardList();
|
||||||
|
CardList Pile2 = new CardList();
|
||||||
|
boolean stop = false;
|
||||||
|
int Pile1CMC = 0;
|
||||||
|
int Pile2CMC = 0;
|
||||||
|
|
||||||
|
|
||||||
|
AllZone.Display.getChoice("Revealing top " + Count + " cards of library: ", cards.toArray());
|
||||||
|
//Human chooses
|
||||||
|
if(card.getController().equals(Constant.Player.Computer)) {
|
||||||
|
for(int i = 0; i < Count; i++) {
|
||||||
|
if(stop == false) {
|
||||||
|
choice = AllZone.Display.getChoiceOptional("Choose cards to put into the first pile: ", cards.toArray());
|
||||||
|
if(choice != null) {
|
||||||
|
Pile1.add(choice);
|
||||||
|
cards.remove(choice);
|
||||||
|
Pile1CMC = Pile1CMC + CardUtil.getConvertedManaCost(choice);
|
||||||
|
}
|
||||||
|
else stop = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int i = 0; i < Count; i++) {
|
||||||
|
if(!Pile1.contains(Library.get(i))) {
|
||||||
|
Pile2.add(Library.get(i));
|
||||||
|
Pile2CMC = Pile2CMC + CardUtil.getConvertedManaCost(Library.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("You have spilt the cards into the following piles" + "\r\n" + "\r\n");
|
||||||
|
sb.append("Pile 1: " + "\r\n");
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) sb.append(Pile1.get(i).getName() + "\r\n");
|
||||||
|
sb.append("\r\n" + "Pile 2: " + "\r\n");
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) sb.append(Pile2.get(i).getName() + "\r\n");
|
||||||
|
JOptionPane.showMessageDialog(null, sb, "", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
if(Pile1CMC >= Pile2CMC) {
|
||||||
|
JOptionPane.showMessageDialog(null, "Computer adds the first pile to its hand and puts the second pile into the graveyard", "", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) AllZone.GameAction.moveTo(Hand, Pile1.get(i));
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) AllZone.GameAction.moveTo(Grave, Pile2.get(i));
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "Computer adds the second pile to its hand and puts the first pile into the graveyard", "", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) AllZone.GameAction.moveTo(Hand, Pile2.get(i));
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) AllZone.GameAction.moveTo(Grave, Pile1.get(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else//Computer chooses (It picks the highest converted mana cost card and 1 random card.)
|
||||||
|
{
|
||||||
|
Card biggest = null;
|
||||||
|
biggest = Library.get(0);
|
||||||
|
|
||||||
|
for(int i = 0; i < Count; i++) {
|
||||||
|
if(CardUtil.getConvertedManaCost(biggest.getManaCost()) >= CardUtil.getConvertedManaCost(biggest.getManaCost())) {
|
||||||
|
biggest = cards.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Pile1.add(biggest);
|
||||||
|
cards.remove(biggest);
|
||||||
|
if(cards.size() > 0) {
|
||||||
|
Card Random = CardUtil.getRandom(cards.toArray());
|
||||||
|
Pile1.add(Random);
|
||||||
|
}
|
||||||
|
for(int i = 0; i < Count; i++) if(!Pile1.contains(Library.get(i))) Pile2.add(Library.get(i));
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("Choose a pile to add to your hand: " + "\r\n" + "\r\n");
|
||||||
|
sb.append("Pile 1: " + "\r\n");
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) sb.append(Pile1.get(i).getName() + "\r\n");
|
||||||
|
sb.append("\r\n" + "Pile 2: " + "\r\n");
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) sb.append(Pile2.get(i).getName() + "\r\n");
|
||||||
|
Object[] possibleValues = {"Pile 1", "Pile 2"};
|
||||||
|
Object q = JOptionPane.showOptionDialog(null, sb, "Fact or Fiction",
|
||||||
|
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,
|
||||||
|
null, possibleValues, possibleValues[0]);
|
||||||
|
if(q.equals(0)) {
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) AllZone.GameAction.moveTo(Hand, Pile1.get(i));
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) AllZone.GameAction.moveTo(Grave, Pile2.get(i));
|
||||||
|
} else {
|
||||||
|
for(int i = 0; i < Pile2.size(); i++) AllZone.GameAction.moveTo(Hand, Pile2.get(i));
|
||||||
|
for(int i = 0; i < Pile1.size(); i++) AllZone.GameAction.moveTo(Grave, Pile1.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Pile1.clear();
|
||||||
|
Pile2.clear();
|
||||||
|
}//resolve()
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
PlayerZone Library = AllZone.getZone(Constant.Zone.Library, card.getController());
|
||||||
|
CardList cards = new CardList(Library.getCards());
|
||||||
|
return cards.size() >= 10;
|
||||||
|
}
|
||||||
|
};//SpellAbility
|
||||||
|
card.clearSpellAbility();
|
||||||
|
card.addSpellAbility(spell);
|
||||||
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
else if(cardName.equals("Temporal Fissure")) {
|
else if(cardName.equals("Temporal Fissure")) {
|
||||||
final SpellAbility spell = new Spell(card) {
|
final SpellAbility spell = new Spell(card) {
|
||||||
|
|||||||
Reference in New Issue
Block a user