Code Monkey home page Code Monkey logo

tabletoptools's Introduction

Tabletop Tools

Build App CodeFactor Crowdin

This Android app provides a few handy tools for tabletop games:

  • Dice (D3, D4, D6, D8, D10, D12, D20, D100)
  • ROT13
  • Number converter: Decimal <=> Binary <=> Hexadecimal
  • Timer
  • Buzzers for 1 - 4 players
  • List that can be randomized

Get it on F-DroidDownload from GitHub

Screenshot Screenshot Screenshot Screenshot

Translations

App strings and the app store description can be translated via Crowdin: https://crowdin.com/project/tabletop-tools For the automatic rotation detection in ROT13 you need to manually copy this file and commit it. Crowdin doesn't handle this string array well.

To request a new language, please poke me on Crowdin or open an issue here on GitHub.

Credits

tabletoptools's People

Contributors

bladebunny avatar charlenehoogkamer avatar clarasdfgh avatar dependabot[bot] avatar evotk avatar imgbot[bot] avatar imgbotapp avatar imnirdst avatar jplandolt avatar kamazz avatar kardelio avatar mueller-ma avatar neil0504 avatar tgo1014 avatar theakito avatar

Stargazers

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

Watchers

 avatar  avatar

tabletoptools's Issues

Lockup table for letter <=> number

I'd like to have a simple table that maps a letter to its position in alphabet and to its ascii code. Something like

Letter Number in Alphabet Ascii Dec Ascii Hex
A 1 ... ...
B 2 ... ...
[...]
a 1 ... ...
b 2 ... ...
[...]

Ideally the table is generated at runtime to keep the layout file small and maintainable. If required new extension functions could be added to https://github.com/mueller-ma/TabletopTools/blob/main/app/src/main/java/com/github/muellerma/tabletoptools/utils/CharUtils.kt

"Add to count" slider missing from dice screen

Describe the bug
The "Add to count" slider, right below the "Number of dice" slider, is not showing up on the dice screen even though the code appears active in the project layout screen.

To Reproduce
Steps to reproduce the behavior:

  1. Open Project in Android Studio
  2. Click on 'Layout',then 'content_main'
  3. Observe both slider bars
  4. Build App, run in Emulator
  5. Observe only the single slider, "Number of dice: x"

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots

  1. Layout Editor in Android Studio:
    Screenshot 2022-10-12 203651

  2. Sreen from App (running in emulator)
    Screenshot 2022-10-12 204054

Device :

  • Pixel 5 (API 33)
  • Android 13

Dice Count Increment

I'd like to have a modifier to the rolled dice total, eg, 3d6 "+5"

Describe the solution you'd like
Add a slider below the dice count to select a value (0-10) to increment the final dice total

Additional context
common for RPG roles to have a modifier on the roll

Make timer configurable

Currently the timer is always set to 5 minutes, which is useful for some cases. However it would be more useful if the timer is configurable.

increased number of dice

Is your feature request related to a problem? Please describe.
I generally use a roller when rolling a large amount of dice, e.g 20d8 hit dice. And while it's not a big deal splitting a large roll into multiple, it's sub-optimal.

Describe the solution you'd like
Increase maximum number of rollable dice, I'd say 30 at the minimum. Maybe the scrollbar can have up to 30, and a input box for higher? Or maybe instead of a scrolling bar, a counter type, e.g buttons that go -10 -1 [number] +1 +10.

Drawer animation lacks smoothness

Describe the bug
While other places in the application have no issue, it seems like the drawer animation really lacks smoothness and appears laggy/with low fps. This can probably be improved.

To Reproduce
Steps to reproduce the behavior:

  1. Draw and undraw the drawer.

Expected behavior
The animation be smoother

Device (please complete the following information):

  • Device: Xperia XZ
  • Android version: Android Oreo (8.0)

Add a Counter function

I believe the tabletop community would benefit a lot from a sort of customizable counter. In TCG battle games like Magic or Flesh and Blood, there are many apps that offer a base insight.

The main Characteristics of such apps are:

  • The screen is shared by the players, who can increment or decrement their counters by clicking on the corresponding side of the number.

  • As the value changes, a tooltip appears over the count, showing the total change in the last 5 seconds. Changing the number resets the duration of the tooltip.

  • The numbers are rotated according to the view of the players (i.e: for two players, the topmost number is rotated upside-down so the opposing player can see it).

