Huge update to forge's structure:

everything from the default package moved to package forge. the default package contains classes Deck and QuestData_State to keep compatibility with old files that store serialized objects of these classes

if you find other classes that are stored in the res directory through serialization, create a class for it in the default package or tell me.

about QuestData_State: i'm getting a NullPointerException when trying to create/resume quest. Maybe the quest files on SVN are simply out of date. otherwise, that seems hard. easy fix would of course be to replace null by a new Map
This commit is contained in:
jendave
2011-08-06 02:43:59 +00:00
parent 69322b3ef1
commit 386669b84e
167 changed files with 569 additions and 260 deletions

327
.gitattributes vendored
View File

@@ -31,169 +31,172 @@ res/quest/uncommon.txt -text svneol=native#text/plain
res/rare.txt -text svneol=native#text/plain res/rare.txt -text svneol=native#text/plain
res/tokens.txt -text svneol=native#text/plain res/tokens.txt -text svneol=native#text/plain
res/uncommon.txt -text svneol=native#text/plain res/uncommon.txt -text svneol=native#text/plain
src/Ability.java svneol=native#text/plain
src/Ability_Activated.java svneol=native#text/plain
src/Ability_Hand.java svneol=native#text/plain
src/Ability_Mana.java -text svneol=native#text/plain
src/Ability_Tap.java svneol=native#text/plain
src/All.java svneol=native#text/plain
src/AllZone.java svneol=native#text/plain
src/BackgroundPanel.java -text svneol=native#text/plain
src/BoosterDraft.java svneol=native#text/plain
src/BoosterDraftAI.java svneol=native#text/plain
src/BoosterPack.java svneol=native#text/plain
src/ButtonUtil.java svneol=native#text/plain
src/Card.java svneol=native#text/plain
src/CardDetailUtil.java svneol=native#text/plain
src/CardFactory.java svneol=native#text/plain
src/CardFactoryUtil.java svneol=native#text/plain
src/CardFactory_Auras.java -text svneol=native#text/plain
src/CardFactory_Creatures.java -text svneol=native#text/plain
src/CardFactory_Equipment.java -text svneol=native#text/plain
src/CardFactory_Lands.java -text svneol=native#text/plain
src/CardFactory_Planeswalkers.java -text svneol=native#text/plain
src/CardList.java svneol=native#text/plain
src/CardListFilter.java svneol=native#text/plain
src/CardListUtil.java svneol=native#text/plain
src/CardPanel.java svneol=native#text/plain
src/CardParser.java svneol=native#text/plain
src/CardUtil.java svneol=native#text/plain
src/Combat.java svneol=native#text/plain
src/CombatPlaneswalker.java svneol=native#text/plain
src/CombatUtil.java svneol=native#text/plain
src/Command.java svneol=native#text/plain
src/CommandArgs.java svneol=native#text/plain
src/CommandList.java svneol=native#text/plain
src/CommandReturn.java svneol=native#text/plain
src/Computer.java svneol=native#text/plain
src/ComputerAI_Burn.java svneol=native#text/plain
src/ComputerAI_Burn2.java svneol=native#text/plain
src/ComputerAI_General.java svneol=native#text/plain
src/ComputerAI_Input.java svneol=native#text/plain
src/ComputerAI_Rats2.java svneol=native#text/plain
src/ComputerAI_StackNotEmpty.java svneol=native#text/plain
src/ComputerAI_Testing.java svneol=native#text/plain
src/ComputerAI_counterSpells.java -text svneol=native#text/plain
src/ComputerUtil.java -text svneol=native#text/plain
src/ComputerUtil_Attack2.java svneol=native#text/plain
src/ComputerUtil_Block2.java svneol=native#text/plain
src/Computer_Cleanup.java svneol=native#text/plain
src/Computer_Draw.java svneol=native#text/plain
src/Computer_Race.java svneol=native#text/plain
src/Constant.java svneol=native#text/plain
src/Deck.java svneol=native#text/plain src/Deck.java svneol=native#text/plain
src/DeckIO.java svneol=native#text/plain src/QuestData_State.java svneol=native#text/plain
src/DefaultPlayerZone.java svneol=native#text/plain src/forge/Ability.java svneol=native#text/plain
src/Display.java svneol=native#text/plain src/forge/Ability_Activated.java svneol=native#text/plain
src/EndOfTurn.java svneol=native#text/plain src/forge/Ability_Hand.java svneol=native#text/plain
src/ExternalPanel.java svneol=native#text/plain src/forge/Ability_Mana.java -text svneol=native#text/plain
src/FileUtil.java -text svneol=native#text/plain src/forge/Ability_Tap.java svneol=native#text/plain
src/GameAction.java svneol=native#text/plain src/forge/All.java svneol=native#text/plain
src/GameActionUtil.java svneol=native#text/plain src/forge/AllZone.java svneol=native#text/plain
src/GenerateConstructedDeck.java svneol=native#text/plain src/forge/BackgroundPanel.java -text svneol=native#text/plain
src/GenerateConstructedMultiColorDeck.java -text svneol=native#text/plain src/forge/BoosterDraft.java svneol=native#text/plain
src/GenerateDraftDeck.java svneol=native#text/plain src/forge/BoosterDraftAI.java svneol=native#text/plain
src/GenerateSealedDeck.java svneol=native#text/plain src/forge/BoosterPack.java svneol=native#text/plain
src/GuiDisplay.java svneol=native#text/plain src/forge/ButtonUtil.java svneol=native#text/plain
src/GuiDisplay2.java svneol=native#text/plain src/forge/Card.java svneol=native#text/plain
src/GuiDisplay3.java -text svneol=native#text/plain src/forge/CardDetailUtil.java svneol=native#text/plain
src/GuiDisplayUtil.java svneol=native#text/plain src/forge/CardFactory.java svneol=native#text/plain
src/GuiInput.java svneol=native#text/plain src/forge/CardFactoryUtil.java svneol=native#text/plain
src/Gui_BoosterDraft.java svneol=native#text/plain src/forge/CardFactory_Auras.java -text svneol=native#text/plain
src/Gui_DeckEditor.java -text svneol=native#text/plain src/forge/CardFactory_Creatures.java -text svneol=native#text/plain
src/Gui_DeckEditorNew.java -text svneol=native#text/plain src/forge/CardFactory_Equipment.java -text svneol=native#text/plain
src/Gui_DeckEditor_Menu.java svneol=native#text/plain src/forge/CardFactory_Lands.java -text svneol=native#text/plain
src/Gui_DownloadPictures.java svneol=native#text/plain src/forge/CardFactory_Planeswalkers.java -text svneol=native#text/plain
src/Gui_MultipleBlockers.java svneol=native#text/plain src/forge/CardList.java svneol=native#text/plain
src/Gui_NewGame.java svneol=native#text/plain src/forge/CardListFilter.java svneol=native#text/plain
src/Gui_Quest.java svneol=native#text/plain src/forge/CardListUtil.java svneol=native#text/plain
src/Gui_QuestOptions.java svneol=native#text/plain src/forge/CardPanel.java svneol=native#text/plain
src/Gui_Quest_DeckEditor.java -text svneol=native#text/plain src/forge/CardParser.java svneol=native#text/plain
src/Gui_Quest_DeckEditor_Menu.java -text svneol=native#text/plain src/forge/CardUtil.java svneol=native#text/plain
src/Gui_SealedDeck.java svneol=native#text/plain src/forge/Combat.java svneol=native#text/plain
src/Gui_SetEditor.java svneol=native#text/plain src/forge/CombatPlaneswalker.java svneol=native#text/plain
src/Gui_Welcome.java svneol=native#text/plain src/forge/CombatUtil.java svneol=native#text/plain
src/Gui_WinLose.java svneol=native#text/plain src/forge/Command.java svneol=native#text/plain
src/IO.java svneol=native#text/plain src/forge/CommandArgs.java svneol=native#text/plain
src/ImageCache.java svneol=native#text/plain src/forge/CommandList.java svneol=native#text/plain
src/ImageJPanel.java -text svneol=native#text/plain src/forge/CommandReturn.java svneol=native#text/plain
src/ImageUtil.java svneol=native#text/plain src/forge/Computer.java svneol=native#text/plain
src/Input.java svneol=native#text/plain src/forge/ComputerAI_Burn.java svneol=native#text/plain
src/InputControl.java svneol=native#text/plain src/forge/ComputerAI_Burn2.java svneol=native#text/plain
src/InputUtil.java svneol=native#text/plain src/forge/ComputerAI_General.java svneol=native#text/plain
src/Input_Attack.java svneol=native#text/plain src/forge/ComputerAI_Input.java svneol=native#text/plain
src/Input_Attack_Instant.java -text svneol=native#text/plain src/forge/ComputerAI_Rats2.java svneol=native#text/plain
src/Input_Attack_Planeswalker.java svneol=native#text/plain src/forge/ComputerAI_StackNotEmpty.java svneol=native#text/plain
src/Input_Before_Attack_Instant.java -text svneol=native#text/plain src/forge/ComputerAI_Testing.java svneol=native#text/plain
src/Input_Block.java svneol=native#text/plain src/forge/ComputerAI_counterSpells.java -text svneol=native#text/plain
src/Input_Block_Instant.java svneol=native#text/plain src/forge/ComputerUtil.java -text svneol=native#text/plain
src/Input_Block_Planeswalker.java svneol=native#text/plain src/forge/ComputerUtil_Attack2.java svneol=native#text/plain
src/Input_Cleanup.java svneol=native#text/plain src/forge/ComputerUtil_Block2.java svneol=native#text/plain
src/Input_CombatDamage.java svneol=native#text/plain src/forge/Computer_Cleanup.java svneol=native#text/plain
src/Input_Draw.java svneol=native#text/plain src/forge/Computer_Draw.java svneol=native#text/plain
src/Input_EOT.java svneol=native#text/plain src/forge/Computer_Race.java svneol=native#text/plain
src/Input_FirstStrikeDamage.java -text svneol=native#text/plain src/forge/Constant.java svneol=native#text/plain
src/Input_Main.java svneol=native#text/plain src/forge/Deck.java svneol=native#text/plain
src/Input_Mulligan.java svneol=native#text/plain src/forge/DeckIO.java svneol=native#text/plain
src/Input_NoCost_TapAbility.java svneol=native#text/plain src/forge/DefaultPlayerZone.java svneol=native#text/plain
src/Input_PayManaCost.java svneol=native#text/plain src/forge/Display.java svneol=native#text/plain
src/Input_PayManaCostUtil.java svneol=native#text/plain src/forge/EndOfTurn.java svneol=native#text/plain
src/Input_PayManaCost_Ability.java svneol=native#text/plain src/forge/ExternalPanel.java svneol=native#text/plain
src/Input_StackNotEmpty.java svneol=native#text/plain src/forge/FileUtil.java -text svneol=native#text/plain
src/Input_Untap.java svneol=native#text/plain src/forge/GameAction.java svneol=native#text/plain
src/KeyListenerTest.java -text svneol=native#text/plain src/forge/GameActionUtil.java svneol=native#text/plain
src/MagicStack.java svneol=native#text/plain src/forge/GenerateConstructedDeck.java svneol=native#text/plain
src/ManaCost.java svneol=native#text/plain src/forge/GenerateConstructedMultiColorDeck.java -text svneol=native#text/plain
src/ManaPool.java svneol=native#text/plain src/forge/GenerateDraftDeck.java svneol=native#text/plain
src/Mana_Part.java svneol=native#text/plain src/forge/GenerateSealedDeck.java svneol=native#text/plain
src/Mana_PartColor.java svneol=native#text/plain src/forge/GuiDisplay.java svneol=native#text/plain
src/Mana_PartColorless.java svneol=native#text/plain src/forge/GuiDisplay2.java svneol=native#text/plain
src/Mana_PartSplit.java svneol=native#text/plain src/forge/GuiDisplay3.java -text svneol=native#text/plain
src/Mana_PartTest.java svneol=native#text/plain src/forge/GuiDisplayUtil.java svneol=native#text/plain
src/Mana_PayCost.java svneol=native#text/plain src/forge/GuiInput.java svneol=native#text/plain
src/MenuItem_HowToPlay.java svneol=native#text/plain src/forge/Gui_BoosterDraft.java svneol=native#text/plain
src/Move.java svneol=native#text/plain src/forge/Gui_DeckEditor.java -text svneol=native#text/plain
src/MoveAttack.java svneol=native#text/plain src/forge/Gui_DeckEditorNew.java -text svneol=native#text/plain
src/MyButton.java svneol=native#text/plain src/forge/Gui_DeckEditor_Menu.java svneol=native#text/plain
src/MyObservable.java svneol=native#text/plain src/forge/Gui_DownloadPictures.java svneol=native#text/plain
src/MyRandom.java svneol=native#text/plain src/forge/Gui_MultipleBlockers.java svneol=native#text/plain
src/NameChanger.java svneol=native#text/plain src/forge/Gui_NewGame.java svneol=native#text/plain
src/NewIO.java svneol=native#text/plain src/forge/Gui_Quest.java svneol=native#text/plain
src/NonScrollingJEditorPane.java -text svneol=native#text/plain src/forge/Gui_QuestOptions.java svneol=native#text/plain
src/Phase.java svneol=native#text/plain src/forge/Gui_Quest_DeckEditor.java -text svneol=native#text/plain
src/PhaseObserver.java svneol=native#text/plain src/forge/Gui_Quest_DeckEditor_Menu.java -text svneol=native#text/plain
src/PicturePanel.java svneol=native#text/plain src/forge/Gui_SealedDeck.java svneol=native#text/plain
src/PlayerLife.java svneol=native#text/plain src/forge/Gui_SetEditor.java svneol=native#text/plain
src/PlayerZone.java svneol=native#text/plain src/forge/Gui_Welcome.java svneol=native#text/plain
src/PlayerZoneUtil.java svneol=native#text/plain src/forge/Gui_WinLose.java svneol=native#text/plain
src/PlayerZone_ComesIntoPlay.java svneol=native#text/plain src/forge/IO.java svneol=native#text/plain
src/PrintCardNames.java svneol=native#text/plain src/forge/ImageCache.java svneol=native#text/plain
src/PrintCardPictures.java svneol=native#text/plain src/forge/ImageJPanel.java -text svneol=native#text/plain
src/QuestData.java svneol=native#text/plain src/forge/ImageUtil.java svneol=native#text/plain
src/QuestData_BoosterPack.java svneol=native#text/plain src/forge/Input.java svneol=native#text/plain
src/ReadBoosterPack.java svneol=native#text/plain src/forge/InputControl.java svneol=native#text/plain
src/ReadCard.java svneol=native#text/plain src/forge/InputUtil.java svneol=native#text/plain
src/Run.java svneol=native#text/plain src/forge/Input_Attack.java svneol=native#text/plain
src/RunTest.java svneol=native#text/plain src/forge/Input_Attack_Instant.java -text svneol=native#text/plain
src/SimpleCombat.java svneol=native#text/plain src/forge/Input_Attack_Planeswalker.java svneol=native#text/plain
src/Spell.java svneol=native#text/plain src/forge/Input_Before_Attack_Instant.java -text svneol=native#text/plain
src/SpellAbility.java -text svneol=native#text/plain src/forge/Input_Block.java svneol=native#text/plain
src/SpellAbilityList.java svneol=native#text/plain src/forge/Input_Block_Instant.java svneol=native#text/plain
src/SpellAbilityUtil.java svneol=native#text/plain src/forge/Input_Block_Planeswalker.java svneol=native#text/plain
src/Spell_Evoke.java svneol=native#text/plain src/forge/Input_Cleanup.java svneol=native#text/plain
src/Spell_Permanent.java svneol=native#text/plain src/forge/Input_CombatDamage.java svneol=native#text/plain
src/StackObserver.java svneol=native#text/plain src/forge/Input_Draw.java svneol=native#text/plain
src/StateBasedEffects.java -text svneol=native#text/plain src/forge/Input_EOT.java svneol=native#text/plain
src/TableModel.java -text svneol=native#text/plain src/forge/Input_FirstStrikeDamage.java -text svneol=native#text/plain
src/TableSorter.java svneol=native#text/plain src/forge/Input_Main.java svneol=native#text/plain
src/TempRun.java svneol=native#text/plain src/forge/Input_Mulligan.java svneol=native#text/plain
src/Test.java svneol=native#text/plain src/forge/Input_NoCost_TapAbility.java svneol=native#text/plain
src/TestMove.java svneol=native#text/plain src/forge/Input_PayManaCost.java svneol=native#text/plain
src/TestPanel.java svneol=native#text/plain src/forge/Input_PayManaCostUtil.java svneol=native#text/plain
src/Time.java svneol=native#text/plain src/forge/Input_PayManaCost_Ability.java svneol=native#text/plain
src/UndoCommand.java svneol=native#text/plain src/forge/Input_StackNotEmpty.java svneol=native#text/plain
src/Wait.java svneol=native#text/plain src/forge/Input_Untap.java svneol=native#text/plain
src/WinLose.java svneol=native#text/plain src/forge/KeyListenerTest.java -text svneol=native#text/plain
src/forge/MagicStack.java svneol=native#text/plain
src/forge/ManaCost.java svneol=native#text/plain
src/forge/ManaPool.java svneol=native#text/plain
src/forge/Mana_Part.java svneol=native#text/plain
src/forge/Mana_PartColor.java svneol=native#text/plain
src/forge/Mana_PartColorless.java svneol=native#text/plain
src/forge/Mana_PartSplit.java svneol=native#text/plain
src/forge/Mana_PartTest.java svneol=native#text/plain
src/forge/Mana_PayCost.java svneol=native#text/plain
src/forge/MenuItem_HowToPlay.java svneol=native#text/plain
src/forge/Move.java svneol=native#text/plain
src/forge/MoveAttack.java svneol=native#text/plain
src/forge/MyButton.java svneol=native#text/plain
src/forge/MyObservable.java svneol=native#text/plain
src/forge/MyRandom.java svneol=native#text/plain
src/forge/NameChanger.java svneol=native#text/plain
src/forge/NewIO.java svneol=native#text/plain
src/forge/NonScrollingJEditorPane.java -text svneol=native#text/plain
src/forge/Phase.java svneol=native#text/plain
src/forge/PhaseObserver.java svneol=native#text/plain
src/forge/PicturePanel.java svneol=native#text/plain
src/forge/PlayerLife.java svneol=native#text/plain
src/forge/PlayerZone.java svneol=native#text/plain
src/forge/PlayerZoneUtil.java svneol=native#text/plain
src/forge/PlayerZone_ComesIntoPlay.java svneol=native#text/plain
src/forge/PrintCardNames.java svneol=native#text/plain
src/forge/PrintCardPictures.java svneol=native#text/plain
src/forge/QuestData.java svneol=native#text/plain
src/forge/QuestData_BoosterPack.java svneol=native#text/plain
src/forge/QuestData_State.java svneol=native#text/plain
src/forge/ReadBoosterPack.java svneol=native#text/plain
src/forge/ReadCard.java svneol=native#text/plain
src/forge/Run.java svneol=native#text/plain
src/forge/RunTest.java svneol=native#text/plain
src/forge/SimpleCombat.java svneol=native#text/plain
src/forge/Spell.java svneol=native#text/plain
src/forge/SpellAbility.java -text svneol=native#text/plain
src/forge/SpellAbilityList.java svneol=native#text/plain
src/forge/SpellAbilityUtil.java svneol=native#text/plain
src/forge/Spell_Evoke.java svneol=native#text/plain
src/forge/Spell_Permanent.java svneol=native#text/plain
src/forge/StackObserver.java svneol=native#text/plain
src/forge/StateBasedEffects.java -text svneol=native#text/plain
src/forge/TableModel.java -text svneol=native#text/plain
src/forge/TableSorter.java svneol=native#text/plain
src/forge/TempRun.java svneol=native#text/plain
src/forge/Test.java svneol=native#text/plain
src/forge/TestMove.java svneol=native#text/plain
src/forge/TestPanel.java svneol=native#text/plain
src/forge/Time.java svneol=native#text/plain
src/forge/UndoCommand.java svneol=native#text/plain
src/forge/Wait.java svneol=native#text/plain
src/forge/WinLose.java svneol=native#text/plain
src/forge/error/ErrorViewer.java svneol=native#text/plain src/forge/error/ErrorViewer.java svneol=native#text/plain
src/forge/error/ExceptionHandler.java -text svneol=native#text/plain src/forge/error/ExceptionHandler.java -text svneol=native#text/plain
src/forge/gui/ForgeAction.java svneol=native#text/plain src/forge/gui/ForgeAction.java svneol=native#text/plain

