Git Product home page Git Product logo

cisc191-dnd5espelltracker's Introduction

CISC191-DnD5eSpellTracker

Java Project for CISC 191. A Spells Tracker for DnD5e

[screenshot of final product]

Overview

Spells are a major part of playing Dungeons & Dragons. It you're a Spellcaster like a Wizard or Sorcerer, it's pretty much your entire gameplay. If you're a partial caster, it's still a part of your game play. and while there are a few classes that can go spell free, usually the party will be at least half people who can cast some kind of spells.

But keeping track of spells can be a hassle. If you're a Wizard you learn 2 new spells each time you gain a level, which can really add up. If you're a Cleric you can prepare any spell on the Cleric spell list. Anyone who casts spells needs to keep track of how many they've casted and how many spell slots they have left.

I'm making a D&D fifth edition Spell Tracker to help make spells less of a hassle when playing D&D.

Players will be able to keep track of how many spells slots they have and have left (or if they use spell points keep track of those). Players will have an easy to navigate list of their spells that can be sorted by if they're a ritual (meaning you can cast them without using your limited number of spells you can cast a day as long as you take 10 minutes on it), if they're prepared (meaning you don't just know it but can actually cast it right now) or not (or always prepared due to subclass or other features), or just the level of the spells.

[insert Walkthough Video from class when that's done]

Credits & Legal

[disclaimer that I did not invent DnD and don't own 5e]

[disclaimer that I only used the SRD which is allowed]

License for project: GNU General Public License V3

Special Thanks to

  • [instructor and tutor]
  • [friends I brainstormed with]
  • [other]

Class (as in the college course) Specific Info

Diagram of the project plan

[insert intro video for object oriented programming]

Learning Outcomes

Employ design Principles of Object-Oriented Programming (LO1): This is an Object-Oriented project not just because it's made using an object oriented language. The core of the project is that users will create a "Character" object that stores relevant data including which "Spells" the character has access to. Spells are another object with stores lots of data. The data stored in objects like character and spell and how we use/display/track it is the basis of this project.

Object and Classes in Object-Oriented Programming, Including Aggregation (LO3): Character HAS-A bunch of CharacterSpells they know and a CharacterSpell IS-A Spell.

Util Inheritance and Polymorphism, Including Abstract Classes and Interfaces (LO4): CharacterSpell extends Spell. Spell Points and Sorcery points will both inherent from a "Points" abstract class which has an interface for adding, subtracting, displaying, etc. the number of points.

Util Generic Collections and Data Structures (LO5): In order to store and access spell elements this project will have to use generic collections and data structures for the Spells and also the Characters and their settings that the user has saved.

Util Graphical User Interfaces and utilizing Event-Driven Programming (LO6): This program will be a window with with the user selecting buttons and other GUI interfaces to change what they see. For example, There will be checkboxes for spell slots that users can set to keep track of if they used that spell slot.

Util Exception Handling (LO7): This project will through up errors when users do something they're not supposed to in the program that would mess it up. Such as subtract the number of spell points they have into a negative number (you can't have negative spell points in DnD)

Util Text File I/O (LO8) This project will utilize text file input/output by reading and writing to files to store spells and save data, such as characters, between sessions.

Timeline

Everyweek

  • Update project page with the progress details.
  • Submit code written so far.

Week 1

  • Write the project proposal
  • Plan the object-oriented design, starting with CRC cards. Determine classes (with fields and methods) and interfaces and their responsibilities. (the "model" part of MVC.)
  • Create the UML.
  • Begin writing project page.

Week 2

  • Write code for all the Character, Spells, and Points classes and Interfaces
  • Start copying over all the SRD spell files
  • Develop text cases and test code as it is written.

Week 3

  • "Finalize" the code for Character, Spells, and Points classes and interfaces
  • Continue to copy over the SRD spell files
  • Determine where exception handling is needed to ensure the program fails gracefully
  • Design the GUI (sketch it out on paper) - include the design in the weekly update!

Week 4

  • Finish copying over the SRD spell files if haven't already
  • Perfect code for the Character, Spells, and Points classes and interfaces.
  • Test, test, test, debug, and test some more.

Week 5

  • Write code to create a non-functional GUI (the "view" part of MVC.)

Week 6

  • Add event handling to make the GUI funcitonal (the "controller" part of MVC).

Week 7

  • Test, test, test, debug, and test some more

Week 8

  • Debug any remaining problems.
  • Create project demonstration video, including information about hwo each LO is used as part of the project.
  • Submit final code on Canvas, and add videos to project page.

cisc191-dnd5espelltracker's People

Contributors

kilowrey avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.