diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..1384d4b
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1410_DND/bin/dnd/Character.class b/1410_DND/bin/dnd/Character.class
deleted file mode 100644
index 3d052cd..0000000
Binary files a/1410_DND/bin/dnd/Character.class and /dev/null differ
diff --git a/1410_DND/bin/dnd/Race.class b/1410_DND/bin/dnd/Race.class
deleted file mode 100644
index 75741cd..0000000
Binary files a/1410_DND/bin/dnd/Race.class and /dev/null differ
diff --git a/1410_DND/bin/dnd/dndTestClient.class b/1410_DND/bin/dnd/dndTestClient.class
deleted file mode 100644
index fc57f3f..0000000
Binary files a/1410_DND/bin/dnd/dndTestClient.class and /dev/null differ
diff --git a/1410_DND/src/dnd/DiceRoller/build.xml b/1410_DND/src/dnd/DiceRoller/build.xml
deleted file mode 100644
index 7c16bdf..0000000
--- a/1410_DND/src/dnd/DiceRoller/build.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Builds, tests, and runs the project DiceRoller.
-
-
-
diff --git a/1410_DND/src/dnd/DiceRoller/build/built-jar.properties b/1410_DND/src/dnd/DiceRoller/build/built-jar.properties
deleted file mode 100644
index 57eb5f2..0000000
--- a/1410_DND/src/dnd/DiceRoller/build/built-jar.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu, 06 Oct 2022 17:08:15 -0600
-
-
-C\:\\Users\\Christopher\\Documents\\NetBeansProjects\\DiceRoller=
diff --git a/1410_DND/src/dnd/DiceRoller/build/classes/diceroller/DiceRoller.class b/1410_DND/src/dnd/DiceRoller/build/classes/diceroller/DiceRoller.class
deleted file mode 100644
index 51975de..0000000
Binary files a/1410_DND/src/dnd/DiceRoller/build/classes/diceroller/DiceRoller.class and /dev/null differ
diff --git a/1410_DND/src/dnd/DiceRoller/dist/DiceRoller.jar b/1410_DND/src/dnd/DiceRoller/dist/DiceRoller.jar
deleted file mode 100644
index f482346..0000000
Binary files a/1410_DND/src/dnd/DiceRoller/dist/DiceRoller.jar and /dev/null differ
diff --git a/1410_DND/src/dnd/DiceRoller/dist/README.TXT b/1410_DND/src/dnd/DiceRoller/dist/README.TXT
deleted file mode 100644
index ff32cd4..0000000
--- a/1410_DND/src/dnd/DiceRoller/dist/README.TXT
+++ /dev/null
@@ -1,32 +0,0 @@
-========================
-BUILD OUTPUT DESCRIPTION
-========================
-
-When you build an Java application project that has a main class, the IDE
-automatically copies all of the JAR
-files on the projects classpath to your projects dist/lib folder. The IDE
-also adds each of the JAR files to the Class-Path element in the application
-JAR files manifest file (MANIFEST.MF).
-
-To run the project from the command line, go to the dist folder and
-type the following:
-
-java -jar "DiceRoller.jar"
-
-To distribute this project, zip up the dist folder (including the lib folder)
-and distribute the ZIP file.
-
-Notes:
-
-* If two JAR files on the project classpath have the same name, only the first
-JAR file is copied to the lib folder.
-* Only JAR files are copied to the lib folder.
-If the classpath contains other types of files or folders, these files (folders)
-are not copied.
-* If a library on the projects classpath also has a Class-Path element
-specified in the manifest,the content of the Class-Path element has to be on
-the projects runtime path.
-* To set a main class in a standard Java project, right-click the project node
-in the Projects window and choose Properties. Then click Run and enter the
-class name in the Main Class field. Alternatively, you can manually type the
-class name in the manifest Main-Class element.
diff --git a/1410_DND/src/dnd/DiceRoller/manifest.mf b/1410_DND/src/dnd/DiceRoller/manifest.mf
deleted file mode 100644
index 1574df4..0000000
--- a/1410_DND/src/dnd/DiceRoller/manifest.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-X-COMMENT: Main-Class will be added automatically by build
-
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/build-impl.xml b/1410_DND/src/dnd/DiceRoller/nbproject/build-impl.xml
deleted file mode 100644
index 700374c..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/build-impl.xml
+++ /dev/null
@@ -1,1771 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set src.dir
- Must set test.src.dir
- Must set build.dir
- Must set dist.dir
- Must set build.classes.dir
- Must set dist.javadoc.dir
- Must set build.test.classes.dir
- Must set build.test.results.dir
- Must set build.classes.excludes
- Must set dist.jar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- No tests executed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must set JVM to use for profiling in profiler.info.jvm
- Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
- java -jar "${dist.jar.resolved}"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set debug.class
-
-
-
-
- Must select one file in the IDE or set debug.class
-
-
-
-
- Must set fix.includes
-
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set profile.class
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
-
-
-
-
- This target only works when run from inside the NetBeans IDE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
-
- Must select some files in the IDE or set test.includes
-
-
-
-
- Must select one file in the IDE or set run.class
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set javac.includes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Some tests failed; see details above.
-
-
-
-
-
-
-
-
- Must select some files in the IDE or set test.includes
-
-
-
- Some tests failed; see details above.
-
-
-
- Must select some files in the IDE or set test.class
- Must select some method in the IDE or set test.method
-
-
-
- Some tests failed; see details above.
-
-
-
-
- Must select one file in the IDE or set test.class
-
-
-
- Must select one file in the IDE or set test.class
- Must select some method in the IDE or set test.method
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
- Must select one file in the IDE or set applet.url
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/genfiles.properties b/1410_DND/src/dnd/DiceRoller/nbproject/genfiles.properties
deleted file mode 100644
index eb6265a..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/genfiles.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-build.xml.data.CRC32=f2725b83
-build.xml.script.CRC32=6fed2c27
-build.xml.stylesheet.CRC32=f85dc8f2@1.101.0.48
-# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
-# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=f2725b83
-nbproject/build-impl.xml.script.CRC32=6f5873d9
-nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.101.0.48
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/private/private.properties b/1410_DND/src/dnd/DiceRoller/nbproject/private/private.properties
deleted file mode 100644
index 6a597a9..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/private/private.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-compile.on.save=true
-user.properties.file=C:\\Users\\Christopher\\AppData\\Roaming\\NetBeans\\12.6\\build.properties
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/private/private.xml b/1410_DND/src/dnd/DiceRoller/nbproject/private/private.xml
deleted file mode 100644
index dc00c2f..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/private/private.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- file:/C:/Users/Christopher/Documents/NetBeansProjects/DiceRoller/src/diceroller/DiceRoller.java
-
-
-
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/project.properties b/1410_DND/src/dnd/DiceRoller/nbproject/project.properties
deleted file mode 100644
index c8a9832..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/project.properties
+++ /dev/null
@@ -1,95 +0,0 @@
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processor.options=
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-build.generated.sources.dir=${build.dir}/generated-sources
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-# Uncomment to specify the preferred debugger connection transport:
-#debug.transport=dt_socket
-debug.classpath=\
- ${run.classpath}
-debug.modulepath=\
- ${run.modulepath}
-debug.test.classpath=\
- ${run.test.classpath}
-debug.test.modulepath=\
- ${run.test.modulepath}
-# Files in build.classes.dir which should be excluded from distribution jar
-dist.archive.excludes=
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/DiceRoller.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-dist.jlink.dir=${dist.dir}/jlink
-dist.jlink.output=${dist.jlink.dir}/DiceRoller
-excludes=
-includes=**
-jar.compress=false
-javac.classpath=
-# Space-separated list of extra javac options
-javac.compilerargs=
-javac.deprecation=false
-javac.external.vm=true
-javac.modulepath=
-javac.processormodulepath=
-javac.processorpath=\
- ${javac.classpath}
-javac.source=17
-javac.target=17
-javac.test.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-javac.test.modulepath=\
- ${javac.modulepath}
-javac.test.processorpath=\
- ${javac.test.classpath}
-javadoc.additionalparam=
-javadoc.author=false
-javadoc.encoding=${source.encoding}
-javadoc.html5=false
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=
-# The jlink additional root modules to resolve
-jlink.additionalmodules=
-# The jlink additional command line parameters
-jlink.additionalparam=
-jlink.launcher=true
-jlink.launcher.name=DiceRoller
-main.class=diceroller.DiceRoller
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=false
-platform.active=default_platform
-run.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=
-run.modulepath=\
- ${javac.modulepath}
-run.test.classpath=\
- ${javac.test.classpath}:\
- ${build.test.classes.dir}
-run.test.modulepath=\
- ${javac.test.modulepath}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
diff --git a/1410_DND/src/dnd/DiceRoller/nbproject/project.xml b/1410_DND/src/dnd/DiceRoller/nbproject/project.xml
deleted file mode 100644
index 0da229f..0000000
--- a/1410_DND/src/dnd/DiceRoller/nbproject/project.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- org.netbeans.modules.java.j2seproject
-
-
- DiceRoller
-
-
-
-
-
-
-
-
-
diff --git a/dndBuilder/src/AbilityScores/Charisma.java b/dndBuilder/src/Character/AbilityScores/Charisma.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Charisma.java
rename to dndBuilder/src/Character/AbilityScores/Charisma.java
index e9153d2..7cb3d39 100644
--- a/dndBuilder/src/AbilityScores/Charisma.java
+++ b/dndBuilder/src/Character/AbilityScores/Charisma.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Charisma extends Stats {
diff --git a/dndBuilder/src/AbilityScores/Constitution.java b/dndBuilder/src/Character/AbilityScores/Constitution.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Constitution.java
rename to dndBuilder/src/Character/AbilityScores/Constitution.java
index c29f993..726ce15 100644
--- a/dndBuilder/src/AbilityScores/Constitution.java
+++ b/dndBuilder/src/Character/AbilityScores/Constitution.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Constitution extends Stats {
diff --git a/dndBuilder/src/AbilityScores/Dexterity.java b/dndBuilder/src/Character/AbilityScores/Dexterity.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Dexterity.java
rename to dndBuilder/src/Character/AbilityScores/Dexterity.java
index d6919d4..4f325de 100644
--- a/dndBuilder/src/AbilityScores/Dexterity.java
+++ b/dndBuilder/src/Character/AbilityScores/Dexterity.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Dexterity extends Stats {
diff --git a/dndBuilder/src/AbilityScores/Intelligence.java b/dndBuilder/src/Character/AbilityScores/Intelligence.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Intelligence.java
rename to dndBuilder/src/Character/AbilityScores/Intelligence.java
index e4151cf..26034f8 100644
--- a/dndBuilder/src/AbilityScores/Intelligence.java
+++ b/dndBuilder/src/Character/AbilityScores/Intelligence.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Intelligence extends Stats{
diff --git a/dndBuilder/src/AbilityScores/Stats.java b/dndBuilder/src/Character/AbilityScores/Stats.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Stats.java
rename to dndBuilder/src/Character/AbilityScores/Stats.java
index 992d2d0..97752ea 100644
--- a/dndBuilder/src/AbilityScores/Stats.java
+++ b/dndBuilder/src/Character/AbilityScores/Stats.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public abstract class Stats {
diff --git a/dndBuilder/src/AbilityScores/Strength.java b/dndBuilder/src/Character/AbilityScores/Strength.java
similarity index 97%
rename from dndBuilder/src/AbilityScores/Strength.java
rename to dndBuilder/src/Character/AbilityScores/Strength.java
index db8a5fb..97de47a 100644
--- a/dndBuilder/src/AbilityScores/Strength.java
+++ b/dndBuilder/src/Character/AbilityScores/Strength.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Strength extends Stats {
diff --git a/dndBuilder/src/AbilityScores/Wisdom.java b/dndBuilder/src/Character/AbilityScores/Wisdom.java
similarity index 96%
rename from dndBuilder/src/AbilityScores/Wisdom.java
rename to dndBuilder/src/Character/AbilityScores/Wisdom.java
index c90a619..a5481a7 100644
--- a/dndBuilder/src/AbilityScores/Wisdom.java
+++ b/dndBuilder/src/Character/AbilityScores/Wisdom.java
@@ -1,4 +1,4 @@
-package AbilityScores;
+package Character.AbilityScores;
public class Wisdom extends Stats {
diff --git a/1410_DND/src/dnd/Background.java b/dndBuilder/src/Character/Background.java
similarity index 98%
rename from 1410_DND/src/dnd/Background.java
rename to dndBuilder/src/Character/Background.java
index 80c8c12..8abfe11 100644
--- a/1410_DND/src/dnd/Background.java
+++ b/dndBuilder/src/Character/Background.java
@@ -1,156 +1,156 @@
-package dnd;
-
-import java.util.Arrays;
-
-public class Background {
-
- private String name;
- private boolean[] proficientStatus;
- private String[] skills;
- private String feature;
- private String skillProficiencies;
- int backgroundIndex;
-
- /**
- * @param name
- * @param skillProficiences
- * @param feature
- */
- public Background(String name, boolean[] proficientStatus, String[] skills, String feature) {
- this.name = name;
- this.proficientStatus = proficientStatus;
- this.skills = skills;
- this.feature = feature;
- skillProficiencies = null;
- }
-
- public void setAcolyte(){
- name = "Acolyte";
- proficientStatus[5] = true;
- proficientStatus[14] = true;
- skillProficiencies = skills[5] + ", " + skills[14];
- feature = "Shelter of the Faithful"+ "\nAs an acolyte, you command the respect of those who share your faith, and you can perform the religious ceremonies of your deity. You and your adventuring companions can expect to receive free healing and care at a temple, shrine, or other established presence of your faith, though you must provide any material components needed for spells. Those who share your religion will support you (but only you) at a modest lifestyle."
- + "\nYou might also have ties to a specific temple dedicated to your chosen deity or pantheon, and you have a residence there. This could be the temple where you used to serve, if you remain on good terms with it, or a temple where you have found a new home. While near your temple, you can call upon the priests for assistance, provided the assistance you ask for is not hazardous and you remain in good standing with your temple.";
- }
-
- public void setCharlatan(){
- name = "Charlatan";
- proficientStatus[4] = true;
- proficientStatus[15] = true;
- skillProficiencies = skills[4] + ", " + skills[15];
- feature = "False Identity" + "\nYou have created a second identity that includes documentation, established acquaintances, and disguises that allow you to assume that persona. Additionally, you can forge documents including official papers and personal letters, as long as you have seen an example of the kind of document or the handwriting you are trying to copy.";
- }
-
-
- public void setCriminal(){
- name = "Criminal";
- proficientStatus[4] = true;
- proficientStatus[16] = true;
- skillProficiencies = skills[4] + ", " + skills[16];
- feature = "Feature: Criminal Contact" + "\nYou have a reliable and trustworthy contact who acts as your liaison to a network of other criminals. You know how to get messages to and from your contact, even over great distances; specifically, you know the local messengers, corrupt caravan masters, and seedy sailors who can deliver messages for you.";
- }
-
- public void setSpy(){
- name = "Spy";
- proficientStatus[4] = true;
- proficientStatus[16] = true;
- skillProficiencies = skills[4] + ", " + skills[16];
- feature = "Criminal Contact" + "\nYou have a reliable and trustworthy contact who acts as your liaison to a network of other criminals. You know how to get messages to and from your contact, even over great distances; specifically, you know the local messengers, corrupt caravan masters, and seedy sailors who can deliver messages for you.";
- }
-
- public void setEntertainer(){
- name = "Entertainer";
- proficientStatus[0] = true;
- proficientStatus[12] = true;
- skillProficiencies = skills[0] + ", " + skills[12];
- feature = "By Popular Demand" + "\nYou can always find a place to perform, usually in an inn or tavern but possibly with a circus, at a theater, or even in a noble's court. At such a place, you receive free lodging and food of a modest or comfortable standard (depending on the quality of the establishment), as long as you perform each night. In addition, your performance makes you something of a local figure. When strangers recognize you in a town where you have performed, they typically take a liking to you.";
- }
-
- public void setFolkHero(){
- name = "Folk Hero";
- proficientStatus[1] = true;
- proficientStatus[17] = true;
- skillProficiencies = skills[1] + ", " + skills[17];
- feature = "Rustic Hospitality" + "\nSince you come from the ranks of the common folk, you fit in among them with ease. You can find a place to hide, rest, or recuperate among other commoners, unless you have shown yourself to be a danger to them. They will shield you from the law or anyone else searching for you, though they will not risk their lives for you.";
- }
-
- public void setGladiator(){
- name = "Gladiator";
- proficientStatus[0] = true;
- proficientStatus[12] = true;
- skillProficiencies = skills[0] + ", " + skills[12];
- feature = "By Popular Demand" + "\nYou can always find a place to perform in any place that features combat for entertainment — perhaps a gladiatorial arena or secret pit fighting club. At such a place, you receive free lodging and food of a modest or comfortable standard (depending on the quality of the establishment), as long as you perform each night. In addition, your performance makes you something of a local figure. When strangers recognize you in a town where you have performed, they typically take a liking to you.";
- }
-
- public void setGuildArtisan(){
- name = "Guild Artisan";
- proficientStatus[6] = true;
- proficientStatus[13] = true;
- skillProficiencies = skills[6] + ", " + skills[13];
- feature = "Guild Membership" + "\nAs an established and respected member of a guild, you can rely on certain benefits that membership provides. Your fellow guild members will provide you with lodging and food if necessary, and pay for your funeral if needed. In some cities and towns, a guildhall offers a central place to meet other members of your profession, which can be a good place to meet potential patrons, allies, or hirelings."
- +"\nGuilds often wield tremendous political power. If you are accused of a crime, your guild will support you if a good case can be made for your innocence or the crime is justifiable. You can also gain access to powerful political figures through the guild, if you are a member in good standing. Such connections might require the donation of money or magic items to the guild’s coffers."
- +"\nYou must pay dues of 5 gp per month to the guild. If you miss payments, you must make up back dues to remain in the guild’s good graces.";
- }
-
- public void setGuildMerchant(){
- name = "Guild Merchant";
- proficientStatus[6] = true;
- proficientStatus[13] = true;
- skillProficiencies = skills[6] + ", " + skills[13];
- feature = "Guild Membership" + "\nAs an established and respected member of a guild, you can rely on certain benefits that membership provides. Your fellow guild members will provide you with lodging and food if necessary, and pay for your funeral if needed. In some cities and towns, a guildhall offers a central place to meet other members of your profession, which can be a good place to meet potential patrons, allies, or hirelings."
- +"\nGuilds often wield tremendous political power. If you are accused of a crime, your guild will support you if a good case can be made for your innocence or the crime is justifiable. You can also gain access to powerful political figures through the guild, if you are a member in good standing. Such connections might require the donation of money or magic items to the guild’s coffers."
- +"\nYou must pay dues of 5 gp per month to the guild. If you miss payments, you must make up back dues to remain in the guild’s good graces.";
- }
-
- public void setGuildHermit(){
- name = "Hermit";
- proficientStatus[9] = true;
- proficientStatus[14] = true;
- skillProficiencies = skills[9] + ", " + skills[14];
- feature = "Discovery" + "\nThe quiet seclusion of your extended hermitage gave you access to a unique and powerful discovery. The exact nature of this revelation depends on the nature of your seclusion. It might be a great truth about the cosmos, the deities, the powerful beings of the outer planes, or the forces of nature. It could be a site that no one else has ever seen. You might have uncovered a fact that has long been forgotten, or unearthed some relic of the past that could rewrite history. It might be information that would be damaging to the people who consigned you to exile, and hence the reason for your return to society."
- + "\nWork with your DM to determine the details of your discovery and its impact on the campaign.";
- }
-
- public void setKnight(){
- name = "Knight";
- proficientStatus[5] = true;
- proficientStatus[11] = true;
- skillProficiencies = skills[5] + ", " + skills[11];
- feature = "Retainers" + "\nYou have the service of three retainers loyal to your family. These retainers can be attendants or messengers, and one might be a majordomo. Your retainers are commoners who can perform mundane tasks for you, but they do not fight for you, will not follow you into obviously dangerous areas (such as dungeons), and will leave if they are frequently endangered or abused.";
- }
-
- /**
- * @return the name
- */
- public String getName() {
- return name;
- }
- /**
- * @return the skillProficiencies
- */
- public String getskillProficiences() {
- return skillProficiencies;
- }
- /**
- * @return the feature
- */
- public String getDescription() {
- return feature;
- }
-
- /**
- * @return the proficientStatus
- */
- public boolean[] getProficientStatus() {
- return proficientStatus;
- }
-
- @Override
- public String toString() {
- return "Background: " + name + "\nSkill Proficiencies: " + skillProficiencies + "\nFeature: "
- + feature;
- }
-
-
-
-}
+package Character;
+
+import java.util.Arrays;
+
+public class Background {
+
+ private String name;
+ private boolean[] proficientStatus;
+ private String[] skills;
+ private String feature;
+ private String skillProficiencies;
+ int backgroundIndex;
+
+ /**
+ * @param name
+ * @param skillProficiences
+ * @param feature
+ */
+ public Background(String name, boolean[] proficientStatus, String[] skills, String feature) {
+ this.name = name;
+ this.proficientStatus = proficientStatus;
+ this.skills = skills;
+ this.feature = feature;
+ skillProficiencies = null;
+ }
+
+ public void setAcolyte(){
+ name = "Acolyte";
+ proficientStatus[5] = true;
+ proficientStatus[14] = true;
+ skillProficiencies = skills[5] + ", " + skills[14];
+ feature = "Shelter of the Faithful"+ "\nAs an acolyte, you command the respect of those who share your faith, and you can perform the religious ceremonies of your deity. You and your adventuring companions can expect to receive free healing and care at a temple, shrine, or other established presence of your faith, though you must provide any material components needed for spells. Those who share your religion will support you (but only you) at a modest lifestyle."
+ + "\nYou might also have ties to a specific temple dedicated to your chosen deity or pantheon, and you have a residence there. This could be the temple where you used to serve, if you remain on good terms with it, or a temple where you have found a new home. While near your temple, you can call upon the priests for assistance, provided the assistance you ask for is not hazardous and you remain in good standing with your temple.";
+ }
+
+ public void setCharlatan(){
+ name = "Charlatan";
+ proficientStatus[4] = true;
+ proficientStatus[15] = true;
+ skillProficiencies = skills[4] + ", " + skills[15];
+ feature = "False Identity" + "\nYou have created a second identity that includes documentation, established acquaintances, and disguises that allow you to assume that persona. Additionally, you can forge documents including official papers and personal letters, as long as you have seen an example of the kind of document or the handwriting you are trying to copy.";
+ }
+
+
+ public void setCriminal(){
+ name = "Criminal";
+ proficientStatus[4] = true;
+ proficientStatus[16] = true;
+ skillProficiencies = skills[4] + ", " + skills[16];
+ feature = "Feature: Criminal Contact" + "\nYou have a reliable and trustworthy contact who acts as your liaison to a network of other criminals. You know how to get messages to and from your contact, even over great distances; specifically, you know the local messengers, corrupt caravan masters, and seedy sailors who can deliver messages for you.";
+ }
+
+ public void setSpy(){
+ name = "Spy";
+ proficientStatus[4] = true;
+ proficientStatus[16] = true;
+ skillProficiencies = skills[4] + ", " + skills[16];
+ feature = "Criminal Contact" + "\nYou have a reliable and trustworthy contact who acts as your liaison to a network of other criminals. You know how to get messages to and from your contact, even over great distances; specifically, you know the local messengers, corrupt caravan masters, and seedy sailors who can deliver messages for you.";
+ }
+
+ public void setEntertainer(){
+ name = "Entertainer";
+ proficientStatus[0] = true;
+ proficientStatus[12] = true;
+ skillProficiencies = skills[0] + ", " + skills[12];
+ feature = "By Popular Demand" + "\nYou can always find a place to perform, usually in an inn or tavern but possibly with a circus, at a theater, or even in a noble's court. At such a place, you receive free lodging and food of a modest or comfortable standard (depending on the quality of the establishment), as long as you perform each night. In addition, your performance makes you something of a local figure. When strangers recognize you in a town where you have performed, they typically take a liking to you.";
+ }
+
+ public void setFolkHero(){
+ name = "Folk Hero";
+ proficientStatus[1] = true;
+ proficientStatus[17] = true;
+ skillProficiencies = skills[1] + ", " + skills[17];
+ feature = "Rustic Hospitality" + "\nSince you come from the ranks of the common folk, you fit in among them with ease. You can find a place to hide, rest, or recuperate among other commoners, unless you have shown yourself to be a danger to them. They will shield you from the law or anyone else searching for you, though they will not risk their lives for you.";
+ }
+
+ public void setGladiator(){
+ name = "Gladiator";
+ proficientStatus[0] = true;
+ proficientStatus[12] = true;
+ skillProficiencies = skills[0] + ", " + skills[12];
+ feature = "By Popular Demand" + "\nYou can always find a place to perform in any place that features combat for entertainment — perhaps a gladiatorial arena or secret pit fighting club. At such a place, you receive free lodging and food of a modest or comfortable standard (depending on the quality of the establishment), as long as you perform each night. In addition, your performance makes you something of a local figure. When strangers recognize you in a town where you have performed, they typically take a liking to you.";
+ }
+
+ public void setGuildArtisan(){
+ name = "Guild Artisan";
+ proficientStatus[6] = true;
+ proficientStatus[13] = true;
+ skillProficiencies = skills[6] + ", " + skills[13];
+ feature = "Guild Membership" + "\nAs an established and respected member of a guild, you can rely on certain benefits that membership provides. Your fellow guild members will provide you with lodging and food if necessary, and pay for your funeral if needed. In some cities and towns, a guildhall offers a central place to meet other members of your profession, which can be a good place to meet potential patrons, allies, or hirelings."
+ +"\nGuilds often wield tremendous political power. If you are accused of a crime, your guild will support you if a good case can be made for your innocence or the crime is justifiable. You can also gain access to powerful political figures through the guild, if you are a member in good standing. Such connections might require the donation of money or magic items to the guild’s coffers."
+ +"\nYou must pay dues of 5 gp per month to the guild. If you miss payments, you must make up back dues to remain in the guild’s good graces.";
+ }
+
+ public void setGuildMerchant(){
+ name = "Guild Merchant";
+ proficientStatus[6] = true;
+ proficientStatus[13] = true;
+ skillProficiencies = skills[6] + ", " + skills[13];
+ feature = "Guild Membership" + "\nAs an established and respected member of a guild, you can rely on certain benefits that membership provides. Your fellow guild members will provide you with lodging and food if necessary, and pay for your funeral if needed. In some cities and towns, a guildhall offers a central place to meet other members of your profession, which can be a good place to meet potential patrons, allies, or hirelings."
+ +"\nGuilds often wield tremendous political power. If you are accused of a crime, your guild will support you if a good case can be made for your innocence or the crime is justifiable. You can also gain access to powerful political figures through the guild, if you are a member in good standing. Such connections might require the donation of money or magic items to the guild’s coffers."
+ +"\nYou must pay dues of 5 gp per month to the guild. If you miss payments, you must make up back dues to remain in the guild’s good graces.";
+ }
+
+ public void setGuildHermit(){
+ name = "Hermit";
+ proficientStatus[9] = true;
+ proficientStatus[14] = true;
+ skillProficiencies = skills[9] + ", " + skills[14];
+ feature = "Discovery" + "\nThe quiet seclusion of your extended hermitage gave you access to a unique and powerful discovery. The exact nature of this revelation depends on the nature of your seclusion. It might be a great truth about the cosmos, the deities, the powerful beings of the outer planes, or the forces of nature. It could be a site that no one else has ever seen. You might have uncovered a fact that has long been forgotten, or unearthed some relic of the past that could rewrite history. It might be information that would be damaging to the people who consigned you to exile, and hence the reason for your return to society."
+ + "\nWork with your DM to determine the details of your discovery and its impact on the campaign.";
+ }
+
+ public void setKnight(){
+ name = "Knight";
+ proficientStatus[5] = true;
+ proficientStatus[11] = true;
+ skillProficiencies = skills[5] + ", " + skills[11];
+ feature = "Retainers" + "\nYou have the service of three retainers loyal to your family. These retainers can be attendants or messengers, and one might be a majordomo. Your retainers are commoners who can perform mundane tasks for you, but they do not fight for you, will not follow you into obviously dangerous areas (such as dungeons), and will leave if they are frequently endangered or abused.";
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+ /**
+ * @return the skillProficiencies
+ */
+ public String getskillProficiences() {
+ return skillProficiencies;
+ }
+ /**
+ * @return the feature
+ */
+ public String getDescription() {
+ return feature;
+ }
+
+ /**
+ * @return the proficientStatus
+ */
+ public boolean[] getProficientStatus() {
+ return proficientStatus;
+ }
+
+ @Override
+ public String toString() {
+ return "Background: " + name + "\nSkill Proficiencies: " + skillProficiencies + "\nFeature: "
+ + feature;
+ }
+
+
+
+}
diff --git a/1410_DND/src/dnd/Character.java b/dndBuilder/src/Character/CharacterSheet.java
similarity index 88%
rename from 1410_DND/src/dnd/Character.java
rename to dndBuilder/src/Character/CharacterSheet.java
index e8051ce..53898b0 100644
--- a/1410_DND/src/dnd/Character.java
+++ b/dndBuilder/src/Character/CharacterSheet.java
@@ -1,107 +1,109 @@
-package dnd;
-
-public class Character {
- private String name;
- private int age;
- private int heightFeet;
- private int heightInch;
- private int weight;
- private String eye;
- private String hair;
- private Race race;
- private CharacterStats stats;
-
- /**
- * @param name
- * @param age
- * @param heightFeet
- * @param heightInch
- * @param weigth
- * @param eye
- * @param hair
- */
- public Character(String name, int age,
- int heightFeet, int heightInch,
- int weight, String eye, String hair,
- Race race, CharacterStats stats) {
- this.name = name;
- this.age = age;
- this.heightFeet = heightFeet;
- this.heightInch = heightInch;
- this.weight = weight;
- this.eye = eye;
- this.hair = hair;
- this.race = race;
- this.stats = stats;
- }
- /**
- * Default constructor
- */
- public Character() {
- 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;
- }
- /**
- * @return the hair
- */
- public String getHair() {
- return hair;
- }
-
- public CharacterStats getStats() {
-
- return stats;
-
- }
-
- @Override
- public String toString() {
- return "name: " + name + " | age: " + age + " | height: "
- + heightFeet + "\'" + heightInch + "\" | weight: "
- + weight + " | eye: " + eye + " | hair: " + hair
- + " | race: " + race.toString() + " | stats: " + stats.toString();
- }
-
-}
+package Character;
+
+import Character.Races.*;
+
+public class CharacterSheet {
+ private String name;
+ private int age;
+ private int heightFeet;
+ private int heightInch;
+ private int weight;
+ private String eye;
+ private String hair;
+ private Race race;
+ private CharacterStats stats;
+
+ /**
+ * @param name
+ * @param age
+ * @param heightFeet
+ * @param heightInch
+ * @param weight
+ * @param eye
+ * @param hair
+ */
+ public CharacterSheet(String name, int age,
+ int heightFeet, int heightInch,
+ int weight, String eye, String hair,
+ Race race, CharacterStats stats) {
+ this.name = name;
+ this.age = age;
+ this.heightFeet = heightFeet;
+ this.heightInch = heightInch;
+ this.weight = weight;
+ this.eye = eye;
+ this.hair = hair;
+ this.race = race;
+ 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;
+ }
+ /**
+ * @return the hair
+ */
+ public String getHair() {
+ return hair;
+ }
+
+ public CharacterStats getStats() {
+
+ return stats;
+
+ }
+
+ @Override
+ public String toString() {
+ return "name: " + name + " | age: " + age + " | height: "
+ + heightFeet + "\'" + heightInch + "\" | weight: "
+ + weight + " | eye: " + eye + " | hair: " + hair
+ + " | race: " + race.toString() + " | stats: " + stats.toString();
+ }
+
+}
diff --git a/1410_DND/src/dnd/CharacterStats.java b/dndBuilder/src/Character/CharacterStats.java
similarity index 98%
rename from 1410_DND/src/dnd/CharacterStats.java
rename to dndBuilder/src/Character/CharacterStats.java
index b91a0f0..d07b1c5 100644
--- a/1410_DND/src/dnd/CharacterStats.java
+++ b/dndBuilder/src/Character/CharacterStats.java
@@ -1,4 +1,4 @@
-package dnd;
+package Character;
public class CharacterStats {
private Stats[] stats;
diff --git a/dndBuilder/src/Classes/ClassTemplate.java b/dndBuilder/src/Character/Classes/ClassTemplate.java
similarity index 91%
rename from dndBuilder/src/Classes/ClassTemplate.java
rename to dndBuilder/src/Character/Classes/ClassTemplate.java
index 224a08b..93fdc05 100644
--- a/dndBuilder/src/Classes/ClassTemplate.java
+++ b/dndBuilder/src/Character/Classes/ClassTemplate.java
@@ -1,4 +1,6 @@
-package Classes;
+package Character.Classes;
+
+import Character.AbilityScores.*;
public interface ClassTemplate {
diff --git a/dndBuilder/src/Classes/Cleric.java b/dndBuilder/src/Character/Classes/Cleric.java
similarity index 97%
rename from dndBuilder/src/Classes/Cleric.java
rename to dndBuilder/src/Character/Classes/Cleric.java
index a97ec3e..3224556 100644
--- a/dndBuilder/src/Classes/Cleric.java
+++ b/dndBuilder/src/Character/Classes/Cleric.java
@@ -1,4 +1,6 @@
-package Classes;
+package Character.Classes;
+
+import Character.AbilityScores.*;
public class Cleric implements ClassTemplate {
diff --git a/dndBuilder/src/Classes/Fighter.java b/dndBuilder/src/Character/Classes/Fighter.java
similarity index 97%
rename from dndBuilder/src/Classes/Fighter.java
rename to dndBuilder/src/Character/Classes/Fighter.java
index 9b83018..e000746 100644
--- a/dndBuilder/src/Classes/Fighter.java
+++ b/dndBuilder/src/Character/Classes/Fighter.java
@@ -1,4 +1,6 @@
-package Classes;
+package Character.Classes;
+
+import Character.AbilityScores.*;
public class Fighter implements ClassTemplate {
diff --git a/dndBuilder/src/Classes/Wizard.java b/dndBuilder/src/Character/Classes/Wizard.java
similarity index 97%
rename from dndBuilder/src/Classes/Wizard.java
rename to dndBuilder/src/Character/Classes/Wizard.java
index 4a9baf3..7cbe648 100644
--- a/dndBuilder/src/Classes/Wizard.java
+++ b/dndBuilder/src/Character/Classes/Wizard.java
@@ -1,5 +1,6 @@
-package Classes;
+package Character.Classes;
+import Character.AbilityScores.*;
public class Wizard implements ClassTemplate {
private int HP;
diff --git a/dndBuilder/src/Races/Dragonborn.java b/dndBuilder/src/Character/Races/Dragonborn.java
similarity index 98%
rename from dndBuilder/src/Races/Dragonborn.java
rename to dndBuilder/src/Character/Races/Dragonborn.java
index c840918..ac41259 100644
--- a/dndBuilder/src/Races/Dragonborn.java
+++ b/dndBuilder/src/Character/Races/Dragonborn.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Dragonborn implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/Dwarf.java b/dndBuilder/src/Character/Races/Dwarf.java
similarity index 98%
rename from dndBuilder/src/Races/Dwarf.java
rename to dndBuilder/src/Character/Races/Dwarf.java
index fcebe19..63dc9b6 100644
--- a/dndBuilder/src/Races/Dwarf.java
+++ b/dndBuilder/src/Character/Races/Dwarf.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Dwarf implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/Elf.java b/dndBuilder/src/Character/Races/Elf.java
similarity index 98%
rename from dndBuilder/src/Races/Elf.java
rename to dndBuilder/src/Character/Races/Elf.java
index 3eeb958..03c2e39 100644
--- a/dndBuilder/src/Races/Elf.java
+++ b/dndBuilder/src/Character/Races/Elf.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Elf implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/Gnome.java b/dndBuilder/src/Character/Races/Gnome.java
similarity index 98%
rename from dndBuilder/src/Races/Gnome.java
rename to dndBuilder/src/Character/Races/Gnome.java
index 8ab661c..24dd94b 100644
--- a/dndBuilder/src/Races/Gnome.java
+++ b/dndBuilder/src/Character/Races/Gnome.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Gnome implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/HalfElf.java b/dndBuilder/src/Character/Races/HalfElf.java
similarity index 98%
rename from dndBuilder/src/Races/HalfElf.java
rename to dndBuilder/src/Character/Races/HalfElf.java
index c2acd07..b63ad0c 100644
--- a/dndBuilder/src/Races/HalfElf.java
+++ b/dndBuilder/src/Character/Races/HalfElf.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class HalfElf implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/HalfOrc.java b/dndBuilder/src/Character/Races/HalfOrc.java
similarity index 98%
rename from dndBuilder/src/Races/HalfOrc.java
rename to dndBuilder/src/Character/Races/HalfOrc.java
index f59104d..eb3ec69 100644
--- a/dndBuilder/src/Races/HalfOrc.java
+++ b/dndBuilder/src/Character/Races/HalfOrc.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class HalfOrc implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/Halfling.java b/dndBuilder/src/Character/Races/Halfling.java
similarity index 98%
rename from dndBuilder/src/Races/Halfling.java
rename to dndBuilder/src/Character/Races/Halfling.java
index d6fbbb8..5a5c1f0 100644
--- a/dndBuilder/src/Races/Halfling.java
+++ b/dndBuilder/src/Character/Races/Halfling.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Halfling implements Race{
private String[] traits;
diff --git a/dndBuilder/src/Races/Human.java b/dndBuilder/src/Character/Races/Human.java
similarity index 98%
rename from dndBuilder/src/Races/Human.java
rename to dndBuilder/src/Character/Races/Human.java
index d305121..8c9a8bc 100644
--- a/dndBuilder/src/Races/Human.java
+++ b/dndBuilder/src/Character/Races/Human.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Human implements Race {
diff --git a/dndBuilder/src/Races/Race.java b/dndBuilder/src/Character/Races/Race.java
similarity index 91%
rename from dndBuilder/src/Races/Race.java
rename to dndBuilder/src/Character/Races/Race.java
index d172841..9062b7e 100644
--- a/dndBuilder/src/Races/Race.java
+++ b/dndBuilder/src/Character/Races/Race.java
@@ -1,50 +1,48 @@
-package Races;
-
-import java.util.ArrayList;
-
-public interface Race {
-
- String getRace();
-
- int maxAge();
-
- int getSpeed();
-
- String[] getTraits();
-
- String[] getSkills();
-
- String[] getLanguages();
-
- String[] getProficiencies();
-
- int[] getASI();
-
-// private ArrayList traits;
-// private ArrayList skills;
-// private ArrayList laugnuage;
-// //private Subrace subrase;
-// private ArrayList proficiencies;
-// /**
-// * @param raceName
-// * @param ageRange
-// * @param speed
-// * @param traits
-// * @param skills
-// * @param laugnuage
-// * @param proficiencies
-// */
-// public Race(String raceName, String ageRange, int speed, ArrayList traits, ArrayList skills,
-// ArrayList laugnuage, ArrayList proficiencies) {
-// this.raceName = raceName;
-// this.ageRange = ageRange;
-// this.speed = speed;
-// this.traits = traits;
-// this.skills = skills;
-// this.laugnuage = laugnuage;
-// this.proficiencies = proficiencies;
-// }
-
-
-
-}
+package Character.Races;
+
+public interface Race {
+
+ String getRace();
+
+ int maxAge();
+
+ int getSpeed();
+
+ String[] getTraits();
+
+ String[] getSkills();
+
+ String[] getLanguages();
+
+ String[] getProficiencies();
+
+ int[] getASI();
+
+// private ArrayList traits;
+// private ArrayList skills;
+// private ArrayList laugnuage;
+// //private Subrace subrase;
+// private ArrayList proficiencies;
+// /**
+// * @param raceName
+// * @param ageRange
+// * @param speed
+// * @param traits
+// * @param skills
+// * @param laugnuage
+// * @param proficiencies
+// */
+// public Race(String raceName, String ageRange, int speed, ArrayList traits, ArrayList skills,
+// ArrayList laugnuage, ArrayList proficiencies) {
+// this.raceName = raceName;
+// this.ageRange = ageRange;
+// this.speed = speed;
+// this.traits = traits;
+// this.skills = skills;
+// this.laugnuage = laugnuage;
+// this.proficiencies = proficiencies;
+// }
+
+
+
+}
diff --git a/dndBuilder/src/Races/Tiefling.java b/dndBuilder/src/Character/Races/Tiefling.java
similarity index 98%
rename from dndBuilder/src/Races/Tiefling.java
rename to dndBuilder/src/Character/Races/Tiefling.java
index 7c01290..0e95fb2 100644
--- a/dndBuilder/src/Races/Tiefling.java
+++ b/dndBuilder/src/Character/Races/Tiefling.java
@@ -1,4 +1,4 @@
-package Races;
+package Character.Races;
public class Tiefling implements Race{
private String[] traits;
diff --git a/1410_DND/src/dnd/Skills.java b/dndBuilder/src/Character/Skills.java
similarity index 99%
rename from 1410_DND/src/dnd/Skills.java
rename to dndBuilder/src/Character/Skills.java
index adff257..3a172e3 100644
--- a/1410_DND/src/dnd/Skills.java
+++ b/dndBuilder/src/Character/Skills.java
@@ -1,4 +1,4 @@
-package dnd;
+package Character;
/**
*
diff --git a/1410_DND/src/dnd/DiceRoller/src/diceroller/DiceRoller.java b/dndBuilder/src/DieRoller/DiceRoller.java
similarity index 92%
rename from 1410_DND/src/dnd/DiceRoller/src/diceroller/DiceRoller.java
rename to dndBuilder/src/DieRoller/DiceRoller.java
index 44dc232..7c42435 100644
--- a/1410_DND/src/dnd/DiceRoller/src/diceroller/DiceRoller.java
+++ b/dndBuilder/src/DieRoller/DiceRoller.java
@@ -1,72 +1,72 @@
-/*
- * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
- * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
- */
-package diceroller;
-
-import java.util.Arrays;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.JTextField;
-
-public class DiceRoller
-{
-
- public static void main(String[] args)
- {
-
- JTextField diceNum = new JTextField();
- JTextField diceMod = new JTextField();
- String[] diceTypes = { "4", "6", "8", "10", "12", "20", "100"};
- JComboBox diceSize = new JComboBox(diceTypes);
- Object[] fields = {"Number of dice", diceNum, "Type of dice", diceSize, "Modifier", diceMod};
-
-
- JOptionPane.showConfirmDialog(null, fields, "Dice Roller",JOptionPane.OK_CANCEL_OPTION);
-
-
- int numberOfDice = Integer.parseInt(diceNum.getText());
- int sizeOfDice = Integer.parseInt(diceSize.getSelectedItem().toString());
- int modifier = Integer.parseInt(diceMod.getText());
- int[] diceRolls = rollDice(numberOfDice, sizeOfDice);
- int rollTotal = rollTotal(diceRolls, modifier);
-
- String rollString = numberOfDice + "d" + sizeOfDice + modifierString(modifier) + "\nRolled: " + Arrays.toString(diceRolls) + "\nRoll Total";
- if (modifier == 0)
- rollString += ": " + rollTotal;
- else
- rollString += " with " + modifierString(modifier) + " modifier: " + rollTotal;
- JOptionPane.showMessageDialog(null,rollString,"Dice Rolls", JOptionPane.INFORMATION_MESSAGE);
- }
-
- public static int[] rollDice(int numberOfDice, int sizeOfDice)
- {
- int[] diceRolls = new int[numberOfDice];
- for (int rolledDice = 0; rolledDice < diceRolls.length; rolledDice++)
- {
- diceRolls[rolledDice] = (int) (Math.random() * sizeOfDice) + 1;
- }
- return diceRolls;
- }
-
- public static int rollTotal(int[] diceRolls, int modifier)
- {
- int rollTotal = 0;
- for (int index = 0; index < diceRolls.length; index++)
- {
- rollTotal += diceRolls[index];
- }
- rollTotal += modifier;
- return rollTotal;
- }
-
- public static String modifierString(int modifier)
- {
- String modifierString = "";
- if (modifier < 0)
- modifierString += modifier;
- if (modifier > 0)
- modifierString+= "+" + modifier;
- return modifierString;
- }
-}
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Character.Classes/Main.java to edit this template
+ */
+package DieRoller;
+
+import java.util.Arrays;
+import javax.swing.JComboBox;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
+
+public class DiceRoller
+{
+
+ public static void main(String[] args)
+ {
+
+ JTextField diceNum = new JTextField();
+ JTextField diceMod = new JTextField();
+ String[] diceTypes = { "4", "6", "8", "10", "12", "20", "100"};
+ JComboBox diceSize = new JComboBox(diceTypes);
+ Object[] fields = {"Number of dice", diceNum, "Type of dice", diceSize, "Modifier", diceMod};
+
+
+ JOptionPane.showConfirmDialog(null, fields, "Dice Roller",JOptionPane.OK_CANCEL_OPTION);
+
+
+ int numberOfDice = Integer.parseInt(diceNum.getText());
+ int sizeOfDice = Integer.parseInt(diceSize.getSelectedItem().toString());
+ int modifier = Integer.parseInt(diceMod.getText());
+ int[] diceRolls = rollDice(numberOfDice, sizeOfDice);
+ int rollTotal = rollTotal(diceRolls, modifier);
+
+ String rollString = numberOfDice + "d" + sizeOfDice + modifierString(modifier) + "\nRolled: " + Arrays.toString(diceRolls) + "\nRoll Total";
+ if (modifier == 0)
+ rollString += ": " + rollTotal;
+ else
+ rollString += " with " + modifierString(modifier) + " modifier: " + rollTotal;
+ JOptionPane.showMessageDialog(null,rollString,"Dice Rolls", JOptionPane.INFORMATION_MESSAGE);
+ }
+
+ public static int[] rollDice(int numberOfDice, int sizeOfDice)
+ {
+ int[] diceRolls = new int[numberOfDice];
+ for (int rolledDice = 0; rolledDice < diceRolls.length; rolledDice++)
+ {
+ diceRolls[rolledDice] = (int) (Math.random() * sizeOfDice) + 1;
+ }
+ return diceRolls;
+ }
+
+ public static int rollTotal(int[] diceRolls, int modifier)
+ {
+ int rollTotal = 0;
+ for (int index = 0; index < diceRolls.length; index++)
+ {
+ rollTotal += diceRolls[index];
+ }
+ rollTotal += modifier;
+ return rollTotal;
+ }
+
+ public static String modifierString(int modifier)
+ {
+ String modifierString = "";
+ if (modifier < 0)
+ modifierString += modifier;
+ if (modifier > 0)
+ modifierString+= "+" + modifier;
+ return modifierString;
+ }
+}
diff --git a/dndBuilder/src/DndCharacterBuilder.java b/dndBuilder/src/DndCharacterBuilder.java
index bf9fd36..1d8fcd1 100644
--- a/dndBuilder/src/DndCharacterBuilder.java
+++ b/dndBuilder/src/DndCharacterBuilder.java
@@ -1,16 +1,22 @@
import GUI.*;
-import Races.*;
-import Classes.*;
-import AbilityScores.*;
+import FileManagement.*;
public class DndCharacterBuilder {
public static void main(String[] args) {
- PanelHolder guiPanels = new PanelHolder();
-
- UImanager gui = new UImanager(guiPanels);
+ PanelHolder guiPanels = new PanelHolder();
+ UImanager gui = new UImanager(guiPanels, isReturningUser());
}
+ private static boolean isReturningUser() {
+
+
+
+ return false;
+
+ }
+
+
}
\ No newline at end of file
diff --git a/dndBuilder/src/FileManagement/FileManager.java b/dndBuilder/src/FileManagement/FileManager.java
new file mode 100644
index 0000000..36a49a3
--- /dev/null
+++ b/dndBuilder/src/FileManagement/FileManager.java
@@ -0,0 +1,40 @@
+package FileManagement;
+
+import javax.swing.text.Document;
+import java.io.File;
+import Character.*;
+
+public class FileManager {
+
+ private File[] savedCharacters;
+
+ public FileManager() {
+
+
+
+ }
+
+ public CharacterSheet readCharacter() {
+
+
+
+ return new CharacterSheet();
+
+ }
+
+ // TODO: Need to implement. Should create an array of Files corresponding to user-created characters.
+ private void findSavedCharacters() {
+
+
+
+ }
+
+
+
+ public void saveCharacter (Character completedCharacter) {
+
+
+
+ }
+
+}
diff --git a/dndBuilder/src/GUI/PanelHolder.java b/dndBuilder/src/GUI/PanelHolder.java
index f36d6ec..bcadca7 100644
--- a/dndBuilder/src/GUI/PanelHolder.java
+++ b/dndBuilder/src/GUI/PanelHolder.java
@@ -1,6 +1,18 @@
package GUI;
import javax.swing.*;
+
+/*
+
+NOTES:
+
+ - Implement getters for lastPanel, currentPanel, and nextPanel.
+ - Implement panel creators.
+ - Implement button logic, which should set the lastPanel, currentPanel, and nextPanel indices.
+ - Extract individual classes for each JPanel field to inherit JPanel and contain additional values, such as race or class.
+
+ */
+
public class PanelHolder {
private JPanel mainMenuPanel;
@@ -12,6 +24,10 @@ public class PanelHolder {
private JPanel finalizePanel;
private JPanel loadMenuPanel;
+ private int lastPanel;
+ private int currentPanel;
+ private int nextPanel;
+
public PanelHolder() {
this.mainMenuPanel = createMainMenuPanel();
@@ -22,6 +38,9 @@ public class PanelHolder {
this.equipmentPanel = createEquipmentSelectPanel();
this.finalizePanel = createFinalizePanel();
this.loadMenuPanel = createLoadMenu();
+ lastPanel = 0;
+ currentPanel = 0;
+ nextPanel = 0;
}
@@ -98,6 +117,8 @@ public class PanelHolder {
*/
private JPanel createRaceSelectPanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -105,6 +126,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createClassSelectPanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -112,6 +135,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createAbilityScoreSelectPanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -119,6 +144,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createDescriptionPanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -126,6 +153,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createEquipmentSelectPanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -133,6 +162,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createFinalizePanel() {
+ currentPanel++;
+
return new JPanel();
}
@@ -140,6 +171,8 @@ public class PanelHolder {
// TODO: Need to implement.
private JPanel createLoadMenu() {
+ currentPanel = 7;
+
return new JPanel();
}
diff --git a/dndBuilder/src/GUI/UImanager.java b/dndBuilder/src/GUI/UImanager.java
index 40e27e7..2b84dbd 100644
--- a/dndBuilder/src/GUI/UImanager.java
+++ b/dndBuilder/src/GUI/UImanager.java
@@ -8,12 +8,12 @@ public class UImanager {
private final PanelHolder guiPanels;
private int currentPanel;
- public UImanager (PanelHolder guiPanels) {
+ public UImanager (PanelHolder guiPanels, boolean returningUser) {
this.gui = new JFrame("D&D Character Builder");
this.guiPanels = guiPanels;
- if (returningUser()) {
+ if (returningUser) {
this.currentPanel = 0;
@@ -32,13 +32,6 @@ public class UImanager {
- }
-
- // TODO: Need to implement.
- private boolean returningUser() {
-
- return false;
-
}
private JPanel getNextPanel() {
diff --git a/1410_DND/src/dnd/dndTestClient.java b/dndBuilder/src/Tests/dndTestClient.java
similarity index 78%
rename from 1410_DND/src/dnd/dndTestClient.java
rename to dndBuilder/src/Tests/dndTestClient.java
index 3989bd4..998f661 100644
--- a/1410_DND/src/dnd/dndTestClient.java
+++ b/dndBuilder/src/Tests/dndTestClient.java
@@ -1,24 +1,26 @@
-package dnd;
-
-public class dndTestClient {
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
-
- CharacterStats stats = new CharacterStats(10, 10, 10, 10, 10, 10);
-
- Dragonborn chosenRace = new Dragonborn();
-
- for(int i = 0; i < chosenRace.getASI().length; i++) {
-
- stats.increaseStat(chosenRace.getASI()[i]);
-
- }
-
- Character characterInfo = new Character("Generic", 50, 4, 6, 150, "brown", "black", chosenRace, stats);
-
- System.out.println(characterInfo.toString());
-
- }
-
-}
+package Tests;
+
+public class dndTestClient {
+
+
+ // Antiquated test, need to refactor for new project setup.
+/* public static void main(String[] args) {
+ // TODO Auto-generated method stub
+
+ CharacterStats stats = new CharacterStats(10, 10, 10, 10, 10, 10);
+
+ Dragonborn chosenRace = new Dragonborn();
+
+ for(int i = 0; i < chosenRace.getASI().length; i++) {
+
+ stats.increaseStat(chosenRace.getASI()[i]);
+
+ }
+
+ Character characterInfo = new Character("Generic", 50, 4, 6, 150, "brown", "black", chosenRace, stats);
+
+ System.out.println(characterInfo.toString());
+
+ }*/
+
+}