Commit Graph

6022 Commits

Author SHA1 Message Date
Silvris f958af4067
Adventure: Fix KeyError on Retrieved () 2023-12-16 22:22:51 +01:00
Aaron Wagener 7dff09dc1a
Options: set old options api before the world is created () 2023-12-16 22:21:05 +01:00
lordlou c56cbd0474
SM: item link replacement fix () 2023-12-16 04:28:54 +01:00
PoryGone 6c4fdc985d
SA2B: Fix Weapons Bed - Omochao 2 Logic () 2023-12-16 04:16:36 +01:00
Alchav b500cf600c
FFMQ: Actually fix the spellbook option () 2023-12-16 04:16:13 +01:00
Alchav 394633558f
ALTTP: Restore allow_excluded ()
Restores allow_excluded to the dungeon fill_restrictive call, which was apparently removed by mistake during merge conflict resolution
2023-12-15 20:39:09 +01:00
Alchav 3e3af385fa
Pokémon R/B: client locations import () 2023-12-13 23:57:14 +01:00
Yussur Mustafa Oraji ff556bf4cc
sm64ex: Fix server () 2023-12-13 23:46:46 +01:00
Alchav a3b0476b4b
LTTP: Boss rule fix () 2023-12-13 23:34:36 +01:00
Zach Parks 0eefe9e936
WebHost: Some refactors and additional checks when uploading files. () 2023-12-12 20:12:16 -06:00
Aaron Wagener db1d195cb0
Hollow Knight: remove unused option check () 2023-12-12 20:11:10 -06:00
Bryce Wilson 45fa9a8f9e
BizHawkClient: Add SGB to systems using explicit vblank callback () 2023-12-12 05:48:20 +01:00
Alchav e9317d4031
FFMQR: Fix Empty Kaeli Companion Event Location and Spellbook option () 2023-12-12 02:39:38 +01:00
Aaron Wagener d9d282c925
Tests: test that the datapackage after generation is still valid () 2023-12-12 02:14:44 +01:00
Fabian Dill 13122ab466
Core: remove start_inventory_from_pool from early_items () 2023-12-10 20:42:41 +01:00
Fabian Dill e8f96dabe8
Core: faster prog balance ()
* Core: rename world to multiworld in balance_multiworld_progression

* Core: small optimization to progression balance speed
2023-12-10 20:42:07 +01:00
Fabian Dill 1a05bad612
Core: update modules () 2023-12-10 20:38:49 +01:00
NewSoupVi 8142564156
The Witness: Fix non-deterministic hints () 2023-12-10 20:36:55 +01:00
NewSoupVi e2109dba50
The Witness: Fix Logic Error for Keep Pressure Plates 2 EP in puzzle_randomization: none () 2023-12-10 20:35:46 +01:00
Yussur Mustafa Oraji 3a09677333
sm64ex: Fix generations () 2023-12-10 20:31:43 +01:00
Star Rauchenberger d3b09bde12
Lingo: Fix entrance checking being broken on default settings ()
The most serious issue this PR addresses is that entrances that use doors without items (a small subset of doors when door shuffle is on, but *every* door when door shuffle is off, which is the default) underestimate the requirements needed to use that entrance. The logic would calculate the panels needed to open the door, but would neglect to keep track of the rooms those panels were in, meaning that doors would be considered openable if you had the colors needed to solve a panel that's in a room you have no access to.

Another issue is that, previously, logic would always consider the "ANOTHER TRY" panel accessible for the purposes of the LEVEL 2 panel hunt. This could result in seeds where the player is expected to have exactly the correct number of solves to reach LEVEL 2, but in reality is short by one because ANOTHER TRY itself is not revealed until the panel hunt is complete. This change marks ANOTHER TRY as non-counting, because even though it is technically a counting panel in-game, it can never contribute to the LEVEL 2 panel hunt. This issue could also apply to THE MASTER, since it is the only other counting panel with special access rules, although it is much less likely. This change adds special handling for counting THE MASTER. These issues were possible to manifest whenever the LEVEL 2 panel hunt was enabled, which it is by default.

Smaller logic issues also fixed in this PR:

