Archipelago/worlds
Kappatechy 3602ed45a4
Bumper Stickers: logic fixes for "off-by-one" errors (#2855)
* Corrected logic error.

Per discussion here: https://discord.com/channels/731205301247803413/1148330200891932742/1192138309120577646

At the moment, the logic expects Treasure Bumper 2 to require 1 bumper, Treasure Bumper 3 to require 2, etc., and for Treasure Bumper 1 to be in Sphere 1. This is incorrect, each Bumper check should require 1 Bumper item of it's type.

This corrects that. I've verified I was able to generate with it by editing my apworld locally, but I'm also not a programmer and don't know anything about tests. However, I'd think this is a simple change.

* Correct logic in Bumper Sticker unit tests

Off By One errors were rampant in the Bumper Stickers unit test logic. This should correct those errors.

* Correct use of "range" function

The function setting the access rules for Treasure and Booster Bumpers was stopping one short of being applied to all the related locations. This has been corrected.

* Restoring and clarifying designer's original level access intent

The original creator of the AP version of Bumper Stickers intentionally set the Treasure Bumper requirements to logically reach each level 1 higher than the actual game requires, and logic tests were built based on this. This design decision has now been restored.

* Revert "Restoring and clarifying designer's original level access intent"

This reverts commit 5186c5fcc3229a60569cdb96d774d4ccac721a06.

* Correct test logic for level 5

While 33 Treasure Bumpers are generated, only 32 are needed to reach level 5. This push corrects the unit test for the level 5 checks.

* Rename generically-named variables

Change variables from generic names (x, y, n) to more meaningful names, for ease of readability.

---------

Co-authored-by: The T <thet113@gmail.com>
2024-03-10 15:36:42 +01:00
..
_bizhawk BizHawkClient: Add README (#2689) 2024-03-05 09:48:37 -06:00
_sc2common SC2 WoL - Mod, Item and Location update (#2113) 2023-09-15 02:22:10 +02:00
adventure Adventure: Fix iterable copy error when freeincarnate_max is tuned low (#2774) 2024-01-29 18:37:55 +01:00
alttp ALTTP: Fix NotImplemented error when using non-`none` values for `timer`. (#2924) 2024-03-10 01:56:57 -06:00
archipidle Core: make state.prog_items a `Dict[int, Counter[str]]` (#2407) 2023-11-02 06:41:20 +01:00
bk_sudoku Worlds Docs: Translations German (Clique, BK Sudoku, OoT) (#2581) 2024-01-16 06:54:48 +01:00
blasphemous Blasphemous: Remove poptracker pack from setup guide (#2759) 2024-02-29 02:56:20 +01:00
bumpstik Bumper Stickers: logic fixes for "off-by-one" errors (#2855) 2024-03-10 15:36:42 +01:00
celeste64 Celeste 64: Implement New Game (#2798) 2024-03-05 17:55:56 -06:00
checksfinder Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
clique Worlds Docs: Translations German (Clique, BK Sudoku, OoT) (#2581) 2024-01-16 06:54:48 +01:00
dark_souls_3 DS3: Modified theme and warning color for accessibility (#2312) 2024-02-29 01:26:52 +01:00
dkc3 SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
dlcquest Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
doom_1993 DOOM 1993: Added various new options (#2067) 2023-11-25 08:43:14 -06:00
doom_ii DOOM II: implement new game (#2255) 2023-11-24 18:08:02 +01:00
factorio Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
ff1 FF1: Update Location Names (#2838) 2024-03-03 06:43:45 +01:00
ffmq FFMQ: Remove debug print statements (#2882) 2024-03-03 06:31:22 +01:00
generic Kirby's Dream Land 3: Implement New Game (#2119) 2024-03-05 09:59:55 -06:00
heretic Heretic: implement new game (#2256) 2023-11-25 15:22:30 +01:00
hk Hollow Knight: Fix fragile/unbreakable charm variants counting as 2 distinct charms in logic (#2683) 2024-01-11 23:10:25 +01:00
hylics2 Hylics 2: Add missing logic (#2638) 2023-12-28 06:25:41 +01:00
kdl3 KDL3: Post-PR adjustments (#2917) 2024-03-08 07:46:14 +01:00
kh2 KH2: Fix Final Form logic softlock (#2803) 2024-02-11 00:50:38 +01:00
ladx LADX: shuffle instruments (#2804) 2024-03-10 14:48:00 +01:00
landstalker Docs: Fix broken link in Landstalker setup Guide (#2680) 2024-01-12 00:18:11 +01:00
lingo Lingo: Add a third location to Starting Room (#2839) 2024-03-03 08:20:37 +01:00
lufia2ac SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
meritous Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
messenger Options: add a DeathLinkMixin dataclass to easily standardize death_link (#2355) 2024-03-03 14:11:44 +01:00
minecraft Docs: Fix typos in Minecraft info page (#2686) 2024-03-10 13:50:25 +01:00
mmbn3 Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
musedash Muse Dash: Add Muse Dash 4.1.0 songs (#2878) 2024-03-05 09:33:15 +01:00
noita Noita: Update to use new Options API (#2370) 2024-01-19 21:31:45 +01:00
oot Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
overcooked2 Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
pokemon_emerald Pokemon Emerald: Add exhaustive list of ROM changes (#2801) 2024-02-29 20:42:13 +01:00
pokemon_rb Pokemon R/B: The Big Door Shuffle Update (#2861) 2024-03-05 23:01:45 +01:00
raft Raft: Use world.random instead of global random (#2439) 2023-11-09 08:47:36 +01:00
rogue_legacy Core: remove duplicate state.item_count (#2463) 2023-11-24 00:35:37 +01:00
ror2 Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
sa2b SA2B: Fix Weapons Bed - Omochao 2 Logic (#2605) 2023-12-16 04:16:36 +01:00
sc2wol SC2: run download_data via concurrent.futures (#2704) 2024-01-12 00:40:33 +01:00
shivers Shivers: Fix rule logic for location 'Final Riddle: Guillotine Dropped' (#2706) 2024-01-15 04:48:44 +01:00
sm SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
sm64ex Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
smw SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
smz3 SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
soe SoE: fix naming of atlas medallion (#2747) 2024-01-21 19:34:24 +01:00
spire Core: remove duplicate state.item_count (#2463) 2023-11-24 00:35:37 +01:00
stardew_valley Docs: fixed typo in Stardew Valley setup guide (#2770) 2024-01-30 08:58:31 +01:00
subnautica Subnautica: cleanup (#2828) 2024-03-03 06:33:48 +01:00
terraria Terraria: Broken Hero Sword reqs mech bosses (#2879) 2024-03-05 19:35:41 +01:00
timespinner Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
tloz TLOZ: use proper rule for completion condition (#2872) 2024-03-05 22:55:59 +01:00
tunic TUNIC: Update setup guide and game page docs (#2832) 2024-03-05 09:54:18 -06:00
undertale Docs: Make all guide titles say Guide, for my sanity (and the webhost) (#2304) 2024-02-20 10:22:32 -06:00
v6 V6: Use new options api (#2668) 2024-01-16 13:38:19 +01:00
wargroove Wargroove: Fixed WargrooveClient retaining victory and location information and minor doc fix (#2464) 2023-11-16 04:35:20 -06:00
witness The Witness: Fix... I don't know how to explain this one (#2920) 2024-03-09 00:03:02 +01:00
zillion Zillion: remove rom requirement for generation (#2875) 2024-03-03 22:10:14 +01:00
AutoSNIClient.py SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
AutoWorld.py LTTP: remove multiworld = None (#2290) 2024-03-10 08:18:25 +01:00
Files.py Core: fix (typing) mistake in PR #2887 (#2891) 2024-03-04 08:26:52 +01:00
LauncherComponents.py SNIClient: dynamically generate patch file identifier (#2870) 2024-03-07 10:18:22 +01:00
__init__.py Tests: add world load benchmark (#2768) 2024-02-04 09:09:07 +01:00