Extra functions that are useful but not commonly found:

  • For more players, the screen can be divided in more sections, such as 4 or 6, maybe up 8.

  • There can be a "master's counter" option, in which the numbers are not rotated according to each player's view.

I hope this description is precise enough and breaks down the aspects of this feature in a convenient way.

Add coin toss and/or customizable dice values

Is your feature request related to a problem? Please describe.
A coin toss is something that can oftentimes be useful in many games.
One could also consider that it's a "custom die" of value 2; it could be possible to be able to throw dices of customized value, and 2 would be an option.
This goes a little bit along issue #151

Basic example of usage: pick who's the first player to go.

Describe the solution you'd like
A coin option & dices of customizable values.

Describe alternatives you've considered
Use dices of higher value and divide the result for example. This is still less handy.

Timer: Play sound included in the app

Currently the timer plays the default ring tone when it expires. I'm not sure what happens when the phone is muted or the default ring tone isn't set.
The app should include a free (no cost and under free license) ring tone that is played when the timer expires and the phone should vibrate shortly.

[suggestion] custom D(x)

Some games have custom dice, for example in adaptus titanicus the reactorndice has a number of different symbols on each face, more problematic is the scatter dice where an arrow points a direction, depending on the heading of the dice that the face ends up in....

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • Update androidx_lifecycle_version to v2.8.4 (androidx.lifecycle:lifecycle-viewmodel-ktx, androidx.lifecycle:lifecycle-livedata-ktx)
  • Update dependency androidx.appcompat:appcompat to v1.7.0
  • Update dependency androidx.core:core-ktx to v1.13.1
  • Update dependency androidx.fragment:fragment-ktx to v1.8.2
  • Update dependency androidx.test.espresso:espresso-core to v3.6.1
  • Update dependency androidx.test.ext:junit to v1.2.1
  • Update dependency com.android.tools.build:gradle to v8.5.2
  • Update dependency com.google.android.material:material to v1.12.0
  • Update dependency gradle to v8.10
  • Update gradle/wrapper-validation-action action to v2.1.3
  • Update about_libraries_version to v11 (major) (com.mikepenz:aboutlibraries, com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin)
  • Update gradle/wrapper-validation-action action to v3
  • Update kotlin monorepo to v2 (major) (org.jetbrains.kotlin:kotlin-stdlib, org.jetbrains.kotlin:kotlin-gradle-plugin)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v4
  • actions/setup-java v4
  • gradle/wrapper-validation-action v2.0.0
.github/workflows/deploy-apk.yml
  • actions/checkout v4
  • actions/setup-java v4
  • gradle/wrapper-validation-action v2.0.0
  • r0adkll/sign-android-release v1.0.4
  • svenstaro/upload-release-action v2
gradle
gradle.properties
settings.gradle
build.gradle
  • com.android.tools.build:gradle 8.3.0
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin 10.10.0
  • org.jetbrains.kotlin:kotlin-stdlib 1.9.22
  • com.mikepenz:aboutlibraries 10.10.0
app/build.gradle
  • androidx.core:core-ktx 1.12.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.fragment:fragment-ktx 1.6.2
  • com.google.android.material:material 1.11.0
  • androidx.preference:preference-ktx 1.2.1
  • androidx.constraintlayout:constraintlayout 2.1.4
  • androidx.navigation:navigation-fragment-ktx 2.7.6
  • androidx.navigation:navigation-ui-ktx 2.7.6
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.6

  • Check this box to trigger a request for Renovate to run again on this repository

Action bar item to keep screen on

Currently the screen is kept on on the timer page. An item in the action bar would be useful that toggles "keep screen on".

On the timer page this setting should be locked and always turned on.

Translations

The app strings and the description for F-Droid could be translated to a few more languages. See "Translations" in the Readme for more information.

Allow multiple tools to be used simultaneously

Is your feature request related to a problem? Please describe.
Games often require more than one of these tools at the same time. For example, I downloaded this to use for Taboo (ended up not using due to the buzzer not buzzing), and in that game you need to be able to run a timer and, with that running, use the buzzer. This is currently possible by switching back and forth, but that's very cumbersome.