* The Orange Tower Basement MASTERY panel was marked as requiring the mastery doors to be opened, when it was actually possible to get it without them by using a painting to get into the room.
* The Pilgrim Room painting item was incorrectly being marked as a filler item, despite it being progression.
* There has been another update to the game that adds connections between areas that were previously not connected. These changes were additive, which is why they are not critical.
* The panel stacks in the rhyme room now require both colours on each panel.
2023-12-10 19:15:42 +01:00
Rjosephson 01d0c05259
RoR2: Remove begin with loop () 2023-12-10 19:12:46 +01:00
Fabian Dill 19b8624818
Factorio: remove staging folder for mod assembly () 2023-12-10 19:11:57 +01:00
Alchav 1312884fa2
Pokémon R/B: Fix Silph Co 6F Hostage ()
Fixes an issue where the Silph Co 6F hostage check becomes unavailable if Giovanni has been defeated on 11F. This is due to the NPC having separate scripts depending on whether Giovanni was defeated. The code for the check has been moved to before the branch.
2023-12-10 19:10:09 +01:00
lordlou 6cd5abdc11
SMZ3: KeyTH check fix () 2023-12-10 19:07:56 +01:00
JaredWeakStrike 6b0eb7da79
KH2: RC1 Bug Fixes ()
Changes the finished_game to new variable so now it only checks the game's memory and if it has sent the finished flag before
Fixed ag2 not requiring 1 of each black magic
Fix hitlist if you exclude summon level 7 and have summon levels option turned off
2023-12-10 18:58:52 +01:00
Doug Hoskisson b0a09f67f4
Core: some typing and documentation in BaseClasses.py () 2023-12-10 06:43:17 +01:00
Fabian Dill c3184e7b19
Factorio: fix wrong parent class for FactorioStartItems () 2023-12-10 00:10:01 -05:00
t3hf1gm3nt 3214cef6cf
TLOZ: Fix starting weapon possibly getting overwritten by triforce fragments ()
As discovered by this bug report https://discord.com/channels/731205301247803413/1182522267687731220 it's currently possible to accidentally have the starting weapon of a player overwritten by a triforce fragment if TriforceLocations is set to dungeons and StartingPosition is set to dangerous. This fix makes sure to remove the location of a placed starting weapon if said location is in a dungeon from the pool of possible locations that triforce fragments can be placed in this circumstance.
2023-12-10 04:23:40 +01:00
Alchav f10431779b
ALTTP: Ensure all Hyrule Castle keys are local in Standard () 2023-12-09 19:33:51 +01:00
JaredWeakStrike a9a6c72d2c
KH2: Fix events in datapackage () 2023-12-08 22:39:24 +01:00
PoryGone 9351fb45ca
SA2B: Fix KeyError on Unexpected Characters in Slot Names ()
There were no safeguards on characters being used as keys into a conversion dict. Now there are.
2023-12-08 07:17:12 +01:00
beauxq abfc2ddfed Zillion: fix retrieved packet processing 2023-12-07 22:27:46 +01:00
NewSoupVi bf801a1efe The Witness: Fix Symmetry Island Upper Panel logic (2nd try)
I got lazy and didn't properly test the last fix.

Big apologies, I got a bit panicked with all the logic errors that were being found.
2023-12-07 20:16:22 +01:00
Bryce Wilson 5bd022138b
Pokemon Emerald: Fix missing rule for 2 items on Route 120 ()
Two items on Route 120 are on the other side of a pond but were considered accessible in logic without Surf.


Creates a new separate region for these two items and adds a rule for being able to Surf to get to this region. Also adds the items to the existing surf test.
2023-12-07 20:15:38 +01:00
Aaron Wagener 69ae12823a
The Messenger: bump required client version ()
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
2023-12-07 08:23:05 +01:00
Aaron Wagener 57001ced0f
The Messenger: remove old links and update relevant ones () 2023-12-07 08:22:12 +01:00
NewSoupVi 3fa01a41cd
The Witness: Fix unreachable locations on certain settings (Keep PP2 EP, Theater Flowers EP) ()
Basically, the function for "checking entrances both ways" only checked one way. This resulted in unreachable locations.

This affects Expert seeds with (non-remote doors and specific types of EP Shuffle), as well as seeds with non-remote doors + specific types of disabled panels + specific types of EP Shuffle.

Also includes two changes that makes spoiler logs nicer (not creating unnecessary events).
2023-12-07 06:36:46 +01:00
Alchav 87252c14aa
FFMQ: Update to FFMQR 1.5 ()
FFMQR was just updated to 1.5, adding a number of new options. This brings these updates to AP.
2023-12-06 18:24:59 +01:00
Fabian Dill 56ac6573f1
WebHost: fix room shutdown ()
Currently when a room shuts down while clients are connected it instantly spins back up. This fixes that behaviour categorically.
I still don't know why or when this problem started, but it's certainly wreaking havok on prod.
2023-12-06 18:24:13 +01:00
Doug Hoskisson d8004f82ef
Zillion: some typing fixes ()
`colorama` has type stubs when it didn't before

`ZillionDeltaPatch.hash` annotated type could be `None` but md5s doesn't allow `None`

type of `CollectionState.prog_items` changed

`WorldTestBase` moved

all of the following are related to this issue:
https://github.com/python/typing/discussions/1486

