A lot of fixes in cards.txt and the CardFactories, removed all warnings.

This commit is contained in:
jendave
2011-08-06 02:45:22 +00:00
parent e74ef54912
commit a48a6f43bb
12 changed files with 125 additions and 116 deletions

View File

@@ -18,6 +18,7 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg
forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748
forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587
forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586
benalish_trapper.jpg http://www.wizards.com/global/images/magic/general/benalish_trapper.jpg
merfolk_looter.jpg http://www.wizards.com/global/images/magic/general/merfolk_looter.jpg
thornscape_apprentice.jpg http://www.wizards.com/global/images/magic/general/thornscape_apprentice.jpg
scepter_of_insight.jpg http://www.wizards.com/global/images/magic/general/scepter_of_insight.jpg
@@ -58,7 +59,6 @@ azorius_first_wing.jpg http://www.wizards.com/global/images/magic/general/azori
bant_sureblade.jpg http://www.wizards.com/global/images/magic/general/bant_sureblade.jpg
bartel_runeaxe.jpg http://www.wizards.com/global/images/magic/general/bartel_runeaxe.jpg
benalish_heralds.jpg http://www.wizards.com/global/images/magic/general/benalish_heralds.jpg
benalish_hero.jpg http://www.wizards.com/global/images/magic/general/benalish_hero.jpg
boris_devilboon.jpg http://www.wizards.com/global/images/magic/general/boris_devilboon.jpg
buoyancy.jpg http://www.wizards.com/global/images/magic/general/buoyancy.jpg
dakkon_blackblade.jpg http://www.wizards.com/global/images/magic/general/dakkon_blackblade.jpg

View File

