* Vi don't forget about itemlinks challenge difficulty impossible
* People other than Vi also don't forget about ItemLinks challenge difficulty impossible
This PR is mainly refactoring. Here is what changed:
- Changing item names so that each words are capitalized (`Energy Form` instead of `Energy form`)
- Removing duplication of string literal by using:
- Constants for items and locations,
- Region's name attribute for entrances,
- Clarify some documentations,
- Adding some region to be more representative of the game and to remove listing of locations in the rules (prioritize entrance rules over individual location rules).
This is the other minor modifications that are not refactoring:
- Adding an early bind song option since that can be used to exit starting area.
- Changing Sun God to Lumerean God to be coherent with the other gods.
- Changing Home Water to Home Waters and Open Water to Open Waters to be coherent with the game.
- Removing a rules to have an attack to go in Mithalas Cathedral since you can to get some checks in it without an attack.
- Adding some options to slot data to be used with Poptracker.
- Fixing a little but still potentially logic breaking bug.
* Raft: Place locked items in create_items and fix get_pre_fill_items
`pre_fill` runs after item plando, and item plando could place an item
at a location where Raft was intending to place a locked item, which
would crash generation.
This patch moves the placement of these locked items earlier, into
`create_items`.
Setting items into `multiworld.raft_frequencyItemsPerPlayer` for each
player has been replaced with passing `frequencyItems` to the new
`place_frequencyItems` function.
`setLocationItem` and `setLocationItemFromRegion` have been moved into
the new `place_frequencyItems` function so that they can capture the
`frequencyItems` argument variable.
The `get_pre_fill_items` function could return a list of all previously
placed items across the entire multiworld which was not correct. It
should have returned the items in
`multiworld.raft_frequencyItemsPerPlayer[self.player]`. Now that these
items are placed in `create_items` instead of `pre_fill`,
`get_pre_fill_items` is no longer necessary and has been removed.
* self.multiworld.get_location -> self.get_location
Changed the occurences in the modified code.
* Saving Princess: initial commit
* settings -> options
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* settings -> options
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* replace RegionData class with List[str]
RegionData was only wrapping a List[str], so we can directly use List[str]
* world: MultiWorld -> multiworld: MultiWorld
* use world's random instead of multiworld's
* use state's has_any and has_all where applicable
* remove unused StartInventory import
* reorder PerGameCommonOptions
* fix relative AutoWorld import
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* clean up double spaces
* local commands -> Local Commands
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* remove redundant which items section
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* game info rework
* clean up item count redundancy
* add game to readme and codeowners
* fix get_region_entrance return type
* world.multiworld.get -> world.get
* add more events
added events for the boss kills that open the gate, as well as for system power being restored
these only apply if expanded pool is not selected
* add client/autoupdater to launcher
* reorder commands in game info
* update docs with automated installation info
* add quick links to doc
* Update setup_en.md
* remove standalone saving princess client
* doc fixes
* code improvements and redundant default removal
as suggested by @Exempt-Medic
this includes the removal of events from the item/location name to id, as well as checking for the player name being ASCII
* add option to change launch coammnd
the LaunchCommand option is filled to either the executable or wine with the necessary arguments based on Utils.is_windows
* simplify valid install check
* mod installer improvements
now deletes possible existing files before installing the mod
* add option groups and presets
* add required client version
* update docs about cheat items pop-ups
items sent directly by the server (such as with starting inventory) now have pop-ups just like any other item
* add Steam Input issue to faq
* Saving Princess: BRAINOS requires all weapons
* Saving Princess: Download dll and patch together
Previously, gm-apclientpp.dll was downloaded from its own repo
With this update, the dll is instead extracted from the same zip as the game's patch
* Saving Princess: Add URI launch support
* Saving Princess: goal also requires all weapons
given it's past brainos
* Saving Princess: update docs
automatic connection support was added, docs now reflect this
* Saving Princess: extend([item]) -> append(item)
* Saving Princess: automatic connection validation
also parses the slot, password and host:port into parameters for the game
* Saving Princess: change subprocess .run to .Popen
This keeps the game from freezing the launcher while it is running
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
* Fully updates requirements.py to live LADXR (#19)
* Updates dungeon2.py to LADXR-Live (#20)
No logic changes or bugfix are in this file. It is only code cleanup.
* Update dungeon1.py (#21)
- The Three of a Kind with Bomb is moved from Normal to Hard Logic
The rest is code cleanup.
lines 22-25 | 22-26 & 33 | 34 remain different in AP | Upstream with no effective difference
* Fully updates dungeon3.py to LADXR-live (#22)
Logic Changes:
- Hard mode now considers killing the enemies in the top room with pot
Everything else is cleanup.
* Fully update dungeon4.py to LADXR-live logic (#23)
Logic Changes:
- Hard Logic: Removes Feather requirement from grabbing the Pit Key
- Hell logic: new hookshot clip (line 64)
- Hell logic: hookshot spam over the first pit of crossroads, then buffer down (line 69)
- Hell logic: push block left of keyblock up, then shaq jump off the left wall and pause buffer to land on keyblock.
- Hell logic: split zol for more entities, and clip through the block left of keyblock by hookshot spam
The rest is code cleanup
* Updates dungeon5.py mostly to LADXR-Live Logic (#24)
Logic Changes:
- Hell logic: use zoomerang dashing left to get an unclipped boots superjump off the right wall over the block. reverse is push block (line 69)
The rest is cleanup.
The upstream splits the post_gohma region into pre_gohma, gohma and post_gohma. I did not implement this yet as I do not know the implications. To port this the following lines need to be changed (AP | LADXR):
18 | 18-20;
55 | 58;
65 | 68-69
* Fully update dungeon6.py logic (#25)
Logic Changes:
- Hard logic: allow damage boosting past the mini thwomps
- Glitched logic: bomb triggering elephants in two cases
Everything else is cleanup
* Fully update dungeon7.py to LADXR-live logic (#26)
Logic Changes:
- Hard logic: Three of a Kind is now possible with bombs only
Everything else is code cleanup
* Fully updates dungeon8.py to LADXR-live (#27)
Logic change:
- Hard logic: allows to drop the Gibdos into holes as a way to kill them
- Glitched logic: underground section with fire balls jumping up out of lava. Use boots superjump off left wall to jump over the pot blocking the way
The rest is code cleanup
* Fully update dungeonColor.py to LADXR-live (#28)
Logic changes:
- Normal logic: Karakoros now need power bracelet to put them into their holes
- Hard logic: Karakoros without power bracelet but with weapon
- Hell logic: Karakoros with only bombs
Everything else is code cleanup
* Updating overworld.py (#29)
* Updating overworld.py
This tries to update all logic of the Overworld.
Logic changes include:
- Normal logic: requires hookshot or shield to traverse Armos Cave
- Hard logic: Traverse Armos Cave with nothing (formerly normal logic)
- Hard logic: get the animal village bomb cave check with jump and boomerang
- Hard logic: use rooster to go to D7
- Lots of Jesus Rooster Jumps
I stopped counting and need to go over this again.
Also, please investigate line 474 AP because it's removed in LADXR-Upstream and I don't know why.
* remove featherless fisher under bridge from hard
it was moved to hell upstream and its already present in our code
---------
Co-authored-by: Alex Nordstrom <a.l.nordstrom@gmail.com>
* fixes
* add test messages
* Adds Pegasus Boots to the test (#31)
* Fix d6 boss_key logic (#30)
* restore hardmode logic
* higher logic fixes
* add bush requirement to the raft
in case the player needs to farm rupees to play again
---------
Co-authored-by: palex00 <32203971+palex00@users.noreply.github.com>
* add groups and a preset
* formatting
* typing
* alias groups for progressive items
* add bush breakers item group
* fix typo
* some manual location groups
* drop dummy dungeon items from groups
* text shuffle exclusions
Exclude owl statues, library books, goal sign, signpost maze, and various rupee prices from text shuffle
* clearer variable name
* KH2: Add missing indirect conditions for Final region access
Entrances to the Final region require being able to reach any one of a
number of locations, but for a location to be reachable, its parent
region must also be reachable, so indirect conditions must be added for
these regions.
* Use World.get_location
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Use World.get_location, for real this time
---------
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* LADX: Magnifying Glass fixes
Removed the duplicate item (Magnifying Lens), and made the real one a filler item.
* Update worlds/ladx/Items.py
Co-authored-by: threeandthreee <alex@3and3.dev>
---------
Co-authored-by: threeandthreee <alex@3and3.dev>
* Core: warn if a yaml is empty
* WebHost: ignore empty yaml
Generate: log which yaml documents are empty
* Actually remove empty yamls from weight_cache
* More verbose variable name
---------
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
* Core: New error message if item count is a set
* Apply suggestion for error message
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Apply item count error suggestion
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
---------
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Improved sm64ex advanced setup docs
This edit clarifies some things that are not obvious in the version that is currently live on the site.
This should prevent others from needing to go spelunking in Discord chat history to figure out how to do advanced builds.
* Update worlds/sm64ex/docs/setup_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* copyediting
---------
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* create a first draft of the feature
* use feature in items and locations
* add content to more places
* use feature in logic
* replace option check by feature
* remove unused code
* remove weird white space
* some import nitpicking
* flip negative if
* Docs: update min required version
and add comment about security.
* Core: rework python version check
* CI: set min micro update for build and release