diff --git a/README.md b/README.md index 471a5b2..30d18f1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,60 @@ # Application CSIS 1410 - Group Project + +CURRENT TODO ITEMS: + +**************** CONTENT **************** + + - All PHB classes should be included. + +**************** GUI ******************** + + - Finish GUI panels + + PANELS: + - Race + Upload custom profile picture button. + - Description (needs positioning) + - Spells & Equipment + - Preview + - Load Character/View character + - Save as PDF / Print + + DESCRIPTIONS: + + - Class action scene pictures. + - Ability Scores description text. + - Class descriptions. + - Race descriptions. + +*************** FILES ****************** + +NOTE: user.dir = /home/joshuaashton/Development/misc/dndApp/src + user.home = /home/joshuaashton + +NOTE: user.dir is changed to exe directory by application launch4j. This creates an exe file from .jar. + see Inno Setup Compiler to package .exe and the JRE into a singular installer. + + - Upload custom profile picture. + + - Character sheet from selections. + + - Load existing characters to edit. + + - Save new characters. + + - File directory based upon OS used. + + - Export to PDF. + + - Print + +************** FINAL TOUCHES ********** + + - Generate a random character. + + - Character levels. + + - Spells. + + - Dice roller. diff --git a/src/App.java b/src/App.java index 2f5ae8d..e8df5c2 100644 --- a/src/App.java +++ b/src/App.java @@ -2,9 +2,8 @@ public class App { public static void main(String[] args) { - FileManager data = new FileManager(); + GUImanager gui = new GUImanager(); - GUImanager gui = new GUImanager(data.isReturninguser()); gui.setVisible(true); } diff --git a/src/BasicNavPanel.java b/src/BasicNavPanel.java index f0b2414..a3f8db0 100644 --- a/src/BasicNavPanel.java +++ b/src/BasicNavPanel.java @@ -13,7 +13,16 @@ public class BasicNavPanel extends JPanel implements AppTheme { super(new GridLayout(1, 2, 30, 0)); this.backButton = backButton; - this.continueButton = continueButton; + + if(continueButton == null) { + + this.continueButton = null; + + } else { + + this.continueButton = continueButton; + + } this.continueRequirement = continueRequirement; createNavPanel(); @@ -56,7 +65,11 @@ public class BasicNavPanel extends JPanel implements AppTheme { if (continueRequirement == 0) { - add(continueButton); + if(continueButton != null) { + + add(continueButton); + + } } else { diff --git a/src/CharacterSheet.java b/src/CharacterSheet.java index 8690f9b..6d600a7 100644 --- a/src/CharacterSheet.java +++ b/src/CharacterSheet.java @@ -6,97 +6,113 @@ public class CharacterSheet implements Serializable { private int heightFeet; private int heightInch; private int weight; - private String eye; - private String hair; + private String eyeColor; + private String hairColor; private Race race; - + private ClassTemplate chClass; + private String[] spells; + private String[] equipment; + private String alignment; + private String background; private CharacterStats stats; - /** - * @param name - * @param age - * @param heightFeet - * @param heightInch - * @param weight - * @param eye - * @param hair + /* + * TODO: Need to add the following variables: + * + * - CharacterClass x1 var + * - ChosenSpells xN vars + * - Equipment xN vars + * - Description x3 vars + * + * TOTAL: Minimum 12, + N spells and N equipment + * */ - public CharacterSheet(String name, int age, - int heightFeet, int heightInch, - int weight, String eye, String hair, - Race race, CharacterStats stats) { + + public CharacterSheet( + + String name, + int age, + int heightFeet, + int heightInch, + int weight, + String eyeColor, + String hairColor, + Race race, + ClassTemplate chClass, + String alignment, + String background, + CharacterStats stats + + ) { + this.name = name; this.age = age; this.heightFeet = heightFeet; this.heightInch = heightInch; this.weight = weight; - this.eye = eye; - this.hair = hair; + this.eyeColor = eyeColor; + this.hairColor = hairColor; + this.race = race; + this.chClass = chClass; + this.alignment = alignment; + this.background = background; this.stats = stats; - } - - /** - * Default constructor - */ - public CharacterSheet() { - this.name = "null"; - this.age = 0; - this.heightFeet = 0; - this.heightInch = 0; - this.weight = 0; - this.eye = "null"; - this.hair = "null"; } - /** - * @return the name - */ public String getName() { + return name; + } - /** - * @return the age - */ public int getAge() { + return age; + } - /** - * @return the heightFeet - */ public int getHeightFeet() { + return heightFeet; + } - /** - * @return the heightInch - */ public int getHeightInch() { + return heightInch; + } - /** - * @return the weigth - */ public int getWeight() { + return weight; + } - /** - * @return the eye - */ - public String getEye() { - return eye; + public String getEyeColor() { + + return eyeColor; + } - /** - * @return the hair - */ - public String getHair() { - return hair; + public String getHairColor() { + + return hairColor; + + } + + public Race getRace() { + + return race; + + } + + public ClassTemplate getCharacterClass() { + + return chClass; + } public CharacterStats getStats() { @@ -107,10 +123,11 @@ public class CharacterSheet implements Serializable { @Override public String toString() { - return "name: " + name + " | age: " + age + " | height: " - + heightFeet + "\'" + heightInch + "\" | weight: " - + weight + " | eye: " + eye + " | hair: " + hair - + " | race: " + race.toString() + " | stats: " + stats.toString(); + + String output = "Character name: " + name + "\nAge: " + age + "\nHeight: " + heightFeet + "\'" + heightInch + "\"" + "\nWeight: " + weight + "\nEye Color: " + eyeColor + "\nHair Color: " + hairColor + "\nRace: " + race.toString() + "\nClass: " + chClass.toString() + "\nStats: " + stats.toString(); + + return output; + } } diff --git a/src/CharacterStats.java b/src/CharacterStats.java index 4c12ef7..7237cae 100644 --- a/src/CharacterStats.java +++ b/src/CharacterStats.java @@ -1,4 +1,6 @@ -public class CharacterStats { +import java.io.Serializable; + +public class CharacterStats implements Serializable { private Stats[] stats; diff --git a/src/Charisma.java b/src/Charisma.java index c9dde3a..a749f21 100644 --- a/src/Charisma.java +++ b/src/Charisma.java @@ -1,4 +1,6 @@ -public class Charisma extends Stats { +import java.io.Serializable; + +public class Charisma extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/Constitution.java b/src/Constitution.java index 36db985..6eec31c 100644 --- a/src/Constitution.java +++ b/src/Constitution.java @@ -1,4 +1,6 @@ -public class Constitution extends Stats { +import java.io.Serializable; + +public class Constitution extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/CustomTheme.java b/src/CustomTheme.java deleted file mode 100644 index 208d23a..0000000 --- a/src/CustomTheme.java +++ /dev/null @@ -1,12 +0,0 @@ -import java.awt.*; - -public interface CustomTheme { - - public Color background = null; - public Color foreground = null; - - Color getBackground(); - - Color getForeground(); - -} diff --git a/src/Dexterity.java b/src/Dexterity.java index 404e452..81973d9 100644 --- a/src/Dexterity.java +++ b/src/Dexterity.java @@ -1,4 +1,6 @@ -public class Dexterity extends Stats { +import java.io.Serializable; + +public class Dexterity extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/Elf.java b/src/Elf.java index 1373504..88fb995 100644 --- a/src/Elf.java +++ b/src/Elf.java @@ -1,4 +1,6 @@ -public class Elf implements Race { +import java.io.Serializable; + +public class Elf implements Race, Serializable { private final int speed = 30; private final int maxAge = 750; private String[] traits; @@ -14,57 +16,65 @@ public class Elf implements Race { @Override public String getRace() { - // TODO Auto-generated method stub + return this.getClass().getSimpleName(); + } @Override public int maxAge() { - // TODO Auto-generated method stub + return maxAge; + } @Override public int getSpeed() { - // TODO Auto-generated method stub + return speed; + } @Override public String[] getTraits() { - // TODO Auto-generated method stub + return traits; } @Override public String[] getSkills() { - // TODO Auto-generated method stub + return skills; + } @Override public String[] getLanguages() { - // TODO Auto-generated method stub + return languages; + } @Override public String[] getProficiencies() { - // TODO Auto-generated method stub + return proficiencies; + } @Override public int[] getASI() { - // TODO Auto-generated method stub + return new int[]{1, 1}; + } @Override public String toString() { - // TODO Auto-generated method stub + return this.getClass().getSimpleName(); + } } diff --git a/src/Fighter.java b/src/Fighter.java index f8c7ce5..0b2b7c9 100644 --- a/src/Fighter.java +++ b/src/Fighter.java @@ -1,4 +1,6 @@ -public class Fighter implements ClassTemplate { +import java.io.Serializable; + +public class Fighter implements ClassTemplate, Serializable { private int HP; @@ -7,7 +9,7 @@ public class Fighter implements ClassTemplate { // TODO: This should be the type of die. private int hitDie; - public Fighter(Stats[] stats, int level) { + public Fighter() { } @@ -85,4 +87,11 @@ public class Fighter implements ClassTemplate { return null; } + @Override + public String toString() { + + return this.getClass().getSimpleName(); + + } + } diff --git a/src/FileManager.java b/src/FileManager.java index 75be41b..ee67ff5 100644 --- a/src/FileManager.java +++ b/src/FileManager.java @@ -1,115 +1,163 @@ import java.awt.*; import java.io.*; +import java.util.*; public class FileManager { - private File[] savedCharacters; + private String filepath; + private boolean returningUser; + + private ArrayList saveFiles; + private ArrayList saves; public FileManager() { - findSavedCharacters(); + filepath = System.getProperty("user.dir"); - loadFonts(); + saveFiles = new ArrayList<>(); - } + setSaveFiles(); - private void loadFonts() { + loadFont(); - try { - GraphicsEnvironment ge = - GraphicsEnvironment.getLocalGraphicsEnvironment(); - ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("SanSalvi.ttf"))); - } catch (IOException | FontFormatException e) { - //Handle exception - System.out.println("Error finding font."); - } + } - } + public String getOSFilepath() { - public boolean isReturninguser() { + return filepath; - if (savedCharacters == null) { + } - return false; + public boolean isReturningUser() { - } + return returningUser; - return savedCharacters.length > 0; + } - } + public CharacterSheet readSavedCharacter(int index) { - public CharacterSheet readCharacter(int index) { + return readCharacter(saveFiles.get(index)); - CharacterSheet sheet = null; + } - try { + public void saveCharacter(CharacterSheet completedCharacter) { - FileInputStream fileIn = new FileInputStream("/dndBuilder/" + savedCharacters[index].getPath() + ".dnd"); - ObjectInputStream in = new ObjectInputStream(fileIn); - sheet = (CharacterSheet) in.readObject(); - in.close(); - fileIn.close(); + writeCharacter(completedCharacter); - } catch (IOException i) { + } - i.printStackTrace(); + public ArrayList getSaves() { - } catch (ClassNotFoundException c) { + return saves; - System.out.println("Saved characters not found"); - c.printStackTrace(); + } - } + // TODO: Need to implement. + public void deleteCharacter() { - return sheet; + } - } + private void loadFont() { - public void saveCharacter(CharacterSheet completedCharacter) { + try { - try { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - FileOutputStream fileOut = - new FileOutputStream("/dndBuilder/" + completedCharacter.getName().hashCode() + ".dnd"); - ObjectOutputStream out = new ObjectOutputStream(fileOut); - out.writeObject(completedCharacter); - out.close(); - fileOut.close(); + ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(filepath + "/.resources/SanSalvi.ttf"))); + + } catch(IOException | FontFormatException e) { - } catch (IOException i) { + System.out.println("Filepath of font not found: " + filepath + "/.resources/SanSalvi.ttf does not exist."); - i.printStackTrace(); + } - } + } - findSavedCharacters(); + private void setSaveFiles() { - } + File[] tmp = new File(filepath + "/.savedSheets/").listFiles(); - public void deleteCharacter(int index) { + if(tmp != null) { - File[] tmp = new File[savedCharacters.length - 1]; + for(int i = 0; i < tmp.length; i++) { - for (int i = 0; i < savedCharacters.length; i++) { + saveFiles.add(tmp[i]); - if (i != index) { + } - tmp[i] = savedCharacters[i]; + returningUser = true; - } + } else { - } + returningUser = false; - savedCharacters = tmp; + } - findSavedCharacters(); + saves = new ArrayList<>(); - } + for(File file : saveFiles) { - private void findSavedCharacters() { + saves.add(readCharacter(file)); - savedCharacters = new File("/dndBuilder").listFiles(); + } - } + } + + private CharacterSheet readCharacter(File file) { + + CharacterSheet sheet = null; + + System.out.println("filepath: " + file.getPath()); + + try { + + FileInputStream fileIn = new FileInputStream(file.getPath()); + + ObjectInputStream in = new ObjectInputStream(fileIn); + + sheet = (CharacterSheet) in.readObject(); + + in.close(); + fileIn.close(); + + } catch (IOException | ClassNotFoundException e) { + + System.out.println("No saved characters were found"); + + } + + return sheet; + + } + + private void writeCharacter(CharacterSheet sheet) { + + try( + + FileOutputStream fileOut = new FileOutputStream(filepath + "/.savedSheets/" + sheet.getName() + ".dnd"); + + ObjectOutputStream objOut = new ObjectOutputStream(fileOut); + + ) { + + System.out.println("Inside saving char method."); + + objOut.writeObject(sheet); + + setSaveFiles(); + +System.out.println("Object written to file."); + + } catch (IOException e) { + + System.out.println("ERROR: "); + + e.printStackTrace(); + + System.out.println("\nERROR: Unable to write character sheet object to \n" + filepath + "/.savedSheets"); + + } + + } } diff --git a/src/GUImanager.java b/src/GUImanager.java index 8455776..fc03a34 100644 --- a/src/GUImanager.java +++ b/src/GUImanager.java @@ -1,8 +1,13 @@ import javax.swing.*; import java.awt.*; +import java.util.*; public class GUImanager extends JFrame { + private FileManager fileManager; + private ArrayList saves; + private ArrayList savesButtons; + private static JPanel[] panels; private int lastPanel; private int currentPanel; @@ -25,24 +30,23 @@ public class GUImanager extends JFrame { private String[] backgroundDescriptions; private int[] selectedStats; - - public GUImanager(boolean returningUser) { + public GUImanager() { super("D&D Character Builder"); + fileManager = new FileManager(); frameSetup(); setupPanelInfo(); this.panels = new JPanel[]{ + new MainMenuPanel(createNewCharacterButton(), createRandomCharacterButton(), createLoadButton()), new BasicPanel(createNavPanel(), raceOptions, raceDescriptions, "Step 1: Choose Your Race"), // To choose Race. new BasicPanel(createNavPanel(), classOptions, classDescriptions, "Step 2: Choose Your Class"), // To choose Class. new ChooseAbilityScoresPanel(createNavPanel(1), statOptions, statDescriptions, selectedStats, "Step 3: Choose Your Ability Scores"), - new DescriptionPanel(createNavPanel(), characteristics, alignmentOptions, alignmentDescriptions, backgroundOptions, backgroundDescriptions, "Step 4: Describe your character") + new DescriptionPanel(createNavPanel(), characteristics, alignmentOptions, alignmentDescriptions, backgroundOptions, backgroundDescriptions, "Step 4: Describe your character"), + new LoadCharacterPanel(createBackPanel(), loadableCharacters()), + new ViewCharacterPanel(createBackPanel(), new CharacterSheet("Josh", 21, 5, 8, 180, "Brown", "Dark Brown", new Elf(), new Fighter(), "Neutral", "Nomad", new CharacterStats(9, 15, 12, 10, 13, 10))) }; -/* - this.currentPanel = 0; - this.lastPanel = currentPanel - 1; - this.nextPanel = currentPanel + 1;*/ - if (returningUser) { + if (fileManager.isReturningUser()) { this.currentPanel = 0; @@ -52,6 +56,9 @@ public class GUImanager extends JFrame { } + this.lastPanel = currentPanel - 1; + this.nextPanel = currentPanel + 1; + add(panels[currentPanel]); } @@ -62,7 +69,7 @@ public class GUImanager extends JFrame { setLayout(new BorderLayout()); setPreferredSize(new Dimension(750, 550)); setSize(getPreferredSize()); -// setResizable(false); + setResizable(false); setLocationRelativeTo(null); try { @@ -260,6 +267,12 @@ public class GUImanager extends JFrame { } + private BasicNavPanel createBackPanel() { + + return new BasicNavPanel(createBackButton(), null, 0); + + } + private DefaultButton createBackButton() { DefaultButton button = new DefaultButton("Back"); @@ -305,6 +318,19 @@ public class GUImanager extends JFrame { DefaultButton button = createContinueButton(); button.setText("Create New Character"); + button.addActionListener( + + e -> { + + lastPanel = currentPanel; + currentPanel = 1; + nextPanel = 2; + clearAndReset(); + + } + + ); + return button; } @@ -361,8 +387,7 @@ public class GUImanager extends JFrame { e -> { lastPanel = currentPanel; - currentPanel = 3; - nextPanel = currentPanel + 1; + currentPanel = 5; clearAndReset(); } @@ -373,6 +398,50 @@ public class GUImanager extends JFrame { } + private ArrayList loadableCharacters() { + + System.out.println("Loading characters..."); + + saves = fileManager.getSaves(); + + savesButtons = new ArrayList<>(); + + for(int i = 0; i < saves.size(); i++) { + + savesButtons.add(createLoadNCharacterButton(i)); + + } + + for(int i = 0; i < saves.size(); i++) { + + System.out.println(saves.get(i).toString()); + + } + + return savesButtons; + + } + + private DefaultButton createLoadNCharacterButton(int index) { + + DefaultButton button = new DefaultButton(saves.get(index).getName()); + button.addActionListener( + + e -> { + + lastPanel = currentPanel; + panels[5] = new ViewCharacterPanel(createBackPanel(), saves.get(index)); + currentPanel = 5; + clearAndReset(); + + } + + ); + + return button; + + } + // TODO: Need to implement random character creation. private void createRandomCharacter() { @@ -392,4 +461,5 @@ public class GUImanager extends JFrame { } + } diff --git a/src/ImageInfoPanel.java b/src/ImageInfoPanel.java index fb301ad..283911c 100644 --- a/src/ImageInfoPanel.java +++ b/src/ImageInfoPanel.java @@ -11,6 +11,23 @@ public class ImageInfoPanel extends InfoPanel implements AppTheme { private JLabel[][] portraits; private int lastIndex; + //private JLabel[] savesPortraits; + + //private int numSaveCharacters; + +// TODO: Need to implement +/* + public ImageInfoPanel(int panelIndex, int numSaveCharacters) { + + super(panelIndex); + + this.numSaveCharacters = numSaveCharacters; + this.characterName = characterName; + + createSavesPortraits(); + + } +*/ public ImageInfoPanel(String[] categoryHolder, String[] holderDescriptions, Rectangle[] bounds, int panelIndex) { super(categoryHolder, holderDescriptions, bounds, panelIndex); @@ -43,6 +60,31 @@ public class ImageInfoPanel extends InfoPanel implements AppTheme { } + // TODO: Need to create a separate class/refactor ImageInfoPanel to be multi-purpose. +/* + private void createSavesPortraits() { + + File imagesDir; + + imagesDir = new File("Img/.savesPortraits").listFiles(); + + savesPortraits = new JLabel[imagesDir.length); + + int index = 0; + + for(File file : imagesDir) { + + savesPortraits[index] = image(file); + savesPortraits[index].setOpaque(true); + savesPortraits[index].setBackground(lightBrown); + savesPortraits[index].setBounds(bounds[3]); + + index++; + + } + + } +*/ private void createPortraits() { String category = ""; diff --git a/src/Intelligence.java b/src/Intelligence.java index 2fb6560..f955dea 100644 --- a/src/Intelligence.java +++ b/src/Intelligence.java @@ -1,4 +1,6 @@ -public class Intelligence extends Stats { +import java.io.Serializable; + +public class Intelligence extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/LoadCharacterPanel.java b/src/LoadCharacterPanel.java index 22ff42d..bdcf3bd 100644 --- a/src/LoadCharacterPanel.java +++ b/src/LoadCharacterPanel.java @@ -1,2 +1,64 @@ -public class LoadCharacterPanel { +import javax.swing.*; +import java.awt.*; +import java.util.*; + +public class LoadCharacterPanel extends JPanel implements AppTheme { + + private ArrayList savedCharacters; + + public LoadCharacterPanel(JPanel nav, ArrayList savedCharacters) { + + super(); + panelSetup(); + + this.savedCharacters = savedCharacters; + + createMasterPanel(); + + add(nav, BorderLayout.SOUTH); + + } + + private void panelSetup() { + + setBackground(lightBrown); + setLayout(new BorderLayout(0, 0)); + + } + + private void createMasterPanel() { + + JLabel title = new JLabel("Load a Character"); + title.setHorizontalAlignment(SwingConstants.CENTER); + title.setFont(headerFont); + title.setForeground(darkestBrown); + + JPanel panel = new JPanel(); + panel.setOpaque(false); + panel.setLayout(null); + //panel.add(buttonPanel()); + // TODO: Need to implement. + //panel.add(portraitPanel()); + + add(buttonPanel(), BorderLayout.NORTH); + + } + + private JPanel buttonPanel() { + + JPanel panel = new JPanel(new GridLayout(savedCharacters.size(), 1, 0, 0)); + panel.setOpaque(false); + + panel.setBackground(lightBrown); + + for(int i = 0; i < savedCharacters.size(); i++) { + + panel.add(savedCharacters.get(i)); + + } + + return panel; + + } + } diff --git a/src/PreviewCharacterSheet.java b/src/PreviewCharacterSheet.java deleted file mode 100644 index 3340459..0000000 --- a/src/PreviewCharacterSheet.java +++ /dev/null @@ -1,2 +0,0 @@ -public class PreviewCharacterSheet { -} diff --git a/src/Strength.java b/src/Strength.java index 5845f20..bdddabe 100644 --- a/src/Strength.java +++ b/src/Strength.java @@ -1,4 +1,6 @@ -public class Strength extends Stats { +import java.io.Serializable; + +public class Strength extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/Wisdom.java b/src/Wisdom.java index 73532f2..1c818fa 100644 --- a/src/Wisdom.java +++ b/src/Wisdom.java @@ -1,4 +1,6 @@ -public class Wisdom extends Stats { +import java.io.Serializable; + +public class Wisdom extends Stats implements Serializable { private int abilityScore; private int abilityScoreModifier; diff --git a/src/target/App.class b/src/target/App.class index b1059fe..6af5a20 100644 Binary files a/src/target/App.class and b/src/target/App.class differ diff --git a/src/target/BasicNavPanel.class b/src/target/BasicNavPanel.class index 585ce63..eb09d9f 100644 Binary files a/src/target/BasicNavPanel.class and b/src/target/BasicNavPanel.class differ diff --git a/src/target/CharacterSheet.class b/src/target/CharacterSheet.class index d0ca88e..c1dda94 100644 Binary files a/src/target/CharacterSheet.class and b/src/target/CharacterSheet.class differ diff --git a/src/target/CharacterStats.class b/src/target/CharacterStats.class index ef67a83..a91fca8 100644 Binary files a/src/target/CharacterStats.class and b/src/target/CharacterStats.class differ diff --git a/src/target/Charisma.class b/src/target/Charisma.class index ac85426..40ada29 100644 Binary files a/src/target/Charisma.class and b/src/target/Charisma.class differ diff --git a/src/target/Constitution.class b/src/target/Constitution.class index d460819..45bc14c 100644 Binary files a/src/target/Constitution.class and b/src/target/Constitution.class differ diff --git a/src/target/CustomTheme.class b/src/target/CustomTheme.class deleted file mode 100644 index 345bea4..0000000 Binary files a/src/target/CustomTheme.class and /dev/null differ diff --git a/src/target/Dexterity.class b/src/target/Dexterity.class index a6adc9b..06b702e 100644 Binary files a/src/target/Dexterity.class and b/src/target/Dexterity.class differ diff --git a/src/target/Elf.class b/src/target/Elf.class index db4ff4d..5df5c06 100644 Binary files a/src/target/Elf.class and b/src/target/Elf.class differ diff --git a/src/target/Fighter.class b/src/target/Fighter.class index 5e86599..68b77c3 100644 Binary files a/src/target/Fighter.class and b/src/target/Fighter.class differ diff --git a/src/target/FileManager.class b/src/target/FileManager.class index 279a18e..9135a6a 100644 Binary files a/src/target/FileManager.class and b/src/target/FileManager.class differ diff --git a/src/target/GUImanager.class b/src/target/GUImanager.class index c5ea92f..c4e6e48 100644 Binary files a/src/target/GUImanager.class and b/src/target/GUImanager.class differ diff --git a/src/target/ImageInfoPanel.class b/src/target/ImageInfoPanel.class index 6d1693a..af862c6 100644 Binary files a/src/target/ImageInfoPanel.class and b/src/target/ImageInfoPanel.class differ diff --git a/src/target/Intelligence.class b/src/target/Intelligence.class index fb6a781..79fcbba 100644 Binary files a/src/target/Intelligence.class and b/src/target/Intelligence.class differ diff --git a/src/target/LoadCharacterPanel.class b/src/target/LoadCharacterPanel.class index be1cabd..56b09bc 100644 Binary files a/src/target/LoadCharacterPanel.class and b/src/target/LoadCharacterPanel.class differ diff --git a/src/target/PreviewCharacterSheet.class b/src/target/PreviewCharacterSheet.class deleted file mode 100644 index e73776d..0000000 Binary files a/src/target/PreviewCharacterSheet.class and /dev/null differ diff --git a/src/target/SanSalvi.ttf b/src/target/SanSalvi.ttf deleted file mode 100644 index e0311ea..0000000 Binary files a/src/target/SanSalvi.ttf and /dev/null differ diff --git a/src/target/Strength.class b/src/target/Strength.class index e9e44bc..e84bd5e 100644 Binary files a/src/target/Strength.class and b/src/target/Strength.class differ diff --git a/src/target/Wisdom.class b/src/target/Wisdom.class index 92cb73d..2c74598 100644 Binary files a/src/target/Wisdom.class and b/src/target/Wisdom.class differ