* add freetext and freetextchoice options
* fix textchoice. create plando_bosses bool so worlds can check if boss plando is enabled
* remove strange unneccessary \ escapes
* lttp: rip boss plando out of core
* fix broken text methods so they read the data correctly
* revert `None` key in boss_shuffle_options. fix failing tests
* lttp: rewrite boss plando
* lttp: rewrite boss shuffle
* add generic verification step and allow options to set a plando module
* add default typing to plando_options set
* use PlandoSettings intflag for lttp boss plando
* fix plandosettings boss flag check
* minor lttp init cleanup
* make suggested changes. account for "random" existing within plando boss options
* override eq operator
* Please document me!
* Forgot to mention it supports plando
* remove auto_display_name
* Throw warning alerting user to which shuffle is being used if plando is off. Set the remaining boss shuffle in init and boss placement cleanup
* move the convoluted string matching to `from_text`
* remove unneccessary text lowering and actually turn off plando option when it's disabled
* typing
* strong typing for verify method and reorder
* typing is your friend
* log warning correctly
* 3.8 support :(
* also list apparently
* rip out old boss shuffle spoiler code
* verification step for plando bosses and locations
* update plando guide to reference new supported behavior
* empty string is not `None`. remove unneccessary error throw
* Fix bad ordering
* validate boss_shuffle only contains a normal boss option at the end
* get random choice from a list dummy
* >:(
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* minor textchoice cleanup
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* LttPAdjuster: ignore invalid sprite files
* LttPAdjuster: ignore .gitignore in sprites
* LttPAdjuster: log and show message for invalid sprites
* Alttp: set sprite.valid to False for bad zspr and apsprite ...
... when throwing exceptions
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Player tracker: implement a stylized tracker (#447)
* Move generic tracker to a WebWorld method
* render both a generic tracker at generic_tracker and the specific tracker at /tracker
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: change method calls
* Move generic tracker to a WebWorld method
* render both a generic tracker at generic_tracker and the specific tracker at /tracker
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: change method calls
* Move generic tracker to a WebWorld method
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: switch item, icon and location tables to flex views. Some styling based on theme
* Player Tracker: Finish building html template for all blocks. Set groundwork for theme styling
* Player Tracker: Implement tracker class. Document tracker usage.
* Player Tracker: Add button to switch between trackers. Some styling for styled tracker.
* Player Tracker: reword some text. Attempt to fix page refreshing.
* Player Tracker: reremove the TODOs that got merged back in accidentally.
* player tracker: move render_template import to webworld so it isn't required outside of webhost
* Player Tracker: code cleanup, typing. Add inventory with names to PlayerTracker class in case custom trackers want to use it to change their prog_items attribute.
* Player Tracker: delete a line I forgot about. Add typing to theme.
* Player Tracker: Generate checks_done automatically so worlds don't have to do it
* Player Tracker: Add typing to PlayerTracker class in webworld method. Update documentation
* Player Tracker: code cleanup
* Player Tracker: Sort of implement fetch (works but could be better). Make playerTracker.html more readable.
* specific trackers: significant html cleanup. DOM Endpoint auto updating page every 30 seconds
* Changes by Kono
* specific trackers: cache and only load the data once every minute
* specific tracker: allow for one icon placement to be used for multiple items.
* Player tracker fixes/updates (#635)
* Move generic tracker to a WebWorld method
* render both a generic tracker at generic_tracker and the specific tracker at /tracker
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: change method calls
* Move generic tracker to a WebWorld method
* render both a generic tracker at generic_tracker and the specific tracker at /tracker
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: change method calls
* Move generic tracker to a WebWorld method
* create a base template for generic specific tracker and instantiate some information before callng it
* some baseline for the playerTracker.html. update information fed from tracker.py
* playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon.
* player tracker: starting work on regions table
* player tracker: switch item, icon and location tables to flex views. Some styling based on theme
* Player Tracker: Finish building html template for all blocks. Set groundwork for theme styling
* Player Tracker: Implement tracker class. Document tracker usage.
* Player Tracker: Add button to switch between trackers. Some styling for styled tracker.
* Player Tracker: reword some text. Attempt to fix page refreshing.
* Player Tracker: reremove the TODOs that got merged back in accidentally.
* player tracker: move render_template import to webworld so it isn't required outside of webhost
* Player Tracker: code cleanup, typing. Add inventory with names to PlayerTracker class in case custom trackers want to use it to change their prog_items attribute.
* Player Tracker: delete a line I forgot about. Add typing to theme.
* Player Tracker: Generate checks_done automatically so worlds don't have to do it
* Player Tracker: Add typing to PlayerTracker class in webworld method. Update documentation
* Player Tracker: code cleanup
* Player Tracker: Sort of implement fetch (works but could be better). Make playerTracker.html more readable.
* specific trackers: significant html cleanup. DOM Endpoint auto updating page every 30 seconds
* Changes by Kono
* specific trackers: cache and only load the data once every minute
* specific tracker: allow for one icon placement to be used for multiple items.
* lttp: move tracker to new format. will need more modification to generic solution to handle region keys tracking. likely a new html template that inherits the current
* lttp: fix broken icons rendering, add in progressive mail that i forgor. reorder some icons
* tracker: fix non edited trackers being broken from changes.
* tracker: move theme application before modify method so trackers can use a different theme than the world if desired.
* tracker: starting work on key tracking.
* tracker: styling and cleanup by Farrak
* tracker: styling and cleanup by Farrak
* tracker: styling and cleanup of playerTracker.html
* Revert playerTracker.html
* trackers: rename some files for clarity. move trackers into their own subdirectory
* small tracker.py cleanup
* move minecraft tracker to new system
* add item link attributing from upstream
* change getPlayerTracker to get_player_tracker. refactor broken linkings
* refactor styling files to trackers folders
* fix broken image in minecraft tracker. move oot tracker to new system
* clean up my oot nightmare
* rename lttpKeysTracker to zeldaKeysTracker. Move oot to keys tracker
* implement zeldaKeysTracker.js. fix table locations hiding/showing
* LttP: ensure non-native items are rendered as star in Shops
* LttP: ensure non-native items are rendered as star in Shops - fix missing player number lookup
`AutoWorld.World`s can set required_server_version and required_client_version properties. Drop `get_required_client_version()`.
`MultiServer` will set an absolute minimum client version based on its capability (protocol level).
`IgnoreVersion` tag is replaced by using `Tracker` or `TextOnly` with empty or null `game`.
Ignoring game will also ignore game's required_client_version (and fall back to server capability).