CommonContext for `command_processor` (is invalid without specifying immutable - but I don't need it anyway)

ZillionWorld options and settings (is invalid without specifying immutable - but I do need it)
2023-12-06 18:23:43 +01:00
NewSoupVi 597f94dc22
The Witness: Add all the Challenge panels to Challenge exclusion list ()
Just a small cleanup where right now, the logic still considers the entirety of the challenge "solvable" except for Challenge Vault Box
2023-12-06 18:22:11 +01:00
Aaron Wagener 49e1fd0b79
The Messenger: ease rule on key of strength a bit ()
Makes the logic for accessing key of strength just a tiny bit easier since a few players said it was really difficult.
2023-12-06 18:20:18 +01:00
Yussur Mustafa Oraji 530617c9a7
sm64ex: Refactor Regions ()
Refactors region code to remove references to course index.
There were bugs somewhere, but I dont know where tbh.
This fixes them but leaves logic otherwise intact, and much cleaner to look at as there's one list less to take care of.

Additionally, this fixes stopping the clock from Big Boos Haunt.
2023-12-06 18:19:03 +01:00
NewSoupVi 229a263131
The Witness: Fix logic error with Symmetry Island Upper in doors: panels (broken seed reported) ()
Door entities think they can be solved without any other panels needing to be solved.

Usually, this is true, because they no longer need to be "powered on" by a previous panel.
However, there are some entities that need another entity to be powered/solved for a different reason.
In this case, Symmetry Island Lower Left set opens the latches that block your ability to solve the panel. The panel itself actually starts on. Playing doors: panels does not change this, unlike usually where dependencies like this get removed by playing that mode.

In the long term, I want to somehow be able to "mark" dependencies as "environmental" or "power based" so I can distinguish them properly.
2023-12-06 18:17:27 +01:00
NewSoupVi a861ede8b3
The Witness: Fix various incorrect symbol requirements in Vanilla Puzzles ()
* Fix Vanilla First Floor Left

* More vanilla logic fixes

---------

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2023-12-04 16:26:00 +01:00
el-u b7111eeccc
lufia2ac: fix disappearing Ancient key ()
Since the coop update, the Ancient key (which is always the reward for defeating the boss) would disappear when leaving the cave, making it impossible to open the locked door behind the Ancient Cave entrance counter. While this is basically cosmetic and has no adverse effects on the multiworld (as the door does not lead to any multiworld locations and is only accessible after defeating the final boss anyway), players may still want to enter this room as part of a ritual to celebrate their victory.

Why does this happen? The game keeps track of two different inventories, one for outside and another one for the cave dive. When entering or leaving the cave, important things such as blue chest items and Iris treasures are automatically copied to the other inventory. However, it turns out that the Ancient key doesn't participate in this mechanism. Instead, the script that runs when exiting the cave checks whether event flag 0xC3 is set, and if it is on, it calls a script action that adds the key item to the outside inventory. (Whether or not the player actually had the key item in their in-cave inventory is not checked at all; only the flag matters.)

In the unmodified game, that flag is set by the cutscene script that awards the key. It actually sets two event flags, 0xC3 and 0xD1. The latter is used by the game when trying to display the boss in the cafe basement and is used by AP as the indicator that the boss goal was completed. With the coop update, the event script method that created the key was intercepted and modified to send out a location check instead. That location always has the Ancient key as a fixed item placement; the benefit of handling it as a remote item is that in this way the key essentially serves as a signal that transmits the information of the boss' defeat to all clients cooping on the slot. When receiving the key, however, the custom ASM did only set flag 0xD1. As part of the bugfix, it is now changed to set flag 0xC3 as well.

But that alone is still not enough to make it work. The subroutine that is called by the game to create the key when exiting the cave with flag 0xC3 is the same subroutine that gets called in the cutscene that originally tried to award the key. But that's the one that has been rewritten to send the location check instead. So instead of creating the key when leaving the cave, it would just send the same location check again, effectively doing nothing. Therefore, the other part of the bugfix is to only intercept this subroutine if the player is currently on the Ancient Cave Final Floor (where the cutscene takes place), thus making it possible to recreate the key item when exiting.
2023-12-04 00:06:52 +01:00
Star Rauchenberger 39a92e98c6
Lingo: Default color shuffle to on ()
* Lingo: Default color shuffle on

* Raise error if no progression in multiworld
2023-12-04 00:06:11 +01:00
zig-for a83bf2f616
LADX: Fix bug with Webhost usage ()
We were using data created in init when we never called init
2023-12-03 21:24:35 +01:00
Alchav e8ceb12281
Pokémon RB: Fix connection names + missing connection () 2023-12-02 18:40:38 +01:00