Archipelago/worlds
Aaron Wagener 7193182294
Core: move option results to the World class instead of MultiWorld (#993)
🤞 

* map option objects to a `World.options` dict

* convert RoR2 to options dict system for testing

* add temp behavior for lttp with notes

* copy/paste bad

* convert `set_default_common_options` to a namespace property

* reorganize test call order

* have fill_restrictive use the new options system

* update world api

* update soe tests

* fix world api

* core: auto initialize a dataclass on the World class with the option results

* core: auto initialize a dataclass on the World class with the option results: small tying improvement

* add `as_dict` method to the options dataclass

* fix namespace issues with tests

* have current option updates use `.value` instead of changing the option

* update ror2 to use the new options system again

* revert the junk pool dict since it's cased differently

* fix begin_with_loop typo

* write new and old options to spoiler

* change factorio option behavior back

* fix comparisons

* move common and per_game_common options to new system

* core: automatically create missing options_dataclass from legacy option_definitions

* remove spoiler special casing and add back the Factorio option changing but in new system

* give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly

* reimplement `inspect.get_annotations`

* move option info generation for webhost to new system

* need to include Common and PerGame common since __annotations__ doesn't include super

* use get_type_hints for the options dictionary

* typing.get_type_hints returns the bases too.

* forgot to sweep through generate

* sweep through all the tests

* swap to a metaclass property

* move remaining usages from get_type_hints to metaclass property

* move remaining usages from __annotations__ to metaclass property

* move remaining usages from legacy dictionaries to metaclass property

* remove legacy dictionaries

* cache the metaclass property

* clarify inheritance in world api

* move the messenger to new options system

* add an assert for my dumb

* update the doc

* rename o to options

* missed a spot

* update new messenger options

* comment spacing

Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>

* fix tests

* fix missing import

* make the documentation definition more accurate

* use options system for loc creation

* type cast MessengerWorld

* fix typo and use quotes for cast

* LTTP: set random seed in tests

* ArchipIdle: remove change here as it's default on AutoWorld

* Stardew: Need to set state because `set_default_common_options` used to

* The Messenger: update shop rando and helpers to new system; optimize imports

* Add a kwarg to `as_dict` to do the casing for you

* RoR2: use new kwarg for less code

* RoR2: revert some accidental reverts

* The Messenger: remove an unnecessary variable

* remove TypeVar that isn't used

* CommonOptions not abstract

* Docs: fix mistake in options api.md

Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>

* create options for item link worlds

* revert accidental doc removals

* Item Links: set default options on group

* change Zillion to new options dataclass

* remove unused parameter to function

* use TypeGuard for Literal narrowing

* move dlc quest to new api

* move overcooked 2 to new api

* fixed some missed code in oc2

* - Tried to be compliant with 993 (WIP?)

* - I think it all works now

* - Removed last trace of me touching core

* typo

* It now passes all tests!

* Improve options, fix all issues I hope

* - Fixed init options

* dlcquest: fix bad imports

* missed a file

* - Reduce code duplication

* add as_dict documentation

* - Use .items(), get option name more directly, fix slot data content

* - Remove generic options from the slot data

* improve slot data documentation

* remove `CommonOptions.get_value` (#21)

* better slot data description

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>

---------

Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@yahoo.com>
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
Co-authored-by: Alex Gilbert <alexgilbert@yahoo.com>
2023-10-10 22:30:20 +02:00
..
_bizhawk BizHawkClient: Add BizHawkClient (#1978) 2023-10-03 02:44:19 +02:00
_sc2common SC2 WoL - Mod, Item and Location update (#2113) 2023-09-15 02:22:10 +02:00
adventure Core: Add settings API ("auto settings") for host.yaml (#1871) 2023-07-05 22:39:35 +02:00
alttp Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
archipidle Add New Translation for Adventure and Archipidle in french (#1749) 2023-05-01 02:03:31 +02:00
bk_sudoku Deprecate `data_version` and introduce `checksum` for DataPackages. (#684) 2023-03-20 17:01:08 +01:00
blasphemous Blasphemous: Fix rules for platforming room in BotSS (#2231) 2023-09-30 21:03:55 +02:00
bumpstik bumpstik: update docs (#2198) 2023-09-23 00:54:21 -04:00
checksfinder checksfinder: create items in `create_items` (#2056) 2023-10-07 16:44:01 +02:00
clique Clique: Refactors and Additional Features supported by v1.5 (#1989) 2023-07-19 17:16:03 -05:00
dark_souls_3 DS3: Add cinders item group (#2226) 2023-09-30 12:32:44 +02:00
dkc3 Docs: DKC3, Lufia2AC, SM, SMW, SMZ3: Updating documentation with the current location of SNI Connector.lua (#2203) 2023-09-23 00:40:47 -04:00
dlcquest Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
doom_1993 DOOM 1993: Logic fixes 2023-09-26 01:08:56 +02:00
factorio Docs: Categorize Commands in Guide (#2213) 2023-10-04 16:52:34 -04:00
ff1 Docs: Categorize Commands in Guide (#2213) 2023-10-04 16:52:34 -04:00
generic Docs: Categorize Commands in Guide (#2213) 2023-10-04 16:52:34 -04:00
hk Hollow Knight: Update outdated setup documentation (#2171) 2023-09-14 23:57:36 +02:00
hylics2 Hylics 2: Add more missing locations (#2219) 2023-09-24 08:08:40 +02:00
kh2 Docs: Small typo and proofreading edits (#2078) 2023-09-10 03:30:03 +02:00
ladx LADX: Set display names in options (#2229) 2023-10-07 18:36:22 +02:00
lufia2ac Docs: DKC3, Lufia2AC, SM, SMW, SMZ3: Updating documentation with the current location of SNI Connector.lua (#2203) 2023-09-23 00:40:47 -04:00
meritous core: rip out RegionType and rework Region class (#814) 2023-02-14 01:06:43 +01:00
messenger Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
minecraft Tests: Add a test for fill to WorldTestBase (#2049) 2023-10-08 12:08:47 +02:00
mmbn3 MMBN3: Fixes crash when checking certain locations (#2003) 2023-07-21 12:00:44 -05:00
musedash Muse Dash: Add mentions to Muse Plus to Docs and Options. (#2179) 2023-09-25 22:21:09 -04:00
noita Noita: Implement Extra Orbs, Shop Price Reduction, and some slight region tweaks (#1972) 2023-07-18 21:51:01 -05:00
oot Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
overcooked2 Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
pokemon_rb Docs: Pokemon RB Spanish Setup Guide: fixed a bunch of punctuation/grammar and fixed bold format in Configuring Bizhawk section (#2228) 2023-10-07 15:13:17 +02:00
raft Raft: Fix test_collect_remove (#2109) 2023-09-15 09:30:46 +02:00
rogue_legacy core: rip out RegionType and rework Region class (#814) 2023-02-14 01:06:43 +01:00
ror2 Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
sa2b SA2B: Fix generate_filler_item_name (#2074) 2023-08-01 08:15:28 +02:00
sc2wol SC2 Client: Fix processing metadata from Github Releases for `/download_data` 2023-09-22 21:27:46 +02:00
sm Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
sm64ex Docs, SM64, SC2: Minor Documentation Updates (#2008) 2023-09-10 03:51:12 +02:00
smw Docs: DKC3, Lufia2AC, SM, SMW, SMZ3: Updating documentation with the current location of SNI Connector.lua (#2203) 2023-09-23 00:40:47 -04:00
smz3 SMZ3: 0.4.2 non local items fix (#2212) 2023-09-30 21:05:07 +02:00
soe Core: Add settings API ("auto settings") for host.yaml (#1871) 2023-07-05 22:39:35 +02:00
spire StS: Update location table and move item creation to `create_items` from `generate_basic`. (#1938) 2023-07-22 00:51:13 -05:00
stardew_valley Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
subnautica Subnautica: Update en_Subnautica.md (#2207) 2023-09-22 23:08:27 +02:00
terraria Terraria: remove unused data 2023-09-25 23:35:55 +02:00
timespinner Timespinner: Options.py Typo (#2154) 2023-09-07 22:23:42 +02:00
tloz [TLOZ] Fix filepath error for base patch 2023-08-11 10:54:42 +02:00
undertale Docs: Clarify Documentation Information for Undertale, Terraria, DOOM 1993 (#2149) 2023-09-22 20:45:52 -04:00
v6 sm64ex,v6: Use create_items for itempool modification (#1674) 2023-04-07 19:03:28 -05:00
wargroove Wargroove (#1982) 2023-07-19 01:59:41 +02:00
witness The Witness: Fix Itemlinks 2023-09-24 02:04:27 +02:00
zillion Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
AutoSNIClient.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
AutoWorld.py Core: move option results to the World class instead of MultiWorld (#993) 2023-10-10 22:30:20 +02:00
Files.py [Pokemon Red and Blue] Initial implementation (#1016) 2022-10-13 07:45:52 +02:00
LauncherComponents.py BizHawkClient: Add BizHawkClient (#1978) 2023-10-03 02:44:19 +02:00
__init__.py Core: refactor some loading mechanisms (#1753) 2023-06-20 01:01:18 +02:00