* fix(undertale): prevent massive bounce msg spam for position updates
* make sure player is removed on leaving / timing out
* do not check for tags: online, as bounce evaluation is or'd
* Core: Better scaling explicit indirect conditions
When the number of connections to retry was large and `queue` was large
`new_entrance not in queue` would get slow.
For the average supported world, the difference this change makes is
negligible.
For a game like Blasphemous, with a lot of explicit indirect conditions,
generation of 10 template Blasphemous yamls with
`--skip_output --seed 1` and progression balancing disabled went from
19.0s to 17.9s (5.9% reduction in generation duration).
* Create a new variable for the new set created from the intersection
HK's `get_filler_item_name` was writing lists into a ClassVar[dict] on
the `HKWorld` class. This dict would not be cleaned out between
generations on the same process, leaving behind cached data from
previous generations.
I confirmed the issue when running single-slot generations on a local
webhost, where `self.cached_filler_items` could be already populated
during `HKWorld.__init__()`.
This has been fixed by putting an individual cache list on each HKWorld
instance, instead of a shared cached on the class.
`music_table` was initialized on the `SavingPrincessWorld` *class*, so
was being shared by each Saving Princess slot in the multiworld.
This has been fixed by initializing the `music_table` attribute on each
`SavingPrincessWorld` *instance* in `generate_early()` instead.
### Logic Fixes:
- Old Site A
- Logic now allows for going backwards from the `Awake` checkpoint
- Golden Ridge A
- `Golden Strawberry` now requires `Moving Platforms` as it should
- Mirror Temple A
- `Room b-01c Strawberry` and `Room b-10 Strawberry` no longer erroneously require `Red Boosters`
- `Golden Strawberry` now requires `Dash Refills` as it should
- Reflection A
- Logic now allows for going backwards from the `Reflection` checkpoint
- Reflection B
- Logic now allows for going backwards from the `Reflection` checkpoint
- Farewell
- `Power Source Key 2` now logically requires `Dash Switches` and `Double Dash Refills` as it should
* move `gui_enabled` to Utils
* docstring
* If a user specified no-gui, don't use GUI messageboxes
---------
Co-authored-by: alwaysintreble <mmmcheese158@gmail.com>
* CI: make the comment in 'Build' more verbose
* Doc: add Linux running from source and build instructions
* Doc: fix name in running from source on Linux
* Update docs/running from source.md
Co-authored-by: qwint <qwint.42@gmail.com>
---------
Co-authored-by: qwint <qwint.42@gmail.com>
First, there is one check that has been added. The location is "Sitting on the throne before the cathedral with the crest on it" and the item is the "Opening of the Cathedral door". In Vanilla, sitting on the crested throne open the door to the cathedral.
Now for the options added:
- infinite_hot_soup: Make the game impossible to run out of hot soup once you got it as an item.
- open_body_tongue: The body level (the ending level) is blocked by a big tongue. This option remove the tongue without having to go to the Sunken City (where it is normally removed)
- maximum_ingredient_amount: In the Vanilla game, the ingredients and dishes count is limited to 8. This option make this count configurable.
- skip_final_boss_3rd_form: The final boss has 5 forms. The 3rd one is long and not really challenging. So, this option is used to skip this form.
- save_healing: Normally, the save points heal the player. There is also beds in the game that can heal the player. This option removed the healing from the save point and forced the player to heal using beds (or healing monsters or healing items)
- no_progression_(whatever): Make this "whatever" (generally regions) exempt of progression items. Note that this is not using the exclusion-feature of AP, as these locations may still contain 'Useful' items. It is only guaranteed that no 'Progression' and 'Progression_Skip_Balancing'-items will appear in these regions. This option does not remove locations. I did not exclude or completely remove the regions because I don't have enough location to put every useful item in the game.
There is also 2 new goals:
- Four gods: The goal is obtained when the player beat the four gods (this is something like half the game). Useful to have quicker runs
- Gods and Creator: Like the Four Gods run, but when the four gods are obtained, that open a transportation turtle to the final boss (the Creator) and the player have to beat the final boss to obtain the goal.
Note that for the 2 new goals, all locations from the last 4 areas (Abyss, Frozen Veil, Sunken City and The Body) are completely removed (not just excluded).
Major Content update for Stardew Valley
### Features
- New BundleRandomization Value: Meme Bundles - Over 100 custom bundles, designed to be jokes, references, trolls, etc
- New Setting: Bundles Per Room modifier
- New Setting: Backpack Size
- New Setting: Secretsanity - Checks for triggering easter eggs and secrets
- New Setting: Moviesanity - Checks for watching movies and sharing snacks with Villagers
- New Setting: Eatsanity - Checks for eating items
- New Setting: Hatsanity - Checks for wearing Hats
- New Setting: Start Without - Allows you to select any combination of various "starting" items, that you will actually not start with. Notably, tools, backpack slots, Day5 unlocks, etc.
- New Setting: Allowed Filler Items - Allows you to customize the filler items you'll get
- New Setting: Endgame Locations - Checks for various expensive endgame tasks and purchases
- New Shipsanity value: Crops and Fish
- New Settings: Jojapocalypse and settings to customize it
- Bundle Plando: Replaced with BundleWhitelist and BundleBlacklist, for more customization freedom
- Added a couple of Host.yaml settings to help hosts allow or ban specific difficult settings that could cause problems if the people don't know what they are signing up for.
Plus a truckload of improvements on the mod side, not seen in this PR.
### Removed features
- Integration for Stardew Valley Expanded. It is simply disabled, the code is all still there, but I'm extremely tired of providing tech support for it, plus Stardew Valley 1.7 was announced and that will break it again, so I'm done. When a maintainer steps up, it can be re-enabled.