diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..cf29c1c
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index aedfe4c..674f423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,6 @@
-
+
+
+
\ No newline at end of file
diff --git a/dndBuilder/src/Character/CharacterStats.java b/dndBuilder/src/Character/AbilityScores/CharacterStats.java
similarity index 92%
rename from dndBuilder/src/Character/CharacterStats.java
rename to dndBuilder/src/Character/AbilityScores/CharacterStats.java
index d07b1c5..6ce1166 100644
--- a/dndBuilder/src/Character/CharacterStats.java
+++ b/dndBuilder/src/Character/AbilityScores/CharacterStats.java
@@ -1,4 +1,5 @@
-package Character;
+package Character.AbilityScores;
+
public class CharacterStats {
private Stats[] stats;
@@ -48,13 +49,13 @@ public class CharacterStats {
*
* Allows for access to a particular stat.
*
- * @param int stat
+ * @param index
* @return a specific stat
*
*/
- public Stats getStats(int stat) {
+ public Stats getStats(int index) {
- return stats[stat];
+ return stats[index];
}
diff --git a/dndBuilder/src/Character/AbilityScores/Charisma.java b/dndBuilder/src/Character/AbilityScores/Charisma.java
index 7cb3d39..c4f2ab8 100644
--- a/dndBuilder/src/Character/AbilityScores/Charisma.java
+++ b/dndBuilder/src/Character/AbilityScores/Charisma.java
@@ -46,7 +46,7 @@ public class Charisma extends Stats {
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/AbilityScores/Constitution.java b/dndBuilder/src/Character/AbilityScores/Constitution.java
index 726ce15..f1e1724 100644
--- a/dndBuilder/src/Character/AbilityScores/Constitution.java
+++ b/dndBuilder/src/Character/AbilityScores/Constitution.java
@@ -46,7 +46,7 @@ public class Constitution extends Stats {
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/AbilityScores/Dexterity.java b/dndBuilder/src/Character/AbilityScores/Dexterity.java
index 4f325de..c463ba8 100644
--- a/dndBuilder/src/Character/AbilityScores/Dexterity.java
+++ b/dndBuilder/src/Character/AbilityScores/Dexterity.java
@@ -46,7 +46,7 @@ public class Dexterity extends Stats {
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/AbilityScores/Intelligence.java b/dndBuilder/src/Character/AbilityScores/Intelligence.java
index 26034f8..172ac18 100644
--- a/dndBuilder/src/Character/AbilityScores/Intelligence.java
+++ b/dndBuilder/src/Character/AbilityScores/Intelligence.java
@@ -46,7 +46,7 @@ public class Intelligence extends Stats{
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/AbilityScores/Stats.java b/dndBuilder/src/Character/AbilityScores/Stats.java
index 97752ea..b4f21c7 100644
--- a/dndBuilder/src/Character/AbilityScores/Stats.java
+++ b/dndBuilder/src/Character/AbilityScores/Stats.java
@@ -37,13 +37,13 @@ public abstract class Stats {
case 20:
return 5;
default:
- return 0;
+ return -42;
}
}
- abstract void increaseScore();
+ public abstract void increaseScore();
abstract int getScore();
diff --git a/dndBuilder/src/Character/AbilityScores/Strength.java b/dndBuilder/src/Character/AbilityScores/Strength.java
index 97de47a..88dc250 100644
--- a/dndBuilder/src/Character/AbilityScores/Strength.java
+++ b/dndBuilder/src/Character/AbilityScores/Strength.java
@@ -58,7 +58,7 @@ public class Strength extends Stats {
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/AbilityScores/Wisdom.java b/dndBuilder/src/Character/AbilityScores/Wisdom.java
index a5481a7..2970826 100644
--- a/dndBuilder/src/Character/AbilityScores/Wisdom.java
+++ b/dndBuilder/src/Character/AbilityScores/Wisdom.java
@@ -46,7 +46,7 @@ public class Wisdom extends Stats {
}
@Override
- void increaseScore() {
+ public void increaseScore() {
abilityScore++;
diff --git a/dndBuilder/src/Character/Background.java b/dndBuilder/src/Character/Background.java
index 8abfe11..6de98c4 100644
--- a/dndBuilder/src/Character/Background.java
+++ b/dndBuilder/src/Character/Background.java
@@ -13,7 +13,6 @@ public class Background {
/**
* @param name
- * @param skillProficiences
* @param feature
*/
public Background(String name, boolean[] proficientStatus, String[] skills, String feature) {
diff --git a/dndBuilder/src/Character/CharacterSheet.java b/dndBuilder/src/Character/CharacterSheet.java
index 8ead40b..5bf2ea2 100644
--- a/dndBuilder/src/Character/CharacterSheet.java
+++ b/dndBuilder/src/Character/CharacterSheet.java
@@ -1,5 +1,6 @@
package Character;
+import Character.AbilityScores.CharacterStats;
import Character.Races.*;
import java.io.Serializable;
diff --git a/dndBuilder/src/Character/Skills.java b/dndBuilder/src/Character/Skills.java
index 3a172e3..2911cc4 100644
--- a/dndBuilder/src/Character/Skills.java
+++ b/dndBuilder/src/Character/Skills.java
@@ -1,5 +1,7 @@
package Character;
+import Character.AbilityScores.*;
+
/**
*
* Object stores information about a character's skills arrays. Firstly, the name of each skill, and secondly the value of each skill. When constructed, a private method is called
@@ -23,8 +25,8 @@ public class Skills {
*
* Default constructor for the Skills class. Should be constructed AFTER the user has generated their stats and chosen the skills they are proficient in.
*
- * @param int[] skills
- * @param Stats[] stats
+ * @param skills
+ * @param stats
*
*/
public Skills(int[] skills, Stats[] stats) {
diff --git a/dndBuilder/src/DndCharacterBuilder.java b/dndBuilder/src/DndCharacterBuilder.java
index 3ca0ea6..a08df00 100644
--- a/dndBuilder/src/DndCharacterBuilder.java
+++ b/dndBuilder/src/DndCharacterBuilder.java
@@ -5,10 +5,12 @@ public class DndCharacterBuilder {
public static void main(String[] args) {
- FileManager data = new FileManager();
+ //FileManager data = new FileManager();
PanelHolder guiPanels = new PanelHolder();
- UImanager gui = new UImanager(guiPanels, data.isReturninguser());
+ // UImanager gui = new UImanager(guiPanels, data.isReturninguser());
+ UImanager gui = new UImanager(guiPanels);
+ gui.setVisible(true);
}
diff --git a/dndBuilder/src/FileManagement/FileManager.java b/dndBuilder/src/FileManagement/FileManager.java
index f5ce845..a89f2f2 100644
--- a/dndBuilder/src/FileManagement/FileManager.java
+++ b/dndBuilder/src/FileManagement/FileManager.java
@@ -1,6 +1,7 @@
package FileManagement;
import java.io.*;
+import java.util.Arrays;
import Character.*;
@@ -10,12 +11,20 @@ public class FileManager {
public FileManager() {
+ System.out.println("FileManager object created.\n");
+
findSavedCharacters();
}
public boolean isReturninguser() {
+ if(savedCharacters == null) {
+
+ return false;
+
+ }
+
return savedCharacters.length > 0;
}
@@ -64,6 +73,8 @@ public class FileManager {
}
+ findSavedCharacters();
+
}
public void deleteCharacter(int index) {
@@ -82,12 +93,13 @@ public class FileManager {
savedCharacters = tmp;
+ findSavedCharacters();
+
}
- // TODO: Need to implement. Should create an array of Files corresponding to user-created characters.
private void findSavedCharacters() {
- savedCharacters = new File("/bin/").listFiles();
+ savedCharacters = new File("/dndBuilder").listFiles();
}
diff --git a/dndBuilder/src/GUI/PanelHolder.java b/dndBuilder/src/GUI/PanelHolder.java
index bcadca7..71b7684 100644
--- a/dndBuilder/src/GUI/PanelHolder.java
+++ b/dndBuilder/src/GUI/PanelHolder.java
@@ -1,6 +1,9 @@
package GUI;
+import GUI.Panels.ChooseRacePanel;
+
import javax.swing.*;
+import java.awt.*;
/*
@@ -15,40 +18,44 @@ NOTES:
public class PanelHolder {
+/*
private JPanel mainMenuPanel;
+*/
private JPanel racePanel;
- private JPanel classPanel;
+/* private JPanel classPanel;
private JPanel abilityScorePanel;
private JPanel descriptionPanel;
private JPanel equipmentPanel;
private JPanel finalizePanel;
- private JPanel loadMenuPanel;
+ private JPanel loadMenuPanel;*/
- private int lastPanel;
+// private int lastPanel;
private int currentPanel;
- private int nextPanel;
+// private int nextPanel;
public PanelHolder() {
+/*
this.mainMenuPanel = createMainMenuPanel();
+*/
this.racePanel = createRaceSelectPanel();
- this.classPanel = createClassSelectPanel();
+/* this.classPanel = createClassSelectPanel();
this.abilityScorePanel = createAbilityScoreSelectPanel();
this.descriptionPanel = createDescriptionPanel();
this.equipmentPanel = createEquipmentSelectPanel();
this.finalizePanel = createFinalizePanel();
- this.loadMenuPanel = createLoadMenu();
- lastPanel = 0;
+ this.loadMenuPanel = createLoadMenu();*/
+// lastPanel = 0;
currentPanel = 0;
- nextPanel = 0;
+// nextPanel = 0;
}
- public JPanel getMainMenuPanel() {
+/* public JPanel getMainMenuPanel() {
return mainMenuPanel;
- }
+ }*/
public JPanel getRacePanel() {
@@ -56,7 +63,7 @@ public class PanelHolder {
}
- public JPanel getClassPanel() {
+ /* public JPanel getClassPanel() {
return classPanel;
@@ -92,19 +99,19 @@ public class PanelHolder {
}
- /* TODO: Need to implement.
+ *//* TODO: Need to implement.
LEFT-SIDE: Two large buttons, split with a horizontal line. One is to create a new DnD character, the other is to create a
random character.
RIGHT-SIDE: One extra-large button to load an existing character.
- */
+ *//*
private JPanel createMainMenuPanel() {
return new JPanel();
- }
+ }*/
/* TODO: Need to implement.
@@ -117,14 +124,68 @@ public class PanelHolder {
*/
private JPanel createRaceSelectPanel() {
- currentPanel++;
+ System.out.println("Race Panel generated.");
+
+ JPanel display = new JPanel();
+ display.setLayout(new BorderLayout(0, 0));
+
+
+ JLabel title = new JLabel("Step 1: Choose Race");
+ title.setHorizontalAlignment(SwingConstants.CENTER);
+ display.add(title, BorderLayout.NORTH);
+
+ JPanel textPanel = new JPanel();
+ textPanel.setLayout(null);
+
+ JLabel characterName = new JLabel("Character Name: ");
+ characterName.setBounds(113, 31, 108, 16);
+ textPanel.add(characterName);
+
+ JTextField nameTextBox = new JTextField();
+ nameTextBox.setBounds(233, 26, 211, 26);
+ textPanel.add(nameTextBox);
+ nameTextBox.setColumns(10);
+
+ JLabel raceLbl = new JLabel("Choose Race: ");
+ raceLbl.setBounds(113, 70, 98, 16);
+ textPanel.add(raceLbl);
+
+ JComboBox raceComboBox = new JComboBox();
+ raceComboBox.setBounds(196, 54, 221, 50);
+ textPanel.add(raceComboBox);
+
+ JLabel genderLbl = new JLabel("Gender: ");
+ genderLbl.setBounds(113, 108, 61, 16);
+ textPanel.add(genderLbl);
+
+ JComboBox genderComboBox = new JComboBox();
+ genderComboBox.setBounds(162, 92, 211, 50);
+ textPanel.add(genderComboBox);
+
+ JLabel classLbl = new JLabel("Class: ");
+ classLbl.setBounds(113, 154, 61, 16);
+ textPanel.add(classLbl);
+
+ JComboBox classComboBox = new JComboBox();
+ classComboBox.setBounds(162, 138, 200, 50);
+ textPanel.add(classComboBox);
+
+ JLabel AlignmentLbl = new JLabel("Alignment: ");
+ AlignmentLbl.setBounds(113, 200, 80, 16);
+ textPanel.add(AlignmentLbl);
+
+ JComboBox comboBox = new JComboBox();
+ comboBox.setBounds(190, 184, 200, 50);
+ textPanel.add(comboBox);
+
+ display.add(textPanel, BorderLayout.CENTER);
return new JPanel();
}
// TODO: Need to implement.
- private JPanel createClassSelectPanel() {
+ /* private JPanel createClassSelectPanel() {
currentPanel++;
@@ -176,5 +237,5 @@ public class PanelHolder {
return new JPanel();
}
-
+*/
}
\ No newline at end of file
diff --git a/dndBuilder/src/GUI/Panels/ChooseRacePanel.java b/dndBuilder/src/GUI/Panels/ChooseRacePanel.java
new file mode 100644
index 0000000..be8a15f
--- /dev/null
+++ b/dndBuilder/src/GUI/Panels/ChooseRacePanel.java
@@ -0,0 +1,28 @@
+package GUI.Panels;
+
+import javax.swing.JPanel;
+import java.awt.BorderLayout;
+import javax.swing.JLabel;
+import javax.swing.SwingConstants;
+import javax.swing.JTextField;
+import javax.swing.JComboBox;
+import java.awt.GridLayout;
+
+public class ChooseRacePanel extends JPanel {
+
+ /**
+ * Create the panel.
+ */
+ public ChooseRacePanel() {
+
+ createPanel();
+
+ }
+
+ private void createPanel() {
+
+
+
+ }
+
+}
diff --git a/dndBuilder/src/GUI/Panels/GuiCharacterFrame.java b/dndBuilder/src/GUI/Panels/GuiCharacterFrame.java
new file mode 100644
index 0000000..a62ed17
--- /dev/null
+++ b/dndBuilder/src/GUI/Panels/GuiCharacterFrame.java
@@ -0,0 +1,49 @@
+package GUI.Panels;
+
+import java.awt.BorderLayout;
+import java.awt.EventQueue;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+import javax.swing.JButton;
+
+public class GuiCharacterFrame extends JFrame {
+
+ private JPanel contentPane;
+
+ /**
+ * Launch the application.
+ */
+/* public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ GuiCharacterFrame frame = new GuiCharacterFrame();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }*/
+
+ /**
+ * Create the frame.
+ */
+/* public GuiCharacterFrame() {
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setBounds(100, 100, 550, 300);
+ contentPane = new JPanel();
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+ contentPane.setLayout(new BorderLayout(0, 0));
+ setContentPane(contentPane);
+
+ ChooseRacePanel panel = new ChooseRacePanel();
+ contentPane.add(panel, BorderLayout.CENTER);
+
+ JButton submitBttn = new JButton("Next");
+ panel.add(submitBttn, BorderLayout.SOUTH);
+ }*/
+
+}
diff --git a/dndBuilder/src/GUI/Panels/dndCharacterSheet.java b/dndBuilder/src/GUI/Panels/dndCharacterSheet.java
new file mode 100644
index 0000000..1a1a388
--- /dev/null
+++ b/dndBuilder/src/GUI/Panels/dndCharacterSheet.java
@@ -0,0 +1,96 @@
+package GUI.Panels;
+
+import java.awt.BorderLayout;
+import java.awt.EventQueue;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+import java.awt.Color;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+import java.awt.Insets;
+import java.awt.FlowLayout;
+import javax.swing.BoxLayout;
+import javax.swing.ImageIcon;
+
+import java.awt.GridLayout;
+import java.awt.ScrollPane;
+import java.awt.Scrollbar;
+import javax.swing.JScrollPane;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.JScrollBar;
+
+public class dndCharacterSheet extends JFrame {
+
+ private JPanel contentPane;
+ private JTextField textField;
+ private JPanel panel;
+ private JTextField textField_1;
+ private JTextField textField_2;
+
+ /**
+ * Launch the application.
+ */
+/* public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ dndCharacterSheet frame = new dndCharacterSheet();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }*/
+
+ /**
+ * Create the frame.
+ */
+ public dndCharacterSheet() {
+
+ JLabel imageLabel = new JLabel(new ImageIcon(getClass().getResource("/dnd/img/sheet.jpg")));
+ JPanel newPanel = new JPanel();
+ newPanel.add(imageLabel);
+ JScrollPane scrollPane = new JScrollPane(newPanel);
+
+
+ this.getContentPane().add(scrollPane, BorderLayout.CENTER);
+
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setBounds(100, 100, 850, 1200);
+ setVisible(true);
+ pack();
+
+// contentPane = new JPanel();
+// contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+// setContentPane(contentPane);
+// contentPane.setLayout(new BorderLayout(0, 0));
+
+ /*ImagePanel imagePanel = new ImagePanel();
+ JScrollPane scrollPane = new JScrollPane();
+
+ JPanel panel1 = new JPanel();
+ panel1.setLayout(new BorderLayout(0, 0));
+ panel1.add(imagePanel, BorderLayout.CENTER);
+ scrollPane.add(panel1);
+ imagePanel.setLayout(null);
+
+
+ contentPane.add(scrollPane, BorderLayout.CENTER);*/
+
+// ImagePanel imagePanel = new ImagePanel();
+// contentPane.add(imagePanel, BorderLayout.CENTER);
+// imagePanel.setLayout(null);
+
+
+
+
+
+
+
+ }
+}
diff --git a/dndBuilder/src/GUI/Panels/img/sheet.jpg b/dndBuilder/src/GUI/Panels/img/sheet.jpg
new file mode 100644
index 0000000..9126be9
Binary files /dev/null and b/dndBuilder/src/GUI/Panels/img/sheet.jpg differ
diff --git a/dndBuilder/src/GUI/UImanager.java b/dndBuilder/src/GUI/UImanager.java
index 2b84dbd..a59659d 100644
--- a/dndBuilder/src/GUI/UImanager.java
+++ b/dndBuilder/src/GUI/UImanager.java
@@ -1,19 +1,20 @@
package GUI;
import javax.swing.*;
+import java.awt.*;
-public class UImanager {
+public class UImanager extends JFrame {
- private final JFrame gui;
private final PanelHolder guiPanels;
private int currentPanel;
- public UImanager (PanelHolder guiPanels, boolean returningUser) {
-
- this.gui = new JFrame("D&D Character Builder");
+ //public UImanager (PanelHolder guiPanels, boolean returningUser) {
+ public UImanager (PanelHolder guiPanels) {
+ super("D&D Character Builder");
+ frameSetup();
this.guiPanels = guiPanels;
- if (returningUser) {
+/* if (returningUser) {
this.currentPanel = 0;
@@ -21,22 +22,33 @@ public class UImanager {
this.currentPanel = 1;
- }
+ }*/
- frameSetup();
+ clearAndReset(getNextPanel());
}
// TODO: Need to implement.
private void frameSetup() {
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
+ setLayout(new BorderLayout());
+ setPreferredSize(new Dimension(600,600));
+ setSize(getPreferredSize());
+ try {
+ UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );
+ } catch (Exception e) {
+ System.out.println("Error with cross platform look/feel in frameSetup().");
+ }
}
private JPanel getNextPanel() {
- return switch (currentPanel) {
+ return guiPanels.getRacePanel();
+
+/* return switch (currentPanel) {
case 1 -> guiPanels.getRacePanel();
case 2 -> guiPanels.getClassPanel();
case 3 -> guiPanels.getAbilityScorePanel();
@@ -45,17 +57,17 @@ public class UImanager {
case 6 -> guiPanels.getLoadMenuPanel();
case 7 -> guiPanels.getFinalizePanel();
default -> guiPanels.getMainMenuPanel();
- };
+ };*/
}
private void clearAndReset(JPanel nextPanel) {
- gui.removeAll();
- gui.add(nextPanel);
+ removeAll();
+ add(nextPanel);
- gui.repaint();
- gui.revalidate();
+ repaint();
+ revalidate();
}