Giter Club home page Giter Club logo

initiative-tracker's People

Contributors

dependabot[bot] avatar findusl avatar skreisig avatar thhartmannj avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

initiative-tracker's Issues

Status effects

Add support for status effects.

  • support duration
  • decrease duration on new round to avoid accidental decrease when jumping
  • show special icon when decreasing
  • show dialog when decreasing to warn user with option to not show again
  • show Snackbar when decreasing
  • show status effects in list view for everyone
  • provide option to increase status effect for all if accidentally decreasef
  • add option to remove status effect (e.g. When saved)
  • stretch goal: allow managing status effect per creature
  • stretch goal: allow managing all active status effects and group if same for different creatures
  • stretch goal: automatically calculate save on turn end. Give Snackbar warning. Maybe ensure only once per round
  • round counter probably necessary

Visually show that bestiary is still loading

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.

Randomize monster hp

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

Handle mouse back button

Currently the app does not handle back buttons. (not urgent, the other navigation options do the job for now)

Fallback Deserializer for unknown types

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

Allow players to add creatures

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.

Automate Versioning and releases

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.

Show calculations

When the app automatically calculates a value, somehow show to the players that this was the case. (Like calculating initiative and so on)

Admin Page

Add an Admin page to the backend to see all the combats and their states. Use auth

Tutorial

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.

Add UI Tests

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.

Easier reconnect when error

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.

Warn DM about using monster types as name

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.

Combat list states

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.

Dying states

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.

Add new via button in list

Have an entry in the list that is a plus button that adds a new combatant and immediately allows to edit it.

Allow editing on desktop

Currently it is not possible to edit characters on desktop, because full screen dialogs don't work. Maybe side by side will fix that.

Keep Phone Awake

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.

Improve damage approval dialog

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

More quick actions

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?

  • delete
  • disable/enable
  • unhide (if hidden)
  • jump to initiative
  • apply status effect (once that is a feature)

Add DM reminder

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

Dialog for AOE Damage

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.

Add retries to network operations

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.

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.