Giter Club home page Giter Club logo

dungeon-paper-app's Introduction

Dungeon Paper

facebook twitter discord

Dungeon World players, this is the app for you!

Keep all your characters' bio, stats, moves and possessions with this interactive character sheet. Join for smoother, zero-hustle Dungeon World campaigns!

Dungeon Paper is an interactive character sheet for your Dungeon World characters. This is the source of this app, but to fully use it you must set up your own firebase credentials and sign your own app. Once that is properly set up, the app should create entities based on logins to the app, so nothing else should be created for the database beforehand. No one in this repository will provide any secret keys to anyone, ever.

dungeon paper

android ios

Features

  • Unlimited number of character sheets
  • Create your own classes and races to use for your characters
  • Add basic details (character name, image, race and alignment)
  • Set and view stats and modifiers, life, experience, armor and damage dice
  • Add moves and spells from the playbook, or add your own homebrew
  • Keep track of inventory items, coins and load
  • Add notes, moves, spells, and other custom content with rich text, checkboxes and tables using Markdown
  • Roll any dice or roll your actions directly

Contributing

I am developing this package on my free time, so any support, whether code, issues, or just stars is very helpful to sustaining its life. If you are feeling incredibly generous and would like to donate just a small amount to help sustain this project, I would be very very thankful!

Buy Me a Coffee at ko-fi.com

I welcome any issues or pull requests on GitHub. If you find a bug, or would like a new feature, don't hesitate to open an appropriate issue and I will do my best to reply promptly.

Development Set Up

  1. Download Flutter

    Use whatever Flutter channel you deem necessary, this should be compatible with master and beta, dev breaks a lot so no commitment. More information on Flutter.dev.

  2. Fork this repository

  3. Connect your Firebase credentials for the app

    TL;DR: Create Firebase app, setup authentication, and run

    dart pub global activate flutterfire_cli
    flutterfire configure
  4. Copy the secrets.example.dart to secrets.dart in the same directory:

    cp lib/core/utils/secrets.example.dart lib/core/utils/secrets.dart

    Sentry DSN can remain empty to skip error reporting.

  5. To run build scripts, use script_runner by running dart run script_runner -h to see a list of all available commands. Alternatively, you can manually run the command in script_runner.yaml, or install script_runner globally and shorten the command to scr.

As mentioned above, Firebase secret keys must be your own, and so are the databases and services related to them. This project requires Firebase auth and Cloud Firestore to function.

Translations

This app is currently only available in English. However, it's possible to contribute translations if you wish to help localize the app to your language. The app should be fully-localizable easily by updating the translation files, and once we ave more than one language we will add UI to change it at will.

  • The current main translations file is at lib/i18n/messages.i18n.yaml

  • To add a new localization file, copy this file to lib/i18n/messages_<lang code>.i18n.yaml (for example, for Hebrew you would use messages_he.i18n.yaml)

  • For help using the translation syntax, see the i18n docs

  • To translate the playbook data (classes, items, moves, spells, etc) we must localize a separate package containing all the Dungeon World base data. This package is available here, see the localization docs there for more help.

  • The app and data may be translated separately and do not depend on each other.

  • Use the build_runner package to generate Dart files from the yaml files.

    # run in watch mode, re-generates as you update the yaml
    dart run build_runner watch
    # generate files once
    dart run build_runner build

Help by bug reporting or requesting features

  • Feel free to use the GitHub issues to post one of the issue templates.
  • We are also active on Discord

dungeon-paper-app's People

Contributors

chenasraf avatar magnus-isu avatar magnusanderson-wk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dungeon-paper-app's Issues

Buggy item counters

When you have an item in your inventory and you click on the + button to increment its number, it goes from 1 to 2.0 and the + and - buttons stop working.

[FEATURE] Translation of labels into Italian

I would like to propose the addition of Italian label translations to make the user experience more accessible for Italian speakers. I am willing to personally take care of the translation and implementation of these changes. This issue serves as a starting point to discuss the best approach and gain the consensus of the community and project maintainers. It would be a pleasure to contribute to making "Dungeon Paper" more inclusive for the Italian community.