View File

@@ -1,76 +1,44 @@
import java.util.*; import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.ArrayList;
public class Deck implements java.io.Serializable
{
private static final long serialVersionUID = -2188987217361601903L;
//gameType is from Constant.GameType, like Constant.GameType.Regular /**
private String deckType; * Deck.java
*
* Created on 26.10.2009
*/
private boolean isRegular;
private boolean isSealed;
private boolean isDraft;
private ArrayList<String> main = new ArrayList<String>(); /**
private ArrayList<String> sideboard = new ArrayList<String>(); * The class Deck. This class is only here for compatibility with forge versions 10/17 and older. When it is read
* from the file stream, the object is replaced with an object of type {@link Deck} using {@link #readResolve()}.
*
* @author Clemens Koza
*/
public class Deck implements Serializable {
private static final long serialVersionUID = -2188987217361601903L;
//very important, do NOT change this private String deckType;
private String name = "";
//gameType is from Constant.GameType, like Constant.GameType.Regular private boolean isRegular;
public Deck(String gameType) private boolean isSealed;
{ private boolean isDraft;
deckType = gameType;
setDeckType(gameType);
}
public String getDeckType() {return deckType;}
//can only call this method ONCE private ArrayList<String> main = new ArrayList<String>();
private final void setDeckType(String deckType) private ArrayList<String> sideboard = new ArrayList<String>();
{
if(isRegular || isSealed || isDraft)
throw new RuntimeException("Deck : setDeckType() error, deck type has already been set");
if(deckType.equals(Constant.GameType.Constructed)) //very important, do NOT change this
isRegular = true; private String name = "";
else if(deckType.equals(Constant.GameType.Sealed))
isSealed = true;
else if(deckType.equals(Constant.GameType.Draft))
isDraft = true;
else
throw new RuntimeException("Deck : setDeckType() error, invalid deck type - " +deckType);
}
public void setName(String s) {name = s;} private Object readResolve() throws ObjectStreamException {
public String getName() {return name;}//may return null System.out.println("resolving obsolete Deck");
forge.Deck d = new forge.Deck(deckType);
public void addMain(String cardName) {main.add(cardName);} d.setName(name);
public int countMain() {return main.size();} for(String s:main)
public String getMain(int index) {return main.get(index).toString();} d.addMain(s);
public String removeMain(int index) {return main.remove(index).toString();} for(String s:sideboard)
d.addSideboard(s);
public void addSideboard(String cardName) {sideboard.add(cardName);} return d;
public int countSideboard() {return sideboard.size();} }
public String getSideboard(int index) {return sideboard.get(index).toString();}
public String removeSideboard(int index) {return sideboard.remove(index).toString();}
public boolean isDraft() {return isDraft;}
public boolean isSealed() {return isSealed;}
public boolean isRegular() {return isRegular;}
public int hashcode() {return getName().hashCode();}
public String toString() {return getName();}
}
class DeckSort implements Comparator<Object>
{
public int compare(Object a, Object b)
{
String a1 = ((Deck)a).getName();
String b1 = ((Deck)b).getName();
return a1.compareTo(b1);
}
} }

