From 38207c163d5cdbac79a5956f89f74ca61323d31d Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 10:51:27 -0400 Subject: [PATCH 1/8] Add Level Changes for all classes. --- .../kessel_run/class_definitions/Class.java | 4 ++++ .../class_definitions/LevelChanges.java | 14 ++++++++++++++ .../BerserkerLevelChanges.java | 15 +++++++++++++++ .../ConsularLevelChanges.java | 16 ++++++++++++++++ .../EngineerLevelChanges.java | 17 +++++++++++++++++ .../FighterLevelChanges.java | 16 ++++++++++++++++ .../GuardianLevelChanges.java | 18 ++++++++++++++++++ .../class_level_changes/MonkLevelChanges.java | 16 ++++++++++++++++ .../OperativeLevelChanges.java | 14 ++++++++++++++ .../ScholarLevelChanges.java | 16 ++++++++++++++++ .../class_level_changes/ScoutLevelChanges.java | 18 ++++++++++++++++++ .../SentinelLevelChanges.java | 18 ++++++++++++++++++ 12 files changed, 182 insertions(+) create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java new file mode 100644 index 0000000..44a19e1 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java @@ -0,0 +1,4 @@ +package org.misoenergy.hackday.kessel_run.class_definitions; + +public class Class { +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java new file mode 100644 index 0000000..3d0c6b6 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java @@ -0,0 +1,14 @@ +package org.misoenergy.hackday.kessel_run.class_definitions; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class LevelChanges { + private String level; + private String proficiencyBonus; + private String features; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java new file mode 100644 index 0000000..20b14d7 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java @@ -0,0 +1,15 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class BerserkerLevelChanges extends LevelChanges { + private String rages; + private String rageDamage; + private String berserkerInstincts; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java new file mode 100644 index 0000000..7f91256 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java @@ -0,0 +1,16 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class ConsularLevelChanges extends LevelChanges { + private String forcePowersKnown; + private String forcePoints; + private String maxPowerLevel; + private String forceEmpoweredCastingOptions; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java new file mode 100644 index 0000000..a8a2b25 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java @@ -0,0 +1,17 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class EngineerLevelChanges extends LevelChanges { + private String techPowersKnown; + private String techPoints; + private String maxPowerLevel; + private String potentAptitude; + private String modificationSlots; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java new file mode 100644 index 0000000..8b821fe --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java @@ -0,0 +1,16 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class FighterLevelChanges extends LevelChanges { + private String maneuversKnown; + private String superiorityDiceQuantity; + private String superiorityDiceSize; + private String strategiesKnown; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java new file mode 100644 index 0000000..89bd4aa --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java @@ -0,0 +1,18 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class GuardianLevelChanges extends LevelChanges { + private String forcePowersKnown; + private String forcePoints; + private String maxPowerLevel; + private String focusedStrikes; + private String aurasKnown; + private String auraRadius; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java new file mode 100644 index 0000000..de90557 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java @@ -0,0 +1,16 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class MonkLevelChanges extends LevelChanges { + private String martialArts; + private String focusPoints; + private String monasticVows; + private String unarmoredMovement; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java new file mode 100644 index 0000000..d4b48ab --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java @@ -0,0 +1,14 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class OperativeLevelChanges extends LevelChanges { + private String sneakAttack; + private String operativeExploits; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java new file mode 100644 index 0000000..6700765 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java @@ -0,0 +1,16 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class ScholarLevelChanges extends LevelChanges { + private String maneuversKnown; + private String superiorityDiceQuantity; + private String superiorityDiceSize; + private String discoveries; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java new file mode 100644 index 0000000..48aed36 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java @@ -0,0 +1,18 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class ScoutLevelChanges extends LevelChanges { + private String rangersQuarry; + private String techPowersKnown; + private String techPoints; + private String maxPowerLevel; + private String routinesKnown; + private String routineRadius; +} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java new file mode 100644 index 0000000..42c695e --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java @@ -0,0 +1,18 @@ +package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; + +@Getter +@Setter +@NoArgsConstructor +public class SentinelLevelChanges extends LevelChanges { + private String forcePowersKnown; + private String forcePoints; + private String maxPowerLevel; + private String kineticCombat; + private String idealsKnown; + private String manifests; +} From 0c3f13c21c89b00f1764289e3ebd804c1aea1a33 Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 11:53:53 -0400 Subject: [PATCH 2/8] Edit build process for miso repos. --- build.gradle.kts | 3 ++- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a3e077a..49641a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,8 @@ configurations { } repositories { - mavenCentral() +// Will need to change this to non miso nexus once outside hackday + maven("https://nexus.misoenergy.org/repository/public/") } dependencies { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41..6ab969e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://nexus.misoenergy.org/repository/gradle-distributions/gradle-8.10-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle.kts b/settings.gradle.kts index 94b3ce2..3269c94 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,6 @@ rootProject.name = "kessel-run" +pluginManagement { + repositories { + maven("https://nexus.misoenergy.org/repository/public/") + } +} \ No newline at end of file From 31096ac1381e9e2f052025b60891775819fcc583 Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 12:07:20 -0400 Subject: [PATCH 3/8] Filled out Class class. --- .../kessel_run/class_definitions/Class.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java index 44a19e1..4e6f02b 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java @@ -1,4 +1,51 @@ package org.misoenergy.hackday.kessel_run.class_definitions; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +@Getter +@Setter +@NoArgsConstructor public class Class { + private String name; + private String summary; + private String flavorText; + private String creatingText; + private String quickBuildText; + private Map levelChanges; // ignoring levelChangesJson + private int hitDiceDieType; // I don't think we need the enum one as well + private String hitPointsAtFirstLevel; + private String hitPointsAtHigherLevels; + private int hitPointsAtFirstLevelNumber; + private int hitPointsAtHigherLevelsNumber; + private List armorProficiencies; // ignoring armorProficienciesJson + private List weaponProficiencies; // ignoring weaponProficienciesJson + private List toolProficiencies; // ignoring toolProficienciesJson + private List toolProficienciesList; // ignoring toolProficienciesListJson + private List savingThrows; // ignoring savingThrowsJson + private String skillChoices; + private int numSkillChoices; + private List skillChoicesList; // ignoring skillChoicesListJson + private List equipmentLines; // ignoring equipmentLinesJson + private String startingWealthVariant; + private String classFeatureText; + private String classFeatureText2; + private String archetypeFlavorText; + private String archetypeFlavorName; + private String archetypes; // TODO unsure if this is a string or a separate type + private List imageUrls; // ignoring imageUrlsJson + private long casterRatio; + private String casterType; // ignoring casterTypeEnum + private List multiClassProficiencies; // ignoring multiClassProficienciesJson + private String features; // TODO unsure if this is a string or a separate type + private String featureRowKeys; // ignoring featureRowKeysJson + private String contentType; // ignoring contentTypeEnum + private String contentSource; // ignoring contentSourceEnum + private String partitionKey; + private String rowKey; + // ignoring timestamp and eTag } From 6137920633a7b63310f0c71d05353f65ffb7e18f Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 13:14:49 -0400 Subject: [PATCH 4/8] Renamed Class to CharacterClass. --- .../class_definitions/{Class.java => CharacterClass.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/{Class.java => CharacterClass.java} (98%) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java similarity index 98% rename from src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java rename to src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java index 4e6f02b..754352c 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/Class.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java @@ -10,7 +10,7 @@ import java.util.Map; @Getter @Setter @NoArgsConstructor -public class Class { +public class CharacterClass { private String name; private String summary; private String flavorText; From 42645c79250c1732c984f0e7482bf0d42612e37e Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 15:16:39 -0400 Subject: [PATCH 5/8] Remove the child level changes classes. Add JsonProperty decorators to all variables in LevelChanges. --- .../class_definitions/LevelChanges.java | 107 +++++++++++++++++- .../BerserkerLevelChanges.java | 15 --- .../ConsularLevelChanges.java | 16 --- .../EngineerLevelChanges.java | 17 --- .../FighterLevelChanges.java | 16 --- .../GuardianLevelChanges.java | 18 --- .../class_level_changes/MonkLevelChanges.java | 16 --- .../OperativeLevelChanges.java | 14 --- .../ScholarLevelChanges.java | 16 --- .../ScoutLevelChanges.java | 18 --- .../SentinelLevelChanges.java | 18 --- 11 files changed, 105 insertions(+), 166 deletions(-) delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java delete mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java index 3d0c6b6..c887a9f 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java @@ -1,5 +1,8 @@ package org.misoenergy.hackday.kessel_run.class_definitions; +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -7,8 +10,108 @@ import lombok.Setter; @Getter @Setter @NoArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) public class LevelChanges { - private String level; - private String proficiencyBonus; + + @JsonProperty("Aura Radius") + private String auraRadius; + + @JsonProperty("Auras Known") + private String aurasKnown; + + @JsonProperty("Berserker Instincts") + private String berserkerInstincts; + + @JsonProperty("Discoveries") + private String discoveries; + + @JsonProperty("Features") private String features; + + @JsonProperty("Focus Points") + private String focusPoints; + + @JsonProperty("Focused Strikes") + private String focusedStrikes; + + @JsonProperty("Force-Empowered Casting Options") + private String forceEmpoweredCastingOptions; + + @JsonProperty("Force Points") + private String forcePoints; + + @JsonProperty("Force Powers Known") + private String forcePowersKnown; + + @JsonProperty("Ideal Manifests") + private String idealManifests; + + @JsonProperty("Ideals Known") + private String idealsKnown; + + @JsonProperty("Kinetic Combat") + private String kineticCombat; + + @JsonProperty("Level") + private String level; + + @JsonProperty("Maneuvers Known") + private String maneuversKnown; + + @JsonProperty("Martial Arts") + private String martialArts; + + @JsonProperty("Max Power Level") + private String maxPowerLevel; + + @JsonProperty("Modification Slots") + private String modificationSlots; + + @JsonProperty("Monastic Vows") + private String monasticVows; + + @JsonProperty("Operative Exploits") + private String operativeExploits; + + @JsonProperty("Potent Aptitude") + private String potentAptitude; + + @JsonProperty("Proficiency Bonus") + private String proficiencyBonus; + + @JsonProperty("Rage Damage") + private String rageDamage; + + @JsonProperty("Rages") + private String rages; + + @JsonProperty("Ranger's Quarry") + private String rangersQuarry; + + @JsonProperty("Routine Radius") + private String routineRadius; + + @JsonProperty("Routines Known") + private String routinesKnown; + + @JsonProperty("Sneak Attack") + private String sneakAttack; + + @JsonProperty("Strategies Known") + private String strategiesKnown; + + @JsonProperty("Superiority Dice Quantity") + private String superiorityDiceQuantity; + + @JsonProperty("Superiority Dice Size") + private String superiorityDiceSize; + + @JsonProperty("Tech Points") + private String techPoints; + + @JsonProperty("Tech Powers Known") + private String techPowersKnown; + + @JsonProperty("Unarmored Movement") + private String unarmoredMovement; } diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java deleted file mode 100644 index 20b14d7..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/BerserkerLevelChanges.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class BerserkerLevelChanges extends LevelChanges { - private String rages; - private String rageDamage; - private String berserkerInstincts; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java deleted file mode 100644 index 7f91256..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ConsularLevelChanges.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class ConsularLevelChanges extends LevelChanges { - private String forcePowersKnown; - private String forcePoints; - private String maxPowerLevel; - private String forceEmpoweredCastingOptions; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java deleted file mode 100644 index a8a2b25..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/EngineerLevelChanges.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class EngineerLevelChanges extends LevelChanges { - private String techPowersKnown; - private String techPoints; - private String maxPowerLevel; - private String potentAptitude; - private String modificationSlots; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java deleted file mode 100644 index 8b821fe..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/FighterLevelChanges.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class FighterLevelChanges extends LevelChanges { - private String maneuversKnown; - private String superiorityDiceQuantity; - private String superiorityDiceSize; - private String strategiesKnown; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java deleted file mode 100644 index 89bd4aa..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/GuardianLevelChanges.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class GuardianLevelChanges extends LevelChanges { - private String forcePowersKnown; - private String forcePoints; - private String maxPowerLevel; - private String focusedStrikes; - private String aurasKnown; - private String auraRadius; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java deleted file mode 100644 index de90557..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/MonkLevelChanges.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class MonkLevelChanges extends LevelChanges { - private String martialArts; - private String focusPoints; - private String monasticVows; - private String unarmoredMovement; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java deleted file mode 100644 index d4b48ab..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/OperativeLevelChanges.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class OperativeLevelChanges extends LevelChanges { - private String sneakAttack; - private String operativeExploits; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java deleted file mode 100644 index 6700765..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScholarLevelChanges.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class ScholarLevelChanges extends LevelChanges { - private String maneuversKnown; - private String superiorityDiceQuantity; - private String superiorityDiceSize; - private String discoveries; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java deleted file mode 100644 index 48aed36..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/ScoutLevelChanges.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class ScoutLevelChanges extends LevelChanges { - private String rangersQuarry; - private String techPowersKnown; - private String techPoints; - private String maxPowerLevel; - private String routinesKnown; - private String routineRadius; -} diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java deleted file mode 100644 index 42c695e..0000000 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/class_level_changes/SentinelLevelChanges.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.misoenergy.hackday.kessel_run.class_definitions.class_level_changes; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.misoenergy.hackday.kessel_run.class_definitions.LevelChanges; - -@Getter -@Setter -@NoArgsConstructor -public class SentinelLevelChanges extends LevelChanges { - private String forcePowersKnown; - private String forcePoints; - private String maxPowerLevel; - private String kineticCombat; - private String idealsKnown; - private String manifests; -} From 507397e9444d18fd461ec0fdf1829319c6ec2eae Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 15:20:39 -0400 Subject: [PATCH 6/8] I guess I forgot primaryAbility. --- .../hackday/kessel_run/class_definitions/CharacterClass.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java index 754352c..bfc45da 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/CharacterClass.java @@ -13,6 +13,7 @@ import java.util.Map; public class CharacterClass { private String name; private String summary; + private String primaryAbility; private String flavorText; private String creatingText; private String quickBuildText; From c544b6de120534a0b366ed00ad4862358cac21a6 Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Tue, 10 Sep 2024 15:21:31 -0400 Subject: [PATCH 7/8] Remove unneeded JsonAlias import. --- .../hackday/kessel_run/class_definitions/LevelChanges.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java index c887a9f..2325625 100644 --- a/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java +++ b/src/main/java/org/misoenergy/hackday/kessel_run/class_definitions/LevelChanges.java @@ -1,6 +1,5 @@ package org.misoenergy.hackday.kessel_run.class_definitions; -import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; From f0ca9edf13c8100f4ec716ae9e3c3d377ef65ce7 Mon Sep 17 00:00:00 2001 From: Bryden Basaran Date: Tue, 10 Sep 2024 16:42:51 -0400 Subject: [PATCH 8/8] Add basic exporter --- .gitignore | 1 + build.gradle.kts | 1 + .../hackday/kessel_run/PCGenExporter.java | 33 +++++++++++ .../kessel_run/KesselRunApplicationTests.java | 6 ++ .../hackday/kessel_run/PCGenExporterTest.java | 58 +++++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100644 src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java create mode 100644 src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java diff --git a/.gitignore b/.gitignore index c2065bc..25cd7c3 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ out/ ### VS Code ### .vscode/ +*.lst diff --git a/build.gradle.kts b/build.gradle.kts index 49641a0..0e7f329 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,6 +26,7 @@ repositories { dependencies { implementation("org.springframework.boot:spring-boot-starter-web") + testImplementation("junit:junit:4.13.1") compileOnly("org.projectlombok:lombok") annotationProcessor("org.projectlombok:lombok") testImplementation("org.springframework.boot:spring-boot-starter-test") diff --git a/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java new file mode 100644 index 0000000..2058b62 --- /dev/null +++ b/src/main/java/org/misoenergy/hackday/kessel_run/PCGenExporter.java @@ -0,0 +1,33 @@ +package org.misoenergy.hackday.kessel_run; + +import java.io.File; +import java.io.IOException; + +public class PCGenExporter { + + public PCGenExporter() { + } + + public void export(File file) { + try { + createOutputFile(file); + } catch (IOException e) { + handleFailedOutput(e); + } + } + + private void createOutputFile(File file) throws IOException { + if (file.createNewFile()) { + System.out.println("File created: " + file.getName()); + } else { + System.out.println("File already exists. Deleting and re-running"); + file.delete(); + createOutputFile(file); + } + } + + private void handleFailedOutput(Exception e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } +} diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/KesselRunApplicationTests.java b/src/test/java/org/misoenergy/hackday/kessel_run/KesselRunApplicationTests.java index 34df502..1802d7f 100644 --- a/src/test/java/org/misoenergy/hackday/kessel_run/KesselRunApplicationTests.java +++ b/src/test/java/org/misoenergy/hackday/kessel_run/KesselRunApplicationTests.java @@ -3,6 +3,12 @@ package org.misoenergy.hackday.kessel_run; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.io.File; +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.internal.verification.VerificationModeFactory.times; + @SpringBootTest class KesselRunApplicationTests { diff --git a/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java new file mode 100644 index 0000000..770ca62 --- /dev/null +++ b/src/test/java/org/misoenergy/hackday/kessel_run/PCGenExporterTest.java @@ -0,0 +1,58 @@ +package org.misoenergy.hackday.kessel_run; + +import org.junit.jupiter.api.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; + +import java.io.*; + +import static org.junit.jupiter.api.Assertions.assertTrue; + + +@RunWith(MockitoJUnitRunner.class) +public class PCGenExporterTest { + + + PCGenExporter exporter; + + @Test + void exporterExists() { + exporter = new PCGenExporter(); + } + + @Test + void exporterCreatesFileWhenNoneExists() { + exporter = new PCGenExporter(); + File file = new File("sw5eClasses.lst"); + deleteFileIfExists(file); + exporter.export(file); + assertTrue(file.isFile()); + } + + @Test + void exporterRecreatesFileWhenExists() throws IOException { + exporter = new PCGenExporter(); + File file = new File("sw5eClasses.lst"); + + deleteFileIfExists(file); + createFileWithData(file); + + exporter.export(file); + BufferedReader reader = new BufferedReader(new FileReader(file)); + + assertTrue(reader.readLine() == null); + + } + + void deleteFileIfExists(File file) { + if(!file.exists()) { + file.delete(); + } + } + + void createFileWithData(File file) throws IOException { + FileWriter writer = new FileWriter(file); + writer.write("If this exists when tested, Fail!"); + writer.close(); + } +}