Extended XP bar

The XP bar can go above the limit to level up because in order to level up the player has to do the Level up move. If the character has more experience points than the limit to level up, the excess will be added to the amount of experience that the character has on the new level.

But on the app, the XP bar cannot go above the limit and the only option, for now, is to level up immediately when the character reaches that limit.

Quick login / auto sync

Hi there! We've been exchanging emails recently. I hope you're safe and healthy!

This is something that I've done before in an app that used Firebase: Direct (local) login. So, instead of relying on a response from Google API everytime, it's possible to allow the user to use the app as intended, even offline, and the SDK should take care of anything that should be saved and sent to the Firebase server. When the user accesses the app using wi-fi or 4g, the SDK just synchronizes automatically like magic.

The logic for this is somewhat coded here, from lines 37 to 50. Keep in mind that the code I linked is very old and I'm pretty sure that the API has changed since then!

[BUG] Wrong label for first set of advanced moves

Describe the bug
The Advanced Moves should be available from level 2-5 (which has been written in the past) but it is currently written from level 1-5.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Battle screen, or create custom class view
  2. Tap on '+' to add move at the appropriate location
  3. The level titles are '1-5' and not '2-5'

Expected behavior
Should show 2-5.

Screenshots
example

Smartphone (please complete the following information):

  • Device: N/A
  • OS: N/A
  • Version: At least 1.1.4 and above

Additional context
Reported via email.
References DungeonPaper/dungeon_world_data#4

[BUG] Character updates cause character switching

Describe the bug
Updating any data on the character causes it to switch to a different character. The updates are preserved and still working.

To Reproduce
Steps to reproduce the behavior:

  1. Select a character that's not your first in the list/last used character
  2. Update HP (for example)
  3. See a different character take display priority

Expected behavior
Character shouldn't skip to a different one after updating and should remain on the same page/view

Smartphone (please complete the following information):

  • Device: OnePlus One 7 Pro
  • OS: Android 10
  • Version 1.1.16+1

Additional context
Problem exists in alpha but not in beta.

[FEATURE] Configure FVM for the Project

Is your feature request related to a problem? Please describe.
The current project does not utilize FVM for managing Flutter versions, leading to potential version conflicts and a lack of version consistency. Manually changing Flutter versions for the project is a tedious, time-consuming, and inconvenient process, adding to the problem.

Describe the solution you'd like
I'd like to propose implementing FVM (Flutter Version Management) for the project. This will help us isolate Flutter versions used in the project and streamline version management.

Describe alternatives you've considered
No alternative solutions have been considered as FVM is a widely-accepted tool for Flutter version management.

Additional context
FVM Homepage

Proposed Steps:

  • Install FVM in your development environment.
  • Configure the desired Flutter version for the project using FVM.
  • Update the .fvmrc or fvm_config.yaml file in the project with the Flutter version information.

Avoiding some pop-ups

When we are in an activity and we want to go back, the app almost always pops up a dialog asking me if I am sure to proceed and says that unsaved data will be lost or something like that. However, the pop up is unnecessary if I haven't even edited anything, do you agree?

So, instead of always making pop ups appear, I think it would be interesting to check whether the user has any information he/she doesn't want to lose in the first place. Has the user written something? Has the user checked some box? Those kinds of tests.

Character load

The character load is calculated using the attribute value itself instead of the modified. For instance, the wizard has a load of 7+Str (notice that it doesn't say "STR", with capital letters), so, even if strength is the lowest wizard's attribute, with a value of 8 (modifier -1), its load would be 15 and not 6. Source: Dungeon World SRD.

Another detail is that a wizard starts with a Spellbook, which takes a load of 1. There might be other classes that necessarily start with items.

Coins field missing in inventory

Steps:

  1. Navigate to Inventory and attempt to add coins for a character

Actual:

  • Coins may only be added as a custom item or added to notes

Expected:

  • Coins should exist as a static field at the top of inventory
    OR
  • Coins should exist in the list of items that may be added

Additional Notes:

  • My GM likes to use decimal money amounts, so it might be nice to allow doubles, but I don't know how common a case that is

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.