39
src/QuestData_State.java Normal file
View File

@@ -0,0 +1,39 @@
/**
* QuestData_State.java
*
* Created on 26.10.2009
*/
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
/**
* The class QuestData_State. This class is only here for compatibility with forge versions 10/17 and older. When
* it is read from the file stream, the object is replaced with an object of type {@link Deck} using
* {@link #readResolve()}.
*
* @author Clemens Koza
*/
public class QuestData_State implements Serializable {
private static final long serialVersionUID = 7007940230351051937L;
int rankIndex, win, lost;
String difficulty;
ArrayList<String> cardPool;
HashMap<String, Deck> myDecks, aiDecks;
@SuppressWarnings("unchecked")
private Object readResolve() throws ObjectStreamException {
System.out.println("resolving obsolete QuestData_State");
//removing generic types to make cast between Deck and forge.Deck
//i'm using Deck in this class because it may be somewhere in the serialization stream
//it is irrelevant, because readResolve replaces Deck by forge.Deck, and since generics
//aren't checked at runtime, the cast is ok.
return new forge.QuestData_State(rankIndex, win, lost, difficulty, cardPool, (HashMap) myDecks,
(HashMap) aiDecks);
}
}

View File

@@ -1,3 +1,4 @@
package forge;
abstract public class Ability extends SpellAbility abstract public class Ability extends SpellAbility
{ {
public Ability(Card sourceCard, String manaCost) public Ability(Card sourceCard, String manaCost)

View File

@@ -1,3 +1,4 @@
package forge;
abstract public class Ability_Activated extends SpellAbility implements java.io.Serializable abstract public class Ability_Activated extends SpellAbility implements java.io.Serializable
{ {
/** /**

View File

@@ -1,3 +1,4 @@
package forge;
//TODO: make this class a type of Ability //TODO: make this class a type of Ability
abstract public class Ability_Hand extends SpellAbility implements java.io.Serializable abstract public class Ability_Hand extends SpellAbility implements java.io.Serializable
{ {

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
abstract public class Ability_Mana extends SpellAbility implements java.io.Serializable abstract public class Ability_Mana extends SpellAbility implements java.io.Serializable

View File

@@ -1,3 +1,4 @@
package forge;
abstract public class Ability_Tap extends SpellAbility implements java.io.Serializable abstract public class Ability_Tap extends SpellAbility implements java.io.Serializable
{ {

View File

@@ -1,3 +1,4 @@
package forge;
public class All public class All
{ {
public Phase Phase = new Phase(); public Phase Phase = new Phase();

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.HashMap; import java.util.HashMap;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.*; import java.awt.*;
import javax.swing.*; import javax.swing.*;

View File

@@ -1,3 +1,4 @@
package forge;
public interface BoosterDraft public interface BoosterDraft

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class BoosterDraftAI public class BoosterDraftAI

View File

@@ -1,3 +1,4 @@
package forge;
public class BoosterPack public class BoosterPack

View File

@@ -1,3 +1,4 @@
package forge;
public class ButtonUtil public class ButtonUtil
{ {
public static void reset() public static void reset()

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
enum Counters { enum Counters {

View File

@@ -1,3 +1,4 @@
package forge;
import javax.swing.*; import javax.swing.*;
interface CardDetail interface CardDetail

View File

@@ -1,3 +1,4 @@
package forge;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class CardFactoryUtil public class CardFactoryUtil

View File

@@ -1,3 +1,4 @@
package forge;
class CardFactory_Auras { class CardFactory_Auras {
public static Card getCard(final Card card, String cardName, String owner) public static Card getCard(final Card card, String cardName, String owner)
{ {

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,3 +1,4 @@
package forge;
class CardFactory_Equipment { class CardFactory_Equipment {
public static Card getCard(final Card card, String cardName, String owner) public static Card getCard(final Card card, String cardName, String owner)
{ {

View File

@@ -1,3 +1,4 @@
package forge;
class CardFactory_Lands { class CardFactory_Lands {
public static Card getCard(final Card card, String cardName, String owner) public static Card getCard(final Card card, String cardName, String owner)
{ {

View File

@@ -1,3 +1,4 @@
package forge;
class CardFactory_Planeswalkers { class CardFactory_Planeswalkers {
public static Card getCard(final Card card, String cardName, String owner) public static Card getCard(final Card card, String cardName, String owner)
{ {

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class CardList implements Iterable<Card> public class CardList implements Iterable<Card>

View File

@@ -1,3 +1,4 @@
package forge;
public interface CardListFilter public interface CardListFilter
{ {
public boolean addCard(Card c); public boolean addCard(Card c);

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class CardListUtil public class CardListUtil

View File

@@ -1,3 +1,4 @@
package forge;
import javax.swing.*; import javax.swing.*;
public class CardPanel extends JPanel public class CardPanel extends JPanel

View File

@@ -1,3 +1,4 @@
package forge;
import java.io.*; import java.io.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class Combat public class Combat

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class CombatPlaneswalker public class CombatPlaneswalker

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.ArrayList; import java.util.ArrayList;
public class CombatUtil public class CombatUtil

View File

@@ -1,3 +1,4 @@
package forge;
public interface Command extends java.io.Serializable public interface Command extends java.io.Serializable
{ {
public static Command Blank = new Command() { public static Command Blank = new Command() {

View File

@@ -1,3 +1,4 @@
package forge;
public interface CommandArgs extends java.io.Serializable public interface CommandArgs extends java.io.Serializable
{ {
public void execute(Object o); public void execute(Object o);

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class CommandList implements java.io.Serializable, Command, Iterable<Command> public class CommandList implements java.io.Serializable, Command, Iterable<Command>

View File

@@ -1,3 +1,4 @@
package forge;
public interface CommandReturn public interface CommandReturn
{ {
public Object execute(); public Object execute();

View File

@@ -1,3 +1,4 @@
package forge;
public interface Computer public interface Computer
{ {
//must shuffle this //must shuffle this

View File

@@ -1,3 +1,4 @@
package forge;
//import java.util.*; //import java.util.*;

View File

@@ -1,3 +1,4 @@
package forge;
//import java.util.*; //import java.util.*;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;

View File

@@ -1,3 +1,4 @@
package forge;
import static forge.error.ErrorViewer.*; import static forge.error.ErrorViewer.*;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,3 +1,4 @@
package forge;
public class ComputerAI_Input extends Input public class ComputerAI_Input extends Input
{ {
private static final long serialVersionUID = -3091338639571662216L; private static final long serialVersionUID = -3091338639571662216L;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class ComputerAI_Rats2 implements Computer public class ComputerAI_Rats2 implements Computer

View File

@@ -1,3 +1,4 @@
package forge;
public class ComputerAI_StackNotEmpty extends Input public class ComputerAI_StackNotEmpty extends Input
{ {
private static final long serialVersionUID = -3995969852275185353L; private static final long serialVersionUID = -3995969852275185353L;

View File

@@ -1,3 +1,4 @@
package forge;
public class ComputerAI_Testing implements Computer public class ComputerAI_Testing implements Computer
{ {

View File

@@ -1,3 +1,4 @@
package forge;
public class ComputerAI_counterSpells { public class ComputerAI_counterSpells {

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
//doesHumanAttackAndWin() uses the global variable AllZone.Computer_Life //doesHumanAttackAndWin() uses the global variable AllZone.Computer_Life

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class ComputerUtil_Block2 public class ComputerUtil_Block2

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.Random; import java.util.Random;
public class Computer_Cleanup extends Input public class Computer_Cleanup extends Input

View File

@@ -1,3 +1,4 @@
package forge;
public class Computer_Draw extends Input public class Computer_Draw extends Input
{ {
private static final long serialVersionUID = -815953053902719496L; private static final long serialVersionUID = -815953053902719496L;

View File

@@ -1,3 +1,4 @@
package forge;
public class Computer_Race public class Computer_Race
{ {
public boolean willWinRace(CardList attackList, int attackLife, CardList blockList, int blockLife) public boolean willWinRace(CardList attackList, int attackLife, CardList blockList, int blockLife)

View File

@@ -1,3 +1,4 @@
package forge;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
public interface Constant public interface Constant

115
src/forge/Deck.java Normal file
View File

@@ -0,0 +1,115 @@
package forge;
import java.util.*;
public class Deck implements java.io.Serializable {
private static final long serialVersionUID = -2188987217361601903L;
//gameType is from Constant.GameType, like Constant.GameType.Regular
private String deckType;
private boolean isRegular;
private boolean isSealed;
private boolean isDraft;
private ArrayList<String> main = new ArrayList<String>();
private ArrayList<String> sideboard = new ArrayList<String>();
//very important, do NOT change this
private String name = "";
//gameType is from Constant.GameType, like Constant.GameType.Regular
public Deck(String gameType) {
deckType = gameType;
setDeckType(gameType);
}
public String getDeckType() {
return deckType;
}
//can only call this method ONCE
private final void setDeckType(String deckType) {
if(isRegular || isSealed || isDraft) throw new RuntimeException(
"Deck : setDeckType() error, deck type has already been set");
if(deckType.equals(Constant.GameType.Constructed)) isRegular = true;
else if(deckType.equals(Constant.GameType.Sealed)) isSealed = true;
else if(deckType.equals(Constant.GameType.Draft)) isDraft = true;
else throw new RuntimeException("Deck : setDeckType() error, invalid deck type - " + deckType);
}
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}//may return null
public void addMain(String cardName) {
main.add(cardName);
}
public int countMain() {
return main.size();
}
public String getMain(int index) {
return main.get(index).toString();
}
public String removeMain(int index) {
return main.remove(index).toString();
}
public void addSideboard(String cardName) {
sideboard.add(cardName);
}
public int countSideboard() {
return sideboard.size();
}
public String getSideboard(int index) {
return sideboard.get(index).toString();
}
public String removeSideboard(int index) {
return sideboard.remove(index).toString();
}
public boolean isDraft() {
return isDraft;
}
public boolean isSealed() {
return isSealed;
}
public boolean isRegular() {
return isRegular;
}
public int hashcode() {
return getName().hashCode();
}
public String toString() {
return getName();
}
}
class DeckSort implements Comparator<Object> {
public int compare(Object a, Object b) {
String a1 = ((Deck) a).getName();
String b1 = ((Deck) b).getName();
return a1.compareTo(b1);
}
}

View File

@@ -1,3 +1,4 @@
package forge;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class DefaultPlayerZone extends PlayerZone implements java.io.Serializable public class DefaultPlayerZone extends PlayerZone implements java.io.Serializable

View File

@@ -1,3 +1,4 @@
package forge;
public interface Display { public interface Display {
public <T> T getChoice(String message, T[] choices); public <T> T getChoice(String message, T[] choices);

View File

@@ -1,3 +1,4 @@
package forge;
//import java.util.*; //import java.util.*;
//handles "until end of turn" and "at end of turn" commands from cards //handles "until end of turn" and "at end of turn" commands from cards

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;

View File

@@ -1,3 +1,4 @@
package forge;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
import javax.swing.*; import javax.swing.*;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class GameActionUtil public class GameActionUtil

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class GenerateConstructedDeck public class GenerateConstructedDeck

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class GenerateDraftDeck public class GenerateDraftDeck

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class GenerateSealedDeck public class GenerateSealedDeck

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.FlowLayout; import java.awt.FlowLayout;

View File

@@ -1,3 +1,4 @@
package forge;

View File

@@ -1,3 +1,4 @@
package forge;
import static org.jdesktop.swingx.MultiSplitLayout.*; import static org.jdesktop.swingx.MultiSplitLayout.*;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class GuiInput extends MyObservable implements Observer public class GuiInput extends MyObservable implements Observer

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Frame; import java.awt.Frame;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;

View File

@@ -1,3 +1,4 @@
package forge;
import static javax.swing.BorderFactory.*; import static javax.swing.BorderFactory.*;
import static org.jdesktop.swingx.MultiSplitLayout.*; import static org.jdesktop.swingx.MultiSplitLayout.*;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;

View File

@@ -1,3 +1,4 @@
package forge;
import static java.lang.Integer.*; import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*; import static javax.swing.JOptionPane.*;

View File

@@ -1,3 +1,4 @@
package forge;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Rectangle; import java.awt.Rectangle;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.GridLayout; import java.awt.GridLayout;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Font; import java.awt.Font;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;

View File

@@ -1,3 +1,4 @@
package forge;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.Rectangle; import java.awt.Rectangle;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Rectangle; import java.awt.Rectangle;

View File

@@ -1,3 +1,4 @@
package forge;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Image; import java.awt.Image;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Image; import java.awt.Image;

View File

@@ -1,3 +1,4 @@
package forge;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;

View File

@@ -1,3 +1,4 @@
package forge;
public abstract class Input implements java.io.Serializable public abstract class Input implements java.io.Serializable
{ {
private static final long serialVersionUID = -6539552513871194081L; private static final long serialVersionUID = -6539552513871194081L;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
@SuppressWarnings("unused") // java.util.* @SuppressWarnings("unused") // java.util.*

View File

@@ -1,3 +1,4 @@
package forge;
//import java.util.*; //unused //import java.util.*; //unused
public class InputUtil public class InputUtil

View File

@@ -1,3 +1,4 @@
package forge;
public class Input_Attack extends Input public class Input_Attack extends Input
{ {
private static final long serialVersionUID = 7849903731842214245L; private static final long serialVersionUID = 7849903731842214245L;

View File

@@ -1,3 +1,4 @@
package forge;
public class Input_Attack_Instant extends Input public class Input_Attack_Instant extends Input
{ {
private static final long serialVersionUID = -8244057741266587006L; private static final long serialVersionUID = -8244057741266587006L;

View File

@@ -1,3 +1,4 @@
package forge;
public class Input_Attack_Planeswalker extends Input public class Input_Attack_Planeswalker extends Input
{ {
private static final long serialVersionUID = 5738375759147611797L; private static final long serialVersionUID = 5738375759147611797L;

View File

@@ -1,3 +1,4 @@
package forge;
public class Input_Before_Attack_Instant extends Input public class Input_Before_Attack_Instant extends Input
{ {

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class Input_Block extends Input public class Input_Block extends Input

View File

@@ -1,3 +1,4 @@
package forge;
public class Input_Block_Instant extends Input public class Input_Block_Instant extends Input
{ {
private static final long serialVersionUID = 6024555691502280746L; private static final long serialVersionUID = 6024555691502280746L;

View File

@@ -1,3 +1,4 @@
package forge;
import java.util.*; import java.util.*;
public class Input_Block_Planeswalker extends Input public class Input_Block_Planeswalker extends Input

Some files were not shown because too many files have changed in this diff Show More