* Fix webhost argparse with extra args
* accidentally added line
* WebHost: fix some typing
B64 url conversion is used in test/hosting,
so it felt appropriate to include this here.
* Test: Hosting: also test autogen
* Test: Hosting: simplify stop_* and leave a note about Windows compat
* Test: Hosting: fix formatting error
* Test: Hosting: add limitted Windows support
There are actually some differences with MP on Windows
that make it impossible to run this in CI.
---------
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
From Discord:
Well, flask-compress updated and now our 3.11 CI is failing
Why? They switched to a lib called backports.zstd
And 3.11 pkg_resources can't handle that.
pip finds it. But in our ModuleUpdate.py, we first pkg_resources.require packages, and this fails. I can't reproduce this locally yet, but in CI, it seems like even though backports.zstd is installed, it still fails on it and prompts installing it over and over in every unit test
Now what do we do :KEKW:
Black Sliver suggested pinning flask-compress for 3.11
But I would just like to point out that this means we can't unpin it until we drop 3.11
the real thing is we probably need to move away from pkg_resources? lol
since it's been deprecated literally since the oldest version we support
* WebHost: reset Generator proc title on error
* WebHost: fix shutting down autogen
This is still not perfect but solves some of the issues.
* WebHost: properly propagate JOB_TIME
* WebHost: handle autogen shutdown
* core: Add host.yaml setting to make !countdown configurable
* Store /option changes to countdown_mode in save file
* Wording changes in host.yaml
* Use .get
* Fix validation for /option command
* Improve user friendliness of generation failure webpage.
* Add details to other render for seedError.html.
* Refactor css to avoid !important tags.
* Update WebHostLib/static/styles/themes/ocean-island.css
Co-authored-by: qwint <qwint.42@gmail.com>
* Update WebHostLib/generate.py
Co-authored-by: qwint <qwint.42@gmail.com>
* use f words
* small refactor
* Update WebHostLib/generate.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Fix whitespace.
* Update one new use of seedError template for pickling errors.
---------
Co-authored-by: qwint <qwint.42@gmail.com>
Feature highlights:
- Adds many content to the SC2 game
- Allows custom mission order
- Adds race-swapped missions for build missions (except Epilogue and NCO)
- Allows War Council Nerfs (Protoss units can get pre - War Council State, alternative units get another custom nerf to match the power level of base units)
- Revamps Predator's upgrade tree (never was considered strategically important)
- Adds some units and upgrades
- Locked and excluded items can specify quantity
- Key mode (if opt-in, missions require keys to be unlocked on top of their regular regular requirements
- Victory caches - Victory locations can grant multiple items to the multiworld instead of one
- The generator is more resilient for generator failures as it validates logic for item excludes
- Fixes the following issues:
- https://github.com/ArchipelagoMW/Archipelago/issues/3531
- https://github.com/ArchipelagoMW/Archipelago/issues/3548
* Ensure that OptionSets and OptionLists get exported to yaml, even if nothing is selected
* forgot ItemSet and LocationSet
* Make it even less likely for there to be overlap
* Core: fix freeze support for py3.13+
Loading Utils now patches multiprocessing.freeze_support()
Utils.freeze_support() is now deprecated
* WebHost: use pony fork on py3.13
* CI: test with py3.13
* update the id formatter to use staticmethods to not fake the unused self arg, and then use the formatter for the user session endpoints
* missed an id (ty treble)
* clean up duplicate code
* Update WebHostLib/__init__.py
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>
* keep the BaseConverter format
* lol, change all the instances
* revert this
---------
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>
Gives WebHost the ability to verify that a patch file is an APPlayerContainer (defined by #4331 as a APContainer containing the "player" field), and allowed it to display any patch file that it can verify is an APPlayerContainer.
* CounterOption
* bring back the negative exception for ItemDict
* Backwards compatibility
* ruff on witness
* fix in calls
* move the contains
* comment
* comment
* Add option min and max values for CounterOption
* Use min 0 for TrapWeights
* This is safe now
* ruff
* This fits on one line again now
* OptionCounter
* Update Options.py
* Couple more typing things
* Update Options.py
* Make StartInventory work again, also make LocationCounter theoretically work
* Docs
* more forceful wording
* forced line break
* Fix unit test (that wasn't breaking?)
* Add trapweights to witness option presets to 'prove' that the unit test passes
* Make it so you can order stuff
* Update macros.html