A port of a personal Discord bot project (similarly unfinished) of the same name.
Expected functionality (extended functionality in brackets):
-
Ability to read character sheets as defined by a custom file format
-
Ability to write character sheets as defined by a custom file format
-
Ability to create character sheets using standard 5th Edition game rules
-
(Ability to represent a current combat encounter with multiple characters)
-
(Ability to allow users to make all changes necessary to simulate a combat encounter)
-
(Ability for users to create creatures and effects necessary to simulate a combat encounter)
As a user, I want to be able to:
-
Add a Class to a new Character
-
Set the Race of a new Character
-
Set the Background of a new Character
-
Add a Class to an existing Character
-
Change the Name of an existing Character
-
Change the Race of an existing Character
-
Change the Background of an existing Character
-
Add levels to an existing Character
-
Add Items to a Character's inventory
-
Save my progress upon exiting the application
-
Load progress from backup files upon entering the application at a later time
- You can generate the first required event related to adding Xs to a Y by selecting a save to load, and with a character registered and loaded into the system, clicking the "Add Item" button in the center of the screen. This will add the item selected from the combo box below it to the character's equipped items.
- You can generate the second required event related to adding Xs to a Y by selecting a save to load, and with a character registered and loaded into the system, clicking the "Add Feature" button in the center of the screen. This will add the feature selected from the combo box below it to the character.
- You can locate my visual component by glancing at the top of the screen! The title bar is an image.
- You can save the state of my application by clicking the header tab labelled "File", then clicking the menu option labelled "Save Workspace Image"
- You can reload the state of my application by clicking the header tab labelled "File", then clicking the menu option labelled "Load Workspace Image"
Sample Event Log: (Simultaneous event timestamps removed for brevity and clustering)
Fri Dec 02 11:26:44 PST 2022
New character created: ty
New item created: hot dog
Item hot dog weight set to 0
Item hot dog price set to 0
New Score feature created: Test Feature
Fri Dec 02 11:26:57 PST 2022
New item created: watermelon
Item watermelon price set to 4
Item watermelon weight set to 12
Fri Dec 02 11:27:13 PST 2022
New item created: The Horse
Item The Horse price set to -10
Item The Horse weight set to 50
Fri Dec 02 11:27:18 PST 2022
Item watermelon added to character ty's equipment
Fri Dec 02 11:27:20 PST 2022
Item The Horse added to character ty's equipment
Fri Dec 02 11:27:22 PST 2022
Feature Test Feature added to character ty
Fri Dec 02 11:27:23 PST 2022
Feature Test Feature added to character ty
Fri Dec 02 11:27:24 PST 2022
Feature Test Feature added to character ty
Fri Dec 02 11:27:34 PST 2022
New character created: Test Character
New Score feature created: Test Score Feature
Feature Test Score Feature added to character Test Character
New description-only feature created: Test Feature
Feature Test Feature added to character Test Character
New item created: HotDog
Item HotDog weight set to 0
Item HotDog price set to 0
Item HotDog added to character Test Character's equipment
New item created: HotDog
Item HotDog weight set to 0
Item HotDog price set to 0
New item created: HotDog
Item HotDog weight set to 0
Item HotDog price set to 0
New item created: HotDog
Item HotDog weight set to 0
Item HotDog price set to 0
New description-only feature created: Test Feature
New Score feature created: Test Score Feature
Fri Dec 02 11:27:37 PST 2022
Item HotDog added to character Test Character's equipment
Fri Dec 02 11:27:38 PST 2022
Item HotDog added to character Test Character's equipment
Fri Dec 02 11:27:44 PST 2022
New item created: Not A Word
Item Not A Word price set to 0
Item Not A Word weight set to 0
Fri Dec 02 11:27:45 PST 2022
Item Not A Word added to character Test Character's equipment
Fri Dec 02 11:27:48 PST 2022
Feature Test Score Feature added to character Test Character
Fri Dec 02 11:27:49 PST 2022
Feature Test Score Feature added to character Test Character\
Refactoring:
ScoreType
andStatType
have duplicate methods for application of modifiers; replace with inherited methods from a singular superclass- "
ListPanel
-type" classes in gui need to be consolidated into one arbitrary-typeListPanel
class, withScrollPane
functionality built into theListPanel
instead of a externally-defined wrapper panel - Use and implement exception-based handling more
- Consolidate
ScoreType
andStatType
into a single enum with metadata - Use enum metadata more for easier handling
- Segment
Feature
class into multiple subclasses either extending a superclass or extending aFeature
interface for easier handling (possibly with a composite design pattern forMULTI
type) - Swap some
List
s withSet
s for more streamlined handling (Feature
s inCharacter
, for instance) - Perhaps decompose and delegate stat and score handling and updating from
Character
to another class? - Replace the double "Class and Level"
List
+Map
system inCharacter
with a singleMap
that contains the class index with the class name key