diff --git a/dndcharacterbuilder/.editorconfig b/dndcharacterbuilder/.editorconfig new file mode 100644 index 0000000..1f494b0 --- /dev/null +++ b/dndcharacterbuilder/.editorconfig @@ -0,0 +1,17 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = 80 + +[*.sh] +end_of_line = lf + +[*.java] +indent_size = 4 +max_line_length = 120 diff --git a/dndcharacterbuilder/pom.xml b/dndcharacterbuilder/pom.xml new file mode 100644 index 0000000..2a209fe --- /dev/null +++ b/dndcharacterbuilder/pom.xml @@ -0,0 +1,173 @@ + + 4.0.0 + com.builder + dndcharacterbuilder + 10 + + 1.8 + 1.8 + UTF-8 + 5.6.0 + 3.0.0-M3 + 3.1.2 + 8.45.1 + 3.0.0-M5 + 0.8.4 + 3.0.0 + + 0% + 0% + 20 + 5 + + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + test + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + ${maven-enforcer-plugin.version} + + + + enforce + + + + + 3.6.3 + + + true + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + ${maven-checkstyle-plugin.version} + + + com.puppycrawl.tools + checkstyle + ${checkstyle.version} + + + com.github.ngeor + checkstyle-rules + 4.9.3 + + + + com/github/ngeor/checkstyle.xml + true + ${skipTests} + + + + checkstyle + validate + + check + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + pre-unit-test + + prepare-agent + + + + post-unit-test + test + + report + + + + check-unit-test + test + + check + + + ${project.build.directory}/jacoco.exec + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + ${jacoco.unit-tests.limit.instruction-ratio} + + + BRANCH + COVEREDRATIO + ${jacoco.unit-tests.limit.branch-ratio} + + + + + CLASS + + + COMPLEXITY + TOTALCOUNT + ${jacoco.unit-tests.limit.class-complexity} + + + + + METHOD + + + COMPLEXITY + TOTALCOUNT + ${jacoco.unit-tests.limit.method-complexity} + + + + + + + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + + diff --git a/dndcharacterbuilder/src/main/java/com/builder/Character.java b/dndcharacterbuilder/src/main/java/com/builder/Character.java new file mode 100644 index 0000000..0aeb862 --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Character.java @@ -0,0 +1,7 @@ +package com.builder; + +public class Character { + + public CharacterStats stats = new CharacterStats(); + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/CharacterStats.java b/dndcharacterbuilder/src/main/java/com/builder/CharacterStats.java new file mode 100644 index 0000000..a00f17f --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/CharacterStats.java @@ -0,0 +1,27 @@ +package com.builder; + +public class CharacterStats { + + private Stats[] stats; + + public CharacterStats() { + + + + } + +// FIXME: Need to implement constructor, validates all proposed ability scores and creates new objects containing corresponding values. + public CharacterStats(Strength str, Dexterity dex, Constitution con, Intelligence intel, Wisdom wis, Charisma cha) { + + this.stats = new Stats[]{str, dex, con, intel, wis, cha}; + + } + +// FIXME: Need to implement ability score validation. + public boolean validateAbilityScore(int abilityScore) { + + return false; + + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Charisma.java b/dndcharacterbuilder/src/main/java/com/builder/Charisma.java new file mode 100644 index 0000000..6949379 --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Charisma.java @@ -0,0 +1,29 @@ +package com.builder; + +public class Charisma extends Stats { + + @Override + int getScore() { + // TODO Auto-generated method stub + return 0; + } + + @Override + int getModifier() { + // TODO Auto-generated method stub + return 0; + } + + @Override + String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + int getSavingThrow() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Constitution.java b/dndcharacterbuilder/src/main/java/com/builder/Constitution.java new file mode 100644 index 0000000..33e1691 --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Constitution.java @@ -0,0 +1,29 @@ +package com.builder; + +public class Constitution extends Stats { + + @Override + int getScore() { + // TODO Auto-generated method stub + return 0; + } + + @Override + int getModifier() { + // TODO Auto-generated method stub + return 0; + } + + @Override + String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + int getSavingThrow() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Dexterity.java b/dndcharacterbuilder/src/main/java/com/builder/Dexterity.java new file mode 100644 index 0000000..1cfcff5 --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Dexterity.java @@ -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(); + + } + +// FIXME: Need to implement. + public String getDescription() { + + return ""; + + } + + @Override + public String toString() { + + return "Ability Score: " + abilityScore + " | Modifier: " + abilityScoreModifier + " | Description: " + + getDescription(); + + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Intelligence.java b/dndcharacterbuilder/src/main/java/com/builder/Intelligence.java new file mode 100644 index 0000000..7ae9392 --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Intelligence.java @@ -0,0 +1,29 @@ +package com.builder; + +public class Intelligence extends Stats{ + + @Override + int getScore() { + // TODO Auto-generated method stub + return 0; + } + + @Override + int getModifier() { + // TODO Auto-generated method stub + return 0; + } + + @Override + String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + int getSavingThrow() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Skills.java b/dndcharacterbuilder/src/main/java/com/builder/Skills.java new file mode 100644 index 0000000..77c772c --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Skills.java @@ -0,0 +1,21 @@ +package com.builder; + +public class Skills extends Character { + + private String[] allSkillsText = {"Animal Handling", "Acrobatics", "Arcana", "Athletics", "Deception", "History", "Insight", "Intimidation", "Investigation", "Medicine", "Nature", "Perception", "Performance", "Persuasion", "Religion", "Sleight of Hand", "Stealth", "Survival"}; + + private int[] skills; + + public Skills(int[] skills) { + + this.skills = skills; + + } + + public int[] getAllSkills() { + + return skills; + + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Stats.java b/dndcharacterbuilder/src/main/java/com/builder/Stats.java new file mode 100644 index 0000000..38d9aca --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Stats.java @@ -0,0 +1,69 @@ +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: + case 21: + return 5; + case 22: + case 23: + return 6; + case 24: + case 25: + return 7; + case 26: + case 27: + return 8; + case 28: + case 29: + return 9; + case 30: + return 10; + default: + return -10; + } + + } + + abstract int getScore(); + + abstract int getModifier(); + + abstract int getSavingThrow(); + + abstract String getDescription(); + + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Strength.java b/dndcharacterbuilder/src/main/java/com/builder/Strength.java new file mode 100644 index 0000000..62a1ddd --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Strength.java @@ -0,0 +1,54 @@ +package com.builder; + +public class Strength extends Stats { + + private int abilityScore; + private int abilityScoreModifier; + +// FIXME: Need to implement standard constructor. + public Strength(int abilityScore) { + + this.abilityScore = abilityScore; + this.abilityScoreModifier = calcSavingThrow(abilityScore); + + } + + 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(); + + } + +} diff --git a/dndcharacterbuilder/src/main/java/com/builder/Wisdom.java b/dndcharacterbuilder/src/main/java/com/builder/Wisdom.java new file mode 100644 index 0000000..0b7f2cc --- /dev/null +++ b/dndcharacterbuilder/src/main/java/com/builder/Wisdom.java @@ -0,0 +1,29 @@ +package com.builder; + +public class Wisdom extends Stats { + + @Override + int getScore() { + // TODO Auto-generated method stub + return 0; + } + + @Override + int getModifier() { + // TODO Auto-generated method stub + return 0; + } + + @Override + String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + int getSavingThrow() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/dndcharacterbuilder/src/test/java/com/builder/AppTest.java b/dndcharacterbuilder/src/test/java/com/builder/AppTest.java new file mode 100644 index 0000000..d81e15c --- /dev/null +++ b/dndcharacterbuilder/src/test/java/com/builder/AppTest.java @@ -0,0 +1,18 @@ +package com.builder; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Unit test for simple App. + */ +class AppTest { + /** + * Rigorous Test. + */ + @Test + void testApp() { + assertEquals(1, 1); + } +} diff --git a/dndcharacterbuilder/target/classes/com/builder/Character.class b/dndcharacterbuilder/target/classes/com/builder/Character.class new file mode 100644 index 0000000..586b12c Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Character.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/CharacterStats.class b/dndcharacterbuilder/target/classes/com/builder/CharacterStats.class new file mode 100644 index 0000000..8cfd4f6 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/CharacterStats.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Charisma.class b/dndcharacterbuilder/target/classes/com/builder/Charisma.class new file mode 100644 index 0000000..82b605b Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Charisma.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Constitution.class b/dndcharacterbuilder/target/classes/com/builder/Constitution.class new file mode 100644 index 0000000..2f4d518 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Constitution.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Dexterity.class b/dndcharacterbuilder/target/classes/com/builder/Dexterity.class new file mode 100644 index 0000000..6297e31 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Dexterity.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Intelligence.class b/dndcharacterbuilder/target/classes/com/builder/Intelligence.class new file mode 100644 index 0000000..50adc48 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Intelligence.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Skills.class b/dndcharacterbuilder/target/classes/com/builder/Skills.class new file mode 100644 index 0000000..2f7d31f Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Skills.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Stats.class b/dndcharacterbuilder/target/classes/com/builder/Stats.class new file mode 100644 index 0000000..d8ca589 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Stats.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Strength.class b/dndcharacterbuilder/target/classes/com/builder/Strength.class new file mode 100644 index 0000000..dffb031 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Strength.class differ diff --git a/dndcharacterbuilder/target/classes/com/builder/Wisdom.class b/dndcharacterbuilder/target/classes/com/builder/Wisdom.class new file mode 100644 index 0000000..12ea5d1 Binary files /dev/null and b/dndcharacterbuilder/target/classes/com/builder/Wisdom.class differ diff --git a/dndcharacterbuilder/target/test-classes/com/builder/AppTest.class b/dndcharacterbuilder/target/test-classes/com/builder/AppTest.class new file mode 100644 index 0000000..66bce2e Binary files /dev/null and b/dndcharacterbuilder/target/test-classes/com/builder/AppTest.class differ