mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Made some more code cleanups and (small) performance improvements.
- Fixed Sarkhan Vol and Ajani Goldmane token controllership issues. Also fixed Ajani Goldmane?\127 lifegain after a different player takes control of it. - Memnarch's first ability will put the Artifact type at the beginning of the type text (so "Artifact Planeswalker - Ajani" instead of "Planeswalker - Ajani Artifact"). - Planeswalkers with the same "subtype" should get destroyed correctly now if there are two or more in play, even if one of them got "Memnarched" into an artifact.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
program/mail=mtgerror@yahoo.com
|
||||
program/forum=http://www.slightlymagic.net/forum/viewforum.php?f=26
|
||||
program/version=Forge -- official beta: 10/01/01, SVN revision: 272
|
||||
program/version=Forge -- official beta: 10/01/01, SVN revision: 273
|
||||
|
||||
tokens--file=AllTokens.txt
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ public class AnchorLayout implements LayoutManager2 {
|
||||
@SuppressWarnings("unchecked")
|
||||
private HashMap constraintMap = new HashMap();
|
||||
private boolean sizesCalculated = false;
|
||||
@SuppressWarnings("unused")
|
||||
private Container container;
|
||||
//private Container container;
|
||||
|
||||
public AnchorLayout() {
|
||||
super();
|
||||
|
||||
@@ -13,7 +13,7 @@ class BoosterDraft_1 implements BoosterDraft
|
||||
{
|
||||
private final BoosterDraftAI draftAI = new BoosterDraftAI();
|
||||
private final int nPlayers = 8;
|
||||
private final int boosterPackSize = 15;
|
||||
private static final int boosterPackSize = 15;
|
||||
private final int stopCount = boosterPackSize * 3;//should total of 45
|
||||
|
||||
private int currentCount = 0;
|
||||
|
||||
@@ -6,8 +6,8 @@ public class BoosterDraftAI
|
||||
//once a deck has this number of creatures the computer randomly
|
||||
//picks a card, so the final computer deck has 12-20 creatures
|
||||
//minimum of creatures per deck
|
||||
private final int nCreatures = 16;
|
||||
private final int nDecks = 7;
|
||||
private static final int nCreatures = 16;
|
||||
private static final int nDecks = 7;
|
||||
|
||||
//holds all the cards for each of the computer's decks
|
||||
private CardList[] deck = new CardList[nDecks];
|
||||
|
||||
@@ -294,16 +294,17 @@ public class Card extends MyObservable
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
String s = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
ArrayList<String> keyword = getKeyword();
|
||||
for(int i = 0; i < keyword.size(); i++)
|
||||
{
|
||||
if(i != 0)
|
||||
s += ", ";
|
||||
s += keyword.get(i).toString();
|
||||
sb.append(", ");
|
||||
sb.append(keyword.get(i).toString());
|
||||
}
|
||||
|
||||
s += "\r\n" +text +"\r\n";
|
||||
sb.append("\r\n");
|
||||
sb.append(text);
|
||||
sb.append("\r\n");
|
||||
|
||||
SpellAbility[] sa = getSpellAbility();
|
||||
for(int i = 0; i < sa.length; i++)
|
||||
@@ -312,10 +313,13 @@ public class Card extends MyObservable
|
||||
//skip the first SpellAbility for creatures, since it says "Summon this creature"
|
||||
//looks bad on the Gui card detail
|
||||
if(isPermanent() && (isLand() || i != 0) && !(manaAbility.contains(sa[i]) && ((Ability_Mana) sa[i]).isBasic()))//prevent mana ability duplication
|
||||
s += sa[i].toString() +"\r\n";
|
||||
{
|
||||
sb.append(sa[i].toString());
|
||||
sb.append("\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
return s.trim();
|
||||
return sb.toString().trim();
|
||||
}//getText()
|
||||
|
||||
/* private ArrayList<Ability_Mana> addLandAbilities ()
|
||||
|
||||
@@ -886,7 +886,7 @@ public class CardFactory implements NewConstants {
|
||||
final String DrawBack[] = {"none"};
|
||||
final String spDesc[] = {"none"};
|
||||
final String stDesc[] = {"none"};
|
||||
String d = new String("none");
|
||||
String d = "none";
|
||||
|
||||
if ((AttackX[0].equals("none") && !(NumAttack[0] == -1138)) && (DefenseX[0].equals("none") && !(NumDefense[0] == -1138)) && Keyword[0].equals("none"))
|
||||
{
|
||||
@@ -1772,7 +1772,7 @@ public class CardFactory implements NewConstants {
|
||||
|
||||
final String manaCost = tmpCost;
|
||||
|
||||
String tempDesc = new String();
|
||||
String tempDesc = "";
|
||||
tempDesc = cardName + " deals " + dmg[0] + " damage to target creature or player.";
|
||||
final String Desc = tempDesc;
|
||||
|
||||
@@ -13027,6 +13027,8 @@ public class CardFactory implements NewConstants {
|
||||
lands.addAll(play.getCards());
|
||||
lands = lands.getType("Land");
|
||||
|
||||
c = lands.get(0);
|
||||
|
||||
setTargetCard(c);
|
||||
|
||||
}
|
||||
|
||||
@@ -9628,7 +9628,13 @@ public class CardFactory_Creatures {
|
||||
{
|
||||
if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()) )
|
||||
{
|
||||
getTargetCard().addType("Artifact");
|
||||
Card crd = getTargetCard();
|
||||
ArrayList<String> types = crd.getType();
|
||||
crd.setType(new ArrayList<String>()); //clear
|
||||
getTargetCard().addType("Artifact"); //make sure artifact is at the beginning
|
||||
for (String type : types)
|
||||
crd.addType(type);
|
||||
|
||||
}
|
||||
}//resolve()
|
||||
public boolean canPlayAI()
|
||||
|
||||
@@ -315,9 +315,6 @@ class CardFactory_Planeswalkers {
|
||||
|
||||
public boolean canPlay()
|
||||
{
|
||||
@SuppressWarnings("unused") // library
|
||||
PlayerZone library = AllZone.getZone(Constant.Zone.Library, card2.getController());
|
||||
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) &&
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
@@ -941,8 +938,6 @@ class CardFactory_Planeswalkers {
|
||||
|
||||
public boolean canPlay()
|
||||
{
|
||||
@SuppressWarnings("unused") // library
|
||||
PlayerZone library = AllZone.getZone(Constant.Zone.Library, card2.getController());
|
||||
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) &&
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
@@ -979,13 +974,13 @@ class CardFactory_Planeswalkers {
|
||||
card2.subtractCounter(Counters.LOYALTY, 6);
|
||||
turn[0] = AllZone.Phase.getTurn();
|
||||
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController());
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play, card2.getController());
|
||||
|
||||
//Create token
|
||||
Card c = new Card();
|
||||
|
||||
c.setOwner(card.getController());
|
||||
c.setController(card.getController());
|
||||
c.setOwner(card2.getController());
|
||||
c.setController(card2.getController());
|
||||
|
||||
c.setImageName("W N N Avatar");
|
||||
c.setName("Avatar");
|
||||
@@ -1042,7 +1037,7 @@ class CardFactory_Planeswalkers {
|
||||
turn[0] = AllZone.Phase.getTurn();
|
||||
|
||||
|
||||
AllZone.GameAction.getPlayerLife(card.getController()).addLife(2);
|
||||
AllZone.GameAction.getPlayerLife(card2.getController()).addLife(2);
|
||||
System.out.println("current phase: " +AllZone.Phase.getPhase());
|
||||
}
|
||||
public boolean canPlayAI()
|
||||
@@ -2783,8 +2778,8 @@ class CardFactory_Planeswalkers {
|
||||
{
|
||||
Card c = new Card();
|
||||
|
||||
c.setOwner(card.getController());
|
||||
c.setController(card.getController());
|
||||
c.setOwner(card2.getController());
|
||||
c.setController(card2.getController());
|
||||
|
||||
c.setImageName("R 4 4 Dragon");
|
||||
c.setName("Dragon");
|
||||
|
||||
@@ -169,7 +169,7 @@ public class ComputerAI_General implements Computer {
|
||||
Collection<Card> play = playMain1Cards;
|
||||
if(c.isLand()) return false;
|
||||
if(play.contains(c.getName()) || (c.isCreature() && c.getKeyword().contains("Haste"))) return true;
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
CardList all = new CardList();
|
||||
|
||||
@@ -14,8 +14,8 @@ public class FileFinder {
|
||||
private long totalLength = 0;
|
||||
private int filesNumber = 0;
|
||||
private long directoriesNumber = 0;
|
||||
private final int FILES = 0;
|
||||
private final int DIRECTORIES = 1;
|
||||
private static final int FILES = 0;
|
||||
private static final int DIRECTORIES = 1;
|
||||
private ArrayList<String> fileNames;
|
||||
private ArrayList<String> fName;
|
||||
|
||||
|
||||
@@ -459,7 +459,8 @@ private Card getCurrentCard(int ID)
|
||||
if(c.getCounters(Counters.LOYALTY) <= 0)
|
||||
AllZone.GameAction.moveToGraveyard(c);
|
||||
|
||||
CardList cl = getPlaneswalkerSubtype(list, c);
|
||||
String subtype = c.getType().get(c.getType().size()-1);
|
||||
CardList cl = getPlaneswalkerSubtype(list, subtype, c);
|
||||
|
||||
if (cl.size() > 1)
|
||||
{
|
||||
@@ -505,15 +506,15 @@ private Card getCurrentCard(int ID)
|
||||
return a;
|
||||
}
|
||||
|
||||
public CardList getPlaneswalkerSubtype(CardList search, Card planeswalker)
|
||||
public CardList getPlaneswalkerSubtype(CardList search, String subtype, Card planeswalker)
|
||||
{
|
||||
final String type = planeswalker.getType().toString();
|
||||
CardList list = search;
|
||||
final String type = subtype;
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return c.getType().toString().equals(type);
|
||||
return c.getType().toString().contains(type);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Gui_BoosterDraft extends JFrame implements CardDetail, NewConstants
|
||||
|
||||
private BoosterDraft boosterDraft;
|
||||
|
||||
private final boolean limitedDeckEditor = true;
|
||||
private static final boolean limitedDeckEditor = true;
|
||||
|
||||
private TableModel allCardModel;
|
||||
private TableModel deckModel;
|
||||
|
||||
@@ -58,7 +58,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
private static File previousDirectory = null;
|
||||
|
||||
|
||||
private final boolean debugPrint = false;
|
||||
private static final boolean debugPrint = false;
|
||||
|
||||
// private final DeckIO deckIO = new OldDeckIO(ForgeProps.getFile(DECKS));
|
||||
// private final DeckIO boosterDeckIO = new OldDeckIO(ForgeProps.getFile(BOOSTER_DECKS));
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar {
|
||||
//if true, the Quest Deck editor will let you edit the computer's decks
|
||||
private final boolean canEditComputerDecks;
|
||||
|
||||
private final String deckEditorName = "Deck Editor";
|
||||
private static final String deckEditorName = "Deck Editor";
|
||||
|
||||
//used for import and export, try to made the gui user friendly
|
||||
private static File previousDirectory = null;
|
||||
|
||||
@@ -39,10 +39,10 @@ public class ImagePreviewPanel extends JPanel
|
||||
* handle so we don't try to draw something silly.
|
||||
*/
|
||||
if ((name != null) &&
|
||||
name.toLowerCase().endsWith(".jpg") ||
|
||||
(name.toLowerCase().endsWith(".jpg") ||
|
||||
name.toLowerCase().endsWith(".jpeg") ||
|
||||
name.toLowerCase().endsWith(".gif") ||
|
||||
name.toLowerCase().endsWith(".png")) {
|
||||
name.toLowerCase().endsWith(".png")) ) {
|
||||
icon = new ImageIcon(name);
|
||||
image = icon.getImage();
|
||||
scaleImage();
|
||||
|
||||
@@ -15,7 +15,7 @@ import forge.properties.NewConstants;
|
||||
//balance the number of colors and creature/spells for
|
||||
//new cards that are won in quest mode
|
||||
public class QuestData_BoosterPack implements NewConstants {
|
||||
final private String comment = "//";
|
||||
final private static String comment = "//";
|
||||
|
||||
private ArrayList<String> commonCreature = new ArrayList<String>();
|
||||
private ArrayList<String> commonSpell = new ArrayList<String>();
|
||||
|
||||
@@ -17,7 +17,7 @@ public class ReadBoosterPack implements NewConstants {
|
||||
// final private String uncommonFilename = Constant.IO.baseDir +"data/uncommon.txt";
|
||||
// final private String rareFilename = Constant.IO.baseDir +"data/rare.txt";
|
||||
|
||||
final private String comment = "//";
|
||||
final private static String comment = "//";
|
||||
|
||||
private CardList commonCreatureList;
|
||||
private CardList commonNonCreatureList;
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.io.RandomAccessFile;
|
||||
*/
|
||||
public class RiffFile
|
||||
{
|
||||
class RiffChunkHeader
|
||||
static class RiffChunkHeader
|
||||
{
|
||||
public int ckID = 0; // Four-character chunk ID
|
||||
public int ckSize = 0; // Length of data in chunk
|
||||
|
||||
@@ -32,7 +32,7 @@ public class WaveFile extends RiffFile
|
||||
{
|
||||
public static final int MAX_WAVE_CHANNELS = 2;
|
||||
|
||||
class WaveFormat_ChunkData
|
||||
static class WaveFormat_ChunkData
|
||||
{
|
||||
public short wFormatTag = 0; // Format category (PCM=1)
|
||||
public short nChannels = 0; // Number of channels (mono=1, stereo=2)
|
||||
@@ -88,7 +88,7 @@ public class WaveFile extends RiffFile
|
||||
}
|
||||
}
|
||||
|
||||
public class WaveFileSample
|
||||
public static class WaveFileSample
|
||||
{
|
||||
public short[] chan;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ package javazoom.jl.converter;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javazoom.jl.decoder.Crc16;
|
||||
//import javazoom.jl.decoder.Crc16;
|
||||
import javazoom.jl.decoder.JavaLayerException;
|
||||
import javazoom.jl.decoder.OutputChannels;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ package javazoom.jl.decoder;
|
||||
*/
|
||||
final class LayerIIIDecoder implements FrameDecoder
|
||||
{
|
||||
final double d43 = (4.0/3.0);
|
||||
final static double d43 = (4.0/3.0);
|
||||
|
||||
public int[] scalefac_buffer;
|
||||
|
||||
@@ -2407,7 +2407,7 @@ final class LayerIIIDecoder implements FrameDecoder
|
||||
/* END OF INV_MDCT */
|
||||
/***************************************************************/
|
||||
|
||||
class Sftable
|
||||
static class Sftable
|
||||
{
|
||||
public int[] l;
|
||||
public int[] s;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class AdvancedPlayer
|
||||
/** The AudioDevice the audio samples are written to. */
|
||||
private AudioDevice audio;
|
||||
/** Has the player been closed? */
|
||||
private boolean closed = false;
|
||||
//private boolean closed = false;
|
||||
/** Has the player played back all frames from the stream? */
|
||||
|
||||
//private boolean complete = false;
|
||||
@@ -124,7 +124,7 @@ public class AdvancedPlayer
|
||||
AudioDevice out = audio;
|
||||
if (out != null)
|
||||
{
|
||||
closed = true;
|
||||
//closed = true;
|
||||
audio = null;
|
||||
// this may fail, so ensure object state is set up before
|
||||
// calling this method.
|
||||
|
||||
@@ -100,7 +100,7 @@ public class jlap
|
||||
return player;
|
||||
}
|
||||
|
||||
public class InfoListener extends PlaybackListener
|
||||
public static class InfoListener extends PlaybackListener
|
||||
{
|
||||
public void playbackStarted(PlaybackEvent evt)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user