derikb / character-sheet-app Goto Github PK
View Code? Open in Web Editor NEWA responsive, online/offline web app to act as a character sheet for 5e D&D and other RPGs.
License: GNU General Public License v3.0
A responsive, online/offline web app to act as a character sheet for 5e D&D and other RPGs.
License: GNU General Public License v3.0
Whenever the data is changed add some kind of "unsaved changes" alert that goes away when "save" is clicked.
It needs to be somewhere noticeable but not such that it is too intrusive.
Make one.
Seems unnecessary to have ALL the spell fields there all the time. Perhaps tie the spell lists to the spell slot, so if you have greater than 0 in the spell slot then the spell list field shows.
Especially for the contenteditables so they don't end up looking empty but having a space or
tag in them (And thus not being css ":empty")
That way we can show spell lists based on the max spell slot input, but also allow for tracking current for how many you have left to use for the day.
Oh, it looks ugly up there.
Might be useful at some point.
Add a prefix to them to make them easier to call up in case there are other things in the storage for that location/site.
Might be too big for the email option, downloading a file of all characters and restoring one should be easy enough.
Each spell can be an LI element. Some kind of key events to add new fields as you go.
It is slightly possible one could end up with two different characters with the same random key. That should be addressed.
Harder so, if you have made characters and then are restoring one from a backup...
Wondering if character name is a better way to keep characters unique?
Sometimes the breakpoints seem a little off. This is particularly noticeable at inbetween sizes like when viewing on the iPad in split screen mode.
That attr/save/skill/other row is perhaps a little much when you start getting smaller than desktop size.
It should always (and for all characters) be tied to level, so there's no need to manually adjust.
They need a little left margin.
I code the HelpDialog separate but that seems unnecessary. If I combine them all I can also add a shortcut key to use esc
to close modals/dialogs.
For some of the defaults they will always get changed so it is more trouble to delete them and put in new data. Better to perhaps use a placeholder like on the name field.
The Storage prefix was hard coded into the Manager module, it should be passed in as a setting.
They need some line-height set on them.
Since iOS doesnt support Service Workers, see if we can use AppCache ONLY for iOS (i.e. fallback to it where service workers don't work).
With modern browser only support I can use JS classes now. Also break up the js into more, smaller modules.
Adventure Notes. Campaign Notes.
Its absolute instead of fixed so it disappears at the bottom of the screen.
The conversion from the contenteditable dive to JSON to emails/files and back to the restore function can be problematic. Especially if the email version is getting autoformatted in some ways by the email client (Seems to have happen with macmail on iOS.
Perhaps linebreaks should be converted on save to html.
Whoops, in adding the key prefix and trying to be backwards compatible I broke access to the characters...
Rather than handling the JSON in every different place where I set/get data from Storage, it'd be simpler to just have Storage do all that in the get/set methods.
See what I can hook into to prompt users when the service worker updated and the page should be reloaded.
Add some kind of keyboard command to save. (Or... alternately... add an auto-save option?)
Something for name, and desription/notes.
Make it a list you can keep adding entries to so each contact is 1 item.
Also add similar for factions.
And make the adventure/campaign notes into lists/arrays.
That should help with how long things can get.
We could draw on an existing repo of spell data to offer some kind of spell picker and info pop up.
Might be tough for anything beyond the basic rule stuff as the rest may not be available to use.
Maybe just spell name autocomplete based on class/level.
Just a few for failure/successes.
Since modern browsers can now handle arrow functions, modules, etc., I should be able to remove the now outdated version of babel and browserify and just use native scripting.
To get to parts of the screen without having to manually scroll.
Top, attributes, skilles, attacks, spells, etc.
Maybe a anchored nav bar?
Maybe keyboard shortcuts?
There's more in there I'm not using that I could remove to reduce file size.
I think I can use the Dropbox Saver and Chooser for easy backup integration
Saver: Will just need to make a section file that returns the character JSON.
https://www.dropbox.com/developers/saver
Another property on imported data we can check to make sure the data is from the app.
I think I can use grid to make the layout fill in better and be more flexible.
Its ok on narrow phones, but on wider screens its a very small target (the links).
Can't get the sed command to work the same in both Linux and Mac. Need an alternative.
Favicons, icons, loading from desktop or phone home screens. Try to get all that working right.
Some stuff at https://www.smashingmagazine.com/2016/09/the-building-blocks-of-progressive-web-apps/
Icons perhaps via http://realfavicongenerator.net/
Offer to load a character after the "Restore backup" function is used. Perhaps just a success dialog that offers a link to load/show the character.
Break apart the non rules specific stuff so we could reuse it in an app for non 5e characters (lotfp/ll/s&w).
The Storage and Manager objects could probably be modularized and imported with some adjustments for handling specific cases.
Some of the UI event handlers could be modularized too perhaps.
Leaving the character model and the specific rules-based events (like updating attribute/save mods and such).
Could do some of the classic shield for armor class, etc.
You at least gotta set a name to save the character.
It's annoying to copy just the data part from an email (especially on a touch device) so just strip out everything before the first "{" and everything after the last "}".
If the subject is the same, gmail at least is threading them and then treating the subsequent messages as quoted versions of the first one which really messes things up.
I think a timestamp in the subject line will break that up.
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.