Skip to content

Releases: RotatingLlama/dnd-gadget-app

Gadget v0.3

01 Nov 15:24

Choose a tag to compare

Gadget v0.3

Gameplay Changes & Bugfixes

  • Hit dice:
    • Now reset correctly on long rest
    • Are now spendable on short rest, as well as being individually settable
  • Fixed needle going to wrong place after long rest with temp hp
  • Fixed needle moving wrong way on damage

Visible Changes

  • Moved all character data to external SD card
    • Unplugging the SD card resets the system (replug will reload the char select menu)
    • Character 'name' and 'title' are now used, instead of 'title' and 'subtitle'
  • Significantly improved rotary dial responsiveness (hw.py switched to hard interrupts)
  • Improved Play Screen layout and added background image support (background.2ink)
  • Added brightness control for matrix
  • Charges can now be reset by long rest AND short rest. Separate with a comma in stats.txt, eg. charge_reset:2=lr,sr
  • Added battery monitor
    • Needle now wobbles when battery is low and not charging.
    • New low-battery graphic will display in place of character head.
  • Added natty loading and poweroff animations
  • At poweroff:
    • Eink progress is now indicated by moving needle.
    • Oled powers off properly, instead of remaining on after program halt.

Invisible Changes

  • Renamed UI to HAL
    • ui.py is now hal.py
    • UI() is now HAL()
    • Classes now have a ref to hal instead of to ui
  • hal.py:
    • Added more granular way of locking hardware features using ClientRegistrations (CRs) with hal.register() and unregister()
    • Added hal.needle object and wobble() method
  • Characters are now verified before showing up on char select screen. Everything on that screen has now already been loaded correctly.
  • hw.py
    • Replaced running average battery monitor used by voltage_stable() with hysteresis to better eliminate noise
    • Made _isr_rot() be Viper
  • character.py
    • Added timeout before save, to allow multiple changes to aggregrate together
    • Removed show_all_hp()
  • menu.py
    • Menus now rely on new CR feature from hal.py, replacing previous parent/child system
    • Combined both matrix menus into one unified menu
    • Added 'prompt' option to SimpleAdjuster, so prompt can be different from name in menu
    • Added absolute adjuster callback to SimpleAdjuster, to complement existing relative one
  • common.py
    • Moved menu.py's timeout_watcher into the new DeferredTask class, for wider use