findusl / initiative-tracker Goto Github PK
View Code? Open in Web Editor NEWHelper for initative based combat, primarily D&D 5e
Helper for initative based combat, primarily D&D 5e
Add support for status effects.
when clicking save, while the virtual keyboard is open -> the keyboard will not close
The monster type field can be used before all monsters have been loaded. When the user filters for a specific monster and it cannot be found, they should get a visual indication that monsters are still being loaded.
A loading flag can be implemented in the same place the monster list is loaded.
Then just needs to be shown in the dropdown as loading circle if too few monsters are found.
the side drawer is unnecessarily wide on desktop. See if there is some way to reduce it.
To make it more realistic not all instances of the same creature type should have the same amount of hp. Roll the hp if available for a monster
Currently clients cannot edit combatants. They should be able to edit their own combatant. Include some sort of "owner id"
Add new combatant -> cancel should remove character
Currently the app does not handle back buttons. (not urgent, the other navigation options do the job for now)
Allow hosting on the host device and access for LAN devices
If the commands are extended in the future, but the client is not updated, the client might receive a command it cannot recognise. For this purpose the Serialisers should be extended to allow for a fallback "UnknownCommand" value to be used.
Kotlin/kotlinx.serialization#448
Unclear how to make this clean, except by making a separate FallbackSerialiser for each object. Maybe it would be possible to add a different annotation that defines the fallback and read that. Need to check about annotation retention in KMM
Sometimes players control creatures. Either as summons or as pets or similar. They should be able to add these. Both on the go and as a permanent character.
Change the name generation for such creatures to use the creature name and player name.
Add to option to apply damage to a combatant via long press. It should reduce the current hp.
I never had to actually version one of my projects, but this one we use so much, it might be a good idea. For now I'm doing it manually, but automatic might be a good idea.
When the app automatically calculates a value, somehow show to the players that this was the case. (Like calculating initiative and so on)
Add an Admin page to the backend to see all the combats and their states. Use auth
Often the same monster is added multiple times. So a new monster should have the same name as the last added monster.
Some of the interactions in the app are not clear. Especially what happens when you press "play" on a combat. Some sort of tutorial would be nice.
By converting the Project to a Kotlin Multiplatform project, we can use the same models for the app and the backend.
When the next character is owned by a player, remind them.
Regularly, I just start the app and click the share button and that is all. Just testing that the connection to the backend still works. maybe add a combatant. All this could be done with an automated test.
When there is an error in a client connection, for example due to the Websocket closing in the background, one needs to switch away from the combat and back to it, in order to reconnect. We need a better way to reconnect with combat. Maybe a button. But we still need the error message, in case the error is important.
Can be tested by putting app in background for a bit.
Currently only the dm can apply damage. Players should be allowed to suggest damage and the dm has to approve
Add the option to set current/max hp on a combatant.
As this is my first compose project, I did some mistakes that are commonly not considered very good. Specifically I pass ViewModels and mutableState objects down.
https://github.com/mrmans0n/compose-rules
https://developer.android.com/jetpack/compose/state#state-hoisting
Allow players and DM to view the full image of a creature when they (long)click on the token.
Currently no message is shown if the host ends the combat
When multiple combatants are added with the same name, they should automatically be enhanced with an increasing number.
Swipe a combatant to the right to delete it from the list, e.g. when it is deleted or left combat.
Every monster has some type behind it. Maybe it's a phase spider, maybe an Intellect Devourer. But the players don't know that. They see a blue spider or a Brain with legs. So the dm should name them accordingly to increase immersion. Warn the dm if he names a monster by the official name instead of a description.
While initially creating a combat, click on an item should allow for edit.
While running a combat click on an item should allow for damaging. Possibly later changed by settings. Long click for edit. Swipe right for jumping to that items initiative.
Allow to change the state of the combat with an icon on top, play and pause.
Depending on the amount of space available for the list view, show more information for the host. In particular the following could be interesting: Monstertype, HP, AC
When a character drops to 0 hitpoints or is swiped left during active combat, it should only be grayed out, maybe with a red cross showing it's dead. Can be swiped again to be completely removed. During combat paused/creation swiping completely removes it.
Have an entry in the list that is a plus button that adds a new combatant and immediately allows to edit it.
Currently it is not possible to edit characters on desktop, because full screen dialogs don't work. Maybe side by side will fix that.
During combat, the players had to unlock their phones a lot to access the app. We should keep the phone awake. (in the future this could be a toggleable setting.
Allow the player to input the damage calculation into the damage combatant field to make the app calculate it. Correctly handle incorrect formulas
Show how healthy a combatant is based on current hp compared to max hp. Maybe use coloured text.
Increase the button size on desktop (maybe that is generally a good idea. Maybe can be done via theme)
Show combatant name that gets damaged
The swipe actions are nice but limited to two currently. The following actions might be useful. Maybe a context menu but currently long press is edit... Or maybe a multi actions swipe menu on one side?
Let the user enter the backend server URL at runtime. For hosting and connecting
Allow the DM to set reminder on characters for specific events. They kill someone or they have their turn or similar.
Further stepd: Store the reminders on dm side and suggest to apply whenever character with same name joins
App needs some icon
Add a dialog that allows to damage multiple opponents. With DC and type of saving throw.
Then the game should roll the saves where it can and display the results for the dm to accept.
Network errors can happen. We should have a retry logic for cases where it makes sense to retry the operation. Maybe there are some ktor builtins for that.
The websocket ping probably happens too rarely too. One fail could close the connection.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.