dnd-combat-tracker's People
dnd-combat-tracker's Issues
Track creature conditions
The app should offer an easy way to track conditions and display which conditions are currently affecting each creature. This is a particular pain point in the sessions I've ran, because the players are prone to forgetting conditions which negatively impact them, and remembering every creatures' conditions is a lot for the DM to keep track of.
The list of standard 5e conditions (i.e. frightened, unconscious, poisoned, prone, etc.) should be available. In addition, there should be a condition for "concentrating". I've had players who cast spells requiring concentration who then forget that they are supposed to be concentrating and do things that they aren't supposed to be able to do. This is also tough for me to remember and track.
Any other conditions would be covered by the free form notes feature (#13). Technically that could also be used for this purpose as well, until this is implemented.
Add Initiative Bonus
When autorolling initiative, the initiative bonus for certain creatures should be applied automatically.
Ability to automatically sort the initiative order
Once all creatures in the order have an initiative rolled for them (either manually or automatically by the app), the app should have a feature to automatically sort the creatures.
This should not happen automatically (would be frustrating if things kept moving around while the encounter was being set up), but should be done at the request of the user.
Allow players to input their own initiative
It would be really cool if the players could input their own initiative rolls into the order so that the DM doesn't need to ask for everyone's rolls.
Ability to add creature stat blocks
This would especially be used for enemy creatures as a way to quickly pull up the stat blocks for the creatures whose turn it is.
Replace react-beautiful-dnd
React beautiful DND seems to have some maintenance issues, and currently does not support React 18. Things still seem to work in production, but break when run under strict mode in development.
Ability to create a library of enounters
A user should be able to prepare encounters to run before a D&D session. These encounters would be kept in a list ready to run or edit at any time.
A user should be able to:
- Add new encounters
- Edit existing encounters
- Delete encounters
- Run an encounter
An encounter that is running should save its state. For example, if encounters A, B, and C are created and none of them have been run yet, then they would all show "Run" in the list. Then, if encounter A is run, the list would show "Run" for encounters B and C and "Resume" for encounter A. Clicking "Resume" would go back to the exact state the encounter was left in.
Mark creatures as "Players"
Linting: Treat warnings as errors in CI
Add ability to create a list of predefined player characters
The user should be able to create a list of the player characters that they commonly use. This would be done at the same level as the encounter and monster libraries.
This enables some handy quick set up options for encounters, such as the ability to add all players to an encounter with one click (though, this is not covered under this issue).
Ability to create a library of pre-created monsters that persists
A user should be able to create and keep a list of their monsters in order to reuse them (and their stats) between encounters. This could be something custom, or simply an entry from the monster manual.
Eventually, we could even pull from the open5e API to pre-populate the library somewhat, but that is not in scope for this issue.
Add creature groups
A creature group is a collection of creatures that all have the same initiative count, but all act separately on their turn. The main use case for this would be a group of enemies of the same type, but when more than one of them should get a turn.
For example, there are 3 players, and 4 Orcs. The 3 players all get their own initiative count, but the 4 Orcs all share one initiative roll. However, HP should be tracked separately for these 4 Orcs so they need their own "creature" in the order, but all of their turns occur at the same time.
In order to streamline this, the behavior of certain things might change for groups:
- Groups can be reordered as a whole #6
- Creatures can be reordered in the group #6
- The group can be deleted as a whole #5
- Copying a creature that is inside the group creates another creature in the group #10
- Perhaps things that would be shared, such as AC, max HP, etc. could be automatically duplicated N times. For example, a creature could be created, and then there could be a "create group" button, that asks for the number of times to duplicate the creature.
The creation of groups is sort of undefined.
Persist app state in local storage
#17 tracks exporting and importing encounters as files, which would allow persisting of encounters as well as sharing them between machines.
This item is a stop gap that persists app state (thus making the application actually useful) in the user's browser. There are obviously downsides to this, such as not being able to transfer between computers, and complete data loss if the user clears their browser storage.
My current idea is to persist the entire redux state in the browsers local storage.
Automatically track and calculate character XP based on monster CR
Ability to restart an encounter
This should leave all creatures in the order with current initiative values, but go back to round 1, turn 1 and set current HP for all monsters back to full.
Ability to add monsters from the monster library to an encounter
A user should be able to add a monster they've created to an encounter. This should work for both pre-prepared and quick run encounters, and added monsters should work along side anything added using the "Quick Add Creature" button.
Run tests in CI
Overhaul app styling according to mockups
Track player character class features
This is a nice to have feature for tracking expended player class/race features. For example, the app could allow the DM to easily track expended spell slots, class features (such as Barbarian's rage), and others.
Then, this information could be leveraged if the players forget what they did.
The issue with this is that it would need to be very simple, easy, and intuitive to use. Otherwise, the DM isn't going to have time or the mental capacity to use it and it would just slow play down.
Track health for creatures
There should be an optional way for the app to track the health of various creatures. This is likely to be used only for DM controlled creatures, such as NPCs and enemies, as the players are able to track their own characters' health.
The user should be able to input the max hitpoints for any creature. The app tracks the "current" hit points for each creature, which by default starts at that max hit point number. Then, the user should be able to quickly add or remove an amount of hitpoints from the current total quickly without having to do any math. This could take the form of entering "-30" in a text box and hitting enter, similar to the way roll 20 does it.
This feature needs to be completely optional. The app should work fine without tracking health status.
As a stretch goal, it would be cool if the health was presented in both number and percentage form (since quartiles are often used to report creature health to the players instead of the raw numbers).
Add row within add creatures modal by pressing enter in field on last row
Ability to add custom conditions to a creature
In addition to the standard list of conditions in #15, the user should be able to add any condition/note they want and have the duration tracked under #65. They can then also remove this condition at any time.
For example, for a barbarian the user could have a custom condition for rage. This allows us to track all sorts of class features, conditions, and custom effects without cluttering up the UI with tons of options.
Auto search dnd beyond
Add a button to auto search dnd beyond based on a creatures name. For example, if a creature in the initiative order is named "Bugbear", then the button would automatically search for "Bugbear" in dndbeyond (which would include the stat block for the DM to use).
Clear all monsters from initiative order
In addition to clearing the whole initiative order, an option to clear only the monsters would be useful.
I've found that this workflow is desirable for one shots or improv sessions where I don't care about creating the various encounters.
Ability to manually reorder the initiative order outside of rolled order
The initiative order should have some sort of "click and drag" reordering such that things can be reordered at the DM's discretion.
The main use case for this is if there are ties in the rolled initiative order. It is nice to be able to let players work out who will go first in these situations.
Write automated tests
To maintain quality, we're going to need to start writing automated tests. This item is to write tests for all currently implemented features.
Ability to clear the initiative order
This would simply delete all the creatures in the order and return the app to its initial blank state.
This could potentially not delete creatures who are players, or have multiple options.
Ability to export encounters and upload them again later
This would allow the DM to pre-prepare encounters and simply run them during the session.
Likely this would be implemented as a JSON export/import of the entire app state. Hopefully this is easy to do since I'm planning on using redux.
As an alternative, the entire app state could potentially be stored in the URL. Then, in order to save the state, you simply need to save the URL somewhere and revisit it later. This may or may not be feasible depending in how much data needs to be encoded.
"Next turn" button that moves to the next creature in the initiative order
This would also wrap around to the beginning each round.
Quick add creatures with their AC
Ability to "quick add" a creature to the initiative order with just a name and an AC. If combat is already started, their initiative could be auto rolled and placed in sorted order into the initiative order.
Ability to quick add multiple creatures at once
The quick add modal should have the ability to quick add multiple creatures at once, including:
- Adding a new row
- Duplicating an existing row
- Removing an existing row
Add round separator
In testing, I've found that reordering creatures can be confusing when dragging a creature over the round border. Consider these cases:
- Dragging the creature whose turn it is to have already gone
- Dragging a creature who has not gone to already have gone
- Dragging a creature who has already gone to have not gone
- Dragging a creature who has already gone to have their turn now
In these cases, to try and preserve the creature whose turn it is (if possible), and to ensure that the turn order stays sorted such that restarting the encounter starts with the highest initiative value and goes in descending order, the current turn number must change.
It's not obvious that this happens. A clear separator of where the round boundary is could help:
It's also possible that this could be useful for other reasons. Maybe it should be configurable? Possible options;
- Always display
- Display when dragging
- Never display
This element would need to be ignored for the purposes of drag destinations.
Auto roll for enemy creatures
The app should have some sort of button that rolls initiative for either all creatures in the order, or potentially only certain creatures. This could be accomplished one of several ways:
- Mark player creatures as such, and don't auto roll those. This is nice because then NPCs would also be auto rolled.
- Often there are some NPCs that are being run by a player during combat. Even though they aren't PCs, they could still be marked as such, and then NPCs that are DM controlled would still be auto rolled.
- I think I like this option the best at this time.
- Mark enemy creatures as such, and only auto roll these.
- Mark creatures as needing auto roll. This is probably the most clunky and least desired option.
Ability to remove individual creatures from the order
A creature should be able to be complete removed from the initiative order.
Fix deployment job
The deploy job was recently broken with updates to the CI. We need to allow the job to access the built artifacts from the previous job.
Track and display the number of rounds that have occurred during combat
For information purposes for the DM. This could be useful to track certain conditions.
Track how long a condition has been active for
In rounds, possibly in in-game time as well.
Ability to duplicate creatures
There should be an easy way to duplicate creatures in the order. This could take the form of a "copy" button/icon that would duplicate the creature and all of its data (AC/HP/initiative roll, etc.).
Ability to map initiative order creatures to miniatures on a grid
No idea how this specifically will work, but in my sessions we tend to use minis on a grid. These minis often have defining features, which can act as an "ID" that helps me map minis on the board to creatures that I'm tracking.
Player view
It would be really cool if there was a player view that the players could pull up on their own phones/computers.
This player view would simply show the order with names, rolls, and whose turn it currently is. It may also show the number of rounds that have passed. For non-player creatures, the initiative order will need to have an option to hide it. Additionally, HP, AC, CR, etc. should not be shown for enemies.
With only a "player" flag (#12), this is not super user-friendly, as the players should get to see the HP for all NPCs, and enemy initiative counts should only be hidden before those creatures first turns. Maybe this can all be handled automatically, but these details need to be worked out.
Input rolled initiative for creatures manually
While the app will have the ability to auto roll initiative (especially for DM controlled creatures), it is still nice to have players roll their own initiative. This app needs an ability to input these rolled initiative numbers for player controlled creatures manually.
Ability to add free form notes to a creature
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.