Overall goals:
- Keep the built site small, < 1mb
- No bitmap images if possible, sprite-sheet style if they are necessary, lossy limited palette (transparent mono-color webp)
- internationalize: npm i i18next ?
- ensure release script can do base-url changing
- extract common subset out of RoleDisplay and Toast
- theme variations for each role - tan interface for Warrior, amber terminal text for Courier
- improve flat menu look
- Improve paper background (has issues with resizing?)
- Include VB sprites?
- Create an intro anim
- Build an svg for 'screen' dialogs
- embed stylistically similar music
- warn when navigating away from a non-blank character or consider autosaving to local cache - latest non-blank character for each role should be stored
- get browser testing functioning, build a test to verify character linking
- Make the first event: create character
- Add level up button
- Build an event sourced / cqrs store, keeping track of the character development as a log instead of just mangling an object
- bit-pack the log format to attempt to keep builds linkable
- Build post-creation (level up) interface
- Build basic, text based, item chooser
- Build perk chooser
- automatically store characters in local storage
- suppress sound until first click in document (iframe noises are annoying)
- run all non-triggered derived stats after reset
- add cascading override to help entry structure
- Figure out UI to change between planners and about pages / whatever else is added in (escape menu?)
-
embed this todo into the released site - Release source when the planner is in a "better than nothing" state and some collaboration guidelines are in place
-
redirect to '/' when images are not yet generated? - no - add share menu, move link management / embedding to share menu
- detect when embedded and reduce graphical fidelity / freeze input - performance seems good enough to leave graphical fidelity where it is, unless there are complaints
- add embed router for simplified embeds
- write save/load integrity tests for each role type
- Extract push button and make it resizable
- Figure out a way to show currently hidden derived stats
- consider file-save progressive enhancement - bad idea, interface does not lend itself to file-handle workflow
- ensure min / max age come from the model
- implement courier logic
- implement lone wanderer logic
- animate landing page animation
- build landing page
- put a visual indicator of route changes (animated)
- add automatic hash-state update to url
- debug role chooser
- add in Vault Dweller stat / trait / skill calculation
- use setters to precalculate derived stats / prevent mis-rendered data
- debug special/trait issues
- add multi-game support to help system
- debug role chooser
- update https://discord.com/channels/457912077277855764/1143773994844180541 if you can figure out instance references
- fix linking to character
- Consider a real responsive design
- Add an about page
- fix anchor for modal editors
- Escape should bring up options menu when nothing is already open
- Escape should leave a modal if it has a clean way to leave
- add a better confirm dialog
- add a modal stack manager (sort of, added an event to solve the issue)
- Restore done button with toast to let user know nothing implemented
- "Level button" style toast should appear with some info
- Save / load should be merged into options menu
- Add difficulty selector
- Match tag / trait buttons better (push state)
- Build filter to add random blotchy color variation
- Build filter to add embossed grooves into the background
- come up with a better solution for managing character points
- flesh out remaining derived stats
- consider replacing anim lib with css tweening - big win, saved ~70k on build (down from 412k to 344k)
- Figure out a way for end users to preserve their character creations
- Improve look of sex setter buttons
- Improve logo
- re-scale UI to 640x480 style dimensions
- Cache full-screen filter image and rebuild/re-cache when page is resized
- improve shadows and highlights (check modals)
- make validation errors propagate reactively
- fix paper corruption on zoom (seems to only happen in dev)
- fix reflow
- see what can be converted to value binding
- use types to enforce help entries, try Pick & some equality library
- fix modals, flanges, char-points height?
- re-format to 640x480 style
- replace svelte spring with gsap or some high-quality animation library that doesn't stutter
- fix osd keyboard
- Fix modal anchoring when zooming in
- add scroll in to view for modal anchoring
- Fix grain scaling
- Refactor
/chosen-one
route into components for each section - play UI sounds
- figure out how to (nope) apply shaders to whole screen, so that we can abandon svg filters (and bring FF back in to the fold) or (yep) improve svg filter performance
- debug service worker quirks
- Figure out what is going on with worn-text cache and hard refresh
- Factor screen effect into a component
- Check inline TODOs
- Add inert / other a11y features (mini dialogs need attention, use portals and body/document listeners)
- Make background grain as large as the document
- Figure out a way to adjust overlays on resize but not on zoom
- Redirect from base route to
/chosen-one
on temporary basis - Refactor scss, maybe consider alternative tech with better minification
- Figure out more modern way to convey invalid choices (bonk animation/noise for spinners, for example)
- Try to figure out why worn-text image doesn't render sometimes
- reconsider screen orientation locking
- Add age setter
- Add sex setter
- Add name setter
- Set up pre-commit hooks
- Add 'help' info
- De-wrap the main panel
- speed up full screen filter and restore look to FF
- speed up image generator and put in data URL fallback