@@ -9,14 +9,14 @@ G
Creature Human Wizard
no text
1/1
TgtKpump R T: First strike
TgtKpump R T: First Strike
Scepter of Insight
1 U U
Artifact
no text
Asha's favor
Asha's Favor
2 W
Enchantment Aura
Enchanted creature gains flying, first strike and vigilance.
@@ -29,7 +29,7 @@ no text
0/1
Exalted
Blinding mage
Blinding Mage
1 W
Creature Human Wizard
no text
@@ -57,13 +57,13 @@ spDrawCards:Count$TypeOppCtrlTapped.Creature:Draw a card for each tapped creatur
Cruel Bargain
B B B
Sorcery
no text
(NOTE: "You lose half your life, rounded up." is not implemented.)
spDrawCards:4:Drawback$LoseLifeYou/Count$YourLifeTotal/HalfUp:Draw four cards.:You lose half your life, rounded up.:Cruel Bargain - Draw cards and lose half your life, rounded up.
Infernal Contract
B B B
Sorcery
no text
(NOTE: "You lose half your life, rounded up." is not implemented.)
spDrawCards:4:Drawback$LoseLifeYou/Count$YourLifeTotal/HalfUp:Draw four cards.:You lose half your life, rounded up.:Infernal Contract - Draw cards and lose half your life, rounded up.
Theft of Dreams
@@ -100,7 +100,7 @@ Inspiration
3 U
Sorcery
no text
spDrawCards:2:Draw two cards.:Inspiration - draw 2 cards.
spDrawCardsTgt:2:Target player draws two cards.:Inspiration - draw 2 cards.
Concentrate
2 U U
@@ -365,7 +365,7 @@ no text
Sacred Nectar
1 W
Sorcery
You gain 4 life.
no text
Maniacal Rage
1 R
@@ -376,14 +376,14 @@ Enchant creature
Scavenged Weaponry
2 B
Enchantment Aura
Enchanted creature gets +1/+1.
Enchanted creature gets +1/+1. Draw a card.
Enchant creature
Cantrip
Shield of Duty and Reason
W
Enchantment Aura
Enchanted creature has first protection from green and from blue.
Enchanted creature has protection from green and from blue.
Enchant creature
Reflexes
@@ -435,7 +435,7 @@ spDamageTgtCP:Count$NamedInAllYards.Kindle/Plus.2:Kindle deals X damage to targe
Ire of Kaminari
3 R
Instant Arcane
Instant Arcane
no text
spDamageTgtCP:Count$TypeInYourYard.Arcane:Ire of Kaminari deals damage to target creature or player equal to the number of Arcane cards in your graveyard.
@@ -479,7 +479,7 @@ Thermal Blast
4 R
Instant
no text
spDamageTgtC:Count$Hellbent.5.3:Thermal Blast deals 3 damage to target creature. Threshold Thermal Blast deals 5 damage to that creature instead if seven or more cards are in your graveyard.
spDamageTgtC:Count$Hellbent.5.3:Thermal Blast deals 3 damage to target creature. Threshold - Thermal Blast deals 5 damage to that creature instead if seven or more cards are in your graveyard.
Spitting Earth
1 R
@@ -1196,7 +1196,7 @@ tap: add 1
Darkwater Catacombs
no cost
Land
no text
1,tap: add U B
1,tap: add U B
Fetid Heath
@@ -1258,7 +1258,7 @@ tap: add 1
Mossfire Valley
no cost
Land
no text
1,tap: add R G
1,tap: add R G
Mystic Gate
@@ -1293,7 +1293,7 @@ tap: add 1
Shadowblood Ridge
no cost
Land
no text
1,tap: add B R
1,tap: add B R
Shimmering Grotto
@@ -1310,13 +1310,13 @@ tap: add 1
Skycloud Expanse
no cost
Land
no text
1,tap: add W U
1,tap: add W U
Sungrass Prairie
no cost
Land
no text
1,tap: add W G
1,tap: add W G
Sunken Ruins
@@ -1803,7 +1803,7 @@ Protection from green
Dosan's Oldest Chant
4 G
Sorcery
You gain 6 life
Draw a card.
Cantrip
Sluggishness
@@ -2318,7 +2318,7 @@ Cantrip
Morsel Theft
2 B B
Sorcery
Tribal Sorcery Rogue
Target player loses 3 life and you gain 3 life. (NOTE: "Prowl" is not implemented.)
spLoseLifeGainLife:3
@@ -10983,12 +10983,12 @@ Put two 1/1 red Goblin creature tokens into play. Storm (When you play this spel
Feudkiller's Verdict
4 W W
Sorcery
Tribal Sorcery Giant
You gain 10 life. Then if you have more life than an opponent, put a 5/5 white Giant Warrior creature token into play.
Reach of Branches
4 G
Instant
Tribal Instant Treefolk
Put a 2/5 green Treefolk Shaman creature token into play. Whenever a Forest comes into play under your control, you may return Reach of Branches from your graveyard to your hand.
Meadowboon
@@ -11017,7 +11017,7 @@ Fear
Bitterblossom
1 B
Enchantment Faerie
Tribal Enchantment Faerie
At the beginning of your upkeep, you lose 1 life and put a 1/1 black Faerie Rogue creature token with flying into play.
Ambassador Oak

Binary file not shown.

View File

@@ -20,9 +20,11 @@ public class Deck implements Serializable {
private String deckType;
/*
private boolean isRegular;
private boolean isSealed;
private boolean isDraft;
*/
private ArrayList<String> main;
private ArrayList<String> sideboard;

View File

@@ -28,7 +28,6 @@ public class QuestData_State implements Serializable {
ArrayList<String> cardPool;
HashMap<String, Deck> myDecks, aiDecks;
@SuppressWarnings("unchecked")
private Object readResolve() throws ObjectStreamException {
// System.out.println("resolving obsolete QuestData_State");
Map<String, forge.Deck> myDecks = new HashMap<String, forge.Deck>();

View File

@@ -3326,85 +3326,6 @@ public class CardFactory implements NewConstants {
//*************** START *********** START **************************
else if(cardName.equals("Magus of the Disk"))
{
SpellAbility summoningSpell = new Spell_Permanent(card)
{
private static final long serialVersionUID = 2510163318362956239L;
public boolean canPlayAI()
{
boolean nevinyrralInPlay = false;
CardList inPlay = new CardList();
inPlay.addAll(AllZone.Computer_Play.getCards());
for(int i=0; i<inPlay.size(); ++i)
{
if( inPlay.getCard(i).getName().equals("Nevinyrral's Disk"))
{
nevinyrralInPlay = true;
}
}
return ! nevinyrralInPlay && (0 < CardFactoryUtil.AI_getHumanCreature(card, false).size());
}
};
card.clearSpellAbility();
card.addSpellAbility(summoningSpell);
card.addComesIntoPlayCommand(new Command()
{
private static final long serialVersionUID = 1227443034730254929L;
public void execute()
{
card.tap();
}
});
final SpellAbility ability = new Ability_Tap(card, "1")
{
private static final long serialVersionUID = -4871606824998622131L;
public void resolve()
{
CardList all = new CardList();
all.addAll(AllZone.Human_Play.getCards());
all.addAll(AllZone.Computer_Play.getCards());
all = filter(all);
for(int i = 0; i < all.size(); i++)
AllZone.GameAction.destroy(all.get(i));
}
private CardList filter(CardList list)
{
return list.filter(new CardListFilter()
{
public boolean addCard(Card c)
{
return c.isArtifact() || c.isCreature() || c.isEnchantment();
}
});
}//filter()
public boolean canPlayAI()
{
CardList human = new CardList(AllZone.Human_Play.getCards());
CardList computer = new CardList(AllZone.Computer_Play.getCards());
human = human.getType("Creature");
computer = computer.getType("Creature");
//the computer will at least destroy 2 more human creatures
return computer.size() < human.size()-1 || AllZone.Computer_Life.getLife() < 7;
}
};//SpellAbility
card.addSpellAbility(ability);
ability.setDescription("1, tap: Destroy all artifacts, creatures, and enchantments.");
ability.setStackDescription("Destroy all artifacts, creatures, and enchantments.");
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Tanglebloom"))
{
@@ -15996,6 +15917,7 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
}
}
};//Input
ability.setDescription("W U B R G: Exile target permanent.");
ability.setBeforePayMana(target);
card.addSpellAbility(ability);
@@ -16038,6 +15960,7 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
}
}
};//Input
ability.setDescription("1, tap: Untap target artifact.");
ability.setBeforePayMana(target);
card.addSpellAbility(ability);

View File

@@ -4073,7 +4073,6 @@ public class CardFactory_Creatures {
ability.setDescription("B R G, Tap: Return target creature card from your graveyard to your hand.");
ability.setStackDescription(cardName + " - return target creature from your graveyard to your hand.");
card.clearSpellAbility();
card.addSpellAbility(ability);
@@ -7658,7 +7657,7 @@ public class CardFactory_Creatures {
else if(cardName.equals("Xira Arien"))
{
//mana tap ability
final Ability_Tap ability = new Ability_Tap(card, "G R B")
final Ability_Tap ability = new Ability_Tap(card, "B R G")
{
private static final long serialVersionUID = 5373361883064666451L;
@@ -7686,7 +7685,7 @@ public class CardFactory_Creatures {
}
};//SpellAbility
ability.setDescription("Tap: Target player draws a card.");
ability.setDescription("B R G, Tap: Target player draws a card.");
//ability.setBeforePayMana(new Input_NoCost_TapAbility(ability));
ability.setBeforePayMana(CardFactoryUtil.input_targetPlayer(ability));
@@ -15435,6 +15434,84 @@ public class CardFactory_Creatures {
//*************** START *********** START **************************
else if(cardName.equals("Magus of the Disk"))
{
SpellAbility summoningSpell = new Spell_Permanent(card)
{
private static final long serialVersionUID = 2510163318362956239L;
public boolean canPlayAI()
{
boolean nevinyrralInPlay = false;
CardList inPlay = new CardList();
inPlay.addAll(AllZone.Computer_Play.getCards());
for(int i=0; i<inPlay.size(); ++i)
{
if( inPlay.getCard(i).getName().equals("Nevinyrral's Disk"))
{
nevinyrralInPlay = true;
}
}
return ! nevinyrralInPlay && (0 < CardFactoryUtil.AI_getHumanCreature(card, false).size());
}
};
card.clearSpellAbility();
card.addSpellAbility(summoningSpell);
card.addComesIntoPlayCommand(new Command()
{
private static final long serialVersionUID = 1227443034730254929L;
public void execute()
{
card.tap();
}
});
final SpellAbility ability = new Ability_Tap(card, "1")
{
private static final long serialVersionUID = -4871606824998622131L;
public void resolve()
{
CardList all = new CardList();
all.addAll(AllZone.Human_Play.getCards());
all.addAll(AllZone.Computer_Play.getCards());
all = filter(all);
for(int i = 0; i < all.size(); i++)
AllZone.GameAction.destroy(all.get(i));
}
private CardList filter(CardList list)
{
return list.filter(new CardListFilter()
{
public boolean addCard(Card c)
{
return c.isArtifact() || c.isCreature() || c.isEnchantment();
}
});
}//filter()
public boolean canPlayAI()
{
CardList human = new CardList(AllZone.Human_Play.getCards());
CardList computer = new CardList(AllZone.Computer_Play.getCards());
human = human.getType("Creature");
computer = computer.getType("Creature");
//the computer will at least destroy 2 more human creatures
return computer.size() < human.size()-1 || AllZone.Computer_Life.getLife() < 7;
}
};//SpellAbility
card.addSpellAbility(ability);
ability.setDescription("1, tap: Destroy all artifacts, creatures, and enchantments.");
ability.setStackDescription("Destroy all artifacts, creatures, and enchantments.");
}//*************** END ************ END **************************
// Cards with Cycling abilities
// -1 means keyword "Cycling" not found
if (shouldCycle(card) != -1)

View File

@@ -1575,7 +1575,7 @@ class CardFactory_Equipment {
{
Card crd = card.getEquipping().get(0);
crd.addSemiPermanentDefenseBoost(1);
crd.addSemiPermanentAttackBoost(1);
}
}//execute()
};//Command
@@ -1592,7 +1592,7 @@ class CardFactory_Equipment {
{
Card crd = card.getEquipping().get(0);
crd.addSemiPermanentDefenseBoost(-1);
crd.addSemiPermanentAttackBoost(-1);
}

View File

@@ -183,6 +183,7 @@ public class GenerateConstructedDeck
//cards the AI cannot play (effectively):
remove.add("Necropotence");
remove.add("Sensei's Divining Top");
remove.add("Standstill");
//remove.add("Counterspell");

View File

@@ -406,6 +406,7 @@ public class GenerateConstructedMultiColorDeck
//cards the AI cannot play (effectively):
remove.add("Necropotence");
remove.add("Sensei's Divining Top");
remove.add("Standstill");
//remove.add("Counterspell");

View File

@@ -47,6 +47,7 @@ import forge.properties.NewConstants.LANG;
* @version V0.0 24.10.2009
* @author Clemens Koza
*/
@SuppressWarnings("unused")
public class Gui_DeckEditorNew extends JFrame implements CardDetail, NewConstants.GUI.GuiDeckEditor {
private static final long serialVersionUID = 680850452718332565L;
@@ -73,7 +74,7 @@ public class Gui_DeckEditorNew extends JFrame implements CardDetail, NewConstant
private JScrollPane jScrollPane1 = new JScrollPane();
private JScrollPane jScrollPane2 = new JScrollPane();
private JButton removeButton = new JButton();
@SuppressWarnings("unused")
// border1
private Border border1;
private TitledBorder titledBorder1;
@@ -766,7 +767,6 @@ public class Gui_DeckEditorNew extends JFrame implements CardDetail, NewConstant
}//removeButton_actionPerformed
*/
@SuppressWarnings("unused")
private void stats_actionPerformed(CardList list) {
}
@@ -812,6 +812,8 @@ public class Gui_DeckEditorNew extends JFrame implements CardDetail, NewConstant
*/
public abstract static class CardPoolModel extends AbstractTableModel {
private static final long serialVersionUID = 7773113247062724912L;
private static final String[] labels = {"Qty", "Name", "Cost", "Color", "Type", "Stats", "R"};
private static final Class<?>[] classes = {Integer.class, String.class, String.class, String.class};
//values taken from TableModel

View File

@@ -98,6 +98,10 @@ public class StateBasedEffects
cardToEffectsList.put("Radiant, Archangel", new String[] {"Radiant_Archangel"});
cardToEffectsList.put("Castle", new String[] {"Castle"});
cardToEffectsList.put("Castle Raptors", new String[] {"Castle_Raptors"});
cardToEffectsList.put("Levitation", new String[] {"Levitation"});
cardToEffectsList.put("Knighthood", new String[] {"Knighthood"});
cardToEffectsList.put("Absolute Law", new String[] {"Absolute_Law"});
cardToEffectsList.put("Absolute Grace", new String[] {"Absolute_Grace"});
cardToEffectsList.put("Mobilization", new String[] {"Mobilization"});
cardToEffectsList.put("Serra's Blessing", new String[] {"Serras_Blessing"});
cardToEffectsList.put("Cover of Darkness", new String[] {"Cover_of_Darkness"});