Describe the solution you'd like
Add ability to use multiple tools together. One possibility would be to run them in a sort of split-screen, another slightly less useful option, though still better than the current setup, would be to open them in tabs that can be quickly switched by either tapping the tab or swiping side to side. As mentioned, the timer and buzzer should be able to be used together, and probably the timer and dice as well. I can't think of when dice and buzzer or all three would need to be used together, but the ability should probably be there just in case if not too difficult.

Describe alternatives you've considered
Another possibility would be to allow the timer time to be set and the timer to be enabled, then have it show in the corner on the other screens (or at least the dice and buzzer screens) so it can be tapped to start/pause/reset it from those screens.

Additional context
N/A

Opening about crashes the app

Process: com.github.muellerma.tabletoptools.debug, PID: 13533
  java.lang.IllegalArgumentException: The fragment LibsSupportFragment{d464784} (9458c49e-5001-4143-923c-50ae05bd816a id=0x7f090162 tag=about) is unknown to the FragmentNavigator. Please use the navigate() function to add fragments to the FragmentNavigator managed FragmentManager.
  	at androidx.navigation.fragment.FragmentNavigator$onAttach$2.onBackStackChangeCommitted(FragmentNavigator.kt:199)
  	at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1918)
  	at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
  	at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
  	at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
  	at android.os.Handler.handleCallback(Handler.java:958)
  	at android.os.Handler.dispatchMessage(Handler.java:99)
  	at android.os.Looper.loopOnce(Looper.java:205)
  	at android.os.Looper.loop(Looper.java:294)
  	at android.app.ActivityThread.main(ActivityThread.java:8177)
  	at java.lang.reflect.Method.invoke(Native Method)
  	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
  	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

Add possibility of hit vs miss, and glitches

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
In some games like Shadowrun the player have to throw n die and then if any dice value is less than or equal to x (e.g 1) it will be considered as miss. Then if number of misses is more than hits, it will be a glitch

Describe alternatives you've considered
Don't have any idea at this point about alternative, sorry.

Additional context
-- not applicable --

Crash if showing lateral menu

Describe the bug
I can't see lateral menu, clicking on the hamburger menu makes the app crash'

To Reproduce
Steps to reproduce the behavior:

  1. Click on hamburger menu

Expected behavior
The menu appears.

Device (please complete the following information):

  • Device: Samsung Galaxy S7
  • Android version: 8.1

Sound for buzzer

Is your feature request related to a problem? Please describe.
I'm assuming this isn't a bug where there's supposed to be sound and I'm just not getting any, though it does seem odd that a "buzzer" would be made that doesn't buzz, but that's what's happening for me. All it does is vibrate.

Describe the solution you'd like
Make the buzzer play a buzzing sound, preferably with a variety of sounds that can be selected.

Describe alternatives you've considered
N/A

Additional context
N/A

Create named, complex dice rolls

Is your feature request related to a problem? Please describe.
When playing a game, it's unlikely I need to change the kinds of dice I'm rolling. I might roll 1d20+8 to hit and 2d6+1 for damage every time I want to attack, for example.

Also, sliders are inferior to typing in an equation like 3d6+4.

Describe the solution you'd like
A separate page to Dices (maybe actions?) where a persistent user-created list of actions is created. Each action is an equation like the above which you type in, which is parsed when you tap it to roll all the dice and print the output on the right of the action.

A super cool feature would be to have multiple rolls be part of a single dice roll, like 1d20+8, 2d6+1 would roll both equations. But I don't think that's necessary for this to be better than the current thing this app offers.

This is a great way to roll those d69s too without having to add an explicit button for every weird thing a person wants.

Describe alternatives you've considered
At the bottom of the dices screen a single textbox which accepts an equation (like 5d7 - 1d8 + 4) which isn't persistent but will be rolled when you press it.

Additional context
A pretty simple math parser is here: https://stackoverflow.com/questions/3422673/how-to-evaluate-a-math-expression-given-in-string-form/26227947#26227947I

You could make d an operator with highest precedence. That would even allow (3d6)d8 which would be neat.

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.