This commit is contained in:
Joshua-Ashton01
2022-10-18 12:14:12 -06:00
parent c6ed7d5bdb
commit 17ce70eb4a
51 changed files with 3 additions and 2012 deletions
+62
View File
@@ -0,0 +1,62 @@
package com.builder;
public class CharacterStats {
private Stats[] stats;
public CharacterStats() {
stats = new Stats[]{};
}
// TODO: Need to implement constructor, validates all proposed ability scores and creates new objects containing corresponding values.
public CharacterStats(int str, int dex, int con, int intel, int wis, int cha) {
this.stats = new Stats[]{
new Strength(str),
new Dexterity(dex),
new Constitution(con),
new Intelligence(intel),
new Wisdom(wis),
new Charisma(cha)
};
}
public CharacterStats(Strength str, Dexterity dex, Constitution con, Intelligence intel, Wisdom wis, Charisma cha) {
this.stats = new Stats[]{str, dex, con, intel, wis, cha};
}
// TODO: Need to implement ability score validation.
public boolean validateAbilityScore(int abilityScore) {
return false;
}
public Stats[] getStats() {
return stats;
}
/**
*
* Allows for access to a particular stat.
*
* @param int stat
* @return a specific stat
*
*/
public Stats getStats(int stat) {
return stats[stat];
}
}
+48
View File
@@ -0,0 +1,48 @@
package com.builder;
public class Charisma extends Stats {
private int abilityScore;
private int abilityScoreModifier;
public Charisma(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
// TODO: Need description.
public String getDescription() {
return "Confidence, eloquence, and leadership.";
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+37
View File
@@ -0,0 +1,37 @@
package com.builder;
public interface ClassTemplate {
String getDescription();
String[] getProgression();
String[] getClassFeatures();
String getHitDie();
int getHPatLv1();
int getHPpastLv1();
String[] getArmorProf();
String[] getWeaponProf();
String[] getToolProf();
String[] getSavingThrows();
// TODO: Need to refresh on how saving throws work and how the character's class may impact a saving throw.
String[] availableSkills();
String[] startingEquipChoices();
boolean advantageCheck(Stats abilityScore);
boolean disadvantageCheck(Stats abilityScore);
// TODO: Spells and shit.
}
+91
View File
@@ -0,0 +1,91 @@
package com.builder;
public class Cleric implements ClassTemplate {
private int HP;
private int level;
// TODO: This should be the type of die.
private int hitDie;
public Cleric(Stats[] stats, int level) {
}
// TODO: Need to figure out how to contain class progression information. Potentially a double String array, each row equals a level, each column a different thing. Should class features be a separate class, ie. BarbFeatures, BardFeatures, etc?
public String getDescription() {
// TODO Auto-generated method stub
return null;
}
public String[] getProgression() {
// TODO Auto-generated method stub
return null;
}
public String[] getClassFeatures() {
// TODO Auto-generated method stub
return null;
}
public String getHitDie() {
// TODO Auto-generated method stub
return null;
}
public int getHPatLv1() {
// TODO Auto-generated method stub
return 0;
}
public int getHPpastLv1() {
// TODO Auto-generated method stub
return 0;
}
public String[] getArmorProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getWeaponProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getToolProf() {
// TODO Auto-generated method stub
return null;
}
public String[] availableSkills() {
// TODO Auto-generated method stub
return null;
}
public String[] startingEquipChoices() {
// TODO Auto-generated method stub
return null;
}
public boolean advantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
public boolean disadvantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
@Override
public String[] getSavingThrows() {
// TODO Auto-generated method stub
return null;
}
}
+48
View File
@@ -0,0 +1,48 @@
package com.builder;
public class Constitution extends Stats {
private int abilityScore;
private int abilityScoreModifier;
public Constitution(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
// TODO: Need description.
public String getDescription() {
return "Health, stamina, vital force.";
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+48
View File
@@ -0,0 +1,48 @@
package com.builder;
public class Dexterity extends Stats {
private int abilityScore;
private int abilityScoreModifier;
public Dexterity(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
// TODO: Need description.
public String getDescription() {
return "";
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+73
View File
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="DiceRoller" default="default" basedir=".">
<description>Builds, tests, and runs the project DiceRoller.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar: JAR building
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="DiceRoller-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>
@@ -0,0 +1,4 @@
#Thu, 06 Oct 2022 17:08:15 -0600
C\:\\Users\\Christopher\\Documents\\NetBeansProjects\\DiceRoller=
Binary file not shown.
+32
View File
@@ -0,0 +1,32 @@
========================
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.
+3
View File
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
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
@@ -0,0 +1,2 @@
compile.on.save=true
user.properties.file=C:\\Users\\Christopher\\AppData\\Roaming\\NetBeans\\12.6\\build.properties
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/Users/Christopher/Documents/NetBeansProjects/DiceRoller/src/diceroller/DiceRoller.java</file>
</group>
</open-files>
</project-private>
@@ -0,0 +1,95 @@
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
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>DiceRoller</name>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
</configuration>
</project>
@@ -0,0 +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;
}
}
+91
View File
@@ -0,0 +1,91 @@
package com.builder;
public class Fighter implements ClassTemplate {
private int HP;
private int level;
// TODO: This should be the type of die.
private int hitDie;
public Fighter(Stats[] stats, int level) {
}
// TODO: Need to figure out how to contain class progression information. Potentially a double String array, each row equals a level, each column a different thing. Should class features be a separate class, ie. BarbFeatures, BardFeatures, etc?
public String getDescription() {
// TODO Auto-generated method stub
return null;
}
public String[] getProgression() {
// TODO Auto-generated method stub
return null;
}
public String[] getClassFeatures() {
// TODO Auto-generated method stub
return null;
}
public String getHitDie() {
// TODO Auto-generated method stub
return null;
}
public int getHPatLv1() {
// TODO Auto-generated method stub
return 0;
}
public int getHPpastLv1() {
// TODO Auto-generated method stub
return 0;
}
public String[] getArmorProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getWeaponProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getToolProf() {
// TODO Auto-generated method stub
return null;
}
public String[] availableSkills() {
// TODO Auto-generated method stub
return null;
}
public String[] startingEquipChoices() {
// TODO Auto-generated method stub
return null;
}
public boolean advantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
public boolean disadvantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
@Override
public String[] getSavingThrows() {
// TODO Auto-generated method stub
return null;
}
}
+48
View File
@@ -0,0 +1,48 @@
package com.builder;
public class Intelligence extends Stats{
private int abilityScore;
private int abilityScoreModifier;
public Intelligence(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
// TODO: Need description.
public String getDescription() {
return "";
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+84
View File
@@ -0,0 +1,84 @@
package com.builder;
/**
*
* 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
* which adds any proficiency bonus to each skill and then adds the ability score modifier to each skill.
*
*/
public class Skills {
// TODO: Need to verify skills are in correct order.
private String[] allSkillsText = {"Acrobatics", "Animal Handling", "Arcana", "Athletics", "Deception", "History", "Insight", "Intimidation", "Investigation", "Medicine", "Nature", "Perception", "Performance", "Persuasion", "Religion", "Sleight of Hand", "Stealth", "Survival"};
// TODO: Prof bonus comes from the class, changes upon certain level thresholds.
private final int profBonus = 5;
private Stats[] stats;
private int[] 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
*
*/
public Skills(int[] skills, Stats[] stats) {
this.skills = skills;
this.stats = stats;
setSkills();
}
/**
*
* Adds proficiency bonus to each element of the skills array, and then adds the corresponding AS modifier to each skill.
*
*/
private void setSkills() {
// TODO: Need to verify these are the correct ability scores for each skill.
int[] skillsAbilities = { 1, 4, 3, 0, 5, 3, 4, 5, 3, 4, 3, 4, 5, 5, 3, 1, 4 };
for(int i = 0; i < allSkillsText.length; i++) {
if(skills[i] == 1) {
skills[i] = profBonus;
}
skills[i] += stats[skillsAbilities[i]].getModifier();
}
}
/**
*
* Returns the value of each skill's score.
*
* @return int[] skills
*
*/
public int[] getSkills() {
return skills;
}
// TODO: Need to implement overloaded method to return one specific skill.
public int getSkill(String skill) {
return 0;
}
}
+55
View File
@@ -0,0 +1,55 @@
package com.builder;
public abstract class Stats {
public int calcSavingThrow(int abilityScore) {
switch (abilityScore) {
case 1:
return -5;
case 2:
case 3:
return -4;
case 4:
case 5:
return -3;
case 6:
case 7:
return -2;
case 8:
case 9:
return -1;
case 10:
case 11:
return 0;
case 12:
case 13:
return 1;
case 14:
case 15:
return 2;
case 16:
case 17:
return 3;
case 18:
case 19:
return 4;
case 20:
return 5;
default:
return 0;
}
}
abstract int getScore();
abstract int getModifier();
abstract int getSavingThrow();
abstract String getDescription();
}
+60
View File
@@ -0,0 +1,60 @@
package com.builder;
public class Strength extends Stats {
private int abilityScore;
private int abilityScoreModifier;
public Strength(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public Strength(Strength str) {
this.abilityScore = str.getScore();
this.abilityScoreModifier = str.getModifier();
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
public String getDescription() {
return "Natural athleticism and bodily power.";
}
public int getMaxCarryWeight() {
return abilityScore * 15;
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+48
View File
@@ -0,0 +1,48 @@
package com.builder;
public class Wisdom extends Stats {
private int abilityScore;
private int abilityScoreModifier;
public Wisdom(int abilityScore) {
this.abilityScore = abilityScore;
this.abilityScoreModifier = calcSavingThrow(abilityScore);
}
public int getScore() {
return abilityScore;
}
public int getModifier() {
return abilityScoreModifier;
}
public int getSavingThrow() {
return getModifier();
}
// TODO: Need description.
public String getDescription() {
return "";
}
@Override
public String toString() {
return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: "
+ getDescription();
}
}
+91
View File
@@ -0,0 +1,91 @@
package com.builder;
public class Wizard implements ClassTemplate {
private int HP;
private int level;
// TODO: This should be the type of die.
private int hitDie;
public Wizard(Stats[] stats, int level) {
}
// TODO: Need to figure out how to contain class progression information. Potentially a double String array, each row equals a level, each column a different thing. Should class features be a separate class, ie. BarbFeatures, BardFeatures, etc?
public String getDescription() {
// TODO Auto-generated method stub
return null;
}
public String[] getProgression() {
// TODO Auto-generated method stub
return null;
}
public String[] getClassFeatures() {
// TODO Auto-generated method stub
return null;
}
public String getHitDie() {
// TODO Auto-generated method stub
return null;
}
public int getHPatLv1() {
// TODO Auto-generated method stub
return 0;
}
public int getHPpastLv1() {
// TODO Auto-generated method stub
return 0;
}
public String[] getArmorProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getWeaponProf() {
// TODO Auto-generated method stub
return null;
}
public String[] getToolProf() {
// TODO Auto-generated method stub
return null;
}
public String[] availableSkills() {
// TODO Auto-generated method stub
return null;
}
public String[] startingEquipChoices() {
// TODO Auto-generated method stub
return null;
}
public boolean advantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
public boolean disadvantageCheck(Stats abilityScore) {
// TODO Auto-generated method stub
return false;
}
@Override
public String[] getSavingThrows() {
// TODO Auto-generated method stub
return null;
}
}